📄 jrempropertyeditorview.java
字号:
/* * JRemCntl - Copyright (C) 2007 Filippo Di Vattimo <fildiv@gmail.com> * See COPYING */package fildiv.jremcntl.server.gui.app;import java.awt.Color;import java.awt.Dimension;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Insets;import java.awt.SystemColor;import java.awt.event.FocusEvent;import java.awt.event.FocusListener;import java.io.File;import java.util.Collection;import java.util.Hashtable;import java.util.Iterator;import java.util.Map;import javax.swing.ComboBoxModel;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JLabel;import javax.swing.JList;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import fildiv.jremcntl.common.core.JRemMobileKeys;import fildiv.jremcntl.server.core.JRemEnv;import fildiv.jremcntl.server.core.JRemProperties;import fildiv.jremcntl.server.core.JRemPropertyDomainValue;import fildiv.jremcntl.server.core.JRemPropertyManager;import fildiv.jremcntl.server.gui.core.AbstractDocument;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.JRemCommandDoc;import fildiv.jremcntl.server.gui.model.JRemContextDoc;import fildiv.jremcntl.server.gui.util.swing.SwingUtils;import fildiv.jremcntl.server.gui.util.swing.JRemRenderers.AbstractLabelComboBoxRenderer;import fildiv.jremcntl.server.utils.JRemServerUtils;import java.awt.event.KeyEvent;import java.awt.Font;public class JRemPropertyEditorView extends JPanel { private static final long serialVersionUID = 1L; private JLabel jLabel = null; private JTextField jTextId = null; private JLabel jLabel1 = null; private JTextField jTextDescription = null; private JLabel jLabel2 = null; private JLabel jLabel21 = null; private JButton jButtonBrowseBaseDir = null; private JTextField jTextBasePath = null; private JComboBox jComboDefView = null; private JLabel jLabel211 = null; private JComboBox jComboKey = null; private JLabel jLabel22 = null; private JTextField jTextCmdPath = null; private JButton jButtonBrowseCmdPath = null; private JRemEnv env; private boolean updating; protected static class KeyComboItem extends JRemPropertyDomainValue { private boolean used = false; public KeyComboItem(String key, String value) { super(key, value); } public boolean isUsed() { return used; } public void setUsed(boolean used) { this.used = used; } public String toString() { String desc = ""; String mobileKey = (String) getValue(); if (!"".equals(mobileKey)) { desc = mobileKey; if (used) desc = desc + "*"; } else desc = "<none>"; return desc; } } protected static class MobileKeysComboRenderer extends AbstractLabelComboBoxRenderer { public void setupComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { KeyComboItem ci = (KeyComboItem) value; if (ci == null) return; if (ci.isUsed()) { setForeground(JRemGUIConstants.JREM_FORE_COLOR_KEY_USED); } else { setForeground(list.getForeground()); } setText((String) ci.getValue()); } } /** * This is the default constructor * @param env */ public JRemPropertyEditorView() { super(); this.env = JRemEnv.getInstance(); initialize(); disableAll(); } /** * This method initializes this * * @return void */ private void initialize() { GridBagConstraints gridBagConstraints71 = new GridBagConstraints(); gridBagConstraints71.gridx = 1; gridBagConstraints71.insets = new Insets(2, 2, 2, 3); gridBagConstraints71.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints71.gridwidth = 6; gridBagConstraints71.weightx = 1.0; gridBagConstraints71.gridy = 0; jLabel3 = new JLabel(); jLabel3.setText("Item Properties"); GridBagConstraints gridBagConstraints51 = new GridBagConstraints(); gridBagConstraints51.gridwidth = 3; gridBagConstraints51.ipadx = 275; gridBagConstraints51.fill = GridBagConstraints.BOTH; gridBagConstraints51.gridy = 5; gridBagConstraints51.weightx = 1.0; gridBagConstraints51.gridheight = 1; gridBagConstraints51.insets = new Insets(2, 2, 0, 0); gridBagConstraints51.gridx = 3; GridBagConstraints gridBagConstraints13 = new GridBagConstraints(); gridBagConstraints13.gridx = 1; gridBagConstraints13.insets = new Insets(2, 4, 0, 0); gridBagConstraints13.gridy = 5; jLabel221 = new JLabel(); jLabel221.setBackground(SystemColor.control); jLabel221.setBorder(null); jLabel221.setMaximumSize(new Dimension(130, 23)); jLabel221.setMinimumSize(new Dimension(130, 23)); jLabel221.setPreferredSize(new Dimension(130, 23)); jLabel221.setText("Command question"); jLabel221.setDisplayedMnemonic(KeyEvent.VK_UNDEFINED); jLabel221.setFont(new Font("Dialog", Font.PLAIN, 12)); jLabel221.setForeground(Color.black); GridBagConstraints gridBagConstraints8 = new GridBagConstraints(); gridBagConstraints8.gridx = 6; gridBagConstraints8.insets = new Insets(2, 2, 0, 0); gridBagConstraints8.gridy = 4; GridBagConstraints gridBagConstraints7 = new GridBagConstraints(); gridBagConstraints7.fill = GridBagConstraints.BOTH; gridBagConstraints7.gridy = 4; gridBagConstraints7.weightx = 1.0; gridBagConstraints7.gridwidth = 3; gridBagConstraints7.insets = new Insets(2, 2, 0, 0); gridBagConstraints7.gridx = 3; GridBagConstraints gridBagConstraints61 = new GridBagConstraints(); gridBagConstraints61.gridx = 1; gridBagConstraints61.fill = GridBagConstraints.BOTH; gridBagConstraints61.insets = new Insets(2, 4, 0, 0); gridBagConstraints61.gridy = 4; jLabel22 = new JLabel(); jLabel22.setBackground(SystemColor.control); jLabel22.setBorder(null); jLabel22.setMaximumSize(new Dimension(130, 23)); jLabel22.setMinimumSize(new Dimension(130, 23)); jLabel22.setPreferredSize(new Dimension(130, 23)); jLabel22.setText("Command Path"); jLabel22.setDisplayedMnemonic(KeyEvent.VK_UNDEFINED); jLabel22.setFont(new Font("Dialog", Font.PLAIN, 12)); jLabel22.setForeground(Color.black); GridBagConstraints gridBagConstraints5 = new GridBagConstraints(); gridBagConstraints5.fill = GridBagConstraints.CENTER; gridBagConstraints5.gridy = 3; gridBagConstraints5.weightx = 1.0; gridBagConstraints5.insets = new Insets(2, 2, 0, 0); gridBagConstraints5.anchor = GridBagConstraints.WEST; gridBagConstraints5.gridx = 5; GridBagConstraints gridBagConstraints41 = new GridBagConstraints(); gridBagConstraints41.gridx = 4; gridBagConstraints41.insets = new Insets(2, 2, 0, 0); gridBagConstraints41.fill = GridBagConstraints.BOTH; gridBagConstraints41.weightx = 0.0; gridBagConstraints41.anchor = GridBagConstraints.CENTER; gridBagConstraints41.gridy = 3; jLabel211 = new JLabel(); jLabel211.setBackground(SystemColor.control); jLabel211.setBorder(null); jLabel211.setMaximumSize(new Dimension(110, 15)); jLabel211.setMinimumSize(new Dimension(110, 15)); jLabel211.setPreferredSize(new Dimension(110, 15)); jLabel211.setText("J2ME Device Key"); jLabel211.setDisplayedMnemonic(KeyEvent.VK_UNDEFINED); jLabel211.setFont(new Font("Dialog", Font.PLAIN, 12)); jLabel211.setForeground(Color.black); GridBagConstraints gridBagConstraints31 = new GridBagConstraints(); gridBagConstraints31.fill = GridBagConstraints.VERTICAL; gridBagConstraints31.gridy = 3; gridBagConstraints31.weightx = 0.0; gridBagConstraints31.insets = new Insets(2, 2, 0, 0); gridBagConstraints31.anchor = GridBagConstraints.WEST; gridBagConstraints31.gridx = 3; GridBagConstraints gridBagConstraints2 = new GridBagConstraints(); gridBagConstraints2.anchor = GridBagConstraints.EAST; gridBagConstraints2.gridwidth = 3; gridBagConstraints2.fill = GridBagConstraints.BOTH; gridBagConstraints2.gridy = 2; gridBagConstraints2.weightx = 1.0; gridBagConstraints2.insets = new Insets(2, 2, 0, 0); gridBagConstraints2.gridx = 3; GridBagConstraints gridBagConstraints12 = new GridBagConstraints(); gridBagConstraints12.gridx = 6; gridBagConstraints12.insets = new Insets(2, 2, 0, 0); gridBagConstraints12.gridy = 2; GridBagConstraints gridBagConstraints6 = new GridBagConstraints(); gridBagConstraints6.gridx = 1; gridBagConstraints6.fill = GridBagConstraints.BOTH; gridBagConstraints6.anchor = GridBagConstraints.WEST; gridBagConstraints6.insets = new Insets(2, 4, 0, 0); gridBagConstraints6.gridy = 3; jLabel21 = new JLabel(); jLabel21.setBackground(SystemColor.control); jLabel21.setBorder(null); jLabel21.setMaximumSize(new Dimension(90, 23)); jLabel21.setMinimumSize(new Dimension(90, 23)); jLabel21.setPreferredSize(new Dimension(90, 23)); jLabel21.setText("Default View"); jLabel21.setDisplayedMnemonic(KeyEvent.VK_UNDEFINED); jLabel21.setFont(new Font("Dialog", Font.PLAIN, 12)); jLabel21.setForeground(Color.black); GridBagConstraints gridBagConstraints4 = new GridBagConstraints(); gridBagConstraints4.gridx = 1; gridBagConstraints4.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints4.insets = new Insets(2, 4, 0, 0); gridBagConstraints4.gridy = 2; jLabel2 = new JLabel(); jLabel2.setBackground(SystemColor.control); jLabel2.setBorder(null); jLabel2.setMaximumSize(new Dimension(130, 23)); jLabel2.setMinimumSize(new Dimension(130, 23)); jLabel2.setPreferredSize(new Dimension(130, 23)); jLabel2.setText("Base path"); jLabel2.setDisplayedMnemonic(KeyEvent.VK_UNDEFINED); jLabel2.setFont(new Font("Dialog", Font.PLAIN, 12)); jLabel2.setForeground(Color.black); GridBagConstraints gridBagConstraints3 = new GridBagConstraints(); gridBagConstraints3.fill = GridBagConstraints.BOTH; gridBagConstraints3.gridy = 1; gridBagConstraints3.weightx = 1.0; gridBagConstraints3.insets = new Insets(2, 2, 0, 0); gridBagConstraints3.gridx = 5; GridBagConstraints gridBagConstraints11 = new GridBagConstraints(); gridBagConstraints11.gridx = 4; gridBagConstraints11.insets = new Insets(2, 2, 0, 0); gridBagConstraints11.fill = GridBagConstraints.BOTH; gridBagConstraints11.weightx = 0.0; gridBagConstraints11.anchor = GridBagConstraints.WEST; gridBagConstraints11.gridy = 1; jLabel1 = new JLabel(); jLabel1.setBackground(SystemColor.control); jLabel1.setBorder(null); jLabel1.setMaximumSize(new Dimension(90, 23)); jLabel1.setMinimumSize(new Dimension(90, 23)); jLabel1.setPreferredSize(new Dimension(90, 23)); jLabel1.setText("Description"); jLabel1.setDisplayedMnemonic(KeyEvent.VK_UNDEFINED); jLabel1.setFont(new Font("Dialog", Font.PLAIN, 12)); jLabel1.setForeground(Color.black); GridBagConstraints gridBagConstraints1 = new GridBagConstraints(); gridBagConstraints1.fill = GridBagConstraints.VERTICAL; gridBagConstraints1.gridy = 1; gridBagConstraints1.weightx = 0.0; gridBagConstraints1.gridheight = 1; gridBagConstraints1.weighty = 0.0; gridBagConstraints1.insets = new Insets(2, 2, 0, 0); gridBagConstraints1.gridwidth = 2; gridBagConstraints1.anchor = GridBagConstraints.WEST; gridBagConstraints1.gridx = 2; GridBagConstraints gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.fill = GridBagConstraints.BOTH; gridBagConstraints.weightx = 0.0; gridBagConstraints.weighty = 0.0; gridBagConstraints.insets = new Insets(2, 4, 0, 0); gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.gridwidth = 1; gridBagConstraints.gridy = 1; jLabel = new JLabel(); jLabel.setText("ID"); jLabel.setMinimumSize(new Dimension(130, 15)); jLabel.setMaximumSize(new Dimension(130, 15)); jLabel.setForeground(Color.black); jLabel.setBackground(SystemColor.control); jLabel.setBorder(null); jLabel.setDisplayedMnemonic(KeyEvent.VK_UNDEFINED); jLabel.setFont(new Font("Dialog", Font.PLAIN, 12)); jLabel.setPreferredSize(new Dimension(130, 23)); this.setSize(501, 159); this.setLayout(new GridBagLayout()); this.add(jLabel, gridBagConstraints); this.add(getJTextId(), gridBagConstraints1); this.add(jLabel1, gridBagConstraints11); this.add(getJTextDescription(), gridBagConstraints3); this.add(jLabel2, gridBagConstraints4); this.add(jLabel21, gridBagConstraints6); this.add(getJButtonBrowseBaseDir(), gridBagConstraints12); this.add(getJTextBasePath(), gridBagConstraints2); this.add(getJComboDefView(), gridBagConstraints31); this.add(jLabel211, gridBagConstraints41); this.add(getJComboKey(), gridBagConstraints5); this.add(jLabel22, gridBagConstraints61); this.add(getJTextCmdPath(), gridBagConstraints7); this.add(getJButtonBrowseCmdPath(), gridBagConstraints8); this.add(jLabel221, gridBagConstraints13); this.add(getJTextQuestion(), gridBagConstraints51); this.add(jLabel3, gridBagConstraints71); } /** * This method initializes jTextId * * @return javax.swing.JTextField */ private JTextField getJTextId() { if (jTextId == null) { jTextId = new JTextField(); jTextId.setForeground(Color.BLACK); jTextId.setPreferredSize(new Dimension(50, 23)); jTextId.setMaximumSize(new Dimension(50, 23)); jTextId.setMinimumSize(new Dimension(50, 23)); } return jTextId; } /** * This method initializes jTextDescription * * @return javax.swing.JTextField */ private JTextField getJTextDescription() { if (jTextDescription == null) { jTextDescription = new JTextField(); jTextDescription.setForeground(Color.BLACK); jTextDescription.setPreferredSize(new Dimension(150, 20)); jTextDescription.setMinimumSize(new Dimension(30, 23)); jTextDescription.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { setupDescription(); } }); jTextDescription.addFocusListener(new FocusListener() { public void focusGained(FocusEvent e) { } public void focusLost(FocusEvent e) { setupDescription(); } }); } return jTextDescription; } /** * This method initializes jButtonBrowseBaseDir * * @return javax.swing.JButton */ private JButton getJButtonBrowseBaseDir() { if (jButtonBrowseBaseDir == null) { jButtonBrowseBaseDir = new JButton(); jButtonBrowseBaseDir.setPreferredSize(new Dimension(25, 20)); jButtonBrowseBaseDir.setMaximumSize(new Dimension(25, 20)); jButtonBrowseBaseDir.setText("..."); jButtonBrowseBaseDir.setMinimumSize(new Dimension(25, 20)); jButtonBrowseBaseDir.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { File f = SwingUtils.showOpenDirDialog(env, JRemPropertyEditorView.this); if (f != null) { String path = f.getAbsolutePath(); pm.setPropertyValue(JRemProperties.PROP_BASE_DIR, path); } } }); } return jButtonBrowseBaseDir; } /** * This method initializes jTextBasePath * * @return javax.swing.JTextField */ private JTextField getJTextBasePath() { if (jTextBasePath == null) { jTextBasePath = new JTextField(); jTextBasePath.setForeground(Color.BLACK); jTextBasePath.setToolTipText("Use '.' to ignore parent base path."); jTextBasePath.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -