diff options
author | Thomas Schindl | 2010-06-26 13:03:44 +0000 |
---|---|---|
committer | Thomas Schindl | 2010-06-26 13:03:44 +0000 |
commit | 33e5c7f031dc98fe185ce0e38e6fd765be1ccd44 (patch) | |
tree | e1dc2bc78d7705c69f0ee277b50615ce96681d69 /bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PerspectiveStackEditor.java | |
parent | b5bb9511fd46b6d5ea3d25d8a5fc77a86bc57fa0 (diff) | |
download | org.eclipse.e4.tools-33e5c7f031dc98fe185ce0e38e6fd765be1ccd44.tar.gz org.eclipse.e4.tools-33e5c7f031dc98fe185ce0e38e6fd765be1ccd44.tar.xz org.eclipse.e4.tools-33e5c7f031dc98fe185ce0e38e6fd765be1ccd44.zip |
Bug 304584 - [Tooling] Implement Workbench-Model-Tooling
* fixing problem with fragments (treats everything as import)
* some minor layout improvements (everything right aligned)
Diffstat (limited to 'bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PerspectiveStackEditor.java')
-rw-r--r-- | bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PerspectiveStackEditor.java | 38 |
1 files changed, 34 insertions, 4 deletions
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PerspectiveStackEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PerspectiveStackEditor.java index a133dd15..fc674650 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PerspectiveStackEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PerspectiveStackEditor.java @@ -10,6 +10,10 @@ ******************************************************************************/ package org.eclipse.e4.tools.emf.ui.internal.common.component; +import org.eclipse.e4.tools.emf.ui.common.Util; +import org.eclipse.swt.custom.StackLayout; +import org.eclipse.swt.widgets.Control; + import org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.FindImportElementDialog; import org.eclipse.emf.ecore.EObject; @@ -71,6 +75,7 @@ public class PerspectiveStackEditor extends AbstractComponentEditor { private EMFDataBindingContext context; private IListProperty ELEMENT_CONTAINER__CHILDREN = EMFProperties.list(UiPackageImpl.Literals.ELEMENT_CONTAINER__CHILDREN); + private StackLayout stackLayout; public PerspectiveStackEditor(EditingDomain editingDomain, ModelEditor editor) { super(editingDomain,editor); @@ -107,22 +112,45 @@ public class PerspectiveStackEditor extends AbstractComponentEditor { @Override public Composite getEditor(Composite parent, Object object) { - if( composite == null ) { + if (composite == null) { context = new EMFDataBindingContext(); - composite = createForm(parent,context, getMaster()); + if (getEditor().isModelFragment()) { + composite = new Composite(parent, SWT.NONE); + stackLayout = new StackLayout(); + composite.setLayout(stackLayout); + createForm(composite, context, getMaster(), false); + createForm(composite, context, getMaster(), true); + } else { + composite = createForm(parent, context, getMaster(), false); + } + } + + if( getEditor().isModelFragment() ) { + Control topControl; + if( Util.isImport((EObject) object) ) { + topControl = composite.getChildren()[1]; + } else { + topControl = composite.getChildren()[0]; + } + + if( stackLayout.topControl != topControl ) { + stackLayout.topControl = topControl; + composite.layout(true, true); + } } + getMaster().setValue(object); return composite; } private Composite createForm(Composite parent, final EMFDataBindingContext context, - WritableValue master) { + WritableValue master, boolean isImport) { parent = new Composite(parent,SWT.NONE); parent.setLayout(new GridLayout(3, false)); IWidgetValueProperty textProp = WidgetProperties.text(SWT.Modify); - if( getEditor().isModelFragment() ) { + if( isImport ) { ControlFactory.createFindImport(parent, this, context); return parent; } @@ -131,6 +159,7 @@ public class PerspectiveStackEditor extends AbstractComponentEditor { { Label l = new Label(parent, SWT.NONE); l.setText(Messages.PerspectiveStackEditor_Id); + l.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); Text t = new Text(parent, SWT.BORDER); GridData gd = new GridData(GridData.FILL_HORIZONTAL); @@ -145,6 +174,7 @@ public class PerspectiveStackEditor extends AbstractComponentEditor { { Label l = new Label(parent, SWT.NONE); l.setText(Messages.PerspectiveStackEditor_Perspectives); + l.setLayoutData(new GridData(GridData.END,GridData.BEGINNING,false,false)); final TableViewer viewer = new TableViewer(parent); viewer.setContentProvider(new ObservableListContentProvider()); |