/** Reaction to buttons and combo boxes. */ public void actionPerformed(ActionEvent e) { String cmd = e.getActionCommand(); if (cmdCtrlProp.equals(cmd)) { try { Class c = Class.forName("aurora.hwc.control.Panel" + myController.getClass().getSimpleName()); AbstractPanelController cp = (AbstractPanelController) c.newInstance(); cp.initialize(myController, null); } catch (Exception ex) { } } if (cmdCtrlList.equals(cmd)) { JComboBox cb = (JComboBox) e.getSource(); if (cb.getSelectedIndex() > 0) { myController = (AbstractControllerComplex) listCControllers.getSelectedItem(); buttonProp.setEnabled(true); } else { buttonProp.setEnabled(false); myController = null; } myMonitor.setMyController(myController); } return; }
/** Generates Configuration tab. */ private void fillConfigurationPanel() { JPanel desc = new JPanel(new GridLayout(2, 0)); desc.setBorder(BorderFactory.createTitledBorder("Description")); desc.add( new JLabel("<html><font color=\"blue\">" + myMonitor.getDescription() + "</font></html>")); desc.add(cbEnabled); cbEnabled.setSelected(enabled); cbEnabled.addChangeListener(this); confPanel.add(desc); JPanel mlpanel = new JPanel(new GridLayout(1, 0)); mlpanel.setBorder(BorderFactory.createTitledBorder("Monitored Network Elements")); montable = new JTable(montablemodel); montable.setPreferredScrollableViewportSize(new Dimension(200, 100)); montable.getColumnModel().getColumn(0).setPreferredWidth(140); montable.getColumnModel().getColumn(1).setPreferredWidth(60); montable.addMouseListener( new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { int row = montable.rowAtPoint(new Point(e.getX(), e.getY())); AbstractNetworkElement ne = null; if ((row >= 0) && (row < myMonitor.getPredecessors().size())) ne = myMonitor.getPredecessors().get(row); else return; treePane.actionSelected(ne, true); } return; } }); mlpanel.add(new JScrollPane(montable)); confPanel.add(mlpanel); JPanel cpanel = new JPanel(new GridLayout(1, 0)); cpanel.setBorder(BorderFactory.createTitledBorder("Controlleded Network Elements")); ctrltable = new JTable(ctrltablemodel); ctrltable.setPreferredScrollableViewportSize(new Dimension(200, 100)); ctrltable.getColumnModel().getColumn(0).setPreferredWidth(140); ctrltable.getColumnModel().getColumn(1).setPreferredWidth(60); ctrltable.addMouseListener( new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { int row = ctrltable.rowAtPoint(new Point(e.getX(), e.getY())); AbstractNetworkElement ne = null; if ((row >= 0) && (row < myMonitor.getSuccessors().size())) ne = myMonitor.getSuccessors().get(row); else return; treePane.actionSelected(ne, true); } return; } }); cpanel.add(new JScrollPane(ctrltable)); confPanel.add(cpanel); JPanel pcl = new JPanel(new FlowLayout()); // controller list buttonProp.setEnabled(false); buttonProp.setActionCommand(cmdCtrlProp); buttonProp.addActionListener(this); pcl.setBorder(BorderFactory.createTitledBorder("Complex Controller")); buttonProp.setEnabled(false); listCControllers = new JComboBox(); listCControllers.addItem("None"); String[] ctrlClasses = myMonitor.getComplexControllerClasses(); for (int i = 0; i < ctrlClasses.length; i++) { if ((myController != null) && (myController.getClass().getName().compareTo(ctrlClasses[i]) == 0)) { listCControllers.addItem(myController); listCControllers.setSelectedIndex(i + 1); buttonProp.setEnabled(true); } else { try { Class cl = Class.forName(ctrlClasses[i]); AbstractControllerComplex cc = (AbstractControllerComplex) cl.newInstance(); cc.setMyMonitor(myMonitor); cc.initialize(); listCControllers.addItem(cc); } catch (Exception e) { } } } listCControllers.setActionCommand(cmdCtrlList); listCControllers.addActionListener(this); pcl.add(listCControllers); pcl.add(buttonProp); confPanel.add(pcl); return; }
/** Fills the panel with SWARM specific fields. */ public void fillPanel() { // Zone initialization ControllerSWARM z = (ControllerSWARM) controller; Vector<Zone> cz = z.zones; for (int i = 0; i < cz.size(); i++) zones.add(cz.get(i).clone()); // Parameter initialization density_sample_size = z.P.SWARM_DENSITY_SAMPLE_SIZE; epsilon = z.P.epsilon; forecast_lead_time = z.P.SWARM_FORECAST_LEAD_TIME; input_var_lane = z.P.input_var_lane; meas_var_lane = z.P.meas_var_lane; phi = z.P.swarm_phi; psi = z.P.swarm_psi; sat_den_multiplier = z.P.SWARM_SAT_DEN_NUMBER; sat_smoother = z.P.sat_smoother; slope_sample_size = z.P.SWARM_SLOPE_SAMPLE_SIZE; // Components JPanel comp = new JPanel(new FlowLayout()); comp.setBorder(BorderFactory.createTitledBorder("Components")); cbsw1.setSelected(z.P.SWARM1); comp.add(cbsw1); comp.add(new JLabel(" ")); cbsw2a.setSelected(z.P.SWARM2A); comp.add(cbsw2a); comp.add(new JLabel(" ")); cbsw2b.setSelected(z.P.SWARM2B); comp.add(cbsw2b); comp.add(new JLabel(" ")); cbdynbott.setEnabled(false); comp.add(cbdynbott); add(comp); // Zones JPanel zone = new JPanel(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); zone.setBorder(BorderFactory.createTitledBorder("Zones")); zonetab.setPreferredScrollableViewportSize(new Dimension(400, 30)); setUpBottleneckColumn(); setUpFromOnrampColumn(); setUpToOnrampColumn(); c.fill = GridBagConstraints.HORIZONTAL; c.ipady = 45; c.weightx = 0.5; c.gridwidth = 3; c.gridx = 0; c.gridy = 0; zone.add(new JScrollPane(zonetab), c); c.ipady = 0; c.gridy = 1; c.gridwidth = 1; c.gridx = 0; zone.add(buttonAdd, c); c.gridx = 1; zone.add(buttonDelete, c); // configure buttons buttonAdd.setEnabled(true); buttonAdd.setActionCommand(cmdAdd); buttonAdd.addActionListener(this); buttonDelete.setEnabled(true); buttonDelete.setActionCommand(cmdDelete); buttonDelete.addActionListener(this); add(zone); // Parameters JPanel param = new JPanel(new GridLayout(1, 0)); param.setBorder(BorderFactory.createTitledBorder("Parameters")); final JTable paramtab = new JTable(paramTM); paramtab.setPreferredScrollableViewportSize(new Dimension(500, 160)); param.add(new JScrollPane(paramtab)); add(param); return; }