-/*******************************************************************************\r
- * Copyright (c) 2007, 2011 Association for Decentralized Information Management in\r
- * Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- * VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.charts.ui;\r
-\r
-import org.eclipse.swt.widgets.Display;\r
-import org.eclipse.swt.widgets.Shell;\r
-import org.simantics.Simantics;\r
-import org.simantics.charts.ontology.ChartResource;\r
-import org.simantics.charts.query.ChartAndSubscriptionItemData;\r
-import org.simantics.charts.query.ChartAndSubscriptionItemReadQuery;\r
-import org.simantics.charts.query.ChartAndSubscriptionItemWriteAction;\r
-import org.simantics.charts.query.ChartDataQuery;\r
-import org.simantics.charts.query.ChartDataWrite;\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.Session;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.ui.DoubleClickEvent;\r
-import org.simantics.ui.IDoubleClickAction;\r
-import org.simantics.ui.utils.ResourceAdaptionUtils;\r
-import org.simantics.utils.ui.dialogs.ShowError;\r
-\r
-public class ChartDoubleClickHandler implements IDoubleClickAction {\r
-\r
- @Override\r
- public void doubleClickEvent(DoubleClickEvent e) throws DatabaseException {\r
- ReadGraph g = e.getGraph();\r
- final Resource resource = ResourceAdaptionUtils.toSingleResource(e.getResource());\r
- if (resource == null)\r
- return;\r
-\r
- ChartResource CHART = ChartResource.getInstance(g);\r
- \r
- // Handle double-click on Chart Item.\r
- if (g.isInstanceOf(resource, CHART.Chart_Item)) {\r
- Display display = Display.getDefault();\r
- openChartItemPropertiesDialog(g, resource, display);\r
- e.consume();\r
- }\r
- /*\r
- if (g.isInstanceOf(resource, CHART.Chart)) {\r
- Display display = Display.getDefault();\r
- openChartPropertiesDialog(g, resource, display);\r
- e.consume();\r
- }\r
- */\r
- }\r
-\r
- public static void openChartItemPropertiesDialog(ReadGraph g, final Resource chartItem, final Display display) throws DatabaseException\r
- {\r
- final ChartAndSubscriptionItemData data = g.sync( new ChartAndSubscriptionItemReadQuery(chartItem) );\r
- display.asyncExec(new Runnable() {\r
- @Override\r
- public void run() {\r
- openChartItemPropertiesDialog(display.getActiveShell(), chartItem, data, true);\r
- }\r
- });\r
- }\r
-\r
- public static ChartAndSubscriptionItemDialog openChartItemPropertiesDialog(\r
- Shell parentShell,\r
- final Resource chartItem,\r
- final ChartAndSubscriptionItemData data,\r
- boolean shouldBlock)\r
- {\r
- Runnable applyAction = new Runnable() {\r
- @Override\r
- public void run() {\r
- try {\r
- Session s = Simantics.getSession();\r
- s.markUndoPoint();\r
- s.sync( new ChartAndSubscriptionItemWriteAction(chartItem, data) );\r
- } catch (DatabaseException e) {\r
- ShowError.showError(e.getClass().getName(), e.getLocalizedMessage(), e);\r
- }\r
- }\r
- };\r
- ChartAndSubscriptionItemDialog d = new ChartAndSubscriptionItemDialog( parentShell, data, true, applyAction );\r
- d.setBlockOnOpen(shouldBlock);\r
- if (shouldBlock) {\r
- d.open();\r
- return null;\r
- } else {\r
- d.open();\r
- return d;\r
- }\r
- }\r
-\r
- public static void openChartPropertiesDialog(ReadGraph g, final Resource chart, final Display display) throws DatabaseException\r
- {\r
- final ChartData data = g.sync( new ChartDataQuery(chart) );\r
-\r
- display.asyncExec( new Runnable() {\r
- @Override\r
- public void run() {\r
- Display display = Display.getCurrent();\r
- Runnable applyAction = new Runnable() {\r
- @Override\r
- public void run() {\r
- try {\r
- Session s = Simantics.getSession();\r
- s.markUndoPoint();\r
- s.sync( new ChartDataWrite(chart, data) );\r
- } catch (DatabaseException e) {\r
- ShowError.showError(e.getClass().getName(), e.getLocalizedMessage(), e);\r
- }\r
- }\r
- };\r
- ChartDialog d = new ChartDialog( display.getActiveShell(), data, applyAction );\r
- d.open();\r
- }\r
- });\r
- }\r
-\r
-}\r
+/*******************************************************************************
+ * Copyright (c) 2007, 2011 Association for Decentralized Information Management in
+ * Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.charts.ui;
+
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.simantics.Simantics;
+import org.simantics.charts.ontology.ChartResource;
+import org.simantics.charts.query.ChartAndSubscriptionItemData;
+import org.simantics.charts.query.ChartAndSubscriptionItemReadQuery;
+import org.simantics.charts.query.ChartAndSubscriptionItemWriteAction;
+import org.simantics.charts.query.ChartDataQuery;
+import org.simantics.charts.query.ChartDataWrite;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.Session;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.ui.DoubleClickEvent;
+import org.simantics.ui.IDoubleClickAction;
+import org.simantics.ui.utils.ResourceAdaptionUtils;
+import org.simantics.utils.ui.dialogs.ShowError;
+
+public class ChartDoubleClickHandler implements IDoubleClickAction {
+
+ @Override
+ public void doubleClickEvent(DoubleClickEvent e) throws DatabaseException {
+ ReadGraph g = e.getGraph();
+ final Resource resource = ResourceAdaptionUtils.toSingleResource(e.getResource());
+ if (resource == null)
+ return;
+
+ ChartResource CHART = ChartResource.getInstance(g);
+
+ // Handle double-click on Chart Item.
+ if (g.isInstanceOf(resource, CHART.Chart_Item)) {
+ Display display = Display.getDefault();
+ openChartItemPropertiesDialog(g, resource, display);
+ e.consume();
+ }
+ /*
+ if (g.isInstanceOf(resource, CHART.Chart)) {
+ Display display = Display.getDefault();
+ openChartPropertiesDialog(g, resource, display);
+ e.consume();
+ }
+ */
+ }
+
+ public static void openChartItemPropertiesDialog(ReadGraph g, final Resource chartItem, final Display display) throws DatabaseException
+ {
+ final ChartAndSubscriptionItemData data = g.sync( new ChartAndSubscriptionItemReadQuery(chartItem) );
+ display.asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ openChartItemPropertiesDialog(display.getActiveShell(), chartItem, data, true);
+ }
+ });
+ }
+
+ public static ChartAndSubscriptionItemDialog openChartItemPropertiesDialog(
+ Shell parentShell,
+ final Resource chartItem,
+ final ChartAndSubscriptionItemData data,
+ boolean shouldBlock)
+ {
+ Runnable applyAction = new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Session s = Simantics.getSession();
+ s.markUndoPoint();
+ s.sync( new ChartAndSubscriptionItemWriteAction(chartItem, data) );
+ } catch (DatabaseException e) {
+ ShowError.showError(e.getClass().getName(), e.getLocalizedMessage(), e);
+ }
+ }
+ };
+ ChartAndSubscriptionItemDialog d = new ChartAndSubscriptionItemDialog( parentShell, data, true, applyAction );
+ d.setBlockOnOpen(shouldBlock);
+ if (shouldBlock) {
+ d.open();
+ return null;
+ } else {
+ d.open();
+ return d;
+ }
+ }
+
+ public static void openChartPropertiesDialog(ReadGraph g, final Resource chart, final Display display) throws DatabaseException
+ {
+ final ChartData data = g.sync( new ChartDataQuery(chart) );
+
+ display.asyncExec( new Runnable() {
+ @Override
+ public void run() {
+ Display display = Display.getCurrent();
+ Runnable applyAction = new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Session s = Simantics.getSession();
+ s.markUndoPoint();
+ s.sync( new ChartDataWrite(chart, data) );
+ } catch (DatabaseException e) {
+ ShowError.showError(e.getClass().getName(), e.getLocalizedMessage(), e);
+ }
+ }
+ };
+ ChartDialog d = new ChartDialog( display.getActiveShell(), data, applyAction );
+ d.open();
+ }
+ });
+ }
+
+}