package loon.web.server.mini; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; import java.io.IOException; import javax.swing.JFileChooser; import javax.swing.JPanel; public class ServerPanel extends JPanel { /** * */ private static final long serialVersionUID = 1L; private javax.swing.JLabel labMessage; private javax.swing.JButton btnOpenURL; private javax.swing.JButton btnServerClose; private javax.swing.JButton btnServerOpen; private javax.swing.JButton btnSelectDir; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JTextField txtWebServerDir; private javax.swing.JTextField txtWebServerPort; private Server _server; private String _message = ""; public ServerPanel(Server s, String m) { this._server = s; this._message = m; initComponents(); } private void initComponents() { jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); txtWebServerDir = new javax.swing.JTextField(); txtWebServerPort = new javax.swing.JTextField(); btnSelectDir = new javax.swing.JButton(); labMessage = new javax.swing.JLabel(); btnServerOpen = new javax.swing.JButton(); btnServerClose = new javax.swing.JButton(); btnOpenURL = new javax.swing.JButton(); setLayout(null); jLabel1.setText("Server Dir"); add(jLabel1); jLabel1.setBounds(26, 60, 80, 15); jLabel2.setText("Server Port"); add(jLabel2); jLabel2.setBounds(26, 22, 80, 15); add(txtWebServerDir); txtWebServerDir.setBounds(120, 60, 240, 21); add(txtWebServerPort); txtWebServerPort.setBounds(120, 20, 240, 21); txtWebServerDir.setText(_server.getConfig().getWebDir()); txtWebServerDir.setEditable(false); btnSelectDir.setText("Update"); add(btnSelectDir); btnSelectDir.setBounds(380, 60, 100, 25); btnSelectDir.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { final JFileChooser fc = new JFileChooser(new File(_server .getConfig().getWebDir())); fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); int returnVal = fc.showOpenDialog(ServerPanel.this); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = fc.getSelectedFile(); txtWebServerDir.setText(file.getAbsolutePath()); _server.getConfig().setWebDir(file.getAbsolutePath()); } } }); labMessage.setForeground(new java.awt.Color(255, 0, 0)); labMessage.setText(String.format(_message, _server.getConfig() .getPort())); add(labMessage); labMessage.setBounds(25, 120, 460, 20); btnServerOpen.setText("Start"); add(btnServerOpen); btnServerOpen.setBounds(380, 170, 100, 30); btnServerOpen.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { _server.open(); } catch (IOException ex) { ex.printStackTrace(); } btnServerOpen.setEnabled(false); btnServerClose.setEnabled(true); } }); btnServerClose.setText("Stop"); add(btnServerClose); btnServerClose.setBounds(260, 170, 100, 30); btnServerClose.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { _server.stop(); } catch (Exception ex) { ex.printStackTrace(); } btnServerOpen.setEnabled(true); btnServerClose.setEnabled(false); } }); txtWebServerPort.setText(_server.getConfig().getPort() + ""); txtWebServerPort.addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { input(); } @Override public void keyTyped(KeyEvent e) { input(); } private void input() { _server.getConfig().setPort( Integer.parseInt(txtWebServerPort.getText())); labMessage.setText(String.format(_message, _server.getConfig() .getPort())); } }); btnServerOpen.setEnabled(true); btnServerClose.setEnabled(false); btnOpenURL.setText("OpenBrowse"); btnOpenURL.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Browse.openURL(String.format("http://127.0.0.1:%s", _server .getConfig().getPort())); } }); add(btnOpenURL); btnOpenURL.setBounds(20, 170, 120, 30); } }