Browse Source

#4 works except deleting, especially deleting uppernodes

Kevin Trometer 7 years ago
parent
commit
351f352b2d
1 changed files with 45 additions and 22 deletions
  1. 45 22
      src/ui/view/GUI.java

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

@@ -100,7 +100,7 @@ public class GUI<E> implements CategoryListener {
 
 	private final SimulationMenu simMenu;
 
-	private JTabbedPane tabTemp; //tabbedPane or tabbedPane2
+	private JTabbedPane tabTemp; // tabbedPane or tabbedPane2
 	private final JMenuBar menuBar = new JMenuBar();
 	private final JMenu mnNewMenu = new JMenu("File");
 	private final JMenu mnNewMenuEdit = new JMenu("Edit");
@@ -378,18 +378,23 @@ public class GUI<E> implements CategoryListener {
 			@Override
 			public void actionPerformed(ActionEvent e) {
 
+				if (tabbedPane.getMousePosition() != null) {
+					tabTemp = tabbedPane;
+				} else {
+					tabTemp = tabbedPane2;
+				}
 				model.getSelectedCpsObjects().clear();
 				// Uppernode Canvas?
-				if (((JScrollPane) tabbedPane.getSelectedComponent()).getViewport()
+				if (((JScrollPane) tabTemp.getSelectedComponent()).getViewport()
 						.getComponent(0) instanceof UpperNodeCanvas) {
-					UpperNodeCanvas uNC = (UpperNodeCanvas) ((JScrollPane) tabbedPane.getSelectedComponent())
-							.getViewport().getComponent(0);
+					UpperNodeCanvas uNC = (UpperNodeCanvas) ((JScrollPane) tabTemp.getSelectedComponent()).getViewport()
+							.getComponent(0);
 					for (AbstractCpsObject cps : uNC.upperNode.getNodes()) {
 						controller.addSelectedObject(cps);
 					}
 					uNC.repaint();
 					// or Canvas?
-				} else if (((JScrollPane) tabbedPane.getSelectedComponent()).getViewport()
+				} else if (((JScrollPane) tabTemp.getSelectedComponent()).getViewport()
 						.getComponent(0) instanceof MyCanvas) {
 					for (AbstractCpsObject cps : model.getObjectsOnCanvas()) {
 						controller.addSelectedObject(cps);
@@ -479,11 +484,16 @@ public class GUI<E> implements CategoryListener {
 
 			@Override
 			public void actionPerformed(ActionEvent e) {
+				if (tabbedPane.getMousePosition() != null) {
+					tabTemp = tabbedPane;
+				} else {
+					tabTemp = tabbedPane2;
+				}
 				if (!model.getSelectedCpsObjects().isEmpty()) {
-					if (((JScrollPane) tabbedPane.getSelectedComponent()).getViewport()
+					if (((JScrollPane) tabTemp.getSelectedComponent()).getViewport()
 							.getComponent(0) instanceof UpperNodeCanvas)
-						controller.copy(((UpperNodeCanvas) ((JScrollPane) tabbedPane.getSelectedComponent())
-								.getViewport().getComponent(0)).upperNode);
+						controller.copy(((UpperNodeCanvas) ((JScrollPane) tabTemp.getSelectedComponent()).getViewport()
+								.getComponent(0)).upperNode);
 					else
 						controller.copy(null);
 					if (!model.getClipboradObjects().isEmpty()) {
@@ -502,17 +512,26 @@ public class GUI<E> implements CategoryListener {
 			@Override
 			public void actionPerformed(ActionEvent e) {
 				try {
-					if (((JScrollPane) tabbedPane.getSelectedComponent()).getViewport()
-							.getComponent(0) instanceof UpperNodeCanvas)
+					tabTemp = null;
+					if (tabbedPane.getMousePosition() != null) {
+						tabTemp = tabbedPane;
+					} else {
+						if (!initSplit) {
+							tabTemp = tabbedPane2;
+						}
+					}
+					if (tabTemp != null && ((JScrollPane) tabTemp.getSelectedComponent()).getViewport()
+							.getComponent(0) instanceof UpperNodeCanvas) {
 
 						controller.paste(
-								((UpperNodeCanvas) ((JScrollPane) tabbedPane.getSelectedComponent()).getViewport()
+								((UpperNodeCanvas) ((JScrollPane) tabTemp.getSelectedComponent()).getViewport()
 										.getComponent(0)).upperNode,
-								((UpperNodeCanvas) ((JScrollPane) tabbedPane.getSelectedComponent()).getViewport()
+								((UpperNodeCanvas) ((JScrollPane) tabTemp.getSelectedComponent()).getViewport()
 										.getComponent(0)).getMousePosition());
-					else
+					} else {
 						controller.paste(null, canvas.getMousePosition());
-					unitGraph.update(model.getSelectedCpsObjects());
+						unitGraph.update(model.getSelectedCpsObjects());
+					}
 				} catch (HeadlessException | JsonParseException | UnsupportedFlavorException | IOException e1) {
 					// TODO Auto-generated catch block
 					JLabel message = new JLabel("The Clipboard information cannot be pasted into Application.");
@@ -530,11 +549,16 @@ public class GUI<E> implements CategoryListener {
 
 			@Override
 			public void actionPerformed(ActionEvent e) {
+				if (tabbedPane.getMousePosition() != null) {
+					tabTemp = tabbedPane;
+				} else {
+					tabTemp = tabbedPane2;
+				}
 				if (!model.getSelectedCpsObjects().isEmpty()) {
-					if (((JScrollPane) tabbedPane.getSelectedComponent()).getViewport()
+					if (((JScrollPane) tabTemp.getSelectedComponent()).getViewport()
 							.getComponent(0) instanceof UpperNodeCanvas)
-						controller.cut(((UpperNodeCanvas) ((JScrollPane) tabbedPane.getSelectedComponent())
-								.getViewport().getComponent(0)).upperNode);
+						controller.cut(((UpperNodeCanvas) ((JScrollPane) tabTemp.getSelectedComponent()).getViewport()
+								.getComponent(0)).upperNode);
 					else
 						controller.cut(null);
 					if (!model.getClipboradObjects().isEmpty()) {
@@ -650,11 +674,6 @@ public class GUI<E> implements CategoryListener {
 				JOptionPane.showMessageDialog(null, myPanel);
 				controller.setCanvasX(Integer.parseInt(field1.getText()));
 				controller.setCanvasY(Integer.parseInt(field2.getText()));
-				for (int i = 4; i < tabbedPane.getTabCount(); i++) {
-					tabbedPane.getComponentAt(i)
-							.setPreferredSize(new Dimension(model.getCanvasX(), model.getCanvasY()));
-					tabbedPane.getComponentAt(i).repaint();
-				}
 				canvas.setPreferredSize(new Dimension(model.getCanvasX(), model.getCanvasY()));
 				canvas.repaint();
 			}
@@ -1178,6 +1197,10 @@ public class GUI<E> implements CategoryListener {
 								if (unc.upperNode.getId() == updCon.getActualCps().getId()) {
 									tabbedPane.setTitleAt(index, unc.upperNode.getName());
 									tabbedPane.updateUI();
+									if (!initSplit) {
+										tabbedPane2.setTitleAt(index, unc.upperNode.getName());
+										tabbedPane2.updateUI();
+									}
 								}
 							}
 						} else if (updCon.getActualCps() instanceof HolonObject) {