diff options
author | Wim Jongman | 2012-12-08 21:07:04 +0000 |
---|---|---|
committer | Wim Jongman | 2012-12-08 21:07:04 +0000 |
commit | 3bff59f61da4404eb67235dfe1bac68cf07902de (patch) | |
tree | 8c96ff0f052354879a7fa848c2b6c8cd0b40e0af | |
parent | 48156b0490b65171049bd335cc6e47acc96dc916 (diff) | |
download | org.eclipse.e4.tools-3bff59f61da4404eb67235dfe1bac68cf07902de.tar.gz org.eclipse.e4.tools-3bff59f61da4404eb67235dfe1bac68cf07902de.tar.xz org.eclipse.e4.tools-3bff59f61da4404eb67235dfe1bac68cf07902de.zip |
fixed the layout problems of the Fragment editor with the new
ViewerElement class which is re-used in the VModelImportsEditor
396001: Fragment Editor layout changes
Main: https://bugs.eclipse.org/bugs/show_bug.cgi?id=396001
Related: https://bugs.eclipse.org/bugs/show_bug.cgi?id=391335
2 files changed, 98 insertions, 330 deletions
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ModelFragmentsEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ModelFragmentsEditor.java index db4380ba..9984e587 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ModelFragmentsEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ModelFragmentsEditor.java @@ -16,12 +16,15 @@ import javax.inject.Inject; import org.eclipse.core.databinding.observable.list.IObservableList; import org.eclipse.core.databinding.observable.list.WritableList; import org.eclipse.core.databinding.property.list.IListProperty; +import org.eclipse.e4.core.contexts.IEclipseContext; import org.eclipse.e4.tools.emf.ui.common.IEditorFeature.FeatureClass; +import org.eclipse.e4.tools.emf.ui.common.Util; import org.eclipse.e4.tools.emf.ui.common.component.AbstractComponentEditor; import org.eclipse.e4.tools.emf.ui.internal.ResourceProvider; import org.eclipse.e4.tools.emf.ui.internal.common.ComponentLabelProvider; import org.eclipse.e4.tools.emf.ui.internal.common.ModelEditor; import org.eclipse.e4.tools.emf.ui.internal.common.VirtualEntry; +import org.eclipse.e4.tools.emf.ui.internal.common.uistructure.ViewerElement; import org.eclipse.e4.ui.model.application.impl.ApplicationPackageImpl; import org.eclipse.e4.ui.model.fragment.MFragmentFactory; import org.eclipse.e4.ui.model.fragment.MModelFragment; @@ -32,15 +35,12 @@ import org.eclipse.emf.databinding.EMFProperties; import org.eclipse.emf.databinding.IEMFListProperty; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EClassifier; -import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; -import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.edit.command.AddCommand; import org.eclipse.emf.edit.command.MoveCommand; import org.eclipse.emf.edit.command.RemoveCommand; import org.eclipse.jface.databinding.viewers.ObservableListContentProvider; import org.eclipse.jface.viewers.ArrayContentProvider; -import org.eclipse.jface.viewers.ComboViewer; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.StructuredSelection; @@ -58,7 +58,6 @@ import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Label; public class ModelFragmentsEditor extends AbstractComponentEditor { @@ -68,6 +67,9 @@ public class ModelFragmentsEditor extends AbstractComponentEditor { private Composite composite; @Inject + IEclipseContext context; + + @Inject public ModelFragmentsEditor() { super(); } @@ -98,172 +100,31 @@ public class ModelFragmentsEditor extends AbstractComponentEditor { private Composite createForm(Composite parent) { CTabFolder folder = new CTabFolder(parent, SWT.BOTTOM); + createFragmentsTab(folder); + createImportsTab(folder); + folder.setSelection(0); + return folder; + } + + private void createFragmentsTab(CTabFolder folder) { CTabItem item = new CTabItem(folder, SWT.NONE); - item.setText(Messages.ModelTooling_Common_TabDefault); + item.setText(Messages.ModelFragmentsEditor_ModelFragments); - parent = createScrollableContainer(folder); + Composite parent = createScrollableContainer(folder); item.setControl(parent.getParent()); - if (getEditor().isShowXMIId() || getEditor().isLiveModel()) { - ControlFactory.createXMIId(parent, this); - } - - { - GridLayout layout = (GridLayout) parent.getLayout(); - layout.numColumns = 2; - - Composite impCompo = new Composite(parent, SWT.NONE); - impCompo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - impCompo.setLayout(new GridLayout()); - Label l = new Label(impCompo, SWT.NONE); - l.setText(Messages.ModelFragmentsEditor_Imports); - l.setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false)); - final TableViewer viewer = new TableViewer(impCompo); - viewer.setContentProvider(new ObservableListContentProvider()); - viewer.setLabelProvider(new ComponentLabelProvider(getEditor(), Messages)); - GridData gd = new GridData(GridData.FILL_HORIZONTAL); - gd.heightHint = 200; - viewer.getControl().setLayoutData(gd); - - IEMFListProperty prop = EMFProperties.list(FragmentPackageImpl.Literals.MODEL_FRAGMENTS__IMPORTS); - viewer.setInput(prop.observeDetail(getMaster())); - - Composite buttonComp = new Composite(parent, SWT.NONE); - buttonComp.setLayoutData(new GridData(GridData.FILL, GridData.END, false, false)); - GridLayout gl = new GridLayout(2, false); - gl.marginLeft = 0; - gl.marginRight = 0; - gl.marginWidth = 0; - gl.marginHeight = 0; - buttonComp.setLayout(gl); - - Button b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); - b.setText(Messages.ModelTooling_Common_Up); - b.setImage(createImage(ResourceProvider.IMG_Obj16_arrow_up)); - b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 2, 1)); - b.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - if (!viewer.getSelection().isEmpty()) { - IStructuredSelection s = (IStructuredSelection) viewer.getSelection(); - if (s.size() == 1) { - Object obj = s.getFirstElement(); - MModelFragments container = (MModelFragments) getMaster().getValue(); - int idx = container.getImports().indexOf(obj) - 1; - if (idx >= 0) { - Command cmd = MoveCommand.create(getEditingDomain(), getMaster().getValue(), FragmentPackageImpl.Literals.MODEL_FRAGMENTS__IMPORTS, obj, idx); - - if (cmd.canExecute()) { - getEditingDomain().getCommandStack().execute(cmd); - viewer.setSelection(new StructuredSelection(obj)); - } - } - - } - } - } - }); - - b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); - b.setText(Messages.ModelTooling_Common_Down); - b.setImage(createImage(ResourceProvider.IMG_Obj16_arrow_down)); - b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 2, 1)); - b.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - if (!viewer.getSelection().isEmpty()) { - IStructuredSelection s = (IStructuredSelection) viewer.getSelection(); - if (s.size() == 1) { - Object obj = s.getFirstElement(); - MModelFragments container = (MModelFragments) getMaster().getValue(); - int idx = container.getImports().indexOf(obj) + 1; - if (idx < container.getImports().size()) { - Command cmd = MoveCommand.create(getEditingDomain(), getMaster().getValue(), FragmentPackageImpl.Literals.MODEL_FRAGMENTS__IMPORTS, obj, idx); - - if (cmd.canExecute()) { - getEditingDomain().getCommandStack().execute(cmd); - viewer.setSelection(new StructuredSelection(obj)); - } - } - - } - } - } - }); - - final ComboViewer childrenDropDown = new ComboViewer(buttonComp); - childrenDropDown.getControl().setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); - childrenDropDown.setContentProvider(new ArrayContentProvider()); - childrenDropDown.setLabelProvider(new LabelProvider() { - @Override - public String getText(Object element) { - FeatureClass eclass = (FeatureClass) element; - return eclass.label; - } - }); - childrenDropDown.setComparator(new ViewerComparator() { - @Override - public int compare(Viewer viewer, Object e1, Object e2) { - FeatureClass eClass1 = (FeatureClass) e1; - FeatureClass eClass2 = (FeatureClass) e2; - return eClass1.label.compareTo(eClass2.label); - } - }); - - List<FeatureClass> list = new ArrayList<FeatureClass>(); - addClasses(ApplicationPackageImpl.eINSTANCE, list); - list.addAll(getEditor().getFeatureClasses(FragmentPackageImpl.Literals.MODEL_FRAGMENT, FragmentPackageImpl.Literals.MODEL_FRAGMENTS__IMPORTS)); - - childrenDropDown.setInput(list); - childrenDropDown.getCombo().select(0); - - b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); - b.setImage(createImage(ResourceProvider.IMG_Obj16_table_add)); - b.setText(Messages.ModelTooling_Common_AddEllipsis); - b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); - b.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - EClass eClass = ((FeatureClass) ((IStructuredSelection) childrenDropDown.getSelection()).getFirstElement()).eClass; - EObject eObject = EcoreUtil.create(eClass); - - Command cmd = AddCommand.create(getEditingDomain(), getMaster().getValue(), FragmentPackageImpl.Literals.MODEL_FRAGMENTS__IMPORTS, eObject); - - if (cmd.canExecute()) { - getEditingDomain().getCommandStack().execute(cmd); - getEditor().setSelection(eObject); - } - } - }); - - b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); - b.setText(Messages.ModelTooling_Common_Remove); - b.setImage(createImage(ResourceProvider.IMG_Obj16_table_delete)); - b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 2, 1)); - b.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - if (!viewer.getSelection().isEmpty()) { - List<?> elements = ((IStructuredSelection) viewer.getSelection()).toList(); - - Command cmd = RemoveCommand.create(getEditingDomain(), getMaster().getValue(), FragmentPackageImpl.Literals.MODEL_FRAGMENTS__IMPORTS, elements); - if (cmd.canExecute()) { - getEditingDomain().getCommandStack().execute(cmd); - } - } - } - }); - } - { Composite fragCompo = new Composite(parent, SWT.NONE); - fragCompo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + fragCompo.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false, 2, 1)); fragCompo.setLayout(new GridLayout()); - Label l = new Label(fragCompo, SWT.NONE); - l.setText(Messages.ModelFragmentsEditor_ModelFragments); - l.setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false)); + GridLayout fragCompoLayout = new GridLayout(1, false); + fragCompoLayout.marginLeft = 0; + fragCompoLayout.marginRight = 0; + fragCompoLayout.marginWidth = 0; + fragCompoLayout.marginHeight = 0; + fragCompo.setLayout(fragCompoLayout); final TableViewer viewer = new TableViewer(fragCompo); viewer.setContentProvider(new ObservableListContentProvider()); @@ -375,9 +236,50 @@ public class ModelFragmentsEditor extends AbstractComponentEditor { }); } - folder.setSelection(0); + } - return folder; + private void createImportsTab(CTabFolder folder) { + + CTabItem item = new CTabItem(folder, SWT.NONE); + item.setText(Messages.ModelFragmentsEditor_Imports); + + Composite parent = createScrollableContainer(folder); + item.setControl(parent.getParent()); + + if (getEditor().isShowXMIId() || getEditor().isLiveModel()) { + ControlFactory.createXMIId(parent, this); + } + + ViewerElement tableElement = ViewerElement.create(context, parent, FragmentPackageImpl.Literals.MODEL_FRAGMENTS__IMPORTS, this); + tableElement.getViewer().setContentProvider(new ObservableListContentProvider()); + tableElement.getViewer().setLabelProvider(new ComponentLabelProvider(getEditor(), Messages)); + + tableElement.getDropDown().setContentProvider(new ArrayContentProvider()); + tableElement.getDropDown().setLabelProvider(new LabelProvider() { + @Override + public String getText(Object element) { + FeatureClass eclass = (FeatureClass) element; + return eclass.label; + } + }); + tableElement.getDropDown().setComparator(new ViewerComparator() { + @Override + public int compare(Viewer viewer, Object e1, Object e2) { + FeatureClass eClass1 = (FeatureClass) e1; + FeatureClass eClass2 = (FeatureClass) e2; + return eClass1.label.compareTo(eClass2.label); + } + }); + + List<FeatureClass> list = new ArrayList<FeatureClass>(); + Util.addClasses(ApplicationPackageImpl.eINSTANCE, list); + list.addAll(getEditor().getFeatureClasses(FragmentPackageImpl.Literals.MODEL_FRAGMENT, FragmentPackageImpl.Literals.MODEL_FRAGMENTS__IMPORTS)); + + tableElement.getDropDown().setInput(list); + tableElement.getDropDown().getCombo().select(0); + + IEMFListProperty prop = EMFProperties.list(FragmentPackageImpl.Literals.MODEL_FRAGMENTS__IMPORTS); + tableElement.getViewer().setInput(prop.observeDetail(getMaster())); } public void addClasses(EPackage ePackage, List<FeatureClass> list) { diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/virtual/VModelImportsEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/virtual/VModelImportsEditor.java index 38d0eeb9..16863519 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/virtual/VModelImportsEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/virtual/VModelImportsEditor.java @@ -15,49 +15,35 @@ import java.util.List; import javax.inject.Inject; import org.eclipse.core.databinding.observable.list.IObservableList; import org.eclipse.core.databinding.observable.value.WritableValue; +import org.eclipse.e4.core.contexts.IEclipseContext; import org.eclipse.e4.tools.emf.ui.common.IEditorFeature.FeatureClass; +import org.eclipse.e4.tools.emf.ui.common.Util; import org.eclipse.e4.tools.emf.ui.common.component.AbstractComponentEditor; -import org.eclipse.e4.tools.emf.ui.internal.ResourceProvider; import org.eclipse.e4.tools.emf.ui.internal.common.ComponentLabelProvider; import org.eclipse.e4.tools.emf.ui.internal.common.VirtualEntry; +import org.eclipse.e4.tools.emf.ui.internal.common.uistructure.ViewerElement; import org.eclipse.e4.ui.model.application.impl.ApplicationPackageImpl; -import org.eclipse.e4.ui.model.fragment.MModelFragments; import org.eclipse.e4.ui.model.fragment.impl.FragmentPackageImpl; -import org.eclipse.emf.common.command.Command; import org.eclipse.emf.databinding.EMFDataBindingContext; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EClassifier; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EPackage; -import org.eclipse.emf.ecore.util.EcoreUtil; -import org.eclipse.emf.edit.command.AddCommand; -import org.eclipse.emf.edit.command.MoveCommand; -import org.eclipse.emf.edit.command.RemoveCommand; import org.eclipse.jface.databinding.viewers.ObservableListContentProvider; import org.eclipse.jface.viewers.ArrayContentProvider; -import org.eclipse.jface.viewers.ComboViewer; -import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerComparator; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; public class VModelImportsEditor extends AbstractComponentEditor { private Composite composite; private EMFDataBindingContext context; - private TableViewer viewer; + private ViewerElement tableElement; + + @Inject + IEclipseContext eclipseContext; @Inject public VModelImportsEditor() { @@ -91,13 +77,14 @@ public class VModelImportsEditor extends AbstractComponentEditor { composite = createForm(parent, context, getMaster()); } VirtualEntry<?> o = (VirtualEntry<?>) object; - viewer.setInput(o.getList()); + tableElement.getViewer().setInput(o.getList()); getMaster().setValue(o.getOriginalParent()); return composite; } private Composite createForm(Composite parent, EMFDataBindingContext context, WritableValue master) { CTabFolder folder = new CTabFolder(parent, SWT.BOTTOM); + composite = folder; CTabItem item = new CTabItem(folder, SWT.NONE); item.setText(Messages.ModelTooling_Common_TabDefault); @@ -105,160 +92,39 @@ public class VModelImportsEditor extends AbstractComponentEditor { parent = createScrollableContainer(folder); item.setControl(parent.getParent()); - { - viewer = new TableViewer(parent); - viewer.setContentProvider(new ObservableListContentProvider()); - viewer.setLabelProvider(new ComponentLabelProvider(getEditor(), Messages)); - GridData gd = new GridData(GridData.FILL_BOTH); - viewer.getControl().setLayoutData(gd); - - Composite buttonComp = new Composite(parent, SWT.NONE); - buttonComp.setLayoutData(new GridData(GridData.FILL, GridData.END, false, false)); - GridLayout gl = new GridLayout(2, false); - gl.marginLeft = 0; - gl.marginRight = 0; - gl.marginWidth = 0; - gl.marginHeight = 0; - buttonComp.setLayout(gl); - - Button b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); - b.setText(Messages.ModelTooling_Common_Up); - b.setImage(createImage(ResourceProvider.IMG_Obj16_arrow_up)); - b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 2, 1)); - b.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - if (!viewer.getSelection().isEmpty()) { - IStructuredSelection s = (IStructuredSelection) viewer.getSelection(); - if (s.size() == 1) { - Object obj = s.getFirstElement(); - MModelFragments container = (MModelFragments) getMaster().getValue(); - int idx = container.getImports().indexOf(obj) - 1; - if (idx >= 0) { - Command cmd = MoveCommand.create(getEditingDomain(), getMaster().getValue(), FragmentPackageImpl.Literals.MODEL_FRAGMENTS__IMPORTS, obj, idx); - - if (cmd.canExecute()) { - getEditingDomain().getCommandStack().execute(cmd); - viewer.setSelection(new StructuredSelection(obj)); - } - } - - } - } - } - }); - - b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); - b.setText(Messages.ModelTooling_Common_Down); - b.setImage(createImage(ResourceProvider.IMG_Obj16_arrow_down)); - b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 2, 1)); - b.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - if (!viewer.getSelection().isEmpty()) { - IStructuredSelection s = (IStructuredSelection) viewer.getSelection(); - if (s.size() == 1) { - Object obj = s.getFirstElement(); - MModelFragments container = (MModelFragments) getMaster().getValue(); - int idx = container.getImports().indexOf(obj) + 1; - if (idx < container.getImports().size()) { - Command cmd = MoveCommand.create(getEditingDomain(), getMaster().getValue(), FragmentPackageImpl.Literals.MODEL_FRAGMENTS__IMPORTS, obj, idx); - - if (cmd.canExecute()) { - getEditingDomain().getCommandStack().execute(cmd); - viewer.setSelection(new StructuredSelection(obj)); - } - } - - } - } - } - }); - - final ComboViewer childrenDropDown = new ComboViewer(buttonComp); - childrenDropDown.getControl().setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); - childrenDropDown.setContentProvider(new ArrayContentProvider()); - childrenDropDown.setLabelProvider(new LabelProvider() { - @Override - public String getText(Object element) { - FeatureClass eclass = (FeatureClass) element; - return eclass.label; - } - }); - childrenDropDown.setComparator(new ViewerComparator() { - @Override - public int compare(Viewer viewer, Object e1, Object e2) { - FeatureClass eClass1 = (FeatureClass) e1; - FeatureClass eClass2 = (FeatureClass) e2; - return eClass1.label.compareTo(eClass2.label); - } - }); - - List<FeatureClass> list = new ArrayList<FeatureClass>(); - addClasses(ApplicationPackageImpl.eINSTANCE, list); - list.addAll(getEditor().getFeatureClasses(FragmentPackageImpl.Literals.MODEL_FRAGMENT, FragmentPackageImpl.Literals.MODEL_FRAGMENTS__IMPORTS)); - - childrenDropDown.setInput(list); - childrenDropDown.getCombo().select(0); + tableElement = ViewerElement.create(eclipseContext, parent, FragmentPackageImpl.Literals.MODEL_FRAGMENTS__IMPORTS, this); + tableElement.getViewer().setContentProvider(new ObservableListContentProvider()); + tableElement.getViewer().setLabelProvider(new ComponentLabelProvider(getEditor(), Messages)); - b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); - b.setImage(createImage(ResourceProvider.IMG_Obj16_table_add)); - b.setText(Messages.ModelTooling_Common_AddEllipsis); - b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); - b.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - EClass eClass = ((FeatureClass) ((IStructuredSelection) childrenDropDown.getSelection()).getFirstElement()).eClass; - EObject eObject = EcoreUtil.create(eClass); - - Command cmd = AddCommand.create(getEditingDomain(), getMaster().getValue(), FragmentPackageImpl.Literals.MODEL_FRAGMENTS__IMPORTS, eObject); - - if (cmd.canExecute()) { - getEditingDomain().getCommandStack().execute(cmd); - getEditor().setSelection(eObject); - } - } - }); + tableElement.getDropDown().setContentProvider(new ArrayContentProvider()); + tableElement.getDropDown().setLabelProvider(new LabelProvider() { + @Override + public String getText(Object element) { + FeatureClass eclass = (FeatureClass) element; + return eclass.label; + } + }); + tableElement.getDropDown().setComparator(new ViewerComparator() { + @Override + public int compare(Viewer viewer, Object e1, Object e2) { + FeatureClass eClass1 = (FeatureClass) e1; + FeatureClass eClass2 = (FeatureClass) e2; + return eClass1.label.compareTo(eClass2.label); + } + }); - b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); - b.setText(Messages.ModelTooling_Common_Remove); - b.setImage(createImage(ResourceProvider.IMG_Obj16_table_delete)); - b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 2, 1)); - b.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - if (!viewer.getSelection().isEmpty()) { - List<?> elements = ((IStructuredSelection) viewer.getSelection()).toList(); + List<FeatureClass> list = new ArrayList<FeatureClass>(); + Util.addClasses(ApplicationPackageImpl.eINSTANCE, list); + list.addAll(getEditor().getFeatureClasses(FragmentPackageImpl.Literals.MODEL_FRAGMENT, FragmentPackageImpl.Literals.MODEL_FRAGMENTS__IMPORTS)); - Command cmd = RemoveCommand.create(getEditingDomain(), getMaster().getValue(), FragmentPackageImpl.Literals.MODEL_FRAGMENTS__IMPORTS, elements); - if (cmd.canExecute()) { - getEditingDomain().getCommandStack().execute(cmd); - } - } - } - }); - } + tableElement.getDropDown().setInput(list); + tableElement.getDropDown().getCombo().select(0); folder.setSelection(0); return folder; } - public void addClasses(EPackage ePackage, List<FeatureClass> list) { - for (EClassifier c : ePackage.getEClassifiers()) { - if (c instanceof EClass) { - EClass eclass = (EClass) c; - if (eclass != ApplicationPackageImpl.Literals.APPLICATION && !eclass.isAbstract() && !eclass.isInterface() && eclass.getEAllSuperTypes().contains(ApplicationPackageImpl.Literals.APPLICATION_ELEMENT)) { - list.add(new FeatureClass(eclass.getName(), eclass)); - } - } - } - - for (EPackage eSubPackage : ePackage.getESubpackages()) { - addClasses(eSubPackage, list); - } - } - @Override public IObservableList getChildList(Object element) { return null; |