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.HashMap;
import de.todesbaum.util.swing.WizardListener;
/**
- * @author <a href="mailto:droden@gmail.com">David Roden </a>
- * @version $Id$
+ * @author David ‘Bombe’ Roden <bombe@freenetproject.org>
*/
public class Main implements ActionListener, ListSelectionListener, WizardListener, NodeManagerListener {
PAGE_NODE_MANAGER, PAGE_PROJECTS, PAGE_PROJECT_FILES, PAGE_INSERT_PROJECT
}
- private static final Locale[] SUPPORTED_LOCALES = new Locale[] { Locale.ENGLISH, Locale.GERMAN, Locale.FRENCH };
+ private static final Locale[] SUPPORTED_LOCALES = new Locale[] { Locale.ENGLISH, Locale.GERMAN, Locale.FRENCH, Locale.ITALIAN, new Locale("pl") };
protected Map<Locale, Action> languageActions = new HashMap<Locale, Action>();
protected Action manageNodeAction;
protected Action aboutAction;
private Main() {
this(null);
}
-
+
private Main(String configFilename) {
if (configFilename != null) {
configuration = new Configuration(configFilename);
private void createActions() {
for (final Locale locale: SUPPORTED_LOCALES) {
- languageActions.put(locale, new AbstractAction(I18n.getMessage("jsite.menu.language." + locale.getLanguage())) {
+ languageActions.put(locale, new AbstractAction(I18n.getMessage("jsite.menu.language." + locale.getLanguage()), IconLoader.loadIcon("/flag-" + locale.getLanguage() + ".png")) {
public void actionPerformed(ActionEvent actionEvent) {
switchLanguage(locale);
JOptionPane.showMessageDialog(wizard, MessageFormat.format(I18n.getMessage("jsite.about.message"), Version.getVersion()), null, JOptionPane.INFORMATION_MESSAGE, jSiteIcon);
}
};
-
+
I18nContainer.getInstance().registerRunnable(new Runnable() {
public void run() {
manageNodeAction.putValue(Action.NAME, I18n.getMessage("jsite.menu.nodes.manage-nodes"));
final JMenu helpMenu = new JMenu(I18n.getMessage("jsite.menu.help"));
menuBar.add(helpMenu);
helpMenu.add(aboutAction);
-
+
I18nContainer.getInstance().registerRunnable(new Runnable() {
public void run() {
languageMenu.setText(I18n.getMessage("jsite.menu.languages"));
}
}
});
-
+
return menuBar;
}
if (JOptionPane.showConfirmDialog(wizard, I18n.getMessage("jsite.project-files.empty-index"), null, JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE) != JOptionPane.OK_OPTION) {
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;
+ }
}
- if (!project.getFileOption(project.getIndexFile()).getContainer().equals("")) {
+ 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 (!project.getFileOption(project.getIndexFile()).getMimeType().equals("text/html")) {
+ 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;
}
System.out.println("--debug\tenables some debug output");
System.out.println("--config-file <file>\tuse specified configuration file");
}
-
+
}