eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/AbstractIdentificationEditorInput.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/KeyEditor.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/handler/ApplyLayoutHandler.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/IPolytomousKeyEditorPage.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyContentProvider.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyEditorInput.java -text
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyGraphEditor.java -text
<with
variable="activePartId">
<equals
- value="eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditor">
+ value="eu.etaxonomy.taxeditor.editor.key">
</equals>
</with>
</activeWhen>
--- /dev/null
+// $Id$
+/**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+
+package eu.etaxonomy.taxeditor.editor.key.polytomous;
+
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+
+/**
+ * @author n.hoffmann
+ * @created Apr 20, 2011
+ * @version 1.0
+ */
+public interface IPolytomousKeyEditorPage extends IPostOperationEnabled {
+
+}
* @author n.hoffmann
*
*/
-public class PolytomousKeyGraphEditor extends AbstractGraphKeyEditor<PolytomousKey> {
+public class PolytomousKeyGraphEditor extends
+ AbstractGraphKeyEditor<PolytomousKey> implements
+ IPolytomousKeyEditorPage {
public static final String ID = "eu.etaxonomy.taxeditor.editor.key.polytomous.graph";
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.description.PolytomousKey;
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
import eu.etaxonomy.cdm.model.taxon.Taxon;
* @version 1.0
*/
public class PolytomousKeyListEditor extends EditorPart implements
- IConversationEnabled, IDirtyMarkableSelectionProvider {
+ IConversationEnabled, IDirtyMarkableSelectionProvider,
+ IPolytomousKeyEditorPage {
private class LinkListener extends MouseAdapter {
/*
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * eu.etaxonomy.taxeditor.operation.IPostOperationEnabled#postOperation(
+ * eu.etaxonomy.cdm.model.common.CdmBase)
+ */
+ @Override
+ public boolean postOperation(CdmBase objectAffectedByOperation) {
+ viewer.refresh();
+ viewer.setSelection(new StructuredSelection(objectAffectedByOperation),
+ true);
+ return true;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see eu.etaxonomy.taxeditor.operation.IPostOperationEnabled#onComplete()
+ */
+ @Override
+ public boolean onComplete() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
}
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyGraphEditor;
+import eu.etaxonomy.taxeditor.editor.key.KeyEditor;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.IPolytomousKeyEditorPage;
import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.CreateNodeOperation;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
/**
* @author n.hoffmann
- *
+ *
*/
public class CreateNodeHandler extends AbstractHandler {
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.
+ * ExecutionEvent)
*/
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
-
+
IEditorPart editor = HandlerUtil.getActiveEditor(event);
-
- if(editor instanceof PolytomousKeyGraphEditor){
- PolytomousKeyGraphEditor keyEditor = (PolytomousKeyGraphEditor) editor;
-
- IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getActiveMenuSelection(event);
-
- if(selection.getFirstElement() instanceof PolytomousKeyNode){
+
+ if (editor instanceof KeyEditor) {
+ IPolytomousKeyEditorPage editorPage = (IPolytomousKeyEditorPage) ((KeyEditor) editor)
+ .getActiveEditor();
+
+ IStructuredSelection selection = (IStructuredSelection) HandlerUtil
+ .getActiveMenuSelection(event);
+
+ if (selection.getFirstElement() instanceof PolytomousKeyNode) {
try {
String label = event.getCommand().getName();
IUndoContext undoContext = EditorUtil.getUndoContext();
-
- PolytomousKeyNode keyNode = (PolytomousKeyNode) selection.getFirstElement();
-
- AbstractPostOperation operation = new CreateNodeOperation(label, undoContext, keyNode, keyEditor);
+
+ PolytomousKeyNode keyNode = (PolytomousKeyNode) selection
+ .getFirstElement();
+
+ AbstractPostOperation operation = new CreateNodeOperation(
+ label, undoContext, keyNode, editorPage);
EditorUtil.executeOperation(operation);
} catch (NotDefinedException e) {
EditorUtil.warn(getClass(), "Command name not set.");
}
-
+
}
}
-
+
return null;
}
// $Id$
/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
package eu.etaxonomy.taxeditor.editor.key.polytomous.handler;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.key.KeyEditor;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.IPolytomousKeyEditorPage;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.DeleteNodeOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
/**
* @author n.hoffmann
*/
public class DeleteNodeHandler extends AbstractHandler {
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.
+ * ExecutionEvent)
*/
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
- // TODO Auto-generated method stub
+ IEditorPart editor = HandlerUtil.getActiveEditor(event);
+
+ if (editor instanceof KeyEditor) {
+ IPolytomousKeyEditorPage editorPage = (IPolytomousKeyEditorPage) ((KeyEditor) editor)
+ .getActiveEditor();
+
+ IStructuredSelection selection = (IStructuredSelection) HandlerUtil
+ .getActiveMenuSelection(event);
+
+ if (selection.getFirstElement() instanceof PolytomousKeyNode) {
+ try {
+ String label = event.getCommand().getName();
+ IUndoContext undoContext = EditorUtil.getUndoContext();
+
+ PolytomousKeyNode keyNode = (PolytomousKeyNode) selection
+ .getFirstElement();
+
+ AbstractPostOperation operation = new DeleteNodeOperation(
+ label, undoContext, keyNode, editorPage);
+ EditorUtil.executeOperation(operation);
+ } catch (NotDefinedException e) {
+ EditorUtil.warn(getClass(), "Command name not set.");
+ }
+
+ }
+ }
+
return null;
}
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
-import eu.etaxonomy.cdm.model.description.PolytomousKey;
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
/**
* @author n.hoffmann
- *
+ *
*/
public class DeleteNodeOperation extends AbstractPostOperation {
- private PolytomousKeyNode node;
- private PolytomousKey key;
+ private final PolytomousKeyNode parent;
+ private final PolytomousKeyNode node;
- public DeleteNodeOperation(String label,
- IUndoContext undoContext, PolytomousKeyNode node, IPostOperationEnabled postOperationEnabled) {
+ public DeleteNodeOperation(String label, IUndoContext undoContext,
+ PolytomousKeyNode node, IPostOperationEnabled postOperationEnabled) {
super(label, undoContext, postOperationEnabled);
this.node = node;
+ this.parent = node.getParent();
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse
+ * .core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
*/
@Override
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
-
- key = node.getKey();
-
-
+
+ parent.removeChild(node);
+
return postExecute(null);
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse
+ * .core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
*/
@Override
public IStatus redo(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
- // TODO Auto-generated method stub
- return null;
+ return execute(monitor, info);
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse
+ * .core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
*/
@Override
public IStatus undo(IProgressMonitor monitor, IAdaptable info)
element_question = formFactory.createKeyStatementElement(
formElement, "Question", parent.getQuestion(), 50, style);
+
+ selection_feature = (FeatureSelectionElement) formFactory
+ .createSelectionElement(SelectionType.FEATURE,
+ getConversationHolder(), formElement, "Feature",
+ parent.getFeature(),
+ FeatureSelectionElement.DEFAULT, style);
}
element_statement = formFactory.createKeyStatementElement(formElement,
"Statement", entity.getStatement(), 50, style);
- selection_feature = (FeatureSelectionElement) formFactory
- .createSelectionElement(SelectionType.FEATURE,
- getConversationHolder(), formElement, "Feature",
- entity.getFeature(), FeatureSelectionElement.DEFAULT,
- style);
-
if (entity.isLeaf()) {
selection_taxon = (TaxonSelectionElement) formFactory
.createSelectionElement(SelectionType.TAXON,
} else if (eventSource == element_statement) {
getEntity().setStatement(element_statement.getKeyStatement());
} else if (eventSource == selection_feature) {
- getEntity().setFeature(selection_feature.getEntity());
+ getEntity().getParent().setFeature(selection_feature.getEntity());
} else if (eventSource == selection_taxon) {
getEntity().setTaxon(selection_taxon.getEntity());
} else if (eventSource == selection_subkey) {