Browse Source

#76: changed functionality of flexibility in HolonElements

I. Dix 7 years ago
parent
commit
0b7bfeb528

+ 46 - 29
src/classes/HolonElement.java

@@ -21,16 +21,26 @@ public class HolonElement {
     /* Quantity */
     @Expose
     private int amount;
-    /* Energy per gadget */
+    /* Currently used energy (- indicates consuming of energy, + indicates producing energy)*/
     @Expose
     private float energy;
-    /* If the gadget is working xor not (true xor false) */
+    /* Whether the gadget is active or not (currently uses/poduces the energy in energy) */
     @Expose
     private boolean active;
+    /*
+     * Gives us whether this element is flexible and can flexibly use any part of the energy in flexibility
+     */
+    @Expose
+    private boolean flexible;
+    /*
+     * Flexibility (meaning the actual
+     */
+    @Expose
+    private float flexibility;
     /* Total Energy */
     @Expose
     private float totalEnergy;
-    /* +: for Consumers and -: Producers */
+    /* -: for Consumers and +: Producers */
     @Expose
     private char sign;
     /* Place where the Object is Stored */
@@ -41,16 +51,6 @@ public class HolonElement {
      */
     @Expose
     private int id;
-    /*
-     * Flexibility
-     */
-    @Expose
-    private float flexibility;
-    /*
-     * Active the flexibility field
-     */
-    @Expose
-    private boolean activeFlex;
     /*
      * Energy at each point of the graph with 100 predefined points. At the
      * beginning, it starts with all values at energy
@@ -74,8 +74,8 @@ public class HolonElement {
         setEnergyAt(energy);
         setGraphPoints(new LinkedList<>());
         setId(IdCounterElem.nextId());
-        setFlexibility(0);
-        setActiveFlex(false);
+        setFlexibleEnergyAmount(0);
+        setFlexible(false);
     }
 
     /**
@@ -90,8 +90,8 @@ public class HolonElement {
         setEnergyAt(energy);
         setGraphPoints(new LinkedList<>());
         setId(id);
-        setFlexibility(0);
-        setActiveFlex(false);
+        setFlexibleEnergyAmount(0);
+        setFlexible(false);
     }
 
     /**
@@ -103,7 +103,7 @@ public class HolonElement {
         setEleName(element.getEleName());
         setAmount(element.getAmount());
         setEnergy(element.getEnergy());
-        setActive(element.getActive());
+        setActive(element.isActive());
         setSign(element.getEnergy());
         setEnergyAt(element.getEnergy());
         for (int i = 0; i < energyAt.length; i++) {
@@ -115,8 +115,8 @@ public class HolonElement {
         }
         setSaving(null);
         setId(IdCounterElem.nextId());
-        setFlexibility(0);
-        setActiveFlex(false);
+        setFlexibleEnergyAmount(0);
+        setFlexible(false);
     }
 
     /**
@@ -202,6 +202,7 @@ public class HolonElement {
      */
     public void setEnergy(float energy) {
         this.energy = energy;
+        setSign(energy);
     }
 
     /**
@@ -209,7 +210,7 @@ public class HolonElement {
      *
      * @return the active
      */
-    public boolean getActive() {
+    public boolean isActive() {
         return active;
     }
 
@@ -230,7 +231,8 @@ public class HolonElement {
      * @return totalEnergy (actual)
      */
     public float getTotalEnergy() {
-        if (activeFlex) {
+        // TODO: anpassen
+        if (flexible) {
             totalEnergy = ((float) amount) * (energy + flexibility);
         } else {
             totalEnergy = ((float) amount) * energy;
@@ -246,7 +248,7 @@ public class HolonElement {
      */
     public float getTotalEnergyAtTimeStep(int x) {
         float result;
-        if (activeFlex) {
+        if (flexible) {
             result = ((float) amount) * (energyAt[x] + flexibility);
         } else {
             result = ((float) amount) * energyAt[x];
@@ -296,29 +298,44 @@ public class HolonElement {
     /**
      * Get the flexibility of an element
      */
-    public float getFlexibility() {
+    public float getFlexibleEnergyAmount() {
         return this.flexibility;
     }
 
     /**
      * Set the flexibility of an element
      */
-    public void setFlexibility(float f) {
+    public void setFlexibleEnergyAmount(float f) {
         this.flexibility = f;
     }
 
     /**
      * Get the flexibility of an element
      */
-    public boolean getActiveFlex() {
-        return this.activeFlex;
+    public boolean isFlexible() {
+        return this.flexible;
     }
 
     /**
      * Set the flexibility of an element
      */
-    public void setActiveFlex(boolean b) {
-        this.activeFlex = b;
+    public void setFlexible(boolean b) {
+        this.flexible = b;
+
+        // if flexibility was set to true
+        if (b) {
+            // set active to false
+            this.active = false;
+
+            // move energy to flexibility (becomes the possible-to-use energy)
+            setFlexibleEnergyAmount(getEnergy());
+            // and set actually used energy to zero (can be changed by algorithms, the grid itself or the user)
+            setEnergy(0);
+        } else {
+            // move the energy to actually used energy and set flexible amount to 0
+            setEnergy(getFlexibleEnergyAmount());
+            setFlexibleEnergyAmount(0);
+        }
     }
 
     /**

+ 11 - 11
src/classes/HolonObject.java

@@ -130,7 +130,7 @@ public class HolonObject extends AbstractCpsObject {
     public float getCurrentEnergy() {
         float temp = 0;
         for (HolonElement e : getElements()) {
-            if (e.getActive()) {
+            if (e.isActive()) {
                 temp = temp + e.getTotalEnergy();
             }
         }
@@ -147,7 +147,7 @@ public class HolonObject extends AbstractCpsObject {
     public float getCurrentEnergyAtTimeStep(int x) {
         float temp = 0;
         for (HolonElement e : getElements()) {
-            if (e.getActive()) {
+            if (e.isActive()) {
                 temp = temp + e.getTotalEnergyAtTimeStep(x);
             }
         }
@@ -286,7 +286,7 @@ public class HolonObject extends AbstractCpsObject {
         float minConsum = getElements().get(0).getTotalEnergyAtTimeStep(x);
         float prod = 0;
         for (HolonElement e : getElements()) {
-            if (e.getActive()) {
+            if (e.isActive()) {
                 if (e.getTotalEnergyAtTimeStep(x) > 0) {
                     prod = prod + e.getTotalEnergyAtTimeStep(x);
                 }
@@ -371,8 +371,8 @@ public class HolonObject extends AbstractCpsObject {
     public void updateTotalFlex() {
         float tempFlex = 0;
         for (HolonElement e : getElements()) {
-            if (e.getActiveFlex()) {
-                tempFlex += e.getFlexibility() * e.getAmount();
+            if (e.isFlexible()) {
+                tempFlex += e.getFlexibleEnergyAmount() * e.getAmount();
             }
         }
         this.totalFlex = tempFlex;
@@ -384,8 +384,8 @@ public class HolonObject extends AbstractCpsObject {
     public float getFlexProd() {
         float tempFlex = 0;
         for (HolonElement e : getElements()) {
-            if (e.getFlexibility() > 0) {
-                tempFlex += e.getFlexibility();
+            if (e.getFlexibleEnergyAmount() > 0) {
+                tempFlex += e.getFlexibleEnergyAmount();
             }
         }
         return tempFlex;
@@ -397,8 +397,8 @@ public class HolonObject extends AbstractCpsObject {
     public float getFlexCons() {
         float tempFlex = 0;
         for (HolonElement e : getElements()) {
-            if (e.getFlexibility() < 0) {
-                tempFlex += e.getFlexibility();
+            if (e.getFlexibleEnergyAmount() < 0) {
+                tempFlex += e.getFlexibleEnergyAmount();
             }
         }
         return tempFlex;
@@ -417,10 +417,10 @@ public class HolonObject extends AbstractCpsObject {
             float valueProd = 0;
             float valueCons = 0;
             for (HolonElement e : getElements()) {
-                if (e.getActive() && e.getSign() == '+') {
+                if (e.isActive() && e.getSign() == '+') {
                     valueProd = valueProd + e.getTotalEnergyAtTimeStep(i);
                 }
-                if (e.getActive() && e.getSign() == '-') {
+                if (e.isActive() && e.getSign() == '-') {
                     valueCons = valueCons + e.getTotalEnergyAtTimeStep(i);
                 }
             }

+ 12 - 19
src/ui/controller/HolonCanvasController.java

@@ -1,18 +1,11 @@
 package ui.controller;
 
-import java.awt.Dimension;
-import java.util.ArrayList;
-
-import classes.AbstractCpsObject;
-import classes.Constants;
-import classes.CpsUpperNode;
-import classes.HolonBody;
-import classes.HolonElement;
-import classes.HolonObject;
-import classes.SubNet;
-import classes.Vector2d;
+import classes.*;
 import ui.model.Model;
 
+import java.awt.*;
+import java.util.ArrayList;
+
 public class HolonCanvasController {
 
 	// Ball objects
@@ -89,8 +82,8 @@ public class HolonCanvasController {
 		for (AbstractCpsObject obj : objects) {
 			if (obj instanceof HolonObject) {
 				for (HolonElement ele : ((HolonObject) obj).getElements()) {
-					if (ele.getActive()) {
-						val += 1;
+                    if (ele.isActive()) {
+                        val += 1;
 					}
 				}
 			} else if (obj instanceof CpsUpperNode) {
@@ -107,8 +100,8 @@ public class HolonCanvasController {
 		for (AbstractCpsObject obj : objects) {
 			if (obj instanceof HolonObject) {
 				for (HolonElement ele : ((HolonObject) obj).getElements()) {
-					if (ele.getEnergyAt()[tStep] > 0 && ele.getActive()) {
-						val += ele.getEnergyAt()[tStep] * ele.getAmount();
+                    if (ele.getEnergyAt()[tStep] > 0 && ele.isActive()) {
+                        val += ele.getEnergyAt()[tStep] * ele.getAmount();
 					}
 				}
 				if (val > 0)
@@ -138,8 +131,8 @@ public class HolonCanvasController {
 		for (AbstractCpsObject obj : objects) {
 			if (obj instanceof HolonObject) {
 				for (HolonElement ele : ((HolonObject) obj).getElements()) {
-					if (ele.getEnergyAt()[tStep] < 0 && ele.getActive()) {
-						val += ele.getEnergyAt()[tStep] * ele.getAmount();
+                    if (ele.getEnergyAt()[tStep] < 0 && ele.isActive()) {
+                        val += ele.getEnergyAt()[tStep] * ele.getAmount();
 					}
 				}
 			} else if (obj instanceof CpsUpperNode) {
@@ -155,8 +148,8 @@ public class HolonCanvasController {
 		for (AbstractCpsObject obj : objects) {
 			if (obj instanceof HolonObject) {
 				for (HolonElement ele : ((HolonObject) obj).getElements()) {
-					if (ele.getEnergyAt()[tStep] > 0 && ele.getActive()) {
-						val += ele.getEnergyAt()[tStep] * ele.getAmount();
+                    if (ele.getEnergyAt()[tStep] > 0 && ele.isActive()) {
+                        val += ele.getEnergyAt()[tStep] * ele.getAmount();
 					}
 				}
 			} else if (obj instanceof CpsUpperNode) {

+ 54 - 83
src/ui/controller/SimulationManager.java

@@ -14,6 +14,7 @@ import java.util.HashMap;
  * @author Gruppe14
  */
 public class SimulationManager {
+    int global = 0;
     private Model model;
     private ArrayList<AbstractCpsObject> objectsToHandle;
     //	private ArrayList<CpsEdge> allConnections;
@@ -60,7 +61,8 @@ public class SimulationManager {
             // TODO: add global setting, whether the grid should react with flexible devices or whether it should not
             if (wastedEnergy > 0) {
                 turnOnFlexibleDevices(singleSubNet, wastedEnergy);
-                // recompute after having examined all flexible devices
+
+                // recompute after having examined/turned on all flexible devices
                 production = calculateEnergy("prod", singleSubNet, timeStep);
                 consumption = calculateEnergy("cons", singleSubNet, timeStep);
                 wastedEnergy = production + consumption;
@@ -107,16 +109,31 @@ public class SimulationManager {
         flexPane.recalculate();
     }
 
-
     /**
      * search for all flexible devices in the network and turn them on, until wasted energy = 0
      * or all devices have been examined
      *
-     * @param sN           the subnet
+     * @param subNet       the subnet
      * @param wastedEnergy the currently wasted energy
      */
-    void turnOnFlexibleDevices(SubNet sN, float wastedEnergy) {
-
+    private void turnOnFlexibleDevices(SubNet subNet, float wastedEnergy) {
+        for (HolonObject holonOb : subNet.getObjects()) {
+            for (HolonElement holonEl : holonOb.getElements()) {
+                // if this element is flexible
+                float energyOfElement = holonEl.getEnergy();
+                if (holonEl.isFlexible() && energyOfElement < 0) {
+//                    if (energyOfElement <= wastedEnergy) {
+//                        holonEl.setActive(true);
+//                        wastedEnergy += energyOfElement;
+//                    }else{
+//                    }
+
+//                    System.out.println("el.getEnergy(): " + holonEl.getEnergy());
+//                    System.out.println("wasted: " + wastedEnergy);
+                }
+            }
+        }
+//        System.out.println();
     }
 
     /**
@@ -245,57 +262,6 @@ public class SimulationManager {
         }
     }
 
-//    /**
-//     * Print the nodes.
-//     *
-//     * @param nodes
-//     *            Array of AbstractCpsObject
-//     */
-//	public void printNodes(ArrayList<AbstractCpsObject> nodes) {
-//		for (AbstractCpsObject node : nodes) {
-//			System.out.println(node.getId());
-//		}
-//	}
-
-//    /**
-//     * Get String.
-//     *
-//     * @param tags
-//     *            the tags
-//     * @return the String
-//     */
-//	public String getString(ArrayList<Integer> tags) {
-//		String result = "";
-//		for (Integer i : tags) {
-//			result = result + ", " + i;
-//		}
-//		return result;
-//	}
-
-//    /**
-//     * Merge the Lists.
-//     *
-//     * @param a
-//     *            first liust
-//     * @param b
-//     *            second list
-//     * @return the Result
-//     */
-//	public ArrayList<Integer> mergeLists(ArrayList<Integer> a, ArrayList<Integer> b) {
-//		ArrayList<Integer> result = new ArrayList<>();
-//		for (Integer i : a) {
-//			if (!(result.contains(i))) {
-//				result.add(i);
-//			}
-//		}
-//		for (Integer j : b) {
-//			if (!(result.contains(j))) {
-//				result.add(j);
-//			}
-//		}
-//		return result;
-//	}
-
     /**
      * Reset the Connection.
      *
@@ -470,6 +436,17 @@ public class SimulationManager {
                 || ((HolonSwitch) current).getState(timeStep);
     }
 
+//    /**
+//     * ensures that objectsToHandle only contains HolonObjects.
+//     */
+//	public void cleanObjectsToHandle() {
+//		for (int i = 0; i < objectsToHandle.size(); i++) {
+//			if (!(objectsToHandle.get(i) instanceof HolonObject)) {
+//				objectsToHandle.remove(i);
+//			}
+//		}
+//	}
+
     /**
      * removes an Object that already has been handled.
      *
@@ -483,17 +460,6 @@ public class SimulationManager {
         }
     }
 
-//    /**
-//     * ensures that objectsToHandle only contains HolonObjects.
-//     */
-//	public void cleanObjectsToHandle() {
-//		for (int i = 0; i < objectsToHandle.size(); i++) {
-//			if (!(objectsToHandle.get(i) instanceof HolonObject)) {
-//				objectsToHandle.remove(i);
-//			}
-//		}
-//	}
-
     /**
      * copies the data of an array of Objects.
      *
@@ -512,24 +478,29 @@ public class SimulationManager {
     /**
      * Prints the Components auf all subnets.
      */
-    public void printNetsToConsole() {
+    private void printNetsToConsole() {
         for (int i = 0; i < subNets.size(); i++) {
+            SubNet subNet = subNets.get(i);
             System.out.println("SUBNET NR:" + i);
-            System.out.println("  Objects:");
-            for (int j = 0; j < subNets.get(i).getObjects().size(); j++) {
-                HolonObject hl = subNets.get(i).getObjects().get(j);
-                System.out.println("    " + hl.getName() + " " + hl.getId());
-            }
-            System.out.println("  Edges:");
-            for (int j = 0; j < subNets.get(i).getEdges().size(); j++) {
-                CpsEdge edge = subNets.get(i).getEdges().get(j);
-                System.out.println("     " + edge.getA().getName() + " connected To " + edge.getB().getName());
-            }
-            System.out.println("  Switches:");
-            for (int j = 0; j < subNets.get(i).getSwitches().size(); j++) {
-                HolonSwitch sw = subNets.get(i).getSwitches().get(j);
-                System.out.println("    " + sw.getName() + " " + sw.getId() + " State:" + sw.getActiveAt()[timeStep]);
-            }
+            printSingleNetToConsole(subNet);
+        }
+    }
+
+    private void printSingleNetToConsole(SubNet subNet) {
+        System.out.println("  Objects:");
+        for (int j = 0; j < subNet.getObjects().size(); j++) {
+            HolonObject hl = subNet.getObjects().get(j);
+            System.out.println("    " + hl.getName() + " " + hl.getId());
+        }
+        System.out.println("  Edges:");
+        for (int j = 0; j < subNet.getEdges().size(); j++) {
+            CpsEdge edge = subNet.getEdges().get(j);
+            System.out.println("     " + edge.getA().getName() + " connected To " + edge.getB().getName());
+        }
+        System.out.println("  Switches:");
+        for (int j = 0; j < subNet.getSwitches().size(); j++) {
+            HolonSwitch sw = subNet.getSwitches().get(j);
+            System.out.println("    " + sw.getName() + " " + sw.getId() + " State:" + sw.getActiveAt()[timeStep]);
         }
     }
 

+ 5 - 5
src/ui/controller/UpdateController.java

@@ -59,8 +59,8 @@ public class UpdateController {
 				if (o instanceof HolonObject) {
 					for (HolonElement he : ((HolonObject) o).getElements()) {
 						Object[] temp = { o.getName() + ", " + o.getId(), he.getId(), he.getEleName(), he.getEnergy(),
-								he.getFlexibility(), he.getAmount(), he.getActive(), he.getActiveFlex() };
-						table.addRow(temp);
+                                he.getFlexibleEnergyAmount(), he.getAmount(), he.isActive(), he.isFlexible()};
+                        table.addRow(temp);
 					}
 				}
 			}
@@ -68,9 +68,9 @@ public class UpdateController {
 			AbstractCpsObject o = objects.get(0);
 			if (o instanceof HolonObject) {
 				for (HolonElement he : ((HolonObject) o).getElements()) {
-					Object[] temp = { he.getId(), he.getEleName(), he.getEnergy(), he.getFlexibility(), he.getAmount(),
-							he.getActive(), he.getActiveFlex() };
-					table.addRow(temp);
+                    Object[] temp = {he.getId(), he.getEleName(), he.getEnergy(), he.getFlexibleEnergyAmount(), he.getAmount(),
+                            he.isActive(), he.isFlexible()};
+                    table.addRow(temp);
 				}
 			}
 		}

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

@@ -967,7 +967,7 @@ public class GUI implements CategoryListener {
                 int yBMouse = yBTis;
                 int selectedValueY = (int) Math.floor(yMouse / 16);
                 int selectedValueBY = (int) Math.floor(yBMouse / 16);
-                // for multi-selection mode
+                // ------------------ multi-selection mode ------------------
                 if (model.getSelectedCpsObjects().size() > 1) {
                     int selectedValueX = (int) Math.floor(xThis / (model.getTableHolonElement().getWidth() / 8));
                     int selectedValueBX = (int) Math.floor(xBThis / (model.getTableHolonElement().getWidth() / 8));
@@ -986,7 +986,7 @@ public class GUI implements CategoryListener {
                             String newBStuff = model.getMultiTable().getValueAt(selectedValueBY, selectedValueBX)
                                     .toString();
                             Boolean bTemp = Boolean.parseBoolean(newBStuff);
-                            eleBTemp.setActiveFlex(bTemp);
+                            eleBTemp.setFlexible(bTemp);
                         } else {
                             // Update of HolonElement
                             HolonElement eleTemp = updCon.getActualHolonElement(null, yMouse, 0, tables);
@@ -1004,7 +1004,7 @@ public class GUI implements CategoryListener {
                             // Flexibility
                             else if (selectedValueX == 4) {
                                 Float ftemp = Float.parseFloat(newStuff);
-                                eleTemp.setFlexibility(ftemp);
+                                eleTemp.setFlexibleEnergyAmount(ftemp);
                             }
                             // Amount of Elements update
                             else if (selectedValueX == 5) {
@@ -1013,7 +1013,7 @@ public class GUI implements CategoryListener {
                             }
                         }
                     }
-                } // For single-selection mode
+                } // ------------------ single-selection mode ------------------
                 else if (model.getSelectedCpsObjects().size() == 1) {
                     int selectedValueX = (int) Math.floor(xThis / (model.getTableHolonElement().getWidth() / 7));
                     int selectedValueBX = (int) Math.floor(xBThis / (model.getTableHolonElement().getWidth() / 7));
@@ -1033,7 +1033,7 @@ public class GUI implements CategoryListener {
                             String newBStuff = model.getSingleTable().getValueAt(selectedValueBY, selectedValueBX)
                                     .toString();
                             Boolean bTemp = Boolean.parseBoolean(newBStuff);
-                            eleBTemp.setActiveFlex(bTemp);
+                            eleBTemp.setFlexible(bTemp);
 
                             // set inactive, if flexible was clicked
                             if (bTemp) {
@@ -1055,7 +1055,7 @@ public class GUI implements CategoryListener {
                             } // Flexibility
                             else if (selectedValueX == 3) {
                                 Float ftemp = Float.parseFloat(newStuff);
-                                eleTemp.setFlexibility(ftemp);
+                                eleTemp.setFlexibleEnergyAmount(ftemp);
                             }
                             // Amount of Elements update
                             else if (selectedValueX == 4) {
@@ -1792,7 +1792,6 @@ public class GUI implements CategoryListener {
         try {
             controller.loadAutoSave(System.getProperty("user.home") + "/.config/HolonGUI/Category/Category.json");
         } catch (IOException e1) {
-            // TODO Auto-generated catch block
         }
 
         String autoPath = System.getProperty("user.home") + "/.config/HolonGUI/Autosave/";

+ 14 - 14
src/ui/view/StatisticGraph.java

@@ -164,7 +164,7 @@ public class StatisticGraph extends JPanel {
     public float getEnergyAtCurrentTimeStep(HolonObject obj) {
         float temp = 0;
         for (HolonElement e : obj.getElements()) {
-            if (e.getActive()) {
+            if (e.isActive()) {
                 temp = temp + e.getEnergyAt()[model.getCurIteration()];
             }
         }
@@ -182,7 +182,7 @@ public class StatisticGraph extends JPanel {
                 case TrackedDataSet.CONSUMPTION:
                     for (HolonElement h : ((HolonObject) set.getCpsObject()).getElements()) {
                         if (h.getEnergy() < 0) {
-                            val += (h.getEnergy() + h.getFlexibility()) * h.getAmount();
+                            val += (h.getEnergy() + h.getFlexibleEnergyAmount()) * h.getAmount();
                         }
                     }
                     val *= -1;
@@ -190,7 +190,7 @@ public class StatisticGraph extends JPanel {
                 case TrackedDataSet.PRODUCTION:
                     for (HolonElement h : ((HolonObject) set.getCpsObject()).getElements()) {
                         if (h.getEnergy() > 0) {
-                            val += (h.getEnergy() + h.getFlexibility()) * h.getAmount();
+                            val += (h.getEnergy() + h.getFlexibleEnergyAmount()) * h.getAmount();
                         }
                     }
                     break;
@@ -323,7 +323,7 @@ public class StatisticGraph extends JPanel {
             switch (set.getProperty()) {
                 case TrackedDataSet.CONSUMPTION:
                     for (HolonElement h : ((HolonObject) set.getCpsObject()).getElements()) {
-                        if (h.getTotalEnergyAtTimeStep(model.getCurIteration()) < 0 && h.getActive()) {
+                        if (h.getTotalEnergyAtTimeStep(model.getCurIteration()) < 0 && h.isActive()) {
                             val += Math.abs(h.getTotalEnergyAtTimeStep(model.getCurIteration()));
                         }
                         set.setValAt(val, model.getCurIteration());
@@ -331,7 +331,7 @@ public class StatisticGraph extends JPanel {
                     break;
                 case TrackedDataSet.PRODUCTION:
                     for (HolonElement h : ((HolonObject) set.getCpsObject()).getElements()) {
-                        if (h.getTotalEnergyAtTimeStep(model.getCurIteration()) > 0 && h.getActive()) {
+                        if (h.getTotalEnergyAtTimeStep(model.getCurIteration()) > 0 && h.isActive()) {
                             val += Math.abs(h.getTotalEnergyAtTimeStep(model.getCurIteration()));
                         }
                         set.setValAt(val, model.getCurIteration());
@@ -340,7 +340,7 @@ public class StatisticGraph extends JPanel {
                     break;
                 case TrackedDataSet.ACTIVATED_ELEMENTS:
                     for (HolonElement h : ((HolonObject) set.getCpsObject()).getElements()) {
-                        if (h.getActive()) {
+                        if (h.isActive()) {
                             val += h.getAmount();
                         }
                         set.setValAt(val, model.getCurIteration());
@@ -487,7 +487,7 @@ public class StatisticGraph extends JPanel {
                     for (SubNet sub : controller.getSimManager().getSubNets()) {
                         for (HolonObject obj : sub.getObjects()) {
                             for (HolonElement ele : obj.getElements()) {
-                                if (ele.getActive()) {
+                                if (ele.isActive()) {
                                     val++;
                                 }
                             }
@@ -500,7 +500,7 @@ public class StatisticGraph extends JPanel {
                     for (SubNet sub : controller.getSimManager().getSubNets()) {
                         for (HolonObject obj : sub.getObjects()) {
                             for (HolonElement ele : obj.getElements()) {
-                                if (!ele.getActive()) {
+                                if (!ele.isActive()) {
                                     val++;
                                 }
                             }
@@ -612,7 +612,7 @@ public class StatisticGraph extends JPanel {
             if (obj instanceof HolonObject) {
                 for (HolonElement ele : ((HolonObject) obj).getElements()) {
                     if (ele.getEnergy() > 0) {
-                        val += (ele.getEnergy() + ele.getFlexibility()) * ele.getAmount();
+                        val += (ele.getEnergy() + ele.getFlexibleEnergyAmount()) * ele.getAmount();
                     }
                 }
             } else if (obj instanceof CpsUpperNode) {
@@ -632,7 +632,7 @@ public class StatisticGraph extends JPanel {
             if (obj instanceof HolonObject) {
                 for (HolonElement ele : ((HolonObject) obj).getElements()) {
                     if (ele.getEnergy() < 0) {
-                        val += (ele.getEnergy() + ele.getFlexibility()) * ele.getAmount();
+                        val += (ele.getEnergy() + ele.getFlexibleEnergyAmount()) * ele.getAmount();
                     }
                 }
             } else if (obj instanceof CpsUpperNode) {
@@ -653,7 +653,7 @@ public class StatisticGraph extends JPanel {
         for (AbstractCpsObject obj : objects) {
             if (obj instanceof HolonObject) {
                 for (HolonElement ele : ((HolonObject) obj).getElements()) {
-                    val += (ele.getEnergy() + ele.getFlexibility()) * ele.getAmount();
+                    val += (ele.getEnergy() + ele.getFlexibleEnergyAmount()) * ele.getAmount();
                 }
             } else if (obj instanceof CpsUpperNode) {
                 val += getMaxWastedEnergy(((CpsUpperNode) obj).getNodes());
@@ -673,7 +673,7 @@ public class StatisticGraph extends JPanel {
         for (AbstractCpsObject obj : objects) {
             if (obj instanceof HolonObject) {
                 for (HolonElement ele : ((HolonObject) obj).getElements()) {
-                    if (ele.getTotalEnergyAtTimeStep(tStep) > 0 && ele.getActive()) {
+                    if (ele.getTotalEnergyAtTimeStep(tStep) > 0 && ele.isActive()) {
                         val += ele.getTotalEnergyAtTimeStep(tStep);
                     }
                 }
@@ -693,7 +693,7 @@ public class StatisticGraph extends JPanel {
         for (AbstractCpsObject obj : objects) {
             if (obj instanceof HolonObject) {
                 for (HolonElement ele : ((HolonObject) obj).getElements()) {
-                    if (ele.getEnergyAt()[tStep] < 0 && ele.getActive()) {
+                    if (ele.getEnergyAt()[tStep] < 0 && ele.isActive()) {
                         val += ele.getTotalEnergyAtTimeStep(tStep);
                     }
                 }
@@ -713,7 +713,7 @@ public class StatisticGraph extends JPanel {
         for (AbstractCpsObject obj : objects) {
             if (obj instanceof HolonObject) {
                 for (HolonElement ele : ((HolonObject) obj).getElements()) {
-                    if (ele.getActive()) {
+                    if (ele.isActive()) {
                         val += ele.getTotalEnergyAtTimeStep(tStep);
                     }
                 }