X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fproject%2FProjectManager.java;h=616ea239aec0347cc53bd24e24362c24ceb7518d;hb=c647e3c2d780c95c1668068a86b7dc29536adf8d;hp=e3529c68b02b10b8f5da37282fd03da761eeebd2;hpb=d3f2f9e164ee7a71aca4297742ca871274af1cc3;p=jSite2.git diff --git a/src/net/pterodactylus/jsite/project/ProjectManager.java b/src/net/pterodactylus/jsite/project/ProjectManager.java index e3529c6..616ea23 100644 --- a/src/net/pterodactylus/jsite/project/ProjectManager.java +++ b/src/net/pterodactylus/jsite/project/ProjectManager.java @@ -19,6 +19,8 @@ package net.pterodactylus.jsite.project; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; @@ -43,9 +45,8 @@ import net.pterodactylus.util.number.Hex; * things. * * @author David ‘Bombe’ Roden <bombe@freenetproject.org> - * @version $Id$ */ -public class ProjectManager { +public class ProjectManager implements PropertyChangeListener { /** Logger. */ private static final Logger logger = Logging.getLogger(ProjectManager.class.getName()); @@ -137,12 +138,15 @@ public class ProjectManager { String projectDescription = projectProperties.getProperty(projectPrefix + ".description"); String projectPrivateKey = projectProperties.getProperty(projectPrefix + ".privateKey"); String projectPublicKey = projectProperties.getProperty(projectPrefix + ".publicKey"); + String projectBasePath = projectProperties.getProperty(projectPrefix + ".basePath"); Project project = new Project(); project.setId(projectId); project.setName(projectName); project.setDescription(projectDescription); project.setPrivateKey(projectPrivateKey); project.setPublicKey(projectPublicKey); + project.setBasePath(projectBasePath); + project.rescanBasePath(); projects.add(project); logger.fine("loaded project “" + project.getName() + "”."); projectIndex++; @@ -171,6 +175,7 @@ public class ProjectManager { projectProperties.setProperty(projectPrefix + ".description", project.getDescription()); projectProperties.setProperty(projectPrefix + ".privateKey", project.getPrivateKey()); projectProperties.setProperty(projectPrefix + ".publicKey", project.getPublicKey()); + projectProperties.setProperty(projectPrefix + ".basePath", project.getBasePath()); projectIndex++; } File projectFile = new File(directoryFile, "projects.properties"); @@ -199,9 +204,33 @@ public class ProjectManager { byte[] idBytes = new byte[16]; random.nextBytes(idBytes); project.setId(Hex.toHex(idBytes)); + project.setName(""); + project.setDescription(""); project.setPrivateKey(keyPair[0]); project.setPublicKey(keyPair[1]); projects.add(project); + project.addPropertyChangeListener(this); + try { + save(); + } catch (IOException ioe1) { + /* ignore. */ + } return project; } + + // + // INTERFACE PropertyChangeListener + // + + /** + * {@inheritDoc} + */ + public void propertyChange(PropertyChangeEvent propertyChangeEvent) { + try { + save(); + } catch (IOException ioe1) { + /* ignore. */ + } + } + }