X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fde%2Ftodesbaum%2Fjsite%2Fmain%2FMain.java;h=5ae18c06fec294a23a4667be04a3ecb7fdc5fe24;hb=3aa1848bb1dcbf0df8bd2ccc88eacaafa5372253;hp=71dc8a39400ad8e05ba258bb74d0e8cd46112fc6;hpb=b0ddf6db725f7229233bef052dec67c4f19bf677;p=jSite.git diff --git a/src/de/todesbaum/jsite/main/Main.java b/src/de/todesbaum/jsite/main/Main.java index 71dc8a3..5ae18c0 100644 --- a/src/de/todesbaum/jsite/main/Main.java +++ b/src/de/todesbaum/jsite/main/Main.java @@ -1,6 +1,6 @@ /* * jSite - a tool for uploading websites into Freenet - * Copyright (C) 2006 David Roden + * Copyright (C) 2006-2009 David Roden * * 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 @@ -56,6 +56,7 @@ import de.todesbaum.jsite.application.UpdateChecker; import de.todesbaum.jsite.application.UpdateListener; import de.todesbaum.jsite.gui.NodeManagerListener; import de.todesbaum.jsite.gui.NodeManagerPage; +import de.todesbaum.jsite.gui.PreferencesPage; import de.todesbaum.jsite.gui.ProjectFilesPage; import de.todesbaum.jsite.gui.ProjectInsertPage; import de.todesbaum.jsite.gui.ProjectPage; @@ -73,8 +74,12 @@ import de.todesbaum.util.swing.WizardListener; */ public class Main implements ActionListener, ListSelectionListener, WizardListener, NodeManagerListener, UpdateListener { + /** The logger. */ + @SuppressWarnings("unused") + private static final Logger logger = Logger.getLogger(Main.class.getName()); + /** The version. */ - private static final Version VERSION = new Version(0, 7, 1); + private static final Version VERSION = new Version(0, 8); /** The configuration. */ private Configuration configuration; @@ -105,7 +110,10 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen PAGE_PROJECT_FILES, /** The project insert page. */ - PAGE_INSERT_PROJECT + PAGE_INSERT_PROJECT, + + /** The preferences page. */ + PAGE_PREFERENCES } @@ -118,6 +126,9 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen /** The “manage nodes” action. */ private Action manageNodeAction; + /** The “preferences” action. */ + private Action optionsPreferencesAction; + /** The “check for updates” action. */ private Action checkForUpdatesAction; @@ -204,6 +215,17 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen wizard.setNextName(I18n.getMessage("jsite.wizard.next")); } }; + optionsPreferencesAction = new AbstractAction(I18n.getMessage("jsite.menu.options.preferences")) { + + /** + * {@inheritDoc} + */ + @Override + @SuppressWarnings("synthetic-access") + public void actionPerformed(ActionEvent actionEvent) { + optionsPreferences(); + } + }; checkForUpdatesAction = new AbstractAction(I18n.getMessage("jsite.menu.help.check-for-updates")) { /** @@ -227,6 +249,7 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen @SuppressWarnings("synthetic-access") public void run() { manageNodeAction.putValue(Action.NAME, I18n.getMessage("jsite.menu.nodes.manage-nodes")); + optionsPreferencesAction.putValue(Action.NAME, I18n.getMessage("jsite.menu.options.preferences")); checkForUpdatesAction.putValue(Action.NAME, I18n.getMessage("jsite.menu.help.check-for-updates")); aboutAction.putValue(Action.NAME, I18n.getMessage("jsite.menu.help.about")); } @@ -258,6 +281,10 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen selectedNode = configuration.getSelectedNode(); nodesUpdated(configuration.getNodes()); + final JMenu optionsMenu = new JMenu(I18n.getMessage("jsite.menu.options")); + menuBar.add(optionsMenu); + optionsMenu.add(optionsPreferencesAction); + /* evil hack to right-align the help menu */ JPanel panel = new JPanel(); panel.setOpaque(false); @@ -274,6 +301,7 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen public void run() { languageMenu.setText(I18n.getMessage("jsite.menu.languages")); nodeMenu.setText(I18n.getMessage("jsite.menu.nodes")); + optionsMenu.setText(I18n.getMessage("jsite.menu.options")); helpMenu.setText(I18n.getMessage("jsite.menu.help")); for (Map.Entry languageActionEntry : languageActions.entrySet()) { languageActionEntry.getValue().putValue(Action.NAME, I18n.getMessage("jsite.menu.language." + languageActionEntry.getKey().getLanguage())); @@ -309,6 +337,11 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen projectInsertPage.setName("page.project.insert"); projectInsertPage.setFreenetInterface(freenetInterface); pages.put(PageType.PAGE_INSERT_PROJECT, projectInsertPage); + + PreferencesPage preferencesPage = new PreferencesPage(wizard); + preferencesPage.setName("page.preferences"); + preferencesPage.setTempDirectory(configuration.getTempDirectory()); + pages.put(PageType.PAGE_PREFERENCES, preferencesPage); } /** @@ -340,6 +373,9 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen ProjectPage projectPage = (ProjectPage) pages.get(PageType.PAGE_PROJECTS); configuration.setProjects(projectPage.getProjects()); + PreferencesPage preferencesPage = (PreferencesPage) pages.get(PageType.PAGE_PREFERENCES); + configuration.setTempDirectory(preferencesPage.getTempDirectory()); + return configuration.save(); } @@ -407,6 +443,16 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen } /** + * Shows a dialog with general preferences. + */ + private void optionsPreferences() { + showPage(PageType.PAGE_PREFERENCES); + optionsPreferencesAction.setEnabled(false); + wizard.setNextEnabled(true); + wizard.setNextName(I18n.getMessage("jsite.wizard.next")); + } + + /** * Shows a dialog box that shows the last version that was found by the * {@link UpdateChecker}. */ @@ -511,11 +557,19 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen } configuration.save(); showPage(PageType.PAGE_INSERT_PROJECT); - ((ProjectInsertPage) pages.get(PageType.PAGE_INSERT_PROJECT)).startInsert(); + ProjectInsertPage projectInsertPage = (ProjectInsertPage) pages.get(PageType.PAGE_INSERT_PROJECT); + String tempDirectory = ((PreferencesPage) pages.get(PageType.PAGE_PREFERENCES)).getTempDirectory(); + projectInsertPage.setTempDirectory(tempDirectory); + projectInsertPage.startInsert(); nodeMenu.setEnabled(false); + optionsPreferencesAction.setEnabled(false); } else if ("page.project.insert".equals(pageName)) { showPage(PageType.PAGE_PROJECTS); nodeMenu.setEnabled(true); + optionsPreferencesAction.setEnabled(true); + } else if ("page.preferences".equals(pageName)) { + showPage(PageType.PAGE_PROJECTS); + optionsPreferencesAction.setEnabled(true); } }