Browse Source

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

# Conflicts:
#	src/ui/controller/CanvasController.java
Teh-Hai Julian Zheng 7 years ago
parent
commit
4047b22eb7

+ 4 - 3
src/classes/HolonObject.java

@@ -3,7 +3,7 @@ package classes;
 import java.util.ArrayList;
 import java.util.HashMap;
 
-import ui.controller.SearchController;
+import ui.controller.MultiPurposeController;
 import ui.model.idCounter;
 
 public class HolonObject extends CpsObject {
@@ -39,8 +39,9 @@ public class HolonObject extends CpsObject {
 
 	public HolonObject(CpsObject obj) {
 		super(obj);
-		setEleIdx(SearchController.copyHashMap(((HolonObject) obj).getEleIdx()));
-		setElements(((HolonObject) obj).getCopyofElements());
+		setEleIdx(MultiPurposeController.copyHashMap(((HolonObject) obj).getEleIdx()));
+//		setElements(((HolonObject) obj).getCopyofElements());
+		setElements(MultiPurposeController.copyArrayList(((HolonObject)obj).getElements()));
 	}
 
 	/**

+ 7 - 16
src/ui/controller/CanvasController.java

@@ -11,11 +11,11 @@ import ui.model.Model;
 public class CanvasController {
 
 	private Model MODEL;
-	private SearchController sC;
+	private MultiPurposeController mpC;
 
-	public CanvasController(Model model, SearchController sC) {
+	public CanvasController(Model model, MultiPurposeController mp) {
 		this.MODEL = model;
-		this.sC = sC;
+		this.mpC = mp;
 	}
 
 	/**
@@ -25,18 +25,7 @@ public class CanvasController {
 	 *            CpsObject to be added.
 	 */
 	public void addObject(CpsObject object) {
-		// String objName = object.getObjName();
-		// object.setSav("Canvas");
-		// object.setConnections(new ArrayList<>());
-		int i = 0;
-		while (sC.searchByID(object.getID()) != 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.getCvsObjIdx().put(object.getID(), MODEL.getObjectsOnCanvas().size());
 		MODEL.getObjectsOnCanvas().add(object);
 		notifyObjListeners();
@@ -78,8 +67,10 @@ public class CanvasController {
 			cps.getConnectedTo().remove(e);
 			MODEL.getEdgesOnCanvas().remove(e);
 		}
+		mpC.decIdx(obj.getID(), MODEL.getCvsObjIdx());
+		MODEL.getCvsObjIdx().remove(obj.getID());
 		MODEL.getObjectsOnCanvas().remove(obj);
-		sC.decIdx(obj.getID(), MODEL.getCvsObjIdx());
+
 	}
 
 	/**

+ 18 - 14
src/ui/controller/CategoryController.java

@@ -13,11 +13,11 @@ import ui.model.Model;
 
 public class CategoryController {
 	private Model MODEL;
-	private SearchController sC;
+	private MultiPurposeController mpC;
 
-	public CategoryController(Model model, SearchController searchController) {
+	public CategoryController(Model model, MultiPurposeController mp) {
 		this.MODEL = model;
-		this.sC = searchController;
+		this.mpC = mp;
 		initCategories();
 	}
 
@@ -30,10 +30,10 @@ public class CategoryController {
 		addNewCategory("Building");
 		addNewCategory("Component");
 
-		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");
+		addNewHolonObject(mpC.searchCategory("Energy"), "Power Plant", new ArrayList<>(), "/Images/power-plant.png");
+		addNewHolonObject(mpC.searchCategory("Building"), "House", new ArrayList<>(), "/Images/home-2.png");
+		addNewHolonTransformer(mpC.searchCategory("Component"), "Transformer", "/Images/transformer-1.png");
+		addNewHolonSwitch(mpC.searchCategory("Component"), "Switch", "/Images/switch-off.png");
 
 	}
 
@@ -52,7 +52,7 @@ public class CategoryController {
 		// toAdd.setName(name + "_" + number);
 		// }
 		int i = 0;
-		while (sC.searchCategory(category.getName()) != null) {
+		while (mpC.searchCategory(category.getName()) != null) {
 			if (category.getName().contains("_"))
 				category.setName(category.getName().substring(0, category.getName().indexOf('_')));
 			category.setName(category.getName() + "_" + i);
@@ -78,8 +78,10 @@ public class CategoryController {
 	 * remove a Category from Model
 	 */
 	public void removeCategory(Category c) {
+		mpC.decIdx(c.getName(), MODEL.getCgIdx());
+		MODEL.getCgIdx().remove(c.getName());
 		MODEL.getCategories().remove(c);
-		sC.decIdx(c.getName(), MODEL.getCgIdx());
+
 		notifyCatListeners();
 	}
 
@@ -89,7 +91,7 @@ public class CategoryController {
 	 * @param category
 	 */
 	public void deleteCategory(String category) {
-		removeCategory(sC.searchCategory(category));
+		removeCategory(mpC.searchCategory(category));
 	}
 
 	/**
@@ -102,7 +104,7 @@ public class CategoryController {
 	 */
 	public void addObject(Category category, CpsObject object) {
 		int i = 0;
-		while (sC.searchCategoryObject(category, object.getObjName()) != null) {
+		while (mpC.searchCategoryObject(category, object.getObjName()) != null) {
 			if (object.getObjName().contains("_"))
 				object.setObjName(object.getObjName().substring(0, object.getObjName().indexOf('_')));
 			String name = object.getObjName() + "_" + i;
@@ -164,14 +166,16 @@ public class CategoryController {
 
 	public void removeObject(Category category, CpsObject cps) {
 
+		mpC.decIdx(cps.getObjName(), category.getObjIdx());
+		category.getObjIdx().remove(cps.getObjName());
 		category.getObjects().remove(cps);
-		sC.decIdx(cps.getObjName(), category.getObjIdx());
+
 		notifyCatListeners();
 	}
 
 	public void deleteObject(String category, String obj) {
-		Category cat = sC.searchCategory(category);
-		removeObject(cat, sC.searchCategoryObject(cat, obj));
+		Category cat = mpC.searchCategory(category);
+		removeObject(cat, mpC.searchCategoryObject(cat, obj));
 	}
 
 	/**

+ 10 - 10
src/ui/controller/Control.java

@@ -21,7 +21,7 @@ public class Control {
 
 	private ActionListener actionListener;
 
-	private final SearchController searchController;
+	private final MultiPurposeController multiPurposeController;
 	private final CategoryController categoryController;
 	private final ObjectController objectController;
 	private final CanvasController canvasController;
@@ -32,29 +32,29 @@ public class Control {
 	public Control(Model model) {
 		this.MODEL = 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.multiPurposeController = new MultiPurposeController(MODEL);
+		this.categoryController = new CategoryController(MODEL, multiPurposeController);
+		this.objectController = new ObjectController(MODEL, multiPurposeController);
+		this.canvasController = new CanvasController(MODEL, multiPurposeController);
 		this.globalController = new GlobalController(MODEL);
 		this.storeController = new StoreController(MODEL);
 		this.loadController = new LoadController(MODEL, categoryController, canvasController, objectController,
-				searchController);
+				multiPurposeController);
 
 	}
 
 	/* Operations for searching */
 
 	public CpsObject searchByID(int ID) {
-		return searchController.searchByID(ID);
+		return multiPurposeController.searchByID(ID);
 	}
 
 	public CpsObject searchCategoryObject(String category, String object) {
-		return searchController.searchCategoryObject(searchController.searchCategory(category), object);
+		return multiPurposeController.searchCategoryObject(multiPurposeController.searchCategory(category), object);
 	}
 
 	public CpsObject searchCanvasObject(int ID) {
-		return searchController.searchByID(ID);
+		return multiPurposeController.searchByID(ID);
 	}
 
 	/* Operations for Categories and Objects */
@@ -75,7 +75,7 @@ public class Control {
 	}
 
 	public Category searchCategory(String cat) {
-		return searchController.searchCategory(cat);
+		return multiPurposeController.searchCategory(cat);
 	}
 
 	public void deleteCategory(String cat) {

+ 10 - 10
src/ui/controller/LoadController.java

@@ -27,15 +27,15 @@ public class LoadController {
 	private CategoryController cgC;
 	private CanvasController cvsC;
 	private ObjectController objC;
-	private SearchController sC;
+	private MultiPurposeController mpC;
 
 	public LoadController(Model model, CategoryController cg, CanvasController cvs, ObjectController obj,
-			SearchController sC) {
+			MultiPurposeController mp) {
 		this.MODEL = model;
 		this.cgC = cg;
 		this.cvsC = cvs;
 		this.objC = obj;
-		this.sC = sC;
+		this.mpC = mp;
 
 	}
 
@@ -136,11 +136,11 @@ public class LoadController {
 		String type = next(i);
 
 		if (type.equals("HolonObject")) {
-			cgC.addNewHolonObject(sC.searchCategory(next(i)), next(i), new ArrayList<>(), next(i));
+			cgC.addNewHolonObject(mpC.searchCategory(next(i)), next(i), new ArrayList<>(), next(i));
 		} else if (type.equals("HolonTransformer")) {
-			cgC.addNewHolonTransformer(sC.searchCategory(next(i)), next(i), next(i));
+			cgC.addNewHolonTransformer(mpC.searchCategory(next(i)), next(i), next(i));
 		} else if (type.equals("HolonSwitch")) {
-			cgC.addNewHolonSwitch(sC.searchCategory(next(i)), next(i), next(i));
+			cgC.addNewHolonSwitch(mpC.searchCategory(next(i)), next(i), next(i));
 		}
 
 	}
@@ -189,7 +189,7 @@ public class LoadController {
 
 		if (sav.equals("Canvas")) {
 			ele.setActive(compare(Integer.parseInt(next(i))));
-			objC.addElementIntoCanvasObject((HolonObject) sC.searchByID(Integer.parseInt(obj)), ele);
+			objC.addElementIntoCanvasObject((HolonObject) mpC.searchByID(Integer.parseInt(obj)), ele);
 		} else
 			objC.addElementIntoCategoryObject(sav, obj, ele);
 	}
@@ -201,7 +201,7 @@ public class LoadController {
 	public void readEdge(JSONArray arr) {
 		Iterator<Object> i = arr.iterator();
 
-		CpsEdge edge = new CpsEdge(sC.searchByID(Integer.parseInt(next(i))), sC.searchByID(Integer.parseInt(next(i))));
+		CpsEdge edge = new CpsEdge(mpC.searchByID(Integer.parseInt(next(i))), mpC.searchByID(Integer.parseInt(next(i))));
 		edge.setCapacity(Float.parseFloat(next(i)));
 		edge.setFlow(Float.parseFloat(next(i)));
 
@@ -215,11 +215,11 @@ public class LoadController {
 		HolonElement ele;
 
 		if (sav.equals("Canvas")) {
-			ele = sC.searchHolonElement((HolonObject) sC.searchByID(Integer.parseInt(next(i))), next(i));
+			ele = mpC.searchHolonElement((HolonObject) mpC.searchByID(Integer.parseInt(next(i))), next(i));
 			while (i.hasNext())
 				ele.getGraphPoints().add(new Point(Integer.parseInt(next(i)), Integer.parseInt(next(i))));
 		} else {
-			ele = sC.searchHolonElement((HolonObject) sC.searchCategoryObject(sC.searchCategory(sav), next(i)),
+			ele = mpC.searchHolonElement((HolonObject) mpC.searchCategoryObject(mpC.searchCategory(sav), next(i)),
 					next(i));
 			while (i.hasNext())
 				ele.getGraphPoints().add(new Point(Integer.parseInt(next(i)), Integer.parseInt(next(i))));

+ 3 - 3
src/ui/controller/SearchController.java → src/ui/controller/MultiPurposeController.java

@@ -13,11 +13,11 @@ import classes.HolonElement;
 import classes.HolonObject;
 import ui.model.Model;
 
-public class SearchController {
+public class MultiPurposeController {
 
 	private Model MODEL;
 
-	public SearchController(Model model) {
+	public MultiPurposeController(Model model) {
 		this.MODEL = model;
 
 	}
@@ -132,7 +132,7 @@ public class SearchController {
 		
 		HashMap<T, Integer> newMap = new HashMap<>();
 		for (Entry<T, Integer> i : map.entrySet()) {
-			newMap.put(i.getKey(), i.getValue());
+			newMap.put( i.getKey(), i.getValue());
 		}
 		return newMap;
 	}

+ 14 - 13
src/ui/controller/ObjectController.java

@@ -11,11 +11,11 @@ import ui.model.Model;
 public class ObjectController {
 
 	private Model MODEL;
-	private SearchController sC;
+	private MultiPurposeController mpC;
 
-	public ObjectController(Model model, SearchController sC) {
+	public ObjectController(Model model, MultiPurposeController mp) {
 		this.MODEL = model;
-		this.sC = sC;
+		this.mpC = mp;
 		initHolonElements();
 	}
 
@@ -61,8 +61,8 @@ public class ObjectController {
 	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);
+		ele.setObj(mpC.searchByID(id).getObjName());
+		addElementIntoCanvasObject((HolonObject) mpC.searchByID(id), ele);
 	}
 
 	/**
@@ -72,7 +72,7 @@ public class ObjectController {
 	 * @param element
 	 */
 	public void addElementIntoCategoryObject(String category, String object, HolonElement element) {
-		addElement((HolonObject) sC.searchCategoryObject(sC.searchCategory(category), object), element);
+		addElement((HolonObject) mpC.searchCategoryObject(mpC.searchCategory(category), object), element);
 	}
 
 	/**
@@ -101,9 +101,10 @@ public class ObjectController {
 	 * @param ele
 	 */
 	public void deleteElement(HolonObject obj, HolonElement ele) {
-		obj.getElements().remove(ele);
+
+		mpC.decIdx(ele.getEleName(), obj.getEleIdx());
 		obj.getEleIdx().remove(ele.getEleName());
-		sC.decIdx(ele.getEleName(), obj.getEleIdx());
+		obj.getElements().remove(ele);
 	}
 
 	/**
@@ -114,8 +115,8 @@ public class ObjectController {
 	 * @param amount
 	 */
 	public void deleteElementInCanvas(int ID, String ele) {
-		HolonObject object = (HolonObject) sC.searchByID(ID);
-		HolonElement element = sC.searchHolonElement(object, ele);
+		HolonObject object = (HolonObject) mpC.searchByID(ID);
+		HolonElement element = mpC.searchHolonElement(object, ele);
 
 		deleteElement(object, element);
 
@@ -130,9 +131,9 @@ public class ObjectController {
 	 * @param amount
 	 */
 	public void deleteElementInCategory(String cat, String obj, String ele, int amount) {
-		Category category = sC.searchCategory(cat);
-		HolonObject object = (HolonObject) sC.searchCategoryObject(category, obj);
-		HolonElement element = sC.searchHolonElement(object, ele);
+		Category category = mpC.searchCategory(cat);
+		HolonObject object = (HolonObject) mpC.searchCategoryObject(category, obj);
+		HolonElement element = mpC.searchHolonElement(object, ele);
 
 		deleteElement(object, element);
 	}

+ 21 - 6
src/ui/view/GUI.java

@@ -42,6 +42,7 @@ import javax.swing.JTable;
 import javax.swing.JToolBar;
 import javax.swing.JTree;
 import javax.swing.SwingUtilities;
+import javax.swing.border.LineBorder;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
 import javax.swing.table.DefaultTableModel;
@@ -122,7 +123,7 @@ public class GUI<E> implements CategoryListener {
 	private DefaultTableModel tableModelGraph = new DefaultTableModel();
 	private final JScrollPane scrollGraph = new JScrollPane();
 
-	private final Model model;
+	private Model model;
 	private final Control controller;
 
 	// Pop up Windows
@@ -246,8 +247,6 @@ public class GUI<E> implements CategoryListener {
 
 		splitPane_2.setRightComponent(comboBoxAlgo);
 
-		unitGraph.setBackground(Color.WHITE);
-
 		canvas.setBackground(Color.WHITE);
 		canvas.setPreferredSize(new Dimension(10000, 10000));
 		JScrollPane canvasSP = new JScrollPane(canvas);
@@ -330,7 +329,6 @@ public class GUI<E> implements CategoryListener {
 					HolonElement ele = addElementPopUp.getElement();
 					controller.addElementCanvasObject(tempCpsObject.getID(), ele.getEleName(), ele.getAmount(),
 							ele.getEnergy());
-					System.out.println(((HolonObject)controller.searchCanvasObject(tempCpsObject.getID())).getEleIdx().size());
 					refreshTableHolonElement();
 					refreshTableProperties();
 				}
@@ -346,8 +344,6 @@ public class GUI<E> implements CategoryListener {
 					tempElement = getActualHolonElement(obj, yValueElements);
 					if (tempElement != null && obj.getClass() == HolonObject.class && obj.getID() != 0) {
 						controller.deleteElementCanvas(obj.getID(), tempElement.getEleName());
-						System.out.println(((HolonObject)controller.searchCanvasObject(obj.getID())).getEleIdx().size());
-
 						refreshTableHolonElement();
 						refreshTableProperties();
 					}
@@ -367,6 +363,7 @@ public class GUI<E> implements CategoryListener {
 					unitGraph.repaintWithNewElement(ele);
 				} else {
 					elementGraph.setText("None ");
+					unitGraph.empty();
 				}
 				// if any HolonElement is double-clicked --> Edit instance of
 				// selected HolonElement
@@ -445,6 +442,7 @@ public class GUI<E> implements CategoryListener {
 						Float ftemp = Float.parseFloat(temp.toString());
 						model.getSelectedEdge().setCapacity(ftemp);
 					}
+					canvas.repaint();
 				} catch (Exception e) {
 
 				}
@@ -457,6 +455,7 @@ public class GUI<E> implements CategoryListener {
 		/*
 		 * Reset the graph of the selected HolonElement
 		 */
+		resetGraphBtn.setBorder(new LineBorder(Color.BLACK));
 		resetGraphBtn.addActionListener(new ActionListener() {
 			public void actionPerformed(ActionEvent arg0) {
 				unitGraph.reset();
@@ -783,6 +782,22 @@ public class GUI<E> implements CategoryListener {
 
 		frmCyberPhysical.getContentPane().add(splitPane);
 
+		mntmNew.addActionListener(new ActionListener() {
+			
+			@Override
+			public void actionPerformed(ActionEvent arg0) {
+				model.getEdgesOnCanvas().removeAll(model.getEdgesOnCanvas());
+				model.getObjectsOnCanvas().removeAll(model.getObjectsOnCanvas());
+				controller.setSelectedObjectID(0);
+				controller.setSelecteEdge(null);
+				controller.setCurIteration(0);
+				unitGraph.empty();
+				canvas.tempCps = null;
+				canvas.objectSelectionHighlighting();
+				canvas.repaint();
+			}
+		});
+		
 		mntmOpen.addActionListener(new java.awt.event.ActionListener() {
 			@Override
 			public void actionPerformed(java.awt.event.ActionEvent evt) {

+ 4 - 3
src/ui/view/TimePanel.java

@@ -18,6 +18,7 @@ import javax.swing.event.ChangeListener;
 
 import ui.controller.Control;
 import ui.model.Model;
+import javax.swing.BoxLayout;
 
 public class TimePanel extends JPanel {
 
@@ -49,7 +50,7 @@ public class TimePanel extends JPanel {
 			public void actionPerformed(ActionEvent ae) {
 				timeSlider.setValue(timeSlider.getValue() + 1);
 				controller.setCurIteration(timeSlider.getValue());
-				if (timeSlider.getValue() == model.getIterations()-1) {
+				if (timeSlider.getValue() == model.getIterations() - 1) {
 					running = false;
 					playBtn.setIcon(new ImageIcon(new ImageIcon(this.getClass().getResource("/Button_Images/play.png"))
 							.getImage().getScaledInstance(30, 30, Image.SCALE_SMOOTH)));
@@ -67,7 +68,7 @@ public class TimePanel extends JPanel {
 		timeSlider.setMinorTickSpacing(1);
 		timeSlider.setMajorTickSpacing(5);
 		timeSlider.setToolTipText("Time Slider");
-		timeSlider.setMaximum(model.getIterations()-1);
+		timeSlider.setMaximum(model.getIterations() - 1);
 		timeSlider.setValue(0);
 		timeSlider.setBackground(Color.WHITE);
 		timeSlider.addChangeListener(new ChangeListener() {
@@ -80,9 +81,9 @@ public class TimePanel extends JPanel {
 		// Panel
 		timeBtnPanel.setBorder(null);
 		timeBtnPanel.setBackground(Color.WHITE);
+		timeBtnPanel.setLayout(new BoxLayout(timeBtnPanel, BoxLayout.X_AXIS));
 
 		// Buttons
-		timeBtnPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 0));
 		playBtn.setToolTipText("Play");
 
 		playBtn.setBackground(Color.WHITE);

+ 19 - 10
src/ui/view/UnitGraph.java

@@ -50,7 +50,7 @@ class UnitGraph extends JPanel implements MouseListener, MouseMotionListener, Co
 
 	private boolean pointDrag = false;
 	private boolean init = false;
-	private Point tempP = null, p1 = null, p2 = null;
+	private Point tempP = null;
 	private double x = 0, y = 0;
 	private int x1, x2, y1, y2, ctrlx1, ctrly1, ctrlx2, ctrly2;
 
@@ -60,6 +60,7 @@ class UnitGraph extends JPanel implements MouseListener, MouseMotionListener, Co
 		this.model = model;
 
 		this.pointList = new LinkedList<>();
+		this.setBackground(Color.WHITE);
 
 		this.addMouseListener(this);
 		this.addMouseMotionListener(this);
@@ -83,14 +84,14 @@ class UnitGraph extends JPanel implements MouseListener, MouseMotionListener, Co
 
 		// Draw the Vertical Lines
 		g2.setColor(Color.BLACK);
-		for (int i = 0; i <= model.getIterations(); i++) {
-			g2.drawLine((i) * this.getWidth() / (model.getIterations() - 1), 0,
-					(i) * this.getWidth() / (model.getIterations() - 1), this.getHeight());
+		for (int i = 0; i <= this.getWidth(); i += 10) {
+			g2.drawLine(i, 0,
+					i, this.getHeight());
 		}
 
-		for (int i = 0; i <= model.getIterations(); i++) {
-			g2.drawLine(0, (i) * this.getHeight() / (model.getIterations() - 1), this.getWidth(),
-					(i) * this.getHeight() / (model.getIterations() - 1));
+		for (int i = 0; i <= this.getHeight(); i += 5) {
+			g2.drawLine(0, i, this.getWidth(),
+					i);
 		}
 
 		if (arrayOfValue != null) {
@@ -203,6 +204,7 @@ class UnitGraph extends JPanel implements MouseListener, MouseMotionListener, Co
 					}
 				}
 			}
+			//New Point
 			if (!pointDrag && e.getButton() != MouseEvent.BUTTON3 && e.getX() != 0
 					&& e.getX() != this.getWidth() / scaleX) {
 				for (int i = 0; i < pointList.size(); i++) {
@@ -218,6 +220,7 @@ class UnitGraph extends JPanel implements MouseListener, MouseMotionListener, Co
 					}
 				}
 			}
+			//Delete a Point
 			if (deletePoint && tempP.getX() != 0
 					&& (tempP.getX() != this.getWidth() / scaleX || tempP != pointList.getLast())) {
 				pointList.remove(tempP);
@@ -236,10 +239,11 @@ class UnitGraph extends JPanel implements MouseListener, MouseMotionListener, Co
 	}
 
 	public void componentResized(ComponentEvent e) {
+		//Wenn ein anderes Element genommen wird
 		if (init) {
 			MAXIMUM = tempElement.getEnergy();
 			init = false;
-			// for scale
+			// for scale on the first initialisation
 			if (width == -1 && height == -1) {
 				width = this.getWidth();
 				height = this.getHeight();
@@ -247,12 +251,15 @@ class UnitGraph extends JPanel implements MouseListener, MouseMotionListener, Co
 
 			scaleX = this.getWidth() / width;
 			scaleY = this.getHeight() / height;
-
+			
+			//First time clicked on the Element
 			if (pointList.isEmpty()) {
 				pointList.addFirst(new Point(0, 0));
 				pointList.addLast(new Point((int) (this.getWidth() / scaleX), 0));
 			}
 		}
+		
+		//Scale
 		scaleX = this.getWidth() / width;
 		scaleY = this.getHeight() / height;
 		repaint();
@@ -341,6 +348,8 @@ class UnitGraph extends JPanel implements MouseListener, MouseMotionListener, Co
 		y1 = (int) p1.getY();
 		x2 = (int) p2.getX();
 		y2 = (int) p2.getY();
+		
+		//calculate the controllpoints
 		ctrlx1 = (int) p1.getX() + ((int) p2.getX() - (int) p1.getX()) / 2;
 		ctrlx2 = (int) p2.getX() - ((int) p2.getX() - (int) p1.getX()) / 2;
 		if (y1 < y2) {
@@ -351,6 +360,7 @@ class UnitGraph extends JPanel implements MouseListener, MouseMotionListener, Co
 			ctrly2 = (int) p2.getY() + ((int) p1.getY() - (int) p2.getY()) / 10;
 		}
 
+		//set the curve
 		c.setCurve(x1 * scaleX, y1 * scaleY, ctrlx1 * scaleX, ctrly1 * scaleY, ctrlx2 * scaleX, ctrly2 * scaleY,
 				x2 * scaleX, y2 * scaleY);
 		return c;
@@ -376,7 +386,6 @@ class UnitGraph extends JPanel implements MouseListener, MouseMotionListener, Co
 				Line2D l1 = new Line2D.Double(pointList.get(i).getX(), pointList.get(i).getY(),
 						pointList.get(i + 1).getX(), pointList.get(i + 1).getY());
 				Line2D l2 = new Line2D.Double(xVal, 0, xVal, height);
-
 				return (float) getIntersectionPoint(l1, l2).getY();
 			}
 		}