X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fde%2Ftodesbaum%2Fjsite%2Fmain%2FMain.java;h=e654c914d13b671a764e5c379689380e958f50ea;hb=a03efa6ebf81fc25c9b3e4effdd1529e956ad24b;hp=af921cf2abdb9e400009ddb10204f3c9ee4f018c;hpb=7cec7da468700fd0f1eb5677edf437902eeae04b;p=jSite.git diff --git a/src/de/todesbaum/jsite/main/Main.java b/src/de/todesbaum/jsite/main/Main.java index af921cf..e654c91 100644 --- a/src/de/todesbaum/jsite/main/Main.java +++ b/src/de/todesbaum/jsite/main/Main.java @@ -19,8 +19,10 @@ package de.todesbaum.jsite.main; +import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.io.File; import java.io.IOException; import java.text.MessageFormat; import java.util.Date; @@ -39,6 +41,7 @@ import javax.swing.Icon; import javax.swing.JList; import javax.swing.JMenu; import javax.swing.JMenuBar; +import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JRadioButtonMenuItem; @@ -61,6 +64,7 @@ import de.todesbaum.jsite.gui.ProjectInsertPage; import de.todesbaum.jsite.gui.ProjectPage; import de.todesbaum.jsite.i18n.I18n; import de.todesbaum.jsite.i18n.I18nContainer; +import de.todesbaum.jsite.main.Configuration.ConfigurationDirectory; import de.todesbaum.util.image.IconLoader; import de.todesbaum.util.swing.TWizard; import de.todesbaum.util.swing.TWizardPage; @@ -162,7 +166,20 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen if (configFilename != null) { configuration = new Configuration(configFilename); } else { - configuration = new Configuration(); + /* are we executed from a JAR file? */ + String resource = getClass().getResource("/de/todesbaum/jsite/i18n/jSite.properties").toString(); + if (resource.startsWith("jar:")) { + String jarFileLocation = resource.substring(9, resource.indexOf(".jar!") + 4); + String jarFileDirectory = new File(jarFileLocation).getParent(); + File configurationFile = new File(jarFileDirectory, "jSite.conf"); + if (configurationFile.exists()) { + configuration = new Configuration(configurationFile.getAbsolutePath()); + configuration.setConfigurationDirectory(ConfigurationDirectory.NEXT_TO_JAR_FILE); + } + } + if (configuration == null) { + configuration = new Configuration(); + } } Locale.setDefault(configuration.getLocale()); I18n.setLocale(configuration.getLocale()); @@ -336,7 +353,7 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen projectInsertPage.setFreenetInterface(freenetInterface); pages.put(PageType.PAGE_INSERT_PROJECT, projectInsertPage); - PreferencesPage preferencesPage = new PreferencesPage(wizard); + PreferencesPage preferencesPage = new PreferencesPage(wizard, configuration); preferencesPage.setName("page.preferences"); preferencesPage.setTempDirectory(configuration.getTempDirectory()); pages.put(PageType.PAGE_PREFERENCES, preferencesPage); @@ -444,6 +461,7 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen * Shows a dialog with general preferences. */ private void optionsPreferences() { + ((PreferencesPage) pages.get(PageType.PAGE_PREFERENCES)).setConfigurationDirectory(configuration.getConfigurationDirectory()); showPage(PageType.PAGE_PREFERENCES); optionsPreferencesAction.setEnabled(false); wizard.setNextEnabled(true); @@ -617,6 +635,25 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen /** * {@inheritDoc} */ + public void nodeSelected(Node node) { + for (Component menuItem : nodeMenu.getMenuComponents()) { + if (menuItem instanceof JMenuItem) { + if (node.equals(((JMenuItem) menuItem).getClientProperty("Node"))) { + ((JMenuItem) menuItem).setSelected(true); + } + } + } + freenetInterface.setNode(node); + selectedNode = node; + } + + // + // INTERFACE ActionListener + // + + /** + * {@inheritDoc} + */ public void actionPerformed(ActionEvent e) { Object source = e.getSource(); if (source instanceof JRadioButtonMenuItem) {