X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fde%2Ftodesbaum%2Fjsite%2Fmain%2FMain.java;h=517f48ae087b7dcb959d4f3bb540e797bb7be334;hb=fb43e5d4f43777802c972b84513584d68665fc8f;hp=993add24017b27adf5c8dac0957b0669bb6d37ad;hpb=8d8776dd2ace5b6bfc4b5265e1f300ec253a53f7;p=jSite.git diff --git a/src/de/todesbaum/jsite/main/Main.java b/src/de/todesbaum/jsite/main/Main.java index 993add2..517f48a 100644 --- a/src/de/todesbaum/jsite/main/Main.java +++ b/src/de/todesbaum/jsite/main/Main.java @@ -24,8 +24,10 @@ import java.awt.event.ActionListener; import java.io.File; import java.io.IOException; import java.text.MessageFormat; +import java.util.Arrays; import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Set; @@ -74,8 +76,11 @@ import de.todesbaum.util.swing.WizardListener; */ public class Main implements ActionListener, ListSelectionListener, WizardListener, NodeManagerListener, UpdateListener { + /** The logger. */ + 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; @@ -216,7 +221,6 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen /** * {@inheritDoc} */ - @Override @SuppressWarnings("synthetic-access") public void actionPerformed(ActionEvent actionEvent) { optionsPreferences(); @@ -336,6 +340,7 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen PreferencesPage preferencesPage = new PreferencesPage(wizard); preferencesPage.setName("page.preferences"); + preferencesPage.setTempDirectory(configuration.getTempDirectory()); pages.put(PageType.PAGE_PREFERENCES, preferencesPage); } @@ -368,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(); } @@ -441,6 +449,7 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen showPage(PageType.PAGE_PREFERENCES); optionsPreferencesAction.setEnabled(false); wizard.setNextEnabled(true); + wizard.setNextName(I18n.getMessage("jsite.wizard.next")); } /** @@ -522,20 +531,32 @@ public class Main implements ActionListener, ListSelectionListener, WizardListen return; } } - if (hasIndexFile && !project.getFileOption(indexFile).getMimeType().equals("text/html")) { + List allowedIndexContentTypes = Arrays.asList("text/html", "application/xhtml+xml"); + if (hasIndexFile && !allowedIndexContentTypes.contains(project.getFileOption(indexFile).getMimeType())) { 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(); + boolean insert = false; for (Entry fileOptionEntry : fileOptionEntries) { + String fileName = fileOptionEntry.getKey(); FileOption fileOption = fileOptionEntry.getValue(); - if (!fileOption.isInsert() && ((fileOption.getCustomKey().length() == 0) || "CHK@".equals(fileOption.getCustomKey()))) { + insert |= fileOption.isInsert() || fileOption.isInsertRedirect(); + if (fileName.equals(project.getIndexFile()) && !fileOption.isInsert() && !fileOption.isInsertRedirect()) { + JOptionPane.showMessageDialog(wizard, I18n.getMessage("jsite.project-files.index-not-inserted"), null, JOptionPane.ERROR_MESSAGE); + return; + } + if (!fileOption.isInsert() && fileOption.isInsertRedirect() && ((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); return; } } + if (!insert) { + JOptionPane.showMessageDialog(wizard, I18n.getMessage("jsite.project-files.no-files-to-insert"), null, JOptionPane.ERROR_MESSAGE); + return; + } boolean nodeRunning = false; try { nodeRunning = freenetInterface.isNodePresent(); @@ -548,11 +569,16 @@ 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); @@ -577,6 +603,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); @@ -636,6 +665,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); }