@@ -44,118 +44,90 @@ require(['gitbook', 'jQuery'], function(gitbook, $) {
44
44
} ) ;
45
45
46
46
function render ( ) {
47
- // METHOD
48
- $ ( 'div[ai2-method]' ) . filter ( "[not-rendered]" ) . each ( function ( ) {
47
+ $ ( 'div[ai2-block]' ) . filter ( "[not-rendered]" ) . each ( function ( ) {
49
48
$ ( this ) . removeAttr ( "not-rendered" ) ;
49
+
50
50
var block = getBlock ( decodeURI ( $ ( this ) . attr ( "value" ) ) ) ;
51
51
52
- var name = block [ 'name' ] ;
53
- var param = block [ 'param' ] || block [ 'arg' ] || [ ] ;
54
- var output = block [ 'output' ] === true ;
55
- var scale = block [ 'scale' ] || CONF_SCALE_LEVEL ;
56
- var margin_left = block [ 'margin_left' ] || block [ 'margin' ] || CONF_MARGIN_LEFT ;
57
- var margin_top = block [ 'margin_top' ] || block [ 'margin' ] || CONF_MARGIN_TOP ;
58
- var margin_right = block [ 'margin_right' ] || block [ 'margin' ] || CONF_MARGIN_RIGHT ;
59
- var margin_bottom = block [ 'margin_bottom' ] || block [ 'margin' ] || CONF_MARGIN_BOTTOM ;
60
-
52
+ // should be after getBlock(json) because blockId needs to be refreshed
61
53
$ ( this ) . attr ( 'id' , blockId ) . show ( ) ;
62
-
63
- Blockly . Blocks [ 'dynamicCreated_' + blockId ] = {
64
- init : function ( ) {
65
- this . appendDummyInput ( ) . appendField ( CONF_TEXT_CALL ) . appendField ( new Blockly . FieldDropdown ( [ [ ComponentName , 'OPTIONNAME' ] ] ) , 'COMPONENT_SELECTOR' ) . appendField ( '.' + name ) ;
66
- for ( var i = 0 ; i < param . length ; i ++ ) {
67
- this . appendValueInput ( 'NAME' ) . setAlign ( Blockly . ALIGN_RIGHT ) . appendField ( param [ i ] ) ;
68
- }
69
- this . setInputsInline ( false ) ;
70
- if ( output ) {
71
- this . setOutput ( true , null ) ;
72
- } else {
73
- this . setPreviousStatement ( true , null ) ;
74
- this . setNextStatement ( true , null ) ;
75
- }
76
- this . setColour ( COLOUR_METHOD ) ;
77
- this . setTooltip ( '' ) ;
78
- this . setHelpUrl ( '' ) ;
79
- }
80
- } ;
81
-
82
- newBlockAndWorkspace ( blockId , scale , margin_left , margin_top , margin_right , margin_bottom ) ;
83
- } ) ;
84
-
85
- // EVENT
86
- $ ( 'div[ai2-event]' ) . filter ( "[not-rendered]" ) . each ( function ( ) {
87
- $ ( this ) . removeAttr ( "not-rendered" ) ;
88
- var block = getBlock ( decodeURI ( $ ( this ) . attr ( "value" ) ) ) ;
89
54
55
+ var type = $ ( this ) . attr ( "ai2-block" ) ;
90
56
var name = block [ 'name' ] ;
91
- var param = block [ 'param' ] || block [ 'arg' ] || [ ] ;
92
57
var scale = block [ 'scale' ] || CONF_SCALE_LEVEL ;
93
58
var margin_left = block [ 'margin_left' ] || block [ 'margin' ] || CONF_MARGIN_LEFT ;
94
59
var margin_top = block [ 'margin_top' ] || block [ 'margin' ] || CONF_MARGIN_TOP ;
95
60
var margin_right = block [ 'margin_right' ] || block [ 'margin' ] || CONF_MARGIN_RIGHT ;
96
61
var margin_bottom = block [ 'margin_bottom' ] || block [ 'margin' ] || CONF_MARGIN_BOTTOM ;
97
62
98
- $ ( this ) . attr ( 'id' , blockId ) . show ( ) ;
99
-
100
- Blockly . Blocks [ 'dynamicCreated_' + blockId ] = {
101
- init : function ( ) {
102
- this . appendDummyInput ( '' ) . appendField ( CONF_TEXT_WHEN ) . appendField ( new Blockly . FieldDropdown ( [ [ ComponentName , 'OPTIONNAME' ] ] ) , "COMPONENT_SELECTOR" ) . appendField ( '.' + name ) ;
103
- if ( param . length > 0 ) {
104
- var paramInput = this . appendDummyInput ( 'PARAMETERS' ) . appendField ( " " ) . setAlign ( Blockly . ALIGN_LEFT ) ;
63
+ // METHODS
64
+ if ( type == 'method' ) {
65
+ var param = block [ 'param' ] || block [ 'arg' ] || [ ] ;
66
+ var output = block [ 'output' ] === true ;
67
+
68
+ Blockly . Blocks [ 'dynamicCreated_' + blockId ] = {
69
+ init : function ( ) {
70
+ this . appendDummyInput ( ) . appendField ( CONF_TEXT_CALL ) . appendField ( new Blockly . FieldDropdown ( [ [ ComponentName , 'OPTIONNAME' ] ] ) , 'COMPONENT_SELECTOR' ) . appendField ( '.' + name ) ;
105
71
for ( var i = 0 ; i < param . length ; i ++ ) {
106
- paramInput . appendField ( new Blockly . FieldTextInput ( param [ i ] ) , 'VAR' + i ) . appendField ( " " ) ;
72
+ this . appendValueInput ( 'NAME' ) . setAlign ( Blockly . ALIGN_RIGHT ) . appendField ( param [ i ] ) ;
107
73
}
74
+ this . setInputsInline ( false ) ;
75
+ if ( output ) {
76
+ this . setOutput ( true , null ) ;
77
+ } else {
78
+ this . setPreviousStatement ( true , null ) ;
79
+ this . setNextStatement ( true , null ) ;
80
+ }
81
+ this . setColour ( COLOUR_METHOD ) ;
108
82
}
109
- this . appendStatementInput ( "DO" ) . appendField ( CONF_TEXT_DO ) ;
110
- this . setInputsInline ( false ) ;
111
- this . setPreviousStatement ( false , null ) ;
112
- this . setNextStatement ( false , null ) ;
113
- this . setColour ( COLOUR_EVENT ) ;
114
- this . setTooltip ( '' ) ;
115
- this . setHelpUrl ( '' ) ;
116
- }
117
- } ;
83
+ } ;
118
84
119
- newBlockAndWorkspace ( blockId , scale , margin_left , margin_top , margin_right , margin_bottom ) ;
120
- } ) ;
121
-
122
- // PROPERTY
123
- $ ( 'div[ai2-property]' ) . filter ( "[not-rendered]" ) . each ( function ( ) {
124
- $ ( this ) . removeAttr ( "not-rendered" ) ;
125
- var block = getBlock ( decodeURI ( $ ( this ) . attr ( "value" ) ) ) ;
126
-
127
- var name = block [ 'name' ] ;
128
- var getter = block [ 'getter' ] ;
129
- if ( getter !== true && getter !== false ) {
130
- getter = true ;
131
- }
132
- var scale = block [ 'scale' ] || CONF_SCALE_LEVEL ;
133
- var margin_left = block [ 'margin_left' ] || block [ 'margin' ] || CONF_MARGIN_LEFT ;
134
- var margin_top = block [ 'margin_top' ] || block [ 'margin' ] || CONF_MARGIN_TOP ;
135
- var margin_right = block [ 'margin_right' ] || block [ 'margin' ] || CONF_MARGIN_RIGHT ;
136
- var margin_bottom = block [ 'margin_bottom' ] || block [ 'margin' ] || CONF_MARGIN_BOTTOM ;
137
-
138
- $ ( this ) . attr ( 'id' , blockId ) . show ( ) ;
139
-
140
- Blockly . Blocks [ 'dynamicCreated_' + blockId ] = {
141
- init : function ( ) {
142
- var input ;
143
- if ( getter ) {
144
- input = this . appendDummyInput ( ) ;
145
- this . setOutput ( true , null ) ;
146
- } else {
147
- input = this . appendValueInput ( "NAME" ) . appendField ( CONF_TEXT_SET ) ;
148
- this . setPreviousStatement ( true , null ) ;
149
- this . setNextStatement ( true , null ) ;
85
+ // EVENTS
86
+ } else if ( type == 'event' ) {
87
+ var param = block [ 'param' ] || block [ 'arg' ] || [ ] ;
88
+
89
+ Blockly . Blocks [ 'dynamicCreated_' + blockId ] = {
90
+ init : function ( ) {
91
+ this . appendDummyInput ( '' ) . appendField ( CONF_TEXT_WHEN ) . appendField ( new Blockly . FieldDropdown ( [ [ ComponentName , 'OPTIONNAME' ] ] ) , "COMPONENT_SELECTOR" ) . appendField ( '.' + name ) ;
92
+ if ( param . length > 0 ) {
93
+ var paramInput = this . appendDummyInput ( 'PARAMETERS' ) . appendField ( " " ) . setAlign ( Blockly . ALIGN_LEFT ) ;
94
+ for ( var i = 0 ; i < param . length ; i ++ ) {
95
+ paramInput . appendField ( new Blockly . FieldTextInput ( param [ i ] ) , 'VAR' + i ) . appendField ( " " ) ;
96
+ }
97
+ }
98
+ this . appendStatementInput ( "DO" ) . appendField ( CONF_TEXT_DO ) ;
99
+ this . setInputsInline ( false ) ;
100
+ this . setPreviousStatement ( false , null ) ;
101
+ this . setNextStatement ( false , null ) ;
102
+ this . setColour ( COLOUR_EVENT ) ;
150
103
}
151
- input . appendField ( new Blockly . FieldDropdown ( [ [ ComponentName , 'OPTIONNAME' ] ] ) , "NAME" )
152
- . appendField ( "." )
153
- . appendField ( new Blockly . FieldDropdown ( [ [ name , "OPTIONNAME" ] ] ) , "NAME2" ) ;
154
- this . setColour ( getter ? COLOUR_GET : COLOUR_SET ) ;
155
- this . setTooltip ( '' ) ;
156
- this . setHelpUrl ( '' ) ;
104
+ } ;
105
+
106
+ // PROPERTIES
107
+ } else if ( type == 'property' ) {
108
+ var getter = block [ 'getter' ] ;
109
+ if ( getter !== true && getter !== false ) {
110
+ getter = true ;
157
111
}
158
- } ;
112
+
113
+ Blockly . Blocks [ 'dynamicCreated_' + blockId ] = {
114
+ init : function ( ) {
115
+ var input ;
116
+ if ( getter ) {
117
+ input = this . appendDummyInput ( ) ;
118
+ this . setOutput ( true , null ) ;
119
+ } else {
120
+ input = this . appendValueInput ( "NAME" ) . appendField ( CONF_TEXT_SET ) ;
121
+ this . setPreviousStatement ( true , null ) ;
122
+ this . setNextStatement ( true , null ) ;
123
+ }
124
+ input . appendField ( new Blockly . FieldDropdown ( [ [ ComponentName , 'OPTIONNAME' ] ] ) , "NAME" )
125
+ . appendField ( "." )
126
+ . appendField ( new Blockly . FieldDropdown ( [ [ name , "OPTIONNAME" ] ] ) , "NAME2" ) ;
127
+ this . setColour ( getter ? COLOUR_GET : COLOUR_SET ) ;
128
+ }
129
+ } ;
130
+ }
159
131
160
132
newBlockAndWorkspace ( blockId , scale , margin_left , margin_top , margin_right , margin_bottom ) ;
161
133
} ) ;
0 commit comments