📄 jremeventsview.java
字号:
package fildiv.jremcntl.server.gui.app;import java.awt.Dimension;import java.awt.Font;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Insets;import java.awt.event.FocusEvent;import java.awt.event.FocusListener;import java.io.File;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.border.SoftBevelBorder;import fildiv.jremcntl.server.core.JRemEnv;import fildiv.jremcntl.server.core.JRemProperties;import fildiv.jremcntl.server.core.JRemPropertyManager;import fildiv.jremcntl.server.gui.core.DocumentAttachedEvent;import fildiv.jremcntl.server.gui.core.DocumentEvent;import fildiv.jremcntl.server.gui.core.DocumentListener;import fildiv.jremcntl.server.gui.core.DocumentModifiedEvent;import fildiv.jremcntl.server.gui.model.JRemConfigDoc;import fildiv.jremcntl.server.gui.util.swing.SwingUtils;public class JRemEventsView extends JPanel { private static final long serialVersionUID = 1L; private JLabel jLabel = null; private JTextField jTextFieldOnConnect = null; private JButton jButtonOnConnect = null; private JLabel jLabel1 = null; private JLabel jLabel2 = null; private JTextField jTextFieldOnDisconnect = null; private JButton jButtonOnDisconnect = null; private JLabel jLabel3 = null; private JRemConfigDoc doc; private JRemPropertyManager pm; private JRemEnv env; private DocumentListener listener = new DocumentListener() { public void actionPerformed(DocumentEvent event) { updateView(event); // @jve:decl-index=0: } }; private boolean updating; /** * This is the default constructor */ public JRemEventsView() { super(); initialize(); this.env = JRemEnv.getInstance(); } /** * This method initializes this * * @return void */ private void initialize() { GridBagConstraints gridBagConstraints5 = new GridBagConstraints(); gridBagConstraints5.gridx = 0; gridBagConstraints5.fill = GridBagConstraints.BOTH; gridBagConstraints5.weightx = 1.0; gridBagConstraints5.weighty = 1.0; gridBagConstraints5.gridwidth = 3; gridBagConstraints5.gridy = 3; jLabel3 = new JLabel(); jLabel3.setText(""); jLabel3.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); GridBagConstraints gridBagConstraints4 = new GridBagConstraints(); gridBagConstraints4.gridx = 2; gridBagConstraints4.gridy = 2; GridBagConstraints gridBagConstraints3 = new GridBagConstraints(); gridBagConstraints3.fill = GridBagConstraints.BOTH; gridBagConstraints3.gridy = 2; gridBagConstraints3.weightx = 1.0; gridBagConstraints3.insets = new Insets(2, 2, 2, 2); gridBagConstraints3.gridx = 1; GridBagConstraints gridBagConstraints21 = new GridBagConstraints(); gridBagConstraints21.gridx = 0; gridBagConstraints21.insets = new Insets(7, 2, 2, 2); gridBagConstraints21.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints21.gridwidth = 3; gridBagConstraints21.gridy = 0; jLabel2 = new JLabel(); jLabel2.setText("Run a external program for this events"); GridBagConstraints gridBagConstraints11 = new GridBagConstraints(); gridBagConstraints11.gridx = 0; gridBagConstraints11.insets = new Insets(2, 2, 2, 2); gridBagConstraints11.gridy = 2; jLabel1 = new JLabel(); jLabel1.setText("On client disconnection"); jLabel1.setFont(new Font("Dialog", Font.PLAIN, 12)); GridBagConstraints gridBagConstraints2 = new GridBagConstraints(); gridBagConstraints2.gridx = 2; gridBagConstraints2.insets = new Insets(2, 2, 2, 2); gridBagConstraints2.gridy = 1; GridBagConstraints gridBagConstraints1 = new GridBagConstraints(); gridBagConstraints1.fill = GridBagConstraints.BOTH; gridBagConstraints1.gridy = 1; gridBagConstraints1.weightx = 1.0; gridBagConstraints1.insets = new Insets(2, 2, 2, 2); gridBagConstraints1.gridx = 1; GridBagConstraints gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.insets = new Insets(2, 2, 2, 2); gridBagConstraints.gridy = 1; jLabel = new JLabel(); jLabel.setText("On client connection"); jLabel.setFont(new Font("Dialog", Font.PLAIN, 12)); this.setSize(423, 200); this.setLayout(new GridBagLayout()); this.setBorder(new SoftBevelBorder(SoftBevelBorder.LOWERED)); this.add(jLabel, gridBagConstraints); this.add(getJTextFieldOnConnect(), gridBagConstraints1); this.add(getJButtonOnConnect(), gridBagConstraints2); this.add(jLabel1, gridBagConstraints11); this.add(jLabel2, gridBagConstraints21); this.add(getJTextFieldOnDisconnect(), gridBagConstraints3); this.add(getJButtonOnDisconnect(), gridBagConstraints4); this.add(jLabel3, gridBagConstraints5); } public void setDocument(JRemConfigDoc doc) { if (this.doc != null) { commitPendings(); this.doc.removeActionListener(listener); } this.doc = (JRemConfigDoc) doc; this.pm = (JRemPropertyManager) doc; if (this.doc != null) this.doc.addActionListener(listener); } private void commitPendings() { setupOnConnect(); setupOnDisconnect(); } /** * This method initializes jTextFieldOnConnect * * @return javax.swing.JTextField */ private JTextField getJTextFieldOnConnect() { if (jTextFieldOnConnect == null) { jTextFieldOnConnect = new JTextField(); jTextFieldOnConnect.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { setupOnConnect(); } }); jTextFieldOnConnect.addFocusListener(new FocusListener() { public void focusGained(FocusEvent e) { } public void focusLost(FocusEvent e) { setupOnConnect(); } }); } return jTextFieldOnConnect; } protected void setupOnConnect() { pm.setPropertyValue(JRemProperties.PROP_ON_CONNECT, getJTextFieldOnConnect().getText()); } protected void setupOnDisconnect() { pm.setPropertyValue(JRemProperties.PROP_ON_DISCONNECT, getJTextFieldOnDisconnect().getText()); } /** * This method initializes jButtonOnConnect * * @return javax.swing.JButton */ private JButton getJButtonOnConnect() { if (jButtonOnConnect == null) { jButtonOnConnect = new JButton(); jButtonOnConnect.setMaximumSize(new Dimension(25, 20)); jButtonOnConnect.setPreferredSize(new Dimension(25, 20)); jButtonOnConnect.setText("..."); jButtonOnConnect.setMinimumSize(new Dimension(25, 20)); jButtonOnConnect.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { File f = SwingUtils.showOpenDialog(env, JRemEventsView.this); if (f != null) { String path = f.getAbsolutePath(); pm.setPropertyValue(JRemProperties.PROP_ON_CONNECT, path); } } }); } return jButtonOnConnect; } /** * This method initializes jTextFieldOnDisconnect * * @return javax.swing.JTextField */ private JTextField getJTextFieldOnDisconnect() { if (jTextFieldOnDisconnect == null) { jTextFieldOnDisconnect = new JTextField(); jTextFieldOnDisconnect.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { setupOnDisconnect(); } }); jTextFieldOnDisconnect.addFocusListener(new FocusListener() { public void focusGained(FocusEvent e) { } public void focusLost(FocusEvent e) { setupOnDisconnect(); } }); } return jTextFieldOnDisconnect; } /** * This method initializes jButtonOnDisconnect * * @return javax.swing.JButton */ private JButton getJButtonOnDisconnect() { if (jButtonOnDisconnect == null) { jButtonOnDisconnect = new JButton(); jButtonOnDisconnect.setMaximumSize(new Dimension(25, 20)); jButtonOnDisconnect.setPreferredSize(new Dimension(25, 20)); jButtonOnDisconnect.setText("..."); jButtonOnDisconnect.setMinimumSize(new Dimension(25, 20)); jButtonOnDisconnect.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { File f = SwingUtils.showOpenDialog(env, JRemEventsView.this); if (f != null) { String path = f.getAbsolutePath(); pm.setPropertyValue(JRemProperties.PROP_ON_DISCONNECT, path); } } }); } return jButtonOnDisconnect; } private void updateView(DocumentEvent event) { try { updating = true; SwingUtils.showWaitCursor(this, false); if (event instanceof DocumentModifiedEvent) { update(); } else { if (event instanceof DocumentAttachedEvent) { update(); } else { enableAll(false); } } } finally { updating = false; SwingUtils.showWaitCursor(this, false); } } private void enableAll(boolean enable) { getJButtonOnConnect().setEnabled(enable); getJButtonOnDisconnect().setEnabled(enable); getJTextFieldOnConnect().setEnabled(enable); getJTextFieldOnDisconnect().setEnabled(enable); } private void update() { getJTextFieldOnConnect().setEnabled(pm.isPropertyEnabled(JRemProperties.PROP_ON_CONNECT)); getJTextFieldOnDisconnect().setEnabled(pm.isPropertyEnabled(JRemProperties.PROP_ON_DISCONNECT)); getJButtonOnConnect().setEnabled(getJTextFieldOnConnect().isEnabled()); getJButtonOnDisconnect().setEnabled(getJTextFieldOnDisconnect().isEnabled()); getJTextFieldOnConnect().setText( (String) pm.getPropertyValue(JRemProperties.PROP_ON_CONNECT)); getJTextFieldOnDisconnect().setText( (String) pm.getPropertyValue(JRemProperties.PROP_ON_DISCONNECT)); }} // @jve:decl-index=0:visual-constraint="10,10"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -