diff --git a/src/main/java/com/ardublock/ui/OpenblocksFrame.java b/src/main/java/com/ardublock/ui/OpenblocksFrame.java index c972d8e19f3cc11cce6502e9140e598f89eeddd7..a5a082a7a2b597629426d6705e271b3cfd342e7c 100644 --- a/src/main/java/com/ardublock/ui/OpenblocksFrame.java +++ b/src/main/java/com/ardublock/ui/OpenblocksFrame.java @@ -41,6 +41,7 @@ import com.ardublock.ui.listener.SaveImageButtonListener; //import com.ardublock.ui.listener.ZoomOutButtonListener; //import com.ardublock.ui.listener.ZoomResetButtonListener; import com.ardublock.ui.listener.SimulateCodeButtonListener; +import com.ardublock.ui.listener.SimulatorHelpButtonListener; import edu.mit.blocks.controller.WorkspaceController; import edu.mit.blocks.workspace.Workspace; @@ -167,6 +168,14 @@ public class OpenblocksFrame extends JFrame simulateButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.simulation.tooltip")); simulateButton.setVisible(false); //hide on startUp + JButton simulatorHelpButton = new JButton(uiMessageBundle.getString("ardublock.ui.simulatorHelp")); + ActionListener simulatorHelpButtonListener = new SimulatorHelpButtonListener(this, this, context); + simulatorHelpButton.addActionListener(simulatorHelpButtonListener); + //KeyStroke ctrlaKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK); + //simulateButton.registerKeyboardAction(simulateButtonListener, ctrlaKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW); + simulatorHelpButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.simulatorHelp.tooltip")); + simulatorHelpButton.setVisible(false); //hide on startUp + JButton serialMonitorButton = new JButton(uiMessageBundle.getString("ardublock.ui.serialMonitor")); ActionListener serialButtonListener = new ActionListener () { public void actionPerformed(ActionEvent e) { @@ -197,6 +206,7 @@ public class OpenblocksFrame extends JFrame topPanel.add(generateButton); topPanel.add(simulateButton); topPanel.add(Box.createRigidArea(new Dimension(15, 0))); //std value 30,0 + topPanel.add(simulatorHelpButton); topPanel.add(serialMonitorButton); topPanel.add(serialPlotterButton); @@ -350,6 +360,7 @@ public class OpenblocksFrame extends JFrame workspaceController.loadProject(getArduBlockString(), null , "default"); generateButton.setVisible(true); simulateButton.setVisible(false); + simulatorHelpButton.setVisible(false); serialMonitorButton.setVisible(true); serialPlotterButton.setVisible(true); appPrefix = uiMessageBundle.getString("ardublock.ui.appprefix.standard"); @@ -385,6 +396,7 @@ public class OpenblocksFrame extends JFrame workspaceController.loadProject(getArduBlockString(), null , "custom"); generateButton.setVisible(true); simulateButton.setVisible(false); + simulatorHelpButton.setVisible(false); serialMonitorButton.setVisible(true); serialPlotterButton.setVisible(true); appPrefix = uiMessageBundle.getString("ardublock.ui.appprefix.pro"); @@ -420,6 +432,7 @@ public class OpenblocksFrame extends JFrame workspaceController.loadProject(getArduBlockString(), null , "default"); generateButton.setVisible(false); simulateButton.setVisible(true); + simulatorHelpButton.setVisible(true); serialMonitorButton.setVisible(false); serialPlotterButton.setVisible(false); //TODO get up running... diff --git a/src/main/java/com/ardublock/ui/listener/SimulatorHelpButtonListener.java b/src/main/java/com/ardublock/ui/listener/SimulatorHelpButtonListener.java new file mode 100644 index 0000000000000000000000000000000000000000..1f7d178e530d7b6cc4aac8b40da453c6195be827 --- /dev/null +++ b/src/main/java/com/ardublock/ui/listener/SimulatorHelpButtonListener.java @@ -0,0 +1,58 @@ +package com.ardublock.ui.listener; + +import java.awt.Toolkit; +import java.awt.datatransfer.Clipboard; +import java.awt.datatransfer.StringSelection; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.ResourceBundle; + +import javax.swing.ImageIcon; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JOptionPane; + +import com.ardublock.core.Context; +import com.ardublock.ui.OpenblocksFrame; + +import edu.mit.blocks.controller.WorkspaceController; +import edu.mit.blocks.workspace.Workspace; +import tec.letsgoing.ardublock.simulator.view.GUI; + +public class SimulatorHelpButtonListener implements ActionListener +{ + + private Context context; + private JFrame parentFrame; + private OpenblocksFrame openBlocksFrame; + private ResourceBundle uiMessageBundle; + + public SimulatorHelpButtonListener(JFrame frame, OpenblocksFrame obFrame, Context context) + { + this.parentFrame = frame; + this.openBlocksFrame=obFrame; + this.context = context; + Workspace workspace = context.getWorkspaceController().getWorkspace(); + uiMessageBundle = ResourceBundle.getBundle("com/ardublock/block/ardublock"); + + } + + public void actionPerformed(ActionEvent e) { + + System.out.println("Help is pressed"); + ImageIcon icon = new ImageIcon(openBlocksFrame.getToolkit().getImage(GUI.class.getResource("/com/ardublock/block/SimHelp.png"))); + JOptionPane.showMessageDialog( + null, + uiMessageBundle.getString("ardublock.ui.simulatorHelp.text"), + uiMessageBundle.getString("ardublock.ui.simulatorHelp.title"), JOptionPane.INFORMATION_MESSAGE, + icon); + + /* + * JOptionPane.showMessageDialog( null, new JLabel("Hello world", icon, + * JLabel.LEFT), "Hello", JOptionPane.INFORMATION_MESSAGE); + */ + } + + + +} diff --git a/src/main/resources/com/ardublock/block/SimHelp.png b/src/main/resources/com/ardublock/block/SimHelp.png new file mode 100644 index 0000000000000000000000000000000000000000..7af0afdf9a7f03227ae04fdd427f0a3a54eaeac6 Binary files /dev/null and b/src/main/resources/com/ardublock/block/SimHelp.png differ diff --git a/src/main/resources/com/ardublock/block/ardublock.properties b/src/main/resources/com/ardublock/block/ardublock.properties index 94c952f343323da6c9012cb6cb794de296237c65..d17e82c534ccce8c24c2fa07a0a21412fedfa566 100644 --- a/src/main/resources/com/ardublock/block/ardublock.properties +++ b/src/main/resources/com/ardublock/block/ardublock.properties @@ -61,6 +61,10 @@ ardublock.ui.paste=paste ardublock.ui.paste.tooltip=paste program from clipboard Ctrl-V ardublock.ui.simulation=simulate ardublock.ui.simulation.tooltip=start simulation with basic block-set and letsgoING modules +ardublock.ui.simulatorHelp=help +ardublock.ui.simulatorHelp.tooltip=About the letsgoING-simulator +ardublock.ui.simulatorHelp.title=About the letsgoING-simulator +ardublock.ui.simulatorHelp.text= ardublock.ui.version=v2.2 beta diff --git a/src/main/resources/com/ardublock/block/ardublock_de.properties b/src/main/resources/com/ardublock/block/ardublock_de.properties index 059f3724ef9e31e49b9ff000c462200535a393f1..a4440038188d1dd6bdc6d0c2c108e23008a5f86b 100644 --- a/src/main/resources/com/ardublock/block/ardublock_de.properties +++ b/src/main/resources/com/ardublock/block/ardublock_de.properties @@ -63,6 +63,10 @@ ardublock.ui.paste=einf ardublock.ui.paste.tooltip=füge Programm aus Zwischenablage ein Strg-V ardublock.ui.simulation=Hochladen auf den Simulator ardublock.ui.simulation.tooltip=Starte den Simulator fuer die letsgoING-GrundlagenModule +ardublock.ui.simulatorHelp=Hilfe +ardublock.ui.simulatorHelp.tooltip=Infos zum letsgoING-Simulator +ardublock.ui.simulatorHelp.title=Infos zum letsgoING-Simulator +ardublock.ui.simulatorHelp.text=TASTER\n**********************\nlinke Maustaste -> Taster-Funktion\nrechte oder mittlere Maustaste -> Schalterfunktion (bleibt aktiv)\n\n\n\nPOTI\n**********************\nSlider ziehen oder mit Mausrad verstellen (Mauszeiger über Slider)\n\n\nSERIALMONITOR\n**********************\nHier werden die Nachrichten vom "Serial.Print"-Block ausgegeben\nAutoscroll:\n an -> neueste Nachrichten werden angezeigt\n aus -> Ausgabe kann manuell ausgewählt werden\nReset SerialMonitor: bisherige Ausgabe wird gelöscht\n\n\n\RESET ARDUINO\n**********************\nTaster startet das Programm neu\n\n\n\ONBOARD LED\n**********************\nLED kann über Pin13 angesteuert werden ardublock.ui.version=v2.2 beta