diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/panels/MainPanel.java b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/panels/MainPanel.java index d6a4fe55a1d294233812da3204b53db044ff5472..224d81b29ac93f9fe1036067dc63af83b53fc7bc 100644 --- a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/panels/MainPanel.java +++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/panels/MainPanel.java @@ -46,6 +46,7 @@ import nl.astron.lofar.sas.otb.util.tablemodels.PICtableModel; import nl.astron.lofar.sas.otb.util.tablemodels.StateChangeHistoryTableModel; import nl.astron.lofar.sas.otb.util.tablemodels.TemplatetableModel; import nl.astron.lofar.sas.otb.util.tablemodels.VICtableModel; +import nl.astron.lofar.sas.otbcomponents.ComponentPanel; import nl.astron.lofar.sas.otbcomponents.LoadFileDialog; import nl.astron.lofar.sas.otbcomponents.MultiEditDialog; import nl.astron.lofar.sas.otbcomponents.TableDialog; @@ -267,7 +268,7 @@ public class MainPanel extends javax.swing.JPanel ComponentTableModel Componentmodel = new ComponentTableModel(SharedVars.getOTDBrmi()); ComponentsPanel.setTableModel(Componentmodel); - ComponentsPanel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + ComponentsPanel.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); ComponentsPanel.setColumnSize("ID",50); ComponentsPanel.setColumnSize("Description",685); ComponentsPanel.setAutoCreateRowSorter(true); @@ -1188,21 +1189,28 @@ public class MainPanel extends javax.swing.JPanel LofarUtils.showErrorPanel(this,aS,new javax.swing.ImageIcon(getClass().getResource("/nl/astron/lofar/sas/otb/icons/16_warn.gif"))); } } else if (aButton.equals("Delete")) { - int nodeID=itsMainFrame.getSharedVars().getComponentID(); - try { - if (OtdbRmi.getRemoteMaintenance().deleteComponentNode(nodeID)) { - // set changed flag to reload mainpanel - itsMainFrame.setChanged(this.getFriendlyName(),true); - checkChanged(); - } else { - String aS="Component not deleted"; + if (JOptionPane.showConfirmDialog(this,"Are you sure you want to delete this component(s): ?","Delete Component",JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE) == JOptionPane.YES_OPTION ) { + try { + int[] componentIDs=getSelectedTreeIDs(); + for (int i=0;i< componentIDs.length;i++) { + if (!OtdbRmi.getRemoteMaintenance().deleteComponentNode(componentIDs[i])) { + String aS="Failed to delete component: "+componentIDs[i]; + logger.error(aS); + LofarUtils.showErrorPanel(this,aS,new javax.swing.ImageIcon(getClass().getResource("/nl/astron/lofar/sas/otb/icons/16_warn.gif"))); + } else { + // set changed flag to reload mainpanel + itsMainFrame.setChanged(this.getFriendlyName(),true); + checkChanged(); + } + } + } catch (RemoteException ex) { + String aS="Remote error during deleteComponents: "+ ex; logger.error(aS); LofarUtils.showErrorPanel(this,aS,new javax.swing.ImageIcon(getClass().getResource("/nl/astron/lofar/sas/otb/icons/16_warn.gif"))); - } - } catch (RemoteException ex) { - String aS="Remote error during component deletion: "+ ex; - logger.error(aS); - LofarUtils.showErrorPanel(this,aS,new javax.swing.ImageIcon(getClass().getResource("/nl/astron/lofar/sas/otb/icons/16_warn.gif"))); + } + itsMainFrame.setHourglassCursor(); + ((ComponentTableModel)ComponentsPanel.getTableModel()).fillTable(); + itsMainFrame.setNormalCursor(); } } } else if (itsTabFocus.equals("Query Results")) { @@ -1387,15 +1395,16 @@ public class MainPanel extends javax.swing.JPanel buttonPanel1.setButtonEnabled("Info",false); } } else if (itsTabFocus.equals("VIC")) { - boolean infoOnly=false; if (VICPanel.getSelectedRowCount() > 1) { - infoOnly=true; + multipleSelection=true; + } else { + multipleSelection=false; } if (treeID>0) { // !!!!!!!!!!!!!! // Need to see if buttons need to be invalidated under certain states.... // - if (!infoOnly) { + if (!multipleSelection) { buttonPanel1.setButtonEnabled("State History",true); buttonPanel1.setButtonEnabled("View",true); buttonPanel1.setButtonEnabled("Query Panel",true); @@ -1415,16 +1424,17 @@ public class MainPanel extends javax.swing.JPanel buttonPanel1.setButtonEnabled("Schedule",false); } } else if (itsTabFocus.equals("Templates")) { - boolean infoOnly=false; if (TemplatesPanel.getSelectedRowCount() > 1) { - infoOnly=true; + multipleSelection=true; + } else { + multipleSelection=false; } if (treeID > 0) { if ((aTreeState.equals("idle") || aTreeState.equals("described") || aTreeState.equals("prepared") || - aTreeState.equals("approved")) && !infoOnly) { + aTreeState.equals("approved")) && !multipleSelection) { buttonPanel1.setButtonEnabled("Duplicate",true); buttonPanel1.setButtonEnabled("Modify",true); buttonPanel1.setButtonEnabled("Set to Default",true); @@ -1439,7 +1449,7 @@ public class MainPanel extends javax.swing.JPanel buttonPanel1.setButtonEnabled("Modify",false); buttonPanel1.setButtonEnabled("Set to Default",false); } - if (infoOnly) { + if (multipleSelection) { buttonPanel1.setButtonEnabled("State History",false); buttonPanel1.setButtonEnabled("Duplicate",false); buttonPanel1.setButtonEnabled("Modify",false); @@ -1462,22 +1472,23 @@ public class MainPanel extends javax.swing.JPanel buttonPanel1.setButtonEnabled("Set to Default",false); } } else if (itsTabFocus.equals("Default Templates")) { - boolean infoOnly=false; if (DefaultTemplatesPanel.getSelectedRowCount() > 1) { - infoOnly=true; + multipleSelection=true; + } else { + multipleSelection=false; } if (treeID > 0) { if ((aTreeState.equals("idle") || aTreeState.equals("described") || aTreeState.equals("prepared") || - aTreeState.equals("approved")) && !infoOnly) { + aTreeState.equals("approved")) && !multipleSelection) { buttonPanel1.setButtonEnabled("Duplicate",true); buttonPanel1.setButtonEnabled("Modify",true); } else { buttonPanel1.setButtonEnabled("Duplicate",false); buttonPanel1.setButtonEnabled("Modify",false); } - if (infoOnly) { + if (multipleSelection) { buttonPanel1.setButtonEnabled("State History",false); buttonPanel1.setButtonEnabled("Duplicate",false); buttonPanel1.setButtonEnabled("Modify",false); @@ -1492,22 +1503,43 @@ public class MainPanel extends javax.swing.JPanel buttonPanel1.setButtonEnabled("Change Status",false); } } else if (itsTabFocus.equals("Components")) { + if (ComponentsPanel.getSelectedRowCount() > 1) { + multipleSelection=true; + } else { + multipleSelection=false; + } if (componentID > 0 ) { - buttonPanel1.setButtonEnabled("Modify",true); - buttonPanel1.setButtonEnabled("Delete",true); - try { - if (OtdbRmi.getRemoteMaintenance().isTopComponent(componentID)) { - buttonPanel1.setButtonEnabled("Build TemplateTree",true); - } else { - buttonPanel1.setButtonEnabled("Build TemplateTree",false); + if (multipleSelection) { + buttonPanel1.setButtonEnabled("Modify",false); + buttonPanel1.setButtonEnabled("Query Panel",false); + buttonPanel1.setButtonEnabled("New",false); + buttonPanel1.setButtonEnabled("Refresh",false); + buttonPanel1.setButtonEnabled("Build TemplateTree",false); + } else { + buttonPanel1.setButtonEnabled("Modify",true); + buttonPanel1.setButtonEnabled("Query Panel",true); + buttonPanel1.setButtonEnabled("New",true); + buttonPanel1.setButtonEnabled("Refresh",true); + try { + if (OtdbRmi.getRemoteMaintenance().isTopComponent(componentID)) { + buttonPanel1.setButtonEnabled("Build TemplateTree",true); + } else { + buttonPanel1.setButtonEnabled("Build TemplateTree",false); + } + } catch (RemoteException ex) { + String aS="Error checking isTopComponent"; + logger.error(aS); + LofarUtils.showErrorPanel(this,aS,new javax.swing.ImageIcon(getClass().getResource("/nl/astron/lofar/sas/otb/icons/16_warn.gif"))); } - } catch (RemoteException ex) { - String aS="Error checking isTopComponent"; - logger.error(aS); - LofarUtils.showErrorPanel(this,aS,new javax.swing.ImageIcon(getClass().getResource("/nl/astron/lofar/sas/otb/icons/16_warn.gif"))); } + buttonPanel1.setButtonEnabled("Delete",true); } else { - buttonPanel1.setButtonEnabled("Modify",false); + buttonPanel1.setButtonEnabled("Delete",false); + buttonPanel1.setButtonEnabled("Modify",false); + buttonPanel1.setButtonEnabled("Query Panel",false); + buttonPanel1.setButtonEnabled("New",false); + buttonPanel1.setButtonEnabled("Refresh",false); + buttonPanel1.setButtonEnabled("Build TemplateTree",false); } } else if (itsTabFocus.equals("Query Results")) { }