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

📄 decoratordemopanel.java

📁 java实现浏览器等本地桌面的功能
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            return;        Object old = getFindModus();        this.findModus = value;        updateDecorators();        firePropertyChange("findModus", old, getFindModus());    }    /**     * returns the current find modus.     *      * @return     */    public String getFindModus() {        return findModus;    }    /**     * returns array of available find modi.     *      * @return     */    public String[] getFindModi() {        // @todo: return copy!        return findModi;    }    /**     * callback for findNext action.     *      */    public void findNext() {        int foundIndex = table.getSearchable().search(patternModel.getPattern(), patternModel                .getFoundIndex());        patternModel.setFoundIndex(foundIndex);    }    // ----------------- create control bindings    private void bind() {        BindingHandler bindings = new BindingHandler();        bindings.setAutoCommit(true);        bindModusControl(bindings);        bindPatternModel(bindings);        bindActions(bindings);        bindings.pull();    }    private void bindActions(BindingHandler bindings) {        findNextAction.registerCallback(this, "findNext");        nextButton.setAction(findNextAction);    }    private void bindModusControl(BindingHandler bindings) {        // Enumeration not working correctly with classes        // different from string (?)        JavaBeanDataModel dataModel = null;        try {            EnumeratedMetaData meta = new EnumeratedMetaData("findModus",                    String.class, "Find Modus");            meta.setEnumeration(getFindModi());            dataModel = new JavaBeanDataModel(getClass(), this,                    new MetaData[] { meta });        } catch (IntrospectionException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        bindings.add(BindingFactory.getInstance().createBinding(                radioGroup, dataModel, "findModus"));        bindings.add(BindingFactory.getInstance().createMetaBinding(                radioGroupLabel, dataModel, "findModus"));    }    private void bindPatternModel(BindingHandler bindings) {        patternModel = new PatternModel();        // init DataModel        JavaBeanDataModel dataModel = null;        try {            dataModel = new JavaBeanDataModel(patternModel);            dataModel.getMetaData("pattern").setReadOnly(true);            dataModel.getMetaData("pattern").setLabel("Pattern");            dataModel.getMetaData("rawText").setLabel("Input Text");        } catch (IntrospectionException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        // ------------------------ create control bindings        bindings.add(BindingFactory.getInstance().createBinding(                inputText, dataModel, "rawText"));        bindings.add(BindingFactory.getInstance().createMetaBinding(                inputTextLabel, dataModel, "rawText"));        bindings.add(BindingFactory.getInstance().createBinding(                patternText, dataModel, "pattern"));        bindings.add(BindingFactory.getInstance().createMetaBinding(                patternLabel, dataModel, "pattern"));        // ------- wire control value changes to presentation changes        patternModel.addPropertyChangeListener(new PropertyChangeListener() {            public void propertyChange(PropertyChangeEvent evt) {                if ("pattern".equals(evt.getPropertyName())) {                    updatePattern((Pattern) evt.getNewValue());                }            }        });    }    // ----------------------- create models    private TableModel createTableModel() {        return new ActionMapTableModel(new JXTable().getActionMap());    }        private ListModel createListModel() {        JXList list = new JXList();        return new DefaultComboBoxModel(list.getActionMap().allKeys());    }    private TreeModel createTreeModel() {        // return new FileSystemModel();        return new ActionMapTreeTableModel(new JXTree());    }    // ---------------------- init UI    /**     * This method is called from within the constructor to initialize the form.     */    private void initComponents() {        table = new JXTable(createTableModel());        // table = new JXTreeTable(new ActionMapTreeTableModel(new        // JXTreeTable()));        list = new JXList(createListModel());        tree = new JXTree(createTreeModel());        // control components        nextButton = new JButton("Find next");        ConstantSize size = LayoutStyle.getCurrent().getRelatedComponentsPadX();        radioGroup = new JXRadioGroup(size.getPixelSize(nextButton));        inputText = new JTextField();        patternText = new JTextField();    }    private void build() {        // COLUMN SPECS:        // f:p:g, l:4dluX:n, f:d:g, l:4dluX:n, f:d:g        // ROW SPECS:        // c:d:n, t:3dluY:n, f:d:g, t:4dluY:n, c:d:n        //        // COLUMN GROUPS: {}        // ROW GROUPS: {}        //        // COMPONENT CONSTRAINTS        // ( 1, 1, 1, 1, "d=f, d=c"); javax.swing.JLabel "table";        // name=tableLabel        // ( 3, 1, 1, 1, "d=f, d=c"); javax.swing.JLabel "list"; name=listLabel        // ( 5, 1, 1, 1, "d=f, d=c"); javax.swing.JLabel "tree"; name=treeLabel        // ( 1, 3, 1, 1, "d=f, d=f"); javax.swing.JScrollPane; name=table        // ( 3, 3, 1, 1, "d=f, d=f"); javax.swing.JScrollPane; name=list        // ( 5, 3, 1, 1, "d=f, d=f"); javax.swing.JScrollPane; name=tree        // ( 1, 5, 5, 1, "d=f, d=c"); javax.swing.JPanel; name=decoratorcontrol2        //        FormLayout formLayout = new FormLayout(                "f:p:g, l:4dlu:n, f:d:g, l:4dlu:n, f:d:g", // columns                "c:d:n,  t:3dlu:n, f:d:g, t:4dlu:n, c:d:n"); // rows        PanelBuilder builder = new PanelBuilder(this, formLayout);        builder.setDefaultDialogBorder();        CellConstraints cc = new CellConstraints();        CellConstraints cl = new CellConstraints();        // builder.add(new JLabel("JXTable:"), cl.xywh(1, 1, 1, 1));        builder.addLabel("JXTable:", cl.xywh(1, 1, 1, 1),                new JScrollPane(table), cc.xywh(1, 3, 1, 1));        builder.addLabel("JXList:", cl.xywh(3, 1, 1, 1), new JScrollPane(list),                cc.xywh(3, 3, 1, 1));        builder.addLabel("JXTree:", cl.xywh(5, 1, 1, 1), new JScrollPane(tree),                cc.xywh(5, 3, 1, 1));        builder.add(buildControl(), cc.xywh(1, 5, 5, 1));        list.setBorder(listBorder);        tree.setBorder(treeBorder);    }    private JComponent buildControl() {        // COLUMN SPECS:        // r:p:n, l:4dluX:n, f:max(p;100dluX):n, l:4dluX:n, f:max(p;50dluX):n        // ROW SPECS:        // c:d:n, t:4dluY:n, c:d:n        //        // COLUMN GROUPS: {}        // ROW GROUPS: {}        //        // COMPONENT CONSTRAINTS        // ( 1, 1, 1, 1, "d=r, d=c"); javax.swing.JLabel "Modus"; name=modus        // ( 3, 1, 3, 1, "d=f, d=c"); javax.swing.JPanel; name=moduscontrol        // ( 1, 3, 1, 1, "d=r, d=c"); javax.swing.JLabel "Input"; name=input        // ( 3, 3, 1, 1, "d=f, d=c"); javax.swing.JTextField; name=searchText        // ( 5, 3, 1, 1, "d=f, d=c"); de.kleopatra.view.JButton; name=next        //        FormLayout formLayout = new FormLayout(                "r:p:n, l:4dlu:n, f:max(p;100dlu):n, l:4dlu:n, f:max(p;50dlu):n", // columns                "c:d:n, t:4dlu:n, c:d:n, t:4dlu:n, c:d:n"); // rows        JXPanel control = new JXPanel();        PanelBuilder builder = new PanelBuilder(control, formLayout);        builder.setBorder(Borders.BUTTON_BAR_GAP_BORDER);        CellConstraints cl = new CellConstraints();        CellConstraints cc = new CellConstraints();        radioGroupLabel = builder.addLabel("", cl.xywh(1, 1, 1, 1), radioGroup, cc.xywh(3,                1, 3, 1));        inputTextLabel = builder.addLabel("", cl.xywh(1, 3, 1, 1), inputText, cc                .xywh(3, 3, 1, 1));        patternLabel = builder.addLabel("", cl.xywh(1, 5, 1, 1), patternText, cc.xywh(                3, 5, 1, 1));        builder.add(nextButton, cc.xywh(5, 3, 1, 1));        return control;    }    // --------------- super overrides    public String getName() {        return "Decorators";    }    public String getInformationTitle() {        return "Highlighters :: Filters";    }        public String getHtmlDescription() {        return "<html> "                + " Demonstrates the use Decorators (Highlighters, Filters)"                + " and searching "                + " in collection components JXTable, JXList, JXTree. "                + " "                + "<p> <b>Find matching text </b> - this demo supports three find modes: "                + " <ul>"                + " <li> highlight all matching occurrences  "                + " <li> filter away all non-matching rows (JXTable only - match is tested on first "                + " column)"                + " <li> search and select next occurrence (JXTable only) "                + " </ul>"                + "<p> <b>Mouse rollover</b> - this demo highlights the foreground in the row below "                + " the current mouse position if the find mode is set to highlight. "                + " </html>";    }}

⌨️ 快捷键说明

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