⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 processeditpane.java

📁 自动生成JAVA-Struts网站的程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.sutternow.swingkar.gui;import javax.swing.*;import javax.swing.event.ListSelectionListener;import javax.swing.event.ListSelectionEvent;import javax.swing.table.AbstractTableModel;import javax.swing.table.DefaultTableModel;import java.awt.event.*;import java.awt.*;import java.util.*;import java.util.List;import java.io.StringWriter;import org.dom4j.Element;import org.dom4j.DocumentHelper;import org.dom4j.DocumentException;import com.javanovic.karapansapi.xml.*;import com.javanovic.karapansapi.xml.Process;import net.sf.easylayouts.*;import com.gargoylesoftware.base.gui.TableLayout;import com.gargoylesoftware.base.gui.TableLayoutConstraints;import com.sutternow.swingkar.ConfigManager;/** * Created by IntelliJ IDEA. * User: Matthew Payne * Date: May 18, 2003 * Time: 1:01:50 AM * */// todo delete "page"public class ProcessEditPane implements SimpleForm,  ActionListener, MouseListener {    public String Title = "Proces Properties";    public ProcessEditPane(ConfigManager _cm) {        cm = _cm;        props = new LinkedHashMap();        beanPanel = this.createPanel();        process = new Process();    }    public String getTitle() {        return Title;    }    public JPanel getEditForm() {        return beanPanel;    }    private JPanel createPanel() {        final JPanel panel = new JPanel();        RowLayout rowLayout = new RowLayout(panel, 1, 25);        final TableLayout layout = new TableLayout();        JPanel topPanel = new JPanel(layout);        layout.setMinimumColumnWidth(1,90);        topPanel.add(new JLabel("Process Name:"), "1,1");        processName = new JTextField(10);        topPanel.add(processName, "1,2");        topPanel.add(new JLabel("Success Path:"), "2,1");        successPath = new JTextField(10);        topPanel.add(successPath, "2,2");        topPanel.add(new JLabel("Cancel Path:"), "3,1");        cancelPath = new JTextField(10);        topPanel.add(cancelPath, "3,2");        layout.setMinimumColumnWidth(1, 100);        rowLayout.add(topPanel, 1);  // page title/field, additional forwards--> forward/path        pageTitle = new JTextField(20);        cmdAddPage = new JButton("Add Page");        cmdAddPage.addActionListener(this);        rowLayout.add(new JLabel("Pages:"), 4);        rowLayout.add(cmdAddPage, 4);        pageList = new JList();        JScrollPane psp = new JScrollPane(pageList);        pageList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);        psp.setMinimumSize(new Dimension(40, 50));        psp.setMaximumSize(new Dimension(190, 260));        psp.setPreferredSize(new Dimension(190, 260));        rowLayout.add(psp, 5);        pagePopup = new JPopupMenu();        delPage = new JMenuItem("Delete Page");        pageList.add(pagePopup);        pagePopup.add(delPage);        delPage.addActionListener(this);        TableLayout detailLayout = new TableLayout();        JPanel pageDetailPanel = new JPanel(detailLayout);        cmdAddField = new JButton("Add Field");        cmdAddField.addActionListener(this);        tableFieldPicker = new JComboBox();        cboField = new JComboBox();        pageDetailPanel.setBorder(BorderFactory.createTitledBorder("Page Details"));        pageDetailPanel.add(cboField, "1,1");        pageDetailPanel.add(cmdAddField, "1,2");        pageDetailPanel.add(new JLabel("Forwards:"), "1,3");        fieldsTable = new JTable();        fieldsTable.addMouseListener(this);        fieldPopup = new JPopupMenu();        delField = new JMenuItem("Delete");        delField.addActionListener(this);        fieldPopup.add(delField);        pageList.addMouseListener(new MouseAdapter() {        public void handleMouseEvent(MouseEvent evt) {                if (evt.isPopupTrigger()) {                    if (pagePopup.isVisible()) {                        pagePopup.setVisible(false);                    } else {                        pagePopup.show((Component) evt.getSource(), evt.getX(), evt.getY());                    }                }            }            public void mouseReleased(MouseEvent evt) {                handleMouseEvent(evt);            }        });        pageList.addListSelectionListener(new ListSelectionListener() {         public void valueChanged(ListSelectionEvent e) {                if (pageList.getSelectedIndex() >= 0) {                    Page page = process.getPage(pageList.getSelectedIndex());                    fieldsTable.setModel(new FieldTableModel(page));                    fieldsTable.getColumn("Fields").setCellEditor(new DefaultCellEditor(tableFieldPicker));                    forwardsTable.setModel(new ForwardTableModel(page));                }            }        });        JScrollPane fsp = new JScrollPane(fieldsTable);        fieldsTable.add(fieldPopup);        fsp.setMinimumSize(new Dimension(90, 80));        fsp.setMaximumSize(new Dimension(190, 230));        fsp.setPreferredSize(new Dimension(190, 220));        pageDetailPanel.add(fsp, "2,1+2");        forwardsTable = new JTable();        JScrollPane fwdScrollPane = new JScrollPane(forwardsTable);        fwdScrollPane.setMinimumSize(new Dimension(90, 80));        fwdScrollPane.setMaximumSize(new Dimension(220, 230));        fwdScrollPane.setPreferredSize(new Dimension(220, 220));        TableLayoutConstraints constraints = new TableLayoutConstraints(2,3);        constraints.setVerticalAlignment(TableLayout.TOP);        pageDetailPanel.add(fwdScrollPane, constraints);        rowLayout.add(pageDetailPanel, 5);       /* cmdSave = new JButton("Save");        cmdCancel = new JButton("Cancel");        cmdSave.addActionListener(this);        cmdCancel.addActionListener(this);        rowLayout.add(cmdSave, 7);        rowLayout.add(cmdCancel, 7);*/        return panel;    }    public void setValues(Element beanCfg) {        System.out.println("Setting bean values");        this.clearForm();        try {            process = Process.unmarshal(new java.io.StringReader(beanCfg.asXML()));        } catch (org.exolab.castor.xml.MarshalException e) {            e.printStackTrace();  //To change body of catch statement use Options | File Templates.        } catch (org.exolab.castor.xml.ValidationException e) {            e.printStackTrace();  //To change body of catch statement use Options | File Templates.        }        String relPath = beanCfg.getUniquePath();        processProps = beanCfg;        processName.setText(process.getName());        successPath.setText(process.getSuccessPath());        cancelPath.setText(process.getCancelPath());        this.fillPages(process);        tableFieldPicker.removeAllItems();        cboField.removeAllItems();        List choices = beanCfg.selectNodes(relPath + "/../*[name()='primary-key' or name()='attribute']/column");        for (Iterator iter = choices.listIterator(); iter.hasNext();) {            Element element = (Element) iter.next();            tableFieldPicker.addItem(element.elementText("name"));            cboField.addItem(element.elementText("name"));        }    }    private void fillPages(Process _process) {        javax.swing.DefaultListModel model = new javax.swing.DefaultListModel();        pageList.setModel(model);                int n = _process.getPageCount();                Page[] pages = _process.getPage();                for (int i = 0; i < n; i++) {                    Page page = pages[i];                    model.add(i, page.getTitle());                }        if (_process.getPageCount() > 0) {            fieldsTable.setModel(new FieldTableModel(_process.getPage(0)));        }    }    public void actionPerformed(ActionEvent ae) {        Object src = ae.getSource();      if (src == cmdAddPage) {            String title = JOptionPane.showInputDialog("Title of Page to Add");            if (title != null)  {                Page page = new Page();                page.setTitle(title);                process.addPage(page);                //pageTitle.setText("");                this.fillPages(process);           }  else               System.out.println("Page title cannot be empty");        } else if (src == delField) {            ftm = (FieldTableModel) fieldsTable.getModel();            String fieldName = (String) ftm.getValueAt(fieldsTable.getSelectedRow(), 0);            ftm.deleteField(fieldName);            ftm.requestRefresh();        } else if (src == delPage) {            int pageIdx= pageList.getSelectedIndex();            Page page = process.getPage(pageIdx);            process.removePage(page);            this.fillPages(process);        } else if (src == cmdAddField) {          String fieldName = (String)cboField.getSelectedItem();          ftm = (FieldTableModel) fieldsTable.getModel();          ftm.addField(fieldName);          ftm.requestRefresh();     }    }    private void clearForm() {        /*            Set values to defaults        */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -