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

📄 securityconstraintpane.java

📁 自动生成JAVA-Struts网站的程序
💻 JAVA
字号:
package com.sutternow.swingkar.gui;import javax.swing.*;import javax.swing.table.DefaultTableModel;import java.awt.event.*;import java.awt.*;import java.util.*;import java.util.List;import org.dom4j.Element;import org.dom4j.Node;import org.dom4j.DocumentHelper;import net.sf.easylayouts.*;import com.gargoylesoftware.base.gui.TableLayout;import com.gargoylesoftware.base.gui.TableLayoutConstraints;import com.sutternow.swingkar.ConfigManager;import com.sutternow.misc.Utils;/*  @done Load role choices  @done Load resource paths  @done check correct role choices  @done make interface work  @todo tweak layout slightly*//** * Created by IntelliJ IDEA. * User: Matthew Payne * Date: Jan 18, 2003 * Time: 1:01:50 AM * To change this template use Options | File Templates. */public final class SecurityConstraintPane implements  SimpleForm,  ActionListener, MouseListener {    public String Title = "Web Resource Collection";    public SecurityConstraintPane(ConfigManager _cm) {        cm = _cm;        props = new HashMap();        secPanel = this.createPanel();    }     public String getTitle() {        return Title;    }    private JPanel createPanel() {        final TableLayout tableLayout = new TableLayout();        final JPanel parentPanel = new JPanel();        final JPanel bottomPanel = new JPanel();        final JPanel topPanel = new JPanel(tableLayout);        RowLayout rowLayout = new RowLayout(parentPanel, 1, 25);        rowLayout.add(new JLabel("Web Resource Name:"), 0);        webRourceName = new JTextField(25);        rowLayout.add(webRourceName, 0);        rowLayout.addEmptyRow(10);        dm = new DefaultTableModel();        addItem = new JButton("Add");        addItem.addActionListener(this);        urlPattern = new JTextField(15);        topPanel.add(new JLabel("URL Patten(s):"), "1,1");        JPanel urlPanel = new JPanel();        urlPanel.add(urlPattern);        urlPanel.add(addItem);        topPanel.add(urlPanel, "2,1");        patternTable = new JTable(dm);        patternTable.setShowGrid(false);        patternTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);        patternTable.addMouseListener(this);        popmenu = new JPopupMenu();        delEntry = new JMenuItem("Delete");        delEntry.addActionListener(this);        popmenu.add(delEntry);        psp = new JScrollPane(patternTable);        psp.setMinimumSize(new Dimension(40, 50));        psp.setMaximumSize(new Dimension(230, 220));        psp.setPreferredSize(new Dimension(230, 218));        TableLayoutConstraints constraints = new TableLayoutConstraints(3, 1);        constraints.setVerticalAlignment(TableLayout.TOP);        topPanel.add(psp, constraints);        topPanel.add(new JLabel("Allowed Role(s):"), "2,3");        JScrollPane rsp = new JScrollPane(roleList);        roleList.setCellRenderer(new CheckListRenderer());        roleList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);        roleList.addMouseListener(new MouseAdapter() {            public void mouseClicked(MouseEvent e) {                int index = roleList.locationToIndex(e.getPoint());                CheckableItem item = (CheckableItem) roleList.getModel().getElementAt(index);                item.setSelected(!item.isSelected());                Rectangle rect = roleList.getCellBounds(index, index);                roleList.repaint(rect);            }        });        topPanel.add(rsp, "3,3");        rowLayout.add(topPanel, 2);      /*  cmdSave = new JButton("Save");        cmdCancel = new JButton("Cancel");        cmdSave.addActionListener(this);        cmdCancel.addActionListener(this);        bottomPanel.add(cmdSave);        bottomPanel.add(cmdCancel);*/        rowLayout.add(bottomPanel, 3);        return parentPanel;    }    public JPanel getEditForm() {        return this.secPanel;    }    public void setValues(Element secCfg) {        this.clearForm();        String relPath = secCfg.getUniquePath();        secElement = secCfg;        webRourceName.setText(Utils.parseNull(secCfg.valueOf(relPath + "/name")));        javax.swing.DefaultListModel model = new javax.swing.DefaultListModel();        roleList.setModel(model);        List choices = secCfg.selectNodes("//security/security-role");        int n = choices.size();        CheckableItem[] items = new CheckableItem[n];        for (int i = 0; i < n; i++) {            Element element = (Element) choices.get(i);            items[i] = new CheckableItem(element.getText());            if (secCfg.matches(relPath + "[security-role='" + element.getText() + "']")) {                items[i].setSelected(true);            }            model.add(i, items[i]);        }        List patternChoices = secCfg.selectNodes(relPath + "/url-pattern");        Vector headVec = new Vector();        Vector masterVec = new Vector();        headVec.addElement("Patterns");        dm.setColumnCount(1);        n = patternChoices.size();        dm.setRowCount(0);        dm.addColumn("Patterns");        for (int i = 0; i < n; i++) {            Element element = (Element) patternChoices.get(i);            Vector patVec = new Vector();            patVec.addElement(element.getText());            masterVec.addElement(patVec);        }        dm.setDataVector(masterVec, headVec);        patternTable.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);    }    public void actionPerformed(ActionEvent ae) {        Object src = ae.getSource();        if (src == delEntry) {            deleteRow();        } else if (src == addItem) {            if (urlPattern.getText().length() > 0 && urlPattern.getText().length() > 0) {                Vector vec = new Vector();                vec.addElement(urlPattern.getText().trim());                dm.addRow(vec);                urlPattern.setText("");            }        } else if (src == editEntry) {            /* int i = propertyTable.getSelectedRow();             urlPattern.setText((String)propertyTable.getValueAt(i, 0));             itemValue.setText((String)propertyTable.getValueAt(i, 1)); */        }    }    //{{{ deleteRow() method    private void deleteRow() {        // Deletes a row from the Table:        int targetRow;        if (patternTable.getSelectedRowCount() > 0) {            targetRow = patternTable.getSelectedRow();            dm.removeRow(targetRow);        }    } //}}}    private void clearForm() {        webRourceName.setText("");        urlPattern.setText("");        props.clear();    }    public void doSave() {        secElement.element("name").setText(webRourceName.getText());        // clear url-pattern(s) and add items in table        secElement.elements("url-pattern").clear();        Vector masterVec = dm.getDataVector();        Iterator itr = masterVec.iterator();        while (itr.hasNext()) {            Vector childVec = (Vector) itr.next();            String value = (String) childVec.firstElement();            secElement.addElement("url-pattern").setText(value);        }        // clear security-role(s) and add selected items        secElement.elements("security-role").clear();        javax.swing.DefaultListModel model = (javax.swing.DefaultListModel) roleList.getModel();        int size = model.getSize();        for (int i = 1; i <= size; i++) {            CheckableItem item = (CheckableItem) model.get(i - 1);            if (item.isSelected()) {               // System.out.println(item.toString());                secElement.addElement("security-role").setText(item.toString());            }        }      //  cm.saveChanges();        System.out.println(this.Title + " Saved");    }    //{{{ Mouse Listener Interface Implementation    private void handleMouseEvent(MouseEvent evt) {        if (evt.isPopupTrigger()) {            if (popmenu.isVisible()) {                popmenu.setVisible(false);            } else {                popmenu.show((Component) evt.getSource(), evt.getX(), evt.getY());            }        }    }    public void mousePressed(MouseEvent evt) {        handleMouseEvent(evt);    }    public void mouseReleased(MouseEvent evt) {        handleMouseEvent(evt);    }    public void mouseClicked(MouseEvent e) {    }    public void mouseEntered(MouseEvent e) {    }    public void mouseExited(MouseEvent e) {    }    final JList roleList = new JList();    private JTextField webRourceName;    private JTextField urlPattern;    private DefaultTableModel dm;    private JTable patternTable;    private JPanel secPanel;    private JScrollPane psp;    private Element secElement;    private JPopupMenu popmenu;    private JMenuItem delEntry;    private JMenuItem editEntry;    private JButton addItem;    private JButton cmdSave;    private JButton cmdCancel;    private ConfigManager cm;    private HashMap props;}class CheckListRenderer extends JCheckBox implements ListCellRenderer {    public CheckListRenderer() {        setBackground(UIManager.getColor("List.textBackground"));        setForeground(UIManager.getColor("List.textForeground"));    }    public Component getListCellRendererComponent(JList list, Object value,                                                  int index, boolean isSelected, boolean hasFocus) {        setEnabled(list.isEnabled());        setSelected(((CheckableItem) value).isSelected());        setFont(list.getFont());        setText(value.toString());        return this;    }}

⌨️ 快捷键说明

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