Browse Source

GroupNode aggregate informations

Tom Troppmann 5 years ago
parent
commit
3b6ac73972
3 changed files with 51 additions and 8 deletions
  1. 43 0
      src/ui/controller/UpdateController.java
  2. 1 1
      src/ui/view/GUI.java
  3. 7 7
      src/ui/view/MyCanvas.java

+ 43 - 0
src/ui/controller/UpdateController.java

@@ -10,6 +10,8 @@ import classes.comparator.elementComparator.ElemCompOnIsFlexible;
 import classes.comparator.elementComparator.ElemCompOnObj;
 import classes.comparator.elementComparator.ElemCompOnQuantity;
 import classes.comparator.elementComparator.ElementComparator;
+import ui.model.DecoratedGroupNode;
+import ui.model.DecoratedHolonObject.HolonObjectState;
 import ui.model.Model;
 import ui.view.DefaulTable;
 import ui.view.Languages;
@@ -329,6 +331,8 @@ public class UpdateController {
 			} else if (obj instanceof CpsUpperNode) {
 				deleteRows(model.getSingleTable());
 				deleteRows(model.getMultiTable());
+				//short fix please make me new
+				DecoratedGroupNode dGroupNode = controller.getSimManager().getVisualRepresentationalState(model.getCurIteration()).getCreatedGroupNodes().get((CpsUpperNode) obj);
 				Object[] numEle = { "Number of Elements", ((CpsUpperNode) obj).getNodes().size() };
 				Object[] numObj = { "Number of HolonObject", ((CpsUpperNode) obj).getNumHolonObj().size() };
 				Object[] numSwi = { "Number of HolonSwitch", ((CpsUpperNode) obj).getNumSwitches().size() };
@@ -337,6 +341,45 @@ public class UpdateController {
 				model.getPropertyTable().addRow(numObj);
 				model.getPropertyTable().addRow(numSwi);
 				model.getPropertyTable().addRow(numUpp);
+				if(dGroupNode != null) {
+					int numerator, denominator;
+					Object[] title = { "HolonObjectsInformations:", "" };
+					
+					denominator	= dGroupNode.getAmountOfConsumer() + dGroupNode.getAmountOfSupplier() + dGroupNode.getAmountOfPassiv();
+					
+					numerator = dGroupNode.getAmountOfSupplier();
+					Object[] producer = { "Producer(%):",  numerator + "/" + denominator + "("+ (float)numerator/(float)denominator * 100 + "%)"};					
+					numerator = dGroupNode.getAmountOfConsumerWithState(HolonObjectState.NOT_SUPPLIED);
+					Object[] notSupplied = { "NotSupplied(%):",  numerator + "/" + denominator + "("+ (float)numerator/(float)denominator * 100 + "%)"};
+					numerator = dGroupNode.getAmountOfConsumerWithState(HolonObjectState.PARTIALLY_SUPPLIED);
+					Object[] partiallySupplied = { "PartriallySupplied(%):",  numerator + "/" + denominator + "("+ (float)numerator/(float)denominator * 100 + "%)"};
+					numerator = dGroupNode.getAmountOfConsumerWithState(HolonObjectState.SUPPLIED);
+					Object[] supplied = { "Supplied(%):",  numerator + "/" + denominator + "("+ (float)numerator/(float)denominator * 100 + "%)"};
+					numerator = dGroupNode.getAmountOfConsumerWithState(HolonObjectState.OVER_SUPPLIED);
+					Object[] overSupplied = { "OverSupplied(%):",  numerator + "/" + denominator + "("+ (float)numerator/(float)denominator * 100 + "%)"};
+					numerator = dGroupNode.getAmountOfPassiv();
+					Object[] passiv = { "Passiv(%):",  numerator + "/" + denominator + "("+ (float)numerator/(float)denominator * 100 + "%)"};
+					
+					numerator = dGroupNode.getPassivList().stream().map(object -> object.getModel().getNumberOfActiveElements()).reduce(0, (a, b) -> a + b)+
+								dGroupNode.getSupplierList().stream().map(object -> object.getModel().getNumberOfActiveElements()).reduce(0, (a, b) -> a + b)+
+								dGroupNode.getConsumerList().stream().map(object -> object.getModel().getNumberOfActiveElements()).reduce(0, (a, b) -> a + b);
+					denominator = dGroupNode.getPassivList().stream().map(object -> object.getModel().getElements().size()).reduce(0, (a, b) -> a + b)+
+							dGroupNode.getSupplierList().stream().map(object -> object.getModel().getElements().size()).reduce(0, (a, b) -> a + b)+
+							dGroupNode.getConsumerList().stream().map(object -> object.getModel().getElements().size()).reduce(0, (a, b) -> a + b);
+					Object[] aktiv = { "AktivHolonElemnts(%):",  numerator + "/" + denominator + "("+ (float)numerator/(float)denominator * 100 + "%)"};
+					
+					Object[] nothing= {"", ""};
+					model.getPropertyTable().addRow(title);
+					model.getPropertyTable().addRow(producer);
+					model.getPropertyTable().addRow(notSupplied);
+					model.getPropertyTable().addRow(partiallySupplied);
+					model.getPropertyTable().addRow(supplied);
+					model.getPropertyTable().addRow(overSupplied);
+					model.getPropertyTable().addRow(passiv);
+					model.getPropertyTable().addRow(nothing);
+					model.getPropertyTable().addRow(aktiv);
+				}
+				
 			} else if (obj instanceof HolonBattery) {
 				deleteRows(model.getSingleTable());
 				deleteRows(model.getMultiTable());

+ 1 - 1
src/ui/view/GUI.java

@@ -3156,7 +3156,7 @@ public class GUI implements CategoryListener {
 	 * @param state
 	 */
 	public void guiDisable(boolean state) {
-		canvas.diabled = state;
+		canvas.disabled = state;
 		for (int i = 1; i < tabbedPaneInnerOriginal.getTabCount(); i++) {
 			JScrollPane scrollPaneOriginal = (JScrollPane) tabbedPaneInnerOriginal
 					.getComponentAt(i);

+ 7 - 7
src/ui/view/MyCanvas.java

@@ -50,7 +50,7 @@ public class MyCanvas extends AbstractCanvas implements MouseListener,
 		MouseMotionListener {
 
 	private static final long serialVersionUID = 1L;
-	public boolean diabled = false;
+	public boolean disabled = false;
 	/**
 	 * Constructor.
 	 *
@@ -643,7 +643,7 @@ public class MyCanvas extends AbstractCanvas implements MouseListener,
 		if(mayBeReplaced != null){
 			g2d.setColor(Color.RED);
 			Position pos = mayBeReplaced.getPosition();
-			g.drawImage(Util.loadImage("/Images/replace.png") , 
+			g2d.drawImage(Util.loadImage("/Images/replace.png") , 
 					pos.x + controller.getScaleDiv2(),
 					pos.y - controller.getScale(),
 					controller.getScaleDiv2(), controller.getScaleDiv2(), null);
@@ -653,7 +653,7 @@ public class MyCanvas extends AbstractCanvas implements MouseListener,
 
 	@Override
 	public void mouseClicked(MouseEvent e) {
-		if(!diabled){
+		if(!disabled){
 			if (e.getButton() == MouseEvent.BUTTON1) {
 			DefaulTable propertyTable = model.getPropertyTable();
 			if (propertyTable.getRowCount() > 0) {
@@ -678,7 +678,7 @@ public class MyCanvas extends AbstractCanvas implements MouseListener,
 
 	@Override
 	public void mousePressed(MouseEvent e) {
-		if(!diabled){
+		if(!disabled){
 		stopEditing();
 		tempCps = null;
 		edgeHighlight = null;
@@ -740,7 +740,7 @@ public class MyCanvas extends AbstractCanvas implements MouseListener,
 
 	@Override
 	public void mouseReleased(MouseEvent e) {
-		if(!diabled){
+		if(!disabled){
 		x = e.getX();
 		y = e.getY();
 
@@ -812,7 +812,7 @@ public class MyCanvas extends AbstractCanvas implements MouseListener,
 
 	@Override
 	public void mouseDragged(MouseEvent e) {
-		if(!diabled){
+		if(!disabled){
 		// If Edge is drawn
 		x = e.getX();
 		y = e.getY();
@@ -919,7 +919,7 @@ public class MyCanvas extends AbstractCanvas implements MouseListener,
 
 	@Override
 	public void mouseMoved(MouseEvent e) {	
-		if(!diabled){
+		if(!disabled){
 		x = e.getX();
 		y = e.getY();