ServerSettingJFrame.java 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. package com.leanwo.management;
  2. import java.awt.AWTEvent;
  3. import java.awt.AWTException;
  4. import java.awt.BorderLayout;
  5. import java.awt.GridBagConstraints;
  6. import java.awt.GridBagLayout;
  7. import java.awt.Image;
  8. import java.awt.Insets;
  9. import java.awt.SystemTray;
  10. import java.awt.TrayIcon;
  11. import java.awt.event.ActionEvent;
  12. import java.awt.event.ActionListener;
  13. import java.awt.event.MouseAdapter;
  14. import java.awt.event.MouseEvent;
  15. import java.awt.event.WindowAdapter;
  16. import java.awt.event.WindowEvent;
  17. import java.io.IOException;
  18. import java.net.URL;
  19. import java.util.HashMap;
  20. import java.util.Map;
  21. import javax.imageio.ImageIO;
  22. import javax.swing.BorderFactory;
  23. import javax.swing.JButton;
  24. import javax.swing.JFrame;
  25. import javax.swing.JLabel;
  26. import javax.swing.JOptionPane;
  27. import javax.swing.JPanel;
  28. import javax.swing.JTextArea;
  29. import javax.swing.JTextField;
  30. import javax.swing.Timer;
  31. import org.leanwo.management.util.SpringUtil;
  32. import org.leanwo.management.util.XmlConfigPathService;
  33. import com.leanwo.management.model.ApplicationSetting;
  34. import com.leanwo.management.model.XmlConfigPath;
  35. /**
  36. * 服务器配置
  37. * @author YangZhiJie
  38. *
  39. */
  40. public class ServerSettingJFrame extends JFrame{
  41. private ApplicationSetting applicationSetting;
  42. private XmlConfigPath xmlConfigPath;
  43. private XmlConfigPathService xmlConfigPathService;
  44. private JPanel jPanel = null;
  45. private GridBagConstraints constrains = null;
  46. private JLabel label = null;
  47. private JTextField portTextField;
  48. private JTextField tokenTextField;
  49. private Map<String, JTextArea> textAreas = new HashMap<String, JTextArea>();
  50. private JButton saveButton;
  51. private int index = 0;
  52. public ServerSettingJFrame(ApplicationSetting applicationSetting) {
  53. this.setLayout(new BorderLayout());
  54. this.setSize(800, 600);
  55. this.setTitle("程序配置管理器");
  56. this.xmlConfigPathService = (XmlConfigPathService) SpringUtil.getSingleBean(XmlConfigPathService.class);
  57. this.applicationSetting = applicationSetting;
  58. this.xmlConfigPathService.load(applicationSetting);
  59. this.xmlConfigPath = applicationSetting.getXmlConfigPath();
  60. this.jPanel = new JPanel(new GridBagLayout());
  61. this.add(jPanel, BorderLayout.NORTH);
  62. if(this.xmlConfigPath != null) {
  63. label = new JLabel("端口号");
  64. constrains = new GridBagConstraints();
  65. constrains.insets = new Insets(0, 0, 0, 0);
  66. constrains.fill = GridBagConstraints.BOTH;
  67. constrains.gridx = 0;
  68. constrains.gridy = index;
  69. constrains.weightx = 100;
  70. constrains.anchor = GridBagConstraints.NORTH;
  71. jPanel.add(label, constrains);
  72. index++;
  73. portTextField = new JTextField();
  74. if(xmlConfigPath.getPortNo() != null) {
  75. portTextField.setText(xmlConfigPath.getPortNo().toString());
  76. }
  77. constrains = new GridBagConstraints();
  78. constrains.insets = new Insets(0, 0, 0, 0);
  79. constrains.fill = GridBagConstraints.BOTH;
  80. constrains.gridx = 0;
  81. constrains.gridy = index;
  82. constrains.weightx = 100;
  83. constrains.anchor = GridBagConstraints.NORTH;
  84. jPanel.add(portTextField, constrains);
  85. index++;
  86. label = new JLabel("Token");
  87. constrains = new GridBagConstraints();
  88. constrains.insets = new Insets(0, 0, 0, 0);
  89. constrains.fill = GridBagConstraints.BOTH;
  90. constrains.gridx = 0;
  91. constrains.gridy = index;
  92. constrains.weightx = 100;
  93. constrains.anchor = GridBagConstraints.NORTH;
  94. jPanel.add(label, constrains);
  95. index++;
  96. tokenTextField = new JTextField();
  97. tokenTextField.setText(xmlConfigPath.getToken());
  98. constrains = new GridBagConstraints();
  99. constrains.insets = new Insets(0, 0, 0, 0);
  100. constrains.fill = GridBagConstraints.BOTH;
  101. constrains.gridx = 0;
  102. constrains.gridy = index;
  103. constrains.weightx = 100;
  104. constrains.anchor = GridBagConstraints.NORTH;
  105. jPanel.add(tokenTextField, constrains);
  106. Map<String, String> contents = applicationSetting.getXmlConfigPath().getContents();
  107. for(String key : contents.keySet()) {
  108. index ++;
  109. label = new JLabel(key);
  110. constrains = new GridBagConstraints();
  111. constrains.insets = new Insets(0, 0, 0, 0);
  112. constrains.fill = GridBagConstraints.BOTH;
  113. constrains.gridx = 0;
  114. constrains.gridy = index;
  115. constrains.weightx = 100;
  116. constrains.anchor = GridBagConstraints.NORTH;
  117. jPanel.add(label, constrains);
  118. index ++;
  119. JTextArea textArea = new JTextArea();
  120. textArea.setText(contents.get(key));
  121. textArea.setRows(5);
  122. constrains = new GridBagConstraints();
  123. constrains.insets = new Insets(0, 0, 0, 0);
  124. constrains.fill = GridBagConstraints.BOTH;
  125. constrains.gridx = 0;
  126. constrains.gridy = index;
  127. constrains.weightx = 100;
  128. constrains.anchor = GridBagConstraints.NORTH;
  129. jPanel.add(textArea, constrains);
  130. textAreas.put(key, textArea);
  131. }
  132. index ++;
  133. saveButton = new JButton("保存");
  134. constrains = new GridBagConstraints();
  135. constrains.insets = new Insets(0, 0, 0, 0);
  136. constrains.fill = GridBagConstraints.BOTH;
  137. constrains.gridx = 0;
  138. constrains.gridy = index;
  139. constrains.weightx = 100;
  140. constrains.anchor = GridBagConstraints.NORTH;
  141. jPanel.add(saveButton, constrains);
  142. saveButton.addActionListener(new ActionListener() {
  143. @Override
  144. public void actionPerformed(ActionEvent e) {
  145. String portStr = portTextField.getText();
  146. if(portStr != null) {
  147. try {
  148. xmlConfigPath.setPortNo(Integer.parseInt(portStr));
  149. }catch(Exception ex) {
  150. JOptionPane.showMessageDialog(null, "端口号必须为整数", "端口号必须为整数", JOptionPane.ERROR_MESSAGE);
  151. return;
  152. }
  153. }
  154. xmlConfigPath.setToken(tokenTextField.getText());
  155. if(xmlConfigPath.getContents() != null) {
  156. for(String key : textAreas.keySet()) {
  157. xmlConfigPath.getContents().put(key, textAreas.get(key).getText());
  158. }
  159. }
  160. xmlConfigPathService.save(applicationSetting);
  161. }
  162. });
  163. }
  164. setDefaultCloseOperation(DISPOSE_ON_CLOSE);
  165. // this.addWindowListener(new java.awt.event.WindowAdapter() {
  166. // public void windowClosing(java.awt.event.WindowEvent e) {
  167. // ServerSettingJFrame.this.setVisible(false);
  168. // }
  169. // });
  170. }
  171. }