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

📄 settingsdialog.java

📁 It is all about project scheduling. GanttProject is a tool for creating a project schedule by means
💻 JAVA
字号:
/*************************************************************************** SettingsDialog.java     ----------------------------------------------------- begin                : jun 2004 copyright            : (C) 2004 by Thomas Alexandre email                : alexthomas(at)ganttproject.org ***************************************************************************//*************************************************************************** *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * ***************************************************************************/package net.sourceforge.ganttproject.gui.options;import java.awt.Frame;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.Box;import javax.swing.JButton;import javax.swing.event.TreeSelectionEvent;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.tree.TreePath;import net.sourceforge.ganttproject.GanttProject;import net.sourceforge.ganttproject.Mediator;import net.sourceforge.ganttproject.gui.GeneralDialog;import net.sourceforge.ganttproject.gui.options.model.OptionPageProvider;import net.sourceforge.ganttproject.language.GanttLanguage;/** * @author athomas Dialog to edit the preferences for the application. */public class SettingsDialog extends GeneralDialog implements ActionListener{    boolean reinit = false; // If restart the initialization    JButton restoreButton = null;    /** Constructor. */    public SettingsDialog(GanttProject parent) {        super(parent, GanttProject.correctLabel(GanttLanguage.getInstance()                .getText("settings")), true, new WelcomeSettingsPanel(parent));                restoreButton = new JButton(language.getText("restoreDefaults"));        restoreButton.setName("restore");        restoreButton.addActionListener(this);        if (southPanel != null) {            southPanel.add(restoreButton);        }        addWindowListener(new WindowAdapter() {            public void windowClosing(WindowEvent e) {                super.windowClosing(e);                if (settingPanel!=null) {                    settingPanel.rollback();                }            }                    });    }    /** Construct the menu settings. */    public void constructSections() {        addPagesFromProviders();        DefaultMutableTreeNode projectNode = addObject(GanttProject                .correctLabel(language.getText("project")), null);        DefaultMutableTreeNode generalNode = addObject(language                .getText("general"), null);        DefaultMutableTreeNode exportNode = addObject(GanttProject                .correctLabel(language.getText("export")), null);        DefaultMutableTreeNode roleNode = addObject(language                .getText("resourceRole"), null);        // general section        addObject(language.getText("parameters"), generalNode);        addObject(language.getText("looknfeel"), generalNode);        addObject(language.getText("languages"), generalNode);        //addObject(language.getText("colors"), generalNode);        // Export section        // addObject ("html", exportNode);        addObject("csv", exportNode);        // Just to see the first level of the tree        treeSections.scrollPathToVisible(new TreePath(projectNode.getPath()));    }    private void addPagesFromProviders() {        Object[] extensions = Mediator.getPluginManager().getExtensions("net.sourceforge.ganttproject.OptionPageProvider", OptionPageProvider.class);        for (int i=0; i<extensions.length; i++) {            OptionPageProvider nextProvider = (OptionPageProvider) extensions[i];            addObject(nextProvider, null);        }    }    /** Callback for the tree selection event. */    public void valueChanged(TreeSelectionEvent e) {        if (reinit)            return;        DefaultMutableTreeNode node = (DefaultMutableTreeNode) (e.getPath()                .getLastPathComponent());        boolean bHasChange = settingPanel.applyChanges(true);        // construct the sections        if ((settingPanel instanceof LanguageSettingsPanel) && bHasChange) {            reinit = true;            rootNode.removeAllChildren();            treeModel.setRoot(rootNode);            treeModel.reload();            constructSections();            reinit = false;        }        // - remove the settingPanel        mainPanel2.remove(0);                Box vb = Box.createVerticalBox();                Object userObject = node.getUserObject();        if (userObject instanceof OptionPageProvider) {            settingPanel = new OptionPageProviderPanel((OptionPageProvider) userObject, getProject(), getUIFacade());        }        else {        // - ask the settingPanel if parameters are changed        // - Create the new panel            String sNode = (String) (node.getUserObject());            if (sNode.equals(language.getText("languages")))                settingPanel = new LanguageSettingsPanel(appli);                else if (sNode.equals(GanttProject.correctLabel(language                    .getText("project"))))                settingPanel = new ProjectSettingsPanel((Frame) getOwner(),                        getProject());                else if (sNode.equals(GanttProject.correctLabel(language                    .getText("parameters"))))                settingPanel = new ParametersSettingsPanel(appli);                else if (sNode.equals(GanttProject.correctLabel(language                    .getText("resourceRole"))))                settingPanel = new RolesSettingsPanel(appli);                else if (sNode.equals(language.getText("looknfeel")))                settingPanel = new LnFSettingsPanel(appli);                else if (sNode.equals(GanttProject.correctLabel(language                    .getText("export"))))                settingPanel = new ExportSettingsPanel(appli);                else if (sNode.equals("csv"))                settingPanel = new CSVSettingsPanel(appli);                else                settingPanel = new WelcomeSettingsPanel(appli);            vb.add(new TopPanel("  " + settingPanel.getTitle(), settingPanel                    .getComment()));        }            // - initialize the panel        settingPanel.initialize();        vb.add(settingPanel.getComponent());        // - add the settingPanel into the main Panel        mainPanel2.add(vb, 0);        mainPanel2.repaint();        mainPanel2.validate(); // valide the changes    }    public void actionPerformed(ActionEvent e) {        super.actionPerformed(e);        if (e.getSource() == restoreButton) {            appli.restoreOptions();            // refresh the current panel            settingPanel.rollback();        }    }        }

⌨️ 快捷键说明

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