import net.pterodactylus.jsite.core.Core;
import net.pterodactylus.jsite.core.CoreListener;
import net.pterodactylus.jsite.core.Node;
+import net.pterodactylus.jsite.core.Project;
import net.pterodactylus.jsite.i18n.I18n;
import net.pterodactylus.jsite.i18n.gui.I18nAction;
import net.pterodactylus.util.io.Closer;
/**
- * TODO
+ * The Swing user interface.
*
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
* @version $Id$
/** The application core. */
private final Core core;
-
+
/** The configuration directory. */
- private String configDirectory;
+ private final String configDirectory;
/** The main window. */
private MainWindow mainWindow;
/** The “add project” action. */
private I18nAction addProjectAction;
+ /** The “clone project” action. */
+ private I18nAction cloneProjectAction;
+
+ /** The “delete project” action. */
+ private I18nAction deleteProjectAction;
+
/** The “about” dialog. */
private AboutDialog aboutDialog;
*
* @param core
* The core to operate on
+ * @param configDirectory
+ * The directory the configuration is stored in
*/
- public SwingInterface(Core core) {
+ public SwingInterface(Core core, String configDirectory) {
this.core = core;
- I18n.setLocale(Locale.ENGLISH); /* TODO - load config */
+ this.configDirectory = configDirectory;
+ I18n.setLocale(Locale.ENGLISH);
loadConfig();
if (beautify) {
System.setProperty("swing.aatext", "true");
}
/**
- * Sets the configuration directory.
+ * Returns the “clone project” action.
*
- * @param configDirectory
- * The directory the configuration is stored in
+ * @return The “clone project” action
*/
- public void setConfigDirectory(String configDirectory) {
- this.configDirectory = configDirectory;
+ I18nAction getCloneProjectAction() {
+ return cloneProjectAction;
+ }
+
+ /**
+ * Returns the “delete project” action.
+ *
+ * @return The “delete project” action
+ */
+ I18nAction getDeleteProjectAction() {
+ return deleteProjectAction;
}
//
addProject();
}
};
+ cloneProjectAction = new I18nAction("mainWindow.button.cloneProject") {
+
+ /**
+ * {@inheritDoc}
+ */
+ @SuppressWarnings("synthetic-access")
+ public void actionPerformed(ActionEvent actionEvent) {
+ cloneProject();
+ }
+ };
+ deleteProjectAction = new I18nAction("mainWindow.button.deleteProject") {
+
+ /**
+ * {@inheritDoc}
+ */
+ @SuppressWarnings("synthetic-access")
+ public void actionPerformed(ActionEvent actionEvent) {
+ deleteProject();
+ }
+ };
}
/**
* Adds a project.
*/
private void addProject() {
+ Project project = new Project();
+ project.setName("New Project");
+ project.setDescription("");
+ }
+
+ /**
+ * Clones a project.
+ */
+ private void cloneProject() {
+ }
+
+ /**
+ * Deletes a project.
+ */
+ private void deleteProject() {
}
//