diff --git a/src/main/java/com/ardublock/translator/block/didacticnetwork/PsnCallbackBlock.java b/src/main/java/com/ardublock/translator/block/didacticnetwork/PsnCallbackBlock.java index 7ff453bc38009a91691860a49b552b5bd539ba89..a28db2931c0d6bb3027972d6cbc145d259d29211 100644 --- a/src/main/java/com/ardublock/translator/block/didacticnetwork/PsnCallbackBlock.java +++ b/src/main/java/com/ardublock/translator/block/didacticnetwork/PsnCallbackBlock.java @@ -23,6 +23,9 @@ public class PsnCallbackBlock extends TranslatorBlock @Override public String toCode() throws SocketNullException, SubroutineNotDeclaredException { + String newMarker = "_.new"; + String regex = "\\s*"+newMarker+"\\b\\s*"; + String callbackName = label.trim(); String topicVar = ""; String topicLenVar = ""; @@ -40,10 +43,28 @@ public class PsnCallbackBlock extends TranslatorBlock TranslatorBlock tb_code = getTranslatorBlockAtSocket(5); - topicVar = tb_topicVar.toCode().replaceAll("\\s*_.new\\b\\s*", ""); - topicLenVar = tb_topicLenVar.toCode().replaceAll("\\s*_.new\\b\\s*", ""); - dataVar = tb_dataVar.toCode().replaceAll("\\s*_.new\\b\\s*", ""); - dataLenVar = tb_dataLenVar.toCode().replaceAll("\\s*_.new\\b\\s*", ""); + topicVar = tb_topicVar.toCode();//.replaceAll("\\s*_.new\\b\\s*", ""); + topicLenVar = tb_topicLenVar.toCode();//.replaceAll("\\s*_.new\\b\\s*", ""); + dataVar = tb_dataVar.toCode();//.replaceAll("\\s*_.new\\b\\s*", ""); + dataLenVar = tb_dataLenVar.toCode();//.replaceAll("\\s*_.new\\b\\s*", ""); + + //LOCAL VARs + if ((tb_topicVar instanceof LocalVariableStringBlock) && topicVar.contains(newMarker)) { + topicVar = topicVar.replaceAll(regex, ""); + translator.addNumberVariable(topicVar, topicVar); //remove the "new" Tag after declaration + } + if ((tb_topicLenVar instanceof LocalVariableNumberBlock) && topicLenVar.contains(newMarker)) { + topicLenVar = topicLenVar.replaceAll(regex, ""); + translator.addNumberVariable(topicLenVar, topicLenVar); //remove the "new" Tag after declaration + } + if ((tb_dataVar instanceof LocalVariableStringBlock) && dataVar.contains(newMarker)) { + dataVar = dataVar.replaceAll(regex, ""); + translator.addNumberVariable(dataVar, dataVar); //remove the "new" Tag after declaration + } + if ((tb_dataLenVar instanceof LocalVariableNumberBlock) && dataLenVar.contains(newMarker)) { + dataLenVar = dataLenVar.replaceAll(regex, ""); + translator.addNumberVariable(dataLenVar, dataLenVar); //remove the "new" Tag after declaration + } if (tb_topicVar instanceof LocalVariableStringBlock && tb_topicLenVar instanceof LocalVariableNumberBlock && tb_dataVar instanceof LocalVariableStringBlock && tb_dataLenVar instanceof LocalVariableNumberBlock) { translator.addDefinitionCommand("void " + callbackName + "(char*, int, char*, int);\n"); diff --git a/src/main/java/com/ardublock/ui/OpenblocksFrame.java b/src/main/java/com/ardublock/ui/OpenblocksFrame.java index 02fc534424ab8d3ad1548ce697578e18fe940d53..bf10a0c2632d74c3efc98508c9e1a79d61098cd4 100644 --- a/src/main/java/com/ardublock/ui/OpenblocksFrame.java +++ b/src/main/java/com/ardublock/ui/OpenblocksFrame.java @@ -203,7 +203,7 @@ public class OpenblocksFrame extends JFrame JMenuItem saveMenuItem = new JMenuItem(uiMessageBundle.getString("ardublock.ui.save")); saveMenuItem.addActionListener(saveButtonListener); saveMenuItem.setMnemonic(KeyEvent.VK_S); - saveMenuItem.registerKeyboardAction(newButtonListener, ctrlsKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW); + saveMenuItem.registerKeyboardAction(saveButtonListener, ctrlsKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW); saveMenuItem.setToolTipText(uiMessageBundle.getString("ardublock.ui.save.tooltip"));