package eu.etaxonomy.taxeditor.editor.description;\r
\r
import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.operations.IUndoContext;\r
+import org.eclipse.core.commands.operations.IUndoableOperation;\r
import org.eclipse.core.runtime.Assert;\r
import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.resource.ImageDescriptor;\r
import org.eclipse.jface.text.Document;\r
import org.eclipse.jface.text.source.SourceViewer;\r
import org.eclipse.swt.SWT;\r
import eu.etaxonomy.cdm.model.description.TextData;\r
import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.actions.ui.description.DeleteElementCompositeAction;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
import eu.etaxonomy.taxeditor.editor.ContextMenu;\r
import eu.etaxonomy.taxeditor.editor.GroupedComposite;\r
import eu.etaxonomy.taxeditor.editor.LineWrapSupport;\r
import eu.etaxonomy.taxeditor.editor.ParseListener;\r
+import eu.etaxonomy.taxeditor.operations.description.RemoveElementOperation;\r
import eu.etaxonomy.taxeditor.propertysheet.description.DescriptionElementPropertySource;\r
\r
/**\r
*/\r
public Action CHANGE_TAXON_TO_SYNONYM_ACTION;\r
\r
-// private DescriptionElementBase element;\r
+ private DescriptionElementBase element;\r
+\r
+ private IUndoContext undoContext;\r
\r
private static final String EMPTY_NAME_PROMPT = "Click to add descriptive element text";\r
\r
DescriptionElementBase element) {\r
super(parent, managedForm);\r
\r
+ this.element = element;\r
+ \r
+ this.undoContext = EditorController.getUndoContext(taxon);\r
+ \r
createTextViewer();\r
createBorderSupport();\r
createLineWrapSupport();\r
setFocus();\r
}\r
\r
+ public DescriptionElementBase getElement() {\r
+ return element;\r
+ }\r
+ \r
protected void createLineWrapSupport() {\r
new LineWrapSupport(getTextViewer(), managedForm);\r
}\r
ContextMenu contextMenu = new ContextMenu(getDraggableLabel());\r
\r
// Delete this description element\r
- Action deleteElementAction = new DeleteElementCompositeAction(\r
- this, getTaxon());\r
- contextMenu.addAction(deleteElementAction);\r
- \r
- // Add new text \r
+ String text = "Delete description element";\r
+ ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ .getImageDescriptor(ITaxEditorConstants.ACTIVE_DELETE_ICON);\r
+ contextMenu.addAction(new Action(text, image){\r
+ \r
+ public void run() {\r
+ IUndoableOperation operation = new RemoveElementOperation\r
+ (this.getText(), undoContext, taxon, element);\r
+ \r
+ GlobalController.executeOperation(operation);\r
+ }\r
+ });\r
}\r
\r
@Override\r
\r
// If feature only has 1 child that is not DescriptionElementComposite,\r
// composite is empty\r
- if (!(featureComponent instanceof FeatureGroupComposite)) {\r
+ if (!(featureComponent instanceof DescriptionFeatureGroupComposite)) {\r
return;\r
}\r
\r