Browse Source

Merge branch 'Ohne_Drag_and_Drop' of https://git.tk.informatik.tu-darmstadt.de/carlos.garcia/praktikum-holons into Ohne_Drag_and_Drop

Edgardo Palza 8 years ago
parent
commit
e7347373ab

+ 28 - 10
src/ui/controller/CanvasController.java

@@ -11,9 +11,11 @@ import ui.model.Model;
 public class CanvasController {
 public class CanvasController {
 
 
 	private Model MODEL;
 	private Model MODEL;
+	private SearchController sC;
 
 
-	public CanvasController(Model model) {
+	public CanvasController(Model model, SearchController sC) {
 		this.MODEL = model;
 		this.MODEL = model;
+		this.sC = sC;
 	}
 	}
 
 
 	/**
 	/**
@@ -22,15 +24,31 @@ public class CanvasController {
 	 * @param object
 	 * @param object
 	 *            CpsObject to be added.
 	 *            CpsObject to be added.
 	 */
 	 */
-	public void addObjectIntoCanvas(CpsObject object) {
-		String objName = object.getObjName();
-		object.setSav("Canvas");
-		object.setConnections(new ArrayList<>());
+	public void addObject(CpsObject object) {
+		// String objName = object.getObjName();
+		// object.setSav("Canvas");
+		// object.setConnections(new ArrayList<>());
+		int i = 0;
+		while (sC.searchHolonObject(object.getName(), MODEL.getObjectsOnCanvas()) != null) {
+			if (object.getObjName().contains("_"))
+				object.setObjName(object.getObjName().substring(0, object.getObjName().indexOf('_')));
+			String name = object.getObjName() + "_" + i;
+			object.setObjName(name);
+			object.setName(name);
+			i++;
+		}
+
 		MODEL.getObjectsOnCanvas().add(object);
 		MODEL.getObjectsOnCanvas().add(object);
 		notifyObjListeners();
 		notifyObjListeners();
-		System.out.println("Added: " + objName);
+		// System.out.println("Added: " + objName);
+	}
+
+	public void addNewObject(CpsObject object) {
+		object.setSav("Canvas");
+		object.setConnections(new ArrayList<>());
+		addObject(object);
 	}
 	}
-	
+
 	public void addObjectListener(ObjectListener objLis) {
 	public void addObjectListener(ObjectListener objLis) {
 		MODEL.getObjectListeners().add(objLis);
 		MODEL.getObjectListeners().add(objLis);
 	}
 	}
@@ -43,7 +61,7 @@ public class CanvasController {
 			l.onChange(MODEL.getObjectsOnCanvas());
 			l.onChange(MODEL.getObjectsOnCanvas());
 		}
 		}
 	}
 	}
-	
+
 	/**
 	/**
 	 * Deletes an CpsObject on the Canvas and its connections
 	 * Deletes an CpsObject on the Canvas and its connections
 	 * 
 	 * 
@@ -62,7 +80,7 @@ public class CanvasController {
 		}
 		}
 		MODEL.getObjectsOnCanvas().remove(obj);
 		MODEL.getObjectsOnCanvas().remove(obj);
 	}
 	}
-	
+
 	/**
 	/**
 	 * @param objectsOnCanvas
 	 * @param objectsOnCanvas
 	 *            the objectsOnCanvas to set
 	 *            the objectsOnCanvas to set
@@ -70,7 +88,7 @@ public class CanvasController {
 	public void addEdgeOnCanvas(CpsEdge edge) {
 	public void addEdgeOnCanvas(CpsEdge edge) {
 		MODEL.getEdgesOnCanvas().add(edge);
 		MODEL.getEdgesOnCanvas().add(edge);
 	}
 	}
-	
+
 	/**
 	/**
 	 * @param edgesOnCanvas
 	 * @param edgesOnCanvas
 	 *            the edge to remove
 	 *            the edge to remove

+ 59 - 101
src/ui/controller/CategoryController.java

@@ -14,9 +14,11 @@ import ui.model.Model;
 
 
 public class CategoryController {
 public class CategoryController {
 	private Model MODEL;
 	private Model MODEL;
+	private SearchController sC;
 
 
-	public CategoryController(Model model) {
+	public CategoryController(Model model, SearchController searchController) {
 		this.MODEL = model;
 		this.MODEL = model;
+		this.sC = searchController;
 		initCategories();
 		initCategories();
 	}
 	}
 
 
@@ -25,16 +27,15 @@ public class CategoryController {
 	 */
 	 */
 	public void initCategories() {
 	public void initCategories() {
 
 
-		
 		addNewCategory("Energy");
 		addNewCategory("Energy");
 		addNewCategory("Building");
 		addNewCategory("Building");
 		addNewCategory("Component");
 		addNewCategory("Component");
-		
-		addNewHolonObject(searchCatNode("Energy"), "Power Plant", new ArrayList<>(), "/Images/power-plant.png");
-		addNewHolonObject(searchCatNode("Building"), "House", new ArrayList<>(), "/Images/home-2.png");
-		addNewHolonTransformer(searchCatNode("Component"), "Transformer", "/Images/transformer-1.png");
-		addNewHolonSwitch(searchCatNode("Component"), "Switch", "/Images/switch-off.png");
-		
+
+		addNewHolonObject(sC.searchCategory("Energy"), "Power Plant", new ArrayList<>(), "/Images/power-plant.png");
+		addNewHolonObject(sC.searchCategory("Building"), "House", new ArrayList<>(), "/Images/home-2.png");
+		addNewHolonTransformer(sC.searchCategory("Component"), "Transformer", "/Images/transformer-1.png");
+		addNewHolonSwitch(sC.searchCategory("Component"), "Switch", "/Images/switch-off.png");
+
 	}
 	}
 
 
 	/**
 	/**
@@ -44,15 +45,22 @@ public class CategoryController {
 	 * @param toAdd
 	 * @param toAdd
 	 *            neue Kategorie
 	 *            neue Kategorie
 	 */
 	 */
-	public void addCategory(Category toAdd) {
-		int number = 0;
-		String name = toAdd.getName();
-		while (containsInList(MODEL.getCategories(), toAdd)) {
-			number++;
-			toAdd.setName(name + "_" + number);
+	public void addCategory(Category category) {
+		// int number = 0;
+		// String name = toAdd.getName();
+		// while (sC.containsInList(MODEL.getCategories(), toAdd)) {
+		// number++;
+		// toAdd.setName(name + "_" + number);
+		// }
+		int i = 0;
+		while (sC.searchCategory(category.getName()) != null) {
+			if (category.getName().contains("_"))
+				category.setName(category.getName().substring(0, category.getName().indexOf('_')));
+			category.setName(category.getName() + "_" + i);
+			i++;
 		}
 		}
-		;
-		MODEL.getCategories().add(toAdd);
+
+		MODEL.getCategories().add(category);
 		notifyCatListeners();
 		notifyCatListeners();
 	}
 	}
 
 
@@ -68,39 +76,41 @@ public class CategoryController {
 	}
 	}
 
 
 	/**
 	/**
-	 * deletes category with given name
-	 * 
-	 * @param catName
-	 * @return true if successfull, otherwise false
+	 * remove a Category from Model
 	 */
 	 */
-	public boolean deleteCategory(String catName) {
-		int position = getPositionInList(MODEL.getCategories(), searchCatNode(catName));
-		if (position != -1) {
-			deleteCategoryAt(position);
-			return true;
-		} else
-			return false;
-
+	public void removeCategory(Category c) {
+		MODEL.getCategories().remove(c);
+		notifyCatListeners();
 	}
 	}
 
 
 	/**
 	/**
-	 * deletes a Category at given position
+	 * delete a given Category
+	 * 
+	 * @param category
 	 */
 	 */
-	public void deleteCategoryAt(int idx) {
-		MODEL.getCategories().remove(idx);
-		notifyCatListeners();
+	public void deleteCategory(String category) {
+		removeCategory(sC.searchCategory(category));
 	}
 	}
 
 
 	/**
 	/**
 	 * Add Object into a Category
 	 * Add Object into a Category
 	 * 
 	 * 
-	 * @param cat
+	 * @param category
 	 *            Category
 	 *            Category
-	 * @param obj
+	 * @param object
 	 *            Object
 	 *            Object
 	 */
 	 */
-	public void addObject(Category cat, CpsObject obj) {
-		cat.getObjects().add(obj);
+	public void addObject(Category category, CpsObject object) {
+		int i = 0;
+		while (sC.searchHolonObject(object.getObjName(), category.getObjects()) != null) {
+			if (object.getObjName().contains("_"))
+				object.setObjName(object.getObjName().substring(0, object.getObjName().indexOf('_')));
+			String name = object.getObjName() + "_" + i;
+			object.setObjName(name);
+			object.setName(name);
+			i++;
+		}
+		category.getObjects().add(object);
 		notifyCatListeners();
 		notifyCatListeners();
 	}
 	}
 
 
@@ -112,12 +122,12 @@ public class CategoryController {
 	 * @param obj
 	 * @param obj
 	 *            New Object Name
 	 *            New Object Name
 	 */
 	 */
-	public void addNewHolonObject(Category cat, String objName, ArrayList<HolonElement> elements, String image) {
-		HolonObject object = new HolonObject(objName);
-		object.setImage(image);
-		object.setElements(elements);
-		object.setSav(cat.getName());
-		addObject(cat, object);
+	public void addNewHolonObject(Category category, String object, ArrayList<HolonElement> elements, String image) {
+		HolonObject obj = new HolonObject(object);
+		obj.setImage(image);
+		obj.setElements(elements);
+		obj.setSav(category.getName());
+		addObject(category, obj);
 	}
 	}
 
 
 	/**
 	/**
@@ -151,23 +161,14 @@ public class CategoryController {
 		addObject(cat, holonSwitch);
 		addObject(cat, holonSwitch);
 	}
 	}
 
 
-	/**
-	 * deletes given Object in given Category
-	 * 
-	 * @param toDelete
-	 * @param deleteIn
-	 */
-	public void deleteObjectInCat(String toDelete, String deleteIn) {
-		Category cat = searchCatNode(deleteIn);
-		print(cat.getObjects());
-		for (int i = 0; i < cat.getObjects().size(); i++) {
-			if (cat.getObjects().get(i).getCompareName().equals(toDelete)) {
-				cat.getObjects().remove(i);
-				cat.getObjects();
-				notifyCatListeners();
-			}
-		}
+	public void removeObject(Category category, CpsObject cps) {
+		category.getObjects().remove(cps);
+		notifyCatListeners();
+	}
 
 
+	public void deleteObject(String category, String obj) {
+		Category cat = sC.searchCategory(category);
+		removeObject(cat, sC.searchHolonObject(obj, cat.getObjects()));
 	}
 	}
 
 
 	public void print(ArrayList<CpsObject> iterate) {
 	public void print(ArrayList<CpsObject> iterate) {
@@ -193,47 +194,4 @@ public class CategoryController {
 		}
 		}
 	}
 	}
 
 
-	/**
-	 * search for category
-	 * 
-	 * @param name
-	 * @return
-	 */
-	public Category searchCatNode(String name) {
-		Category query = null;
-
-		for (Category cat : MODEL.getCategories()) {
-			if (cat.getName().equals(name)) {
-				query = cat;
-				break;
-			}
-		}
-		return query;
-	}
-
-	/**
-	 * gets the position of an object in the array
-	 * 
-	 * @param arrayList
-	 * @param toSearch
-	 * @return -1 if object is not in the array, otherwise the index
-	 */
-	public int getPositionInList(ArrayList<? extends ComparableObject> arrayList, ComparableObject toSearch) {
-		for (int i = 0; i < arrayList.size(); i++) {
-			if (arrayList.get(i).getCompareName() == toSearch.getCompareName()) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	public boolean containsInList(ArrayList<? extends ComparableObject> arrayList, ComparableObject toSearch) {
-		for (ComparableObject obj : arrayList) {
-			if (obj.getCompareName().equals(toSearch.getCompareName())) {
-				return true;
-			}
-		}
-		return false;
-	}
-
 }
 }

+ 38 - 42
src/ui/controller/Control.java

@@ -21,6 +21,7 @@ public class Control {
 
 
 	private ActionListener actionListener;
 	private ActionListener actionListener;
 
 
+	private final SearchController searchController;
 	private final CategoryController categoryController;
 	private final CategoryController categoryController;
 	private final ObjectController objectController;
 	private final ObjectController objectController;
 	private final CanvasController canvasController;
 	private final CanvasController canvasController;
@@ -30,46 +31,45 @@ public class Control {
 
 
 	public Control(Model model) {
 	public Control(Model model) {
 		this.MODEL = model;
 		this.MODEL = model;
-		this.categoryController = new CategoryController(MODEL);
-		this.objectController = new ObjectController(MODEL);
-		this.canvasController = new CanvasController(MODEL);
+
+		this.searchController = new SearchController(MODEL);
+		this.categoryController = new CategoryController(MODEL, searchController);
+		this.objectController = new ObjectController(MODEL, searchController);
+		this.canvasController = new CanvasController(MODEL, searchController);
 		this.globalController = new GlobalController(MODEL);
 		this.globalController = new GlobalController(MODEL);
 		this.storeController = new StoreController(MODEL);
 		this.storeController = new StoreController(MODEL);
-		this.loadController = new LoadController(MODEL, categoryController, canvasController, objectController);
-		
+		this.loadController = new LoadController(MODEL, categoryController, canvasController, objectController,
+				searchController);
+
 	}
 	}
 
 
 	/* Operations for Categories and Objects */
 	/* Operations for Categories and Objects */
-	public void addCategory(String catName) {
-		categoryController.addNewCategory(catName);
+	public void addCategory(String cat) {
+		categoryController.addNewCategory(cat);
 	}
 	}
 
 
-	public void addObject(Category cat, String objType, ArrayList<HolonElement> elements, String image) {
-		categoryController.addNewHolonObject(cat, objType, elements, image);
+	public void addObject(Category cat, String obj, ArrayList<HolonElement> ele, String img) {
+		categoryController.addNewHolonObject(cat, obj, ele, img);
 	}
 	}
 
 
-	// public void addObjectCategory(Category cat, HolonObject object) {
-	// categoryController.addObject(cat, object);
-	// }
-
-	public void addTransformer(Category cat, String objName) {
-		categoryController.addNewHolonTransformer(cat, objName, "/Images/transformer-1.png");
+	public void addTransformer(Category cat, String obj) {
+		categoryController.addNewHolonTransformer(cat, obj, "/Images/transformer-1.png");
 	}
 	}
 
 
-	public void addSwitch(Category cat, String objName) {
-		categoryController.addNewHolonSwitch(cat, objName, "/Images/switch-off.png");
+	public void addSwitch(Category cat, String obj) {
+		categoryController.addNewHolonSwitch(cat, obj, "/Images/switch-off.png");
 	}
 	}
 
 
-	public Category searchCategory(String name) {
-		return categoryController.searchCatNode(name);
+	public Category searchCategory(String cat) {
+		return searchController.searchCategory(cat);
 	}
 	}
 
 
-	public void deleteCategory(String catName) {
-		categoryController.deleteCategory(catName);
+	public void deleteCategory(String cat) {
+		categoryController.deleteCategory(cat);
 	}
 	}
 
 
-	public void delObjectCategory(String toDelete, String deleteIn) {
-		categoryController.deleteObjectInCat(toDelete, deleteIn);
+	public void delObjectCategory(String cat, String obj) {
+		categoryController.deleteObject(cat, obj);
 	}
 	}
 
 
 	/* Operations for Canvas */
 	/* Operations for Canvas */
@@ -81,13 +81,13 @@ public class Control {
 	public void removeEdgesOnCanvas(CpsEdge edge) {
 	public void removeEdgesOnCanvas(CpsEdge edge) {
 		canvasController.removeEdgesOnCanvas(edge);
 		canvasController.removeEdgesOnCanvas(edge);
 	}
 	}
-	
-	public void setSelecteEdge(CpsEdge edge){
+
+	public void setSelecteEdge(CpsEdge edge) {
 		MODEL.setSelectedEdge(edge);
 		MODEL.setSelectedEdge(edge);
 	}
 	}
 
 
 	public void addObjectCanvas(CpsObject object) {
 	public void addObjectCanvas(CpsObject object) {
-		canvasController.addObjectIntoCanvas(object);
+		canvasController.addNewObject(object);
 	}
 	}
 
 
 	public void setSelectedObjectID(int id) {
 	public void setSelectedObjectID(int id) {
@@ -99,8 +99,8 @@ public class Control {
 	}
 	}
 
 
 	/* Operations for Objects and Elements */
 	/* Operations for Objects and Elements */
-	public void addElementCanvasObject(int ID, String eleName, int amount, float energy) {
-		objectController.addNewElementIntoCanvasObject(ID, eleName, amount, energy);
+	public void addElementCanvasObject(int ID, String ele, int amount, float energy) {
+		objectController.addNewElementIntoCanvasObject(ID, ele, amount, energy);
 	}
 	}
 
 
 	public void addElementCategoryObject(String catName, String objName, String eleName, int amount, float energy) {
 	public void addElementCategoryObject(String catName, String objName, String eleName, int amount, float energy) {
@@ -110,22 +110,17 @@ public class Control {
 	public void deleteElementCanvas(int id, String element) {
 	public void deleteElementCanvas(int id, String element) {
 		objectController.deleteElementInCanvas(id, element);
 		objectController.deleteElementInCanvas(id, element);
 	}
 	}
+
 	public void deleteElementCanvas(HolonObject obj, HolonElement ele) {
 	public void deleteElementCanvas(HolonObject obj, HolonElement ele) {
 		objectController.deleteElement(obj, ele);
 		objectController.deleteElement(obj, ele);
 	}
 	}
 
 
-	public CpsObject searchByID(int ID){
-		return objectController.searchByID(ID);
+	public CpsObject searchByID(int ID) {
+		return searchController.searchByID(ID);
 	}
 	}
-	
-	public CpsObject searchObjInCat(String objName, String catName){
-		Category cat = searchCategory(catName);
-		for(CpsObject hl : cat.getObjects()){
-			if(hl.getCompareName().equals(objName)){
-				return hl;
-			}
-		}
-		return null;
+
+	public CpsObject searchObject(String category, String object) {
+		return searchController.searchHolonObject(object, searchController.searchCategory(category).getObjects());
 	}
 	}
 
 
 	/* Global Operations */
 	/* Global Operations */
@@ -140,19 +135,20 @@ public class Control {
 	public void setScale(int s) {
 	public void setScale(int s) {
 		globalController.setScale(s);
 		globalController.setScale(s);
 	}
 	}
-	
+
 	public void setCurIteration(int cur_it) {
 	public void setCurIteration(int cur_it) {
 		globalController.setCurIteration(cur_it);
 		globalController.setCurIteration(cur_it);
 	}
 	}
-	
+
 	/* Operations for Loading and Storing */
 	/* Operations for Loading and Storing */
 	public void saveFile(String path) throws IOException {
 	public void saveFile(String path) throws IOException {
 		storeController.writeJSONFile(path);
 		storeController.writeJSONFile(path);
 	}
 	}
-	
+
 	public void loadFile(String path) throws IOException {
 	public void loadFile(String path) throws IOException {
 		loadController.readJSON(path);
 		loadController.readJSON(path);
 	}
 	}
+
 	////////// etc
 	////////// etc
 	public void initListener(CategoryListener catLis) {
 	public void initListener(CategoryListener catLis) {
 		categoryController.addCategoryListener(catLis);
 		categoryController.addCategoryListener(catLis);

+ 48 - 42
src/ui/controller/LoadController.java

@@ -27,12 +27,14 @@ public class LoadController {
 	private CategoryController cgC;
 	private CategoryController cgC;
 	private CanvasController cvsC;
 	private CanvasController cvsC;
 	private ObjectController objC;
 	private ObjectController objC;
+	private SearchController sC;
 
 
-	public LoadController(Model model, CategoryController cg, CanvasController cvs, ObjectController obj) {
+	public LoadController(Model model, CategoryController cg, CanvasController cvs, ObjectController obj, SearchController sC) {
 		this.MODEL = model;
 		this.MODEL = model;
 		this.cgC = cg;
 		this.cgC = cg;
 		this.cvsC = cvs;
 		this.cvsC = cvs;
 		this.objC = obj;
 		this.objC = obj;
+		this.sC = sC;
 
 
 	}
 	}
 
 
@@ -118,7 +120,7 @@ public class LoadController {
 		Iterator<Object> i = arr.iterator();
 		Iterator<Object> i = arr.iterator();
 
 
 		while (i.hasNext()) {
 		while (i.hasNext()) {
-			cgC.addNewCategory(i.next().toString());
+			cgC.addNewCategory(next(i));
 		}
 		}
 	}
 	}
 
 
@@ -130,16 +132,14 @@ public class LoadController {
 	public void readCategoryObject(JSONArray arr) {
 	public void readCategoryObject(JSONArray arr) {
 		Iterator<Object> i = arr.iterator();
 		Iterator<Object> i = arr.iterator();
 
 
-		String type = i.next().toString();
+		String type = next(i);
 
 
 		if (type.equals("HolonObject")) {
 		if (type.equals("HolonObject")) {
-			cgC.addNewHolonObject(cgC.searchCatNode(i.next().toString()), i.next().toString(), new ArrayList<>(),
-					i.next().toString());
+			cgC.addNewHolonObject(sC.searchCategory(next(i)), next(i), new ArrayList<>(), next(i));
 		} else if (type.equals("HolonTransformer")) {
 		} else if (type.equals("HolonTransformer")) {
-			cgC.addNewHolonTransformer(cgC.searchCatNode(i.next().toString()), i.next().toString(),
-					i.next().toString());
+			cgC.addNewHolonTransformer(sC.searchCategory(next(i)), next(i), next(i));
 		} else if (type.equals("HolonSwitch")) {
 		} else if (type.equals("HolonSwitch")) {
-			cgC.addNewHolonSwitch(cgC.searchCatNode(i.next().toString()), i.next().toString(), i.next().toString());
+			cgC.addNewHolonSwitch(sC.searchCategory(next(i)), next(i), next(i));
 		}
 		}
 
 
 	}
 	}
@@ -153,24 +153,24 @@ public class LoadController {
 		Iterator<Object> i = arr.iterator();
 		Iterator<Object> i = arr.iterator();
 		CpsObject cps = null;
 		CpsObject cps = null;
 
 
-		String type = i.next().toString();
+		String type = next(i);
 
 
 		if (type.equals("HolonObject")) {
 		if (type.equals("HolonObject")) {
-			cps = new HolonObject(i.next().toString());
+			cps = new HolonObject(next(i));
 		} else if (type.equals("HolonTransformer")) {
 		} else if (type.equals("HolonTransformer")) {
-			cps = new HolonTransformer(i.next().toString());
+			cps = new HolonTransformer(next(i));
 		} else if (type.equals("HolonSwitch")) {
 		} else if (type.equals("HolonSwitch")) {
-			cps = new HolonSwitch(i.next().toString());
+			cps = new HolonSwitch(next(i));
 		} else if (type.equals("CpsNode")) {
 		} else if (type.equals("CpsNode")) {
-			cps = new CpsNode(i.next().toString());
+			cps = new CpsNode(next(i));
 		}
 		}
 
 
-		cps.setName(i.next().toString());
-		cps.setID(Integer.parseInt(i.next().toString()));
-		cps.setImage(i.next().toString());
-		cps.setPosition(Integer.parseInt(i.next().toString()), Integer.parseInt(i.next().toString()));
+		cps.setName(next(i));
+		cps.setID(Integer.parseInt(next(i)));
+		cps.setImage(next(i));
+		cps.setPosition(Integer.parseInt(next(i)), Integer.parseInt(next(i)));
 
 
-		cvsC.addObjectIntoCanvas(cps);
+		cvsC.addNewObject(cps);
 	}
 	}
 
 
 	/**
 	/**
@@ -181,19 +181,16 @@ public class LoadController {
 	public void readElement(JSONArray arr) {
 	public void readElement(JSONArray arr) {
 		Iterator<Object> i = arr.iterator();
 		Iterator<Object> i = arr.iterator();
 
 
-		String sav = i.next().toString();
-//		int id = Integer.parseInt(i.next().toString());
-//
-//		HolonElement ele = new HolonElement(i.next().toString(), Integer.parseInt(i.next().toString()),
-//				Float.parseFloat(i.next().toString()));
-//		ele.setActive(i.next().);
+		String sav = next(i);
+		String obj = next(i);
+
+		HolonElement ele = new HolonElement(next(i), Integer.parseInt(next(i)), Float.parseFloat(next(i)));
 
 
 		if (sav.equals("Canvas")) {
 		if (sav.equals("Canvas")) {
-			objC.addNewElementIntoCanvasObject(Integer.parseInt(i.next().toString()), i.next().toString(),
-					Integer.parseInt(i.next().toString()), Float.parseFloat(i.next().toString()));
+			ele.setActive(compare(Integer.parseInt(next(i))));
+			objC.addElementIntoCanvasObject((HolonObject) sC.searchByID(Integer.parseInt(obj)), ele);
 		} else
 		} else
-			objC.addNewElementIntoCategoryObject(sav, i.next().toString(), i.next().toString(),
-					Integer.parseInt(i.next().toString()), Float.parseFloat(i.next().toString()));
+			objC.addElementIntoCategoryObject(sav, obj, ele);
 	}
 	}
 
 
 	/**
 	/**
@@ -203,10 +200,10 @@ public class LoadController {
 	public void readEdge(JSONArray arr) {
 	public void readEdge(JSONArray arr) {
 		Iterator<Object> i = arr.iterator();
 		Iterator<Object> i = arr.iterator();
 
 
-		CpsEdge edge = new CpsEdge(objC.searchByID(Integer.parseInt(i.next().toString())),
-				objC.searchByID(Integer.parseInt(i.next().toString())));
-		edge.setCapacity(Float.parseFloat(i.next().toString()));
-		edge.setFlow(Float.parseFloat(i.next().toString()));
+		CpsEdge edge = new CpsEdge(sC.searchByID(Integer.parseInt(next(i))),
+				sC.searchByID(Integer.parseInt(next(i))));
+		edge.setCapacity(Float.parseFloat(next(i)));
+		edge.setFlow(Float.parseFloat(next(i)));
 
 
 		cvsC.addEdgeOnCanvas(edge);
 		cvsC.addEdgeOnCanvas(edge);
 	}
 	}
@@ -214,24 +211,33 @@ public class LoadController {
 	public void readElementGraph(JSONArray arr) {
 	public void readElementGraph(JSONArray arr) {
 		Iterator<Object> i = arr.iterator();
 		Iterator<Object> i = arr.iterator();
 
 
-		String sav = i.next().toString();
+		String sav = next(i);
 		HolonElement ele;
 		HolonElement ele;
 
 
 		if (sav.equals("Canvas")) {
 		if (sav.equals("Canvas")) {
-			ele = objC.searchHolonElement((HolonObject) objC.searchByID(Integer.parseInt(i.next().toString())),
-					i.next().toString());
+			ele = sC.searchHolonElement((HolonObject) sC.searchByID(Integer.parseInt(next(i))), next(i));
 			while (i.hasNext())
 			while (i.hasNext())
-				ele.getGraphPoints()
-						.add(new Point(Integer.parseInt(i.next().toString()), Integer.parseInt(i.next().toString())));
-			System.out.println(ele.getGraphPoints().size());
+				ele.getGraphPoints().add(new Point(Integer.parseInt(next(i)), Integer.parseInt(next(i))));
 		} else {
 		} else {
-			ele = objC.searchHolonElement(objC.searchHolonObject(i.next().toString(),
-					objC.searchCategory(sav, MODEL.getCategories()).getObjects()), i.next().toString());
+			ele = sC.searchHolonElement((HolonObject) sC.searchHolonObject(next(i), sC.searchCategory(sav).getObjects()),
+					next(i));
 			while (i.hasNext())
 			while (i.hasNext())
-				ele.getGraphPoints()
-						.add(new Point(Integer.parseInt(i.next().toString()), Integer.parseInt(i.next().toString())));
+				ele.getGraphPoints().add(new Point(Integer.parseInt(next(i)), Integer.parseInt(next(i))));
 		}
 		}
 
 
 	}
 	}
 
 
+	/**
+	 * 
+	 * @param i
+	 * @return
+	 */
+	public String next(Iterator<Object> i) {
+		return i.next().toString();
+	}
+
+	public boolean compare(int x) {
+		return x == 1 ? true : false;
+	}
+
 }
 }

+ 20 - 85
src/ui/controller/ObjectController.java

@@ -11,9 +11,11 @@ import ui.model.Model;
 public class ObjectController {
 public class ObjectController {
 
 
 	private Model MODEL;
 	private Model MODEL;
+	private SearchController sC;
 
 
-	public ObjectController(Model model) {
+	public ObjectController(Model model, SearchController sC) {
 		this.MODEL = model;
 		this.MODEL = model;
+		this.sC = sC;
 		initHolonElements();
 		initHolonElements();
 	}
 	}
 
 
@@ -43,8 +45,6 @@ public class ObjectController {
 	 * @param type
 	 * @param type
 	 */
 	 */
 	public void addElementIntoCanvasObject(HolonObject object, HolonElement element) {
 	public void addElementIntoCanvasObject(HolonObject object, HolonElement element) {
-		element.setSav("Canvas");
-		element.setObj(object.getObjName());
 		addElement(object, element);
 		addElement(object, element);
 	}
 	}
 
 
@@ -57,8 +57,11 @@ public class ObjectController {
 	 * @param energy
 	 * @param energy
 	 * @param type
 	 * @param type
 	 */
 	 */
-	public void addNewElementIntoCanvasObject(int id, String eleName, int amount, float energy) {
-		addElementIntoCanvasObject((HolonObject) searchByID(id), new HolonElement(eleName, amount, energy));
+	public void addNewElementIntoCanvasObject(int id, String element, int amount, float energy) {
+		HolonElement ele = new HolonElement(element, amount, energy);
+		ele.setSav("Canvas");
+		ele.setObj(sC.searchByID(id).getObjName());
+		addElementIntoCanvasObject((HolonObject) sC.searchByID(id), ele);
 	}
 	}
 
 
 	/**
 	/**
@@ -66,21 +69,9 @@ public class ObjectController {
 	 * 
 	 * 
 	 * @param object
 	 * @param object
 	 * @param element
 	 * @param element
-	 * @param type
 	 */
 	 */
 	public void addElementIntoCategoryObject(String category, String object, HolonElement element) {
 	public void addElementIntoCategoryObject(String category, String object, HolonElement element) {
-		Category cat = null;
-
-		for (Category cats : MODEL.getCategories()) {
-			if (cats.getName().equals(category)) {
-				cat = cats;
-				break;
-			}
-		}
-		element.setSav(cat.getName());
-		element.setObj(object);
-		
-		addElement(searchHolonObject(object, cat.getObjects()), element);
+		addElement((HolonObject) sC.searchHolonObject(object, sC.searchCategory(category).getObjects()), element);
 	}
 	}
 
 
 	/**
 	/**
@@ -91,11 +82,14 @@ public class ObjectController {
 	 * @param eleName
 	 * @param eleName
 	 * @param amount
 	 * @param amount
 	 * @param energy
 	 * @param energy
-	 * @param type
 	 */
 	 */
-	public void addNewElementIntoCategoryObject(String category, String object, String eleName, int amount,
+	public void addNewElementIntoCategoryObject(String category, String object, String element, int amount,
 			float energy) {
 			float energy) {
-		addElementIntoCategoryObject(category, object, new HolonElement(eleName, amount, energy));
+		HolonElement ele = new HolonElement(element, amount, energy);
+		ele.setSav(category);
+		ele.setObj(object);
+
+		addElementIntoCategoryObject(category, object, ele);
 	}
 	}
 
 
 	/**
 	/**
@@ -116,12 +110,9 @@ public class ObjectController {
 	 * @param amount
 	 * @param amount
 	 */
 	 */
 	public void deleteElementInCanvas(int ID, String ele) {
 	public void deleteElementInCanvas(int ID, String ele) {
-		HolonObject object = (HolonObject) searchByID(ID);
-		HolonElement element = searchHolonElement(object, ele);
+		HolonObject object = (HolonObject) sC.searchByID(ID);
+		HolonElement element = sC.searchHolonElement(object, ele);
 
 
-		// element.setAmount(element.getAmount() - amount);
-		//
-		// if (element.getAmount() <= 0)
 		deleteElement(object, element);
 		deleteElement(object, element);
 
 
 	}
 	}
@@ -135,69 +126,13 @@ public class ObjectController {
 	 * @param amount
 	 * @param amount
 	 */
 	 */
 	public void deleteElementInCategory(String cat, String obj, String ele, int amount) {
 	public void deleteElementInCategory(String cat, String obj, String ele, int amount) {
-		Category category = searchCategory(cat, MODEL.getCategories());
-		HolonObject object = searchHolonObject(obj, category.getObjects());
-		HolonElement element = searchHolonElement(object, ele);
+		Category category = sC.searchCategory(cat);
+		HolonObject object = (HolonObject) sC.searchHolonObject(obj, category.getObjects());
+		HolonElement element = sC.searchHolonElement(object, ele);
 
 
 		deleteElement(object, element);
 		deleteElement(object, element);
 	}
 	}
 
 
-	public Category searchCategory(String category, ArrayList<Category> list) {
-		for (Category cats : list) {
-			if (cats.getName().equals(category))
-				return cats;
-		}
-		return null;
-	}
-
-	/**
-	 * Search for Object
-	 * 
-	 * @param object
-	 * @param list
-	 * @return
-	 */
-	public HolonObject searchHolonObject(String object, ArrayList<CpsObject> list) {
-		for (CpsObject objects : list) {
-			if (objects.getObjName().equals(object))
-				return (HolonObject) objects;
-		}
-		return null;
-	}
-
-	/**
-	 * Search for Object by ID
-	 * 
-	 * @param ID
-	 * @param list
-	 * @return
-	 */
-	public CpsObject searchByID(int ID) {
-		for (CpsObject objects : MODEL.getObjectsOnCanvas()) {
-			if (objects.getID() == ID)
-				return objects;
-		}
-		return null;
-	}
-
-	/**
-	 * Search for Element
-	 * 
-	 * @param object
-	 * @param element
-	 * @return
-	 */
-	public HolonElement searchHolonElement(HolonObject object, String element) {
-		HolonElement temp = null;
-		if (object.getElements() != null) {
-			for (HolonElement elements : object.getElements()) {
-				if (elements.getEleName().equals(element))
-					temp = elements;
-			}
-		}
-		return temp;
-	}
-
 	/**
 	/**
 	 * Returns the ID of the selected Object 0 = no Object is selected
 	 * Returns the ID of the selected Object 0 = no Object is selected
 	 * 
 	 * 

+ 84 - 0
src/ui/controller/SearchController.java

@@ -0,0 +1,84 @@
+package ui.controller;
+
+import java.util.ArrayList;
+
+import classes.Category;
+import classes.CpsObject;
+import classes.HolonElement;
+import classes.HolonObject;
+import ui.model.Model;
+
+public class SearchController {
+
+	private Model MODEL;
+
+	public SearchController(Model model) {
+		this.MODEL = model;
+
+	}
+	
+	/**
+	 * search for category
+	 * 
+	 * @param name
+	 * @return
+	 */
+	public Category searchCategory(String category) {
+
+		for (Category cat : MODEL.getCategories()) {
+			if (cat.getName().equals(category)) {
+				return cat;
+			}
+		}
+		return null;
+	}
+	
+	/**
+	 * Search for Object
+	 * 
+	 * @param object
+	 * @param list
+	 * @return
+	 */
+	public CpsObject searchHolonObject(String object, ArrayList<CpsObject> list) {
+		for (CpsObject objects : list) {
+			if (objects.getObjName().equals(object))
+				return objects;
+		}
+		return null;
+	}
+
+	/**
+	 * Search for Object by ID
+	 * 
+	 * @param ID
+	 * @param list
+	 * @return
+	 */
+	public CpsObject searchByID(int ID) {
+		for (CpsObject objects : MODEL.getObjectsOnCanvas()) {
+			if (objects.getID() == ID)
+				return objects;
+		}
+		return null;
+	}
+
+	/**
+	 * Search for Element
+	 * 
+	 * @param object
+	 * @param element
+	 * @return
+	 */
+	public HolonElement searchHolonElement(HolonObject object, String element) {
+
+		if (object.getElements() != null) {
+			for (HolonElement ele : object.getElements()) {
+				if (ele.getEleName().equals(element))
+					return ele;
+			}
+		}
+		return null;
+	}
+
+}

+ 1 - 1
src/ui/controller/StoreController.java

@@ -132,7 +132,7 @@ public class StoreController {
 					arr.add(ele.getEleName());
 					arr.add(ele.getEleName());
 					arr.add(ele.getAmount());
 					arr.add(ele.getAmount());
 					arr.add(ele.getEnergy());
 					arr.add(ele.getEnergy());
-					arr.add(ele.getActive());
+					arr.add(Boolean.compare(ele.getActive(), true) + 1);
 					json.put("CVSE" + i++, arr);
 					json.put("CVSE" + i++, arr);
 					arr = new JSONArray();
 					arr = new JSONArray();
 				}
 				}

+ 12 - 12
src/ui/model/tests.java

@@ -7,16 +7,16 @@ import ui.controller.CategoryController;
 
 
 public class tests {
 public class tests {
 	
 	
-	public static void main(String[] args){
-		CategoryController cc = new CategoryController(new Model());
-		ArrayList<Category> cats = new ArrayList<Category>();
-		cats.add(new Category("sup"));
-		boolean value;
-		value = cc.containsInList(cats, new Category("sup"));
-		if(value){
-			System.out.println("true");
-		}else{
-			System.out.println("false");
-		}
-	}
+//	public static void main(String[] args){
+//		CategoryController cc = new CategoryController(new Model());
+//		ArrayList<Category> cats = new ArrayList<Category>();
+//		cats.add(new Category("sup"));
+//		boolean value;
+//		value = cc.containsInList(cats, new Category("sup"));
+//		if(value){
+//			System.out.println("true");
+//		}else{
+//			System.out.println("false");
+//		}
+	//}
 }
 }

+ 5 - 4
src/ui/view/GUI.java

@@ -555,8 +555,8 @@ public class GUI<E> implements CategoryListener {
 					DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) tree
 					DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) tree
 							.getPathForLocation(e.getX(), e.getY()).getLastPathComponent();
 							.getPathForLocation(e.getX(), e.getY()).getLastPathComponent();
 					if (selectedNode.getLevel() == 2) {
 					if (selectedNode.getLevel() == 2) {
-						CpsObject selected = controller.searchObjInCat(selectedNode.toString(),
-								selectedNode.getParent().toString());
+						CpsObject selected = controller.searchObject(selectedNode.getParent().toString(),
+								selectedNode.toString());
 						deleteRows();
 						deleteRows();
 						// if (selected instanceof HolonObject && selected !=
 						// if (selected instanceof HolonObject && selected !=
 						// null) {
 						// null) {
@@ -640,6 +640,7 @@ public class GUI<E> implements CategoryListener {
 					addObjectAction(selectedOption, selectedNode);
 					addObjectAction(selectedOption, selectedNode);
 					break;
 					break;
 				}
 				}
+				tree.repaint();
 			}
 			}
 		});
 		});
 		/**
 		/**
@@ -761,7 +762,7 @@ public class GUI<E> implements CategoryListener {
 						break;
 						break;
 					case 2:
 					case 2:
 						DefaultMutableTreeNode parent = (DefaultMutableTreeNode) selectedNode.getParent();
 						DefaultMutableTreeNode parent = (DefaultMutableTreeNode) selectedNode.getParent();
-						controller.delObjectCategory(nodeName, parent.getUserObject().toString());
+						controller.delObjectCategory(parent.getUserObject().toString(), nodeName);
 						break;
 						break;
 
 
 					default:
 					default:
@@ -772,7 +773,7 @@ public class GUI<E> implements CategoryListener {
 					JOptionPane.showMessageDialog(new JFrame(),
 					JOptionPane.showMessageDialog(new JFrame(),
 							"Please select a Category or an Object in order to delete something.");
 							"Please select a Category or an Object in order to delete something.");
 				}
 				}
-
+				tree.repaint();
 			}
 			}
 		});
 		});
 		toolBar.add(btnDel);
 		toolBar.add(btnDel);

+ 17 - 23
src/ui/view/UnitGraph.java

@@ -77,27 +77,28 @@ class UnitGraph extends JPanel implements MouseListener, MouseMotionListener, Co
 		g2 = (Graphics2D) g;
 		g2 = (Graphics2D) g;
 		RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
 		RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
 		g2.setRenderingHints(rh);
 		g2.setRenderingHints(rh);
-		g2.setStroke(new BasicStroke(1));
+		g2.setStroke(new BasicStroke(0));
 
 
 		graphCurve.reset();
 		graphCurve.reset();
 
 
 		// Draw the Vertical Lines
 		// Draw the Vertical Lines
-		g2.setColor(new Color(240, 240, 240));
-		for (int i = 0; i < model.getIterations(); i++) {
+		g2.setColor(Color.BLACK);
+		for (int i = 0; i <= model.getIterations(); i++) {
 			g2.drawLine((i) * this.getWidth() / (model.getIterations() - 1), 0,
 			g2.drawLine((i) * this.getWidth() / (model.getIterations() - 1), 0,
 					(i) * this.getWidth() / (model.getIterations() - 1), this.getHeight());
 					(i) * this.getWidth() / (model.getIterations() - 1), this.getHeight());
 		}
 		}
 
 
-		for (int i = 0; i < model.getIterations(); i++) {
+		for (int i = 0; i <= model.getIterations(); i++) {
 			g2.drawLine(0, (i) * this.getHeight() / (model.getIterations() - 1), this.getWidth(),
 			g2.drawLine(0, (i) * this.getHeight() / (model.getIterations() - 1), this.getWidth(),
 					(i) * this.getHeight() / (model.getIterations() - 1));
 					(i) * this.getHeight() / (model.getIterations() - 1));
 		}
 		}
 
 
 		if (arrayOfValue != null) {
 		if (arrayOfValue != null) {
-			//array fillen
+			// array fillen
 			fillArrayofValue();
 			fillArrayofValue();
 
 
 			// Draw the Lines
 			// Draw the Lines
+			g2.setStroke(new BasicStroke(2));
 			g2.setColor(Color.BLACK);
 			g2.setColor(Color.BLACK);
 			for (int i = 0; i < pointList.size() - 1; i++) {
 			for (int i = 0; i < pointList.size() - 1; i++) {
 				c = buildCurve(pointList.get(i), pointList.get(i + 1));
 				c = buildCurve(pointList.get(i), pointList.get(i + 1));
@@ -115,30 +116,24 @@ class UnitGraph extends JPanel implements MouseListener, MouseMotionListener, Co
 		}
 		}
 		// Iteration Line
 		// Iteration Line
 		g2.setColor(Color.BLUE);
 		g2.setColor(Color.BLUE);
+		g2.setStroke(new BasicStroke(1));
 		g2.drawLine((model.getCurIteration()) * this.getWidth() / (model.getIterations() - 1), 0,
 		g2.drawLine((model.getCurIteration()) * this.getWidth() / (model.getIterations() - 1), 0,
 				(model.getCurIteration()) * this.getWidth() / (model.getIterations() - 1), this.getHeight());
 				(model.getCurIteration()) * this.getWidth() / (model.getIterations() - 1), this.getHeight());
 		// Iteration Value
 		// Iteration Value
 		if (arrayOfValue != null) {
 		if (arrayOfValue != null) {
-			if (model.getCurIteration() > model.getIterations() / 2) {
 				g2.drawString("" + arrayOfValue[model.getCurIteration()],
 				g2.drawString("" + arrayOfValue[model.getCurIteration()],
-						(model.getCurIteration()) * this.getWidth() / (model.getIterations() - 1) - 30,
-						this.getHeight() / 2);
-			} else {
-				g2.drawString("" + arrayOfValue[model.getCurIteration()],
-						(model.getCurIteration()) * this.getWidth() / (model.getIterations() - 1) + 2,
-						this.getHeight() / 2);
-			}
+						(model.getCurIteration()) * this.getWidth() / (model.getIterations() - 1) +2,
+						this.getHeight()-10);
 		}
 		}
-		// Actual Iteration Point Visualization
 
 
-		g2.setColor(Color.RED);
-		if (arrayOfValue != null) {
-			for (int i = 0; i < arrayOfValue.length; i++) {
-				g2.fillOval((int) (i * width / (model.getIterations() - 1) * scaleX - recSize.getX() / 2),
-						(int) (convertToCanvasY((int) arrayOfValue[i]) * scaleY - recSize.getY() / 2),
-						(int) recSize.getX(), (int) recSize.getY());
-			}
-		}
+		/*
+		 * // Actual Iteration Point Visualization g2.setColor(Color.RED); if
+		 * (arrayOfValue != null) { for (int i = 0; i < arrayOfValue.length;
+		 * i++) { g2.fillOval((int) (i * width / (model.getIterations() - 1) *
+		 * scaleX - recSize.getX() / 2), (int) (convertToCanvasY((int)
+		 * arrayOfValue[i]) * scaleY - recSize.getY() / 2), (int)
+		 * recSize.getX(), (int) recSize.getY()); } }
+		 */
 	}
 	}
 
 
 	@Override
 	@Override
@@ -163,7 +158,6 @@ class UnitGraph extends JPanel implements MouseListener, MouseMotionListener, Co
 			repaint();
 			repaint();
 		}
 		}
 
 
-		
 	}
 	}
 
 
 	@Override
 	@Override