blob: e1ebec4eea3f9ff988778c24556a80a621b92297 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009, 2019 Mia-Software and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v20.html
*
* Contributors:
* Nicolas Bros (Mia-Software) - initial API and implementation
*
*******************************************************************************/
package org.eclipse.modisco.infra.browser.editors;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IWorkbenchPartSite;
import org.eclipse.ui.forms.widgets.FormToolkit;
/**
* The left pane in the model editor, containing the list (tree) of metaclasses
* and the list of model services
*/
public class LeftPane {
/** The viewer where a list of metaclasses is shown */
private MetaclassViewer metaclassViewer;
private final BrowserConfiguration editorConfiguration;
private MetaclassViewToolBar toolbar;
private Composite toolBarComposite;
private final Composite parent;
private final Composite toolbarParent;
private final FormToolkit formToolkit;
private final IWorkbenchPartSite site;
public LeftPane(final Composite toolbarParent, final Composite parent,
final BrowserConfiguration editorConfiguration, final FormToolkit formToolkit,
final IWorkbenchPartSite site) {
this.editorConfiguration = editorConfiguration;
this.parent = parent;
this.formToolkit = formToolkit;
this.site = site;
this.toolbarParent = toolbarParent;
// GridLayout gridLayout = new GridLayout(1, false);
// gridLayout.marginBottom = 5;
// gridLayout.marginHeight = 0;
// gridLayout.marginWidth = 0;
// parent.setLayout(gridLayout);
// GridData metaclassViewerGridData = new GridData();
// metaclassViewerGridData.grabExcessHorizontalSpace = true;
// metaclassViewerGridData.grabExcessVerticalSpace = true;
// metaclassViewerGridData.horizontalAlignment = SWT.FILL;
// metaclassViewerGridData.verticalAlignment = SWT.FILL;
// this.metaclassViewer.getViewer().getControl().setLayoutData(metaclassViewerGridData);
}
public Composite getToolBarComposite() {
if (this.toolbar == null) {
createToolBar(this.toolbarParent);
}
return this.toolBarComposite;
}
public MetaclassViewToolBar getToolbar() {
if (this.toolbar == null) {
createToolBar(this.toolbarParent);
}
return this.toolbar;
}
private void createToolBar(final Composite pParent) {
this.toolBarComposite = new Composite(pParent, SWT.WRAP);
// GridData toolBarGridData = new GridData();
// toolBarGridData.grabExcessHorizontalSpace = true;
// toolBarGridData.horizontalAlignment = SWT.FILL;
// toolBarComposite.setLayoutData(toolBarGridData);
this.toolbar = new MetaclassViewToolBar(this.toolBarComposite, this.editorConfiguration);
this.toolbar.setMetaclassViewer(getMetaclassViewer());
}
public MetaclassViewer getMetaclassViewer() {
if (this.metaclassViewer == null) {
this.metaclassViewer = new MetaclassViewer(this.parent, this.editorConfiguration,
this.formToolkit, this.site);
}
return this.metaclassViewer;
}
}