Skip to content
Snippets Groups Projects
Commit d39838de authored by pompert's avatar pompert
Browse files

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)
parent 345109cd
No related branches found
No related tags found
No related merge requests found
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<!-- Only one server can be specified at this time. Please modify this server node if needed --> <!-- Only one server can be specified at this time. Please modify this server node if needed -->
<server id="ParmDB1" name="ParmDB on LOFAR17"> <server id="ParmDB1" name="ParmDB on LOFAR17">
<connection> <connection>
<rmihostname>lofar17.astron.nl</rmihostname> <rmihostname>localhost</rmihostname>
<rmiport>10668</rmiport> <rmiport>10668</rmiport>
</connection> </connection>
<tables> <tables>
......
...@@ -116,8 +116,8 @@ public class PlotSlot extends JPanel{ ...@@ -116,8 +116,8 @@ public class PlotSlot extends JPanel{
add(itsPlot,BorderLayout.CENTER); add(itsPlot,BorderLayout.CENTER);
} catch (PlotterException ex) { } catch (PlotterException ex) {
JTextArea error = new JTextArea(ex.getMessage()); JTextArea error = new JTextArea(ex.getMessage());
error.setColumns(50); error.setColumns(20);
add(new JTextArea(ex.getMessage()),BorderLayout.CENTER); add(error,BorderLayout.CENTER);
ex.printStackTrace(); ex.printStackTrace();
} }
} }
...@@ -135,8 +135,8 @@ public class PlotSlot extends JPanel{ ...@@ -135,8 +135,8 @@ public class PlotSlot extends JPanel{
} catch (PlotterException ex) { } catch (PlotterException ex) {
JTextArea error = new JTextArea(ex.getMessage()); JTextArea error = new JTextArea(ex.getMessage());
error.setColumns(50); error.setColumns(20);
add(new JTextArea(ex.getMessage()),BorderLayout.CENTER); add(error,BorderLayout.CENTER);
ex.printStackTrace(); ex.printStackTrace();
} }
......
...@@ -125,6 +125,19 @@ public class PlotSlotManager{ ...@@ -125,6 +125,19 @@ public class PlotSlotManager{
return availableSlots; 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(){ public boolean areSlotsAvailable(){
boolean slotsAvailable = false; boolean slotsAvailable = false;
...@@ -144,6 +157,15 @@ public class PlotSlotManager{ ...@@ -144,6 +157,15 @@ public class PlotSlotManager{
} }
return numberOfAvailableSlots; 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){ public void createPlotInSlot(int index, Object constraints){
getSlot(index).addPlot(constraints); getSlot(index).addPlot(constraints);
...@@ -203,6 +225,9 @@ public class PlotSlotManager{ ...@@ -203,6 +225,9 @@ public class PlotSlotManager{
public boolean isSlotAvailable(int index){ public boolean isSlotAvailable(int index){
return getSlot(index).isEmpty(); return getSlot(index).isEmpty();
} }
public boolean isSlotOccupied(int index){
return !getSlot(index).isEmpty();
}
/** /**
* Utility field used by event firing mechanism. * Utility field used by event firing mechanism.
......
...@@ -74,6 +74,15 @@ public class PlotSlotsPanel extends javax.swing.JPanel { ...@@ -74,6 +74,15 @@ public class PlotSlotsPanel extends javax.swing.JPanel {
throw new IllegalArgumentException("A plot already exists in slot "+index); 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(){ public void clearSlots(){
itsSlotManager.clearSlots(); itsSlotManager.clearSlots();
repaint(); repaint();
...@@ -95,6 +104,9 @@ public class PlotSlotsPanel extends javax.swing.JPanel { ...@@ -95,6 +104,9 @@ public class PlotSlotsPanel extends javax.swing.JPanel {
public int[] getAvailableSlotIndexes(){ public int[] getAvailableSlotIndexes(){
return itsSlotManager.getAvailableSlotIndexes(); return itsSlotManager.getAvailableSlotIndexes();
} }
public int[] getOccupiedSlotIndexes(){
return itsSlotManager.getOccupiedSlotIndexes();
}
private void rearrangeSlotGrid(){ private void rearrangeSlotGrid(){
slotsPanel.removeAll(); slotsPanel.removeAll();
......
...@@ -147,6 +147,25 @@ public class ParmDBPlotPanel extends javax.swing.JPanel implements IViewPanel{ ...@@ -147,6 +147,25 @@ public class ParmDBPlotPanel extends javax.swing.JPanel implements IViewPanel{
} }
aPopupMenu.add(addSlotMenu); 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.setOpaque(true);
aPopupMenu.show(aComponent, x, y ); aPopupMenu.show(aComponent, x, y );
} }
...@@ -166,6 +185,11 @@ public class ParmDBPlotPanel extends javax.swing.JPanel implements IViewPanel{ ...@@ -166,6 +185,11 @@ public class ParmDBPlotPanel extends javax.swing.JPanel implements IViewPanel{
logger.debug("Plot Slot extrapolated: "+slotSelected); logger.debug("Plot Slot extrapolated: "+slotSelected);
itsSlotsPanel.addPlotToSlot(slotSelected,constructPlotterConstraints(itsParamName)); 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){ private Object constructPlotterConstraints(String aParamName){
...@@ -192,8 +216,8 @@ public class ParmDBPlotPanel extends javax.swing.JPanel implements IViewPanel{ ...@@ -192,8 +216,8 @@ public class ParmDBPlotPanel extends javax.swing.JPanel implements IViewPanel{
double endx =Double.parseDouble(paramValues.get(1).toString()); double endx =Double.parseDouble(paramValues.get(1).toString());
double starty = Double.parseDouble(paramValues.get(2).toString()); double starty = Double.parseDouble(paramValues.get(2).toString());
double endy = Double.parseDouble(paramValues.get(3).toString()); double endy = Double.parseDouble(paramValues.get(3).toString());
int numx = Integer.parseInt("5"); int numx = Integer.parseInt("10");
int numy = Integer.parseInt("5"); int numy = Integer.parseInt("10");
passToDataAccess[0] = cloneParamName; passToDataAccess[0] = cloneParamName;
passToDataAccess[1] = ""+startx; passToDataAccess[1] = ""+startx;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment