package net.pterodactylus.jsite.gui;
import java.awt.event.ActionEvent;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
+import java.util.Properties;
import javax.swing.JOptionPane;
import net.pterodactylus.jsite.core.Node;
import net.pterodactylus.jsite.i18n.I18n;
import net.pterodactylus.jsite.i18n.gui.I18nAction;
+import net.pterodactylus.util.io.Closer;
/**
* TODO
/** The application core. */
private final Core core;
+
+ /** The configuration directory. */
+ private String configDirectory;
/** The main window. */
private MainWindow mainWindow;
return addProjectAction;
}
+ /**
+ * Sets the configuration directory.
+ *
+ * @param configDirectory
+ * The directory the configuration is stored in
+ */
+ public void setConfigDirectory(String configDirectory) {
+ this.configDirectory = configDirectory;
+ }
+
//
// ACTIONS
//
* Loads the configuration of the interface.
*/
private void loadConfig() {
- beautify = true;
+ /* initialize default stuff. */
+ beautify = false;
+ /* now read config. */
+ File configFile = new File(configDirectory, "swing-interface.properties");
+ if (!configFile.exists() || !configFile.canRead() || !configFile.isFile()) {
+ System.err.println("could not find “" + configFile.getAbsolutePath() + "”!");
+ return;
+ }
+ Properties configProperties = new Properties();
+ FileInputStream configInputStream = null;
+ try {
+ configInputStream = new FileInputStream(configFile);
+ configProperties.load(configInputStream);
+ } catch (IOException ioe1) {
+ System.err.println("could not load config, " + ioe1.getMessage());
+ } finally {
+ Closer.close(configInputStream);
+ }
+ if (configProperties.containsKey("beautify")) {
+ beautify = Boolean.valueOf(configProperties.getProperty("beautify"));
+ }
+ }
+
+ /**
+ * Saves the configuration.
+ */
+ private void saveConfig() {
+ File configDirectory = new File(this.configDirectory);
+ if (!configDirectory.exists()) {
+ if (!configDirectory.mkdirs()) {
+ System.err.println("could not create “" + this.configDirectory + "”!");
+ return;
+ }
+ }
+ if (!configDirectory.exists() || !configDirectory.isDirectory() || !configDirectory.canWrite()) {
+ System.err.println("can not access “" + this.configDirectory + "”!");
+ return;
+ }
+ File configFile = new File(configDirectory, "swing-interface.properties");
+ Properties configProperties = new Properties();
+ configProperties.setProperty("beautify", String.valueOf(beautify));
+ FileOutputStream configOutputStream = null;
+ try {
+ configOutputStream = new FileOutputStream(configFile);
+ configProperties.store(configOutputStream, "configuration of swing interface");
+ } catch (IOException ioe1) {
+ System.err.println("could not save config, " + ioe1.getMessage());
+ } finally {
+ Closer.close(configOutputStream);
+ }
}
/**
configurationDialog.setVisible(true);
if (!configurationDialog.wasCancelled()) {
beautify = configurationDialog.getBeautify();
+ saveConfig();
}
}
* Quits jSite.
*/
private void quit() {
+ saveConfig();
System.exit(0);
}