Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Descher2013-02-14 10:08:02 +0000
committerSopot Cela2013-02-14 10:08:02 +0000
commit51f489d9ffc933a38e36b3cb762b1d738d8ef18c (patch)
tree826d6817414dd8615bce4d19c5a3764be7f50fbd
parent0da26e682be49fad818a9bddd0cc5b8b065cd91c (diff)
downloadorg.eclipse.e4.tools-I20130215-0900.tar.gz
org.eclipse.e4.tools-I20130215-0900.tar.xz
org.eclipse.e4.tools-I20130215-0900.zip
Bug 397650 - [Menu|Toolbar|Trim] Contributions to not feature "AddI20130220-1100I20130219-2200I20130215-1230I20130215-0900I20130214-2200
child" action
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuContributionEditor.java53
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolBarContributionEditor.java54
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/TrimContributionEditor.java40
3 files changed, 147 insertions, 0 deletions
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuContributionEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuContributionEditor.java
index e0e8e86f..d14fca00 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuContributionEditor.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuContributionEditor.java
@@ -7,10 +7,13 @@
*
* Contributors:
* Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
+ * Marco Descher <marco@descher.at> - https://bugs.eclipse.org/397650
******************************************************************************/
package org.eclipse.e4.tools.emf.ui.internal.common.component;
+import java.util.ArrayList;
import java.util.List;
+import javax.annotation.PostConstruct;
import javax.inject.Inject;
import org.eclipse.core.databinding.observable.list.IObservableList;
import org.eclipse.core.databinding.observable.value.WritableValue;
@@ -37,6 +40,7 @@ import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.edit.command.AddCommand;
import org.eclipse.emf.edit.command.RemoveCommand;
+import org.eclipse.jface.action.Action;
import org.eclipse.jface.databinding.swt.IWidgetValueProperty;
import org.eclipse.jface.databinding.swt.WidgetProperties;
import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
@@ -66,6 +70,7 @@ public class MenuContributionEditor extends AbstractComponentEditor {
private IListProperty ELEMENT_CONTAINER__CHILDREN = EMFProperties.list(UiPackageImpl.Literals.ELEMENT_CONTAINER__CHILDREN);
private EStackLayout stackLayout;
+ private List<Action> actions = new ArrayList<Action>();
private static class Struct {
private final String label;
@@ -84,6 +89,34 @@ public class MenuContributionEditor extends AbstractComponentEditor {
super();
}
+ @PostConstruct
+ void init() {
+ actions.add(new Action(Messages.MenuEditor_AddHandledMenuItem, createImageDescriptor(ResourceProvider.IMG_HandledMenuItem)) {
+ @Override
+ public void run() {
+ handleAdd(MenuPackageImpl.Literals.HANDLED_MENU_ITEM, false);
+ }
+ });
+ actions.add(new Action(Messages.MenuEditor_AddMenu, createImageDescriptor(ResourceProvider.IMG_Menu)) {
+ @Override
+ public void run() {
+ handleAdd(MenuPackageImpl.Literals.MENU, false);
+ }
+ });
+ actions.add(new Action(Messages.MenuEditor_AddDirectMenuItem, createImageDescriptor(ResourceProvider.IMG_DirectMenuItem)) {
+ @Override
+ public void run() {
+ handleAdd(MenuPackageImpl.Literals.DIRECT_MENU_ITEM, false);
+ }
+ });
+ actions.add(new Action(Messages.MenuEditor_AddSeparator, createImageDescriptor(ResourceProvider.IMG_MenuSeparator)) {
+ @Override
+ public void run() {
+ handleAdd(MenuPackageImpl.Literals.MENU_SEPARATOR, true);
+ }
+ });
+ }
+
@Override
public Image getImage(Object element, Display display) {
if (element instanceof MUIElement) {
@@ -327,4 +360,24 @@ public class MenuContributionEditor extends AbstractComponentEditor {
public FeaturePath[] getLabelProperties() {
return new FeaturePath[] { FeaturePath.fromList(UiPackageImpl.Literals.UI_ELEMENT__TO_BE_RENDERED) };
}
+
+ protected void handleAdd(EClass eClass, boolean separator) {
+ MMenuElement eObject = (MMenuElement) EcoreUtil.create(eClass);
+ setElementId(eObject);
+ Command cmd = AddCommand.create(getEditingDomain(), getMaster().getValue(), UiPackageImpl.Literals.ELEMENT_CONTAINER__CHILDREN, eObject);
+
+ if (cmd.canExecute()) {
+ getEditingDomain().getCommandStack().execute(cmd);
+ if (!separator) {
+ getEditor().setSelection(eObject);
+ }
+ }
+ }
+
+ @Override
+ public List<Action> getActions(Object element) {
+ ArrayList<Action> l = new ArrayList<Action>(super.getActions(element));
+ l.addAll(actions);
+ return l;
+ }
}
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolBarContributionEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolBarContributionEditor.java
index 87980782..2c16a0a9 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolBarContributionEditor.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolBarContributionEditor.java
@@ -7,10 +7,13 @@
*
* Contributors:
* Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
+ * Marco Descher <marco@descher.at> - https://bugs.eclipse.org/397650
******************************************************************************/
package org.eclipse.e4.tools.emf.ui.internal.common.component;
+import java.util.ArrayList;
import java.util.List;
+import javax.annotation.PostConstruct;
import javax.inject.Inject;
import org.eclipse.core.databinding.observable.list.IObservableList;
import org.eclipse.core.databinding.observable.value.WritableValue;
@@ -40,6 +43,7 @@ import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.edit.command.AddCommand;
import org.eclipse.emf.edit.command.RemoveCommand;
+import org.eclipse.jface.action.Action;
import org.eclipse.jface.databinding.swt.IWidgetValueProperty;
import org.eclipse.jface.databinding.swt.WidgetProperties;
import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
@@ -70,6 +74,7 @@ public class ToolBarContributionEditor extends AbstractComponentEditor {
private IListProperty ELEMENT_CONTAINER__CHILDREN = EMFProperties.list(UiPackageImpl.Literals.ELEMENT_CONTAINER__CHILDREN);
private EStackLayout stackLayout;
+ private List<Action> actions = new ArrayList<Action>();
@Inject
@Optional
@@ -92,6 +97,34 @@ public class ToolBarContributionEditor extends AbstractComponentEditor {
super();
}
+ @PostConstruct
+ void init() {
+ actions.add(new Action(Messages.ToolBarEditor_AddHandledToolItem, createImageDescriptor(ResourceProvider.IMG_HandledToolItem)) {
+ @Override
+ public void run() {
+ handleAddChild(MenuPackageImpl.Literals.HANDLED_TOOL_ITEM, false);
+ }
+ });
+ actions.add(new Action(Messages.ToolBarEditor_AddDirectToolItem, createImageDescriptor(ResourceProvider.IMG_DirectToolItem)) {
+ @Override
+ public void run() {
+ handleAddChild(MenuPackageImpl.Literals.DIRECT_TOOL_ITEM, false);
+ }
+ });
+ actions.add(new Action(Messages.ToolBarEditor_AddToolControl, createImageDescriptor(ResourceProvider.IMG_ToolControl)) {
+ @Override
+ public void run() {
+ handleAddChild(MenuPackageImpl.Literals.TOOL_CONTROL, false);
+ }
+ });
+ actions.add(new Action(Messages.ToolBarEditor_AddToolBarSeparator, createImageDescriptor(ResourceProvider.IMG_ToolBarSeparator)) {
+ @Override
+ public void run() {
+ handleAddChild(MenuPackageImpl.Literals.TOOL_BAR_SEPARATOR, true);
+ }
+ });
+ }
+
@Override
public Image getImage(Object element, Display display) {
if (element instanceof MUIElement) {
@@ -353,4 +386,25 @@ public class ToolBarContributionEditor extends AbstractComponentEditor {
public FeaturePath[] getLabelProperties() {
return new FeaturePath[] { FeaturePath.fromList(UiPackageImpl.Literals.UI_ELEMENT__TO_BE_RENDERED) };
}
+
+ @Override
+ public List<Action> getActions(Object element) {
+ ArrayList<Action> l = new ArrayList<Action>(super.getActions(element));
+ l.addAll(actions);
+ return l;
+ }
+
+ protected void handleAddChild(EClass eClass, boolean separator) {
+ MToolBarElement eObject = (MToolBarElement) EcoreUtil.create(eClass);
+ setElementId(eObject);
+
+ Command cmd = AddCommand.create(getEditingDomain(), getMaster().getValue(), UiPackageImpl.Literals.ELEMENT_CONTAINER__CHILDREN, eObject);
+
+ if (cmd.canExecute()) {
+ getEditingDomain().getCommandStack().execute(cmd);
+ if (!separator) {
+ getEditor().setSelection(eObject);
+ }
+ }
+ }
}
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/TrimContributionEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/TrimContributionEditor.java
index ab9254ff..5c56b500 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/TrimContributionEditor.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/TrimContributionEditor.java
@@ -7,10 +7,13 @@
*
* Contributors:
* Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
+ * Marco Descher <marco@descher.at> - https://bugs.eclipse.org/397650
******************************************************************************/
package org.eclipse.e4.tools.emf.ui.internal.common.component;
+import java.util.ArrayList;
import java.util.List;
+import javax.annotation.PostConstruct;
import javax.inject.Inject;
import org.eclipse.core.databinding.observable.list.IObservableList;
import org.eclipse.core.databinding.observable.value.WritableValue;
@@ -39,6 +42,7 @@ import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.edit.command.AddCommand;
import org.eclipse.emf.edit.command.RemoveCommand;
+import org.eclipse.jface.action.Action;
import org.eclipse.jface.databinding.swt.IWidgetValueProperty;
import org.eclipse.jface.databinding.swt.WidgetProperties;
import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
@@ -69,6 +73,7 @@ public class TrimContributionEditor extends AbstractComponentEditor {
private IListProperty ELEMENT_CONTAINER__CHILDREN = EMFProperties.list(UiPackageImpl.Literals.ELEMENT_CONTAINER__CHILDREN);
private EStackLayout stackLayout;
+ private List<Action> actions = new ArrayList<Action>();
@Inject
@Optional
@@ -79,6 +84,22 @@ public class TrimContributionEditor extends AbstractComponentEditor {
super();
}
+ @PostConstruct
+ void init() {
+ actions.add(new Action(Messages.TrimBarEditor_AddToolBar, createImageDescriptor(ResourceProvider.IMG_ToolBar)) {
+ @Override
+ public void run() {
+ handleAddChild(MenuPackageImpl.Literals.TOOL_BAR);
+ }
+ });
+ actions.add(new Action(Messages.TrimBarEditor_AddToolControl, createImageDescriptor(ResourceProvider.IMG_ToolControl)) {
+ @Override
+ public void run() {
+ handleAddChild(MenuPackageImpl.Literals.TOOL_CONTROL);
+ }
+ });
+ }
+
@Override
public Image getImage(Object element, Display display) {
if (element instanceof MUIElement) {
@@ -329,4 +350,23 @@ public class TrimContributionEditor extends AbstractComponentEditor {
public FeaturePath[] getLabelProperties() {
return new FeaturePath[] { FeaturePath.fromList(UiPackageImpl.Literals.UI_ELEMENT__TO_BE_RENDERED) };
}
+
+ protected void handleAddChild(EClass eClass) {
+ EObject toolbar = EcoreUtil.create(eClass);
+ setElementId(toolbar);
+
+ Command cmd = AddCommand.create(getEditingDomain(), getMaster().getValue(), UiPackageImpl.Literals.ELEMENT_CONTAINER__CHILDREN, toolbar);
+
+ if (cmd.canExecute()) {
+ getEditingDomain().getCommandStack().execute(cmd);
+ getEditor().setSelection(toolbar);
+ }
+ }
+
+ @Override
+ public List<Action> getActions(Object element) {
+ ArrayList<Action> l = new ArrayList<Action>(super.getActions(element));
+ l.addAll(actions);
+ return l;
+ }
}

Back to the top