]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/actions/MergeFlagsAction.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.modeling.ui / src / org / simantics / modeling / ui / actions / MergeFlagsAction.java
index f38cc0e1c0f168d9e02d10565b28c0619a029e51..15d0ed086e42d4915815860429602bf3385e0919 100644 (file)
-package org.simantics.modeling.ui.actions;\r
-\r
-import gnu.trove.set.hash.THashSet;\r
-\r
-import java.lang.reflect.InvocationTargetException;\r
-import java.util.ArrayList;\r
-\r
-import org.eclipse.core.runtime.IProgressMonitor;\r
-import org.eclipse.core.runtime.SubMonitor;\r
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;\r
-import org.eclipse.jface.operation.IRunnableWithProgress;\r
-import org.eclipse.swt.widgets.Shell;\r
-import org.eclipse.ui.PlatformUI;\r
-import org.simantics.Simantics;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.WriteGraph;\r
-import org.simantics.db.common.request.WriteRequest;\r
-import org.simantics.db.exception.CancelTransactionException;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.layer0.adapter.ActionFactory;\r
-import org.simantics.modeling.flags.MergeFlags;\r
-import org.simantics.utils.ui.ExceptionUtils;\r
-\r
-/**\r
- * @author Hannu Niemistö\r
- * @author Tuukka Lehtonen\r
- */\r
-public class MergeFlagsAction implements ActionFactory {\r
-    \r
-    @Override\r
-    public Runnable create(Object target) {\r
-        if (!(target instanceof Resource))\r
-            return null;\r
-\r
-        Resource composite = (Resource) target;\r
-        final THashSet<Resource> composites = new THashSet<Resource>();\r
-        composites.add(composite);\r
-\r
-        return new Runnable() {\r
-            @Override\r
-            public void run() {\r
-                try {\r
-                    IRunnableWithProgress runnable = new IRunnableWithProgress() {\r
-                        @Override\r
-                        public void run(final IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {\r
-                            final SubMonitor submonitor = SubMonitor.convert(monitor, "Merge Flags", 1000);\r
-                            try {\r
-                                Simantics.getSession().sync(new WriteRequest() {\r
-                                    @Override\r
-                                    public void perform(WriteGraph graph) throws DatabaseException {\r
-                                        graph.markUndoPoint();\r
-                                        \r
-                                        SubMonitor expand = submonitor.newChild(10);\r
-                                        expand.subTask("Expand Composite Set");\r
-                                        MergeFlags.expandCompositeSet(graph, composites);\r
-                                        if (monitor.isCanceled())\r
-                                            throw new CancelTransactionException();\r
-                                        expand.done();\r
-\r
-                                        SubMonitor collect = submonitor.newChild(490);\r
-                                        collect.subTask("Collect flags");\r
-                                        collect.setWorkRemaining(composites.size());\r
-                                        ArrayList<ArrayList<Resource>> groups = new ArrayList<ArrayList<Resource>>(); \r
-                                        for(Resource composite : composites) {\r
-                                            MergeFlags.collectFlagGroupsInComposite(graph, composite, groups);\r
-                                            if (monitor.isCanceled())\r
-                                                throw new CancelTransactionException();\r
-                                            collect.worked(1);\r
-                                        }\r
-                                        collect.done();\r
-\r
-                                        SubMonitor merge = submonitor.newChild(500);\r
-                                        merge.subTask("Merge collected flags");\r
-                                        merge.setWorkRemaining(composites.size());\r
-                                        for(ArrayList<Resource> group : groups) {\r
-                                            MergeFlags.merge(graph, group);\r
-                                            if (monitor.isCanceled())\r
-                                                throw new CancelTransactionException();\r
-                                            merge.worked(1);\r
-                                        }\r
-                                        merge.done();\r
-                                    }\r
-                                });\r
-                            } catch (CancelTransactionException e) {\r
-                            } catch (DatabaseException e) {\r
-                                throw new InvocationTargetException(e);\r
-                            } finally {\r
-                                monitor.done();\r
-                            }\r
-                        }\r
-                    };\r
-\r
-                    Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();\r
-                    new ProgressMonitorDialog(shell).run(true, true, runnable);\r
-                } catch (InvocationTargetException e) {\r
-                    ExceptionUtils.logAndShowError(e.getTargetException());\r
-                } catch (InterruptedException e) {\r
-                }\r
-            }\r
-        };\r
-    }\r
-\r
-}\r
+package org.simantics.modeling.ui.actions;
+
+import gnu.trove.set.hash.THashSet;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.SubMonitor;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.PlatformUI;
+import org.simantics.Simantics;
+import org.simantics.db.Resource;
+import org.simantics.db.WriteGraph;
+import org.simantics.db.common.request.WriteRequest;
+import org.simantics.db.exception.CancelTransactionException;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.adapter.ActionFactory;
+import org.simantics.modeling.flags.MergeFlags;
+import org.simantics.utils.ui.ExceptionUtils;
+
+/**
+ * @author Hannu Niemist&ouml;
+ * @author Tuukka Lehtonen
+ */
+public class MergeFlagsAction implements ActionFactory {
+    
+    @Override
+    public Runnable create(Object target) {
+        if (!(target instanceof Resource))
+            return null;
+
+        Resource composite = (Resource) target;
+        final THashSet<Resource> composites = new THashSet<Resource>();
+        composites.add(composite);
+
+        return new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    IRunnableWithProgress runnable = new IRunnableWithProgress() {
+                        @Override
+                        public void run(final IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
+                            final SubMonitor submonitor = SubMonitor.convert(monitor, "Merge Flags", 1000);
+                            try {
+                                Simantics.getSession().sync(new WriteRequest() {
+                                    @Override
+                                    public void perform(WriteGraph graph) throws DatabaseException {
+                                        graph.markUndoPoint();
+                                        
+                                        SubMonitor expand = submonitor.newChild(10);
+                                        expand.subTask("Expand Composite Set");
+                                        MergeFlags.expandCompositeSet(graph, composites);
+                                        if (monitor.isCanceled())
+                                            throw new CancelTransactionException();
+                                        expand.done();
+
+                                        SubMonitor collect = submonitor.newChild(490);
+                                        collect.subTask("Collect flags");
+                                        collect.setWorkRemaining(composites.size());
+                                        ArrayList<ArrayList<Resource>> groups = new ArrayList<ArrayList<Resource>>(); 
+                                        for(Resource composite : composites) {
+                                            MergeFlags.collectFlagGroupsInComposite(graph, composite, groups);
+                                            if (monitor.isCanceled())
+                                                throw new CancelTransactionException();
+                                            collect.worked(1);
+                                        }
+                                        collect.done();
+
+                                        SubMonitor merge = submonitor.newChild(500);
+                                        merge.subTask("Merge collected flags");
+                                        merge.setWorkRemaining(composites.size());
+                                        for(ArrayList<Resource> group : groups) {
+                                            MergeFlags.merge(graph, group);
+                                            if (monitor.isCanceled())
+                                                throw new CancelTransactionException();
+                                            merge.worked(1);
+                                        }
+                                        merge.done();
+                                    }
+                                });
+                            } catch (CancelTransactionException e) {
+                            } catch (DatabaseException e) {
+                                throw new InvocationTargetException(e);
+                            } finally {
+                                monitor.done();
+                            }
+                        }
+                    };
+
+                    Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
+                    new ProgressMonitorDialog(shell).run(true, true, runnable);
+                } catch (InvocationTargetException e) {
+                    ExceptionUtils.logAndShowError(e.getTargetException());
+                } catch (InterruptedException e) {
+                }
+            }
+        };
+    }
+
+}