-// $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
-package eu.etaxonomy.taxeditor.bulkeditor.handler;\r
-\r
-import java.util.Set;\r
-\r
-import org.apache.log4j.Logger;\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.jface.dialogs.MessageDialog;\r
-import org.eclipse.jface.text.source.Annotation;\r
-import org.eclipse.ui.IEditorInput;\r
-import org.eclipse.ui.IEditorPart;\r
-import org.eclipse.ui.handlers.HandlerUtil;\r
-import org.eclipse.ui.texteditor.IDocumentProvider;\r
-\r
-import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityContainer;\r
-import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation;\r
-import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotationModel;\r
-import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;\r
-import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorConstants;\r
-import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;\r
-\r
-/**\r
- * @author p.ciardelli\r
- * @created 25.06.2009\r
- * @version 1.0\r
- */\r
-public class MergeGroupHandler extends AbstractHandler {\r
- private static final Logger logger = Logger\r
- .getLogger(MergeGroupHandler.class);\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)\r
- */\r
- public Object execute(ExecutionEvent event) throws ExecutionException {\r
- \r
- IEditorPart editor = HandlerUtil.getActiveEditor(event);\r
- IEditorInput input = editor.getEditorInput();\r
- if (editor instanceof BulkEditor && input instanceof AbstractBulkEditorInput) {\r
-\r
- IDocumentProvider provider = ((BulkEditor) editor).getDocumentProvider();\r
- LineAnnotationModel model = \r
- (LineAnnotationModel) provider.getAnnotationModel(input);\r
- \r
- // Check whether there are any group annotations\r
- Set<LineAnnotation> candidateAnnotations = model.getAllAnnotationsOfType(IBulkEditorConstants.TYPE_MERGE_CANDIDATE);\r
- if (candidateAnnotations.size() == 0) {\r
- MessageDialog.openWarning(HandlerUtil.getActiveShell(event), \r
- "No merge candidates", "No objects have been chosen for merging.");\r
- return null; \r
- }\r
- \r
- // Check whether group merge target has been set\r
- Annotation targetAnnotation = model.getFirstAnnotationOfType(IBulkEditorConstants.TYPE_MERGE_TARGET);\r
- if (targetAnnotation == null) {\r
- MessageDialog.openWarning(HandlerUtil.getActiveShell(event), \r
- "No group merge target set", "No group merge target has been set.");\r
- return null;\r
- } \r
- Object targetEntity = ((IEntityContainer<?>) targetAnnotation).getEntity();\r
- \r
- logger.info("Merging group");\r
-// model.printAnnotations();\r
- for (LineAnnotation annotation : candidateAnnotations) {\r
- \r
- ((BulkEditor) editor).removeAnnotatedLine(annotation);\r
- \r
- // Mark entity container for merging with target entity\r
- ((IEntityContainer) annotation).markAsMerged(targetEntity);\r
- logger.info("Merging " + annotation + " with " + targetAnnotation);\r
- \r
- // Remove annotation from model\r
- model.removeAnnotation(annotation);\r
- }\r
-// model.printAnnotations(); \r
- \r
- model.removeTypeFromAllAnnotations(IBulkEditorConstants.TYPE_MERGE_CANDIDATE);\r
- model.removeTypeFromAllAnnotations(IBulkEditorConstants.TYPE_MERGE_TARGET);\r
- }\r
- return null;\r
- }\r
-}
\ No newline at end of file
+// $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.bulkeditor.handler;
+
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.text.source.Annotation;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.texteditor.IDocumentProvider;
+
+import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityContainer;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotationModel;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
+import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorConstants;
+import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
+
+/**
+ * <p>MergeGroupHandler class.</p>
+ *
+ * @author p.ciardelli
+ * @created 25.06.2009
+ * @version 1.0
+ */
+public class MergeGroupHandler extends AbstractHandler {
+ private static final Logger logger = Logger
+ .getLogger(MergeGroupHandler.class);
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+ */
+ /** {@inheritDoc} */
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+
+ IEditorPart editor = HandlerUtil.getActiveEditor(event);
+ IEditorInput input = editor.getEditorInput();
+ if (editor instanceof BulkEditor && input instanceof AbstractBulkEditorInput) {
+
+ IDocumentProvider provider = ((BulkEditor) editor).getDocumentProvider();
+ LineAnnotationModel model =
+ (LineAnnotationModel) provider.getAnnotationModel(input);
+
+ // Check whether there are any group annotations
+ Set<LineAnnotation> candidateAnnotations = model.getAllAnnotationsOfType(IBulkEditorConstants.TYPE_MERGE_CANDIDATE);
+ if (candidateAnnotations.size() == 0) {
+ MessageDialog.openWarning(HandlerUtil.getActiveShell(event),
+ "No merge candidates", "No objects have been chosen for merging.");
+ return null;
+ }
+
+ // Check whether group merge target has been set
+ Annotation targetAnnotation = model.getFirstAnnotationOfType(IBulkEditorConstants.TYPE_MERGE_TARGET);
+ if (targetAnnotation == null) {
+ MessageDialog.openWarning(HandlerUtil.getActiveShell(event),
+ "No group merge target set", "No group merge target has been set.");
+ return null;
+ }
+ Object targetEntity = ((IEntityContainer<?>) targetAnnotation).getEntity();
+
+ logger.info("Merging group");
+// model.printAnnotations();
+ for (LineAnnotation annotation : candidateAnnotations) {
+
+ ((BulkEditor) editor).removeAnnotatedLine(annotation);
+
+ // Mark entity container for merging with target entity
+ ((IEntityContainer) annotation).markAsMerged(targetEntity);
+ logger.info("Merging " + annotation + " with " + targetAnnotation);
+
+ // Remove annotation from model
+ model.removeAnnotation(annotation);
+ }
+// model.printAnnotations();
+
+ model.removeTypeFromAllAnnotations(IBulkEditorConstants.TYPE_MERGE_CANDIDATE);
+ model.removeTypeFromAllAnnotations(IBulkEditorConstants.TYPE_MERGE_TARGET);
+ }
+ return null;
+ }
+}