소스 검색

No repeated HolonElement Name allowed

Edgardo Palza 8 년 전
부모
커밋
29124bdbd3
2개의 변경된 파일55개의 추가작업 그리고 19개의 파일을 삭제
  1. 18 1
      src/ui/view/AddElementPopUp.java
  2. 37 18
      src/ui/view/GUI.java

+ 18 - 1
src/ui/view/AddElementPopUp.java

@@ -18,7 +18,10 @@ import javax.swing.JComboBox;
 import javax.swing.DefaultComboBoxModel;
 import javax.swing.ImageIcon;
 
+import classes.CpsObject;
 import classes.HolonElement;
+import classes.HolonObject;
+import ui.model.Model;
 
 import java.awt.event.ActionListener;
 import java.awt.event.KeyEvent;
@@ -32,12 +35,14 @@ public class AddElementPopUp extends JDialog {
 	private JTextField providedEnergy;
 	private JTextField amount;
 	private HolonElement hl;
+	private CpsObject tempCps;
 
 	/**
 	 * Launch the application.
 	 */
 	public static void main(String[] args) {
 		try {
+
 			AddElementPopUp dialog = new AddElementPopUp();
 			dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
 			dialog.setVisible(true);
@@ -120,7 +125,14 @@ public class AddElementPopUp extends JDialog {
 				JButton okButton = new JButton("OK");
 				okButton.addActionListener(new ActionListener() {
 					public void actionPerformed(ActionEvent arg0) {
-						if (elementName.getText().length() != 0) {
+						boolean repeated = false;
+						for (HolonElement e : ((HolonObject) tempCps).getElements()) {
+							if (elementName.getText().equals(e.getEleName())) {
+								repeated = true;
+								break;
+							}
+						}
+						if (elementName.getText().length() != 0 && !repeated) {
 							try {
 								float energy = Float.parseFloat(providedEnergy.getText().toString());
 								int elementAmount = Integer.parseInt(amount.getText().toString());
@@ -137,6 +149,7 @@ public class AddElementPopUp extends JDialog {
 							// JOptionPane.showMessageDialog(new JFrame(),
 							// "Please enter a Name");
 							elementName.setBackground(new Color(255, 50, 50));
+							// Jlabel repeatedString = new JLabel();
 						}
 					}
 				});
@@ -157,6 +170,10 @@ public class AddElementPopUp extends JDialog {
 		}
 	}
 
+	public void setActualCps(CpsObject cps) {
+		this.tempCps = cps;
+	}
+
 	public HolonElement getElement() {
 		return hl;
 	}

+ 37 - 18
src/ui/view/GUI.java

@@ -41,6 +41,7 @@ import javax.swing.JTabbedPane;
 import javax.swing.JTable;
 import javax.swing.JToolBar;
 import javax.swing.JTree;
+import javax.swing.SwingUtilities;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
 import javax.swing.table.DefaultTableModel;
@@ -78,6 +79,8 @@ public class GUI<E> implements CategoryListener {
 	private final JScrollPane scrollPane_1 = new JScrollPane();
 	private final JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
 	private final JScrollPane scrollPane_2 = new JScrollPane();
+	private JPopupMenu popmenuEdit = new JPopupMenu();
+	private JMenuItem editItem = new JMenuItem("Edit Object");
 
 	private final JLabel maxGraph = new JLabel("100%");
 	private final JLabel medGraph = new JLabel("50%");
@@ -318,9 +321,11 @@ public class GUI<E> implements CategoryListener {
 				if (tempCpsObject != null && tempCpsObject.getClass() == HolonObject.class
 						&& tempCpsObject.getID() != 0) {
 					addElementPopUp = new AddElementPopUp();
+					addElementPopUp.setActualCps(getActualCps());
 					addElementPopUp.setVisible(true);
-					controller.addElementCanvasObject(tempCpsObject.getID(), addElementPopUp.getElement().getEleName(),
-							addElementPopUp.getElement().getAmount(), addElementPopUp.getElement().getEnergy());
+					HolonElement ele = addElementPopUp.getElement();
+					controller.addElementCanvasObject(tempCpsObject.getID(), ele.getEleName(), ele.getAmount(),
+							ele.getEnergy());
 					refreshTableHolonElement();
 					refreshTableProperties();
 				}
@@ -514,6 +519,13 @@ public class GUI<E> implements CategoryListener {
 			}
 		});
 
+		popmenuEdit.add(editItem);
+		editItem.setEnabled(false);
+		editItem.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+			}
+		});
 		tree.addMouseListener(new MouseAdapter() {
 			public void mousePressed(MouseEvent e) {
 				try {
@@ -533,23 +545,30 @@ public class GUI<E> implements CategoryListener {
 						// selected).getElements());
 						// }
 					}
-					for (Category cat : model.getCategories()) {
-						for (CpsObject cps : cat.getObjects()) {
-							if (actualObjectClicked.compareTo(cps.getCompareName()) == 0) {
-								File checkPath = new File(cps.getImage());
-								if (checkPath.exists()) {
-									img = new ImageIcon(cps.getImage()).getImage().getScaledInstance(
-											controller.getScale(), controller.getScale(), java.awt.Image.SCALE_SMOOTH);
-								} else {
-									img = new ImageIcon(this.getClass().getResource(cps.getImage())).getImage()
-											.getScaledInstance(controller.getScale(), controller.getScale(),
-													java.awt.Image.SCALE_SMOOTH);
+					if (SwingUtilities.isRightMouseButton(e)) {
+						editItem.setEnabled(true);
+						System.out.println("HERE");
+						popmenuEdit.show(e.getComponent(), e.getX(), e.getY());
+					} else {
+						for (Category cat : model.getCategories()) {
+							for (CpsObject cps : cat.getObjects()) {
+								if (actualObjectClicked.compareTo(cps.getCompareName()) == 0) {
+									File checkPath = new File(cps.getImage());
+									if (checkPath.exists()) {
+										img = new ImageIcon(cps.getImage()).getImage().getScaledInstance(
+												controller.getScale(), controller.getScale(),
+												java.awt.Image.SCALE_SMOOTH);
+									} else {
+										img = new ImageIcon(this.getClass().getResource(cps.getImage())).getImage()
+												.getScaledInstance(controller.getScale(), controller.getScale(),
+														java.awt.Image.SCALE_SMOOTH);
+									}
+									tempCps = cps;
+									dragging = true;
+									Cursor cursor = Toolkit.getDefaultToolkit().createCustomCursor(img, new Point(0, 0),
+											"Image");
+									frmCyberPhysical.setCursor(cursor);
 								}
-								tempCps = cps;
-								dragging = true;
-								Cursor cursor = Toolkit.getDefaultToolkit().createCustomCursor(img, new Point(0, 0),
-										"Image");
-								frmCyberPhysical.setCursor(cursor);
 							}
 						}
 					}