diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/BBSStrategyPanel.form b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/BBSStrategyPanel.form index aab119b244f86504a4e575ff3e37def008eb5d47..53d1af446365e71ddb59326a70c349fb6082dc69 100644 --- a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/BBSStrategyPanel.form +++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/BBSStrategyPanel.form @@ -136,93 +136,105 @@ </Constraint> </Constraints> - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> + <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/> <SubComponents> - <Component class="javax.swing.JCheckBox" name="stationsUseAllCheckbox"> - <Properties> - <Property name="text" type="java.lang.String" value="Use all stations"/> - <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> - <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo"> - <EmptyBorder bottom="0" left="0" right="0" top="0"/> - </Border> - </Property> - <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> - <Insets value="[0, 0, 0, 0]"/> - </Property> - </Properties> - <Events> - <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="stationsUseAllCheckboxStateChanged"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="17" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JButton" name="addStationButton"> - <Properties> - <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> - <Image iconType="3" name="/nl/astron/lofar/sas/otbcomponents/bbs/icons/general/Add16.gif"/> - </Property> - <Property name="toolTipText" type="java.lang.String" value="Add the station entered to the list"/> - <Property name="enabled" type="boolean" value="false"/> - <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[30, 25]"/> - </Property> - <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[30, 25]"/> - </Property> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[30, 25]"/> - </Property> - </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="addStationButtonActionPerformed"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="1" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JButton" name="deleteStationButton"> - <Properties> - <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> - <Image iconType="3" name="/nl/astron/lofar/sas/otbcomponents/bbs/icons/general/Delete16.gif"/> - </Property> - <Property name="toolTipText" type="java.lang.String" value="Remove the selected Station from the list"/> - <Property name="enabled" type="boolean" value="false"/> - <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[30, 25]"/> - </Property> - <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[30, 25]"/> - </Property> - <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> - <Dimension value="[30, 25]"/> - </Property> - </Properties> + <Component class="javax.swing.JTextField" name="modifyStationText"> <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="deleteStationButtonActionPerformed"/> + <EventHandler event="keyReleased" listener="java.awt.event.KeyListener" parameters="java.awt.event.KeyEvent" handler="modifyStationTextKeyReleased"/> </Events> <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="2" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription"> + <BorderConstraints direction="Center"/> </Constraint> </Constraints> </Component> - <Component class="javax.swing.JTextField" name="modifyStationText"> - <Events> - <EventHandler event="keyReleased" listener="java.awt.event.KeyListener" parameters="java.awt.event.KeyEvent" handler="modifyStationTextKeyReleased"/> - </Events> + <Container class="javax.swing.JPanel" name="stationsButtonPanel"> <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="0" gridY="0" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription"> + <BorderConstraints direction="South"/> </Constraint> </Constraints> - </Component> + + <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> + <SubComponents> + <Component class="javax.swing.JButton" name="deleteStationButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/nl/astron/lofar/sas/otbcomponents/bbs/icons/general/Delete16.gif"/> + </Property> + <Property name="toolTipText" type="java.lang.String" value="Remove the selected Station from the list"/> + <Property name="enabled" type="boolean" value="false"/> + <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[30, 25]"/> + </Property> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[30, 25]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[30, 25]"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="deleteStationButtonActionPerformed"/> + </Events> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="1" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JButton" name="addStationButton"> + <Properties> + <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor"> + <Image iconType="3" name="/nl/astron/lofar/sas/otbcomponents/bbs/icons/general/Add16.gif"/> + </Property> + <Property name="toolTipText" type="java.lang.String" value="Add the station entered to the list"/> + <Property name="enabled" type="boolean" value="false"/> + <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[30, 25]"/> + </Property> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[30, 25]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[30, 25]"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="addStationButtonActionPerformed"/> + </Events> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + </SubComponents> + </Container> </SubComponents> </Container> + <Component class="javax.swing.JCheckBox" name="stationsUseAllCheckbox"> + <Properties> + <Property name="text" type="java.lang.String" value="Use all stations"/> + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor"> + <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo"> + <EmptyBorder bottom="0" left="0" right="0" top="0"/> + </Border> + </Property> + <Property name="horizontalAlignment" type="int" value="0"/> + <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> + <Insets value="[0, 0, 0, 0]"/> + </Property> + </Properties> + <Events> + <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="stationsUseAllCheckboxStateChanged"/> + </Events> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription"> + <BorderConstraints direction="North"/> + </Constraint> + </Constraints> + </Component> </SubComponents> </Container> <Container class="javax.swing.JPanel" name="stepsPanel"> @@ -245,25 +257,6 @@ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/> <SubComponents> - <Container class="javax.swing.JScrollPane" name="stepsScrollPane"> - <AuxValues> - <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/> - </AuxValues> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription"> - <BorderConstraints direction="Center"/> - </Constraint> - </Constraints> - - <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/> - <SubComponents> - <Component class="javax.swing.JTree" name="stepsTree"> - <Properties> - <Property name="toolTipText" type="java.lang.String" value="The names of the steps that compose the strategy."/> - </Properties> - </Component> - </SubComponents> - </Container> <Container class="javax.swing.JPanel" name="stepsModsPanel"> <Properties> <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> @@ -298,7 +291,7 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> - <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="2" insetsBottom="2" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/> </Constraint> </Constraints> </Component> @@ -423,6 +416,16 @@ </Component> </SubComponents> </Container> + <Component class="nl.astron.lofar.sas.otbcomponents.TreePanel" name="stepsTreePanel"> + <Properties> + <Property name="title" type="java.lang.String" value="Strategy Step Tree"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription"> + <BorderConstraints direction="Center"/> + </Constraint> + </Constraints> + </Component> </SubComponents> </Container> <Container class="javax.swing.JPanel" name="correlationPanel"> diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/BBSStrategyPanel.java b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/BBSStrategyPanel.java index 1ba6da38f9a7679c3ff5cbbf96b2cd9f02533581..49a7389d811ca16648d4da50e8598cd5dff82cc8 100644 --- a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/BBSStrategyPanel.java +++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/BBSStrategyPanel.java @@ -32,8 +32,6 @@ import javax.swing.JList; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JPopupMenu; -import javax.swing.JTextField; -import javax.swing.SwingUtilities; import javax.swing.border.TitledBorder; import nl.astron.lofar.lofarutils.LofarUtils; import nl.astron.lofar.sas.otb.MainFrame; @@ -41,6 +39,8 @@ import nl.astron.lofar.sas.otb.jotdb2.jOTDBnode; import nl.astron.lofar.sas.otb.jotdb2.jOTDBparam; import nl.astron.lofar.sas.otb.util.IViewPanel; import nl.astron.lofar.sas.otb.util.UserAccount; +import nl.astron.lofar.sas.otb.util.treenodes.TreeNode; +import nl.astron.lofar.sas.otbcomponents.bbs.stepmanagement.BBSStepTreeManager; import org.apache.log4j.Logger; /** @@ -114,6 +114,33 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{ this.retrieveAndDisplayChildDataForNode(aNode); } } + + //Add steps that make up the strategy to the steps tree browser + Vector steps = itsMainFrame.getSharedVars().getOTDBrmi().getRemoteMaintenance().getItemList(itsNode.treeID(), itsNode.parentID(), 1); + + // get all the params per child + Enumeration se = steps.elements(); + while( se.hasMoreElements() ) { + aParam=null; + jOTDBnode aNode = (jOTDBnode)se.nextElement(); + + // We need to keep all the nodes needed by this panel + // if the node is a leaf we need to get the pointed to value via Param. + if (aNode.leaf) { + + //we need to get all the childs from the following nodes as well. + }else if (LofarUtils.keyName(aNode.name).equals("Step")) { + //Add steps to tree + String[] rootNodeArgs = new String[3]; + rootNodeArgs[0]= "Strategy Steps"; + rootNodeArgs[1]=aNode.name; + rootNodeArgs[2]=""; + TreeNode newStepRootNode = BBSStepTreeManager.getInstance(itsMainFrame.getUserAccount()).getRootNode(rootNodeArgs); + this.stepsTreePanel.newRootNode(newStepRootNode); + + } + } + } catch (RemoteException ex) { logger.debug("Error during getComponentParam: "+ ex); itsParamList=null; @@ -335,6 +362,10 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{ this.fillSelectionListFromString(correlationTypeList,aNode.limits,true); } } + } else if(parentName.equals("Step")){ + //Detected Step node + + } } @@ -561,13 +592,12 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{ stationsScrollPane = new javax.swing.JScrollPane(); stationsList = new javax.swing.JList(); stationsModPanel = new javax.swing.JPanel(); - stationsUseAllCheckbox = new javax.swing.JCheckBox(); - addStationButton = new javax.swing.JButton(); - deleteStationButton = new javax.swing.JButton(); modifyStationText = new javax.swing.JTextField(); + stationsButtonPanel = new javax.swing.JPanel(); + deleteStationButton = new javax.swing.JButton(); + addStationButton = new javax.swing.JButton(); + stationsUseAllCheckbox = new javax.swing.JCheckBox(); stepsPanel = new javax.swing.JPanel(); - stepsScrollPane = new javax.swing.JScrollPane(); - stepsTree = new javax.swing.JTree(); stepsModsPanel = new javax.swing.JPanel(); addStepButton = new javax.swing.JButton(); removeStepButton = new javax.swing.JButton(); @@ -576,6 +606,7 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{ stepsMoveUpDownPanel = new javax.swing.JPanel(); moveStepUpButton = new javax.swing.JButton(); moveStepDownButton = new javax.swing.JButton(); + stepsTreePanel = new nl.astron.lofar.sas.otbcomponents.TreePanel(); correlationPanel = new javax.swing.JPanel(); correlationSelectionLabel = new javax.swing.JLabel(); correlationSelectionBox = new javax.swing.JComboBox(); @@ -648,43 +679,17 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{ stationsPanel.add(stationsScrollPane, java.awt.BorderLayout.CENTER); - stationsModPanel.setLayout(new java.awt.GridBagLayout()); + stationsModPanel.setLayout(new java.awt.BorderLayout()); - stationsUseAllCheckbox.setText("Use all stations"); - stationsUseAllCheckbox.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); - stationsUseAllCheckbox.setMargin(new java.awt.Insets(0, 0, 0, 0)); - stationsUseAllCheckbox.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - stationsUseAllCheckboxStateChanged(evt); + modifyStationText.addKeyListener(new java.awt.event.KeyAdapter() { + public void keyReleased(java.awt.event.KeyEvent evt) { + modifyStationTextKeyReleased(evt); } }); - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 1; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; - gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); - stationsModPanel.add(stationsUseAllCheckbox, gridBagConstraints); + stationsModPanel.add(modifyStationText, java.awt.BorderLayout.CENTER); - addStationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nl/astron/lofar/sas/otbcomponents/bbs/icons/general/Add16.gif"))); - addStationButton.setToolTipText("Add the station entered to the list"); - addStationButton.setEnabled(false); - addStationButton.setMaximumSize(new java.awt.Dimension(30, 25)); - addStationButton.setMinimumSize(new java.awt.Dimension(30, 25)); - addStationButton.setPreferredSize(new java.awt.Dimension(30, 25)); - addStationButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - addStationButtonActionPerformed(evt); - } - }); - - gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 1; - gridBagConstraints.gridy = 1; - gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; - gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); - stationsModPanel.add(addStationButton, gridBagConstraints); + stationsButtonPanel.setLayout(new java.awt.GridBagLayout()); deleteStationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nl/astron/lofar/sas/otbcomponents/bbs/icons/general/Delete16.gif"))); deleteStationButton.setToolTipText("Remove the selected Station from the list"); @@ -699,28 +704,47 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{ }); gridBagConstraints = new java.awt.GridBagConstraints(); - gridBagConstraints.gridx = 2; + gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); - stationsModPanel.add(deleteStationButton, gridBagConstraints); + stationsButtonPanel.add(deleteStationButton, gridBagConstraints); - modifyStationText.addKeyListener(new java.awt.event.KeyAdapter() { - public void keyReleased(java.awt.event.KeyEvent evt) { - modifyStationTextKeyReleased(evt); + addStationButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nl/astron/lofar/sas/otbcomponents/bbs/icons/general/Add16.gif"))); + addStationButton.setToolTipText("Add the station entered to the list"); + addStationButton.setEnabled(false); + addStationButton.setMaximumSize(new java.awt.Dimension(30, 25)); + addStationButton.setMinimumSize(new java.awt.Dimension(30, 25)); + addStationButton.setPreferredSize(new java.awt.Dimension(30, 25)); + addStationButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + addStationButtonActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; - gridBagConstraints.gridy = 0; - gridBagConstraints.gridwidth = 3; + gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); - stationsModPanel.add(modifyStationText, gridBagConstraints); + stationsButtonPanel.add(addStationButton, gridBagConstraints); + + stationsModPanel.add(stationsButtonPanel, java.awt.BorderLayout.SOUTH); stationsPanel.add(stationsModPanel, java.awt.BorderLayout.SOUTH); + stationsUseAllCheckbox.setText("Use all stations"); + stationsUseAllCheckbox.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); + stationsUseAllCheckbox.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + stationsUseAllCheckbox.setMargin(new java.awt.Insets(0, 0, 0, 0)); + stationsUseAllCheckbox.addChangeListener(new javax.swing.event.ChangeListener() { + public void stateChanged(javax.swing.event.ChangeEvent evt) { + stationsUseAllCheckboxStateChanged(evt); + } + }); + + stationsPanel.add(stationsUseAllCheckbox, java.awt.BorderLayout.NORTH); + strategyPanel.add(stationsPanel, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 150, 220, 330)); stepsPanel.setLayout(new java.awt.BorderLayout()); @@ -728,11 +752,6 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{ stepsPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Steps")); stepsPanel.setToolTipText("The names of the steps that compose the strategy."); stepsPanel.setPreferredSize(new java.awt.Dimension(100, 100)); - stepsTree.setToolTipText("The names of the steps that compose the strategy."); - stepsScrollPane.setViewportView(stepsTree); - - stepsPanel.add(stepsScrollPane, java.awt.BorderLayout.CENTER); - stepsModsPanel.setLayout(new java.awt.GridBagLayout()); stepsModsPanel.setMinimumSize(new java.awt.Dimension(100, 30)); @@ -741,7 +760,9 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{ addStepButton.setMaximumSize(new java.awt.Dimension(30, 25)); addStepButton.setMinimumSize(new java.awt.Dimension(30, 25)); addStepButton.setPreferredSize(new java.awt.Dimension(30, 25)); - stepsModsPanel.add(addStepButton, new java.awt.GridBagConstraints()); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); + stepsModsPanel.add(addStepButton, gridBagConstraints); removeStepButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nl/astron/lofar/sas/otbcomponents/bbs/icons/general/Delete16.gif"))); removeStepButton.setMaximumSize(new java.awt.Dimension(30, 25)); @@ -802,6 +823,9 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{ stepsPanel.add(stepsMoveUpDownPanel, java.awt.BorderLayout.EAST); + stepsTreePanel.setTitle("Strategy Step Tree"); + stepsPanel.add(stepsTreePanel, java.awt.BorderLayout.CENTER); + strategyPanel.add(stepsPanel, new org.netbeans.lib.awtextra.AbsoluteConstraints(250, 150, 400, 330)); correlationPanel.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); @@ -880,7 +904,7 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{ add(strategyScrollPane, java.awt.BorderLayout.CENTER); }// </editor-fold>//GEN-END:initComponents - + private void modifyStationTextKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_modifyStationTextKeyReleased String toBeAddedStation = modifyStationText.getText(); if(!toBeAddedStation.equals("")){ @@ -889,7 +913,7 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{ this.addStationButton.setEnabled(false); } }//GEN-LAST:event_modifyStationTextKeyReleased - + private void stationsListValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_stationsListValueChanged int[] selectedIndices = ((JList)evt.getSource()).getSelectedIndices(); if(selectedIndices.length>0){ @@ -898,7 +922,7 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{ this.deleteStationButton.setEnabled(false); } }//GEN-LAST:event_stationsListValueChanged - + private void deleteStationButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteStationButtonActionPerformed DefaultListModel theStationModel = (DefaultListModel)stationsList.getModel(); int[] selectedIndices = stationsList.getSelectedIndices(); @@ -910,7 +934,7 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{ this.deleteStationButton.setEnabled(false); } }//GEN-LAST:event_deleteStationButtonActionPerformed - + private void addStationButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addStationButtonActionPerformed String toBeAddedStation = this.modifyStationText.getText(); if(!toBeAddedStation.equals("")){ @@ -985,6 +1009,7 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{ private javax.swing.JButton moveStepDownButton; private javax.swing.JButton moveStepUpButton; private javax.swing.JButton removeStepButton; + private javax.swing.JPanel stationsButtonPanel; private javax.swing.JList stationsList; private javax.swing.JPanel stationsModPanel; private javax.swing.JPanel stationsPanel; @@ -993,8 +1018,7 @@ public class BBSStrategyPanel extends javax.swing.JPanel implements IViewPanel{ private javax.swing.JPanel stepsModsPanel; private javax.swing.JPanel stepsMoveUpDownPanel; private javax.swing.JPanel stepsPanel; - private javax.swing.JScrollPane stepsScrollPane; - private javax.swing.JTree stepsTree; + private nl.astron.lofar.sas.otbcomponents.TreePanel stepsTreePanel; private javax.swing.JPanel strategyPanel; private javax.swing.JButton strategyRevertButton; private javax.swing.JScrollPane strategyScrollPane; diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/stepmanagement/BBSStepNode.java b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/stepmanagement/BBSStepNode.java new file mode 100644 index 0000000000000000000000000000000000000000..500fec260be9c0e53a603f53bfd22dea5e574012 --- /dev/null +++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/stepmanagement/BBSStepNode.java @@ -0,0 +1,70 @@ +//# BBSStepNode.java: Structure containing a tree node. +//# +//# Copyright (C) 2002-2007 +//# ASTRON (Netherlands Foundation for Research in Astronomy) +//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl +//# +//# This program is free software; you can redistribute it and/or modify +//# it under the terms of the GNU General Public License as published by +//# the Free Software Foundation; either version 2 of the License, or +//# (at your option) any later version. +//# +//# This program is distributed in the hope that it will be useful, +//# but WITHOUT ANY WARRANTY; without even the implied warranty of +//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//# GNU General Public License for more details. +//# +//# You should have received a copy of the GNU General Public License +//# along with this program; if not, write to the Free Software +//# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +//# + +package nl.astron.lofar.sas.otbcomponents.bbs.stepmanagement; + +public class BBSStepNode implements java.io.Serializable { + + // private members + private String name; + private boolean leaf; + private boolean rootNode; + private String itsNodeID; + private String itsParentID; + + + public BBSStepNode(String nodeID, String parentID) { + leaf = false; + itsNodeID = nodeID; + itsParentID = parentID; + rootNode = false; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public boolean isLeaf() { + return leaf; + } + public void setLeaf(boolean leaf) { + this.leaf = leaf; + } + public boolean isRootNode() { + return rootNode; + } + public void setRootNode(boolean isRootNode) { + this.rootNode = isRootNode; + } + public String getNodeID() { + return (itsNodeID); + } + public void setNodeID(String nodeId) { + itsNodeID = nodeId; + } + public String getParentID() { + return (itsParentID); + } + public void setParentID(String parentID) { + itsParentID = parentID; + } +} diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/stepmanagement/BBSStepTreeManager.java b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/stepmanagement/BBSStepTreeManager.java new file mode 100644 index 0000000000000000000000000000000000000000..df902452607182e9730997f82aa3f1affb8e0806 --- /dev/null +++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/bbs/stepmanagement/BBSStepTreeManager.java @@ -0,0 +1,136 @@ +/* + * BBSStepTreeManager.java + * + * Copyright (C) 2002-2007 + * ASTRON (Netherlands Foundation for Research in Astronomy) + * P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +package nl.astron.lofar.sas.otbcomponents.bbs.stepmanagement; + +import java.util.Enumeration; +import java.util.Vector; +import nl.astron.lofar.sas.otb.util.UserAccount; +import nl.astron.lofar.sas.otb.util.treemanagers.GenericTreeManager; +import nl.astron.lofar.sas.otb.util.treemanagers.ITreeManager; +import nl.astron.lofar.sas.otb.util.treenodes.TreeNode; +import org.apache.log4j.Logger; + +/** + * Base BBSStepTreeManager Class + * + * @author pompert + * @version $Id$ + * @created 25-7-2006, 13:56 + * @updated + */ +public class BBSStepTreeManager extends GenericTreeManager implements ITreeManager{ + + // Create a Log4J logger instance + private static Logger logger = Logger.getLogger(BBSStepTreeManager.class); + private static BBSStepTreeManager instance; + private static String BBSSTEP_TREENODE_SEPARATOR_CHAR = "."; + + /** + * default constructor, protected by a singleton pattern + */ + private BBSStepTreeManager(UserAccount anAccount) { + super(anAccount); + } + + public static BBSStepTreeManager getInstance(UserAccount anAccount){ + if(instance==null){ + instance = new BBSStepTreeManager(anAccount); + } + return instance; + } + + public String getNameForNode(TreeNode aNode){ + String name = ((BBSStepNode)aNode.getUserObject()).getName(); + return name; + } + + public boolean isNodeLeaf(TreeNode aNode){ + boolean leaf = false; + if (aNode.getUserObject() != null) { + leaf = ((BBSStepNode)aNode.getUserObject()).isLeaf(); + } + return leaf; + } + + public void defineChildsForNode(TreeNode aNode) { + /* + logger.trace("Entry - TreeManager BBSStepNode-defineChildNodes("+aNode.getName()+" ("+((BBSStepNode)aNode.getUserObject()).getNodeID()+"))"); + try { + // You must set the flag before defining children if you + // use "add" for the new children. Otherwise you get an infinite + // recursive loop, since add results in a call to getChildCount. + // However, you could use "insert" in such a case. + aNode.areChildrenDefined = true; + Vector childs = null; + BBSStepNode containedNode = (BBSStepNode)aNode.getUserObject(); + + if(((BBSStepNode)aNode.getUserObject()).isRootNode()){ + //childs = SharedVars.getJParmFacade().getNames(""+containedNode.getNodeID().substring(containedNode.getParmDBIdentifier().length())+"*"); + }else{ + //childs = SharedVars.getJParmFacade().getNames("*"+containedNode.getNodeID().substring(containedNode.getParmDBIdentifier().length()+1)+this.PARMDB_TREENODE_SEPARATOR_CHAR+"*"); + } + Vector<String> uniqueNames = new Vector<String>(); + Enumeration e = childs.elements(); + while( e.hasMoreElements() ) { + String aValue = (String)e.nextElement(); + + + BBSStepNode item = new BBSStepNode(containedNode.getNodeID()+this.BBSSTEP_TREENODE_SEPARATOR_CHAR+childName,((BBSStepNode)aNode.getUserObject()).getNodeID()); + //item.leaf=true; + item.setName(childName); + logger.trace("Node name selected : "+item.getName()); + ((jParmDBnode)aNode.getUserObject()).setLeaf(false); + TreeNode newNode = new TreeNode(this.instance,item,item.getNodeID()); + aNode.add(newNode); + TreeModelEvent evt = new TreeModelEvent(newNode,newNode.getPath()); + + fireTreeInsertionPerformed(evt); + + + } + if(uniqueNames.size() == 0){ + ((BBSStepNode)aNode.getUserObject()).setLeaf(true); + } + + } catch(Exception e) { + logger.fatal("Exception during TreeManager BBSStepNode-defineChildNodes: " + e); + } + logger.trace("Exit - TreeManager defineChildNodes("+toString()+")"); + */ + } + + public TreeNode getRootNode(Object arguments){ + String[] argumentArray = (String[])arguments; + BBSStepNode newPNode = new BBSStepNode(argumentArray[0],argumentArray[1]); + if(argumentArray.length==3){ + if(!argumentArray[2].equals("")){ + newPNode.setRootNode(true); + } + } + newPNode.setName(argumentArray[0]); + TreeNode bbsNode = new TreeNode(this.instance,newPNode,newPNode.getName()); + + return bbsNode; + } + +}