From 7d1d8908dfcd222d45a1d980ba3cc09338244f63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anian=20B=C3=BChler?= <anian.buehler@reutlingen-university.de> Date: Fri, 6 Aug 2021 14:55:31 +0200 Subject: [PATCH] added testfiles for block reference --- .../com/ardublock/ui/OpenblocksFrame.java | 50 ++++++++++++------ .../listener/SimulatorHelpButtonListener.java | 2 +- .../com/ardublock/block/ardublock.properties | 1 + .../ardublock/block/ardublock_de.properties | 5 +- .../com/ardublock/reference/loop.html | 5 ++ .../com/ardublock/reference/loop.jpg | Bin 0 -> 13248 bytes .../com/ardublock/reference/loop.png | Bin 0 -> 3820 bytes .../ardublock/reference/program_comment.html | 5 ++ .../ardublock/reference/program_comment.png | Bin 0 -> 16512 bytes 9 files changed, 48 insertions(+), 20 deletions(-) create mode 100644 src/main/resources/com/ardublock/reference/loop.html create mode 100644 src/main/resources/com/ardublock/reference/loop.jpg create mode 100644 src/main/resources/com/ardublock/reference/loop.png create mode 100644 src/main/resources/com/ardublock/reference/program_comment.html create mode 100644 src/main/resources/com/ardublock/reference/program_comment.png diff --git a/src/main/java/com/ardublock/ui/OpenblocksFrame.java b/src/main/java/com/ardublock/ui/OpenblocksFrame.java index 7994d7c..5687246 100644 --- a/src/main/java/com/ardublock/ui/OpenblocksFrame.java +++ b/src/main/java/com/ardublock/ui/OpenblocksFrame.java @@ -55,7 +55,7 @@ import com.ardublock.ui.listener.SimulatorHelpButtonListener; import edu.mit.blocks.controller.WorkspaceController; import edu.mit.blocks.workspace.Workspace; -import edu.mit.blocks.workspace.ZoomSlider; +//import edu.mit.blocks.workspace.ZoomSlider; public class OpenblocksFrame extends JFrame @@ -280,8 +280,9 @@ public class OpenblocksFrame extends JFrame //ADD ZOOM //***************************************** - ZoomSlider zoomSlider = new ZoomSlider(workspace); - zoomSlider.reset(); + //ZoomSlider zoomSlider = new ZoomSlider(workspace); + //zoomSlider.reset(); + /* JButton zoomOutButton = new JButton(uiMessageBundle.getString("ardublock.ui.zoomOut")); ActionListener zoomOutButtonListener = new ZoomOutButtonListener(workspace); @@ -379,7 +380,11 @@ public class OpenblocksFrame extends JFrame //remove highlights context.resetHightlightBlock(); - int currentWorkspaceZoom = zoomSlider.getValue(); + //int currentWorkspaceZoom = zoomSlider.getValue(); + + //get current zoomLevel + //TODO: check why blocks are rearanged while changing WS + double currentWorkspaceZoom = workspace.getCurrentWorkspaceZoom(); try { WorkspaceController workspaceController = context.getWorkspaceController(); workspaceController.loadProject(getArduBlockString(), null , "default"); @@ -393,10 +398,10 @@ public class OpenblocksFrame extends JFrame modeBasicButton.setFont(new Font("Sans", Font.BOLD, 12)); modeProButton.setFont(new Font("Sans", Font.PLAIN, 12)); modeSimButton.setFont(new Font("Sans", Font.PLAIN, 12)); - zoomSlider.reset(); - zoomSlider.setValue(currentWorkspaceZoom); - workspaceModeState=false; - + //zoomSlider.reset(); + //zoomSlider.setValue(currentWorkspaceZoom); + workspace.setWorkspaceZoom(currentWorkspaceZoom); + workspaceModeState=false; } catch (Exception e1) { //e1.printStackTrace(); } @@ -416,9 +421,12 @@ public class OpenblocksFrame extends JFrame //remove highlights context.resetHightlightBlock(); + + //int currentWorkspaceZoom = zoomSlider.getValue(); //get current zoomLevel - int currentWorkspaceZoom = zoomSlider.getValue(); + //TODO: check why blocks are rearanged while changing WS + double currentWorkspaceZoom = workspace.getCurrentWorkspaceZoom(); try { WorkspaceController workspaceController = context.getWorkspaceController(); workspaceController.loadProject(getArduBlockString(), null , "custom"); @@ -433,8 +441,9 @@ public class OpenblocksFrame extends JFrame appPrefix = uiMessageBundle.getString("ardublock.ui.appprefix.pro"); setTitle(makeFrameTitle()); - zoomSlider.reset(); - zoomSlider.setValue(currentWorkspaceZoom); + //zoomSlider.reset(); + //zoomSlider.setValue(currentWorkspaceZoom); + workspace.setWorkspaceZoom(currentWorkspaceZoom); workspaceModeState=true; } catch (Exception e1) { @@ -456,8 +465,13 @@ public class OpenblocksFrame extends JFrame //remove highlights context.resetHightlightBlock(); + + //int currentWorkspaceZoom = zoomSlider.getValue(); + //get current zoomLevel - int currentWorkspaceZoom = zoomSlider.getValue(); + //TODO: check why blocks are rearanged while changing WS + double currentWorkspaceZoom = workspace.getCurrentWorkspaceZoom(); + try { WorkspaceController workspaceController = context.getWorkspaceController(); //TODO check if reduced sim-blockset is necessary @@ -473,8 +487,9 @@ public class OpenblocksFrame extends JFrame appPrefix = uiMessageBundle.getString("ardublock.ui.appprefix.sim"); setTitle(makeFrameTitle()); - zoomSlider.reset(); - zoomSlider.setValue(currentWorkspaceZoom); + //zoomSlider.reset(); + //zoomSlider.setValue(currentWorkspaceZoom); + workspace.setWorkspaceZoom(currentWorkspaceZoom); workspaceModeState=false; } catch (Exception e1) { @@ -495,7 +510,7 @@ public class OpenblocksFrame extends JFrame copyButton.addActionListener(copyButtonListener); //KeyStroke ctrlcKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK); //copyButton.registerKeyboardAction(copyButtonListener, ctrlcKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW); - //copyButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.copy.tooltip")); + copyButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.copy.tooltip")); JButton pasteButton = new JButton(uiMessageBundle.getString("ardublock.ui.paste")); @@ -503,7 +518,7 @@ public class OpenblocksFrame extends JFrame pasteButton.addActionListener(pasteButtonListener); //KeyStroke ctrlvKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK); //pasteButton.registerKeyboardAction(pasteButtonListener, ctrlvKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW); - //pasteButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.paste.tooltip")); + pasteButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.paste.tooltip")); //***************************************** //WEBSITE BUTTON @@ -533,7 +548,7 @@ public class OpenblocksFrame extends JFrame bottomPanel.add(modeSimButton); bottomPanel.add(Box.createRigidArea(new Dimension(10, 0))); //std value 30,0 - bottomPanel.add(zoomSlider); + //bottomPanel.add(zoomSlider); //bottomPanel.add(zoomInButton); //bottomPanel.add(zoomResetButton); //bottomPanel.add(zoomOutButton); @@ -898,4 +913,5 @@ public class OpenblocksFrame extends JFrame public boolean getModeState(){ //letsgoING return workspaceModeState; } + } diff --git a/src/main/java/com/ardublock/ui/listener/SimulatorHelpButtonListener.java b/src/main/java/com/ardublock/ui/listener/SimulatorHelpButtonListener.java index ba295ae..9c92fce 100644 --- a/src/main/java/com/ardublock/ui/listener/SimulatorHelpButtonListener.java +++ b/src/main/java/com/ardublock/ui/listener/SimulatorHelpButtonListener.java @@ -25,7 +25,7 @@ public class SimulatorHelpButtonListener implements ActionListener public void actionPerformed(ActionEvent e) { - System.out.println("Help is pressed"); + //System.out.println("Help is pressed"); ImageIcon icon = new ImageIcon(openBlocksFrame.getToolkit().getImage(GUI.class.getResource("/com/ardublock/block/SimHelp.png"))); JOptionPane.showMessageDialog( null, diff --git a/src/main/resources/com/ardublock/block/ardublock.properties b/src/main/resources/com/ardublock/block/ardublock.properties index ef3b42d..abd08dd 100644 --- a/src/main/resources/com/ardublock/block/ardublock.properties +++ b/src/main/resources/com/ardublock/block/ardublock.properties @@ -21,6 +21,7 @@ ardublock.ui.upload=Upload ardublock.ui.upload.tooltip=Upload to Arduino Ctrl-U ardublock.ui.clone=Clone (rightclick-Ctrl) ardublock.ui.clone_all=Clone following (rightclick-Shift-Ctrl) +ardublock.ui.reference=open block reference ardublock.ui.add_comment=Add Comment ardublock.ui.delete_comment=Delete Comment ardublock.ui.organize_blocks=Organize all blocks diff --git a/src/main/resources/com/ardublock/block/ardublock_de.properties b/src/main/resources/com/ardublock/block/ardublock_de.properties index 89a2bb4..f92324f 100644 --- a/src/main/resources/com/ardublock/block/ardublock_de.properties +++ b/src/main/resources/com/ardublock/block/ardublock_de.properties @@ -21,6 +21,7 @@ ardublock.ui.upload=Hochladen auf den Arduino ardublock.ui.upload.tooltip=Programm auf Arduino laden Strg-U ardublock.ui.clone=klonen (Strg-Rechtsklick) ardublock.ui.clone_all=folgende klonen (Strg-Shift-Rechtsklick) +ardublock.ui.reference=Block-Referenz öffnen ardublock.ui.add_comment=Kommentar hinzufügen ardublock.ui.delete_comment=Kommentar löschen ardublock.ui.organize_blocks=Alle Blöcke neu anordnen @@ -61,9 +62,9 @@ ardublock.ui.zoomOut.tooltip=verkleinere Programm Strg-Minus ardublock.ui.zoomReset=0 ardublock.ui.zoomReset.tooltip=zurücksetzen Strg-0 ardublock.ui.copy=kopieren -ardublock.ui.copy.tooltip=kopiere Programm in Zwischenablage Strg-C +ardublock.ui.copy.tooltip=kopiere gesamtes Programm in Zwischenablage Strg-C ardublock.ui.paste=einfügen -ardublock.ui.paste.tooltip=füge Programm aus Zwischenablage ein Strg-V +ardublock.ui.paste.tooltip=füge gesamtes 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 diff --git a/src/main/resources/com/ardublock/reference/loop.html b/src/main/resources/com/ardublock/reference/loop.html new file mode 100644 index 0000000..126a689 --- /dev/null +++ b/src/main/resources/com/ardublock/reference/loop.html @@ -0,0 +1,5 @@ +<html> +<img style="-webkit-user-select: none" src="loop.png" alt="image" ></br> +<font size=+2>loop</font></br> +<font color=red>info Text</font><font color=blue>Bild</font> +<font size=-2>Troubleshooting</font></html> diff --git a/src/main/resources/com/ardublock/reference/loop.jpg b/src/main/resources/com/ardublock/reference/loop.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d176f9a2bb1f3607db3eaa8c8a6ade687c251133 GIT binary patch literal 13248 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 Fe*n5xG++P# literal 0 HcmV?d00001 diff --git a/src/main/resources/com/ardublock/reference/loop.png b/src/main/resources/com/ardublock/reference/loop.png new file mode 100644 index 0000000000000000000000000000000000000000..557e15745689ff62d67732c87d2310aaedc5dcf0 GIT binary patch literal 3820 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 I#WDW>0KwT$E&u=k literal 0 HcmV?d00001 diff --git a/src/main/resources/com/ardublock/reference/program_comment.html b/src/main/resources/com/ardublock/reference/program_comment.html new file mode 100644 index 0000000..3b3607e --- /dev/null +++ b/src/main/resources/com/ardublock/reference/program_comment.html @@ -0,0 +1,5 @@ +<html> +<img style="-webkit-user-select: none" src="program_comment.png" alt="image" ></br> +<font size=+2>loop</font></br> +<font color=red>info Text</font><font color=blue>Bild</font> +<font size=-2>Troubleshooting</font></html> diff --git a/src/main/resources/com/ardublock/reference/program_comment.png b/src/main/resources/com/ardublock/reference/program_comment.png new file mode 100644 index 0000000000000000000000000000000000000000..0124bd608c1edcddead3f9c1c348036e8fe2828e GIT binary patch literal 16512 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%0D4Vhqm3n1AWHq?RplV$mrJx7 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 Sfd4Fjqonv+p+fF$*#85i=2lk# literal 0 HcmV?d00001 -- GitLab