From 390893a680360ca5f9d648bd6a80c981bb2d2e80 Mon Sep 17 00:00:00 2001 From: hneemann Date: Sat, 11 Jun 2016 11:38:07 +0200 Subject: [PATCH] menu entries for copy and paste --- .../java/de/neemann/digital/gui/Main.java | 9 ++++++- .../gui/components/CircuitComponent.java | 24 +++++++++++++++++-- src/main/resources/lang/lang_de.properties | 6 +++-- src/main/resources/lang/lang_en.properties | 5 +++- 4 files changed, 38 insertions(+), 6 deletions(-) diff --git a/src/main/java/de/neemann/digital/gui/Main.java b/src/main/java/de/neemann/digital/gui/Main.java index 13c0a8ee8..439157812 100644 --- a/src/main/java/de/neemann/digital/gui/Main.java +++ b/src/main/java/de/neemann/digital/gui/Main.java @@ -395,11 +395,16 @@ public class Main extends JFrame implements ClosingWindowListener.ConfirmSave, E } }.setToolTip(Lang.get("menu_editSettings_tt")); + edit.add(editAttributes.createJMenuItem()); + edit.addSeparator(); + edit.add(circuitComponent.getCopyAction()); + edit.add(circuitComponent.getPasteAction()); + edit.addSeparator(); edit.add(elementStateAction.createJMenuItem()); edit.add(orderInputs.createJMenuItem()); edit.add(orderOutputs.createJMenuItem()); edit.add(orderMeasurements.createJMenuItem()); - edit.add(editAttributes.createJMenuItem()); + edit.addSeparator(); edit.add(editSettings.createJMenuItem()); } @@ -471,10 +476,12 @@ public class Main extends JFrame implements ClosingWindowListener.ConfirmSave, E JMenu run = new JMenu(Lang.get("menu_run")); menuBar.add(run); run.add(editRunAttributes.createJMenuItem()); + run.addSeparator(); run.add(runModelAction.createJMenuItem()); run.add(runModelMicroAction.createJMenuItem()); run.add(doStep.createJMenuItem()); run.add(runToBreak.createJMenuItem()); + run.addSeparator(); run.add(speedTest.createJMenuItem()); doStep.setEnabled(false); diff --git a/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java b/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java index 1e2be2029..046d9aea5 100644 --- a/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java +++ b/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java @@ -59,6 +59,8 @@ public class CircuitComponent extends JComponent { private final MouseController mouseRun; private final MouseControllerInsertCopied mouseInsertList; private final Cursor moveCursor; + private final AbstractAction copyAction; + private final AbstractAction pasteAction; private Circuit circuit; private MouseController activeMouseController; @@ -66,6 +68,7 @@ public class CircuitComponent extends JComponent { private Observer manualChangeObserver; private Vector lastMousePos; + /** * Creates a new instance * @@ -77,7 +80,7 @@ public class CircuitComponent extends JComponent { this.parentsSavedListener = parentsSavedListener; highLighted = new HashSet<>(); - AbstractAction copyAction = new AbstractAction("Copy") { + copyAction = new AbstractAction(Lang.get("menu_copy")) { @Override public void actionPerformed(ActionEvent e) { if (activeMouseController instanceof MouseControllerSelect) { @@ -90,8 +93,9 @@ public class CircuitComponent extends JComponent { } } }; + copyAction.setEnabled(false); - AbstractAction pasteAction = new AbstractAction("Paste") { + pasteAction = new AbstractAction(Lang.get("menu_paste")) { @Override public void actionPerformed(ActionEvent e) { Clipboard clpbrd = Toolkit.getDefaultToolkit().getSystemClipboard(); @@ -184,6 +188,20 @@ public class CircuitComponent extends JComponent { return deleteAction; } + /** + * @return the copy action + */ + public AbstractAction getCopyAction() { + return copyAction; + } + + /** + * @return the paste action + */ + public AbstractAction getPasteAction() { + return pasteAction; + } + /** * Sets the observer to call if the user is clicking on elements while running. * @@ -460,6 +478,7 @@ public class CircuitComponent extends JComponent { private void activate() { activeMouseController = this; deleteAction.setActive(false); + copyAction.setEnabled(false); setCursor(mouseCursor); repaint(); } @@ -671,6 +690,7 @@ public class CircuitComponent extends JComponent { this.corner1 = corner1; this.corner2 = corner2; deleteAction.setActive(true); + copyAction.setEnabled(true); wasReleased = false; } diff --git a/src/main/resources/lang/lang_de.properties b/src/main/resources/lang/lang_de.properties index c28f7eba2..56ceecaf0 100644 --- a/src/main/resources/lang/lang_de.properties +++ b/src/main/resources/lang/lang_de.properties @@ -259,14 +259,14 @@ menu_import=Importieren menu_import_tt=Importiert eine Schaltung als verwendbares Bauteil menu_refresh=Alle neu laden menu_refresh_tt=Alle importierten Schaltungen werden neu geladen -menu_element=Element +menu_element=Elemente bearbeiten menu_element_tt=Bearbeitet die vorhandenen Elemente oder dessen Eigenschaften menu_edit=Bearbeiten menu_orderInputs=Sortieren der Eing\u00E4nge menu_orderInputs_tt=Sortiert die Eing\u00E4nge f\u00FCr die Verwendung als eingebettete Schaltung menu_orderOutputs=Sortieren der Ausg\u00E4nge menu_orderOutputs_tt=Sortiert die Ausg\u00E4nge f\u00FCr die Verwendung als eingebettete Schaltung -menu_orderMeasurements=Sortieren die Messwerte +menu_orderMeasurements=Sortieren der Messwerte menu_orderMeasurements_tt=Sortiert die Messwerte f\u00FCr die grafische Anzeige und die Tabellenansicht menu_run=Start menu_run_tt=Startet die Simulation der Schaltung @@ -331,6 +331,8 @@ menu_table_create_hardware=Bausteine menu_table_create_jedec=JEDEC (*.jed) menu_table_create_jedec_tt=Erzeugt eine JEDEC Datei f\u00FCr den Baustein menu_table_exportTableLaTeX=Export LaTeX +menu_copy=Kopieren +menu_paste=Einf\u00FCgen menu_editSettings=Einstellungen menu_editSettings_tt=Bearbeitet die globalen Einstellungen diff --git a/src/main/resources/lang/lang_en.properties b/src/main/resources/lang/lang_en.properties index 26d490331..ea2e63af1 100644 --- a/src/main/resources/lang/lang_en.properties +++ b/src/main/resources/lang/lang_en.properties @@ -236,7 +236,7 @@ menu_import=Import menu_import_tt=Imports a circuit as a useable Element! menu_refresh=Reload menu_refresh_tt=Reload all imported circuits -menu_element=Element +menu_element=Edit Elements menu_element_tt=Edits the circuit. Moves a single Element or edits its properties menu_edit=Edit menu_orderInputs=Order Inputs @@ -312,6 +312,9 @@ menu_table_exportTableLaTeX=Export LaTeX menu_editSettings=Settings menu_editSettings_tt=Edits Digitals Preferences +menu_copy=Copy +menu_paste=Paste + win_saveChanges=Save Changes? win_confirmExit=Confirm Exit!