eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyViewPart.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyViewPartDataChangeBehavior.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/handler/DeleteHandler.java -text
-eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/handler/EditHandler.java -text
+eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/handler/EditPolytomousKeyNodesHandler.java -text
+eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/handler/NewPolytomousKeyHandler.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/operation/DeleteOperation.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/ClassificationContentProvider.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/ClassificationLabelProvider.java -text
<menuContribution
locationURI="popup:eu.etaxonomy.taxeditor.navigation.key.polytomous.polytomousKeyViewPart">
<command
- commandId="eu.etaxonomy.taxeditor.navigation.key.polytomous.edit"
+ commandId="eu.etaxonomy.taxeditor.navigation.key.polytomous.newKey"
+ label="New"
+ style="push">
+ </command>
+ <command
+ commandId="eu.etaxonomy.taxeditor.navigation.key.polytomous.editNodes"
label="Edit"
style="push">
</command>
<separator
- name="eu.etaxonomy.eu.polytomousKeyView.separator"
+ name="eu.etaxonomy.eu.polytomousKeyView.separator2"
visible="true">
</separator>
<command
<extension
point="org.eclipse.ui.commands">
<command
- defaultHandler="eu.etaxonomy.taxeditor.navigation.key.polytomous.handler.EditHandler"
- id="eu.etaxonomy.taxeditor.navigation.key.polytomous.edit"
- name="Edit Polytomous Key">
+ defaultHandler="eu.etaxonomy.taxeditor.navigation.key.polytomous.handler.NewPolytomousKeyHandler"
+ id="eu.etaxonomy.taxeditor.navigation.key.polytomous.newKey"
+ name="New Polytomous Key">
+ </command>
+ <command
+ defaultHandler="eu.etaxonomy.taxeditor.navigation.key.polytomous.handler.EditPolytomousKeyNodesHandler"
+ id="eu.etaxonomy.taxeditor.navigation.key.polytomous.editNodes"
+ name="Edit Polytomous Key Nodes">
</command>
</extension>
<extension
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IMemento;
public static final String ID = "eu.etaxonomy.taxeditor.navigation.key.polytomous.polytomousKeyViewPart";
- public static final String OPEN_COMMAND_ID = "eu.etaxonomy.taxeditor.navigation.key.polytomous.edit";
+ public static final String OPEN_COMMAND_ID = "eu.etaxonomy.taxeditor.navigation.key.polytomous.editNodes";
private class ContextListener extends ContextListenerAdapter{
/* (non-Javadoc)
viewer.addDoubleClickListener(new IDoubleClickListener() {
@Override
- public void doubleClick(DoubleClickEvent event) {
-
- ICommandService commandService = (ICommandService)getSite().getService(ICommandService.class);
-
- Command command = commandService.getCommand(OPEN_COMMAND_ID);
- if(command.isEnabled()) {
- IHandlerService handlerService = (IHandlerService)getSite().getService(IHandlerService.class);
- try {
- handlerService.executeCommand(OPEN_COMMAND_ID, null);
- } catch (NotDefinedException e) {
- throw new RuntimeException("Could not find open command: " + OPEN_COMMAND_ID);
- } catch (Exception e) {
- NavigationUtil.error(getClass(), "An exception occured while trying to open a selection", e);
- }
- }
+ public void doubleClick(DoubleClickEvent event) {
+ openSelectedKeyNodes();
}
});
+
getSite().setSelectionProvider(viewer);
createMenu();
}
}
+ public void openSelectedKeyNodes() {
+ ICommandService commandService = (ICommandService)getSite().getService(ICommandService.class);
+
+ Command command = commandService.getCommand(OPEN_COMMAND_ID);
+ if(command.isEnabled()) {
+ IHandlerService handlerService = (IHandlerService)getSite().getService(IHandlerService.class);
+ try {
+ handlerService.executeCommand(OPEN_COMMAND_ID, null);
+ } catch (NotDefinedException e) {
+ throw new RuntimeException("Could not find open command: " + OPEN_COMMAND_ID);
+ } catch (Exception e) {
+ NavigationUtil.error(getClass(), "An exception occured while trying to open a selection", e);
+ }
+ }
+ }
+
+ public void setViewerSelection(ISelection selection, boolean reveal) {
+ getSite().setSelectionProvider(viewer);
+ viewer.setSelection(selection,reveal);
+ viewer.getList().notifyListeners(SWT.Selection,new Event());
+ }
+
private void createMenu(){
MenuManager menuManager = new MenuManager();
menuManager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
* @created Dec 3, 2010
* @version 1.0
*/
-public class EditHandler extends AbstractHandler {
+public class EditPolytomousKeyNodesHandler extends AbstractHandler {
/* (non-Javadoc)
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
ISelection selection = view.getSite().getSelectionProvider().getSelection();
if(selection instanceof StructuredSelection){
+
final StructuredSelection structuredSelection = (StructuredSelection) selection;
-
+
Job job = new Job("Opening Polytomous Keys"){
@Override
Display.getDefault().asyncExec(new Runnable(){
@Override
- public void run() {
+ public void run() {
NavigationUtil.openEditor((PolytomousKey) selectedObject);
}
--- /dev/null
+// $Id$\r
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.taxeditor.navigation.key.polytomous.handler;\r
+\r
+import java.util.List;\r
+\r
+import org.eclipse.core.commands.AbstractHandler;\r
+import org.eclipse.core.commands.ExecutionEvent;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.common.NotDefinedException;\r
+import org.eclipse.jface.viewers.IStructuredSelection;\r
+import org.eclipse.jface.viewers.StructuredSelection;\r
+import org.eclipse.ui.commands.ICommandService;\r
+import org.eclipse.ui.handlers.HandlerUtil;\r
+import org.eclipse.ui.handlers.IHandlerService;\r
+\r
+import eu.etaxonomy.cdm.strategy.generate.PolytomousKeyGenerator;\r
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;\r
+import eu.etaxonomy.cdm.model.description.PolytomousKey;\r
+import eu.etaxonomy.taxeditor.navigation.NavigationUtil;\r
+import eu.etaxonomy.taxeditor.navigation.key.polytomous.PolytomousKeyViewPart;\r
+import eu.etaxonomy.taxeditor.navigation.key.polytomous.operation.DeleteOperation;\r
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;\r
+import eu.etaxonomy.taxeditor.store.CdmStore;\r
+\r
+import org.eclipse.core.commands.AbstractHandler;\r
+import org.eclipse.core.commands.Command;\r
+import org.eclipse.core.commands.ExecutionEvent;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.IHandler;\r
+import org.eclipse.core.runtime.IStatus;\r
+import org.eclipse.core.runtime.Status;\r
+import org.eclipse.jface.wizard.WizardDialog;\r
+import org.eclipse.ui.handlers.HandlerUtil;\r
+\r
+import eu.etaxonomy.taxeditor.navigation.NavigationUtil;\r
+import eu.etaxonomy.taxeditor.newWizard.NewPolytomousKeyWizard;\r
+import eu.etaxonomy.taxeditor.newWizard.NewTaxonNodeWizard;\r
+\r
+/**\r
+ * <p>NewTaxonNodeHandler class.</p>\r
+ *\r
+ * @author n.hoffmann\r
+ * @created Sep 15, 2009\r
+ * @version 1.0\r
+ */\r
+public class NewPolytomousKeyHandler extends AbstractHandler implements IHandler {\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)\r
+ */\r
+ /** {@inheritDoc} */\r
+ public Object execute(ExecutionEvent event) throws ExecutionException {\r
+ NewPolytomousKeyWizard wizard = new NewPolytomousKeyWizard();\r
+ wizard.init(null,null);\r
+ WizardDialog dialog = new WizardDialog(HandlerUtil.getActiveShell(event), wizard);\r
+ int status = dialog.open(); \r
+ if(status == Status.OK) { \r
+ PolytomousKeyViewPart view = (PolytomousKeyViewPart) NavigationUtil.getView(PolytomousKeyViewPart.ID, false); \r
+ List<PolytomousKey> pklist = CdmStore.getService(IPolytomousKeyService.class).list(PolytomousKey.class, null, null, null, null); \r
+ view.refresh(); \r
+ view.setViewerSelection(new StructuredSelection(wizard.getEntity()),true); \r
+ view.openSelectedKeyNodes(); \r
+ }\r
+ return null;\r
+ }\r
+}\r