소스 검색

HolonElements are now correctly shown in the right table

Edgardo Palza 8 년 전
부모
커밋
5488cb4c80

BIN
bin/classes/HolonElement.class


BIN
bin/ui/view/GUI$1.class


BIN
bin/ui/view/GUI$2.class


BIN
bin/ui/view/GUI$3.class


BIN
bin/ui/view/GUI$4.class


BIN
bin/ui/view/GUI$5.class


BIN
bin/ui/view/GUI$6.class


BIN
bin/ui/view/GUI.class


BIN
bin/ui/view/MyCanvas.class


+ 24 - 16
src/classes/HolonElement.java

@@ -14,17 +14,21 @@ public class HolonElement {
 	float totalEnergy;
 	/* Path of the image for the Obj. */
 	String image;
+	/* +: for Consumers and -: Producers */
+	String sign;
 
-	
-	
 	public HolonElement(String eleName, float energy, int amount) {
 		setEleName(eleName);
 		setAmount(amount);
 		setEnergy(energy);
 		setActive(true);
+		if (energy < 0) {
+			setSign("-");
+		} else {
+			setSign("+");
+		}
 	}
 
-
 	/**
 	 * @return the name
 	 */
@@ -33,7 +37,8 @@ public class HolonElement {
 	}
 
 	/**
-	 * @param name the name to set
+	 * @param name
+	 *            the name to set
 	 */
 	public void setEleName(String name) {
 		this.eleName = name;
@@ -47,7 +52,8 @@ public class HolonElement {
 	}
 
 	/**
-	 * @param amount the amount to set
+	 * @param amount
+	 *            the amount to set
 	 */
 	public void setAmount(int amount) {
 		this.amount = amount;
@@ -61,7 +67,8 @@ public class HolonElement {
 	}
 
 	/**
-	 * @param energy the energy to set
+	 * @param energy
+	 *            the energy to set
 	 */
 	public void setEnergy(float energy) {
 		this.energy = energy;
@@ -75,7 +82,8 @@ public class HolonElement {
 	}
 
 	/**
-	 * @param active the active to set
+	 * @param active
+	 *            the active to set
 	 */
 	public void setActive(boolean active) {
 		this.active = active;
@@ -88,21 +96,14 @@ public class HolonElement {
 		return image;
 	}
 
-
-
-
-
 	/**
-	 * @param image the image to set
+	 * @param image
+	 *            the image to set
 	 */
 	public void setImage(String image) {
 		this.image = image;
 	}
 
-
-
-
-
 	/**
 	 * Multiply the amount of gadgets, given by the user, and the
 	 * consumption/production. If the switch isWorking is turned off for on
@@ -115,4 +116,11 @@ public class HolonElement {
 		return totalEnergy;
 	}
 
+	public void setSign(String s) {
+		this.sign = s;
+	}
+
+	public String getSign() {
+		return sign;
+	}
 }

+ 31 - 11
src/ui/view/GUI.java

@@ -1,6 +1,7 @@
 package ui.view;
 
 import java.io.File;
+import java.text.AttributedCharacterIterator;
 import java.util.ArrayList;
 import javax.swing.JFrame;
 import javax.swing.JLabel;
@@ -23,13 +24,19 @@ import javax.swing.tree.DefaultMutableTreeNode;
 import javax.swing.JEditorPane;
 import javax.swing.JFileChooser;
 import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableModel;
 
 import java.awt.Color;
 import java.awt.Component;
 import java.awt.Cursor;
 import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.FontMetrics;
+import java.awt.Graphics;
 import java.awt.Image;
 import java.awt.Point;
+import java.awt.Rectangle;
+import java.awt.Shape;
 import java.awt.Toolkit;
 import java.awt.BorderLayout;
 
@@ -42,6 +49,7 @@ import javax.swing.ImageIcon;
 
 import classes.Category;
 import classes.CpsObject;
+import classes.HolonElement;
 import classes.HolonObject;
 import classes.HolonSwitch;
 import classes.HolonTransformer;
@@ -50,6 +58,7 @@ import Interfaces.CategoryListener;
 import java.awt.event.ActionListener;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
+import java.awt.image.ImageObserver;
 import java.awt.event.ActionEvent;
 
 public class GUI implements CategoryListener {
@@ -75,7 +84,8 @@ public class GUI implements CategoryListener {
 	private final JEditorPane dtrpnHereWillBe = new JEditorPane();
 	private final JSplitPane splitPane_2 = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
 
-	private JTable table;
+	private JTable table = new JTable();
+	private DefaultTableModel tableModel = new DefaultTableModel();
 	private final Model model;
 	private final Control controller;
 	private AddObjectPopUp addObjectPopUP;
@@ -137,11 +147,6 @@ public class GUI implements CategoryListener {
 
 		menuBar.add(mnHelp);
 
-		// Table
-		String[] columnNames = { "Gadget", "Typ", "Energy", "Quantity" };
-
-		Object[][] data = {};
-
 		canvas.setBackground(Color.WHITE);
 		canvas.setPreferredSize(new Dimension(10000, 10000));
 		JScrollPane canvasSP = new JScrollPane(canvas);
@@ -158,14 +163,15 @@ public class GUI implements CategoryListener {
 		scrollPane_2.setViewportView(dtrpnHereWillBe);
 
 		JScrollPane scrollPane = new JScrollPane();
-
-		table = new JTable(data, columnNames);
+		// Table Set up
+		Object[] columnNames = { "Gadget", "Typ", "Energy", "Quantity" };
+		tableModel.setColumnIdentifiers(columnNames);
+		table.setModel(tableModel);
 		scrollPane.setViewportView(table);
-
 		table.setFillsViewportHeight(true);
-		table.setModel(new DefaultTableModel(data, columnNames));
 		table.setCellSelectionEnabled(true);
 		table.setColumnSelectionAllowed(true);
+
 		frmCyberPhysical.getContentPane().setLayout(new BorderLayout(0, 0));
 
 		TreeCellRenderer customRenderer = new TreeCellRenderer() {
@@ -247,7 +253,6 @@ public class GUI implements CategoryListener {
 			public void mousePressed(MouseEvent e) {
 				try {
 					actualObjectClicked = tree.getPathForLocation(e.getX(), e.getY()).getLastPathComponent().toString();
-
 					for (Category cat : model.getCategories()) {
 						for (CpsObject cps : cat.getObjects()) {
 							if (actualObjectClicked.compareTo(cps.getCompareName()) == 0) {
@@ -313,6 +318,21 @@ public class GUI implements CategoryListener {
 			}
 		});
 
+		canvas.addMouseListener(new MouseAdapter() {
+			@Override
+			public void mousePressed(MouseEvent e) {
+				if (tableModel.getRowCount() > 0) {
+					for (int i = tableModel.getRowCount() - 1; i > -1; i--) {
+						tableModel.removeRow(i);
+					}
+				}
+				for (HolonElement he : canvas.dataSelected) {
+					Object[] temp = { he.getEleName(), he.getSign(), he.getEnergy(), he.getAmount() };
+					tableModel.addRow(temp);
+				}
+			}
+		});
+
 		toolBar.add(btnAdd);
 
 		// Del Button

+ 15 - 10
src/ui/view/MyCanvas.java

@@ -32,6 +32,7 @@ import javax.swing.JToolTip;
 import classes.CpsObject;
 import classes.HolonElement;
 import classes.HolonObject;
+import classes.HolonSwitch;
 import ui.controller.Control;
 import ui.model.*;
 
@@ -45,6 +46,7 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 	Graphics2D g2; // For Painting
 	private int cx;
 	private int cy;
+	ArrayList<HolonElement> dataSelected = new ArrayList<HolonElement>();
 
 	boolean dragging = false;
 	boolean drawEdge = false;
@@ -97,21 +99,20 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 			g2.setColor(Color.GREEN);
 			g2.fillRect((int) selectRect.getX(), (int) selectRect.getY(), (int) selectRect.getWidth(),
 					(int) selectRect.getHeight());
+
 		}
 
 		// drawEdges
 		g2.setColor(Color.BLACK);
 		if (drawEdge)
-			g2.drawLine(tempCps.getPos().x + controller.getScaleDiv2(),
-					tempCps.getPos().y + controller.getScaleDiv2(), x, y);
+			g2.drawLine(tempCps.getPos().x + controller.getScaleDiv2(), tempCps.getPos().y + controller.getScaleDiv2(),
+					x, y);
 
 		for (CpsObject cps : model.getObjectsOnCanvas()) {
 			for (CpsObject con : cps.getConnectedTo()) {
 				if (con.getID() != model.getSelectedObjectID() && cps.getID() != model.getSelectedObjectID())
-					g2.drawLine(cps.getPos().x + controller.getScaleDiv2(),
-							cps.getPos().y + controller.getScaleDiv2(),
-							con.getPos().x + controller.getScaleDiv2(),
-							con.getPos().y + controller.getScaleDiv2());
+					g2.drawLine(cps.getPos().x + controller.getScaleDiv2(), cps.getPos().y + controller.getScaleDiv2(),
+							con.getPos().x + controller.getScaleDiv2(), con.getPos().y + controller.getScaleDiv2());
 			}
 		}
 
@@ -120,10 +121,8 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		for (CpsObject cps : model.getObjectsOnCanvas()) {
 			for (CpsObject con : cps.getConnectedTo()) {
 				if (con.getID() == model.getSelectedObjectID())
-					g2.drawLine(cps.getPos().x + controller.getScaleDiv2(),
-							cps.getPos().y + controller.getScaleDiv2(),
-							con.getPos().x + controller.getScaleDiv2(),
-							con.getPos().y + controller.getScaleDiv2());
+					g2.drawLine(cps.getPos().x + controller.getScaleDiv2(), cps.getPos().y + controller.getScaleDiv2(),
+							con.getPos().x + controller.getScaleDiv2(), con.getPos().y + controller.getScaleDiv2());
 			}
 		}
 
@@ -166,6 +165,12 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 				tempCps = cps;
 				if (e.isControlDown())
 					drawEdge = true;
+				if (tempCps.getClass() == HolonObject.class) {
+					HolonObject tempObj = ((HolonObject) tempCps);
+					dataSelected = tempObj.getElements();
+				} else {
+					dataSelected = null;
+				}
 			}
 		}