?? columneditpane.java
字號:
package com.sutternow.swingkar.gui;import javax.swing.*;import javax.swing.event.ChangeListener;import javax.swing.event.ChangeEvent;import javax.swing.table.AbstractTableModel;import javax.swing.table.DefaultTableModel;import javax.swing.border.Border;import java.awt.event.*;import java.awt.*;import java.util.*;import java.util.List;import org.dom4j.Element;import org.dom4j.DocumentHelper;import net.sf.easylayouts.*;import com.gargoylesoftware.base.gui.TableLayout;import com.sutternow.swingkar.ConfigManager;import com.sutternow.misc.Utils;/** * Created by IntelliJ IDEA. * User: Matthew Payne * Date: Jan 18, 2003 * Time: 1:01:50 AM * * * * */public class ColumnEditPane implements SimpleForm, ActionListener, MouseListener, ChangeListener { public String Title = "Column Properties"; public ColumnEditPane(ConfigManager _cm) { cm = _cm; props = new LinkedHashMap(); beanPanel = this.createPanel(); } public String getTitle() { return Title; } public JPanel getEditForm() { return beanPanel; } private JPanel createPanel() { final TableLayout layout = new TableLayout(); final JPanel panel = new JPanel(); final JPanel validPanel = new JPanel(new TableLayout()); final JPanel lookUpPanel = new JPanel(new TableLayout()); Border etched = BorderFactory.createEtchedBorder(); final JPanel topPanel = new JPanel(new TableLayout()); final JPanel bottomPanel = new JPanel(); /* rowLayout used as parent panel */ RowLayout rowLayout = new RowLayout(panel, 1, 25); topPanel.add(new JLabel("Name:"), "1,1"); colName = new JTextField(10); topPanel.add(colName, "1,2"); topPanel.add(new JLabel("Title:"), "2,1"); colTitle = new JTextField(10); topPanel.add(colTitle, "2,2"); topPanel.add(new JLabel("SQL Name:"), "3,1"); sqlName = new JTextField(10); topPanel.add(sqlName, "3,2"); topPanel.add(new JLabel("Type:"), "4,1"); String types[] = {"auto", "boolean", "byte", "char", "creditcard", "date", "double", "email", "float", "int", "long", "memo", "password", "short", "string", "timestamp"}; colType = new JComboBox(types); topPanel.add(colType, "4,2"); topPanel.add(new JLabel("Format:"), "5,1"); colFormat = new JTextField(10); topPanel.add(colFormat, "5,2"); validPanel.setBorder(BorderFactory.createTitledBorder(etched, "Validation")); /* validation ui */ validPanel.add(new JLabel("Mask:"), "1,1"); colMask = new JTextField(10); colMask.setToolTipText("Regular expression mask used by struts validator"); validPanel.add(colMask, "1,2"); validPanel.add(new JLabel("Min Length:"), "1,3"); minLength = new JSpinner(new SpinnerNumberModel(1, 1, 500, 5)); validPanel.add(minLength, "1,4"); chkRequired = new JCheckBox("Required"); validPanel.add(chkRequired, "1,5"); validPanel.add(new JLabel("Mask Message:"), "2,1"); maskMsg = new JTextField(10); maskMsg.setToolTipText("Error message to be displayed when input does not fit mask"); validPanel.add(maskMsg, "2,2"); validPanel.add(new JLabel("Max Length:"), "2,3"); maxLength = new JSpinner(new SpinnerNumberModel(20, 1, 500, 5)); validPanel.add(maxLength, "2,4"); lookUpPanel.setBorder(BorderFactory.createTitledBorder(etched, "Lookup Value")); btnNoLookup = new JRadioButton("No Lookup", true); btnGlobalRef = new JRadioButton("Global Reference"); btnLocalRef = new JRadioButton("Local Reference"); btnGlobalRef.addChangeListener(this); btnLocalRef.addChangeListener(this); btnNoLookup.addChangeListener(this); ButtonGroup group = new ButtonGroup(); group.add(btnNoLookup); group.add(btnGlobalRef); group.add(btnLocalRef); lookUpPanel.add(btnNoLookup, "1,1"); lookUpPanel.add(btnGlobalRef, "2,1"); cmbGlobalRef = new JComboBox(); lookUpPanel.add(cmbGlobalRef, "2,2"); lookUpPanel.add(btnLocalRef, "3,1"); cmbWidget = new JComboBox(new String[]{"select", "option"}); lookUpPanel.add(new JLabel("Widget"), "3,2"); lookUpPanel.add(cmbWidget, "3,3"); localRefTable = new JTable(); localRefTable.addMouseListener(this); JScrollPane jsp = new JScrollPane(localRefTable); jsp.setMinimumSize(new Dimension(90,80)); jsp.setMaximumSize(new Dimension(320,160)); jsp.setPreferredSize(new Dimension(300,150)); lookUpPanel.add(jsp, "4,1+3"); /*cmdSave = new JButton("Save"); cmdCancel = new JButton("Cancel"); cmdSave.addActionListener(this); cmdCancel.addActionListener(this); bottomPanel.add(cmdSave); bottomPanel.add(cmdCancel);*/ layout.setColumnExpandable(0, true); layout.setColumnExpandable(1, true); rowLayout.add(topPanel, 0); rowLayout.add(validPanel, 1); rowLayout.add(lookUpPanel, 2); rowLayout.add(bottomPanel, 3); return panel; } public void setValues(Element beanCfg) { this.clearForm(); String relPath = beanCfg.getUniquePath(); colProps = beanCfg; /* <column> <name>address</name> <title>Company Address</title> <type>string</type> <validation> <required>true</required> <max-length>50</max-length> <mask>[a-zA-Z0-9]+</mask> <maskmsg>Not valid value for login</maskmsg> </validation> </column>*/ colName.setText(colProps.valueOf(relPath + "/name")); colTitle.setText(Utils.parseNull(colProps.valueOf(relPath + "/title"))); sqlName.setText(Utils.parseNull(colProps.valueOf(relPath + "/sql-name"))); colType.setSelectedItem(colProps.elementText("type")); Element validation = colProps.element("validation"); if (validation.elementText("max-length") != null) { maxLength.setValue(new Integer(validation.elementText("max-length"))); } if (validation.elementText("max-length") != null) { maxLength.setValue(new Integer(validation.elementText("max-length"))); } if (validation.elementText("mask") != null) { colMask.setText(validation.elementText("mask")); } if (validation.elementText("maskmsg") != null) { maskMsg.setText(validation.elementText("maskmsg")); } chkRequired.setSelected(validation.elementText("required").equals("true")); if (beanCfg.element("value") != null) { cmbWidget.setSelectedItem(beanCfg.element("value").element("widget")); if (beanCfg.element("value").element("global-value-ref") != null) { btnGlobalRef.setSelected(true); cmbGlobalRef.setSelectedItem(beanCfg.element("value").element("global-value-ref")); localRefTable.setModel(new DefaultTableModel()); } else { btnLocalRef.setSelected(true); columnModel = new ColumnValuesModel(beanCfg.element("value")); localRefTable.setModel(columnModel); } } else { btnNoLookup.setSelected(true); localRefTable.setModel(new DefaultTableModel()); } fillGlobalReferences(); } private void fillGlobalReferences() { cmbGlobalRef.removeAllItems(); List choices = colProps.selectNodes("//global-value-ref/name"); Iterator itr = choices.listIterator(); while (itr.hasNext()) { Element e = (Element)itr.next(); cmbGlobalRef.addItem(e.getText()); } } public void actionPerformed(ActionEvent ae) { JButton src = (JButton) ae.getSource(); /* if (src == cmdSave) { doSave(); } else if (src == cmdCancel) { clearForm(); }*/ }
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -