protected JPanel createForm() { JPanel panel = new JPanel(); panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS)); // Time JPanel pT = new JPanel(new FlowLayout()); pT.setBorder(BorderFactory.createTitledBorder("Start Time")); hh = new JSpinner(new SpinnerNumberModel(Util.getHours(myrow.getTime()), 0, 99, 1)); hh.setEditor(new JSpinner.NumberEditor(hh, "00")); pT.add(hh); pT.add(new JLabel("h ")); mm = new JSpinner(new SpinnerNumberModel(Util.getMinutes(myrow.getTime()), 0, 59, 1)); mm.setEditor(new JSpinner.NumberEditor(mm, "00")); pT.add(mm); pT.add(new JLabel("m ")); ss = new JSpinner(new SpinnerNumberModel(Util.getSeconds(myrow.getTime()), 0, 59, 1)); ss.setEditor(new JSpinner.NumberEditor(ss, "00")); pT.add(ss); pT.add(new JLabel("s")); panel.add(pT); // Green JPanel pG = new JPanel(new BorderLayout()); pG.setBorder(BorderFactory.createTitledBorder("Green (sec.)")); green = new JSpinner(new SpinnerNumberModel(myrow.getGreen() * conversion, 0.0, 99999.99, 1)); green.setEditor(new JSpinner.NumberEditor(green, "####0.##")); pG.add(green); panel.add(pG); // Red JPanel pR = new JPanel(new BorderLayout()); pR.setBorder(BorderFactory.createTitledBorder("Red (sec.)")); red = new JSpinner(new SpinnerNumberModel(myrow.getRed() * conversion, 0.0, 99999.99, 1)); red.setEditor(new JSpinner.NumberEditor(red, "####0.##")); pR.add(red); panel.add(pR); JPanel bp = new JPanel(new FlowLayout()); JButton bOK = new JButton(" OK "); bOK.setActionCommand(cmdOK); bOK.addActionListener(new ButtonEventsListener()); JButton bCancel = new JButton("Cancel"); bCancel.setActionCommand(cmdCancel); bCancel.addActionListener(new ButtonEventsListener()); bp.add(bOK); bp.add(bCancel); panel.add(bp); return panel; }
/** Fills the panel with simple signal specific fields. */ protected void fillPanel() { if (controller != null) { Vector<CycleDataRow> cd = ((ControllerSimpleSignal) controller).getCycleTable(); for (int i = 0; i < cd.size(); i++) { CycleDataRow cdr = ((ControllerSimpleSignal) controller) .new CycleDataRow(cd.get(i).getTime(), cd.get(i).getGreen(), cd.get(i).getRed()); cycledata.add(cdr); } } // offset JPanel pO = new JPanel(new BorderLayout()); pO.setBorder(BorderFactory.createTitledBorder("Offset (sec.)")); offset = new JSpinner( new SpinnerNumberModel( ((ControllerSimpleSignal) controller).getOffset() * conversion, 0.0, 99999.99, 10)); offset.setEditor(new JSpinner.NumberEditor(offset, "####0.##")); pO.add(offset); add(pO); // table JPanel tabpanel = new JPanel(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); tabpanel.setBorder(BorderFactory.createTitledBorder("Cycle Schedule")); cycletable = new JTable(cycletablemodel); cycletable.setPreferredScrollableViewportSize(new Dimension(200, 50)); cycletable.addMouseListener( new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { int row = cycletable.rowAtPoint(new Point(e.getX(), e.getY())); if ((row > cycledata.size() - 1) || (row < 0)) return; try { WindowEdit winEdit = new WindowEdit(null, cycledata.get(row)); winEdit.setVisible(true); cycletablemodel.deleterow(row); cycletablemodel.addrow(winEdit.getMyRow()); } catch (Exception excp) { } } } }); c.fill = GridBagConstraints.HORIZONTAL; c.ipady = 100; c.weightx = 0.5; c.gridwidth = 3; c.gridx = 0; c.gridy = 0; tabpanel.add(new JScrollPane(cycletable), c); c.ipady = 0; c.gridy = 1; c.gridwidth = 1; c.gridx = 0; tabpanel.add(buttonAdd, c); c.gridx = 1; tabpanel.add(buttonDelete, c); add(tabpanel); // configure buttons buttonAdd.setEnabled(true); buttonAdd.addActionListener(new ButtonAddListener()); buttonDelete.setEnabled(true); buttonDelete.addActionListener(new ButtonDeleteListener()); return; }