Browse Source

console right click

Kevin Trometer 7 years ago
parent
commit
ab00ed5d9b
2 changed files with 53 additions and 3 deletions
  1. 46 3
      src/ui/view/Console.java
  2. 7 0
      src/ui/view/SimulationMenu.java

+ 46 - 3
src/ui/view/Console.java

@@ -1,7 +1,12 @@
 package ui.view;
 
 import java.awt.Color;
-
+import java.awt.Toolkit;
+import java.awt.datatransfer.StringSelection;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
 import javax.swing.JScrollPane;
 
 import java.awt.BorderLayout;
@@ -10,7 +15,9 @@ import javax.swing.text.BadLocationException;
 import javax.swing.text.Style;
 import javax.swing.text.StyleConstants;
 import javax.swing.text.StyledDocument;
+import javax.swing.JMenuItem;
 import javax.swing.JPanel;
+import javax.swing.JPopupMenu;
 
 public class Console extends JScrollPane {
 
@@ -23,6 +30,11 @@ public class Console extends JScrollPane {
 	private Style style;
 	private StyledDocument doc;
 
+	// PopUpMenu
+	private JPopupMenu popmenu = new JPopupMenu();
+	private JMenuItem itemCopy = new JMenuItem("Copy");
+	private JMenuItem itemClear = new JMenuItem("Clear Console");
+
 	public Console() {
 		super();
 		this.setBackground(Color.WHITE);
@@ -37,7 +49,38 @@ public class Console extends JScrollPane {
 		panel.setLayout(new BorderLayout(0, 0));
 		panel.setBackground(Color.WHITE);
 		panel.add(consoleText);
+
 		setViewportView(panel);
+
+		// PopUpMenu
+		popmenu.add(itemCopy);
+		popmenu.add(itemClear);
+
+		itemCopy.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				Toolkit.getDefaultToolkit().getSystemClipboard()
+						.setContents(new StringSelection(consoleText.getSelectedText()), null);
+			}
+		});
+
+		itemClear.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				clearConsole();
+			}
+		});
+
+		// MouseListener
+		consoleText.addMouseListener(new MouseAdapter() {
+			@Override
+			public void mouseReleased(MouseEvent e) {
+				if (e.getButton() == e.BUTTON3) {
+					itemClear.setEnabled(!consoleText.getText().isEmpty());
+					popmenu.show(e.getComponent(), e.getX(), e.getY());
+				}
+			}
+		});
 	}
 
 	/**
@@ -72,7 +115,7 @@ public class Console extends JScrollPane {
 		} catch (BadLocationException e) {
 		}
 	}
-	
+
 	/**
 	 * Print Text on the console in black and font size 12
 	 *
@@ -86,7 +129,7 @@ public class Console extends JScrollPane {
 		StyleConstants.setItalic(style, false);
 
 		try {
-			doc.insertString(doc.getLength(), text+"\n", style);
+			doc.insertString(doc.getLength(), text + "\n", style);
 		} catch (BadLocationException e) {
 		}
 	}

+ 7 - 0
src/ui/view/SimulationMenu.java

@@ -14,16 +14,23 @@ import javax.swing.event.CaretListener;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
 
+import classes.CpsObject;
+import classes.HolonObject;
+import classes.HolonSwitch;
+import classes.HolonTransformer;
 import ui.controller.Control;
 import ui.model.Model;
 import java.util.ArrayList;
 
 import java.awt.GridBagLayout;
 import java.awt.Color;
+import java.awt.Cursor;
 import java.awt.Dimension;
 import java.awt.GridBagConstraints;
 import java.awt.Insets;
 import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 import java.io.File;