-package org.simantics.modeling.ui.actions;\r
-\r
-import java.util.Collections;\r
-import java.util.List;\r
-\r
-import org.eclipse.core.runtime.IProgressMonitor;\r
-import org.eclipse.ui.PlatformUI;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.WriteGraph;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.diagram.synchronization.runtime.DiagramSelectionUpdater;\r
-import org.simantics.g2d.canvas.ICanvasContext;\r
-import org.simantics.modeling.flags.MergeFlags;\r
-\r
-/**\r
- * @author Hannu Niemistö\r
- * @author Tuukka Lehtonen\r
- */\r
-public class MergeFlagsHandler extends FlagOperationHandler {\r
-\r
- protected void perform(IProgressMonitor monitor, WriteGraph graph, List<Resource> flags, ICanvasContext canvasContext) throws DatabaseException {\r
- monitor.beginTask("Merge Selected Flags", IProgressMonitor.UNKNOWN);\r
- performMerge(graph, flags, canvasContext);\r
- }\r
-\r
- public static void performMerge(WriteGraph graph, List<Resource> flags, ICanvasContext canvasContext) throws DatabaseException {\r
- final String text = MergeFlags.validateForMerge(graph, flags);\r
- if(text != null) {\r
- System.err.println(text);\r
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {\r
- @Override\r
- public void run() {\r
- PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()\r
- .getActiveEditor().getEditorSite().getActionBars().getStatusLineManager()\r
- .setErrorMessage(text);\r
- }\r
- });\r
- }\r
- else {\r
- String result = MergeFlags.merge(graph, flags);\r
- if(result != null && !result.isEmpty()) {\r
- System.err.println(result); // Should not happen because of prevalidation\r
- } else {\r
- if (canvasContext != null) {\r
- // Make sure the diagram selection is set to the\r
- // merged flag after the merge.\r
- new DiagramSelectionUpdater( canvasContext )\r
- .setNewSelection(0, Collections.singleton( flags.get(0) ))\r
- .setOneshot(true)\r
- .track();\r
- }\r
- }\r
- }\r
- }\r
-\r
-}\r
+package org.simantics.modeling.ui.actions;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.ui.PlatformUI;
+import org.simantics.db.Resource;
+import org.simantics.db.WriteGraph;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.diagram.synchronization.runtime.DiagramSelectionUpdater;
+import org.simantics.g2d.canvas.ICanvasContext;
+import org.simantics.modeling.flags.MergeFlags;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author Hannu Niemistö
+ * @author Tuukka Lehtonen
+ */
+public class MergeFlagsHandler extends FlagOperationHandler {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(MergeFlagsHandler.class);
+ protected void perform(IProgressMonitor monitor, WriteGraph graph, List<Resource> flags, ICanvasContext canvasContext) throws DatabaseException {
+ monitor.beginTask(Messages.MergeFlagsHandler_MonitorMergeSelectedFlags, IProgressMonitor.UNKNOWN);
+ performMerge(graph, flags, canvasContext);
+ }
+
+ public static void performMerge(WriteGraph graph, List<Resource> flags, ICanvasContext canvasContext) throws DatabaseException {
+ final String text = MergeFlags.validateForMerge(graph, flags);
+ if(text != null) {
+ LOGGER.error(text);
+ PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
+ .getActiveEditor().getEditorSite().getActionBars().getStatusLineManager()
+ .setErrorMessage(text);
+ }
+ });
+ }
+ else {
+ String result = MergeFlags.merge(graph, flags);
+ if(result != null && !result.isEmpty()) {
+ LOGGER.error(result); // Should not happen because of prevalidation
+ } else {
+ if (canvasContext != null) {
+ // Make sure the diagram selection is set to the
+ // merged flag after the merge.
+ new DiagramSelectionUpdater( canvasContext )
+ .setNewSelection(0, Collections.singleton( flags.get(0) ))
+ .setOneshot(true)
+ .track();
+ }
+ }
+ }
+ }
+
+}