-package org.simantics.modeling.ui.actions;\r
-\r
-import org.eclipse.core.runtime.IStatus;\r
-import org.eclipse.core.runtime.Status;\r
-import org.eclipse.jface.dialogs.Dialog;\r
-import org.eclipse.ui.PlatformUI;\r
-import org.simantics.Simantics;\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.WriteGraph;\r
-import org.simantics.db.common.request.ReadRequest;\r
-import org.simantics.db.common.request.WriteRequest;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.layer0.adapter.ActionFactory;\r
-import org.simantics.modeling.ui.Activator;\r
-import org.simantics.modeling.ui.diagram.renaming.ComponentsRenamingDialog;\r
-import org.simantics.modeling.ui.diagram.renaming.ComponentsRenamingModel;\r
-\r
-/**\r
- * @author Hannu Niemistö\r
- */\r
-public class RenameDiagramComponents implements ActionFactory {\r
-\r
- @Override\r
- public Runnable create(Object target) {\r
- if (!(target instanceof Resource))\r
- return null;\r
- final Resource composite = (Resource)target;\r
-\r
- return new Runnable() {\r
- @Override\r
- public void run() {\r
- final ComponentsRenamingModel model = new ComponentsRenamingModel();\r
- try {\r
- Simantics.getSession().syncRequest(new ReadRequest() {\r
- @Override\r
- public void run(ReadGraph graph) throws DatabaseException {\r
- model.read(graph, composite);\r
- }\r
- });\r
- ComponentsRenamingDialog dialog = new ComponentsRenamingDialog(\r
- PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),\r
- model);\r
- if(dialog.open() == Dialog.OK) {\r
- Simantics.getSession().syncRequest(new WriteRequest() {\r
- @Override\r
- public void perform(WriteGraph graph)\r
- throws DatabaseException {\r
- graph.markUndoPoint();\r
- model.write(graph);\r
- }\r
- });\r
- }\r
- } catch (DatabaseException e) {\r
- Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, "RenameDiagramComponents action failed, see exception for details", e));\r
- }\r
- }\r
- };\r
- }\r
-\r
-}\r
+package org.simantics.modeling.ui.actions;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.ui.PlatformUI;
+import org.simantics.Simantics;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.WriteGraph;
+import org.simantics.db.common.request.UniqueRead;
+import org.simantics.db.common.request.WriteRequest;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.adapter.ActionFactory;
+import org.simantics.modeling.ui.Activator;
+import org.simantics.modeling.ui.diagram.renaming.ComponentsRenamingDialog;
+import org.simantics.modeling.ui.diagram.renaming.ComponentsRenamingModel;
+
+/**
+ * @author Hannu Niemistö
+ */
+public class RenameDiagramComponents implements ActionFactory {
+
+ @Override
+ public Runnable create(Object target) {
+ if (!(target instanceof Resource))
+ return null;
+ final Resource composite = (Resource)target;
+
+ return new Runnable() {
+ @Override
+ public void run() {
+ try {
+ ComponentsRenamingModel model = Simantics.getSession().syncRequest(new UniqueRead<ComponentsRenamingModel>() {
+ @Override
+ public ComponentsRenamingModel perform(ReadGraph graph) throws DatabaseException {
+ return new ComponentsRenamingModel().read(graph, composite);
+ }
+ });
+ ComponentsRenamingDialog dialog = new ComponentsRenamingDialog(
+ PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
+ model);
+ if(dialog.open() == Dialog.OK) {
+ Simantics.getSession().syncRequest(new WriteRequest() {
+ @Override
+ public void perform(WriteGraph graph)
+ throws DatabaseException {
+ graph.markUndoPoint();
+ model.write(graph);
+ }
+ });
+ }
+ } catch (DatabaseException e) {
+ Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, "RenameDiagramComponents action failed, see exception for details", e));
+ }
+ }
+ };
+ }
+
+}