|
@@ -0,0 +1,296 @@
|
|
|
+package classes;
|
|
|
+
|
|
|
+import java.awt.Color;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
+
|
|
|
+import ui.model.idCounter;
|
|
|
+
|
|
|
+
|
|
|
+ * The abstract class "CpsObject" represents any possible object in the system
|
|
|
+ * (except Edges). The representation of any object contains following
|
|
|
+ * variables: see description of variables
|
|
|
+ *
|
|
|
+ * @author Gruppe14
|
|
|
+ *
|
|
|
+ */
|
|
|
+public abstract class CpsObject {
|
|
|
+
|
|
|
+ String objName;
|
|
|
+
|
|
|
+ String name;
|
|
|
+
|
|
|
+ int ID;
|
|
|
+
|
|
|
+ String image;
|
|
|
+
|
|
|
+ ArrayList<CpsEdge> connections;
|
|
|
+
|
|
|
+ Position position;
|
|
|
+
|
|
|
+ * Energy input and output of each object in the grid Where the Object is
|
|
|
+ * Stored
|
|
|
+ */
|
|
|
+ String sav;
|
|
|
+
|
|
|
+ Color BorderColor = Color.WHITE;
|
|
|
+
|
|
|
+ ArrayList<Integer> tags;
|
|
|
+
|
|
|
+ ArrayList<Integer> pseudoTags;
|
|
|
+
|
|
|
+ * Constructor for a CpsObejct with an unique ID
|
|
|
+ */
|
|
|
+ public CpsObject(String objName) {
|
|
|
+ setObjName(objName);
|
|
|
+ setName(objName);
|
|
|
+ setImage("/Images/Dummy_House.png");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * Constructor for a new CpsObject with an unique ID (This constructor
|
|
|
+ * correspond to the interaction between the Categories and Canvas)-->
|
|
|
+ * actually the "new" Object is a copy.
|
|
|
+ *
|
|
|
+ * @param obj
|
|
|
+ * Object to be copied
|
|
|
+ */
|
|
|
+ public CpsObject(CpsObject obj) {
|
|
|
+ setObjName(obj.getObjName());
|
|
|
+ setName(obj.getObjName());
|
|
|
+ setConnections(new ArrayList<CpsEdge>());
|
|
|
+ setPosition(new Position());
|
|
|
+ setID(idCounter.nextId());
|
|
|
+ setImage(obj.getImage());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * Getter for the type of the Object
|
|
|
+ *
|
|
|
+ * @return String
|
|
|
+ */
|
|
|
+ public String getObjName() {
|
|
|
+ return objName;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * Set the type of Object
|
|
|
+ *
|
|
|
+ * @param objName
|
|
|
+ * String
|
|
|
+ */
|
|
|
+ public void setObjName(String objName) {
|
|
|
+ this.objName = objName;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * Getter for the user-defined name (no unique)
|
|
|
+ *
|
|
|
+ * @return String
|
|
|
+ */
|
|
|
+ public String getName() {
|
|
|
+ return name;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * Set the name
|
|
|
+ *
|
|
|
+ * @param name
|
|
|
+ * String
|
|
|
+ */
|
|
|
+ public void setName(String name) {
|
|
|
+ this.name = name;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * Getter of the unique ID
|
|
|
+ *
|
|
|
+ * @return int
|
|
|
+ */
|
|
|
+ public int getID() {
|
|
|
+ return ID;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * Set the ID to a new one
|
|
|
+ *
|
|
|
+ * @param iD
|
|
|
+ * the iD to set
|
|
|
+ */
|
|
|
+ public void setID(int ID) {
|
|
|
+ this.ID = ID;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * Get the path of the image for the selected Object
|
|
|
+ *
|
|
|
+ * @return String
|
|
|
+ */
|
|
|
+ public String getImage() {
|
|
|
+ return image;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * Set the path of the image
|
|
|
+ *
|
|
|
+ * @param image
|
|
|
+ * the Image to set
|
|
|
+ */
|
|
|
+ public void setImage(String image) {
|
|
|
+ this.image = image;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * List of all existing connections
|
|
|
+ *
|
|
|
+ * @return the connections ArrayList
|
|
|
+ */
|
|
|
+ public ArrayList<CpsEdge> getConnections() {
|
|
|
+ return connections;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * Set a new ArrayList of connections (Update)
|
|
|
+ *
|
|
|
+ * @param arrayList
|
|
|
+ * the connections to set
|
|
|
+ */
|
|
|
+ public void setConnections(ArrayList<CpsEdge> arrayList) {
|
|
|
+ this.connections = arrayList;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * List of all existing connections
|
|
|
+ *
|
|
|
+ * @return the connections ArrayList
|
|
|
+ */
|
|
|
+ public ArrayList<CpsEdge> getConnectedTo() {
|
|
|
+ return connections;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * Add a new connection to the selected Object
|
|
|
+ *
|
|
|
+ * @param toConnect
|
|
|
+ * Edge
|
|
|
+ */
|
|
|
+ public void AddConnection(CpsEdge toConnect) {
|
|
|
+ connections.add(toConnect);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * Set the position of the Object in the canvas
|
|
|
+ *
|
|
|
+ * @param pos
|
|
|
+ * Coordinates
|
|
|
+ */
|
|
|
+ public void setPosition(Position pos) {
|
|
|
+ this.position = pos;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * Set the position of the Object in the canvas
|
|
|
+ *
|
|
|
+ * @param x
|
|
|
+ * X-Coord
|
|
|
+ * @param y
|
|
|
+ * Y-Coord
|
|
|
+ */
|
|
|
+ public void setPosition(int x, int y) {
|
|
|
+ setPosition(new Position(x, y));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * Get the actual position of the Object
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Position getPosition() {
|
|
|
+ return position;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * @return the stored
|
|
|
+ */
|
|
|
+ public String getSav() {
|
|
|
+ return sav;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * @param stored
|
|
|
+ * the stored to set
|
|
|
+ */
|
|
|
+ public void setSav(String sav) {
|
|
|
+ this.sav = sav;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * Get the color of the border
|
|
|
+ *
|
|
|
+ * @return the BorderColor
|
|
|
+ */
|
|
|
+ public Color getBorderColor() {
|
|
|
+ return BorderColor;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * Set the Border Color of this CpsObject
|
|
|
+ *
|
|
|
+ * @param the
|
|
|
+ * BorderColor
|
|
|
+ */
|
|
|
+ public void setBorderColor(Color c) {
|
|
|
+ this.BorderColor = c;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * Set the Color of the edges
|
|
|
+ *
|
|
|
+ * @param Color
|
|
|
+ * the Color to set
|
|
|
+ */
|
|
|
+ public void setConnections(Color color) {
|
|
|
+ this.BorderColor = color;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * For internal purpose (energy flow)
|
|
|
+ *
|
|
|
+ * @param tag
|
|
|
+ */
|
|
|
+ public void addTag(int tag) {
|
|
|
+ this.tags.add(tag);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * Get the actual tags
|
|
|
+ *
|
|
|
+ * @return ArrayList
|
|
|
+ */
|
|
|
+ public ArrayList<Integer> getTag() {
|
|
|
+ return tags;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * Rest the tags to Null
|
|
|
+ */
|
|
|
+ public void resetTags() {
|
|
|
+ this.tags = new ArrayList<Integer>();
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setTags(ArrayList<Integer> tags) {
|
|
|
+ this.tags = tags;
|
|
|
+ }
|
|
|
+
|
|
|
+ public ArrayList<Integer> getPseudoTags(){
|
|
|
+ return pseudoTags;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void addPseudoTag(int pseudo){
|
|
|
+ pseudoTags.add(pseudo);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setPseudoTags(ArrayList<Integer> tags){
|
|
|
+ pseudoTags = tags;
|
|
|
+ }
|
|
|
+}
|