X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fde%2Ftodesbaum%2Fjsite%2Fmain%2FMain.java;h=09b6a5d1f1031e25d1eecf1e23e6b22a2e93ad46;hb=9ea58e546eed711db445591dddda1b0bd0f5a09a;hp=5ae18c06fec294a23a4667be04a3ecb7fdc5fe24;hpb=3aa1848bb1dcbf0df8bd2ccc88eacaafa5372253;p=jSite.git diff --git a/src/de/todesbaum/jsite/main/Main.java b/src/de/todesbaum/jsite/main/Main.java index 5ae18c0..09b6a5d 100644 --- a/src/de/todesbaum/jsite/main/Main.java +++ b/src/de/todesbaum/jsite/main/Main.java @@ -21,15 +21,12 @@ package de.todesbaum.jsite.main; 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; import java.util.HashMap; import java.util.Locale; import java.util.Map; -import java.util.Set; -import java.util.Map.Entry; import java.util.logging.ConsoleHandler; import java.util.logging.Handler; import java.util.logging.Level; @@ -48,12 +45,14 @@ import javax.swing.JRadioButtonMenuItem; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; -import de.todesbaum.jsite.application.FileOption; import de.todesbaum.jsite.application.Freenet7Interface; import de.todesbaum.jsite.application.Node; import de.todesbaum.jsite.application.Project; +import de.todesbaum.jsite.application.ProjectInserter; import de.todesbaum.jsite.application.UpdateChecker; import de.todesbaum.jsite.application.UpdateListener; +import de.todesbaum.jsite.application.ProjectInserter.CheckReport; +import de.todesbaum.jsite.application.ProjectInserter.Issue; import de.todesbaum.jsite.gui.NodeManagerListener; import de.todesbaum.jsite.gui.NodeManagerPage; import de.todesbaum.jsite.gui.PreferencesPage; @@ -75,11 +74,10 @@ 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, 8); + private static final Version VERSION = new Version(0, 9, 1); /** The configuration. */ private Configuration configuration; @@ -118,7 +116,7 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen } /** The supported locales. */ - private static final Locale[] SUPPORTED_LOCALES = new Locale[] { Locale.ENGLISH, Locale.GERMAN, Locale.FRENCH, Locale.ITALIAN, new Locale("pl") }; + private static final Locale[] SUPPORTED_LOCALES = new Locale[] { Locale.ENGLISH, Locale.GERMAN, Locale.FRENCH }; /** The actions that switch the language. */ private Map languageActions = new HashMap(); @@ -211,6 +209,7 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen @SuppressWarnings("synthetic-access") public void actionPerformed(ActionEvent actionEvent) { showPage(PageType.PAGE_NODE_MANAGER); + optionsPreferencesAction.setEnabled(true); wizard.setPreviousName(I18n.getMessage("jsite.wizard.previous")); wizard.setNextName(I18n.getMessage("jsite.wizard.next")); } @@ -220,7 +219,6 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen /** * {@inheritDoc} */ - @Override @SuppressWarnings("synthetic-access") public void actionPerformed(ActionEvent actionEvent) { optionsPreferences(); @@ -496,11 +494,11 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen ProjectPage projectPage = (ProjectPage) wizard.getPage(); Project project = projectPage.getSelectedProject(); if ((project.getLocalPath() == null) || (project.getLocalPath().trim().length() == 0)) { - JOptionPane.showMessageDialog(wizard, I18n.getMessage("jsite.project.warning.no-local-path"), null, JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(wizard, I18n.getMessage("jsite.warning.no-local-path"), null, JOptionPane.ERROR_MESSAGE); return; } if ((project.getPath() == null) || (project.getPath().trim().length() == 0)) { - JOptionPane.showMessageDialog(wizard, I18n.getMessage("jsite.project.warning.no-path"), null, JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(wizard, I18n.getMessage("jsite.warning.no-path"), null, JOptionPane.ERROR_MESSAGE); return; } ((ProjectFilesPage) pages.get(PageType.PAGE_PROJECT_FILES)).setProject(project); @@ -510,38 +508,16 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen ProjectPage projectPage = (ProjectPage) pages.get(PageType.PAGE_PROJECTS); Project project = projectPage.getSelectedProject(); if (selectedNode == null) { - JOptionPane.showMessageDialog(wizard, I18n.getMessage("jsite.project-files.no-node-selected"), null, JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(wizard, I18n.getMessage("jsite.error.no-node-selected"), null, JOptionPane.ERROR_MESSAGE); return; } - if ((project.getIndexFile() == null) || (project.getIndexFile().length() == 0)) { - if (JOptionPane.showConfirmDialog(wizard, I18n.getMessage("jsite.project-files.empty-index"), null, JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE) != JOptionPane.OK_OPTION) { + CheckReport checkReport = ProjectInserter.validateProject(project); + for (Issue issue : checkReport) { + if (issue.isFatal()) { + JOptionPane.showMessageDialog(wizard, MessageFormat.format(I18n.getMessage("jsite." + issue.getErrorKey()), (Object[]) issue.getParameters()), null, JOptionPane.ERROR_MESSAGE); return; } - } else { - File indexFile = new File(project.getLocalPath(), project.getIndexFile()); - if (!indexFile.exists()) { - JOptionPane.showMessageDialog(wizard, I18n.getMessage("jsite.project-files.index-missing"), null, JOptionPane.ERROR_MESSAGE); - return; - } - } - String indexFile = project.getIndexFile(); - boolean hasIndexFile = (indexFile != null); - if (hasIndexFile && !project.getFileOption(indexFile).getContainer().equals("")) { - if (JOptionPane.showConfirmDialog(wizard, I18n.getMessage("jsite.project-files.container-index"), null, JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE) != JOptionPane.OK_OPTION) { - return; - } - } - if (hasIndexFile && !project.getFileOption(indexFile).getMimeType().equals("text/html")) { - if (JOptionPane.showConfirmDialog(wizard, I18n.getMessage("jsite.project-files.index-not-html"), null, JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE) != JOptionPane.OK_OPTION) { - return; - } - } - Map fileOptions = project.getFileOptions(); - Set> fileOptionEntries = fileOptions.entrySet(); - for (Entry fileOptionEntry : fileOptionEntries) { - FileOption fileOption = fileOptionEntry.getValue(); - if (!fileOption.isInsert() && ((fileOption.getCustomKey().length() == 0) || "CHK@".equals(fileOption.getCustomKey()))) { - JOptionPane.showMessageDialog(wizard, MessageFormat.format(I18n.getMessage("jsite.project-files.no-custom-key"), fileOptionEntry.getKey()), null, JOptionPane.ERROR_MESSAGE); + if (JOptionPane.showConfirmDialog(wizard, MessageFormat.format(I18n.getMessage("jsite." + issue.getErrorKey()), (Object[]) issue.getParameters()), null, JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE) != JOptionPane.OK_OPTION) { return; } } @@ -552,7 +528,7 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen /* ignore. */ } if (!nodeRunning) { - JOptionPane.showMessageDialog(wizard, I18n.getMessage("jsite.project-files.no-node-running"), null, JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(wizard, I18n.getMessage("jsite.error.no-node-running"), null, JOptionPane.ERROR_MESSAGE); return; } configuration.save(); @@ -578,8 +554,9 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen */ public void wizardPreviousPressed(TWizard wizard) { String pageName = wizard.getPage().getName(); - if ("page.project".equals(pageName)) { + if ("page.project".equals(pageName) || "page.preferences".equals(pageName)) { showPage(PageType.PAGE_NODE_MANAGER); + optionsPreferencesAction.setEnabled(true); } else if ("page.project.files".equals(pageName)) { showPage(PageType.PAGE_PROJECTS); } else if ("page.project.insert".equals(pageName)) { @@ -591,6 +568,9 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen * {@inheritDoc} */ public void wizardQuitPressed(TWizard wizard) { + if (((ProjectPage) pages.get(PageType.PAGE_PROJECTS)).wasUriCopied() || ((ProjectInsertPage) pages.get(PageType.PAGE_INSERT_PROJECT)).wasUriCopied()) { + JOptionPane.showMessageDialog(wizard, I18n.getMessage("jsite.project.warning.use-clipboard-now")); + } if (JOptionPane.showConfirmDialog(wizard, I18n.getMessage("jsite.quit.question"), null, JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION) { if (saveConfiguration()) { System.exit(0); @@ -650,6 +630,7 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen * {@inheritDoc} */ public void foundUpdateData(Version foundVersion, long versionTimestamp) { + logger.log(Level.FINEST, "Found version {0} from {1,date}.", new Object[] { foundVersion, versionTimestamp }); if (foundVersion.compareTo(VERSION) > 0) { JOptionPane.showMessageDialog(wizard, MessageFormat.format(I18n.getMessage("jsite.update-checker.found-version.message"), foundVersion.toString(), new Date(versionTimestamp)), I18n.getMessage("jsite.update-checker.found-version.title"), JOptionPane.INFORMATION_MESSAGE); }