Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Schindl2010-04-19 13:44:57 +0000
committerThomas Schindl2010-04-19 13:44:57 +0000
commitd3b6e233892b8535b5b0f69d29e835c96ef2323a (patch)
treefb407fa120368bf80036139261519b1f7ada0e4c
parentb023ef8d3f55b73e1f0f2e88477e9e5c0805ad61 (diff)
downloadorg.eclipse.e4.tools-d3b6e233892b8535b5b0f69d29e835c96ef2323a.tar.gz
org.eclipse.e4.tools-d3b6e233892b8535b5b0f69d29e835c96ef2323a.tar.xz
org.eclipse.e4.tools-d3b6e233892b8535b5b0f69d29e835c96ef2323a.zip
[Bug 309616] - [UI][ModelEditor] No support for the new 'Addons' attribute in the editorsv20100419-1030a
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java14
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties7
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java8
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/AddonsEditor.java119
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ApplicationEditor.java10
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/virtual/VApplicationAddons.java213
6 files changed, 359 insertions, 12 deletions
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java
index d1602bed..a0e5788c 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java
@@ -22,6 +22,7 @@ public class Messages {
public static String ApplicationEditor_BindingTables;
public static String ApplicationEditor_Commands;
public static String ApplicationEditor_Windows;
+ public static String ApplicationEditor_Addons;
public static String BindingTableEditor_Label;
public static String BindingTableEditor_Description;
@@ -293,16 +294,9 @@ public class Messages {
public static String VBindingTableEditor_Add;
public static String VBindingTableEditor_Remove;
-
-
-
-
-
-
-
-
-
-
+ public static String AddonsEditor_Id;
+ public static String AddonsEditor_ClassURI;
+ public static String AddonsEditor_Find;
static {
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties
index 290dd336..025e972b 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties
@@ -16,6 +16,7 @@ ApplicationEditor_PartDescriptors=Part Descriptors
ApplicationEditor_BindingTables=BindingTables
ApplicationEditor_Commands=Commands
ApplicationEditor_Windows=Windows
+ApplicationEditor_Addons=Addons
BindingTableEditor_Label=BindingTable
BindingTableEditor_Description=BindingTable bla bla bla
@@ -285,4 +286,8 @@ VBindingTableEditor_Id=Id
VBindingTableEditor_Up=Up
VBindingTableEditor_Down=Down
VBindingTableEditor_Add=Add ...
-VBindingTableEditor_Remove=Remove \ No newline at end of file
+VBindingTableEditor_Remove=Remove
+
+AddonsEditor_Id=Id
+AddonsEditor_ClassURI=Class URI
+AddonsEditor_Find=Find ... \ No newline at end of file
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 eef4517e..7c4c854e 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
@@ -30,6 +30,7 @@ import org.eclipse.core.runtime.Status;
import org.eclipse.e4.tools.emf.ui.common.IModelResource;
import org.eclipse.e4.tools.emf.ui.common.component.AbstractComponentEditor;
import org.eclipse.e4.tools.emf.ui.internal.ShadowComposite;
+import org.eclipse.e4.tools.emf.ui.internal.common.component.AddonsEditor;
import org.eclipse.e4.tools.emf.ui.internal.common.component.ApplicationEditor;
import org.eclipse.e4.tools.emf.ui.internal.common.component.BindingTableEditor;
import org.eclipse.e4.tools.emf.ui.internal.common.component.DirectMenuItemEditor;
@@ -57,6 +58,7 @@ import org.eclipse.e4.tools.emf.ui.internal.common.component.ToolControlEditor;
import org.eclipse.e4.tools.emf.ui.internal.common.component.TrimBarEditor;
import org.eclipse.e4.tools.emf.ui.internal.common.component.TrimmedWindowEditor;
import org.eclipse.e4.tools.emf.ui.internal.common.component.WindowEditor;
+import org.eclipse.e4.tools.emf.ui.internal.common.component.virtual.VApplicationAddons;
import org.eclipse.e4.tools.emf.ui.internal.common.component.virtual.VBindingTableEditor;
import org.eclipse.e4.tools.emf.ui.internal.common.component.virtual.VCommandEditor;
import org.eclipse.e4.tools.emf.ui.internal.common.component.virtual.VWindowControlEditor;
@@ -110,6 +112,7 @@ public class ModelEditor {
public static final int VIRTUAL_MODEL_COMP_BINDINGS = 9;
public static final int VIRTUAL_PARTDESCRIPTOR_MENU = 10;
public static final int VIRTUAL_TRIMMED_WINDOW_TRIMS = 11;
+ public static final int VIRTUAL_ADDONS = 12;
private Map<EClass, AbstractComponentEditor> editorMap = new HashMap<EClass, AbstractComponentEditor>();
private AbstractComponentEditor[] virtualEditors;
@@ -283,7 +286,8 @@ public class ModelEditor {
new VCommandEditor(modelProvider.getEditingDomain(), this, ApplicationPackageImpl.Literals.MODEL_COMPONENT__COMMANDS),
new VModelComponentBindingEditor(modelProvider.getEditingDomain(), this),
new VMenuEditor(modelProvider.getEditingDomain(), this, org.eclipse.e4.ui.model.application.descriptor.basic.impl.BasicPackageImpl.Literals.PART_DESCRIPTOR__MENUS),
- new VWindowTrimEditor(modelProvider.getEditingDomain(), this)
+ new VWindowTrimEditor(modelProvider.getEditingDomain(), this),
+ new VApplicationAddons(modelProvider.getEditingDomain(), this)
};
}
@@ -295,6 +299,8 @@ public class ModelEditor {
registerEditor(ApplicationPackageImpl.Literals.APPLICATION, new ApplicationEditor(modelProvider.getEditingDomain()));
registerEditor(ApplicationPackageImpl.Literals.MODEL_COMPONENTS, new ModelComponentsEditor(modelProvider.getEditingDomain(),this));
registerEditor(ApplicationPackageImpl.Literals.MODEL_COMPONENT, new ModelComponentEditor(modelProvider.getEditingDomain()));
+ registerEditor(ApplicationPackageImpl.Literals.ADDON, new AddonsEditor(modelProvider.getEditingDomain(),project));
+
registerEditor(CommandsPackageImpl.Literals.KEY_BINDING, new KeyBindingEditor(modelProvider.getEditingDomain(),modelProvider));
registerEditor(CommandsPackageImpl.Literals.HANDLER, new HandlerEditor(modelProvider.getEditingDomain(),modelProvider,project));
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/AddonsEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/AddonsEditor.java
new file mode 100644
index 00000000..990de1fd
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/AddonsEditor.java
@@ -0,0 +1,119 @@
+package org.eclipse.e4.tools.emf.ui.internal.common.component;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.e4.tools.emf.ui.common.component.AbstractComponentEditor;
+import org.eclipse.e4.tools.emf.ui.internal.Messages;
+import org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.ContributionClassDialog;
+import org.eclipse.e4.ui.model.application.MContribution;
+import org.eclipse.e4.ui.model.application.impl.ApplicationPackageImpl;
+import org.eclipse.emf.databinding.EMFDataBindingContext;
+import org.eclipse.emf.databinding.edit.EMFEditProperties;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.jface.databinding.swt.IWidgetValueProperty;
+import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.swt.SWT;
+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;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+
+public class AddonsEditor extends AbstractComponentEditor {
+ private Composite composite;
+ private EMFDataBindingContext context;
+ private IProject project;
+
+ public AddonsEditor(EditingDomain editingDomain, IProject project) {
+ super(editingDomain);
+ this.project = project;
+ }
+
+ @Override
+ public Image getImage(Object element, Display display) {
+ return null;
+ }
+
+ @Override
+ public String getLabel(Object element) {
+ return "Addon";
+ }
+
+ @Override
+ public String getDetailLabel(Object element) {
+ MContribution contrib = (MContribution) element;
+ if( contrib.getContributionURI() != null && contrib.getContributionURI().trim().length() > 0 ) {
+ return contrib.getContributionURI().substring(contrib.getContributionURI().lastIndexOf('/')+1);
+ }
+ return null;
+ }
+
+ @Override
+ public String getDescription(Object element) {
+ return "Addon Bla Bla Bla";
+ }
+
+ @Override
+ public Composite getEditor(Composite parent, Object object) {
+ if( composite == null ) {
+ context = new EMFDataBindingContext();
+ composite = createForm(parent,context);
+ }
+ getMaster().setValue(object);
+ return composite;
+ }
+
+ protected Composite createForm(Composite parent, EMFDataBindingContext context) {
+ parent = new Composite(parent, SWT.NONE);
+ parent.setLayout(new GridLayout(3, false));
+
+ IWidgetValueProperty textProp = WidgetProperties.text(SWT.Modify);
+
+ {
+ Label l = new Label(parent, SWT.NONE);
+ l.setText(Messages.AddonsEditor_Id);
+
+ Text t = new Text(parent, SWT.BORDER);
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 2;
+ t.setLayoutData(gd);
+ context.bindValue(textProp.observeDelayed(200,t), EMFEditProperties.value(getEditingDomain(), ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__ELEMENT_ID).observeDetail(getMaster()));
+ }
+
+ // ------------------------------------------------------------
+ {
+ Label l = new Label(parent, SWT.NONE);
+ l.setText(Messages.AddonsEditor_ClassURI);
+
+ Text t = new Text(parent, SWT.BORDER);
+ t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ context.bindValue(textProp.observeDelayed(200,t), EMFEditProperties.value(getEditingDomain(), ApplicationPackageImpl.Literals.CONTRIBUTION__CONTRIBUTION_URI).observeDetail(getMaster()));
+
+ final Button b = new Button(parent, SWT.PUSH|SWT.FLAT);
+ b.setImage(getImage(t.getDisplay(), SEARCH_IMAGE));
+ b.setText(Messages.AddonsEditor_Find);
+ b.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ ContributionClassDialog dialog = new ContributionClassDialog(b.getShell(),project,getEditingDomain(),(MContribution) getMaster().getValue());
+ dialog.open();
+ }
+ });
+ }
+
+// ControlFactory.createBindingsWidget(parent, this);
+
+ return parent;
+ }
+
+ @Override
+ public IObservableList getChildList(Object element) {
+ return null;
+ }
+
+}
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ApplicationEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ApplicationEditor.java
index a63049b7..01dddf75 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ApplicationEditor.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ApplicationEditor.java
@@ -50,6 +50,7 @@ public class ApplicationEditor extends AbstractComponentEditor {
private IListProperty APPLICATION__COMMANDS = EMFProperties.list(ApplicationPackageImpl.Literals.APPLICATION__COMMANDS);
private IListProperty PART_DESCRIPTOR_CONTAINER__DESCRIPTORS = EMFProperties.list(BasicPackageImpl.Literals.PART_DESCRIPTOR_CONTAINER__DESCRIPTORS);
private IListProperty ELEMENT_CONTAINER__CHILDREN = EMFProperties.list(UiPackageImpl.Literals.ELEMENT_CONTAINER__CHILDREN);
+ private IListProperty APPLICATION__ADDONS = EMFProperties.list(ApplicationPackageImpl.Literals.APPLICATION__ADDONS);
public ApplicationEditor(EditingDomain editingDomain) {
super(editingDomain);
@@ -114,6 +115,15 @@ public class ApplicationEditor extends AbstractComponentEditor {
@Override
public IObservableList getChildList(Object element) {
WritableList list = new WritableList();
+ list.add(new VirtualEntry<Object>( ModelEditor.VIRTUAL_ADDONS, APPLICATION__ADDONS, element, Messages.ApplicationEditor_Addons) {
+
+ @Override
+ protected boolean accepted(Object o) {
+ return true;
+ }
+
+ });
+
list.add(new VirtualEntry<Object>( ModelEditor.VIRTUAL_HANDLER, HANDLER_CONTAINER__HANDLERS, element, Messages.ApplicationEditor_Handlers) {
@Override
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/virtual/VApplicationAddons.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/virtual/VApplicationAddons.java
new file mode 100644
index 00000000..1dcc077c
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/virtual/VApplicationAddons.java
@@ -0,0 +1,213 @@
+package org.eclipse.e4.tools.emf.ui.internal.common.component.virtual;
+
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.WritableValue;
+import org.eclipse.e4.tools.emf.ui.common.component.AbstractComponentEditor;
+import org.eclipse.e4.tools.emf.ui.internal.ObservableColumnLabelProvider;
+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.ui.model.application.MAddon;
+import org.eclipse.e4.ui.model.application.MApplication;
+import org.eclipse.e4.ui.model.application.MApplicationFactory;
+import org.eclipse.e4.ui.model.application.commands.MCommand;
+import org.eclipse.e4.ui.model.application.commands.MHandler;
+import org.eclipse.e4.ui.model.application.commands.impl.CommandsFactoryImpl;
+import org.eclipse.e4.ui.model.application.commands.impl.CommandsPackageImpl;
+import org.eclipse.e4.ui.model.application.impl.ApplicationPackageImpl;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.databinding.EMFDataBindingContext;
+import org.eclipse.emf.databinding.edit.EMFEditProperties;
+import org.eclipse.emf.databinding.edit.IEMFEditValueProperty;
+import org.eclipse.emf.edit.command.AddCommand;
+import org.eclipse.emf.edit.command.MoveCommand;
+import org.eclipse.emf.edit.command.RemoveCommand;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.swt.SWT;
+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;
+import org.eclipse.swt.widgets.Label;
+
+public class VApplicationAddons extends AbstractComponentEditor {
+ private Composite composite;
+ private ModelEditor editor;
+ private TableViewer viewer;
+ private EMFDataBindingContext context;
+
+ public VApplicationAddons(EditingDomain editingDomain, ModelEditor editor) {
+ super(editingDomain);
+ this.editor = editor;
+ }
+
+ @Override
+ public Image getImage(Object element, Display display) {
+ return null;
+ }
+
+ @Override
+ public String getLabel(Object element) {
+ return "Addons";
+ }
+
+ @Override
+ public String getDetailLabel(Object element) {
+ return null;
+ }
+
+ @Override
+ public String getDescription(Object element) {
+ return "Addons bla bla bla bla";
+ }
+
+ @Override
+ public Composite getEditor(Composite parent, Object object) {
+ if( composite == null ) {
+ context = new EMFDataBindingContext();
+ composite = createForm(parent,context, getMaster());
+ }
+ VirtualEntry<?> o = (VirtualEntry<?>)object;
+ viewer.setInput(o.getList());
+ getMaster().setValue(o.getOriginalParent());
+ return composite;
+ }
+
+ private Composite createForm(Composite parent, EMFDataBindingContext context,
+ WritableValue master) {
+ parent = new Composite(parent,SWT.NONE);
+ parent.setLayout(new GridLayout(3, false));
+
+ {
+ Label l = new Label(parent, SWT.NONE);
+ l.setText("Commands");
+ l.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
+
+ viewer = new TableViewer(parent);
+ ObservableListContentProvider cp = new ObservableListContentProvider();
+ viewer.setContentProvider(cp);
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.heightHint = 300;
+ viewer.getControl().setLayoutData(gd);
+ viewer.getTable().setHeaderVisible(true);
+ viewer.setLabelProvider(new ComponentLabelProvider(editor));
+
+ Composite buttonComp = new Composite(parent, SWT.NONE);
+ buttonComp.setLayoutData(new GridData(GridData.FILL,GridData.END,false,false));
+ GridLayout gl = new GridLayout();
+ 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("Up");
+ b.setImage(getImage(b.getDisplay(), ARROW_UP));
+ b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
+ 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();
+ MApplication container = (MApplication) getMaster().getValue();
+ int idx = container.getCommands().indexOf(obj) - 1;
+ if( idx >= 0 ) {
+ Command cmd = MoveCommand.create(getEditingDomain(), getMaster().getValue(), ApplicationPackageImpl.Literals.APPLICATION__ADDONS, obj, idx);
+
+ if( cmd.canExecute() ) {
+ getEditingDomain().getCommandStack().execute(cmd);
+ viewer.setSelection(new StructuredSelection(obj));
+ }
+ }
+
+ }
+ }
+ }
+ });
+
+ b = new Button(buttonComp, SWT.PUSH | SWT.FLAT);
+ b.setText("Down");
+ b.setImage(getImage(b.getDisplay(), ARROW_DOWN));
+ b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
+ 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();
+ MApplication container = (MApplication) getMaster().getValue();
+ int idx = container.getCommands().indexOf(obj) + 1;
+ if( idx < container.getCommands().size() ) {
+ Command cmd = MoveCommand.create(getEditingDomain(), getMaster().getValue(), ApplicationPackageImpl.Literals.APPLICATION__ADDONS, obj, idx);
+
+ if( cmd.canExecute() ) {
+ getEditingDomain().getCommandStack().execute(cmd);
+ viewer.setSelection(new StructuredSelection(obj));
+ }
+ }
+
+ }
+ }
+ }
+ });
+
+ b = new Button(buttonComp, SWT.PUSH | SWT.FLAT);
+ b.setText("Add ...");
+ b.setImage(getImage(b.getDisplay(), TABLE_ADD_IMAGE));
+ b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
+ b.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ MAddon command = MApplicationFactory.INSTANCE.createAddon();
+ Command cmd = AddCommand.create(getEditingDomain(), getMaster().getValue(), ApplicationPackageImpl.Literals.APPLICATION__ADDONS, command);
+
+ if( cmd.canExecute() ) {
+ getEditingDomain().getCommandStack().execute(cmd);
+ editor.setSelection(command);
+ }
+ }
+ });
+
+ b = new Button(buttonComp, SWT.PUSH | SWT.FLAT);
+ b.setText("Remove");
+ b.setImage(getImage(b.getDisplay(), TABLE_DELETE_IMAGE));
+ b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
+ b.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ if( ! viewer.getSelection().isEmpty() ) {
+ List<?> commands = ((IStructuredSelection)viewer.getSelection()).toList();
+ Command cmd = RemoveCommand.create(getEditingDomain(), getMaster().getValue(), ApplicationPackageImpl.Literals.APPLICATION__ADDONS, commands);
+ if( cmd.canExecute() ) {
+ getEditingDomain().getCommandStack().execute(cmd);
+ }
+ }
+ }
+ });
+ }
+
+ return parent;
+ }
+
+ @Override
+ public IObservableList getChildList(Object element) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}

Back to the top