ソースを参照

Flexibility fields and flexibility user inputs

Edgardo Palza 7 年 前
コミット
1dbb9c43c5

+ 40 - 0
src/classes/HolonElement.java

@@ -41,6 +41,14 @@ public class HolonElement {
 	/* Unique Id of the Element */
 	@Expose
 	private int id;
+	/*
+	 * Flexibility
+	 */
+	private float flexibility;
+	/*
+	 * Active the flexibility field
+	 */
+	private boolean activeFlex;
 	/*
 	 * Energy at each point of the graph with 100 predefined points. At the
 	 * beginning, it starts with all values at energy
@@ -69,6 +77,8 @@ public class HolonElement {
 		setEnergyAt(energy);
 		setGraphPoints(new LinkedList<Point>());
 		setId(IdCounterElem.nextId());
+		setFlexibility(0);
+		setActiveFlex(false);
 	}
 
 	/**
@@ -94,6 +104,8 @@ public class HolonElement {
 		setSav("CVS");
 		setObj(element.getObj());
 		setId(IdCounterElem.nextId());
+		setFlexibility(0);
+		setActiveFlex(false);
 	}
 
 	/**
@@ -307,6 +319,34 @@ public class HolonElement {
 		this.graphPoints = points;
 	}
 
+	/**
+	 * Set the flexibility of an element
+	 */
+	public void setFlexibility(float f) {
+		this.flexibility = f;
+	}
+
+	/**
+	 * Get the flexibility of an element
+	 */
+	public float getFlexibility() {
+		return this.flexibility;
+	}
+
+	/**
+	 * Set the flexibility of an element
+	 */
+	public void setActiveFlex(boolean b) {
+		this.activeFlex = b;
+	}
+
+	/**
+	 * Get the flexibility of an element
+	 */
+	public boolean getActiveFlex() {
+		return this.activeFlex;
+	}
+
 	/**
 	 * Set the ID of the HolonElement (one time only).
 	 * 

+ 3 - 2
src/classes/HolonObject.java

@@ -35,14 +35,15 @@ public class HolonObject extends AbstractCpsObject {
 	/* Array for tracking Consumption */
 	private float[] trackingCons;
 	/*
-	 * 0 = no energy, 1 = not supplied, 2 = supplied, 3 producer, 4 Partially Supplied
+	 * 0 = no energy, 1 = not supplied, 2 = supplied, 3 producer, 4 Partially
+	 * Supplied
 	 */
 	public final static int NO_ENERGY = 0;
 	public final static int NOT_SUPPLIED = 1;
 	public final static int SUPPLIED = 2;
 	public final static int PRODUCER = 3;
 	public final static int PARTIALLY_SUPPLIED = 4;
-	
+
 	@Expose
 	private int state = 0;
 

+ 3 - 2
src/ui/controller/UpdateController.java

@@ -61,7 +61,7 @@ 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.getAmount(), he.getActive() };
+								he.getFlexibility(), he.getAmount(), he.getActive(), he.getActiveFlex() };
 						table.addRow(temp);
 					}
 				}
@@ -70,7 +70,8 @@ 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.getAmount(), he.getActive() };
+					Object[] temp = { he.getId(), he.getEleName(), he.getEnergy(), he.getFlexibility(), he.getAmount(),
+							he.getActive(), he.getActiveFlex() };
 					table.addRow(temp);
 				}
 			}

+ 45 - 17
src/ui/view/GUI.java

@@ -261,8 +261,10 @@ public class GUI<E> implements CategoryListener {
 	private final JMenuItem mntmResetCategory = new JMenuItem("Reset Categories");
 	private final JMenu mnLanguage = new JMenu("Language");
 
-	private String[] columnNamesMulti = { "Object", "Nr.", "Device", "Energy", "Quantity", "Activated" };
-	private String[] columnNamesSingle = { "Nr.", "Device", "Energy", "Quantity", "Activated" };
+	private String[] columnNamesMulti = { "Object", "Nr.", "Device", "Energy", "Flexibility", "Quantity", "Activated",
+			"Flex. activated" };
+	private String[] columnNamesSingle = { "Nr.", "Device", "Energy", "Flexibility", "Quantity", "Activated",
+			"Flex. activated" };
 	private ArrayList<PropertyTable> tables = new ArrayList<PropertyTable>();
 	private String[] comboBoxCat = { "Category", "Object", "Switch" };
 	private String warningText = "Warning";
@@ -353,7 +355,7 @@ public class GUI<E> implements CategoryListener {
 						}
 					}
 					unitGraph.empty();
-				} catch (IOException  eex) {
+				} catch (IOException eex) {
 					// TODO Auto-generated catch block
 					eex.printStackTrace();
 				}
@@ -386,7 +388,7 @@ public class GUI<E> implements CategoryListener {
 						}
 					}
 					unitGraph.empty();
-				} catch (IOException  ex) {
+				} catch (IOException ex) {
 					// TODO Auto-generated catch block
 					ex.printStackTrace();
 				}
@@ -528,7 +530,7 @@ public class GUI<E> implements CategoryListener {
 				try {
 					if (((JScrollPane) tabbedPane.getSelectedComponent()).getViewport()
 							.getComponent(0) instanceof UpperNodeCanvas)
-						
+
 						controller.paste(
 								((UpperNodeCanvas) ((JScrollPane) tabbedPane.getSelectedComponent()).getViewport()
 										.getComponent(0)).upperNode,
@@ -947,16 +949,24 @@ public class GUI<E> implements CategoryListener {
 					int selectedValueBY = (int) Math.floor(yBMouse / 16);
 					// for multi-selection mode
 					if (model.getSelectedCpsObjects().size() > 1) {
-						int selectedValueX = (int) Math.floor(xThis / (model.getTableHolonElement().getWidth() / 6));
-						int selectedValueBX = (int) Math.floor(xBThis / (model.getTableHolonElement().getWidth() / 6));
+						int selectedValueX = (int) Math.floor(xThis / (model.getTableHolonElement().getWidth() / 8));
+						int selectedValueBX = (int) Math.floor(xBThis / (model.getTableHolonElement().getWidth() / 8));
 						if (updCon.getHolonObj(yMouse, model.getMultiTable()) != null) {
-							// For last column (boolean with a checkbox)
-							if (selectedValueBX == 5) {
+							// For active column (boolean with a checkbox)
+							if (selectedValueBX == 6) {
 								HolonElement eleBTemp = updCon.getActualHolonElement(null, yBMouse, 0, tables);
 								String newBStuff = model.getMultiTable().getValueAt(selectedValueBY, selectedValueBX)
 										.toString();
 								Boolean bTemp = Boolean.parseBoolean(newBStuff);
 								eleBTemp.setActive(bTemp);
+							}
+							// For activeFlex column (boolean with a checkbox)
+							else if (selectedValueBX == 7) {
+								HolonElement eleBTemp = updCon.getActualHolonElement(null, yBMouse, 0, tables);
+								String newBStuff = model.getMultiTable().getValueAt(selectedValueBY, selectedValueBX)
+										.toString();
+								Boolean bTemp = Boolean.parseBoolean(newBStuff);
+								eleBTemp.setActiveFlex(bTemp);
 							} else {
 								// Update of HolonElement
 								HolonElement eleTemp = updCon.getActualHolonElement(null, yMouse, 0, tables);
@@ -971,8 +981,13 @@ public class GUI<E> implements CategoryListener {
 									Float ftemp = Float.parseFloat(newStuff);
 									eleTemp.setEnergy(ftemp);
 								}
-								// Amount of Elements update
+								// Flexibility
 								else if (selectedValueX == 4) {
+									Float ftemp = Float.parseFloat(newStuff);
+									eleTemp.setFlexibility(ftemp);
+								}
+								// Amount of Elements update
+								else if (selectedValueX == 5) {
 									Integer iTemp = Integer.parseInt(newStuff);
 									eleTemp.setAmount(iTemp);
 								}
@@ -980,17 +995,25 @@ public class GUI<E> implements CategoryListener {
 						}
 					} // For single-selection mode
 					else if (model.getSelectedCpsObjects().size() == 1) {
-						int selectedValueX = (int) Math.floor(xThis / (model.getTableHolonElement().getWidth() / 5));
-						int selectedValueBX = (int) Math.floor(xBThis / (model.getTableHolonElement().getWidth() / 5));
+						int selectedValueX = (int) Math.floor(xThis / (model.getTableHolonElement().getWidth() / 7));
+						int selectedValueBX = (int) Math.floor(xBThis / (model.getTableHolonElement().getWidth() / 7));
 						if (updCon.getActualCps() != null && updCon.getActualCps().getClass() == HolonObject.class) {
-							// For last column (boolean with a checkbox)
-							if (selectedValueBX == 4) {
+							// For active column (boolean with a checkbox)
+							if (selectedValueBX == 5) {
 								HolonElement eleBTemp = updCon
 										.getActualHolonElement((HolonObject) updCon.getActualCps(), yBMouse, 0, tables);
 								String newBStuff = model.getSingleTable().getValueAt(selectedValueBY, selectedValueBX)
 										.toString();
 								Boolean bTemp = Boolean.parseBoolean(newBStuff);
 								eleBTemp.setActive(bTemp);
+							} // For activeFlex column (boolean with a checkbox)
+							else if (selectedValueBX == 6) {
+								HolonElement eleBTemp = updCon
+										.getActualHolonElement((HolonObject) updCon.getActualCps(), yBMouse, 0, tables);
+								String newBStuff = model.getSingleTable().getValueAt(selectedValueBY, selectedValueBX)
+										.toString();
+								Boolean bTemp = Boolean.parseBoolean(newBStuff);
+								eleBTemp.setActiveFlex(bTemp);
 							} else {
 								// Update of HolonElement
 								HolonElement eleTemp = updCon.getActualHolonElement((HolonObject) updCon.getActualCps(),
@@ -1004,8 +1027,13 @@ public class GUI<E> implements CategoryListener {
 								else if (selectedValueX == 2) {
 									Float ftemp = Float.parseFloat(newStuff);
 									eleTemp.setEnergy(ftemp);
-								} // Amount of Elements update
+								} // Flexibility
 								else if (selectedValueX == 3) {
+									Float ftemp = Float.parseFloat(newStuff);
+									eleTemp.setFlexibility(ftemp);
+								}
+								// Amount of Elements update
+								else if (selectedValueX == 4) {
 									Integer iTemp = Integer.parseInt(newStuff);
 									eleTemp.setAmount(iTemp);
 								}
@@ -1669,7 +1697,7 @@ public class GUI<E> implements CategoryListener {
 						}
 					}
 					unitGraph.empty();
-				} catch (IOException  e) {
+				} catch (IOException e) {
 					// TODO Auto-generated catch block
 					e.printStackTrace();
 				}
@@ -1705,7 +1733,7 @@ public class GUI<E> implements CategoryListener {
 						}
 					}
 					unitGraph.empty();
-				} catch (IOException  e) {
+				} catch (IOException e) {
 					// TODO Auto-generated catch block
 					e.printStackTrace();
 				}

+ 9 - 4
src/ui/view/PropertyTable.java

@@ -1,6 +1,7 @@
 package ui.view;
 
 import javax.swing.table.DefaultTableModel;
+
 /**
  * Property Table.
  * 
@@ -11,15 +12,19 @@ public class PropertyTable extends DefaultTableModel {
 	@Override
 	public Class<?> getColumnClass(int columnIndex) {
 		Class clazz = String.class;
-		if (getColumnCount() == 6) {
+		if (getColumnCount() == 8) {
 			switch (columnIndex) {
-			case 5:
+			case 6:
+				clazz = Boolean.class;
+			case 7:
 				clazz = Boolean.class;
 				break;
 			}
-		} else if (getColumnCount() == 5) {
+		} else if (getColumnCount() == 7) {
 			switch (columnIndex) {
-			case 4:
+			case 5:
+				clazz = Boolean.class;
+			case 6:
 				clazz = Boolean.class;
 				break;
 			}