diff --git a/src/main/java/com/ardublock/core/Context.java b/src/main/java/com/ardublock/core/Context.java index cc420f0ccdac6868a56c729f9349fd13ffd1c494..048d51460bbe174773a2630e671b0ab7a939cc31 100644 --- a/src/main/java/com/ardublock/core/Context.java +++ b/src/main/java/com/ardublock/core/Context.java @@ -235,6 +235,7 @@ public class Context { for (RenderableBlock rb : highlightBlockSet) { + rb.getBlock().setBad(false); //reset bad-state after error - added by letsgoING rb.updateInSearchResults(false); } highlightBlockSet.clear(); diff --git a/src/main/java/com/ardublock/ui/OpenblocksFrame.java b/src/main/java/com/ardublock/ui/OpenblocksFrame.java index c1c1cd1aed9967a2241c8c0e2a7fca7c9d765d42..52d1e40802689365bb494bdc4f909bb20e22a10a 100644 --- a/src/main/java/com/ardublock/ui/OpenblocksFrame.java +++ b/src/main/java/com/ardublock/ui/OpenblocksFrame.java @@ -460,27 +460,30 @@ public class OpenblocksFrame extends JFrame //***************************************** //bottomPanel.add(blockreferenceButton); - bottomPanel.add(Box.createRigidArea(new Dimension(10, 0))); //std value 30,0 bottomPanel.add(modeBasicButton); bottomPanel.add(modeProButton); bottomPanel.add(modeSimButton); - bottomPanel.add(Box.createRigidArea(new Dimension(10, 0))); //std value 30,0 + bottomPanel.add(Box.createRigidArea(new Dimension(5, 0))); //std value 30,0 + bottomPanel.add(context.getWorkspaceController().getSearchBar()); + + bottomPanel.add(Box.createRigidArea(new Dimension(5, 0))); //std value 30,0 //bottomPanel.add(zoomSlider); //bottomPanel.add(zoomInButton); //bottomPanel.add(zoomResetButton); //bottomPanel.add(zoomOutButton); - bottomPanel.add(Box.createRigidArea(new Dimension(10, 0)));//std value 30,0 + bottomPanel.add(Box.createRigidArea(new Dimension(5, 0)));//std value 30,0 bottomPanel.add(copyButton); bottomPanel.add(pasteButton); - bottomPanel.add(Box.createRigidArea(new Dimension(10, 0))); //std value 30,0 + bottomPanel.add(Box.createRigidArea(new Dimension(5, 0))); //std value 30,0 bottomPanel.add(saveImageButton); bottomPanel.add(saveDefaultButton); - bottomPanel.add(Box.createRigidArea(new Dimension(10, 0))); //std value 30,0 + bottomPanel.add(Box.createRigidArea(new Dimension(5, 0))); //std value 30,0 bottomPanel.add(versionLabel); - bottomPanel.add(Box.createRigidArea(new Dimension(10, 0))); //std value 30,0 + bottomPanel.add(Box.createRigidArea(new Dimension(5, 0))); //std value 30,0 bottomPanel.add(websiteButton); + //bottomPanel.add(lmssiteButton); this.add(topPanel, BorderLayout.NORTH); diff --git a/src/main/java/com/ardublock/ui/listener/GenerateCodeButtonListener.java b/src/main/java/com/ardublock/ui/listener/GenerateCodeButtonListener.java index 51820b8af25ca43902653b5a6e38836665fe4f55..7d65287aaf3ca5c606473de1aaf18ddc27a5036d 100644 --- a/src/main/java/com/ardublock/ui/listener/GenerateCodeButtonListener.java +++ b/src/main/java/com/ardublock/ui/listener/GenerateCodeButtonListener.java @@ -101,6 +101,7 @@ public class GenerateCodeButtonListener implements ActionListener } catch (SubroutineNameDuplicatedException e1) { + renderableBlock.getBlock().setBad(true); //added by letsgoING context.highlightBlock(renderableBlock); //find the second subroutine whose name is defined, and make it highlight. though it cannot happen due to constraint of OpenBlocks -_- JOptionPane.showMessageDialog(parentFrame, uiMessageBundle.getString("ardublock.translator.exception.subroutineNameDuplicated"), "Error", JOptionPane.ERROR_MESSAGE); @@ -117,6 +118,7 @@ public class GenerateCodeButtonListener implements ActionListener } catch (SubroutineNameDuplicatedException e1) { + renderableBlock.getBlock().setBad(true); //added by letsgoING context.highlightBlock(renderableBlock); //find the second subroutine whose name is defined, and make it highlight. though it cannot happen due to constraint of OpenBlocks -_- JOptionPane.showMessageDialog(parentFrame, uiMessageBundle.getString("ardublock.translator.exception.subroutineNameDuplicated"), "Error", JOptionPane.ERROR_MESSAGE); @@ -133,6 +135,7 @@ public class GenerateCodeButtonListener implements ActionListener } catch (SubroutineNameDuplicatedException e1) { + renderableBlock.getBlock().setBad(true); //added by letsgoING context.highlightBlock(renderableBlock); //find the second subroutine whose name is defined, and make it highlight. though it cannot happen due to constraint of OpenBlocks -_- JOptionPane.showMessageDialog(parentFrame, uiMessageBundle.getString("ardublock.translator.exception.subroutineNameDuplicated"), "Error", JOptionPane.ERROR_MESSAGE); @@ -149,6 +152,7 @@ public class GenerateCodeButtonListener implements ActionListener } catch (SubroutineNameDuplicatedException e1) { + renderableBlock.getBlock().setBad(true); //added by letsgoING context.highlightBlock(renderableBlock); //find the second subroutine whose name is defined, and make it highlight. though it cannot happen due to constraint of OpenBlocks -_- JOptionPane.showMessageDialog(parentFrame, uiMessageBundle.getString("ardublock.translator.exception.subroutineNameDuplicated"), "Error", JOptionPane.ERROR_MESSAGE); @@ -165,6 +169,7 @@ public class GenerateCodeButtonListener implements ActionListener } catch (SubroutineNameDuplicatedException e1) { + renderableBlock.getBlock().setBad(true); //added by letsgoING context.highlightBlock(renderableBlock); //find the second subroutine whose name is defined, and make it highlight. though it cannot happen due to constraint of OpenBlocks -_- JOptionPane.showMessageDialog(parentFrame, uiMessageBundle.getString("ardublock.translator.exception.subroutineNameDuplicated"), "Error", JOptionPane.ERROR_MESSAGE); @@ -185,6 +190,7 @@ public class GenerateCodeButtonListener implements ActionListener if (loopBlockSet.size() > 1) { for (RenderableBlock rb : loopBlockSet) { + rb.getBlock().setBad(true); //added by letsgoING context.highlightBlock(rb); } JOptionPane.showMessageDialog(parentFrame, uiMessageBundle.getString("ardublock.translator.exception.multipleLoopFound"), "Error", JOptionPane.ERROR_MESSAGE); @@ -237,6 +243,7 @@ public class GenerateCodeButtonListener implements ActionListener Block block2 = renderableBlock2.getBlock(); if (block2.getBlockID().equals(blockId)) { + block2.setBad(true); //added by letsgoING context.highlightBlock(renderableBlock2); errorMessage = "\n\n"+uiMessageBundle.getString("ardublock.translator.exception.socketNull.consolePrint")+" "+block2.getBlockLabel(); break; @@ -256,6 +263,7 @@ public class GenerateCodeButtonListener implements ActionListener Block block2 = renderableBlock2.getBlock(); if (block2.getBlockID().equals(blockId)) { + block2.setBad(true); //added by letsgoING context.highlightBlock(renderableBlock2); break; } @@ -274,6 +282,7 @@ public class GenerateCodeButtonListener implements ActionListener Block block2 = renderableBlock3.getBlock(); if (block2.getBlockID().equals(blockId)) { + block2.setBad(true); //added by letsgoING context.highlightBlock(renderableBlock3); errorMessage = "\n\n"+uiMessageBundle.getString("ardublock.translator.exception.subroutineNotDeclared.consolePrint")+" "+block2.getBlockLabel(); break; diff --git a/src/main/java/com/ardublock/ui/listener/SimulateCodeButtonListener.java b/src/main/java/com/ardublock/ui/listener/SimulateCodeButtonListener.java index 8310e602da96de99d94ec4873a108ed551402b4d..bbb083be3cca71c4d1c860afd45626c865c2aa5b 100644 --- a/src/main/java/com/ardublock/ui/listener/SimulateCodeButtonListener.java +++ b/src/main/java/com/ardublock/ui/listener/SimulateCodeButtonListener.java @@ -108,6 +108,7 @@ public class SimulateCodeButtonListener implements ActionListener } catch (SubroutineNameDuplicatedException e1) { + renderableBlock.getBlock().setBad(true); //added by letsgoING context.highlightBlock(renderableBlock); //find the second subroutine whose name is defined, and make it highlight. though it cannot happen due to constraint of OpenBlocks -_- JOptionPane.showMessageDialog(parentFrame, uiMessageBundle.getString("ardublock.translator.exception.subroutineNameDuplicated"), "Error", JOptionPane.ERROR_MESSAGE); @@ -124,6 +125,7 @@ public class SimulateCodeButtonListener implements ActionListener } catch (SubroutineNameDuplicatedException e1) { + renderableBlock.getBlock().setBad(true); //added by letsgoING context.highlightBlock(renderableBlock); //find the second subroutine whose name is defined, and make it highlight. though it cannot happen due to constraint of OpenBlocks -_- JOptionPane.showMessageDialog(parentFrame, uiMessageBundle.getString("ardublock.translator.exception.subroutineNameDuplicated"), "Error", JOptionPane.ERROR_MESSAGE); @@ -140,6 +142,7 @@ public class SimulateCodeButtonListener implements ActionListener } catch (SubroutineNameDuplicatedException e1) { + renderableBlock.getBlock().setBad(true); //added by letsgoING context.highlightBlock(renderableBlock); //find the second subroutine whose name is defined, and make it highlight. though it cannot happen due to constraint of OpenBlocks -_- JOptionPane.showMessageDialog(parentFrame, uiMessageBundle.getString("ardublock.translator.exception.subroutineNameDuplicated"), "Error", JOptionPane.ERROR_MESSAGE); @@ -156,6 +159,7 @@ public class SimulateCodeButtonListener implements ActionListener } catch (SubroutineNameDuplicatedException e1) { + renderableBlock.getBlock().setBad(true); //added by letsgoING context.highlightBlock(renderableBlock); //find the second subroutine whose name is defined, and make it highlight. though it cannot happen due to constraint of OpenBlocks -_- JOptionPane.showMessageDialog(parentFrame, uiMessageBundle.getString("ardublock.translator.exception.subroutineNameDuplicated"), "Error", JOptionPane.ERROR_MESSAGE); @@ -172,6 +176,7 @@ public class SimulateCodeButtonListener implements ActionListener } catch (SubroutineNameDuplicatedException e1) { + renderableBlock.getBlock().setBad(true); //added by letsgoING context.highlightBlock(renderableBlock); //find the second subroutine whose name is defined, and make it highlight. though it cannot happen due to constraint of OpenBlocks -_- JOptionPane.showMessageDialog(parentFrame, uiMessageBundle.getString("ardublock.translator.exception.subroutineNameDuplicated"), "Error", JOptionPane.ERROR_MESSAGE); @@ -192,6 +197,7 @@ public class SimulateCodeButtonListener implements ActionListener if (loopBlockSet.size() > 1) { for (RenderableBlock rb : loopBlockSet) { + rb.getBlock().setBad(true); //added by letsgoING context.highlightBlock(rb); } JOptionPane.showMessageDialog(parentFrame, uiMessageBundle.getString("ardublock.translator.exception.multipleLoopFound"), "Error", JOptionPane.ERROR_MESSAGE); @@ -252,6 +258,7 @@ public class SimulateCodeButtonListener implements ActionListener Block block2 = renderableBlock2.getBlock(); if (block2.getBlockID().equals(blockId)) { + block2.setBad(true); //added by letsgoING context.highlightBlock(renderableBlock2); errorMessage = "\n\n"+uiMessageBundle.getString("ardublock.translator.exception.socketNull.consolePrint")+" "+block2.getBlockLabel(); break; @@ -270,6 +277,7 @@ public class SimulateCodeButtonListener implements ActionListener Block block2 = renderableBlock2.getBlock(); if (block2.getBlockID().equals(blockId)) { + block2.setBad(true); //added by letsgoING context.highlightBlock(renderableBlock2); break; } @@ -288,6 +296,7 @@ public class SimulateCodeButtonListener implements ActionListener Block block2 = renderableBlock3.getBlock(); if (block2.getBlockID().equals(blockId)) { + block2.setBad(true); //added by letsgoING context.highlightBlock(renderableBlock3); errorMessage = "\n\n"+uiMessageBundle.getString("ardublock.translator.exception.subroutineNotDeclared.consolePrint")+" "+block2.getBlockLabel(); break; diff --git a/src/main/resources/com/ardublock/block/ardublock.properties b/src/main/resources/com/ardublock/block/ardublock.properties index 9351739ab88dbc7565040a8fc10dc9c2d8857442..212bcea6c71cbb1936b255c78f7816b044ec18c7 100644 --- a/src/main/resources/com/ardublock/block/ardublock.properties +++ b/src/main/resources/com/ardublock/block/ardublock.properties @@ -26,7 +26,7 @@ ardublock.ui.add_comment=Add Comment ardublock.ui.delete_comment=Delete Comment ardublock.ui.organize_blocks=Organize all blocks ardublock.ui.create_refer=create reference -ardublock.ui.website=letsgoING Project +ardublock.ui.website=letsgoING ardublock.ui.website.domain=https://letsgoing.org ardublock.ui.website.tooltip=goto letsgoING project-page ardublock.ui.lmssite=Online LMS @@ -70,7 +70,7 @@ 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 beta3 newBlockFormat +ardublock.ui.version=v2.2 beta3 nBF ardublock.ui.appprefix.standard= ardublock.ui.appprefix.pro=Pro @@ -627,6 +627,8 @@ bg.setter_variable_analog== bg.setter_variable_analog.description= bg.create_variable_analog== bg.create_variable_analog.description= +bg.create_array_analog== +bg.create_array_analog.description= #ARRAYS #**************************** diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml index 50b408a22dd23efa3637ec8bbddcf5f4532e3d8c..2ebe67c35fb0bb247159dde0e4fb1e55ac3712ac 100644 --- a/src/main/resources/com/ardublock/block/ardublock.xml +++ b/src/main/resources/com/ardublock/block/ardublock.xml @@ -1876,6 +1876,7 @@ </BlockGenus> + <!--TESTESTEST--> <BlockGenus name="setter_variable_analog" kind="command" color="255 0 0" initlabel="bg.setter_variable_analog" editable-label="no"> <description> <text>TESTTEST</text> @@ -1890,6 +1891,19 @@ </BlockGenus> <BlockGenus name="create_variable_analog" kind="command" color="255 0 0" initlabel="bg.create_variable_analog" editable-label="no"> + <description> + <text>TESTTEST</text> + </description> + <BlockConnectors> + <BlockConnector connector-type="number" connector-kind="socket" label="int" position-type="bottom"> + <DefaultArg genus-name="variable_number" label="analoge_Variable" /> + </BlockConnector> + <BlockConnector connector-type="number" connector-kind="socket" position-type="bottom"> + </BlockConnector> + </BlockConnectors> + </BlockGenus> + + <BlockGenus name="create_array_analog" kind="command" color="255 0 0" initlabel="bg.create_array_analog" editable-label="no"> <description> <text>TESTTEST</text> </description> @@ -3062,13 +3076,15 @@ </BlockDrawer> <BlockDrawer button-color="255 0 0" name="bd.number" type="default"> + <BlockGenusMember>setter_variable_analog</BlockGenusMember> + <BlockGenusMember>create_variable_analog</BlockGenusMember> + <BlockGenusMember>create_array_analog</BlockGenusMember> + <BlockGenusMember>numberDivider1</BlockGenusMember> <BlockGenusMember>millis</BlockGenusMember> <BlockGenusMember>numberDivider2</BlockGenusMember> - <!-- <BlockGenusMember>setter_variable_analog</BlockGenusMember> - <BlockGenusMember>create_variable_analog</BlockGenusMember>--> <BlockGenusMember>setter_variable_digital</BlockGenusMember> <BlockGenusMember>variable_digital</BlockGenusMember> diff --git a/src/main/resources/com/ardublock/block/ardublock_de.properties b/src/main/resources/com/ardublock/block/ardublock_de.properties index d47c5ff1e7c171e2c05f07c52be898bd4ebdeedb..e35de1cd8f63a60f437c9e8bd5e04fca84ad3b14 100644 --- a/src/main/resources/com/ardublock/block/ardublock_de.properties +++ b/src/main/resources/com/ardublock/block/ardublock_de.properties @@ -26,7 +26,7 @@ ardublock.ui.add_comment=Kommentar hinzuf ardublock.ui.delete_comment=Kommentar löschen ardublock.ui.organize_blocks=Alle Blöcke neu anordnen ardublock.ui.create_refer=Verweis erstellen -ardublock.ui.website=letsgoING Projekt +ardublock.ui.website=letsgoING ardublock.ui.website.domain=https://letsgoing.org ardublock.ui.website.tooltip=öffnet die letsgoING-Homepage ardublock.ui.lmssite=Online Lernen @@ -72,7 +72,7 @@ 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 beta3 newBlockFormat +ardublock.ui.version=v2.2 beta3 nBF ardublock.ui.appprefix.standard= ardublock.ui.appprefix.pro=Pro @@ -623,7 +623,8 @@ bg.setter_variable_analog== bg.setter_variable_analog.description=Schreibe neuen Wert in analoge Variable bg.create_variable_analog== bg.create_variable_analog.description=Erstelle neue analoge Variable\nOptional mit Startwert - +bg.create_array_analog== +bg.create_array_analog.description=Erstelle neues analoge Array\nOptional mit Startwert #ARRAYS #****************************