Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWim Jongman2012-12-08 21:07:04 +0000
committerWim Jongman2012-12-08 21:07:04 +0000
commit3bff59f61da4404eb67235dfe1bac68cf07902de (patch)
tree8c96ff0f052354879a7fa848c2b6c8cd0b40e0af
parent48156b0490b65171049bd335cc6e47acc96dc916 (diff)
downloadorg.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
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ModelFragmentsEditor.java228
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/virtual/VModelImportsEditor.java200
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;

Back to the top