+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);
+ }
+ }
+
+}