/* * ManageMTPsDialog_.java * * Created on October 7, 2001, 6:24 PM */ package jade.tools.rma; import java.awt.Frame; import java.awt.Insets; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.List; import java.util.Map; import javax.swing.*; import javax.swing.border.*; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; /** * * @author rimassa */ public class ManageMTPsDialog extends JDialog { private static final Object[] EMPTY_LIST = new Object[0]; private AbstractAction addMTPAction = new AbstractAction("Add MTP...") { public void actionPerformed(ActionEvent ev) { String name = (String)containers.getSelectedValue(); myRMA.installMTP(name); } }; private AbstractAction removeMTPAction = new AbstractAction("Remove MTP") { public void actionPerformed(ActionEvent ev) { int option = JOptionPane.showConfirmDialog(ManageMTPsDialog.this, "Are you sure you want to remove the selected MTP?", "Removing MTP", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); if(option == JOptionPane.YES_OPTION) { String name = (String)containers.getSelectedValue(); String address = (String)addresses.getSelectedValue(); myRMA.uninstallMTP(name, address); } } }; /** Creates new form ManageMTPsDialog */ public ManageMTPsDialog(rma anRMA, Frame parent, boolean modal, Map m) { super(parent, "Platform MTPs Management", modal); myRMA = anRMA; owner = parent; data = m; initComponents(); } public void showCentered() { setLocation(owner.getX() + (owner.getWidth() - getWidth()) / 2, owner.getY() + (owner.getHeight() - getHeight()) / 2); setVisible(true); } public void setData(List keys, Map m) { data = m; Object[] containerNames = keys.toArray(); containers.setListData(containerNames); addresses.setListData(EMPTY_LIST); addMTP.setEnabled(false); removeMTP.setEnabled(false); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ private void initComponents() {//GEN-BEGIN:initComponents lists = new javax.swing.JPanel(); containers = new javax.swing.JList(EMPTY_LIST); addresses = new javax.swing.JList(EMPTY_LIST); buttons = new javax.swing.JPanel(); addMTP = new javax.swing.JButton(); // Manually configure this JButton with its Action object, for // JDK 1.2 compatibility addMTP.setText((String)addMTPAction.getValue(Action.NAME)); addMTP.setIcon((Icon)addMTPAction.getValue(Action.SMALL_ICON)); addMTP.setToolTipText((String)addMTPAction.getValue(Action.SHORT_DESCRIPTION)); addMTP.addActionListener(addMTPAction); removeMTP = new javax.swing.JButton(); // Manually configure this JButton with its Action object, for // JDK 1.2 compatibility removeMTP.setText((String)removeMTPAction.getValue(Action.NAME)); removeMTP.setIcon((Icon)removeMTPAction.getValue(Action.SMALL_ICON)); removeMTP.setToolTipText((String)removeMTPAction.getValue(Action.SHORT_DESCRIPTION)); removeMTP.addActionListener(removeMTPAction); closeDlg = new javax.swing.JButton(); getContentPane().setLayout(new javax.swing.BoxLayout(getContentPane(), javax.swing.BoxLayout.Y_AXIS)); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { closeDialog(evt); } }); lists.setLayout(new GridLayout(1, 2)); lists.setBorder(new CompoundBorder(new EmptyBorder(new Insets(5, 5, 5, 5)), new CompoundBorder(new BevelBorder(BevelBorder.LOWERED), new EmptyBorder(new Insets(5, 5, 5, 5))))); JPanel containersPane = new JPanel(new GridLayout(1, 1)); containersPane.setBorder(new TitledBorder(new EtchedBorder(), " Containers ")); containersPane.add(new JScrollPane(containers)); lists.add(containersPane); JPanel addressesPane = new JPanel(new GridLayout(1, 1)); addressesPane.setBorder(new TitledBorder(new EtchedBorder(), " Addresses ")); addressesPane.add(new JScrollPane(addresses)); lists.add(addressesPane); getContentPane().add(lists); buttons.setLayout(new javax.swing.BoxLayout(buttons, javax.swing.BoxLayout.X_AXIS)); buttons.add(Box.createHorizontalGlue()); buttons.setBorder(new EmptyBorder(new Insets(5, 5, 5, 5))); addMTP.setToolTipText("Install a new MTP on the selected container"); buttons.add(addMTP); removeMTP.setToolTipText("Uninstall the selected MTP"); buttons.add(removeMTP); buttons.add(Box.createHorizontalStrut(10)); closeDlg.setToolTipText("Close the MTP management dialog"); closeDlg.setText("Close"); buttons.add(closeDlg); buttons.add(Box.createHorizontalGlue()); getContentPane().add(buttons, BorderLayout.SOUTH); pack(); containers.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); containers.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { // Skip event burst, apart from the last one if(!e.getValueIsAdjusting()) { Object sel = containers.getSelectedValue(); addMTP.setEnabled(sel != null); removeMTP.setEnabled(false); if(sel == null) { addresses.setListData(EMPTY_LIST); return; } else { List addrs = (List)data.get(sel); if(addrs != null) addresses.setListData(addrs.toArray()); else addresses.setListData(EMPTY_LIST); } } } }); addresses.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); addresses.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { // Skip event burst, apart from the last one if(!e.getValueIsAdjusting()) { // The 'Remove MTP' action is enabled only if some MTP is selected Object sel = containers.getSelectedValue(); removeMTP.setEnabled(sel != null); } } }); closeDlg.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { setVisible(false); dispose(); } }); }//GEN-END:initComponents /** Closes the dialog */ private void closeDialog(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_closeDialog setVisible(false); dispose(); }//GEN-LAST:event_closeDialog private rma myRMA; private Frame owner; private Map data; // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JPanel lists; private javax.swing.JList containers; private javax.swing.JList addresses; private javax.swing.JPanel buttons; private javax.swing.JButton addMTP; private javax.swing.JButton removeMTP; private javax.swing.JButton closeDlg; // End of variables declaration//GEN-END:variables }