Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Schindl2014-02-06 12:50:26 +0000
committerTom Schindl2014-02-06 12:50:26 +0000
commitceeb9dfaaf7711800ae34768f2f7dadcebd9790d (patch)
tree53f87cc7d164f50855e9f66f869c75b9b735b57d /bundles
parent697b66f24aac90375360caef3c244b52c767d506 (diff)
downloadorg.eclipse.e4.tools-ceeb9dfaaf7711800ae34768f2f7dadcebd9790d.tar.gz
org.eclipse.e4.tools-ceeb9dfaaf7711800ae34768f2f7dadcebd9790d.tar.xz
org.eclipse.e4.tools-ceeb9dfaaf7711800ae34768f2f7dadcebd9790d.zip
Bug 427558 - [e4xmi] Children DropDown of MPartStack &
MPartSashContainer should consult IEditorFeature contributions
Diffstat (limited to 'bundles')
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/common/IEditorFeature.java10
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/common/component/AbstractComponentEditor.java5
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java3
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartSashContainerEditor.java24
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartStackEditor.java30
5 files changed, 61 insertions, 11 deletions
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/common/IEditorFeature.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/common/IEditorFeature.java
index fdcf4cb0..21a8f120 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/common/IEditorFeature.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/common/IEditorFeature.java
@@ -21,10 +21,18 @@ import org.eclipse.emf.ecore.EStructuralFeature;
public interface IEditorFeature {
public class FeatureClass {
public final String label;
+ public final String iconId;
public final EClass eClass;
public FeatureClass(String label, EClass eClass) {
this.label = label;
+ this.iconId = null;
+ this.eClass = eClass;
+ }
+
+ public FeatureClass(String label, String iconId, EClass eClass) {
+ this.label = label;
+ this.iconId = iconId;
this.eClass = eClass;
}
}
@@ -33,7 +41,7 @@ public interface IEditorFeature {
* Return a list of {@link FeatureClass} elements, where
* {@link FeatureClass#eClass} must be castable to <b>eClass</b> and will be
* stored in <b>feature</b>.
- *
+ *
* @param eClass
* your contribution must be castable to
* @param feature
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/common/component/AbstractComponentEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/common/component/AbstractComponentEditor.java
index 718c5a74..32868cf8 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/common/component/AbstractComponentEditor.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/common/component/AbstractComponentEditor.java
@@ -101,6 +101,9 @@ public abstract class AbstractComponentEditor {
}
public ImageDescriptor createImageDescriptor(String key) {
+ if (key == null) {
+ return null;
+ }
return ImageDescriptor.createFromImage(createImage(key));
}
@@ -132,7 +135,7 @@ public abstract class AbstractComponentEditor {
* Translates an input <code>String</code> using the current
* {@link ResourceBundleTranslationProvider} and <code>locale</code> from
* the {@link TranslationService}.
- *
+ *
* @param string
* the string to translate, may not be null.
* @return the translated string or the input string if it could not be
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java
index c9ecf03b..d0285fe9 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java
@@ -376,12 +376,12 @@ public class ModelEditor {
context.set(IProject.class, project);
}
+ loadEditorFeatures();
registerDefaultEditors();
registerVirtualEditors();
registerContributedEditors();
registerContributedVirtualEditors();
- loadEditorFeatures();
loadContributionCreators();
fragment = modelProvider.getRoot().get(0) instanceof MModelFragments;
@@ -719,6 +719,7 @@ public class ModelEditor {
if (noSelected > 0) {
if ((!isModelFragment()) && modelExtractor != null)
manager.add(new Action(messages.ModelEditor_ExtractFragment, ImageDescriptor.createFromImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_ModelFragments))) {
+ @Override
public void run() {
ArrayList<MApplicationElement> maes = new ArrayList<MApplicationElement>();
for (Object objSelect : listOfSelections) {
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartSashContainerEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartSashContainerEditor.java
index 71f27ab6..384e67d1 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartSashContainerEditor.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartSashContainerEditor.java
@@ -20,6 +20,7 @@ import org.eclipse.core.databinding.property.list.IListProperty;
import org.eclipse.core.resources.IProject;
import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.tools.emf.ui.common.EStackLayout;
+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;
@@ -137,6 +138,15 @@ public class PartSashContainerEditor extends AbstractComponentEditor {
handleAddChild(AdvancedPackageImpl.Literals.PLACEHOLDER);
}
});
+ for (FeatureClass c : getEditor().getFeatureClasses(BasicPackageImpl.Literals.PART_STACK, UiPackageImpl.Literals.ELEMENT_CONTAINER__CHILDREN)) {
+ final EClass ec = c.eClass;
+ actions.add(new Action(c.label, createImageDescriptor(c.iconId)) {
+ @Override
+ public void run() {
+ handleAddChild(ec);
+ }
+ });
+ }
// --- Import Actions ---
actionsImport.add(new Action("Views", createImageDescriptor(ResourceProvider.IMG_Part)) {
@@ -296,8 +306,16 @@ public class PartSashContainerEditor extends AbstractComponentEditor {
return eclass.getName();
}
});
- childrenDropDown.setInput(new EClass[] { BasicPackageImpl.Literals.PART_SASH_CONTAINER, BasicPackageImpl.Literals.PART_STACK, BasicPackageImpl.Literals.PART, BasicPackageImpl.Literals.INPUT_PART, AdvancedPackageImpl.Literals.AREA, AdvancedPackageImpl.Literals.PLACEHOLDER });
- childrenDropDown.setSelection(new StructuredSelection(BasicPackageImpl.Literals.PART_SASH_CONTAINER));
+ List<FeatureClass> eClassList = new ArrayList<FeatureClass>();
+ eClassList.add(new FeatureClass("PartSashContainer", BasicPackageImpl.Literals.PART_SASH_CONTAINER));
+ eClassList.add(new FeatureClass("PartStack", BasicPackageImpl.Literals.PART_STACK));
+ eClassList.add(new FeatureClass("Part", BasicPackageImpl.Literals.PART));
+ eClassList.add(new FeatureClass("InputPart", BasicPackageImpl.Literals.INPUT_PART));
+ eClassList.add(new FeatureClass("Area", AdvancedPackageImpl.Literals.AREA));
+ eClassList.add(new FeatureClass("Placeholder", AdvancedPackageImpl.Literals.PLACEHOLDER));
+ eClassList.addAll(getEditor().getFeatureClasses(BasicPackageImpl.Literals.PART_SASH_CONTAINER, UiPackageImpl.Literals.ELEMENT_CONTAINER__CHILDREN));
+
+ childrenDropDown.setSelection(new StructuredSelection(eClassList.get(0)));
Button b = new Button(buttonCompTop, SWT.PUSH | SWT.FLAT);
b.setText(Messages.ModelTooling_Common_AddEllipsis);
@@ -307,7 +325,7 @@ public class PartSashContainerEditor extends AbstractComponentEditor {
@Override
public void widgetSelected(SelectionEvent e) {
if (!childrenDropDown.getSelection().isEmpty()) {
- EClass eClass = (EClass) ((IStructuredSelection) childrenDropDown.getSelection()).getFirstElement();
+ EClass eClass = ((FeatureClass) ((IStructuredSelection) childrenDropDown.getSelection()).getFirstElement()).eClass;
handleAddChild(eClass);
}
}
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartStackEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartStackEditor.java
index e36cddf6..6d2fa6cb 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartStackEditor.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartStackEditor.java
@@ -20,6 +20,7 @@ import org.eclipse.core.databinding.property.list.IListProperty;
import org.eclipse.core.resources.IProject;
import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.tools.emf.ui.common.EStackLayout;
+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;
@@ -115,6 +116,20 @@ public class PartStackEditor extends AbstractComponentEditor {
}
});
+ List<FeatureClass> list = getEditor().getFeatureClasses(BasicPackageImpl.Literals.PART_STACK, UiPackageImpl.Literals.ELEMENT_CONTAINER__CHILDREN);
+
+ if (!list.isEmpty()) {
+ for (FeatureClass c : list) {
+ final EClass ec = c.eClass;
+ actions.add(new Action(c.label, createImageDescriptor(c.iconId)) {
+ @Override
+ public void run() {
+ handleAddChild(ec);
+ }
+ });
+ }
+ }
+
// --- Import Actions ---
actionsImport.add(new Action("Views", createImageDescriptor(ResourceProvider.IMG_Part)) {
@Override
@@ -236,12 +251,17 @@ public class PartStackEditor extends AbstractComponentEditor {
childrenDropDown.setLabelProvider(new LabelProvider() {
@Override
public String getText(Object element) {
- EClass eclass = (EClass) element;
- return eclass.getName();
+ FeatureClass eclass = (FeatureClass) element;
+ return eclass.label;
}
});
- childrenDropDown.setInput(new EClass[] { BasicPackageImpl.Literals.PART, BasicPackageImpl.Literals.INPUT_PART, AdvancedPackageImpl.Literals.PLACEHOLDER });
- childrenDropDown.setSelection(new StructuredSelection(BasicPackageImpl.Literals.PART));
+ List<FeatureClass> eClassList = new ArrayList<FeatureClass>();
+ eClassList.add(new FeatureClass("Part", BasicPackageImpl.Literals.PART));
+ eClassList.add(new FeatureClass("Input Part", BasicPackageImpl.Literals.INPUT_PART));
+ eClassList.add(new FeatureClass("Placeholder", AdvancedPackageImpl.Literals.PLACEHOLDER));
+ eClassList.addAll(getEditor().getFeatureClasses(BasicPackageImpl.Literals.PART_STACK, UiPackageImpl.Literals.ELEMENT_CONTAINER__CHILDREN));
+ childrenDropDown.setInput(eClassList);
+ childrenDropDown.setSelection(new StructuredSelection(eClassList.get(0)));
Button b = new Button(buttonCompTop, SWT.PUSH | SWT.FLAT);
b.setText(Messages.ModelTooling_Common_AddEllipsis);
@@ -250,7 +270,7 @@ public class PartStackEditor extends AbstractComponentEditor {
b.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
- EClass eClass = (EClass) ((IStructuredSelection) childrenDropDown.getSelection()).getFirstElement();
+ EClass eClass = ((FeatureClass) ((IStructuredSelection) childrenDropDown.getSelection()).getFirstElement()).eClass;
handleAddChild(eClass);
}
});

Back to the top