mirror of
https://github.com/google/blockly.git
synced 2026-01-07 00:50:27 +01:00
Refactor previous merge.
This commit is contained in:
@@ -299,36 +299,29 @@ Blockly.Blocks['logic_compare'] = {
|
||||
};
|
||||
return TOOLTIPS[op];
|
||||
});
|
||||
var myid = this.id;
|
||||
var bindid = Blockly.addChangeListener(function() {
|
||||
var me = Blockly.mainWorkspace.getBlockById(myid);
|
||||
if(null == me) {
|
||||
Blockly.removeChangeListener(bindid);
|
||||
} else {
|
||||
if (me.getInputTargetBlock('A') && !me.getInputTargetBlock('B')) {
|
||||
if (me.getInputTargetBlock('A').outputConnection.check_) {
|
||||
me.getInput('B').setCheck(me.getInputTargetBlock('A').outputConnection.check_[0]);
|
||||
} else {
|
||||
me.getInput('B').setCheck(null);
|
||||
}
|
||||
} else if (me.getInputTargetBlock('B') && !me.getInputTargetBlock('A')) {
|
||||
if (me.getInputTargetBlock('B').outputConnection.check_) {
|
||||
me.getInputTargetBlock('A').setCheck(me.getInputTargetBlock('B').outputConnection.check_[0]);
|
||||
} else {
|
||||
me.getInput('A').setCheck(null);
|
||||
}
|
||||
} else if (me.getInputTargetBlock('A') && me.getInputTargetBlock('B')) {
|
||||
if (me.getInputTargetBlock('A').outputConnection.check_) {
|
||||
me.getInput('B').setCheck(me.getInputTargetBlock('A').outputConnection.check_[0]);
|
||||
} else if (me.getInput('B').outputConnection.check_) {
|
||||
me.getInput('A').setCheck(me.getInputTargetBlock('B').outputConnection.check_[0]);
|
||||
}
|
||||
} else {
|
||||
me.getInput('A').setCheck(null);
|
||||
me.getInput('B').setCheck(null);
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
/**
|
||||
* Called whenever anything on the workspace changes.
|
||||
* Prevent mismatched types from being compared.
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
onchange: function() {
|
||||
if (!this.workspace) {
|
||||
// Block has been deleted.
|
||||
return;
|
||||
}
|
||||
var blockA = this.getInputTargetBlock('A');
|
||||
var blockB = this.getInputTargetBlock('B');
|
||||
if (blockA) {
|
||||
this.getInput('B').setCheck(blockA.outputConnection.check_);
|
||||
}
|
||||
if (blockB) {
|
||||
this.getInput('A').setCheck(blockB.outputConnection.check_);
|
||||
}
|
||||
if (!blockA && !blockB) {
|
||||
this.getInput('A').setCheck(null);
|
||||
this.getInput('B').setCheck(null);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -47,7 +47,8 @@ b++;break;case "controls_if_else":d=this.getInput("ELSE");a.statementConnection_
|
||||
Blockly.Blocks.controls_if_elseif={init:function(){this.setColour(Blockly.Blocks.logic.HUE);this.appendDummyInput().appendField(Blockly.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.CONTROLS_IF_ELSEIF_TOOLTIP);this.contextMenu=!1}};
|
||||
Blockly.Blocks.controls_if_else={init:function(){this.setColour(Blockly.Blocks.logic.HUE);this.appendDummyInput().appendField(Blockly.Msg.CONTROLS_IF_ELSE_TITLE_ELSE);this.setPreviousStatement(!0);this.setTooltip(Blockly.Msg.CONTROLS_IF_ELSE_TOOLTIP);this.contextMenu=!1}};
|
||||
Blockly.Blocks.logic_compare={init:function(){var a=Blockly.RTL?[["=","EQ"],["\u2260","NEQ"],[">","LT"],["\u2265","LTE"],["<","GT"],["\u2264","GTE"]]:[["=","EQ"],["\u2260","NEQ"],["<","LT"],["\u2264","LTE"],[">","GT"],["\u2265","GTE"]];this.setHelpUrl(Blockly.Msg.LOGIC_COMPARE_HELPURL);this.setColour(Blockly.Blocks.logic.HUE);this.setOutput(!0,"Boolean");this.appendValueInput("A");this.appendValueInput("B").appendField(new Blockly.FieldDropdown(a),"OP");this.setInputsInline(!0);var b=this;this.setTooltip(function(){var a=
|
||||
b.getFieldValue("OP");return{EQ:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[a]})}};
|
||||
b.getFieldValue("OP");return{EQ:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[a]})},onchange:function(){if(this.workspace){var a=this.getInputTargetBlock("A"),b=this.getInputTargetBlock("B");a&&this.getInput("B").setCheck(a.outputConnection.check_);b&&this.getInput("A").setCheck(b.outputConnection.check_);
|
||||
a||b||(this.getInput("A").setCheck(null),this.getInput("B").setCheck(null))}}};
|
||||
Blockly.Blocks.logic_operation={init:function(){var a=[[Blockly.Msg.LOGIC_OPERATION_AND,"AND"],[Blockly.Msg.LOGIC_OPERATION_OR,"OR"]];this.setHelpUrl(Blockly.Msg.LOGIC_OPERATION_HELPURL);this.setColour(Blockly.Blocks.logic.HUE);this.setOutput(!0,"Boolean");this.appendValueInput("A").setCheck("Boolean");this.appendValueInput("B").setCheck("Boolean").appendField(new Blockly.FieldDropdown(a),"OP");this.setInputsInline(!0);var b=this;this.setTooltip(function(){var a=b.getFieldValue("OP");return{AND:Blockly.Msg.LOGIC_OPERATION_TOOLTIP_AND,
|
||||
OR:Blockly.Msg.LOGIC_OPERATION_TOOLTIP_OR}[a]})}};Blockly.Blocks.logic_negate={init:function(){this.setHelpUrl(Blockly.Msg.LOGIC_NEGATE_HELPURL);this.setColour(Blockly.Blocks.logic.HUE);this.setOutput(!0,"Boolean");this.interpolateMsg(Blockly.Msg.LOGIC_NEGATE_TITLE,["BOOL","Boolean",Blockly.ALIGN_RIGHT],Blockly.ALIGN_RIGHT);this.setTooltip(Blockly.Msg.LOGIC_NEGATE_TOOLTIP)}};
|
||||
Blockly.Blocks.logic_boolean={init:function(){var a=[[Blockly.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[Blockly.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setHelpUrl(Blockly.Msg.LOGIC_BOOLEAN_HELPURL);this.setColour(Blockly.Blocks.logic.HUE);this.setOutput(!0,"Boolean");this.appendDummyInput().appendField(new Blockly.FieldDropdown(a),"BOOL");this.setTooltip(Blockly.Msg.LOGIC_BOOLEAN_TOOLTIP)}};
|
||||
|
||||
Reference in New Issue
Block a user