X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fcore%2FProject.java;h=d250af1a437d6c40c360767d6d49140ac91720e3;hb=954a1a33392ef83e007b1045e2aaeac173361289;hp=1edb93337b87e765fe27d394104726ca3968f900;hpb=dc37f1e959fe36099d157e6d09b5790d4e06897c;p=jSite2.git diff --git a/src/net/pterodactylus/jsite/core/Project.java b/src/net/pterodactylus/jsite/core/Project.java index 1edb933..d250af1 100644 --- a/src/net/pterodactylus/jsite/core/Project.java +++ b/src/net/pterodactylus/jsite/core/Project.java @@ -27,7 +27,9 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import net.pterodactylus.jsite.util.IdGenerator; import net.pterodactylus.util.beans.AbstractBean; +import net.pterodactylus.util.number.Hex; /** * Container for project information. A Project is capable of notifying @@ -55,6 +57,9 @@ public class Project extends AbstractBean { /** Name of the “default file” property. */ public static final String PROPERTY_DEFAULT_FILE = "defaultFile"; + /** Name of the “node” property. */ + public static final String PROPERTY_NODE = "node"; + /** Internal ID. */ private String id; @@ -79,6 +84,9 @@ public class Project extends AbstractBean { /** The overrides. */ private final Map fileOverrides = new HashMap(); + /** The default node to insert to. */ + private Node node; + /** The current root project file. */ private ProjectFileImpl rootProjectFile; @@ -86,7 +94,7 @@ public class Project extends AbstractBean { * Creates a new project. */ public Project() { - /* do nothing. */ + id = Hex.toHex(IdGenerator.generateId()); } /** @@ -95,6 +103,7 @@ public class Project extends AbstractBean { * @param project */ Project(Project project) { + this(); this.name = project.name; this.description = project.description; this.publicKey = project.publicKey; @@ -369,6 +378,27 @@ public class Project extends AbstractBean { return currentProjectFile; } + /** + * Returns the default node to insert this project to. + * + * @return The node to insert this project to + */ + public Node getNode() { + return node; + } + + /** + * Sets the default node to insert this project to. + * + * @param node + * The node to insert this project to + */ + public void setNode(Node node) { + Node oldNode = this.node; + this.node = node; + fireIfPropertyChanged(PROPERTY_NODE, oldNode, node); + } + // // PRIVATE METHODS //