001: package com.sun.portal.netlet.client.jnlp.ui;
002:
003: import com.sun.portal.netlet.client.common.ResourceProperties;
004: import com.sun.portal.log.common.PortalLogger;
005: import com.sun.portal.netlet.client.jnlp.ClientManager;
006:
007: import javax.swing.*;
008: import java.awt.*;
009: import java.awt.event.ActionListener;
010: import java.awt.event.ActionEvent;
011: import java.util.Vector;
012: import java.util.Enumeration;
013: import java.util.Hashtable;
014:
015: public class NetletTab extends JPanel {
016:
017: JButton startButton;
018: JButton stopButton;
019: private GridBagConstraints gbc;
020:
021: public NetletTab() {
022: super (new GridBagLayout());
023: gbc = new GridBagConstraints();
024: gbc.fill = GridBagConstraints.HORIZONTAL;
025: gbc.weightx = 0.5;
026: load();
027: }
028:
029: private void load() {
030: if (ClientManager.getNetletHandler().netletClientRuning()) {
031: gbc.gridx = 0;
032: gbc.gridy = 0;
033: //gbc.gridheight = 200;
034: add(getClientPortsPane(), gbc);
035: gbc.gridx = 0;
036: gbc.gridy = 1;
037: //gbc.gridheight = 30;
038: add(getButtonPane(), gbc);
039: } else {
040: gbc.gridx = 0;
041: gbc.gridy = 0;
042: //gbc.gridheight = 200;
043: add(getNetletTextPane(ResourceProperties
044: .getString("jws.netletNotRunning")), gbc);
045: gbc.gridx = 0;
046: gbc.gridy = 1;
047: //gbc.gridheight = 30;
048: add(getButtonPane(), gbc);
049: }
050: }
051:
052: private JComponent getClientPortsPane() {
053: Vector columnNames = new Vector();
054: columnNames.add(ResourceProperties.getString("portinfo.2"));
055: columnNames.add(ResourceProperties.getString("portinfo.3"));
056: columnNames.add(ResourceProperties.getString("portinfo.4"));
057:
058: Vector dataRows = new Vector();
059: Hashtable clientPorts = ClientManager.getNetletHandler()
060: .getClientPorts();
061: Enumeration ruleNames = clientPorts.keys();
062: while (ruleNames.hasMoreElements()) {
063: String ruleName = (String) ruleNames.nextElement();
064: Vector dataRow = new Vector();
065: Vector v = (Vector) clientPorts.get(ruleName);
066: Enumeration values = v.elements();
067: while (values.hasMoreElements()) {
068: String s = (String) values.nextElement();
069: if (s.indexOf(":") != -1) {
070: String targetPort = s.substring(0, s.indexOf(":"));
071: String clientPort = s.substring(s.indexOf(":") + 1);
072:
073: dataRow.add(ruleName);
074: dataRow.add(targetPort);
075: dataRow.add(clientPort);
076: }
077: }
078: dataRows.add(dataRow);
079: }
080:
081: final JTable table = new JTable(dataRows, columnNames);
082: //table.setPreferredScrollableViewportSize(new Dimension(400, 30));
083:
084: //Create the scroll pane and add the table to it.
085: JScrollPane scrollPane = new JScrollPane(table);
086: scrollPane.setPreferredSize(new Dimension(350, 150));
087: return scrollPane;
088: }
089:
090: protected JComponent getNetletTextPane(String text) {
091: JLabel label = new JLabel(text);
092: label.setPreferredSize(new Dimension(350, 150));
093: label.setHorizontalAlignment(JLabel.CENTER);
094: label.setVerticalTextPosition(JLabel.CENTER);
095: label.setVerticalAlignment(JLabel.CENTER);
096: //label.setFocusable(true);
097: /*
098: JPanel panel = new JPanel(false);
099: JLabel filler = new JLabel(text);
100: filler.setHorizontalAlignment(JLabel.CENTER);
101: filler.setVerticalAlignment(JLabel.CENTER);
102: //panel.setLayout(new GridLayout(1, 1));
103: panel.add(filler);
104: panel.setPreferredSize(new Dimension(350, 150));
105: return panel;
106: */
107: return label;
108: }
109:
110: private JComponent getButtonPane() {
111: JPanel buttonPanel = new JPanel(new FlowLayout(
112: FlowLayout.CENTER));
113: ButtonActionListener listner = new ButtonActionListener();
114:
115: startButton = new JButton(ResourceProperties
116: .getString("jws.startNetlet"));
117: startButton.addActionListener(listner);
118: startButton.setActionCommand("Start");
119:
120: stopButton = new JButton(ResourceProperties
121: .getString("jws.stopNetlet"));
122: stopButton.addActionListener(listner);
123: stopButton.setActionCommand("Stop");
124:
125: if (ClientManager.getNetletHandler().netletClientRuning()) {
126: startButton.setEnabled(false);
127: stopButton.setEnabled(true);
128: } else {
129: startButton.setEnabled(true);
130: stopButton.setEnabled(false);
131: }
132: buttonPanel.add(startButton);
133: buttonPanel.add(stopButton);
134: return buttonPanel;
135: }
136:
137: public void refresh() {
138: removeAll();
139: load();
140: ClientManager.getSRAClientWindow().pack();
141: }
142:
143: class ButtonActionListener implements ActionListener {
144: public void actionPerformed(ActionEvent e) {
145: if (e.getActionCommand().equalsIgnoreCase("Start")) {
146: System.out.println("Netlet Start Clicked");
147: startButton.setEnabled(false);
148: ClientManager.getNetletHandler().startClient();
149: stopButton.setEnabled(true);
150: } else if (e.getActionCommand().equalsIgnoreCase("Stop")) {
151: System.out.println("Netlet Stop Clicked");
152: stopButton.setEnabled(false);
153: ClientManager.getNetletHandler().stopClient(true);
154: startButton.setEnabled(true);
155: }
156: refresh();
157: }
158: }
159: }
|