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

📄 settingspanel.java

📁 Delineate is a tool for converting bitmap raster images to SVG (Scalable Vector Graphics) using Auto
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        }    }    private JFileChooser initFileChooser(String dialogTitle) {        JFileChooser fileChooser = new JFileChooser();        fileChooser.setApproveButtonText("Select");        fileChooser.setApproveButtonToolTipText("Select file");        fileChooser.setDialogTitle(dialogTitle);        return fileChooser;    }    private void addParameter(JPanel panel, XPathTool xpath, String xpathPrefix, String name) throws TransformerException {        boolean optional = xpath.toBoolean("optional");        boolean enabled = optional ? xpath.toBoolean("enabled") : true;        String value = xpath.string("default");        String desc = xpath.string("description");        String function = xpath.string("function");        command.addParameter(name, enabled, value, function);        if(desc.length() == 0) {            return;        }        JComponent labelPanel = null;        JComponent controlComponent = null;        if(xpath.count("range") != 1) {            labelPanel = initLabelPanel(optional, enabled, null, desc, name, function);            controlComponent = initControlComponent(name, value, enabled, null);        } else {            xpath.setXpathPrefix(xpathPrefix + "range/");            boolean useWholeNumbers = xpath.toBoolean("use-whole-numbers");            String stepString = xpath.string("step").trim();            SpinnerNumberModel model = initSpinnerModel(useWholeNumbers, xpath, value);            SpinnerSlider spinnerSlider = initSpinnerSlider(model, name, enabled, desc, useWholeNumbers, stepString);            labelPanel = initLabelPanel(optional, enabled, spinnerSlider, desc, name, function);            controlComponent = initControlPanel(spinnerSlider);        }        panel.add(labelPanel);        panel.add(controlComponent);    }    private JComponent initControlComponent(String name, String value, boolean enabled, String function) {        if(value.length() > 0) {            if(name.equals(Command.BACKGROUND_COLOR_PARAMETER)) {                colorEditor = new ColorEditor(command, value, panel, enabled);                return colorEditor.getColorCombo();            } else {                setFileSizeText(name, value);                JTextField textField = new JTextField(value);                textField.setName(name);                textField.setColumns(15);                textField.addKeyListener(textFieldKeyListener);                if(function != null) {                    textFieldMap.put(function, textField);                }                textFieldMap.put(name, textField);                return textField;            }        } else {            return new JLabel("");        }    }    private JPanel initControlPanel(SpinnerSlider spinnerSlider) {        JPanel controlPanel = new JPanel(new BorderLayout(0,0));        JSpinner spinner = spinnerSlider.getSpinner();        Dimension size = new Dimension(53, (int)spinner.getPreferredSize().getHeight());        spinner.setPreferredSize(size);        controlPanel.add(spinner, BorderLayout.WEST);        controlPanel.add(spinnerSlider.getSlider(), BorderLayout.EAST);        return controlPanel;    }    private SpinnerSlider initSpinnerSlider(SpinnerNumberModel model, String name, boolean enabled, String desc, boolean useWholeNumbers, String stepString) {        SpinnerSlider spinnerSlider = new SpinnerSlider(model);        spinnerSlider.setName(name);        spinnerSlider.setEnabled(enabled);        spinnerSlider.setTooltipText(desc);        spinnerSlider.addChangeListener(changeListener);        spinnerSliderMap.put(name, spinnerSlider);        if(!useWholeNumbers) {            int fractionalDigits = stepString.substring(stepString.indexOf('.') + 1).length();            spinnerSlider.setFractionDigitsLength(fractionalDigits);        }        return spinnerSlider;    }    private JPanel initLabelPanel(boolean optional, boolean enabled, final SpinnerSlider spinnerSlider, String desc, final String name, String function) {        String labelName = name.replace('-', ' ');        boolean isFileParameter = function.equals(Command.INPUT_FILE_PARAMETER) || function.equals(Command.OUTPUT_FILE_PARAMETER);        boolean isBgColorParameter = name.equals(Command.BACKGROUND_COLOR_PARAMETER);        final JPanel panel = new JPanel(new BorderLayout());        Component labelComponent = null;        JButton button = null;        if(!isFileParameter && !isBgColorParameter) {            JLabel label = new JLabel(labelName);            label.setToolTipText(desc);            labelComponent = label;        } else if(isBgColorParameter) {            button = initColorChooserButton(labelName, enabled);            labelComponent = button;        } else if(isFileParameter) {            labelComponent = initFileChooserButton(name, labelName, function);        }        panel.add(labelComponent, BorderLayout.WEST);        if(optional) {            JCheckBox checkBox = initCheckbox(name, desc, enabled, spinnerSlider, button);            panel.add(checkBox, BorderLayout.EAST);        } else if(isFileParameter) {            JLabel label = new JLabel();            fileSizeLabelMap.put(function, label);            panel.add(label, BorderLayout.EAST);        }        return panel;    }    private JButton initColorChooserButton(String labelName, boolean enabled) {        AbstractAction action = new AbstractAction() {            public void actionPerformed(ActionEvent e) {                colorEditor.chooseColor();            }        };        JButton button = GuiUtilities.initButton(labelName, BACKGROUND_COLOR_ACTION, KeyEvent.VK_B, panel, action);        button.setToolTipText("Choose color");        button.setEnabled(enabled);        return button;    }    private JButton initFileChooserButton(final String name, final String labelName, String function) {        final String prompt = function.equals(Command.INPUT_FILE_PARAMETER) ? "Select " : "Name ";        AbstractAction action = new AbstractAction() {            JFileChooser fileChooser = initFileChooser(prompt + labelName);            public void actionPerformed(ActionEvent e) {                int response = fileChooser.showOpenDialog((JComponent)e.getSource());                if(response == JFileChooser.APPROVE_OPTION) {                    File file = fileChooser.getSelectedFile();                    JTextField textField = getTextField(name);                    textField.setText(file.getPath());                    setFileSizeText(name, file.getPath());                    command.setParameterValue(textField.getName(), textField.getText(), false);                }            }        };        JButton button = null;        if(function.equals(Command.INPUT_FILE_PARAMETER)) {            button = GuiUtilities.initButton(labelName, INPUT_FILE_ACTION, KeyEvent.VK_I, panel, action);        } else if(function.equals(Command.OUTPUT_FILE_PARAMETER)) {            button = GuiUtilities.initButton(labelName, OUTPUT_FILE_ACTION, KeyEvent.VK_O, panel, action);        }        button.setToolTipText("Browse files");        return button;    }    private void setFileSizeText(final String name, String filePath) {        JLabel label = (JLabel)fileSizeLabelMap.get(name);        if(label != null) {            File file = FileUtilities.getFile(filePath);            String fileSize = FileUtilities.getFileSize(file);            label.setText(fileSize);        }    }    private JCheckBox initCheckbox(final String name, String desc, boolean enabled, final SpinnerSlider spinnerSlider, final JButton button) {        final JCheckBox checkBox = new JCheckBox("", false);        checkBoxMap.put(name, checkBox);        checkBox.setName(name);        checkBox.setToolTipText(desc);        checkBox.setSelected(enabled);        checkBox.setFocusPainted(true);        if(spinnerSlider != null) {            checkBox.addChangeListener(new ChangeListener() {                public void stateChanged(ChangeEvent e) {                    spinnerSlider.setEnabled(checkBox.isSelected());                }            });        } else if(name.equals(Command.BACKGROUND_COLOR_PARAMETER)) {            checkBox.addChangeListener(new ChangeListener() {                public void stateChanged(ChangeEvent e) {                    JComboBox combo = colorEditor.getColorCombo();                    combo.setEnabled(checkBox.isSelected());                    button.setEnabled(checkBox.isSelected());                }            });        }        checkBox.addChangeListener(changeListener);        return checkBox;    }    private JTextField getTextField(String key) {        JTextField textField = (JTextField)textFieldMap.get(key);        return textField;    }    private SpinnerNumberModel initSpinnerModel(boolean useWholeNumbers, XPathTool xpath, String defaultValue) throws TransformerException {        SpinnerNumberModel model;        if(useWholeNumbers) {            int value = Integer.parseInt(defaultValue);            int min = xpath.toInt("min");            int max = xpath.toInt("max");            int step = xpath.toInt("step");            model = new SpinnerNumberModel(value, min, max, step);        } else {            double value = Double.parseDouble(defaultValue);            double min = xpath.toDouble("min");            double max = xpath.toDouble("max");            double step = xpath.toDouble("step");            model = new SpinnerNumberModel(value, min, max, step);        }        return model;    }    public void setColors(Color[] colors) {        if(colorEditor != null && colors != null) {            colorEditor.setColors(colors);        }    }    public boolean getCenterlineEnabled() {        return command.getParameterEnabled(Command.CENTERLINE_PARAMETER);    }    public String[] getCommandAsArray() {        return command.getCommandAsArray();    }    public String getCommandName() {        return command.getCommandName();    }}

⌨️ 快捷键说明

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