From d39838de667f4b4d325a5fc0879425b88d46f517 Mon Sep 17 00:00:00 2001 From: pompert <sdos@astron.nl> Date: Fri, 9 Jun 2006 14:24:46 +0000 Subject: [PATCH] BugID: 701 Additions: -Swing code that triggers the plotter's updatedata method. -Extra popupmenu that enables the user to add data to an existing plot (has to be further implemented) --- SAS/OTB/OTB/src/ParmDBConfiguration.xml | 2 +- .../lofar/sas/otb/util/plotter/PlotSlot.java | 8 +++--- .../sas/otb/util/plotter/PlotSlotManager.java | 25 +++++++++++++++++ .../sas/otb/util/plotter/PlotSlotsPanel.java | 12 ++++++++ .../sas/otbcomponents/ParmDBPlotPanel.java | 28 +++++++++++++++++-- 5 files changed, 68 insertions(+), 7 deletions(-) diff --git a/SAS/OTB/OTB/src/ParmDBConfiguration.xml b/SAS/OTB/OTB/src/ParmDBConfiguration.xml index 140851fe223..20a893d7dd6 100644 --- a/SAS/OTB/OTB/src/ParmDBConfiguration.xml +++ b/SAS/OTB/OTB/src/ParmDBConfiguration.xml @@ -11,7 +11,7 @@ <!-- Only one server can be specified at this time. Please modify this server node if needed --> <server id="ParmDB1" name="ParmDB on LOFAR17"> <connection> - <rmihostname>lofar17.astron.nl</rmihostname> + <rmihostname>localhost</rmihostname> <rmiport>10668</rmiport> </connection> <tables> diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/plotter/PlotSlot.java b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/plotter/PlotSlot.java index af0d57d3ac4..5f592904506 100644 --- a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/plotter/PlotSlot.java +++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/plotter/PlotSlot.java @@ -116,8 +116,8 @@ public class PlotSlot extends JPanel{ add(itsPlot,BorderLayout.CENTER); } catch (PlotterException ex) { JTextArea error = new JTextArea(ex.getMessage()); - error.setColumns(50); - add(new JTextArea(ex.getMessage()),BorderLayout.CENTER); + error.setColumns(20); + add(error,BorderLayout.CENTER); ex.printStackTrace(); } } @@ -135,8 +135,8 @@ public class PlotSlot extends JPanel{ } catch (PlotterException ex) { JTextArea error = new JTextArea(ex.getMessage()); - error.setColumns(50); - add(new JTextArea(ex.getMessage()),BorderLayout.CENTER); + error.setColumns(20); + add(error,BorderLayout.CENTER); ex.printStackTrace(); } diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/plotter/PlotSlotManager.java b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/plotter/PlotSlotManager.java index 994938fd9e8..47b2bf98947 100644 --- a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/plotter/PlotSlotManager.java +++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/plotter/PlotSlotManager.java @@ -125,6 +125,19 @@ public class PlotSlotManager{ return availableSlots; } + public int[] getOccupiedSlotIndexes(){ + int[] occupiedSlots = null; + occupiedSlots = new int[countOccupiedSlots()]; + int index = 0; + for(PlotSlot slot : itsPlotSlots){ + if(!slot.isEmpty()){ + occupiedSlots[index] = itsPlotSlots.indexOf(slot)+1; + index++; + } + } + + return occupiedSlots; + } public boolean areSlotsAvailable(){ boolean slotsAvailable = false; @@ -144,6 +157,15 @@ public class PlotSlotManager{ } return numberOfAvailableSlots; } + public int countOccupiedSlots(){ + int numberOfOccupiedSlots = 0; + for(PlotSlot slot : itsPlotSlots){ + if(!slot.isEmpty()){ + numberOfOccupiedSlots++; + } + } + return numberOfOccupiedSlots; + } public void createPlotInSlot(int index, Object constraints){ getSlot(index).addPlot(constraints); @@ -203,6 +225,9 @@ public class PlotSlotManager{ public boolean isSlotAvailable(int index){ return getSlot(index).isEmpty(); } + public boolean isSlotOccupied(int index){ + return !getSlot(index).isEmpty(); + } /** * Utility field used by event firing mechanism. diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/plotter/PlotSlotsPanel.java b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/plotter/PlotSlotsPanel.java index e98c96a0970..65336d5c4f4 100644 --- a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/plotter/PlotSlotsPanel.java +++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/plotter/PlotSlotsPanel.java @@ -74,6 +74,15 @@ public class PlotSlotsPanel extends javax.swing.JPanel { throw new IllegalArgumentException("A plot already exists in slot "+index); } } + /** adds a button to the BeanForm */ + public void addDataToPlot(int slotIndex,Object constraints) throws IllegalArgumentException{ + if(itsSlotManager.isSlotOccupied(slotIndex)){ + itsSlotManager.modifyPlotInSlot(slotIndex,constraints); + }else{ + throw new IllegalArgumentException("A plot was not found in slot "+slotIndex); + } + } + public void clearSlots(){ itsSlotManager.clearSlots(); repaint(); @@ -95,6 +104,9 @@ public class PlotSlotsPanel extends javax.swing.JPanel { public int[] getAvailableSlotIndexes(){ return itsSlotManager.getAvailableSlotIndexes(); } + public int[] getOccupiedSlotIndexes(){ + return itsSlotManager.getOccupiedSlotIndexes(); + } private void rearrangeSlotGrid(){ slotsPanel.removeAll(); diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/ParmDBPlotPanel.java b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/ParmDBPlotPanel.java index 29f771902d9..5c546012489 100644 --- a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/ParmDBPlotPanel.java +++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/ParmDBPlotPanel.java @@ -147,6 +147,25 @@ public class ParmDBPlotPanel extends javax.swing.JPanel implements IViewPanel{ } aPopupMenu.add(addSlotMenu); } + int[] occupiedSlots = itsSlotsPanel.getOccupiedSlotIndexes(); + if(occupiedSlots.length > 0){ + JMenu addSlotMenu=new JMenu("Add to plot in slot"); + + logger.trace("Occupied slots to put in popup menu: "+ availableSlots.length); + for(int i = 0; i < occupiedSlots.length; i++){ + JMenuItem aMenuItem=new JMenuItem(""+occupiedSlots[i]); + aMenuItem.setActionCommand("Add to plot in slot "+occupiedSlots[i]); + aMenuItem.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + popupMenuHandler(evt); + } + }); + + addSlotMenu.add(aMenuItem); + + } + aPopupMenu.add(addSlotMenu); + } aPopupMenu.setOpaque(true); aPopupMenu.show(aComponent, x, y ); } @@ -166,6 +185,11 @@ public class ParmDBPlotPanel extends javax.swing.JPanel implements IViewPanel{ logger.debug("Plot Slot extrapolated: "+slotSelected); itsSlotsPanel.addPlotToSlot(slotSelected,constructPlotterConstraints(itsParamName)); } + else if(evt.getActionCommand().startsWith("Add to plot in slot")){ + int slotSelected = Integer.parseInt(evt.getActionCommand().toString().substring(20)); + logger.debug("Plot Slot extrapolated: "+slotSelected); + itsSlotsPanel.addDataToPlot(slotSelected,constructPlotterConstraints(itsParamName)); + } } private Object constructPlotterConstraints(String aParamName){ @@ -192,8 +216,8 @@ public class ParmDBPlotPanel extends javax.swing.JPanel implements IViewPanel{ double endx =Double.parseDouble(paramValues.get(1).toString()); double starty = Double.parseDouble(paramValues.get(2).toString()); double endy = Double.parseDouble(paramValues.get(3).toString()); - int numx = Integer.parseInt("5"); - int numy = Integer.parseInt("5"); + int numx = Integer.parseInt("10"); + int numy = Integer.parseInt("10"); passToDataAccess[0] = cloneParamName; passToDataAccess[1] = ""+startx; -- GitLab