Skip to content
Snippets Groups Projects
Commit 1dd15235 authored by Lukas Ladenberger's avatar Lukas Ladenberger
Browse files

added context menu with item delete action to observer wizards

parent 7ea629e5
No related branches found
No related tags found
No related merge requests found
/**
* (c) 2009 Lehrstuhl fuer Softwaretechnik und Programmiersprachen,
* Heinrich Heine Universitaet Duesseldorf
* This software is licenced under EPL 1.0 (http://www.eclipse.org/org/documents/epl-v10.html)
* */
package de.bmotionstudio.gef.editor.observer.wizard;
import java.util.Arrays;
import org.eclipse.core.databinding.observable.list.WritableList;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.widgets.Display;
import de.bmotionstudio.gef.editor.BMotionStudioImage;
public class WizardObserverDeleteItemsAction extends Action {
private TableViewer viewer;
public WizardObserverDeleteItemsAction(TableViewer viewer) {
this.viewer = viewer;
setText("Delete selected items");
setImageDescriptor(BMotionStudioImage.getImageDescriptor(
"org.eclipse.ui", "$nl$/icons/full/etool16/delete_edit.gif"));
}
@Override
public void run() {
IStructuredSelection sel = (IStructuredSelection) viewer.getSelection();
Object[] lobjects = sel.toArray();
if (MessageDialog.openConfirm(Display.getDefault().getActiveShell(),
"Please confirm", "Do you realy want to delete these objects?")) {
WritableList list = (WritableList) viewer.getInput();
list.removeAll(Arrays.asList(lobjects));
}
}
}
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
* */ * */
package de.bmotionstudio.gef.editor.util; package de.bmotionstudio.gef.editor.util;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.viewers.ColumnViewer; import org.eclipse.jface.viewers.ColumnViewer;
import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT; import org.eclipse.swt.SWT;
...@@ -18,6 +19,7 @@ import org.eclipse.swt.widgets.TableItem; ...@@ -18,6 +19,7 @@ import org.eclipse.swt.widgets.TableItem;
import de.bmotionstudio.gef.editor.BMotionStudioSWTConstants; import de.bmotionstudio.gef.editor.BMotionStudioSWTConstants;
import de.bmotionstudio.gef.editor.library.AttributeTransfer; import de.bmotionstudio.gef.editor.library.AttributeTransfer;
import de.bmotionstudio.gef.editor.observer.wizard.WizardObserverDeleteItemsAction;
import de.bmotionstudio.gef.editor.observer.wizard.WizardObserverDragListener; import de.bmotionstudio.gef.editor.observer.wizard.WizardObserverDragListener;
import de.bmotionstudio.gef.editor.observer.wizard.WizardObserverDropListener; import de.bmotionstudio.gef.editor.observer.wizard.WizardObserverDropListener;
...@@ -33,7 +35,7 @@ public class WizardObserverUtil { ...@@ -33,7 +35,7 @@ public class WizardObserverUtil {
public static TableViewer createObserverWizardTableViewer(Composite parent) { public static TableViewer createObserverWizardTableViewer(Composite parent) {
final TableViewer tableViewer = new TableViewer(parent, SWT.BORDER final TableViewer tableViewer = new TableViewer(parent, SWT.BORDER
| SWT.FULL_SELECTION); | SWT.FULL_SELECTION | SWT.MULTI);
tableViewer.setData("editElement", false); tableViewer.setData("editElement", false);
tableViewer.getTable().setLinesVisible(true); tableViewer.getTable().setLinesVisible(true);
tableViewer.getTable().setHeaderVisible(true); tableViewer.getTable().setHeaderVisible(true);
...@@ -47,6 +49,11 @@ public class WizardObserverUtil { ...@@ -47,6 +49,11 @@ public class WizardObserverUtil {
tableViewer.addDragSupport(operations, transferTypes, tableViewer.addDragSupport(operations, transferTypes,
new WizardObserverDragListener(tableViewer)); new WizardObserverDragListener(tableViewer));
MenuManager manager = new MenuManager();
tableViewer.getControl().setMenu(
manager.createContextMenu(tableViewer.getControl()));
manager.add(new WizardObserverDeleteItemsAction(tableViewer));
tableViewer.getTable().addListener(SWT.MouseDown, new Listener() { tableViewer.getTable().addListener(SWT.MouseDown, new Listener() {
public void handleEvent(Event event) { public void handleEvent(Event event) {
tableViewer.setData("editElement", false); tableViewer.setData("editElement", false);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment