]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network.ui/src/org/simantics/district/network/ui/techtype/table/ResetComponentsHandler.java
Add UI for resetting component values
[simantics/district.git] / org.simantics.district.network.ui / src / org / simantics / district / network / ui / techtype / table / ResetComponentsHandler.java
diff --git a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/techtype/table/ResetComponentsHandler.java b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/techtype/table/ResetComponentsHandler.java
new file mode 100644 (file)
index 0000000..a95ecec
--- /dev/null
@@ -0,0 +1,39 @@
+package org.simantics.district.network.ui.techtype.table;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.simantics.db.Resource;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.district.network.techtype.TechTypeUtils;
+import org.simantics.utils.ui.ExceptionUtils;
+
+public class ResetComponentsHandler {
+
+       @CanExecute
+       public boolean canExecute() {
+               return TechTypeTableView.table.getCurrentTable() != null;
+       }
+       
+       @Execute
+       public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell s) {
+               Resource table = TechTypeTableView.table.getCurrentTable();
+               if (table == null)
+                       return;
+               
+               boolean result = MessageDialog.openConfirm(null, "Confirmation", "Do you really want to reset all component properties to values in this table?");
+               if (result == false)
+                       return;
+               
+               try {
+                       TechTypeUtils.resetComponents(table);
+               } catch (DatabaseException e) {
+                       ExceptionUtils.logAndShowError("Error resetting components.", e);
+               }
+       }
+       
+}