1 5 package net.sf.panoptes.view.swing.editors; 6 7 import java.awt.Frame ; 8 import java.awt.HeadlessException ; 9 import java.awt.event.ActionEvent ; 10 import java.awt.event.ActionListener ; 11 import java.net.InetAddress ; 12 import java.net.UnknownHostException ; 13 import java.util.Iterator ; 14 import java.util.List ; 15 16 import javax.swing.JButton ; 17 import javax.swing.JCheckBox ; 18 import javax.swing.JComboBox ; 19 import javax.swing.JFrame ; 20 import javax.swing.JPanel ; 21 import javax.swing.JTextField ; 22 import javax.swing.UIManager ; 23 24 import net.sf.panoptes.component.jmx.connector.MBeanServerConnector; 25 import net.sf.panoptes.registry.ConnectorRegistry; 26 import net.sf.panoptes.swing.DefaultFormBuilder; 27 import net.sf.panoptes.swing.dialogs.BannerDialog; 28 import net.sf.panoptes.swing.dialogs.DialogUtil; 29 30 import com.jgoodies.forms.builder.ButtonBarBuilder; 31 import com.jgoodies.forms.layout.FormLayout; 32 33 39 public class MBeanServerDialog extends BannerDialog { 40 41 private JTextField serverName = new JTextField (); 42 private JComboBox serverType = new JComboBox (); 43 private JTextField hostName = new JTextField (); 44 private JTextField rmiPort = new JTextField (); 45 private JTextField jndiName = new JTextField (); 46 private JCheckBox connectImmediately = new JCheckBox (); 47 48 private List connectors; 49 50 59 public MBeanServerDialog(Frame owner) throws HeadlessException { 60 super( 61 owner, 62 "Connect", 63 "Connect", 64 "Connect to an MBean Server", 65 "icons/banners/new_wiz.gif", 66 true, false); 67 68 connectors = ConnectorRegistry.getInstance().getConnectors(); 69 for (Iterator i = connectors.iterator(); i.hasNext();) { 70 serverType.addItem(((MBeanServerConnector) i.next()).getName()); 71 } 72 73 setButtonPanel(createButtons()); 74 setMainPanel(createMain()); 75 setInitValues(); 76 } 77 78 private JPanel createMain() { 79 80 serverType.addActionListener(new ActionListener () { 81 public void actionPerformed(ActionEvent e) { 82 jndiName.setText(getDefaultJNDIName()); 83 } 84 }); 85 86 FormLayout layout = DialogUtil.defaultOneColumnLayout(); 87 DefaultFormBuilder builder = new DefaultFormBuilder(layout); 88 builder.setDefaultDialogBorder(); 89 90 builder.append("Name (description):", serverName); 91 builder.append("Server type:", serverType); 92 builder.append("Host:", hostName); 93 builder.append("RMI port:", rmiPort); 94 builder.append("JNDI Name:", jndiName); 95 builder.append("Connect immediately:", connectImmediately); 96 return builder.getPanel(); 97 } 98 private JPanel createButtons() { 99 100 JButton btnOK = new JButton ("OK"); 101 btnOK.addActionListener(new ActionListener () { 102 public void actionPerformed(ActionEvent e) { 103 setResult(OK); 104 setVisible(false); 105 } 106 }); 107 108 JButton btnCancel = new JButton ("Cancel"); 109 btnCancel.addActionListener(new ActionListener () { 110 public void actionPerformed(ActionEvent e) { 111 setResult(CANCEL); 112 setVisible(false); 113 } 114 }); 115 116 ButtonBarBuilder builder = new ButtonBarBuilder(); 117 builder.addGlue(); 119 builder.addUnrelatedGap(); 120 builder.addGridded(btnOK); 121 builder.addRelatedGap(); 122 builder.addGridded(btnCancel); 123 return builder.getPanel(); 124 } 125 126 private void setInitValues() { 127 serverType.setSelectedIndex(0); 128 rmiPort.setText("1099"); 129 try { 130 serverName.setText(InetAddress.getLocalHost().getHostName()); 131 } catch (UnknownHostException e) { 132 serverName.setText("localhost"); 133 } 134 hostName.setText("localhost"); 135 jndiName.setText(getDefaultJNDIName()); 136 connectImmediately.setSelected(true); 137 } 138 139 protected String getDefaultJNDIName() { 140 MBeanServerConnector c; 141 try { 142 c = 143 (MBeanServerConnector) connectors.get(serverType.getSelectedIndex()); 144 return c.getDefaultJNDIName(); 145 } catch (Exception e) { 146 return ""; 147 } 148 } 149 150 public String getHostName() { 151 return hostName.getText(); 152 } 153 154 public int getPort() { 155 return Integer.parseInt(rmiPort.getText()); 156 } 157 158 public String getJNDIName() { 159 return jndiName.getText(); 160 } 161 162 public String getServerName() { 163 return serverName.getText(); 164 } 165 public MBeanServerConnector getConnector() { 166 return (MBeanServerConnector) connectors.get(serverType.getSelectedIndex()); 167 } 168 169 public boolean connectImmediately() { 170 return connectImmediately.isSelected(); 171 } 172 173 public static void main(String [] args) { 174 try { 175 UIManager.setLookAndFeel("com.jgoodies.plaf.plastic.PlasticXPLookAndFeel"); 176 } catch (Exception e) { 177 e.printStackTrace(); 178 } 179 BannerDialog d = new MBeanServerDialog(new JFrame ()); 180 d.pack(); 181 d.show(); 182 System.out.println(d.getResult()); 183 System.exit(0); 184 } 185 } 186 | Popular Tags |