| 1 |  | -(function() | 
| 2 |  | -{ | 
|  | 1 | +(function () { | 
| 3 | 2 | // Adds electrical stencils | 
| 4 |  | -	Sidebar.prototype.addElectricalPalette = function() | 
| 5 |  | -	{ | 
|  | 3 | +	Sidebar.prototype.addElectricalPalette = function () { | 
| 6 | 4 | var s = mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=bottom;shadow=0;dashed=0;align=center;html=1;' + mxConstants.STYLE_VERTICAL_ALIGN + '=top;' + mxConstants.STYLE_SHAPE; | 
| 7 | 5 | var mea = s + '=mxgraph.electrical.abstract.'; | 
| 8 | 6 | var mec = 'pointerEvents=1;' + s + '=mxgraph.electrical.capacitors.'; | 
| ... | ... | @@ -65,615 +63,634 @@ | 
| 65 | 63 | var dtmetr = 'electrical transmission paths bus buses'; | 
| 66 | 64 |  | 
| 67 | 65 | this.setCurrentSearchEntryLibrary('electrical', 'electrical\LogicGates'); | 
| 68 |  | - | 
| 69 |  | -		this.addPaletteFunctions('electrical\LogicGates', 'Electrical / Logic Gates', false, | 
| 70 |  | -		[ | 
| 71 |  | -			this.createVertexTemplateEntry(mel + 'logic_gate;operation=and;', 100, 60, '', 'AND', null, null, this.getTagsForStencil(gnmel, 'and', dtmel).join(' ')), | 
| 72 |  | -			this.createVertexTemplateEntry(mel + 'buffer2;', 100, 60, '', 'Buffer', null, null, this.getTagsForStencil(gnmel, 'buffer', dtmel).join(' ')), | 
| 73 |  | -			this.createVertexTemplateEntry(mel + 'd_type_flip-flop;', 100, 80, '', 'D Type Flip-Flop', null, null, this.getTagsForStencil(gnmel, 'd_type_flip-flop', dtmel).join(' ')), | 
| 74 |  | -			this.createVertexTemplateEntry(mel + 'd_type_flip-flop_with_clear_2;', 100, 90, '', 'D Type Flip-Flop With Clear', null, null, this.getTagsForStencil(gnmel, 'd_type_flip-flop_with_clear', dtmel).join(' ')), | 
| 75 |  | -			this.createVertexTemplateEntry(mel + 'd_type_rs_flip-flop;', 100, 100, '', 'D Type RS Flip-Flop', null, null, this.getTagsForStencil(gnmel, 'd_type_rs_flip-flop', dtmel).join(' ')), | 
| 76 |  | -			this.createVertexTemplateEntry(mel + 'inverter_2', 100, 60, '', 'Inverter', null, null, this.getTagsForStencil(gnmel, 'inverter', dtmel).join(' ')), | 
| 77 |  | -			this.createVertexTemplateEntry(mel + 'inverting_contact;', 10, 10, '', 'Inverting Contact', null, null, this.getTagsForStencil(gnmel, 'inverting_contact', dtmel).join(' ')), | 
| 78 |  | -			this.createVertexTemplateEntry(mel + 'jk_flip-flop;', 100, 80, '', 'JK Flip-Flop', null, null, this.getTagsForStencil(gnmel, 'jk_flip-flop', dtmel).join(' ')), | 
| 79 |  | -			this.createVertexTemplateEntry(mel + 'jk_flip-flop_with_clear_2;', 100, 90, '', 'JK Flip-Flop With Clear', null, null, this.getTagsForStencil(gnmel, 'jk_flip-flop_with_clear', dtmel).join(' ')), | 
| 80 |  | -			this.createVertexTemplateEntry(mel + 'jk_flip-flop_with_sr;', 100, 100, '', 'JK Flip-Flop With SR', null, null, this.getTagsForStencil(gnmel, 'jk_flip-flop_with_sr', dtmel).join(' ')), | 
| 81 |  | -			this.createVertexTemplateEntry(mel + 'logic_gate;operation=and;negating=1;negSize=0.15;', 100, 60, '', 'NAND', null, null, this.getTagsForStencil(gnmel, 'nand not and', dtmel).join(' ')), | 
| 82 |  | -			this.createVertexTemplateEntry(mel + 'logic_gate;operation=or;', 100, 60, '', 'OR', null, null, this.getTagsForStencil(gnmel, 'or', dtmel).join(' ')), | 
| 83 |  | -			this.createVertexTemplateEntry(mel + 'logic_gate;operation=or;negating=1;negSize=0.15;', 100, 60, '', 'NOR', null, null, this.getTagsForStencil(gnmel, 'nor', dtmel).join(' ')), | 
| 84 |  | -			this.createVertexTemplateEntry(mel + 'rs_latch;', 100, 80, '', 'RS Latch', null, null, this.getTagsForStencil(gnmel, 'rs_latch', dtmel).join(' ')), | 
| 85 |  | -			this.createVertexTemplateEntry(mel + 'synchronous_rs_latch;', 100, 80, '', 'RS Latch (Synchronous)', null, null, this.getTagsForStencil(gnmel, 'synchronous_rs_latch', dtmel).join(' ')), | 
| 86 |  | -			this.createVertexTemplateEntry(mel + 'schmitt_trigger;', 100, 60, '', 'Schmitt Trigger', null, null, this.getTagsForStencil(gnmel, 'schmitt_trigger', dtmel).join(' ')), | 
| 87 |  | -			this.createVertexTemplateEntry(mel + 't_type_flip-flop;', 100, 80, '', 'T Type Flip-Flop', null, null, this.getTagsForStencil(gnmel, 't_type_flip-flop', dtmel).join(' ')), | 
| 88 |  | -			this.createVertexTemplateEntry(mel + 'logic_gate;operation=xor;', 100, 60, '', 'XOR', null, null, this.getTagsForStencil(gnmel, 'xor', dtmel).join(' ')), | 
| 89 |  | -			this.createVertexTemplateEntry(mel + 'logic_gate;operation=xor;negating=1;negSize=0.15;', 100, 60, '', 'XNOR', null, null, this.getTagsForStencil(gnmel, 'xnor', dtmel).join(' ')), | 
| 90 |  | -			this.createVertexTemplateEntry(meiecl + 'and;', 60, 80, '', 'AND (IEC)', null, null, this.getTagsForStencil(gnmeiecl, 'and', dtmeiecl).join(' ')), | 
| 91 |  | -			this.createVertexTemplateEntry(meiecl + 'nand_2;', 66, 80, '', 'NAND (IEC)', null, null, this.getTagsForStencil(gnmeiecl, 'nand', dtmeiecl).join(' ')), | 
| 92 |  | -			this.createVertexTemplateEntry(meiecl + 'or;', 60, 80, '', 'OR (IEC)', null, null, this.getTagsForStencil(gnmeiecl, 'or', dtmeiecl).join(' ')), | 
| 93 |  | -			this.createVertexTemplateEntry(meiecl + 'nor_2;', 66, 80, '', 'NOR (IEC)', null, null, this.getTagsForStencil(gnmeiecl, 'nor', dtmeiecl).join(' ')), | 
| 94 |  | -			this.createVertexTemplateEntry(meiecl + 'not_2;', 66, 80, '', 'NOT (IEC)', null, null, this.getTagsForStencil(gnmeiecl, 'xor', dtmeiecl).join(' ')), | 
| 95 |  | -			this.createVertexTemplateEntry(meiecl + 'xor;', 60, 80, '', 'XOR (IEC)', null, null, this.getTagsForStencil(gnmeiecl, 'xor', dtmeiecl).join(' ')), | 
| 96 |  | -			this.createVertexTemplateEntry( | 
| 97 |  | -					'shadow=0;dashed=0;align=center;html=1;strokeWidth=1;shape=mxgraph.electrical.logic_gates.dual_inline_ic;labelNames=a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;whiteSpace=wrap;', | 
|  | 66 | + | 
|  | 67 | +		// TODO ThingsKit i18n国际化 | 
|  | 68 | +		// this.addPaletteFunctions('electrical\LogicGates', 'Electrical / Logic Gates', false, | 
|  | 69 | +		this.addPaletteFunctions('electrical\LogicGates', mxResources.get('Electrical / Logic Gates'), false, | 
|  | 70 | +			[ | 
|  | 71 | +				this.createVertexTemplateEntry(mel + 'logic_gate;operation=and;', 100, 60, '', 'AND', null, null, this.getTagsForStencil(gnmel, 'and', dtmel).join(' ')), | 
|  | 72 | +				this.createVertexTemplateEntry(mel + 'buffer2;', 100, 60, '', 'Buffer', null, null, this.getTagsForStencil(gnmel, 'buffer', dtmel).join(' ')), | 
|  | 73 | +				this.createVertexTemplateEntry(mel + 'd_type_flip-flop;', 100, 80, '', 'D Type Flip-Flop', null, null, this.getTagsForStencil(gnmel, 'd_type_flip-flop', dtmel).join(' ')), | 
|  | 74 | +				this.createVertexTemplateEntry(mel + 'd_type_flip-flop_with_clear_2;', 100, 90, '', 'D Type Flip-Flop With Clear', null, null, this.getTagsForStencil(gnmel, 'd_type_flip-flop_with_clear', dtmel).join(' ')), | 
|  | 75 | +				this.createVertexTemplateEntry(mel + 'd_type_rs_flip-flop;', 100, 100, '', 'D Type RS Flip-Flop', null, null, this.getTagsForStencil(gnmel, 'd_type_rs_flip-flop', dtmel).join(' ')), | 
|  | 76 | +				this.createVertexTemplateEntry(mel + 'inverter_2', 100, 60, '', 'Inverter', null, null, this.getTagsForStencil(gnmel, 'inverter', dtmel).join(' ')), | 
|  | 77 | +				this.createVertexTemplateEntry(mel + 'inverting_contact;', 10, 10, '', 'Inverting Contact', null, null, this.getTagsForStencil(gnmel, 'inverting_contact', dtmel).join(' ')), | 
|  | 78 | +				this.createVertexTemplateEntry(mel + 'jk_flip-flop;', 100, 80, '', 'JK Flip-Flop', null, null, this.getTagsForStencil(gnmel, 'jk_flip-flop', dtmel).join(' ')), | 
|  | 79 | +				this.createVertexTemplateEntry(mel + 'jk_flip-flop_with_clear_2;', 100, 90, '', 'JK Flip-Flop With Clear', null, null, this.getTagsForStencil(gnmel, 'jk_flip-flop_with_clear', dtmel).join(' ')), | 
|  | 80 | +				this.createVertexTemplateEntry(mel + 'jk_flip-flop_with_sr;', 100, 100, '', 'JK Flip-Flop With SR', null, null, this.getTagsForStencil(gnmel, 'jk_flip-flop_with_sr', dtmel).join(' ')), | 
|  | 81 | +				this.createVertexTemplateEntry(mel + 'logic_gate;operation=and;negating=1;negSize=0.15;', 100, 60, '', 'NAND', null, null, this.getTagsForStencil(gnmel, 'nand not and', dtmel).join(' ')), | 
|  | 82 | +				this.createVertexTemplateEntry(mel + 'logic_gate;operation=or;', 100, 60, '', 'OR', null, null, this.getTagsForStencil(gnmel, 'or', dtmel).join(' ')), | 
|  | 83 | +				this.createVertexTemplateEntry(mel + 'logic_gate;operation=or;negating=1;negSize=0.15;', 100, 60, '', 'NOR', null, null, this.getTagsForStencil(gnmel, 'nor', dtmel).join(' ')), | 
|  | 84 | +				this.createVertexTemplateEntry(mel + 'rs_latch;', 100, 80, '', 'RS Latch', null, null, this.getTagsForStencil(gnmel, 'rs_latch', dtmel).join(' ')), | 
|  | 85 | +				this.createVertexTemplateEntry(mel + 'synchronous_rs_latch;', 100, 80, '', 'RS Latch (Synchronous)', null, null, this.getTagsForStencil(gnmel, 'synchronous_rs_latch', dtmel).join(' ')), | 
|  | 86 | +				this.createVertexTemplateEntry(mel + 'schmitt_trigger;', 100, 60, '', 'Schmitt Trigger', null, null, this.getTagsForStencil(gnmel, 'schmitt_trigger', dtmel).join(' ')), | 
|  | 87 | +				this.createVertexTemplateEntry(mel + 't_type_flip-flop;', 100, 80, '', 'T Type Flip-Flop', null, null, this.getTagsForStencil(gnmel, 't_type_flip-flop', dtmel).join(' ')), | 
|  | 88 | +				this.createVertexTemplateEntry(mel + 'logic_gate;operation=xor;', 100, 60, '', 'XOR', null, null, this.getTagsForStencil(gnmel, 'xor', dtmel).join(' ')), | 
|  | 89 | +				this.createVertexTemplateEntry(mel + 'logic_gate;operation=xor;negating=1;negSize=0.15;', 100, 60, '', 'XNOR', null, null, this.getTagsForStencil(gnmel, 'xnor', dtmel).join(' ')), | 
|  | 90 | +				this.createVertexTemplateEntry(meiecl + 'and;', 60, 80, '', 'AND (IEC)', null, null, this.getTagsForStencil(gnmeiecl, 'and', dtmeiecl).join(' ')), | 
|  | 91 | +				this.createVertexTemplateEntry(meiecl + 'nand_2;', 66, 80, '', 'NAND (IEC)', null, null, this.getTagsForStencil(gnmeiecl, 'nand', dtmeiecl).join(' ')), | 
|  | 92 | +				this.createVertexTemplateEntry(meiecl + 'or;', 60, 80, '', 'OR (IEC)', null, null, this.getTagsForStencil(gnmeiecl, 'or', dtmeiecl).join(' ')), | 
|  | 93 | +				this.createVertexTemplateEntry(meiecl + 'nor_2;', 66, 80, '', 'NOR (IEC)', null, null, this.getTagsForStencil(gnmeiecl, 'nor', dtmeiecl).join(' ')), | 
|  | 94 | +				this.createVertexTemplateEntry(meiecl + 'not_2;', 66, 80, '', 'NOT (IEC)', null, null, this.getTagsForStencil(gnmeiecl, 'xor', dtmeiecl).join(' ')), | 
|  | 95 | +				this.createVertexTemplateEntry(meiecl + 'xor;', 60, 80, '', 'XOR (IEC)', null, null, this.getTagsForStencil(gnmeiecl, 'xor', dtmeiecl).join(' ')), | 
|  | 96 | +				this.createVertexTemplateEntry( | 
|  | 97 | +					'shadow=0;dashed=0;align=center;html=1;strokeWidth=1;shape=mxgraph.electrical.logic_gates.dual_inline_ic;labelNames=a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;whiteSpace=wrap;', | 
| 98 | 98 | 100, 200, 'IC', 'Dual In-Line IC', null, null, this.getTagsForStencil(gnmel, 'dual inline in line ic integrated circuit', dtmel).join(' ')), | 
| 99 |  | -			this.createVertexTemplateEntry( | 
| 100 |  | -					'shadow=0;dashed=0;align=center;html=1;strokeWidth=1;shape=mxgraph.electrical.logic_gates.qfp_ic;whiteSpace=wrap;' + | 
| 101 |  | -					'labelNames=a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1,m1,n1;', | 
|  | 99 | +				this.createVertexTemplateEntry( | 
|  | 100 | +					'shadow=0;dashed=0;align=center;html=1;strokeWidth=1;shape=mxgraph.electrical.logic_gates.qfp_ic;whiteSpace=wrap;' + | 
|  | 101 | +					'labelNames=a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1,m1,n1;', | 
| 102 | 102 | 200, 200, 'IC', 'Quad Flat Package IC', null, null, this.getTagsForStencil(gnmel, 'quad flat package qfp ic integrated circuit', dtmel).join(' ')) | 
| 103 |  | -		]); | 
|  | 103 | +			]); | 
| 104 | 104 |  | 
| 105 | 105 | this.setCurrentSearchEntryLibrary('electrical', 'electrical\Resistors'); | 
| 106 | 106 |  | 
| 107 |  | -		this.addPaletteFunctions('electrical\Resistors', 'Electrical / Resistors', false, | 
| 108 |  | -		[ | 
| 109 |  | -			this.createVertexTemplateEntry(mere + 'resistor_1;', | 
|  | 107 | +		// TODO ThingsKit i18n国际化 | 
|  | 108 | +		// this.addPaletteFunctions('electrical\Resistors', 'Electrical / Resistors', false, | 
|  | 109 | +		this.addPaletteFunctions('electrical\Resistors', mxResources.get('Electrical / Resistors'), false, | 
|  | 110 | +			[ | 
|  | 111 | +				this.createVertexTemplateEntry(mere + 'resistor_1;', | 
| 110 | 112 | 100, 20, '', 'Resistor', null, null, this.getTagsForStencil(gnmere, 'resistor_1', dtmere).join(' ')), | 
| 111 |  | -			this.createVertexTemplateEntry(mere + 'resistor_2;', | 
|  | 113 | +				this.createVertexTemplateEntry(mere + 'resistor_2;', | 
| 112 | 114 | 100, 20, '', 'Resistor', null, null, this.getTagsForStencil(gnmere, 'resistor_2', dtmere).join(' ')), | 
| 113 |  | -			this.createVertexTemplateEntry(mere + 'potentiometer_1;', | 
|  | 115 | +				this.createVertexTemplateEntry(mere + 'potentiometer_1;', | 
| 114 | 116 | 100, 40, '', 'Potentiometer', null, null, this.getTagsForStencil(gnmere, 'potentiometer_1', dtmere).join(' ')), | 
| 115 |  | -			this.createVertexTemplateEntry(mere + 'potentiometer_2;', | 
|  | 117 | +				this.createVertexTemplateEntry(mere + 'potentiometer_2;', | 
| 116 | 118 | 100, 40, '', 'Potentiometer', null, null, this.getTagsForStencil(gnmere, 'potentiometer_2', dtmere).join(' ')), | 
| 117 |  | -			this.createVertexTemplateEntry(mere + 'trimmer_pot_1;', | 
|  | 119 | +				this.createVertexTemplateEntry(mere + 'trimmer_pot_1;', | 
| 118 | 120 | 100, 40, '', 'Potentiometer (Trimmer)', null, null, this.getTagsForStencil(gnmere, 'trimmer_pot_1', dtmere).join(' ')), | 
| 119 |  | -			this.createVertexTemplateEntry(mere + 'trimmer_pot_2;', | 
|  | 121 | +				this.createVertexTemplateEntry(mere + 'trimmer_pot_2;', | 
| 120 | 122 | 100, 40, '', 'Potentiometer (Trimmer)', null, null, this.getTagsForStencil(gnmere, 'trimmer_pot_2', dtmere).join(' ')), | 
| 121 |  | -			this.createVertexTemplateEntry(mere + 'trimmer_resistor_1;', | 
|  | 123 | +				this.createVertexTemplateEntry(mere + 'trimmer_resistor_1;', | 
| 122 | 124 | 100, 65.5, '', 'Resistor (Trimmer)', null, null, this.getTagsForStencil(gnmere, 'trimmer_resistor_1', dtmere).join(' ')), | 
| 123 |  | -			this.createVertexTemplateEntry(mere + 'trimmer_resistor_2;', | 
|  | 125 | +				this.createVertexTemplateEntry(mere + 'trimmer_resistor_2;', | 
| 124 | 126 | 100, 65.5, '', 'Resistor (Trimmer)', null, null, this.getTagsForStencil(gnmere, 'trimmer_resistor_2', dtmere).join(' ')), | 
| 125 |  | -			this.createVertexTemplateEntry(mere + 'variable_resistor_1;', | 
|  | 127 | +				this.createVertexTemplateEntry(mere + 'variable_resistor_1;', | 
| 126 | 128 | 100, 60, '', 'Resistor (Variable)', null, null, this.getTagsForStencil(gnmere, 'variable_resistor_1', dtmere).join(' ')), | 
| 127 |  | -			this.createVertexTemplateEntry(mere + 'variable_resistor_2;', | 
|  | 129 | +				this.createVertexTemplateEntry(mere + 'variable_resistor_2;', | 
| 128 | 130 | 100, 60, '', 'Resistor (Variable)', null, null, this.getTagsForStencil(gnmere, 'variable_resistor_2', dtmere).join(' ')), | 
| 129 |  | -			this.createVertexTemplateEntry(mere + 'resistor_with_instrument_or_relay_shunt;', | 
|  | 131 | +				this.createVertexTemplateEntry(mere + 'resistor_with_instrument_or_relay_shunt;', | 
| 130 | 132 | 100, 20, '', 'Resistor (Instrument/Relay Shunt)', null, null, this.getTagsForStencil(gnmere, 'resistor_with_instrument_or_relay_shunt', dtmere).join(' ')), | 
| 131 |  | -			this.createVertexTemplateEntry(mere + 'attenuator;', | 
|  | 133 | +				this.createVertexTemplateEntry(mere + 'attenuator;', | 
| 132 | 134 | 100, 60, '', 'Attenuator', null, null, this.getTagsForStencil(gnmere, 'attenuator', dtmere).join(' ')), | 
| 133 |  | -			this.createVertexTemplateEntry(mere + 'resistor,_adjustable_contact;', | 
|  | 135 | +				this.createVertexTemplateEntry(mere + 'resistor,_adjustable_contact;', | 
| 134 | 136 | 100, 40, '', 'Resistor (Adjustable Contact)', null, null, this.getTagsForStencil(gnmere, 'resistor,_adjustable_contact', dtmere).join(' ')), | 
| 135 |  | -			this.createVertexTemplateEntry(mere + 'resistor,_shunt;', | 
|  | 137 | +				this.createVertexTemplateEntry(mere + 'resistor,_shunt;', | 
| 136 | 138 | 100, 45, '', 'Resistor (Shunt)', null, null, this.getTagsForStencil(gnmere, 'resistor,_shunt', dtmere).join(' ')), | 
| 137 |  | -			this.createVertexTemplateEntry(mere + 'symmetrical_varistor;', | 
|  | 139 | +				this.createVertexTemplateEntry(mere + 'symmetrical_varistor;', | 
| 138 | 140 | 100, 60, '', 'Varistor (Symmetrical)', null, null, this.getTagsForStencil(gnmere, 'symmetrical_varistor', dtmere).join(' ')), | 
| 139 |  | -			this.createVertexTemplateEntry(mere + 'tapped_resistor;', | 
|  | 141 | +				this.createVertexTemplateEntry(mere + 'tapped_resistor;', | 
| 140 | 142 | 100, 40, '', 'Resistor (Tapped)', null, null, this.getTagsForStencil(gnmere, 'tapped_resistor', dtmere).join(' ')), | 
| 141 |  | -			this.createVertexTemplateEntry(mere + 'nonlinear_resistor;', | 
|  | 143 | +				this.createVertexTemplateEntry(mere + 'nonlinear_resistor;', | 
| 142 | 144 | 100, 60, '', 'Resistor (Nonlinear)', null, null, this.getTagsForStencil(gnmere, 'nonlinear_resistor', dtmere).join(' ')), | 
| 143 |  | -			this.createVertexTemplateEntry(mere + 'memristor_1;', | 
|  | 145 | +				this.createVertexTemplateEntry(mere + 'memristor_1;', | 
| 144 | 146 | 100, 20, '', 'Memristor', null, null, this.getTagsForStencil(gnmere, 'memristor_1', dtmere).join(' ')), | 
| 145 |  | -			this.createVertexTemplateEntry(mere + 'memristor_2;', | 
|  | 147 | +				this.createVertexTemplateEntry(mere + 'memristor_2;', | 
| 146 | 148 | 100, 24, '', 'Memristor', null, null, this.getTagsForStencil(gnmere, 'memristor_2', dtmere).join(' ')), | 
| 147 |  | -			this.createVertexTemplateEntry(mere + 'magnetoresistor;', | 
|  | 149 | +				this.createVertexTemplateEntry(mere + 'magnetoresistor;', | 
| 148 | 150 | 100, 60, '', 'Magnetoresistor', null, null, this.getTagsForStencil(gnmere, 'magnetoresistor', dtmere).join(' ')), | 
| 149 |  | -			this.createVertexTemplateEntry(mere + 'symmetrical_photoconductive_transducer;', | 
|  | 151 | +				this.createVertexTemplateEntry(mere + 'symmetrical_photoconductive_transducer;', | 
| 150 | 152 | 100, 40, '', 'Photoconductive Transducer (Symmetrical)', null, null, this.getTagsForStencil(gnmere, 'symmetrical_photoconductive_transducer', dtmere).join(' ')) | 
| 151 |  | -		]); | 
| 152 |  | - | 
|  | 153 | +			]); | 
|  | 154 | + | 
| 153 | 155 | this.setCurrentSearchEntryLibrary('electrical', 'electrical\Capacitors'); | 
| 154 |  | - | 
| 155 |  | -		this.addPaletteFunctions('electrical\Capacitors', 'Electrical / Capacitors', false, | 
| 156 |  | -		[ | 
| 157 |  | -			this.createVertexTemplateEntry(mec + 'capacitor_1;', | 
|  | 156 | + | 
|  | 157 | +		// TODO ThingsKit i18n国际化 | 
|  | 158 | +		// this.addPaletteFunctions('electrical\Capacitors', 'Electrical / Capacitors', false, | 
|  | 159 | +		this.addPaletteFunctions('electrical\Capacitors', mxResources.get('Electrical / Capacitors'), false, | 
|  | 160 | +			[ | 
|  | 161 | +				this.createVertexTemplateEntry(mec + 'capacitor_1;', | 
| 158 | 162 | 100, 60, '', 'Capacitor (US)', null, null, this.getTagsForStencil(gnmec, 'capacitor_1', dtmec).join(' ')), | 
| 159 |  | -			this.createVertexTemplateEntry(mec + 'capacitor_2;', | 
|  | 163 | +				this.createVertexTemplateEntry(mec + 'capacitor_2;', | 
| 160 | 164 | 100, 60, '', 'Capacitor (US)', null, null, this.getTagsForStencil(gnmec, 'capacitor_2', dtmec).join(' ')), | 
| 161 |  | -			this.createVertexTemplateEntry(mec + 'capacitor_3;', | 
|  | 165 | +				this.createVertexTemplateEntry(mec + 'capacitor_3;', | 
| 162 | 166 | 100, 60, '', 'Electrolytic Capacitor (US)', null, null, this.getTagsForStencil(gnmec, 'capacitor_3', dtmec).join(' ')), | 
| 163 |  | -			this.createVertexTemplateEntry(mec + 'capacitor_4;', | 
|  | 167 | +				this.createVertexTemplateEntry(mec + 'capacitor_4;', | 
| 164 | 168 | 100, 60, '', 'Capacitor (UK)', null, null, this.getTagsForStencil(gnmec, 'capacitor_4', dtmec).join(' ')), | 
| 165 |  | -			this.createVertexTemplateEntry(mec + 'capacitor_5;', | 
|  | 169 | +				this.createVertexTemplateEntry(mec + 'capacitor_5;', | 
| 166 | 170 | 100, 60, '', 'Electrolytic Capacitor (US)', null, null, this.getTagsForStencil(gnmec, 'capacitor_5', dtmec).join(' ')), | 
| 167 |  | -			this.createVertexTemplateEntry(mec + 'capacitor_6;', | 
|  | 171 | +				this.createVertexTemplateEntry(mec + 'capacitor_6;', | 
| 168 | 172 | 100, 60, '', 'Capacitor', null, null, this.getTagsForStencil(gnmec, 'capacitor_6', dtmec).join(' ')), | 
| 169 |  | -			this.createVertexTemplateEntry(mec + 'differential_capacitor;', | 
|  | 173 | +				this.createVertexTemplateEntry(mec + 'differential_capacitor;', | 
| 170 | 174 | 100, 80, '', 'Differential Capacitor', null, null, this.getTagsForStencil(gnmec, 'differential_capacitor', dtmec).join(' ')), | 
| 171 |  | -			this.createVertexTemplateEntry(mec + 'trimmer_capacitor_1;', | 
|  | 175 | +				this.createVertexTemplateEntry(mec + 'trimmer_capacitor_1;', | 
| 172 | 176 | 100, 65.5, '', 'Tuning Variable Capacitor (US)', null, null, this.getTagsForStencil(gnmec, 'trimmer_capacitor_1', dtmec).join(' ')), | 
| 173 |  | -			this.createVertexTemplateEntry(mec + 'trimmer_capacitor_2;', | 
|  | 177 | +				this.createVertexTemplateEntry(mec + 'trimmer_capacitor_2;', | 
| 174 | 178 | 100, 65.5, '', 'Tuning Variable Capacitor (US)', null, null, this.getTagsForStencil(gnmec, 'trimmer_capacitor_2', dtmec).join(' ')), | 
| 175 |  | -			this.createVertexTemplateEntry(mec + 'variable_capacitor_1;', | 
|  | 179 | +				this.createVertexTemplateEntry(mec + 'variable_capacitor_1;', | 
| 176 | 180 | 100, 60, '', 'Trimmer Variable Capacitor (US)', null, null, this.getTagsForStencil(gnmec, 'variable_capacitor_1', dtmec).join(' ')), | 
| 177 |  | -			this.createVertexTemplateEntry(mec + 'variable_capacitor_2;', | 
|  | 181 | +				this.createVertexTemplateEntry(mec + 'variable_capacitor_2;', | 
| 178 | 182 | 100, 60, '', 'Trimmer Variable Capacitor (US)', null, null, this.getTagsForStencil(gnmec, 'variable_capacitor_2', dtmec).join(' ')), | 
| 179 |  | -			this.createVertexTemplateEntry(mec + 'feed_through_capacitor;', | 
|  | 183 | +				this.createVertexTemplateEntry(mec + 'feed_through_capacitor;', | 
| 180 | 184 | 100, 90, '', 'Feed Through Capacitor', null, null, this.getTagsForStencil(gnmec, 'feed_through_capacitor', dtmec).join(' ')), | 
| 181 |  | -			this.createVertexTemplateEntry(mec + 'ganged_capacitor;', | 
|  | 185 | +				this.createVertexTemplateEntry(mec + 'ganged_capacitor;', | 
| 182 | 186 | 100, 130, '', 'Ganged Capacitor', null, null, this.getTagsForStencil(gnmec, 'ganged_capacitor', dtmec).join(' ')), | 
| 183 |  | -			this.createVertexTemplateEntry(mec + 'multiple_capacitor;', | 
|  | 187 | +				this.createVertexTemplateEntry(mec + 'multiple_capacitor;', | 
| 184 | 188 | 100, 130, '', 'Multiple Capacitor', null, null, this.getTagsForStencil(gnmec, 'multiple_capacitor', dtmec).join(' ')), | 
| 185 |  | -			this.createVertexTemplateEntry(mec + 'multiple_electrolytic_capacitor_comm_neg;', | 
|  | 189 | +				this.createVertexTemplateEntry(mec + 'multiple_electrolytic_capacitor_comm_neg;', | 
| 186 | 190 | 100, 130, '', 'Multiple Electrolytic Capacitor (Common Negative)', null, null, this.getTagsForStencil(gnmec, 'multiple_electrolytic_capacitor_comm_neg', dtmec).join(' ')), | 
| 187 |  | -			this.createVertexTemplateEntry(mec + 'multiple_electrolytic_capacitor_comm_pos;', | 
|  | 191 | +				this.createVertexTemplateEntry(mec + 'multiple_electrolytic_capacitor_comm_pos;', | 
| 188 | 192 | 100, 130, '', 'Multiple Electrolytic Capacitor (Common Positive)', null, null, this.getTagsForStencil(gnmec, 'multiple_electrolytic_capacitor_comm_pos', dtmec).join(' ')) | 
| 189 |  | -		]); | 
|  | 193 | +			]); | 
| 190 | 194 |  | 
| 191 | 195 | this.setCurrentSearchEntryLibrary('electrical', 'electrical\Inductors'); | 
| 192 |  | - | 
| 193 |  | -		this.addPaletteFunctions('electrical\Inductors', 'Electrical / Inductors', false, | 
| 194 |  | -		[ | 
| 195 |  | -			this.createVertexTemplateEntry(mei + 'inductor_3;', | 
|  | 196 | +		// TODO ThingsKit i18n国际化 | 
|  | 197 | +		// this.addPaletteFunctions('electrical\Inductors', 'Electrical / Inductors', false, | 
|  | 198 | +		this.addPaletteFunctions('electrical\Inductors', mxResources.get('Electrical / Inductors'), false, | 
|  | 199 | +			[ | 
|  | 200 | +				this.createVertexTemplateEntry(mei + 'inductor_3;', | 
| 196 | 201 | 100, 8, '', 'Inductor (Air Core)', null, null, this.getTagsForStencil(gnmei, 'inductor_3', dtmei).join(' ')), | 
| 197 |  | -			this.createVertexTemplateEntry(mei + 'inductor_5;', | 
|  | 202 | +				this.createVertexTemplateEntry(mei + 'inductor_5;', | 
| 198 | 203 | 100, 14, '', 'Inductor (Air Core)', null, null, this.getTagsForStencil(gnmei, 'inductor_5', dtmei).join(' ')), | 
| 199 |  | -			this.createVertexTemplateEntry(mei + 'inductor_1;', | 
|  | 204 | +				this.createVertexTemplateEntry(mei + 'inductor_1;', | 
| 200 | 205 | 100, 15, '', 'Inductor (Air Core)', null, null, this.getTagsForStencil(gnmei, 'inductor_1', dtmei).join(' ')), | 
| 201 |  | -			this.createVertexTemplateEntry(mei + 'variable_inductor;', | 
|  | 206 | +				this.createVertexTemplateEntry(mei + 'variable_inductor;', | 
| 202 | 207 | 100, 60, '', 'Variable', null, null, this.getTagsForStencil(gnmei, 'variable_inductor', dtmei).join(' ')), | 
| 203 |  | -			this.createVertexTemplateEntry(mei + 'ferrite_core;', | 
|  | 208 | +				this.createVertexTemplateEntry(mei + 'ferrite_core;', | 
| 204 | 209 | 64, 4, '', 'Ferrite Core', null, null, this.getTagsForStencil(gnmei, 'ferrite_core', dtmei).join(' ')), | 
| 205 |  | -			this.createVertexTemplateEntry(mei + 'iron_core;', | 
|  | 210 | +				this.createVertexTemplateEntry(mei + 'iron_core;', | 
| 206 | 211 | 64, 4, '', 'Iron Core', null, null, this.getTagsForStencil(gnmei, 'iron_core', dtmei).join(' ')), | 
| 207 |  | -			this.createVertexTemplateEntry(mei + 'magnetic_core;direction=north;', | 
|  | 212 | +				this.createVertexTemplateEntry(mei + 'magnetic_core;direction=north;', | 
| 208 | 213 | 64, 3, '', 'Magnetic Core', null, null, this.getTagsForStencil(gnmei, 'magnetic core', dtmei).join(' ')), | 
| 209 |  | -			this.createVertexTemplateEntry(mei + 'transformer_1;', | 
|  | 214 | +				this.createVertexTemplateEntry(mei + 'transformer_1;', | 
| 210 | 215 | 64, 60, '', 'Transformer (Iron Core)', null, null, this.getTagsForStencil(gnmei, 'transformer_1', dtmei).join(' ')), | 
| 211 |  | -			this.createVertexTemplateEntry(mei + 'transformer_2;', | 
|  | 216 | +				this.createVertexTemplateEntry(mei + 'transformer_2;', | 
| 212 | 217 | 64, 60, '', 'Transformer (Iron Core)', null, null, this.getTagsForStencil(gnmei, 'transformer_2', dtmei).join(' ')), | 
| 213 |  | -			this.createVertexTemplateEntry(mei + 'half_inductor;', | 
|  | 218 | +				this.createVertexTemplateEntry(mei + 'half_inductor;', | 
| 214 | 219 | 32, 23, '', 'Half Inductor', null, null, this.getTagsForStencil(gnmei, 'half inductor', dtmei).join(' ')), | 
| 215 |  | -			this.createVertexTemplateEntry(mei + 'transformer;direction=north;', | 
|  | 220 | +				this.createVertexTemplateEntry(mei + 'transformer;direction=north;', | 
| 216 | 221 | 64, 64, '', 'Transformer', null, null, this.getTagsForStencil(gnmei, 'transformer', dtmei).join(' ')), | 
| 217 |  | -			this.createVertexTemplateEntry(mei + 'inductor;', | 
|  | 222 | +				this.createVertexTemplateEntry(mei + 'inductor;', | 
| 218 | 223 | 100, 42, '', 'Inductor', null, null, this.getTagsForStencil(gnmei, 'inductor', dtmei).join(' ')), | 
| 219 |  | -			this.createVertexTemplateEntry(mei + 'choke;', | 
|  | 224 | +				this.createVertexTemplateEntry(mei + 'choke;', | 
| 220 | 225 | 100, 200, '', 'Choke', null, null, this.getTagsForStencil(gnmei, 'choke', dtmei).join(' ')), | 
| 221 |  | -			this.createVertexTemplateEntry('verticalLabelPosition=top;shadow=0;dashed=0;align=center;fillColor=strokeColor;html=1;verticalAlign=bottom;strokeWidth=1;shape=mxgraph.electrical.inductors.variometer;', | 
|  | 226 | +				this.createVertexTemplateEntry('verticalLabelPosition=top;shadow=0;dashed=0;align=center;fillColor=strokeColor;html=1;verticalAlign=bottom;strokeWidth=1;shape=mxgraph.electrical.inductors.variometer;', | 
| 222 | 227 | 150, 88, '', 'Variometer', null, null, this.getTagsForStencil(gnmei, 'variometer', dtmei).join(' ')), | 
| 223 |  | -			this.createVertexTemplateEntry(mei + 'coaxial_choke;', | 
|  | 228 | +				this.createVertexTemplateEntry(mei + 'coaxial_choke;', | 
| 224 | 229 | 300, 50, '', 'Coaxial Choke', null, null, this.getTagsForStencil(gnmei, 'coaxial choke', dtmei).join(' ')), | 
| 225 |  | -			this.createVertexTemplateEntry(mei + 'transductor;', | 
|  | 230 | +				this.createVertexTemplateEntry(mei + 'transductor;', | 
| 226 | 231 | 200, 100, '', 'Transductor', null, null, this.getTagsForStencil(gnmei, 'transductor', dtmei).join(' ')), | 
| 227 |  | -			this.createVertexTemplateEntry(mei + 'saturating_transformer;', | 
|  | 232 | +				this.createVertexTemplateEntry(mei + 'saturating_transformer;', | 
| 228 | 233 | 200, 150, '', 'Saturating Transformer', null, null, this.getTagsForStencil(gnmei, 'saturating_transformer', dtmei).join(' ')), | 
| 229 |  | -			this.createVertexTemplateEntry(mei + 'potential_transformer_2;', | 
|  | 234 | +				this.createVertexTemplateEntry(mei + 'potential_transformer_2;', | 
| 230 | 235 | 92, 40, '', 'Potential Transformer', null, null, this.getTagsForStencil(gnmei, 'potential transformer', dtmei).join(' ')), | 
| 231 |  | -			this.createVertexTemplateEntry(mei + 'pot_trans_3_windings;', | 
|  | 236 | +				this.createVertexTemplateEntry(mei + 'pot_trans_3_windings;', | 
| 232 | 237 | 67, 96, '', 'Pot. Trans. 3 Windings', null, null, this.getTagsForStencil(gnmei, 'potential transformer 3 three windings', dtmei).join(' ')), | 
| 233 |  | -			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.signal_sources.current_source;', | 
|  | 238 | +				this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.signal_sources.current_source;', | 
| 234 | 239 | 40, 60, '', 'Transformer', null, null, this.getTagsForStencil(gnmei, '', dtmei).join(' ')), | 
| 235 |  | -			this.createVertexTemplateEntry(mei + 'adjustable_transformer;', | 
|  | 240 | +				this.createVertexTemplateEntry(mei + 'adjustable_transformer;', | 
| 236 | 241 | 46, 60, '', 'Adjustable Transformer', null, null, this.getTagsForStencil(gnmei, 'adjustable_transformer', dtmei).join(' ')), | 
| 237 |  | -			this.createVertexTemplateEntry(mei + '1_phase_induction_volt_reg;', | 
|  | 242 | +				this.createVertexTemplateEntry(mei + '1_phase_induction_volt_reg;', | 
| 238 | 243 | 100, 100, '', '1-Phase Induction Voltage Regulator', null, null, this.getTagsForStencil(gnmei, '1 phase induction voltage regulator monophase', dtmei).join(' ')), | 
| 239 |  | -			this.createVertexTemplateEntry(mei + 'triplex_induction_volt_reg;', | 
|  | 244 | +				this.createVertexTemplateEntry(mei + 'triplex_induction_volt_reg;', | 
| 240 | 245 | 100, 100, '', 'Triplex Induction Voltage Regulator', null, null, this.getTagsForStencil(gnmei, 'triplex induction voltage regulator', dtmei).join(' ')), | 
| 241 |  | -			this.createVertexTemplateEntry(mei + 'induction_voltage_regulator;', | 
|  | 246 | +				this.createVertexTemplateEntry(mei + 'induction_voltage_regulator;', | 
| 242 | 247 | 160, 210, '', 'Induction Voltage Regulator', null, null, this.getTagsForStencil(gnmei, 'induction voltage regulator', dtmei).join(' ')), | 
| 243 |  | -			this.createVertexTemplateEntry(mei + 'current_transformer_1;', | 
|  | 248 | +				this.createVertexTemplateEntry(mei + 'current_transformer_1;', | 
| 244 | 249 | 12, 75, '', 'Current Transformer', null, null, this.getTagsForStencil(gnmei, 'current transformer', dtmei).join(' ')), | 
| 245 |  | -			this.createVertexTemplateEntry(mei + 'current_transformer_2;', | 
|  | 250 | +				this.createVertexTemplateEntry(mei + 'current_transformer_2;', | 
| 246 | 251 | 125, 175, '', 'Current Transformer', null, null, this.getTagsForStencil(gnmei, 'current transformer', dtmei).join(' ')), | 
| 247 |  | -			this.createVertexTemplateEntry(mei + 'current_transformer_3;', | 
|  | 252 | +				this.createVertexTemplateEntry(mei + 'current_transformer_3;', | 
| 248 | 253 | 75, 10, '', 'Current Transformer', null, null, this.getTagsForStencil(gnmei, 'current transformer', dtmei).join(' ')), | 
| 249 |  | -			this.createVertexTemplateEntry(mei + 'potential_transformer;', | 
|  | 254 | +				this.createVertexTemplateEntry(mei + 'potential_transformer;', | 
| 250 | 255 | 100, 50, '', 'Potential Transformer', null, null, this.getTagsForStencil(gnmei, 'potential transformer', dtmei).join(' ')), | 
| 251 |  | -			this.createVertexTemplateEntry(mei + 'outdoor_metering_device;', | 
|  | 256 | +				this.createVertexTemplateEntry(mei + 'outdoor_metering_device;', | 
| 252 | 257 | 100, 100, '', 'Outdoor Metering Device', null, null, this.getTagsForStencil(gnmei, 'outdoor metering device', dtmei).join(' ')), | 
| 253 |  | -			this.createVertexTemplateEntry(mei + 'linear_coupler;', | 
|  | 258 | +				this.createVertexTemplateEntry(mei + 'linear_coupler;', | 
| 254 | 259 | 80, 20, '', 'Linear Coupler', null, null, this.getTagsForStencil(gnmei, 'linear coupler', dtmei).join(' ')) | 
| 255 |  | -		]); | 
|  | 260 | +			]); | 
| 256 | 261 |  | 
| 257 | 262 | this.setCurrentSearchEntryLibrary('electrical', 'electrical\SwitchesRelays'); | 
| 258 | 263 |  | 
| 259 |  | -		this.addPaletteFunctions('electrical\SwitchesRelays', 'Electrical / Switches and Relays', false, | 
| 260 |  | -		[ | 
| 261 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.twoWaySwitch;aspect=fixed;elSwitchState=2;', | 
|  | 264 | +		// TODO ThingsKit i18n国际化 | 
|  | 265 | +		// this.addPaletteFunctions('electrical\SwitchesRelays', 'Electrical / Switches and Relays', false, | 
|  | 266 | +		this.addPaletteFunctions('electrical\SwitchesRelays', mxResources.get('Electrical / Switches and Relays'), false, | 
|  | 267 | +			[ | 
|  | 268 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.twoWaySwitch;aspect=fixed;elSwitchState=2;', | 
| 262 | 269 | 75, 26, '', 'SPDT', null, null, this.getTagsForStencil(gnmeem, '2-way switch new', dtmeem).join(' ')), | 
| 263 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.pushbutton;aspect=fixed;elSwitchState=on;', | 
|  | 270 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.pushbutton;aspect=fixed;elSwitchState=on;', | 
| 264 | 271 | 75, 20, '', 'Pushbutton On', null, null, this.getTagsForStencil(gnmeem, 'pushbutton push button', dtmeem).join(' ')), | 
| 265 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.pushbutton;aspect=fixed;elSwitchState=off;', | 
|  | 272 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.pushbutton;aspect=fixed;elSwitchState=off;', | 
| 266 | 273 | 75, 20, '', 'Pushbutton Off', null, null, this.getTagsForStencil(gnmeem, 'pushbutton push button', dtmeem).join(' ')), | 
| 267 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.singleSwitch;aspect=fixed;elSwitchState=on;', | 
|  | 274 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.singleSwitch;aspect=fixed;elSwitchState=on;', | 
| 268 | 275 | 75, 20, '', 'Single Switch On', null, null, this.getTagsForStencil(gnmeem, 'single switch', dtmeem).join(' ')), | 
| 269 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.singleSwitch;aspect=fixed;elSwitchState=off;', | 
|  | 276 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.singleSwitch;aspect=fixed;elSwitchState=off;', | 
| 270 | 277 | 75, 20, '', 'Single Switch Off', null, null, this.getTagsForStencil(gnmeem, 'single switch', dtmeem).join(' ')), | 
| 271 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.switchDisconnector;aspect=fixed;elSwitchState=on;', | 
|  | 278 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.switchDisconnector;aspect=fixed;elSwitchState=on;', | 
| 272 | 279 | 75, 20, '', 'Switch Disconnector On', null, null, this.getTagsForStencil(gnmeem, 'switch disconnector', dtmeem).join(' ')), | 
| 273 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.switchDisconnector;aspect=fixed;elSwitchState=off;', | 
|  | 280 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.switchDisconnector;aspect=fixed;elSwitchState=off;', | 
| 274 | 281 | 75, 20, '', 'Switch Disconnector Off', null, null, this.getTagsForStencil(gnmeem, 'switch disconnector', dtmeem).join(' ')), | 
| 275 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.fuse2;aspect=fixed;elSwitchState=off;', | 
|  | 282 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.fuse2;aspect=fixed;elSwitchState=off;', | 
| 276 | 283 | 75, 20, '', 'Fuse Off', null, null, this.getTagsForStencil(gnmeem, 'fuse', dtmeem).join(' ')), | 
| 277 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.fuse2;aspect=fixed;elSwitchState=on;', | 
|  | 284 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.fuse2;aspect=fixed;elSwitchState=on;', | 
| 278 | 285 | 75, 20, '', 'Fuse On', null, null, this.getTagsForStencil(gnmeem, 'fuse', dtmeem).join(' ')), | 
| 279 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.liquidLevelActuatedSwitch;aspect=fixed;elSwitchState=on;', | 
|  | 286 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.liquidLevelActuatedSwitch;aspect=fixed;elSwitchState=on;', | 
| 280 | 287 | 75, 30, '', 'Liquid Level Actuated On', null, null, this.getTagsForStencil(gnmeem, 'liquid level actuated switch', dtmeem).join(' ')), | 
| 281 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.liquidLevelActuatedSwitch;aspect=fixed;elSwitchState=off;', | 
|  | 288 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.liquidLevelActuatedSwitch;aspect=fixed;elSwitchState=off;', | 
| 282 | 289 | 75, 30, '', 'Liquid Level Actuated Off', null, null, this.getTagsForStencil(gnmeem, 'liquid level actuated switch', dtmeem).join(' ')), | 
| 283 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.liquidLevelActuatedSwitch2;aspect=fixed;elSwitchState=on;', | 
|  | 290 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.liquidLevelActuatedSwitch2;aspect=fixed;elSwitchState=on;', | 
| 284 | 291 | 75, 32, '', 'Liquid Level Actuated On', null, null, this.getTagsForStencil(gnmeem, 'liquid level actuated switch', dtmeem).join(' ')), | 
| 285 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.liquidLevelActuatedSwitch2;aspect=fixed;elSwitchState=off;', | 
|  | 292 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.liquidLevelActuatedSwitch2;aspect=fixed;elSwitchState=off;', | 
| 286 | 293 | 75, 32, '', 'Liquid Level Actuated Off', null, null, this.getTagsForStencil(gnmeem, 'liquid level actuated switch', dtmeem).join(' ')), | 
| 287 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.gasFlowActuatedSwitch;aspect=fixed;elSwitchState=on;', | 
|  | 294 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.gasFlowActuatedSwitch;aspect=fixed;elSwitchState=on;', | 
| 288 | 295 | 75, 32, '', 'Gas Flow Actuated On', null, null, this.getTagsForStencil(gnmeem, 'gas flow actuated switch', dtmeem).join(' ')), | 
| 289 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.gasFlowActuatedSwitch;aspect=fixed;elSwitchState=off;', | 
|  | 296 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.gasFlowActuatedSwitch;aspect=fixed;elSwitchState=off;', | 
| 290 | 297 | 75, 32, '', 'Gas Flow Actuated Off', null, null, this.getTagsForStencil(gnmeem, 'gas flow actuated switch', dtmeem).join(' ')), | 
| 291 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.flowActuatedSwitch;aspect=fixed;elSwitchState=on;', | 
|  | 298 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.flowActuatedSwitch;aspect=fixed;elSwitchState=on;', | 
| 292 | 299 | 75, 31, '', 'Flow Actuated On', null, null, this.getTagsForStencil(gnmeem, 'flow actuated switch', dtmeem).join(' ')), | 
| 293 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.flowActuatedSwitch;aspect=fixed;elSwitchState=off;', | 
|  | 300 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.flowActuatedSwitch;aspect=fixed;elSwitchState=off;', | 
| 294 | 301 | 75, 31, '', 'Flow Actuated Off', null, null, this.getTagsForStencil(gnmeem, 'flow actuated switch', dtmeem).join(' ')), | 
| 295 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.pressureActuatedSwitch;aspect=fixed;elSwitchState=on;', | 
|  | 302 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.pressureActuatedSwitch;aspect=fixed;elSwitchState=on;', | 
| 296 | 303 | 75, 31, '', 'Pressure Actuated On', null, null, this.getTagsForStencil(gnmeem, 'pressure actuated switch', dtmeem).join(' ')), | 
| 297 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.pressureActuatedSwitch;aspect=fixed;elSwitchState=off;', | 
|  | 304 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.pressureActuatedSwitch;aspect=fixed;elSwitchState=off;', | 
| 298 | 305 | 75, 31, '', 'Pressure Actuated Off', null, null, this.getTagsForStencil(gnmeem, 'pressure actuated switch', dtmeem).join(' ')), | 
| 299 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.temperatureActuatedSwitch;aspect=fixed;elSwitchState=on;', | 
|  | 306 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.temperatureActuatedSwitch;aspect=fixed;elSwitchState=on;', | 
| 300 | 307 | 75, 31, '', 'Temperature Actuated On', null, null, this.getTagsForStencil(gnmeem, 'temperature actuated switch', dtmeem).join(' ')), | 
| 301 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.temperatureActuatedSwitch;aspect=fixed;elSwitchState=off;', | 
|  | 308 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.temperatureActuatedSwitch;aspect=fixed;elSwitchState=off;', | 
| 302 | 309 | 75, 31, '', 'Temperature Actuated Off', null, null, this.getTagsForStencil(gnmeem, 'temperature actuated switch', dtmeem).join(' ')), | 
| 303 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.safetyInterlockSwitch;aspect=fixed;elSwitchState=on;', | 
|  | 310 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.safetyInterlockSwitch;aspect=fixed;elSwitchState=on;', | 
| 304 | 311 | 75, 45, '', 'Safety Interlock On', null, null, this.getTagsForStencil(gnmeem, 'safety interlock', dtmeem).join(' ')), | 
| 305 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.safetyInterlockSwitch;aspect=fixed;elSwitchState=off;', | 
|  | 312 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.safetyInterlockSwitch;aspect=fixed;elSwitchState=off;', | 
| 306 | 313 | 75, 45, '', 'Safety Interlock Off', null, null, this.getTagsForStencil(gnmeem, 'safety interlock', dtmeem).join(' ')), | 
| 307 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.temperatureSwitch;aspect=fixed;elSwitchState=on;', | 
|  | 314 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.temperatureSwitch;aspect=fixed;elSwitchState=on;', | 
| 308 | 315 | 75, 18, '', 'Temperature Switch On', null, null, this.getTagsForStencil(gnmeem, 'temperature switch', dtmeem).join(' ')), | 
| 309 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.temperatureSwitch;aspect=fixed;elSwitchState=off;', | 
|  | 316 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.temperatureSwitch;aspect=fixed;elSwitchState=off;', | 
| 310 | 317 | 75, 18, '', 'Temperature Switch Off', null, null, this.getTagsForStencil(gnmeem, 'temperature switch', dtmeem).join(' ')), | 
| 311 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.thermostat2;aspect=fixed;elSwitchState=on;', | 
|  | 318 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.thermostat2;aspect=fixed;elSwitchState=on;', | 
| 312 | 319 | 75, 21, '', 'Thermostat On', null, null, this.getTagsForStencil(gnmeem, 'thermostat', dtmeem).join(' ')), | 
| 313 |  | -			this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.thermostat2;aspect=fixed;elSwitchState=off;', | 
|  | 320 | +				this.createVertexTemplateEntry('html=1;shape=mxgraph.electrical.electro-mechanical.thermostat2;aspect=fixed;elSwitchState=off;', | 
| 314 | 321 | 75, 21, '', 'Thermostat Off', null, null, this.getTagsForStencil(gnmeem, 'thermostat', dtmeem).join(' ')), | 
| 315 |  | -			this.createVertexTemplateEntry(meem + 'limitSwitch2;elSwitchState=on;', | 
|  | 322 | +				this.createVertexTemplateEntry(meem + 'limitSwitch2;elSwitchState=on;', | 
| 316 | 323 | 75, 19, '', 'Limit Switch On', null, null, this.getTagsForStencil(gnmeem, 'limit switch', dtmeem).join(' ')), | 
| 317 |  | -			this.createVertexTemplateEntry(meem + 'limitSwitch2;elSwitchState=off;', | 
|  | 324 | +				this.createVertexTemplateEntry(meem + 'limitSwitch2;elSwitchState=off;', | 
| 318 | 325 | 75, 19, '', 'Limit Switch Off', null, null, this.getTagsForStencil(gnmeem, 'limit switch', dtmeem).join(' ')), | 
| 319 |  | -			this.createVertexTemplateEntry(meem + 'circuitBreaker2;elSwitchState=on;', | 
|  | 326 | +				this.createVertexTemplateEntry(meem + 'circuitBreaker2;elSwitchState=on;', | 
| 320 | 327 | 75, 20, '', 'Circuit Breaker On', null, null, this.getTagsForStencil(gnmeem, 'circuit breaker', dtmeem).join(' ')), | 
| 321 |  | -			this.createVertexTemplateEntry(meem + 'circuitBreaker2;elSwitchState=off;', | 
|  | 328 | +				this.createVertexTemplateEntry(meem + 'circuitBreaker2;elSwitchState=off;', | 
| 322 | 329 | 75, 20, '', 'Circuit Breaker Off', null, null, this.getTagsForStencil(gnmeem, 'circuit breaker', dtmeem).join(' ')), | 
| 323 |  | -			this.createVertexTemplateEntry(meem + 'selectorSwitch3Position2;elSwitchState=1;', | 
|  | 330 | +				this.createVertexTemplateEntry(meem + 'selectorSwitch3Position2;elSwitchState=1;', | 
| 324 | 331 | 75, 46, '', 'Selector Switch (3 positions)', null, null, this.getTagsForStencil(gnmeem, 'selector switch three position', dtmeem).join(' ')), | 
| 325 |  | -			this.createVertexTemplateEntry(meem + 'selectorSwitch4Position2;elSwitchState=1;', | 
|  | 332 | +				this.createVertexTemplateEntry(meem + 'selectorSwitch4Position2;elSwitchState=1;', | 
| 326 | 333 | 75, 66, '', 'Selector Switch (4 positions)', null, null, this.getTagsForStencil(gnmeem, 'selector switch four position', dtmeem).join(' ')), | 
| 327 |  | -			this.createVertexTemplateEntry(meem + 'selectorSwitch6Position2;elSwitchState=1;', | 
|  | 334 | +				this.createVertexTemplateEntry(meem + 'selectorSwitch6Position2;elSwitchState=1;', | 
| 328 | 335 | 75, 106, '', 'Selector Switch (6 positions)', null, null, this.getTagsForStencil(gnmeem, 'selector_switch', dtmeem).join(' ')), | 
| 329 |  | -			this.createVertexTemplateEntry(meem + 'shortingSelectorSwitch2;elSwitchState=1;', | 
|  | 336 | +				this.createVertexTemplateEntry(meem + 'shortingSelectorSwitch2;elSwitchState=1;', | 
| 330 | 337 | 60, 66, '', 'Shorting Selector', null, null, this.getTagsForStencil(gnmeem, 'shorting selector', dtmeem).join(' ')), | 
| 331 |  | -			this.createVertexTemplateEntry(meem + 'proximityLimitSwitch2;elSwitchState=on;', | 
|  | 338 | +				this.createVertexTemplateEntry(meem + 'proximityLimitSwitch2;elSwitchState=on;', | 
| 332 | 339 | 75, 55, '', 'Proximity Limit Switch On', null, null, this.getTagsForStencil(gnmeem, 'proximity limit switch', dtmeem).join(' ')), | 
| 333 |  | -			this.createVertexTemplateEntry(meem + 'proximityLimitSwitch2;elSwitchState=off;', | 
|  | 340 | +				this.createVertexTemplateEntry(meem + 'proximityLimitSwitch2;elSwitchState=off;', | 
| 334 | 341 | 75, 55, '', 'Proximity Limit Switch Off', null, null, this.getTagsForStencil(gnmeem, 'proximity limit switch', dtmeem).join(' ')), | 
| 335 |  | -			this.createVertexTemplateEntry(meem + 'inertiaSwitch2;elSwitchState=on;', | 
|  | 342 | +				this.createVertexTemplateEntry(meem + 'inertiaSwitch2;elSwitchState=on;', | 
| 336 | 343 | 75, 19, '', 'Inertia Switch On', null, null, this.getTagsForStencil(gnmeem, 'inertia switch', dtmeem).join(' ')), | 
| 337 |  | -			this.createVertexTemplateEntry(meem + 'inertiaSwitch2;elSwitchState=off;', | 
|  | 344 | +				this.createVertexTemplateEntry(meem + 'inertiaSwitch2;elSwitchState=off;', | 
| 338 | 345 | 75, 19, '', 'Inertia Switch Off', null, null, this.getTagsForStencil(gnmeem, 'inertia switch', dtmeem).join(' ')), | 
| 339 |  | -			this.createVertexTemplateEntry(meem + 'pushbuttonBreak2;elSwitchState=on;', | 
|  | 346 | +				this.createVertexTemplateEntry(meem + 'pushbuttonBreak2;elSwitchState=on;', | 
| 340 | 347 | 75, 40, '', 'Pushbutton Break On', null, null, this.getTagsForStencil(gnmeem, 'pushbutton break', dtmeem).join(' ')), | 
| 341 |  | -			this.createVertexTemplateEntry(meem + 'pushbuttonBreak2;elSwitchState=off;', | 
|  | 348 | +				this.createVertexTemplateEntry(meem + 'pushbuttonBreak2;elSwitchState=off;', | 
| 342 | 349 | 75, 40, '', 'Pushbutton Break Off', null, null, this.getTagsForStencil(gnmeem, 'pushbutton break', dtmeem).join(' ')), | 
| 343 |  | -			this.createVertexTemplateEntry(meem + 'manualSwitch2;elSwitchState=on;', | 
|  | 350 | +				this.createVertexTemplateEntry(meem + 'manualSwitch2;elSwitchState=on;', | 
| 344 | 351 | 75, 18, '', 'Manual Switch On', null, null, this.getTagsForStencil(gnmeem, 'manual switch', dtmeem).join(' ')), | 
| 345 |  | -			this.createVertexTemplateEntry(meem + 'manualSwitch2;elSwitchState=off;', | 
|  | 352 | +				this.createVertexTemplateEntry(meem + 'manualSwitch2;elSwitchState=off;', | 
| 346 | 353 | 75, 18, '', 'Manual Switch Off', null, null, this.getTagsForStencil(gnmeem, 'manual switch', dtmeem).join(' ')), | 
| 347 |  | -			this.createVertexTemplateEntry(meem + 'make_contact;', | 
|  | 354 | +				this.createVertexTemplateEntry(meem + 'make_contact;', | 
| 348 | 355 | 75, 16, '', 'Make Contact', null, null, this.getTagsForStencil(gnmeem, 'make contact', dtmeem).join(' ')), | 
| 349 |  | -			this.createVertexTemplateEntry(meem + 'break_contact;', | 
|  | 356 | +				this.createVertexTemplateEntry(meem + 'break_contact;', | 
| 350 | 357 | 75, 10, '', 'Break Contact', null, null, this.getTagsForStencil(gnmeem, 'break contact', dtmeem).join(' ')), | 
| 351 |  | -			this.createVertexTemplateEntry(meem + 'twoWayContact2;elSwitchState=neutral;', | 
|  | 358 | +				this.createVertexTemplateEntry(meem + 'twoWayContact2;elSwitchState=neutral;', | 
| 352 | 359 | 75, 30, '', 'Two Way Contact', null, null, this.getTagsForStencil(gnmeem, 'two way contact', dtmeem).join(' ')), | 
| 353 |  | -			this.createVertexTemplateEntry(meem + 'twoWayContact2;elSwitchState=1;', | 
|  | 360 | +				this.createVertexTemplateEntry(meem + 'twoWayContact2;elSwitchState=1;', | 
| 354 | 361 | 75, 30, '', 'Two Way Contact Neutral', null, null, this.getTagsForStencil(gnmeem, 'two way contact', dtmeem).join(' ')), | 
| 355 |  | -			this.createVertexTemplateEntry(meem + 'twoWayContact2;elSwitchState=2;', | 
|  | 362 | +				this.createVertexTemplateEntry(meem + 'twoWayContact2;elSwitchState=2;', | 
| 356 | 363 | 75, 30, '', 'Two Way Contact', null, null, this.getTagsForStencil(gnmeem, 'two way contact', dtmeem).join(' ')), | 
| 357 |  | -			this.createVertexTemplateEntry(meem + 'passingMakeContact2;elSwitchState=on;', | 
|  | 364 | +				this.createVertexTemplateEntry(meem + 'passingMakeContact2;elSwitchState=on;', | 
| 358 | 365 | 75, 23, '', 'Passing Make-Contact On', null, null, this.getTagsForStencil(gnmeem, 'passing make contact', dtmeem).join(' ')), | 
| 359 |  | -			this.createVertexTemplateEntry(meem + 'passingMakeContact2;elSwitchState=off;', | 
|  | 366 | +				this.createVertexTemplateEntry(meem + 'passingMakeContact2;elSwitchState=off;', | 
| 360 | 367 | 75, 23, '', 'Passing Make-Contact Off', null, null, this.getTagsForStencil(gnmeem, 'passing make contact', dtmeem).join(' ')), | 
| 361 |  | -			this.createVertexTemplateEntry(meem + 'stay_put;', | 
|  | 368 | +				this.createVertexTemplateEntry(meem + 'stay_put;', | 
| 362 | 369 | 75, 7, '', 'Stay Put', null, null, this.getTagsForStencil(gnmeem, 'stay put', dtmeem).join(' ')), | 
| 363 |  | -			this.createVertexTemplateEntry(meem + 'dpst2;elSwitchState=on;', | 
|  | 370 | +				this.createVertexTemplateEntry(meem + 'dpst2;elSwitchState=on;', | 
| 364 | 371 | 75, 39, '', 'DPST On', null, null, this.getTagsForStencil(gnmeem, 'dpst', dtmeem).join(' ')), | 
| 365 |  | -			this.createVertexTemplateEntry(meem + 'dpst2;elSwitchState=off;', | 
|  | 372 | +				this.createVertexTemplateEntry(meem + 'dpst2;elSwitchState=off;', | 
| 366 | 373 | 75, 39, '', 'DPST Off', null, null, this.getTagsForStencil(gnmeem, 'dpst', dtmeem).join(' ')), | 
| 367 |  | -			this.createVertexTemplateEntry(meem + 'springReturn3;elSwitchState=on;', | 
|  | 374 | +				this.createVertexTemplateEntry(meem + 'springReturn3;elSwitchState=on;', | 
| 368 | 375 | 75, 26, '', 'Spring Return On', null, null, this.getTagsForStencil(gnmeem, 'spring return', dtmeem).join(' ')), | 
| 369 |  | -			this.createVertexTemplateEntry(meem + 'springReturn3;elSwitchState=off;', | 
|  | 376 | +				this.createVertexTemplateEntry(meem + 'springReturn3;elSwitchState=off;', | 
| 370 | 377 | 75, 26, '', 'Spring Return Off', null, null, this.getTagsForStencil(gnmeem, 'spring return', dtmeem).join(' ')), | 
| 371 |  | -			this.createVertexTemplateEntry(meem + 'limitSwitch;elSwitchState=on;', | 
|  | 378 | +				this.createVertexTemplateEntry(meem + 'limitSwitch;elSwitchState=on;', | 
| 372 | 379 | 75, 25, '', 'Limit Switch NC', null, null, this.getTagsForStencil(gnmeem, 'limit switch', dtmeem).join(' ')), | 
| 373 |  | -			this.createVertexTemplateEntry(meem + 'limitSwitch;elSwitchState=off;', | 
|  | 380 | +				this.createVertexTemplateEntry(meem + 'limitSwitch;elSwitchState=off;', | 
| 374 | 381 | 75, 25, '', 'Limit Switch NO', null, null, this.getTagsForStencil(gnmeem, 'limit switch', dtmeem).join(' ')), | 
| 375 |  | -			this.createVertexTemplateEntry(meem + 'dpdt3;elSwitchState=1;', | 
|  | 382 | +				this.createVertexTemplateEntry(meem + 'dpdt3;elSwitchState=1;', | 
| 376 | 383 | 58, 62, '', 'DPDT', null, null, this.getTagsForStencil(gnmeem, 'dpdt', dtmeem).join(' ')), | 
| 377 |  | -			this.createVertexTemplateEntry(meem + 'dpdt3;elSwitchState=2;', | 
|  | 384 | +				this.createVertexTemplateEntry(meem + 'dpdt3;elSwitchState=2;', | 
| 378 | 385 | 58, 62, '', 'DPDT', null, null, this.getTagsForStencil(gnmeem, 'dpdt', dtmeem).join(' ')), | 
| 379 |  | -			this.createVertexTemplateEntry(meem + 'twoPositionSwitch2;elSwitchState=1;', | 
|  | 386 | +				this.createVertexTemplateEntry(meem + 'twoPositionSwitch2;elSwitchState=1;', | 
| 380 | 387 | 75, 70, '', '2-Position Switch', null, null, this.getTagsForStencil(gnmeem, '2 position switch', dtmeem).join(' ')), | 
| 381 |  | -			this.createVertexTemplateEntry(meem + 'twoPositionSwitch2;elSwitchState=2;', | 
|  | 388 | +				this.createVertexTemplateEntry(meem + 'twoPositionSwitch2;elSwitchState=2;', | 
| 382 | 389 | 75, 70, '', '2-Position Switch', null, null, this.getTagsForStencil(gnmeem, '2 position switch', dtmeem).join(' ')), | 
| 383 |  | -			this.createVertexTemplateEntry(meem + 'threePositionSwitch2;elSwitchState=1;', | 
|  | 390 | +				this.createVertexTemplateEntry(meem + 'threePositionSwitch2;elSwitchState=1;', | 
| 384 | 391 | 60, 60, '', '3-Position Switch', null, null, this.getTagsForStencil(gnmeem, '3 position switch', dtmeem).join(' ')), | 
| 385 |  | -			this.createVertexTemplateEntry(meem + 'threePositionSwitch2;elSwitchState=2;', | 
|  | 392 | +				this.createVertexTemplateEntry(meem + 'threePositionSwitch2;elSwitchState=2;', | 
| 386 | 393 | 60, 60, '', '3-Position Switch', null, null, this.getTagsForStencil(gnmeem, '3 position switch', dtmeem).join(' ')), | 
| 387 |  | -			this.createVertexTemplateEntry(meem + 'threePositionSwitch2;elSwitchState=3;', | 
|  | 394 | +				this.createVertexTemplateEntry(meem + 'threePositionSwitch2;elSwitchState=3;', | 
| 388 | 395 | 60, 60, '', '3-Position Switch', null, null, this.getTagsForStencil(gnmeem, '3 position switch', dtmeem).join(' ')), | 
| 389 |  | -			this.createVertexTemplateEntry(meem + 'fourPositionSwitch2;elSwitchState=1;', | 
|  | 396 | +				this.createVertexTemplateEntry(meem + 'fourPositionSwitch2;elSwitchState=1;', | 
| 390 | 397 | 75, 70, '', '4-Position Switch', null, null, this.getTagsForStencil(gnmeem, '4 position switch', dtmeem).join(' ')), | 
| 391 |  | -			this.createVertexTemplateEntry(meem + 'fourPositionSwitch2;elSwitchState=2;', | 
|  | 398 | +				this.createVertexTemplateEntry(meem + 'fourPositionSwitch2;elSwitchState=2;', | 
| 392 | 399 | 75, 70, '', '4-Position Switch', null, null, this.getTagsForStencil(gnmeem, '4 position switch', dtmeem).join(' ')), | 
| 393 |  | -			this.createVertexTemplateEntry(meem + 'fourPositionSwitch2;elSwitchState=3;', | 
|  | 400 | +				this.createVertexTemplateEntry(meem + 'fourPositionSwitch2;elSwitchState=3;', | 
| 394 | 401 | 75, 70, '', '4-Position Switch', null, null, this.getTagsForStencil(gnmeem, '4 position switch', dtmeem).join(' ')), | 
| 395 |  | -			this.createVertexTemplateEntry(meem + 'fourPositionSwitch2;elSwitchState=4;', | 
|  | 402 | +				this.createVertexTemplateEntry(meem + 'fourPositionSwitch2;elSwitchState=4;', | 
| 396 | 403 | 75, 70, '', '4-Position Switch', null, null, this.getTagsForStencil(gnmeem, '4 position switch', dtmeem).join(' ')), | 
| 397 |  | -			this.createVertexTemplateEntry(meem + 'pushbuttonMakeSwitch2;elSwitchState=1;', | 
|  | 404 | +				this.createVertexTemplateEntry(meem + 'pushbuttonMakeSwitch2;elSwitchState=1;', | 
| 398 | 405 | 75, 53, '', 'Pushbutton Make', null, null, this.getTagsForStencil(gnmeem, 'pushbutton make', dtmeem).join(' ')), | 
| 399 |  | -			this.createVertexTemplateEntry(meem + 'pushbuttonMakeSwitch2;elSwitchState=2;', | 
|  | 406 | +				this.createVertexTemplateEntry(meem + 'pushbuttonMakeSwitch2;elSwitchState=2;', | 
| 400 | 407 | 75, 53, '', 'Pushbutton Make', null, null, this.getTagsForStencil(gnmeem, 'pushbutton make', dtmeem).join(' ')), | 
| 401 |  | -			this.createVertexTemplateEntry(meem + 'pushbuttonTwoCircuitSwitch2;elSwitchState=1;', | 
|  | 408 | +				this.createVertexTemplateEntry(meem + 'pushbuttonTwoCircuitSwitch2;elSwitchState=1;', | 
| 402 | 409 | 75, 73, '', 'Pushbutton 2-Circuit', null, null, this.getTagsForStencil(gnmeem, 'pushbutton 2 circuit', dtmeem).join(' ')), | 
| 403 |  | -			this.createVertexTemplateEntry(meem + 'pushbuttonTwoCircuitSwitch2;elSwitchState=2;', | 
|  | 410 | +				this.createVertexTemplateEntry(meem + 'pushbuttonTwoCircuitSwitch2;elSwitchState=2;', | 
| 404 | 411 | 75, 73, '', 'Pushbutton 2-Circuit', null, null, this.getTagsForStencil(gnmeem, 'pushbutton 2 circuit', dtmeem).join(' ')), | 
| 405 |  | -			this.createVertexTemplateEntry(meem + 'timeDelaySwitch;elSwitchState=on;', | 
|  | 412 | +				this.createVertexTemplateEntry(meem + 'timeDelaySwitch;elSwitchState=on;', | 
| 406 | 413 | 75, 32, '', 'Time Delay Break', null, null, this.getTagsForStencil(gnmeem, 'time delay break', dtmeem).join(' ')), | 
| 407 |  | -			this.createVertexTemplateEntry(meem + 'timeDelaySwitch;elSwitchState=off;', | 
|  | 414 | +				this.createVertexTemplateEntry(meem + 'timeDelaySwitch;elSwitchState=off;', | 
| 408 | 415 | 75, 32, '', 'Time Delay Make', null, null, this.getTagsForStencil(gnmeem, 'time delay make', dtmeem).join(' ')), | 
| 409 |  | -			this.createVertexTemplateEntry(meem + 'timeDelaySwitch2;elSwitchState=off;', | 
|  | 416 | +				this.createVertexTemplateEntry(meem + 'timeDelaySwitch2;elSwitchState=off;', | 
| 410 | 417 | 75, 36, '', 'Time Delay Make', null, null, this.getTagsForStencil(gnmeem, 'time delay make', dtmeem).join(' ')), | 
| 411 |  | -			this.createVertexTemplateEntry(meem + 'timeDelaySwitch2;elSwitchState=on;', | 
|  | 418 | +				this.createVertexTemplateEntry(meem + 'timeDelaySwitch2;elSwitchState=on;', | 
| 412 | 419 | 75, 36, '', 'Time Delay Break', null, null, this.getTagsForStencil(gnmeem, 'time delay break', dtmeem).join(' ')), | 
| 413 |  | -			this.createVertexTemplateEntry(meem + 'isolatorSwitch2;elSwitchState=off;', | 
|  | 420 | +				this.createVertexTemplateEntry(meem + 'isolatorSwitch2;elSwitchState=off;', | 
| 414 | 421 | 75, 20, '', 'Isolator Off', null, null, this.getTagsForStencil(gnmeem, 'isolator', dtmeem).join(' ')), | 
| 415 |  | -			this.createVertexTemplateEntry(meem + 'isolatorSwitch2;elSwitchState=on;', | 
|  | 422 | +				this.createVertexTemplateEntry(meem + 'isolatorSwitch2;elSwitchState=on;', | 
| 416 | 423 | 75, 20, '', 'Isolator On', null, null, this.getTagsForStencil(gnmeem, 'isolator', dtmeem).join(' ')), | 
| 417 |  | -			this.createVertexTemplateEntry(meem + 'changeoverContactSwitch2;elSwitchState=1;', | 
|  | 424 | +				this.createVertexTemplateEntry(meem + 'changeoverContactSwitch2;elSwitchState=1;', | 
| 418 | 425 | 75, 20, '', 'Changeover Contact', null, null, this.getTagsForStencil(gnmeem, 'changeover contact', dtmeem).join(' ')), | 
| 419 |  | -			this.createVertexTemplateEntry(meem + 'changeoverContactSwitch2;elSwitchState=2;', | 
|  | 426 | +				this.createVertexTemplateEntry(meem + 'changeoverContactSwitch2;elSwitchState=2;', | 
| 420 | 427 | 75, 20, '', 'Changeover Contact', null, null, this.getTagsForStencil(gnmeem, 'changeover contact', dtmeem).join(' ')), | 
| 421 |  | -			this.createVertexTemplateEntry(meem + 'reedSwitch2;elSwitchState=on;', | 
|  | 428 | +				this.createVertexTemplateEntry(meem + 'reedSwitch2;elSwitchState=on;', | 
| 422 | 429 | 75, 20, '', 'Reed Switch On', null, null, this.getTagsForStencil(gnmeem, 'reed switch', dtmeem).join(' ')), | 
| 423 |  | -			this.createVertexTemplateEntry(meem + 'reedSwitch2;elSwitchState=off;', | 
|  | 430 | +				this.createVertexTemplateEntry(meem + 'reedSwitch2;elSwitchState=off;', | 
| 424 | 431 | 75, 20, '', 'Reed Switch Off', null, null, this.getTagsForStencil(gnmeem, 'reed switch', dtmeem).join(' ')), | 
| 425 |  | -			this.createVertexTemplateEntry(meem + 'relay_coil;', | 
|  | 432 | +				this.createVertexTemplateEntry(meem + 'relay_coil;', | 
| 426 | 433 | 70, 35, '', 'Relay Coil', null, null, this.getTagsForStencil(gnmeem, 'relay coil', dtmeem).join(' ')), | 
| 427 |  | -			this.createVertexTemplateEntry(meem + 'relay;', | 
|  | 434 | +				this.createVertexTemplateEntry(meem + 'relay;', | 
| 428 | 435 | 100, 50, '', 'Relay', null, null, this.getTagsForStencil(gnmeem, 'relay', dtmeem).join(' ')), | 
| 429 |  | -			this.createVertexTemplateEntry(meem + 'relay_contacts;', | 
|  | 436 | +				this.createVertexTemplateEntry(meem + 'relay_contacts;', | 
| 430 | 437 | 30, 24, '', 'Relay Contacts', null, null, this.getTagsForStencil(gnmeem, 'relay contacts', dtmeem).join(' ')), | 
| 431 |  | -			this.createVertexTemplateEntry(meem + 'resonator;', | 
|  | 438 | +				this.createVertexTemplateEntry(meem + 'resonator;', | 
| 432 | 439 | 100, 50, '', 'Resonator', null, null, this.getTagsForStencil(gnmeem, 'resonator', dtmeem).join(' ')), | 
| 433 |  | -			this.createVertexTemplateEntry(meem + 'pilot_light;', | 
|  | 440 | +				this.createVertexTemplateEntry(meem + 'pilot_light;', | 
| 434 | 441 | 100, 100, '', 'Pilot Light', null, null, this.getTagsForStencil(gnmeem, 'pilot light', dtmeem).join(' ')), | 
| 435 |  | -			this.createVertexTemplateEntry(meem + 'relay_coil_2;', | 
|  | 442 | +				this.createVertexTemplateEntry(meem + 'relay_coil_2;', | 
| 436 | 443 | 100, 70, '', 'Relay Coil', null, null, this.getTagsForStencil(gnmeem, 'relay coil', dtmeem).join(' ')), | 
| 437 |  | -			this.createVertexTemplateEntry(meem + 'mercury_switch;', | 
|  | 444 | +				this.createVertexTemplateEntry(meem + 'mercury_switch;', | 
| 438 | 445 | 80, 80, '', 'Mercury Switch', null, null, this.getTagsForStencil(gnmeem, 'mercury switch', dtmeem).join(' ')), | 
| 439 |  | -			this.createVertexTemplateEntry(meem + 'mercury_switch_2;', | 
|  | 446 | +				this.createVertexTemplateEntry(meem + 'mercury_switch_2;', | 
| 440 | 447 | 50, 90, '', 'Mercury Switch', null, null, this.getTagsForStencil(gnmeem, 'mercury switch', dtmeem).join(' ')) | 
| 441 |  | -		]); | 
|  | 448 | +			]); | 
| 442 | 449 |  | 
| 443 | 450 | this.setCurrentSearchEntryLibrary('electrical', 'electrical\Diodes'); | 
| 444 |  | - | 
| 445 |  | -		this.addPaletteFunctions('electrical\Diodes', 'Electrical / Diodes', false, | 
| 446 |  | -		[ | 
| 447 |  | -			this.createVertexTemplateEntry(med + 'diode;', | 
|  | 451 | + | 
|  | 452 | +		// TODO ThingsKit i18n国际化 | 
|  | 453 | +		// this.addPaletteFunctions('electrical\Diodes', 'Electrical / Diodes', false, | 
|  | 454 | +		this.addPaletteFunctions('electrical\Diodes', mxResources.get('Electrical / Diodes'), false, | 
|  | 455 | +			[ | 
|  | 456 | +				this.createVertexTemplateEntry(med + 'diode;', | 
| 448 | 457 | 100, 60, '', 'PN Diode', null, null, this.getTagsForStencil(gnmed, 'diode', dtmed).join(' ')), | 
| 449 |  | -			this.createVertexTemplateEntry(med + 'gunn_diode;', | 
|  | 458 | +				this.createVertexTemplateEntry(med + 'gunn_diode;', | 
| 450 | 459 | 100, 60, '', 'Gunn Diode', null, null, this.getTagsForStencil(gnmed, 'gunn_diode', dtmed).join(' ')), | 
| 451 |  | -			this.createVertexTemplateEntry(med + 'schottky_diode;', | 
|  | 460 | +				this.createVertexTemplateEntry(med + 'schottky_diode;', | 
| 452 | 461 | 100, 60, '', 'Schottky Diode', null, null, this.getTagsForStencil(gnmed, 'schottky_diode', dtmed).join(' ')), | 
| 453 |  | -			this.createVertexTemplateEntry(med + 'zener_diode_2;', | 
|  | 462 | +				this.createVertexTemplateEntry(med + 'zener_diode_2;', | 
| 454 | 463 | 100, 60, '', 'Breakdown', null, null, this.getTagsForStencil(gnmed, 'zener_diode_2', dtmed).join(' ')), | 
| 455 |  | -			this.createVertexTemplateEntry(med + 'tunnel_diode;', | 
|  | 464 | +				this.createVertexTemplateEntry(med + 'tunnel_diode;', | 
| 456 | 465 | 100, 60, '', 'Tunnel Diode 1', null, null, this.getTagsForStencil(gnmed, 'tunnel_diode', dtmed).join(' ')), | 
| 457 |  | -			this.createVertexTemplateEntry(med + 'tunnel_diode_2;', | 
|  | 466 | +				this.createVertexTemplateEntry(med + 'tunnel_diode_2;', | 
| 458 | 467 | 100, 80, '', 'Tunnel Diode 2', null, null, this.getTagsForStencil(gnmed, 'tunnel_diode_2', dtmed).join(' ')), | 
| 459 |  | -			this.createVertexTemplateEntry(med + 'field_effect_diode;', | 
|  | 468 | +				this.createVertexTemplateEntry(med + 'field_effect_diode;', | 
| 460 | 469 | 100, 60, '', 'Field Effect Diode', null, null, this.getTagsForStencil(gnmed, 'field_effect_diode', dtmed).join(' ')), | 
| 461 |  | -			this.createVertexTemplateEntry(med + 'varactor_-_varicap;', | 
|  | 470 | +				this.createVertexTemplateEntry(med + 'varactor_-_varicap;', | 
| 462 | 471 | 100, 60, '', 'Varactor - Varicap', null, null, this.getTagsForStencil(gnmed, 'varactor_-_varicap', dtmed).join(' ')), | 
| 463 |  | -			this.createVertexTemplateEntry(med + 'zener_diode_1;', | 
|  | 472 | +				this.createVertexTemplateEntry(med + 'zener_diode_1;', | 
| 464 | 473 | 100, 60, '', 'Zener Diode 1', null, null, this.getTagsForStencil(gnmed, 'zener_diode_1', dtmed).join(' ')), | 
| 465 |  | -			this.createVertexTemplateEntry(med + 'zener_diode_3;', | 
|  | 474 | +				this.createVertexTemplateEntry(med + 'zener_diode_3;', | 
| 466 | 475 | 100, 60, '', 'Zener Diode 2', null, null, this.getTagsForStencil(gnmed, 'zener_diode_3', dtmed).join(' ')), | 
| 467 |  | -			this.createVertexTemplateEntry(med + 'four_layer_diode;', | 
|  | 476 | +				this.createVertexTemplateEntry(med + 'four_layer_diode;', | 
| 468 | 477 | 100, 80, '', 'Four Layer Diode', null, null, this.getTagsForStencil(gnmed, 'four_layer_diode', dtmed).join(' ')), | 
| 469 |  | -			this.createVertexTemplateEntry(med + 'transorb_1;', | 
|  | 478 | +				this.createVertexTemplateEntry(med + 'transorb_1;', | 
| 470 | 479 | 100, 60, '', 'Transorb 1', null, null, this.getTagsForStencil(gnmed, 'transorb_1', dtmed).join(' ')), | 
| 471 |  | -			this.createVertexTemplateEntry(med + 'transorb_2;', | 
|  | 480 | +				this.createVertexTemplateEntry(med + 'transorb_2;', | 
| 472 | 481 | 100, 60, '', 'Transorb 2', null, null, this.getTagsForStencil(gnmed, 'transorb_2', dtmed).join(' ')) | 
| 473 |  | -		]); | 
| 474 |  | - | 
|  | 482 | +			]); | 
|  | 483 | + | 
| 475 | 484 | this.setCurrentSearchEntryLibrary('electrical', 'electrical\Sources'); | 
| 476 |  | - | 
| 477 |  | -		this.addPaletteFunctions('electrical\Sources', 'Electrical / Sources', false, | 
| 478 |  | -		[ | 
| 479 |  | -			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=ac;', | 
|  | 485 | + | 
|  | 486 | +		// TODO ThingsKit i18n国际化 | 
|  | 487 | +		// this.addPaletteFunctions('electrical\Sources', 'Electrical / Sources', false, | 
|  | 488 | +		this.addPaletteFunctions('electrical\Sources', mxResources.get('Electrical / Sources'), false, | 
|  | 489 | +			[ | 
|  | 490 | +				this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=ac;', | 
| 480 | 491 | 60, 60, '', 'Source', null, null, this.getTagsForStencil(gnmess, 'source', dtmess).join(' ')), | 
| 481 |  | -			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=dc1;', | 
|  | 492 | +				this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=dc1;', | 
| 482 | 493 | 60, 60, '', 'Source', null, null, this.getTagsForStencil(gnmess, 'source', dtmess).join(' ')), | 
| 483 |  | -			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=dc3;', | 
|  | 494 | +				this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=dc3;', | 
| 484 | 495 | 60, 60, '', 'Source', null, null, this.getTagsForStencil(gnmess, 'source', dtmess).join(' ')), | 
| 485 |  | -			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=none;elSourceType=dependent;', | 
|  | 496 | +				this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=none;elSourceType=dependent;', | 
| 486 | 497 | 60, 60, '', 'Source', null, null, this.getTagsForStencil(gnmess, 'source', dtmess).join(' ')), | 
| 487 |  | -			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=dc2;elSourceType=dependent;', | 
|  | 498 | +				this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=dc2;elSourceType=dependent;', | 
| 488 | 499 | 60, 60, '', 'Source', null, null, this.getTagsForStencil(gnmess, 'source', dtmess).join(' ')), | 
| 489 |  | -			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSourceType=dependent;elSignalType=dc3;', | 
|  | 500 | +				this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSourceType=dependent;elSignalType=dc3;', | 
| 490 | 501 | 60, 60, '', 'Source', null, null, this.getTagsForStencil(gnmess, 'source', dtmess).join(' ')), | 
| 491 |  | -			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=noise;', | 
|  | 502 | +				this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=noise;', | 
| 492 | 503 | 60, 60, '', 'Source', null, null, this.getTagsForStencil(gnmess, 'source', dtmess).join(' ')), | 
| 493 |  | -			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=ideal;', | 
|  | 504 | +				this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=ideal;', | 
| 494 | 505 | 60, 60, '', 'Source', null, null, this.getTagsForStencil(gnmess, 'source', dtmess).join(' ')), | 
| 495 |  | -			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=expSquib;', | 
|  | 506 | +				this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=expSquib;', | 
| 496 | 507 | 60, 60, '', 'Source', null, null, this.getTagsForStencil(gnmess, 'source', dtmess).join(' ')), | 
| 497 |  | -			this.createVertexTemplateEntry(mess + 'current_source;', | 
|  | 508 | +				this.createVertexTemplateEntry(mess + 'current_source;', | 
| 498 | 509 | 40, 60, '', 'Current', null, null, this.getTagsForStencil(gnmess, 'current_source', dtmess).join(' ')), | 
| 499 |  | -			this.createVertexTemplateEntry(mess + 'dc_source_1;', | 
|  | 510 | +				this.createVertexTemplateEntry(mess + 'dc_source_1;', | 
| 500 | 511 | 70, 75, '', 'DC', null, null, this.getTagsForStencil(gnmess, 'dc_source_1', dtmess).join(' ')), | 
| 501 |  | -			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=strokeColor;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.monocell_battery;', | 
|  | 512 | +				this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=strokeColor;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.monocell_battery;', | 
| 502 | 513 | 100, 60, '', 'Accumulator / Monocell Battery', null, null, this.getTagsForStencil(gnmess, 'accumulator monocell battery single cell', dtmem).join(' ')), | 
| 503 |  | -			this.createVertexTemplateEntry(mem + 'batteryStack;', | 
|  | 514 | +				this.createVertexTemplateEntry(mem + 'batteryStack;', | 
| 504 | 515 | 100, 60, '', 'Battery Stack', null, null, this.getTagsForStencil(gnmess, 'battery stack', dtmess).join(' ')), | 
| 505 |  | -			this.createVertexTemplateEntry('pointerEvents=1;verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=strokeColor;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.multicell_battery_tapped;', | 
|  | 516 | +				this.createVertexTemplateEntry('pointerEvents=1;verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=strokeColor;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.multicell_battery_tapped;', | 
| 506 | 517 | 100, 70, '', 'Multicell Battery Tapped', null, null, this.getTagsForStencil(gnmess, 'accumulator multicell battery tapped multi multiple cell', dtmem).join(' ')), | 
| 507 |  | -			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=square;', | 
|  | 518 | +				this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=square;', | 
| 508 | 519 | 60, 60, '', 'Source, Square', null, null, this.getTagsForStencil(gnmess, 'source square', dtmess).join(' ')), | 
| 509 |  | -			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=triangular;', | 
|  | 520 | +				this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=triangular;', | 
| 510 | 521 | 60, 60, '', 'Source, Triangular', null, null, this.getTagsForStencil(gnmess, 'source triangular', dtmess).join(' ')), | 
| 511 |  | -			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=sawtooth;', | 
|  | 522 | +				this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=sawtooth;', | 
| 512 | 523 | 60, 60, '', 'Source, Sawtooth', null, null, this.getTagsForStencil(gnmess, 'source sawtooth', dtmess).join(' ')), | 
| 513 |  | -			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=pulse;', | 
|  | 524 | +				this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=pulse;', | 
| 514 | 525 | 60, 60, '', 'Source, Pulse', null, null, this.getTagsForStencil(gnmess, 'source pulse', dtmess).join(' ')), | 
| 515 |  | -			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=invPulse;', | 
|  | 526 | +				this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=invPulse;', | 
| 516 | 527 | 60, 60, '', 'Source, Inverse Pulse', null, null, this.getTagsForStencil(gnmess, 'source inverse pulse', dtmess).join(' ')), | 
| 517 |  | -			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=chopSquare;', | 
|  | 528 | +				this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=chopSquare;', | 
| 518 | 529 | 60, 60, '', 'Source, Chopped Square', null, null, this.getTagsForStencil(gnmess, 'source chopped square', dtmess).join(' ')), | 
| 519 |  | -			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=stepOn;', | 
|  | 530 | +				this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=stepOn;', | 
| 520 | 531 | 60, 60, '', 'Source, Step On', null, null, this.getTagsForStencil(gnmess, 'source step on', dtmess).join(' ')), | 
| 521 |  | -			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=stepOff;', | 
|  | 532 | +				this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=stepOff;', | 
| 522 | 533 | 60, 60, '', 'Source, Step Off', null, null, this.getTagsForStencil(gnmess, 'source step off', dtmess).join(' ')), | 
| 523 |  | -			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=dc2;', | 
|  | 534 | +				this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=dc2;', | 
| 524 | 535 | 60, 60, '', 'Source, DC', null, null, this.getTagsForStencil(gnmess, 'source dc vertical', dtmess).join(' ')) | 
| 525 |  | -		]); | 
| 526 |  | - | 
|  | 536 | +			]); | 
|  | 537 | + | 
| 527 | 538 | this.setCurrentSearchEntryLibrary('electrical', 'electrical\Transistors'); | 
| 528 |  | - | 
| 529 |  | -		this.addPaletteFunctions('electrical\Transistors', 'Electrical / Transistors', false, | 
| 530 |  | -		[ | 
| 531 |  | -			this.createVertexTemplateEntry(met + 'npn_transistor_1;', | 
|  | 539 | + | 
|  | 540 | +		// TODO ThingsKit i18n国际化 | 
|  | 541 | +		// this.addPaletteFunctions('electrical\Transistors', 'Electrical / Transistors', false, | 
|  | 542 | +		this.addPaletteFunctions('electrical\Transistors', mxResources.get('Electrical / Transistors'), false, | 
|  | 543 | +			[ | 
|  | 544 | +				this.createVertexTemplateEntry(met + 'npn_transistor_1;', | 
| 532 | 545 | 95, 100, '', 'BJT (NPN)', null, null, this.getTagsForStencil(gnmet, 'npn_transistor_1', dtmet).join(' ')), | 
| 533 |  | -			this.createVertexTemplateEntry(met + 'npn_transistor_5;', | 
|  | 546 | +				this.createVertexTemplateEntry(met + 'npn_transistor_5;', | 
| 534 | 547 | 64, 100, '', 'BJT (NPN)', null, null, this.getTagsForStencil(gnmet, 'npn_transistor_5', dtmet).join(' ')), | 
| 535 |  | -			this.createVertexTemplateEntry(met + 'nigbt;', | 
|  | 548 | +				this.createVertexTemplateEntry(met + 'nigbt;', | 
| 536 | 549 | 64, 100, '', 'NIGBT', null, null, this.getTagsForStencil(gnmet, 'nigbt', dtmet).join(' ')), | 
| 537 |  | -			this.createVertexTemplateEntry(met + 'pnp_transistor_1;', | 
|  | 550 | +				this.createVertexTemplateEntry(met + 'pnp_transistor_1;', | 
| 538 | 551 | 95, 100, '', 'BJT (PNP)', null, null, this.getTagsForStencil(gnmet, 'pnp_transistor_1', dtmet).join(' ')), | 
| 539 |  | -			this.createVertexTemplateEntry(met + 'pnp_transistor_5;', | 
|  | 552 | +				this.createVertexTemplateEntry(met + 'pnp_transistor_5;', | 
| 540 | 553 | 64, 100, '', 'BJT (PNP)', null, null, this.getTagsForStencil(gnmet, 'pnp_transistor_5', dtmet).join(' ')), | 
| 541 |  | -			this.createVertexTemplateEntry(met + 'pigbt;', | 
|  | 554 | +				this.createVertexTemplateEntry(met + 'pigbt;', | 
| 542 | 555 | 64, 100, '', 'PIGBT', null, null, this.getTagsForStencil(gnmet, 'pigbt', dtmet).join(' ')), | 
| 543 |  | -			this.createVertexTemplateEntry(met + 'n-channel_jfet_1;', | 
|  | 556 | +				this.createVertexTemplateEntry(met + 'n-channel_jfet_1;', | 
| 544 | 557 | 95, 100, '', 'N Channel JFET', null, null, this.getTagsForStencil(gnmet, 'n-channel_jfet_1', dtmet).join(' ')), | 
| 545 |  | -			this.createVertexTemplateEntry(met + 'p-channel_jfet_1;', | 
|  | 558 | +				this.createVertexTemplateEntry(met + 'p-channel_jfet_1;', | 
| 546 | 559 | 95, 100, '', 'P Channel JFET', null, null, this.getTagsForStencil(gnmet, 'p-channel_jfet_1', dtmet).join(' ')), | 
| 547 |  | -			this.createVertexTemplateEntry(mef1 + 'n-channel_mosfet_1;', | 
|  | 560 | +				this.createVertexTemplateEntry(mef1 + 'n-channel_mosfet_1;', | 
| 548 | 561 | 95, 100, '', 'MOSFET (N)', null, null, this.getTagsForStencil(gnmet, 'n-channel_mosfet_1', dtmet).join(' ')), | 
| 549 |  | -			this.createVertexTemplateEntry(mef1 + 'p-channel_mosfet_1;', | 
|  | 562 | +				this.createVertexTemplateEntry(mef1 + 'p-channel_mosfet_1;', | 
| 550 | 563 | 95, 100, '', 'MOSFET (P)', null, null, this.getTagsForStencil(gnmet, 'p-channel_mosfet_1', dtmet).join(' ')), | 
| 551 |  | -			this.createVertexTemplateEntry(mef1 + 'mosfet_ic_n;', | 
|  | 564 | +				this.createVertexTemplateEntry(mef1 + 'mosfet_ic_n;', | 
| 552 | 565 | 95, 100, '', 'NMOS', null, null, this.getTagsForStencil(gnmet, 'mosfet_ic_n', dtmet).join(' ')), | 
| 553 |  | -			this.createVertexTemplateEntry(mef1 + 'mosfet_ic_p;', | 
|  | 566 | +				this.createVertexTemplateEntry(mef1 + 'mosfet_ic_p;', | 
| 554 | 567 | 95, 100, '', 'PMOS', null, null, this.getTagsForStencil(gnmet, 'mosfet_ic_p', dtmet).join(' ')), | 
| 555 |  | -			this.createVertexTemplateEntry(mef1 + 'mosfet_n_no_bulk;', | 
|  | 568 | +				this.createVertexTemplateEntry(mef1 + 'mosfet_n_no_bulk;', | 
| 556 | 569 | 95, 100, '', 'MOSFET No Bulk (N)', null, null, this.getTagsForStencil(gnmet, 'mosfet_n_no_bulk', dtmet).join(' ')), | 
| 557 |  | -			this.createVertexTemplateEntry(mef1 + 'mosfet_p_no_bulk;', | 
|  | 570 | +				this.createVertexTemplateEntry(mef1 + 'mosfet_p_no_bulk;', | 
| 558 | 571 | 95, 100, '', 'MOSFET No Bulk (P)', null, null, this.getTagsForStencil(gnmet, 'mosfet_p_no_bulk', dtmet).join(' ')), | 
| 559 |  | -			this.createVertexTemplateEntry(mef1 + 'dual_gate_mosfet_n;', | 
|  | 572 | +				this.createVertexTemplateEntry(mef1 + 'dual_gate_mosfet_n;', | 
| 560 | 573 | 95, 100, '', 'Dual Gate MOSFET (N)', null, null, this.getTagsForStencil(gnmet, 'dual_gate_mosfet_n', dtmet).join(' ')), | 
| 561 |  | -			this.createVertexTemplateEntry(mef1 + 'dual_gate_mosfet_p;', | 
|  | 574 | +				this.createVertexTemplateEntry(mef1 + 'dual_gate_mosfet_p;', | 
| 562 | 575 | 95, 100, '', 'Dual Gate MOSFET (P)', null, null, this.getTagsForStencil(gnmet, 'dual_gate_mosfet_p', dtmet).join(' ')), | 
| 563 |  | -			this.createVertexTemplateEntry(met + 'nmos;pointerEvents=1;', | 
|  | 576 | +				this.createVertexTemplateEntry(met + 'nmos;pointerEvents=1;', | 
| 564 | 577 | 60, 100, '', 'NMOS', null, null, this.getTagsForStencil(gnmet, 'nmos', dtmet).join(' ')), | 
| 565 |  | -			this.createVertexTemplateEntry(met + 'nmos_bulk;pointerEvents=1;', | 
|  | 578 | +				this.createVertexTemplateEntry(met + 'nmos_bulk;pointerEvents=1;', | 
| 566 | 579 | 60, 100, '', 'NMOS with Bulk', null, null, this.getTagsForStencil(gnmet, 'nmos bulk', dtmet).join(' ')), | 
| 567 |  | -			this.createVertexTemplateEntry(met + 'pmos;pointerEvents=1;', | 
|  | 580 | +				this.createVertexTemplateEntry(met + 'pmos;pointerEvents=1;', | 
| 568 | 581 | 60, 100, '', 'PMOS', null, null, this.getTagsForStencil(gnmet, 'pmos', dtmet).join(' ')), | 
| 569 |  | -			this.createVertexTemplateEntry(met + 'pmos_bulk;pointerEvents=1;', | 
|  | 582 | +				this.createVertexTemplateEntry(met + 'pmos_bulk;pointerEvents=1;', | 
| 570 | 583 | 60, 100, '', 'PMOS with Bulk', null, null, this.getTagsForStencil(gnmet, 'pmos bulk', dtmet).join(' ')) | 
| 571 |  | -		]); | 
|  | 584 | +			]); | 
| 572 | 585 |  | 
| 573 | 586 | this.setCurrentSearchEntryLibrary('electrical', 'electrical\Instruments'); | 
| 574 |  | - | 
| 575 |  | -		this.addPaletteFunctions('electrical\Instruments', 'Electrical / Instruments', false, | 
| 576 |  | -		[ | 
| 577 |  | -			this.createVertexTemplateEntry('verticalLabelPosition=middle;shadow=0;dashed=0;align=center;html=1;verticalAlign=middle;strokeWidth=1;shape=ellipse;aspect=fixed;fontSize=50;', | 
|  | 587 | + | 
|  | 588 | +		// TODO ThingsKit i18n国际化 | 
|  | 589 | +		// this.addPaletteFunctions('electrical\Instruments', 'Electrical / Instruments', false, | 
|  | 590 | +		this.addPaletteFunctions('electrical\Instruments', mxResources.get('Electrical / Instruments'), false, | 
|  | 591 | +			[ | 
|  | 592 | +				this.createVertexTemplateEntry('verticalLabelPosition=middle;shadow=0;dashed=0;align=center;html=1;verticalAlign=middle;strokeWidth=1;shape=ellipse;aspect=fixed;fontSize=50;', | 
| 578 | 593 | 90, 90, 'A', 'Ammeter', null, null, this.getTagsForStencil(gnmein, 'ampermeter ammeter', dtmein).join(' ')), | 
| 579 |  | -			this.createVertexTemplateEntry(mein + 'galvanometer;', | 
|  | 594 | +				this.createVertexTemplateEntry(mein + 'galvanometer;', | 
| 580 | 595 | 90, 90, '', 'Galvanometer', null, null, this.getTagsForStencil(gnmein, 'galvanometer', dtmein).join(' ')), | 
| 581 |  | -			this.createVertexTemplateEntry(mein + 'oscilloscope;', | 
|  | 596 | +				this.createVertexTemplateEntry(mein + 'oscilloscope;', | 
| 582 | 597 | 90, 90, '', 'Oscilloscope', null, null, this.getTagsForStencil(gnmein, 'oscilloscope', dtmein).join(' ')), | 
| 583 |  | -			this.createVertexTemplateEntry(mein + 'signal_generator;', | 
|  | 598 | +				this.createVertexTemplateEntry(mein + 'signal_generator;', | 
| 584 | 599 | 90, 90, '', 'Signal Generator', null, null, this.getTagsForStencil(gnmein, 'signal_generator', dtmein).join(' ')), | 
| 585 |  | -			this.createVertexTemplateEntry('verticalLabelPosition=middle;shadow=0;dashed=0;align=center;html=1;verticalAlign=middle;strokeWidth=1;shape=ellipse;aspect=fixed;fontSize=50;', | 
|  | 600 | +				this.createVertexTemplateEntry('verticalLabelPosition=middle;shadow=0;dashed=0;align=center;html=1;verticalAlign=middle;strokeWidth=1;shape=ellipse;aspect=fixed;fontSize=50;', | 
| 586 | 601 | 90, 90, 'V', 'Voltmeter', null, null, this.getTagsForStencil(gnmein, 'ampermeter ammeter', dtmein).join(' ')) | 
| 587 |  | -		]); | 
|  | 602 | +			]); | 
| 588 | 603 |  | 
| 589 | 604 | this.setCurrentSearchEntryLibrary('electrical', 'electrical\Misc'); | 
| 590 |  | - | 
| 591 |  | -		this.addPaletteFunctions('electrical\Misc', 'Electrical / Misc', false, | 
| 592 |  | -		[ | 
| 593 |  | -			this.createVertexTemplateEntry(mer + 'aerial_-_antenna_1;', | 
|  | 605 | + | 
|  | 606 | +		// TODO ThingsKit i18n国际化 | 
|  | 607 | +		// this.addPaletteFunctions('electrical\Misc', 'Electrical / Misc', false, | 
|  | 608 | +		this.addPaletteFunctions('electrical\Misc', mxResources.get('Electrical / Misc'), false, | 
|  | 609 | +			[ | 
|  | 610 | +				this.createVertexTemplateEntry(mer + 'aerial_-_antenna_1;', | 
| 594 | 611 | 80, 100, '', 'Antenna', null, null, this.getTagsForStencil(gnmer, 'aerial_-_antenna_1', dtmer).join(' ')), | 
| 595 |  | -			this.createVertexTemplateEntry(mer + 'aerial_-_antenna_2;', | 
|  | 612 | +				this.createVertexTemplateEntry(mer + 'aerial_-_antenna_2;', | 
| 596 | 613 | 79, 100, '', 'Antenna', null, null, this.getTagsForStencil(gnmer, 'aerial_-_antenna_2', dtmer).join(' ')), | 
| 597 |  | -			this.createVertexTemplateEntry(mer + 'loop_antenna;', | 
|  | 614 | +				this.createVertexTemplateEntry(mer + 'loop_antenna;', | 
| 598 | 615 | 64.8, 69.78, '', 'Loop Antenna', null, null, this.getTagsForStencil(gnmer, 'loop_antenna', dtmer).join(' ')), | 
| 599 |  | -			this.createVertexTemplateEntry(mem + 'loop_antenna', | 
|  | 616 | +				this.createVertexTemplateEntry(mem + 'loop_antenna', | 
| 600 | 617 | 100, 100, '', 'Loop Antenna', null, null, this.getTagsForStencil(gnmess, 'loop antenna', dtmem).join(' ')), | 
| 601 |  | -			this.createVertexTemplateEntry('verticalLabelPosition=middle;shadow=0;dashed=0;align=center;html=1;verticalAlign=middle;strokeWidth=1;shape=ellipse;aspect=fixed;fontSize=35;', | 
|  | 618 | +				this.createVertexTemplateEntry('verticalLabelPosition=middle;shadow=0;dashed=0;align=center;html=1;verticalAlign=middle;strokeWidth=1;shape=ellipse;aspect=fixed;fontSize=35;', | 
| 602 | 619 | 60, 60, 'M', 'Electrical Motor', null, null, this.getTagsForStencil(gnmeem, 'motor_1', dtmeem).join(' ')), | 
| 603 |  | -			this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE + '=mxgraph.electrical.electro-mechanical.motor_2;html=1;shadow=0;dashed=0;align=center;fontSize=30;strokeWidth=1;', | 
|  | 620 | +				this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE + '=mxgraph.electrical.electro-mechanical.motor_2;html=1;shadow=0;dashed=0;align=center;fontSize=30;strokeWidth=1;', | 
| 604 | 621 | 100, 60, '', 'Motor Armature', null, null, this.getTagsForStencil(gnmeem, 'motor_2', dtmeem).join(' ')), | 
| 605 |  | -			this.createVertexTemplateEntry(mem + 'co-ax;', | 
|  | 622 | +				this.createVertexTemplateEntry(mem + 'co-ax;', | 
| 606 | 623 | 40, 60, '', 'Co-Ax', null, null, this.getTagsForStencil(gnmem, 'co-ax', dtmem).join(' ')), | 
| 607 |  | -			this.createVertexTemplateEntry(mem + 'crystal_1;', | 
|  | 624 | +				this.createVertexTemplateEntry(mem + 'crystal_1;', | 
| 608 | 625 | 100, 40, '', 'Crystal', null, null, this.getTagsForStencil(gnmem, 'crystal_1', dtmem).join(' ')), | 
| 609 |  | -			this.createVertexTemplateEntry(mem + 'fuse_1;', | 
|  | 626 | +				this.createVertexTemplateEntry(mem + 'fuse_1;', | 
| 610 | 627 | 100, 20, '', 'Fuse (IEC)', null, null, this.getTagsForStencil(gnmem, 'fuse_1', dtmem).join(' ')), | 
| 611 |  | -			this.createVertexTemplateEntry(mem + 'fuse_2;', | 
|  | 628 | +				this.createVertexTemplateEntry(mem + 'fuse_2;', | 
| 612 | 629 | 100, 20, '', 'Fuse (IEEE)', null, null, this.getTagsForStencil(gnmem, 'fuse_2', dtmem).join(' ')), | 
| 613 |  | -			this.createVertexTemplateEntry(mem + 'fuse_3;', | 
|  | 630 | +				this.createVertexTemplateEntry(mem + 'fuse_3;', | 
| 614 | 631 | 100, 12, '', 'Fuse (obsolete)', null, null, this.getTagsForStencil(gnmem, 'fuse_3', dtmem).join(' ')), | 
| 615 |  | -			this.createVertexTemplateEntry(mem + 'fuse_4;', | 
|  | 632 | +				this.createVertexTemplateEntry(mem + 'fuse_4;', | 
| 616 | 633 | 100, 32, '', 'Fuse (IEEE)', null, null, this.getTagsForStencil(gnmem, 'fuse_4', dtmem).join(' ')), | 
| 617 |  | -			this.createVertexTemplateEntry(mem + 'light_bulb;', | 
|  | 634 | +				this.createVertexTemplateEntry(mem + 'light_bulb;', | 
| 618 | 635 | 60, 50, '', 'Light Bulb', null, null, this.getTagsForStencil(gnmem, 'light_bulb', dtmem).join(' ')), | 
| 619 |  | -			this.createVertexTemplateEntry(mem + 'illuminating_bulb;', | 
|  | 636 | +				this.createVertexTemplateEntry(mem + 'illuminating_bulb;', | 
| 620 | 637 | 60, 50, '', 'Illuminating Bulb', null, null, this.getTagsForStencil(gnmem, 'illuminating_bulb', dtmem).join(' ')), | 
| 621 |  | -			this.createVertexTemplateEntry(mem + 'light_bulb;', | 
|  | 638 | +				this.createVertexTemplateEntry(mem + 'light_bulb;', | 
| 622 | 639 | 60, 50, '', 'Pilot Light', null, null, this.getTagsForStencil(gnmem, 'light_bulb', dtmem).join(' ')), | 
| 623 |  | -			this.createVertexTemplateEntry(mem + 'neon_lamp_2;', | 
|  | 640 | +				this.createVertexTemplateEntry(mem + 'neon_lamp_2;', | 
| 624 | 641 | 60, 50, '', 'Neon Lamp', null, null, this.getTagsForStencil(gnmem, 'neon_lamp_2', dtmem).join(' ')), | 
| 625 |  | -			this.createVertexTemplateEntry(mem + 'flourescent_lamp', | 
|  | 642 | +				this.createVertexTemplateEntry(mem + 'flourescent_lamp', | 
| 626 | 643 | 80, 30, '', 'Flourescent Lamp', null, null, this.getTagsForStencil(gnmess, 'flourescent lamp', dtmem).join(' ')), | 
| 627 |  | -			this.createVertexTemplateEntry(meoe + 'lamp', | 
|  | 644 | +				this.createVertexTemplateEntry(meoe + 'lamp', | 
| 628 | 645 | 50, 100, '', 'Lamp', null, null, this.getTagsForStencil(gnmess, 'lamp', dtmeoe).join(' ')), | 
| 629 |  | -			this.createVertexTemplateEntry(mem + 'thermocouple;', | 
|  | 646 | +				this.createVertexTemplateEntry(mem + 'thermocouple;', | 
| 630 | 647 | 80, 81, '', 'Thermocouple', null, null, this.getTagsForStencil(gnmem, 'thermocouple', dtmem).join(' ')), | 
| 631 |  | -			this.createVertexTemplateEntry(mea + 'amplifier;', | 
|  | 648 | +				this.createVertexTemplateEntry(mea + 'amplifier;', | 
| 632 | 649 | 90, 100, '', 'Amplifier', null, null, this.getTagsForStencil(gnmea, 'amplifier', dtmea).join(' ')), | 
| 633 |  | -			this.createVertexTemplateEntry(mea + 'controlled_amplifier;', | 
|  | 650 | +				this.createVertexTemplateEntry(mea + 'controlled_amplifier;', | 
| 634 | 651 | 100, 90, '', 'Controlled Amplifier', null, null, this.getTagsForStencil(gnmea, 'controlled_amplifier', dtmea).join(' ')), | 
| 635 |  | -			this.createVertexTemplateEntry(mea + 'dac;', | 
|  | 652 | +				this.createVertexTemplateEntry(mea + 'dac;', | 
| 636 | 653 | 70, 46, '', 'DAC', null, null, this.getTagsForStencil(gnmea, 'dac', dtmea).join(' ')), | 
| 637 |  | -			this.createVertexTemplateEntry( | 
|  | 654 | +				this.createVertexTemplateEntry( | 
| 638 | 655 | 'shadow=0;dashed=0;align=center;html=1;strokeWidth=1;shape=mxgraph.electrical.abstract.mux2;whiteSpace=wrap;', | 
| 639 | 656 | 80, 120, 'Mux', 'Mux', null, null, this.getTagsForStencil(gnmea, 'mux', dtmea).join(' ')), | 
| 640 |  | -			this.createVertexTemplateEntry( | 
|  | 657 | +				this.createVertexTemplateEntry( | 
| 641 | 658 | 'shadow=0;dashed=0;align=center;html=1;strokeWidth=1;shape=mxgraph.electrical.abstract.mux2;operation=demux;whiteSpace=wrap;', | 
| 642 | 659 | 80, 120, 'Demux', 'Demux', null, null, this.getTagsForStencil(gnmea, 'mux', dtmea).join(' ')), | 
| 643 |  | -			this.createVertexTemplateEntry(mea + 'operational_amp_1;', | 
|  | 660 | +				this.createVertexTemplateEntry(mea + 'operational_amp_1;', | 
| 644 | 661 | 98, 90, '', 'Operational Amp', null, null, this.getTagsForStencil(gnmea, 'operational_amp_1', dtmea).join(' ')), | 
| 645 |  | -			this.createVertexTemplateEntry(mea + 'operational_amp_2;', | 
|  | 662 | +				this.createVertexTemplateEntry(mea + 'operational_amp_2;', | 
| 646 | 663 | 98, 90, '', 'Operational Amp', null, null, this.getTagsForStencil(gnmea, 'operational_amp_2', dtmea).join(' ')), | 
| 647 |  | -			this.createVertexTemplateEntry(mea + 'ota_1;', | 
|  | 664 | +				this.createVertexTemplateEntry(mea + 'ota_1;', | 
| 648 | 665 | 100, 90, '', 'OTA', null, null, this.getTagsForStencil(gnmea, 'ota_1', dtmea).join(' ')), | 
| 649 |  | -			this.createVertexTemplateEntry(mea + 'ota_2;', | 
|  | 666 | +				this.createVertexTemplateEntry(mea + 'ota_2;', | 
| 650 | 667 | 100, 90, '', 'OTA', null, null, this.getTagsForStencil(gnmea, 'ota_2', dtmea).join(' ')), | 
| 651 |  | -			this.createVertexTemplateEntry(mea + 'ota_3;', | 
|  | 668 | +				this.createVertexTemplateEntry(mea + 'ota_3;', | 
| 652 | 669 | 100, 90, '', 'OTA', null, null, this.getTagsForStencil(gnmea, 'ota_3', dtmea).join(' ')), | 
| 653 |  | -			this.createVertexTemplateEntry(mea + 'quantizer;', | 
|  | 670 | +				this.createVertexTemplateEntry(mea + 'quantizer;', | 
| 654 | 671 | 52, 46, '', 'Quantizer', null, null, this.getTagsForStencil(gnmea, 'quantizer', dtmea).join(' ')), | 
| 655 |  | -			this.createVertexTemplateEntry(mea + 'delta;', | 
|  | 672 | +				this.createVertexTemplateEntry(mea + 'delta;', | 
| 656 | 673 | 50, 50, '', 'Delta', null, null, this.getTagsForStencil(gnmea, 'delta', dtmea).join(' ')), | 
| 657 |  | -			this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE + '=mxgraph.electrical.abstract.function;html=1;shadow=0;dashed=0;align=center;strokeWidth=1;fontSize=24', | 
|  | 674 | +				this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE + '=mxgraph.electrical.abstract.function;html=1;shadow=0;dashed=0;align=center;strokeWidth=1;fontSize=24', | 
| 658 | 675 | 50, 50, 'fn', 'Function', null, null, this.getTagsForStencil(gnmea, 'function', dtmea).join(' ')), | 
| 659 |  | -			this.createVertexTemplateEntry(mea + 'integrator;', | 
|  | 676 | +				this.createVertexTemplateEntry(mea + 'integrator;', | 
| 660 | 677 | 50, 50, '', 'Integrator', null, null, this.getTagsForStencil(gnmea, 'integrator', dtmea).join(' ')), | 
| 661 |  | -			this.createVertexTemplateEntry(mea + 'multiplier;', | 
|  | 678 | +				this.createVertexTemplateEntry(mea + 'multiplier;', | 
| 662 | 679 | 50, 50, '', 'Multiplier', null, null, this.getTagsForStencil(gnmea, 'multiplier', dtmea).join(' ')), | 
| 663 |  | -			this.createVertexTemplateEntry(mea + 'sum;', | 
|  | 680 | +				this.createVertexTemplateEntry(mea + 'sum;', | 
| 664 | 681 | 50, 50, '', 'Sum', null, null, this.getTagsForStencil(gnmea, 'sum', dtmea).join(' ')), | 
| 665 |  | -			this.createVertexTemplateEntry(mea + 'summation_point;', | 
|  | 682 | +				this.createVertexTemplateEntry(mea + 'summation_point;', | 
| 666 | 683 | 50, 50, '', 'Summation Point', null, null, this.getTagsForStencil(gnmea, 'summation_point', dtmea).join(' ')), | 
| 667 |  | -			this.createVertexTemplateEntry(mea + 'filter;', | 
|  | 684 | +				this.createVertexTemplateEntry(mea + 'filter;', | 
| 668 | 685 | 52, 46, '', 'Filter', null, null, this.getTagsForStencil(gnmea, 'filter', dtmea).join(' ')), | 
| 669 |  | -			this.createVertexTemplateEntry(s + '=mxgraph.electrical.logic_gates.bandpass_filter;', | 
|  | 686 | +				this.createVertexTemplateEntry(s + '=mxgraph.electrical.logic_gates.bandpass_filter;', | 
| 670 | 687 | 52, 46, '', 'Bandpass Filter', null, null, this.getTagsForStencil('mxgraph.electrical.logic_gates', 'bandpass_filter', '').join(' ')), | 
| 671 |  | -			this.createVertexTemplateEntry(s + '=mxgraph.electrical.logic_gates.highpass_filter;', | 
|  | 688 | +				this.createVertexTemplateEntry(s + '=mxgraph.electrical.logic_gates.highpass_filter;', | 
| 672 | 689 | 52, 46, '', 'Highpass Filter', null, null, this.getTagsForStencil('mxgraph.electrical.logic_gates', 'highpass_filter', '').join(' ')), | 
| 673 |  | -			this.createVertexTemplateEntry(s + '=mxgraph.electrical.logic_gates.lowpass_filter;', | 
|  | 690 | +				this.createVertexTemplateEntry(s + '=mxgraph.electrical.logic_gates.lowpass_filter;', | 
| 674 | 691 | 52, 46, '', 'Lowpass Filter', null, null, this.getTagsForStencil('mxgraph.electrical.logic_gates', 'lowpass_filter', '').join(' ')), | 
| 675 |  | -			this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE + '=mxgraph.electrical.abstract.thermistor_with_independent_integral_heater;html=1;shadow=0;dashed=0;strokeWidth=1;align=center;overflow=fill;fontSize=12;', | 
| 676 |  | -					100, 94.25, | 
|  | 692 | +				this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE + '=mxgraph.electrical.abstract.thermistor_with_independent_integral_heater;html=1;shadow=0;dashed=0;strokeWidth=1;align=center;overflow=fill;fontSize=12;', | 
|  | 693 | +					100, 94.25, | 
| 677 | 694 | '<table cellpadding="0" cellspacing="0" style="width:100%;height:100%;">' + | 
| 678 | 695 | '<tr height="45%">' + | 
| 679 | 696 | '<td align="center">\\temp\\</td>' + | 
| ... | ... | @@ -681,350 +698,362 @@ | 
| 681 | 698 | '<tr height="55%">' + | 
| 682 | 699 | '<td></td>' + | 
| 683 | 700 | '</tr>' + | 
| 684 |  | -					'</table>', | 
|  | 701 | +					'</table>', | 
| 685 | 702 | 'Thermistor With Independent Integral Heater', null, null, this.getTagsForStencil(gnmea, 'thermistor_with_independent_integral_heater', dtmea).join(' ')), | 
| 686 |  | -			this.createVertexTemplateEntry(mea + 'voltage_regulator;', | 
|  | 703 | +				this.createVertexTemplateEntry(mea + 'voltage_regulator;', | 
| 687 | 704 | 70, 58, '', 'Voltage Regulator', null, null, this.getTagsForStencil(gnmea, 'voltage_regulator', dtmea).join(' ')), | 
| 688 |  | -			this.createVertexTemplateEntry(mess + 'vss2;fontSize=24;flipV=1;', | 
| 689 |  | -					60, 40, | 
|  | 705 | +				this.createVertexTemplateEntry(mess + 'vss2;fontSize=24;flipV=1;', | 
|  | 706 | +					60, 40, | 
| 690 | 707 | 'V<sub>ss</sub>', 'Vss', null, null, this.getTagsForStencil(gnmess, 'vss', dtmess).join(' ')), | 
| 691 |  | -			this.createVertexTemplateEntry(mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=top;' + mxConstants.STYLE_VERTICAL_ALIGN + '=bottom;' + mxConstants.STYLE_SHAPE + '=mxgraph.electrical.signal_sources.vdd;shadow=0;dashed=0;align=center;strokeWidth=1;fontSize=24;html=1;flipV=1;', | 
| 692 |  | -					60, 40, | 
|  | 708 | +				this.createVertexTemplateEntry(mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=top;' + mxConstants.STYLE_VERTICAL_ALIGN + '=bottom;' + mxConstants.STYLE_SHAPE + '=mxgraph.electrical.signal_sources.vdd;shadow=0;dashed=0;align=center;strokeWidth=1;fontSize=24;html=1;flipV=1;', | 
|  | 709 | +					60, 40, | 
| 693 | 710 | 'V<sub>dd</sub>', 'Vdd', null, null, this.getTagsForStencil(gnmess, 'vdd', dtmess).join(' ')), | 
| 694 |  | -			this.createVertexTemplateEntry(mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=top;' + mxConstants.STYLE_VERTICAL_ALIGN + '=bottom;' + mxConstants.STYLE_SHAPE + '=mxgraph.electrical.signal_sources.current_flow;shadow=0;dashed=0;align=center;strokeWidth=1;fontSize=10;html=1;', | 
| 695 |  | -					70, 10, | 
| 696 |  | -					'5 mA',	'Current Flow', null, null, this.getTagsForStencil(gnmess, 'current_flow', dtmess).join(' ')), | 
| 697 |  | -			this.createVertexTemplateEntry(mxConstants.STYLE_LABEL_POSITION + '=right;' + mxConstants.STYLE_ALIGN + '=left;' + mxConstants.STYLE_SHAPE + '=mxgraph.electrical.signal_sources.voltage;shadow=0;dashed=0;strokeWidth=1;fontSize=10;html=1;', | 
| 698 |  | -					10, 70, | 
|  | 711 | +				this.createVertexTemplateEntry(mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=top;' + mxConstants.STYLE_VERTICAL_ALIGN + '=bottom;' + mxConstants.STYLE_SHAPE + '=mxgraph.electrical.signal_sources.current_flow;shadow=0;dashed=0;align=center;strokeWidth=1;fontSize=10;html=1;', | 
|  | 712 | +					70, 10, | 
|  | 713 | +					'5 mA', 'Current Flow', null, null, this.getTagsForStencil(gnmess, 'current_flow', dtmess).join(' ')), | 
|  | 714 | +				this.createVertexTemplateEntry(mxConstants.STYLE_LABEL_POSITION + '=right;' + mxConstants.STYLE_ALIGN + '=left;' + mxConstants.STYLE_SHAPE + '=mxgraph.electrical.signal_sources.voltage;shadow=0;dashed=0;strokeWidth=1;fontSize=10;html=1;', | 
|  | 715 | +					10, 70, | 
| 699 | 716 | '1.2 V', 'Voltage', null, null, this.getTagsForStencil(gnmess, 'voltage', dtmess).join(' ')), | 
| 700 |  | -			this.createVertexTemplateEntry(mess + 'equipotential;', | 
|  | 717 | +				this.createVertexTemplateEntry(mess + 'equipotential;', | 
| 701 | 718 | 90, 90, '', 'Equipotential', null, null, this.getTagsForStencil(gnmess, 'equipotential', dtmess).join(' ')), | 
| 702 |  | -			this.createVertexTemplateEntry(mess + 'protective_earth;', | 
|  | 719 | +				this.createVertexTemplateEntry(mess + 'protective_earth;', | 
| 703 | 720 | 25, 20, '', 'Equipotential', null, null, this.getTagsForStencil(gnmess, 'protective_earth', dtmess).join(' ')), | 
| 704 |  | -			this.createVertexTemplateEntry(mess + 'signal_ground;', | 
|  | 721 | +				this.createVertexTemplateEntry(mess + 'signal_ground;', | 
| 705 | 722 | 45, 30, '', 'Ground', null, null, this.getTagsForStencil(gnmess, 'signal_ground', dtmess).join(' ')), | 
| 706 |  | -			this.createVertexTemplateEntry(mem + 'chassis;', | 
|  | 723 | +				this.createVertexTemplateEntry(mem + 'chassis;', | 
| 707 | 724 | 65, 32, '', 'Chassis', null, null, this.getTagsForStencil(gnmess, 'chassis', dtmem).join(' ')), | 
| 708 |  | -			this.createVertexTemplateEntry(mem + 'circuit_breaker;', | 
|  | 725 | +				this.createVertexTemplateEntry(mem + 'circuit_breaker;', | 
| 709 | 726 | 100, 13, '', 'Circuit Breaker', null, null, this.getTagsForStencil(gnmess, 'circuit breaker', dtmem).join(' ')), | 
| 710 |  | -			this.createVertexTemplateEntry(mem + 'generic_component', | 
|  | 727 | +				this.createVertexTemplateEntry(mem + 'generic_component', | 
| 711 | 728 | 60, 60, '', 'Generic Component', null, null, this.getTagsForStencil(gnmess, 'generic component', dtmem).join(' ')), | 
| 712 |  | -			this.createVertexTemplateEntry(mem + 'permanent_magnet', | 
|  | 729 | +				this.createVertexTemplateEntry(mem + 'permanent_magnet', | 
| 713 | 730 | 20, 70, '', 'Permanent Magnet', null, null, this.getTagsForStencil(gnmess, 'permanent magnet', dtmem).join(' ')), | 
| 714 |  | -			this.createVertexTemplateEntry(mem + 'thermal_element', | 
|  | 731 | +				this.createVertexTemplateEntry(mem + 'thermal_element', | 
| 715 | 732 | 100, 32, '', 'Thermal Element', null, null, this.getTagsForStencil(gnmess, 'thermal element', dtmem).join(' ')), | 
| 716 |  | -			this.createVertexTemplateEntry(mem + 'igniter_plug2', | 
|  | 733 | +				this.createVertexTemplateEntry(mem + 'igniter_plug2', | 
| 717 | 734 | 72, 39, '', 'Igniter Plug', null, null, this.getTagsForStencil(gnmess, 'igniter plug', dtmem).join(' ')), | 
| 718 |  | -			this.createVertexTemplateEntry('shape=mxgraph.arrows2.arrow;verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;strokeWidth=1;dy=0;dx=10;notch=0;', | 
|  | 735 | +				this.createVertexTemplateEntry('shape=mxgraph.arrows2.arrow;verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;strokeWidth=1;dy=0;dx=10;notch=0;', | 
| 719 | 736 | 100, 30, '', 'Pickup Head', null, null, this.getTagsForStencil(gnmess, 'pickup head', dtmem).join(' ')), | 
| 720 |  | -			this.createVertexTemplateEntry(mem + 'squib_ignitor', | 
|  | 737 | +				this.createVertexTemplateEntry(mem + 'squib_ignitor', | 
| 721 | 738 | 100, 100, '', 'Squib Ignitor', null, null, this.getTagsForStencil(gnmess, 'squib ignitor', dtmem).join(' ')), | 
| 722 |  | -			this.createVertexTemplateEntry(mem + 'transducer', | 
|  | 739 | +				this.createVertexTemplateEntry(mem + 'transducer', | 
| 723 | 740 | 70, 60, '', 'Transducer', null, null, this.getTagsForStencil(gnmess, 'transducer', dtmem).join(' ')), | 
| 724 |  | -			this.createVertexTemplateEntry(mem + 'transducer_2', | 
|  | 741 | +				this.createVertexTemplateEntry(mem + 'transducer_2', | 
| 725 | 742 | 80, 100, '', 'Transducer', null, null, this.getTagsForStencil(gnmess, 'transducer', dtmem).join(' ')), | 
| 726 |  | -			this.createVertexTemplateEntry(mem + 'thermopile', | 
|  | 743 | +				this.createVertexTemplateEntry(mem + 'thermopile', | 
| 727 | 744 | 80, 82, '', 'Thermopile', null, null, this.getTagsForStencil(gnmess, 'thermopile', dtmem).join(' ')), | 
| 728 |  | -			this.createVertexTemplateEntry(mem + 'indicator', | 
|  | 745 | +				this.createVertexTemplateEntry(mem + 'indicator', | 
| 729 | 746 | 60, 60, '', 'Indicator', null, null, this.getTagsForStencil(gnmess, 'indicator', dtmem).join(' ')), | 
| 730 |  | -			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=strokeColor;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.surge_protector;', | 
|  | 747 | +				this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=strokeColor;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.surge_protector;', | 
| 731 | 748 | 70, 20, '', 'Surge Protector', null, null, this.getTagsForStencil(gnmess, 'surge protector', dtmem).join(' ')), | 
| 732 |  | -			this.createVertexTemplateEntry(mem + 'surge_protector_2;', | 
|  | 749 | +				this.createVertexTemplateEntry(mem + 'surge_protector_2;', | 
| 733 | 750 | 70, 24, '', 'Surge Protector', null, null, this.getTagsForStencil(gnmess, 'surge protector', dtmem).join(' ')), | 
| 734 |  | -			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;strokeWidth=1;shape=rect;', | 
|  | 751 | +				this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;strokeWidth=1;shape=rect;', | 
| 735 | 752 | 130, 50, '', 'Material', null, null, this.getTagsForStencil(gnmess, 'material', dtmem).join(' ')), | 
| 736 |  | -			this.createVertexTemplateEntry(mem + 'sensing_link_squib', | 
|  | 753 | +				this.createVertexTemplateEntry(mem + 'sensing_link_squib', | 
| 737 | 754 | 130, 40, '', 'Sensing Link Squib', null, null, this.getTagsForStencil(gnmess, 'sensing link squib', dtmem).join(' ')), | 
| 738 |  | -			this.createVertexTemplateEntry(mem + 'delay_element', | 
|  | 755 | +				this.createVertexTemplateEntry(mem + 'delay_element', | 
| 739 | 756 | 100, 100, '', 'Delay Element', null, null, this.getTagsForStencil(gnmess, 'delay_element', dtmem).join(' ')), | 
| 740 |  | -			this.createVertexTemplateEntry(mer + 'buzzer', | 
|  | 757 | +				this.createVertexTemplateEntry(mer + 'buzzer', | 
| 741 | 758 | 80, 50, '', 'Buzzer', null, null, this.getTagsForStencil(gnmess, 'buzzer', dtmer).join(' ')), | 
| 742 |  | -			this.createVertexTemplateEntry(mem + 'adapter', | 
|  | 759 | +				this.createVertexTemplateEntry(mem + 'adapter', | 
| 743 | 760 | 100, 40, '', 'Adapter', null, null, this.getTagsForStencil(gnmess, 'adapter', dtmer).join(' ')), | 
| 744 |  | -			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;strokeWidth=1;shape=ellipse;perimeter=ellipsePerimeter;', | 
|  | 761 | +				this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;strokeWidth=1;shape=ellipse;perimeter=ellipsePerimeter;', | 
| 745 | 762 | 15, 15, '', 'Circuit Terminal', null, null, this.getTagsForStencil(gnmess, 'circuit terminal', dtmer).join(' ')), | 
| 746 |  | -			this.createEdgeTemplateEntry('endArrow=open;html=1;strokeWidth=1;endFill=0;endSize=20;', | 
|  | 763 | +				this.createEdgeTemplateEntry('endArrow=open;html=1;strokeWidth=1;endFill=0;endSize=20;', | 
| 747 | 764 | 100, 0, '', 'M/F Contact', null, this.getTagsForStencil(gnmess, '', 'mf contact').join(' ')), | 
| 748 |  | -			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=strokeColor;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.mf_contact_2', | 
|  | 765 | +				this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=strokeColor;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.mf_contact_2', | 
| 749 | 766 | 100, 10, '', 'M/F Contact 2', null, null, this.getTagsForStencil(gnmess, 'mf contact', dtmer).join(' ')), | 
| 750 |  | -			this.createVertexTemplateEntry(mem + 'terminal_board', | 
|  | 767 | +				this.createVertexTemplateEntry(mem + 'terminal_board', | 
| 751 | 768 | 75, 150, '', 'Terminal Board', null, null, this.getTagsForStencil(gnmess, 'terminal board', dtmer).join(' ')), | 
| 752 |  | -			this.createVertexTemplateEntry(mem + 'cable_termination', | 
|  | 769 | +				this.createVertexTemplateEntry(mem + 'cable_termination', | 
| 753 | 770 | 100, 50, '', 'Cable Termination', null, null, this.getTagsForStencil(gnmess, 'cable termination', dtmer).join(' ')), | 
| 754 |  | -			this.createVertexTemplateEntry(mem + '2_conductor_jack', | 
|  | 771 | +				this.createVertexTemplateEntry(mem + '2_conductor_jack', | 
| 755 | 772 | 100, 50, '', '2-Conductor Jack', null, null, this.getTagsForStencil(gnmess, '2 conductor jack two', dtmer).join(' ')), | 
| 756 |  | -			this.createVertexTemplateEntry(mem + '3_conductor_jack', | 
|  | 773 | +				this.createVertexTemplateEntry(mem + '3_conductor_jack', | 
| 757 | 774 | 100, 50, '', '3-Conductor Jack', null, null, this.getTagsForStencil(gnmess, '3 conductor jack three', dtmer).join(' ')), | 
| 758 |  | -			this.createVertexTemplateEntry(mem + '2_conductor_plug', | 
|  | 775 | +				this.createVertexTemplateEntry(mem + '2_conductor_plug', | 
| 759 | 776 | 53, 24, '', '2-Conductor Plug', null, null, this.getTagsForStencil(gnmess, '2 conductor plug two', dtmer).join(' ')), | 
| 760 |  | -			this.createVertexTemplateEntry(mem + '3_conductor_plug', | 
|  | 777 | +				this.createVertexTemplateEntry(mem + '3_conductor_plug', | 
| 761 | 778 | 53, 24, '', '3 Conductor Plug', null, null, this.getTagsForStencil(gnmess, '3 conductor plug', dtmer).join(' ')), | 
| 762 |  | -			this.createVertexTemplateEntry(mem + 'normalled_jacks2', | 
|  | 779 | +				this.createVertexTemplateEntry(mem + 'normalled_jacks2', | 
| 763 | 780 | 230, 65, '', 'Normalled Jacks', null, null, this.getTagsForStencil(gnmess, 'normalled jacks', dtmer).join(' ')), | 
| 764 |  | -			this.createVertexTemplateEntry(mem + 'normalled_jack2', | 
|  | 781 | +				this.createVertexTemplateEntry(mem + 'normalled_jack2', | 
| 765 | 782 | 110, 65, '', 'Normalled Jack', null, null, this.getTagsForStencil(gnmess, 'normalled jack', dtmer).join(' ')), | 
| 766 |  | -			this.createVertexTemplateEntry(mem + 'coaxial_outside_conductor', | 
|  | 783 | +				this.createVertexTemplateEntry(mem + 'coaxial_outside_conductor', | 
| 767 | 784 | 300, 150, '', 'Coaxial Outside Conductor', null, null, this.getTagsForStencil(gnmess, 'coaxial outside conductor', dtmer).join(' ')), | 
| 768 |  | -			this.createVertexTemplateEntry(mem + 'coaxial_center_conductor', | 
|  | 785 | +				this.createVertexTemplateEntry(mem + 'coaxial_center_conductor', | 
| 769 | 786 | 300, 150, '', 'Coaxial Center Conductor', null, null, this.getTagsForStencil(gnmess, 'coaxial center conductor', dtmer).join(' ')), | 
| 770 |  | -			this.createVertexTemplateEntry(mem + 'large_d_connector', | 
|  | 787 | +				this.createVertexTemplateEntry(mem + 'large_d_connector', | 
| 771 | 788 | 375, 75, '', 'Large D Connector', null, null, this.getTagsForStencil(gnmess, 'large d connector', dtmer).join(' ')), | 
| 772 |  | -			this.createVertexTemplateEntry(mem + 'small_d_connector', | 
|  | 789 | +				this.createVertexTemplateEntry(mem + 'small_d_connector', | 
| 773 | 790 | 150, 75, '', 'Small D Connector', null, null, this.getTagsForStencil(gnmess, 'small d connector', dtmer).join(' ')), | 
| 774 |  | -			this.createVertexTemplateEntry(mem + 'c_header_connector', | 
|  | 791 | +				this.createVertexTemplateEntry(mem + 'c_header_connector', | 
| 775 | 792 | 200, 75, '', 'C Header Connector', null, null, this.getTagsForStencil(gnmess, 'c header connector', dtmer).join(' ')), | 
| 776 |  | -			this.createVertexTemplateEntry(mem + 'ac_out', | 
|  | 793 | +				this.createVertexTemplateEntry(mem + 'ac_out', | 
| 777 | 794 | 200, 100, '', 'AC Out', null, null, this.getTagsForStencil(gnmess, 'ac out alternate current', dtmer).join(' ')), | 
| 778 |  | -			this.createVertexTemplateEntry(mem + 'shielded_jack_plug', | 
|  | 795 | +				this.createVertexTemplateEntry(mem + 'shielded_jack_plug', | 
| 779 | 796 | 50, 100, '', 'Shielded Jack/Plug', null, null, this.getTagsForStencil(gnmess, 'shielded jack plug', dtmer).join(' ')), | 
| 780 |  | -			this.createVertexTemplateEntry(mem + 'coaxial_jack_plug', | 
|  | 797 | +				this.createVertexTemplateEntry(mem + 'coaxial_jack_plug', | 
| 781 | 798 | 50, 100, '', 'Coaxial Jack/Plug', null, null, this.getTagsForStencil(gnmess, 'coaxial jack/plug', dtmer).join(' ')), | 
| 782 |  | -			this.createVertexTemplateEntry(mem + 'f_m_2_conductor_1', | 
|  | 799 | +				this.createVertexTemplateEntry(mem + 'f_m_2_conductor_1', | 
| 783 | 800 | 100, 100, '', 'F/M 2 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')), | 
| 784 |  | -			this.createVertexTemplateEntry(mem + 'f_m_2_conductor_2', | 
|  | 801 | +				this.createVertexTemplateEntry(mem + 'f_m_2_conductor_2', | 
| 785 | 802 | 100, 100, '', 'F/M 2 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')), | 
| 786 |  | -			this.createVertexTemplateEntry(mem + 'f_m_2_conductor_3', | 
|  | 803 | +				this.createVertexTemplateEntry(mem + 'f_m_2_conductor_3', | 
| 787 | 804 | 100, 50, '', 'F/M 2 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')), | 
| 788 |  | -			this.createVertexTemplateEntry(mem + 'f_m_3_conductor_1', | 
|  | 805 | +				this.createVertexTemplateEntry(mem + 'f_m_3_conductor_1', | 
| 789 | 806 | 100, 100, '', 'F/M 3 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')), | 
| 790 |  | -			this.createVertexTemplateEntry(mem + 'f_m_3_conductor_2', | 
|  | 807 | +				this.createVertexTemplateEntry(mem + 'f_m_3_conductor_2', | 
| 791 | 808 | 100, 100, '', 'F/M 3 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')), | 
| 792 |  | -			this.createVertexTemplateEntry(mem + 'f_m_3_conductor_3', | 
|  | 809 | +				this.createVertexTemplateEntry(mem + 'f_m_3_conductor_3', | 
| 793 | 810 | 100, 100, '', 'F/M 3 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')), | 
| 794 |  | -			this.createVertexTemplateEntry(mem + 'f_m_3_conductor_4', | 
|  | 811 | +				this.createVertexTemplateEntry(mem + 'f_m_3_conductor_4', | 
| 795 | 812 | 100, 100, '', 'F/M 3 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')), | 
| 796 |  | -			this.createVertexTemplateEntry(mem + 'f_m_3_conductor_5', | 
|  | 813 | +				this.createVertexTemplateEntry(mem + 'f_m_3_conductor_5', | 
| 797 | 814 | 100, 100, '', 'F/M 3 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')), | 
| 798 |  | -			this.createVertexTemplateEntry(mem + 'plug_socket_connection', | 
|  | 815 | +				this.createVertexTemplateEntry(mem + 'plug_socket_connection', | 
| 799 | 816 | 20, 20, '', 'Plug-Socket Connection', null, null, this.getTagsForStencil(gnmess, 'Plug Socket Connection', dtmer).join(' ')) | 
| 800 |  | -		]); | 
| 801 |  | - | 
|  | 817 | +			]); | 
|  | 818 | + | 
| 802 | 819 | this.setCurrentSearchEntryLibrary('electrical', 'electrical\Audio'); | 
| 803 |  | - | 
| 804 |  | -		this.addPaletteFunctions('electrical\Audio', 'Electrical / Audio', false, | 
| 805 |  | -		[ | 
| 806 |  | -			this.createVertexTemplateEntry(mer + 'dipole;pointerEvents=1;', | 
|  | 820 | + | 
|  | 821 | +		// TODO ThingsKit i18n国际化 | 
|  | 822 | +		// this.addPaletteFunctions('electrical\Audio', 'Electrical / Audio', false, | 
|  | 823 | +		this.addPaletteFunctions('electrical\Audio', mxResources.get('Electrical / Audio'), false, | 
|  | 824 | +			[ | 
|  | 825 | +				this.createVertexTemplateEntry(mer + 'dipole;pointerEvents=1;', | 
| 807 | 826 | 100, 40, '', 'Dipole', null, null, this.getTagsForStencil(gnmer, 'dipole', dtmer).join(' ')), | 
| 808 |  | -			this.createVertexTemplateEntry(mer + 'electret_microphone;', | 
|  | 827 | +				this.createVertexTemplateEntry(mer + 'electret_microphone;', | 
| 809 | 828 | 70, 70, '', 'Electret Microphone', null, null, this.getTagsForStencil(gnmer, 'electret_microphone', dtmer).join(' ')), | 
| 810 |  | -			this.createVertexTemplateEntry(mer + 'microphone_1;', | 
|  | 829 | +				this.createVertexTemplateEntry(mer + 'microphone_1;', | 
| 811 | 830 | 70, 70, '', 'Microphone', null, null, this.getTagsForStencil(gnmer, 'microphone_1', dtmer).join(' ')), | 
| 812 |  | -			this.createVertexTemplateEntry(mer + 'microphone_2;', | 
|  | 831 | +				this.createVertexTemplateEntry(mer + 'microphone_2;', | 
| 813 | 832 | 42, 70, '', 'Microphone', null, null, this.getTagsForStencil(gnmer, 'microphone_2', dtmer).join(' ')), | 
| 814 |  | -			this.createVertexTemplateEntry(meem + 'piezo_sounder;pointerEvents=1;', | 
|  | 833 | +				this.createVertexTemplateEntry(meem + 'piezo_sounder;pointerEvents=1;', | 
| 815 | 834 | 100, 40, '', 'Piezo Sounder', null, null, this.getTagsForStencil(gnmeem, 'piezo_sounder', dtmeem).join(' ')), | 
| 816 |  | -			this.createVertexTemplateEntry(meem + 'buzzer;', | 
|  | 835 | +				this.createVertexTemplateEntry(meem + 'buzzer;', | 
| 817 | 836 | 45, 60, '', 'Buzzer', null, null, this.getTagsForStencil(gnmeem, 'buzzer', dtmeem).join(' ')), | 
| 818 |  | -			this.createVertexTemplateEntry(meem + 'loudspeaker;', | 
|  | 837 | +				this.createVertexTemplateEntry(meem + 'loudspeaker;', | 
| 819 | 838 | 25, 50, '', 'Loudspeaker', null, null, this.getTagsForStencil(gnmeem, 'loudspeaker', dtmeem).join(' ')), | 
| 820 |  | -			this.createVertexTemplateEntry(mer + 'headphones;pointerEvents=1;', | 
|  | 839 | +				this.createVertexTemplateEntry(mer + 'headphones;pointerEvents=1;', | 
| 821 | 840 | 66, 56, '', 'Headphones', null, null, this.getTagsForStencil(gnmer, 'headphones', dtmer).join(' ')), | 
| 822 |  | -			this.createVertexTemplateEntry(meem + 'bell;', | 
|  | 841 | +				this.createVertexTemplateEntry(meem + 'bell;', | 
| 823 | 842 | 47, 60, '', 'Bell', null, null, this.getTagsForStencil(gnmeem, 'bell', dtmeem).join(' ')) | 
| 824 |  | -		]); | 
| 825 |  | - | 
|  | 843 | +			]); | 
|  | 844 | + | 
| 826 | 845 | this.setCurrentSearchEntryLibrary('electrical', 'electrical\PlcLadder'); | 
| 827 |  | - | 
| 828 |  | -		this.addPaletteFunctions('electrical\PlcLadder', 'Electrical / PLC Ladder', false, | 
| 829 |  | -		[ | 
| 830 |  | -			this.createVertexTemplateEntry(mep + 'contact;', | 
|  | 846 | + | 
|  | 847 | +		// TODO ThingsKit i18n国际化 | 
|  | 848 | +		// this.addPaletteFunctions('electrical\PlcLadder', 'Electrical / PLC Ladder', false, | 
|  | 849 | +		this.addPaletteFunctions('electrical\PlcLadder', mxResources.get('Electrical / PLC Ladder'), false, | 
|  | 850 | +			[ | 
|  | 851 | +				this.createVertexTemplateEntry(mep + 'contact;', | 
| 831 | 852 | 50, 25, '', 'Contact', null, null, this.getTagsForStencil(gnmep, 'contact', dtmep).join(' ')), | 
| 832 |  | -			this.createVertexTemplateEntry(mep + 'not_contact;', | 
|  | 853 | +				this.createVertexTemplateEntry(mep + 'not_contact;', | 
| 833 | 854 | 50, 25, '', 'Contact (N)', null, null, this.getTagsForStencil(gnmep, 'not_contact', dtmep).join(' ')), | 
| 834 |  | -			this.createVertexTemplateEntry(mep + 'not_output_1;', | 
|  | 855 | +				this.createVertexTemplateEntry(mep + 'not_output_1;', | 
| 835 | 856 | 50, 25, '', 'Output (N)', null, null, this.getTagsForStencil(gnmep, 'not_output_1;', dtmep).join(' ')), | 
| 836 |  | -			this.createVertexTemplateEntry(mep + 'not_output_2;', | 
|  | 857 | +				this.createVertexTemplateEntry(mep + 'not_output_2;', | 
| 837 | 858 | 50, 25, '', 'Output (N)', null, null, this.getTagsForStencil(gnmep, 'not_output_2', dtmep).join(' ')), | 
| 838 |  | -			this.createVertexTemplateEntry(mep + 'output_1;', | 
|  | 859 | +				this.createVertexTemplateEntry(mep + 'output_1;', | 
| 839 | 860 | 50, 25, '', 'Output', null, null, this.getTagsForStencil(gnmep, 'output_1', dtmep).join(' ')), | 
| 840 |  | -			this.createVertexTemplateEntry(mep + 'output_2;', | 
|  | 861 | +				this.createVertexTemplateEntry(mep + 'output_2;', | 
| 841 | 862 | 50, 25, '', 'Output', null, null, this.getTagsForStencil(gnmep, 'output_2', dtmep).join(' ')) | 
| 842 |  | -		]); | 
| 843 |  | - | 
|  | 863 | +			]); | 
|  | 864 | + | 
| 844 | 865 | this.setCurrentSearchEntryLibrary('electrical', 'electrical\Optical'); | 
| 845 |  | - | 
| 846 |  | -		this.addPaletteFunctions('electrical\Optical', 'Electrical / Optical', false, | 
| 847 |  | -		[ | 
| 848 |  | -			this.createVertexTemplateEntry(meoe + '7_segment_display;pointerEvents=1;', | 
|  | 866 | + | 
|  | 867 | +		// TODO ThingsKit i18n国际化 | 
|  | 868 | +		// this.addPaletteFunctions('electrical\Optical', 'Electrical / Optical', false, | 
|  | 869 | +		this.addPaletteFunctions('electrical\Optical', mxResources.get('Electrical / Optical'), false, | 
|  | 870 | +			[ | 
|  | 871 | +				this.createVertexTemplateEntry(meoe + '7_segment_display;pointerEvents=1;', | 
| 849 | 872 | 74.7, 96.1, '', '7 Segment Display', null, null, this.getTagsForStencil(gnmeoe, '7_segment_display', dtmeoe).join(' ')), | 
| 850 |  | -			this.createVertexTemplateEntry(meoe + '7_segment_display_with_dp;pointerEvents=1;', | 
|  | 873 | +				this.createVertexTemplateEntry(meoe + '7_segment_display_with_dp;pointerEvents=1;', | 
| 851 | 874 | 79.8, 96.9, '', '7 Segment Display with DP', null, null, this.getTagsForStencil(gnmeoe, '7_segment_display_with_dp', dtmeoe).join(' ')), | 
| 852 |  | -			this.createVertexTemplateEntry(meoe + '9_segment_display;pointerEvents=1;', | 
|  | 875 | +				this.createVertexTemplateEntry(meoe + '9_segment_display;pointerEvents=1;', | 
| 853 | 876 | 74.7, 96.1, '', '9 Segment Display', null, null, this.getTagsForStencil(gnmeoe, '9_segment_display', dtmeoe).join(' ')), | 
| 854 |  | -			this.createVertexTemplateEntry(meoe + '9_segment_display_with_dp;pointerEvents=1;', | 
|  | 877 | +				this.createVertexTemplateEntry(meoe + '9_segment_display_with_dp;pointerEvents=1;', | 
| 855 | 878 | 79.8, 96.9, '', '9 Segment Display with DP', null, null, this.getTagsForStencil(gnmeoe, '9_segment_display_with_dp', dtmeoe).join(' ')), | 
| 856 |  | -			this.createVertexTemplateEntry(meoe + 'led_1;pointerEvents=1;', | 
|  | 879 | +				this.createVertexTemplateEntry(meoe + 'led_1;pointerEvents=1;', | 
| 857 | 880 | 100, 65, '', 'LED', null, null, this.getTagsForStencil(gnmeoe, 'led_1', dtmeoe).join(' ')), | 
| 858 |  | -			this.createVertexTemplateEntry(meoe + 'led_2;pointerEvents=1;', | 
|  | 881 | +				this.createVertexTemplateEntry(meoe + 'led_2;pointerEvents=1;', | 
| 859 | 882 | 100, 70, '', 'LED', null, null, this.getTagsForStencil(gnmeoe, 'led_2', dtmeoe).join(' ')), | 
| 860 |  | -			this.createVertexTemplateEntry(meoe + 'light-activated_scr;pointerEvents=1;', | 
|  | 883 | +				this.createVertexTemplateEntry(meoe + 'light-activated_scr;pointerEvents=1;', | 
| 861 | 884 | 100, 70, '', 'Light Activated SCR', null, null, this.getTagsForStencil(gnmeoe, 'light-activated_scr', dtmeoe).join(' ')), | 
| 862 |  | -			this.createVertexTemplateEntry(meoe + 'opto-coupler;', | 
|  | 885 | +				this.createVertexTemplateEntry(meoe + 'opto-coupler;', | 
| 863 | 886 | 99, 60, '', 'Opto-coupler', null, null, this.getTagsForStencil(gnmeoe, 'opto-coupler', dtmeoe).join(' ')), | 
| 864 |  | -			this.createVertexTemplateEntry(meoe + 'opto-transistor;', | 
|  | 887 | +				this.createVertexTemplateEntry(meoe + 'opto-transistor;', | 
| 865 | 888 | 100, 110, '', 'Opto-transistor', null, null, this.getTagsForStencil(gnmeoe, 'opto-transistor', dtmeoe).join(' ')), | 
| 866 |  | -			this.createVertexTemplateEntry(meoe + 'photodiode;pointerEvents=1;', | 
|  | 889 | +				this.createVertexTemplateEntry(meoe + 'photodiode;pointerEvents=1;', | 
| 867 | 890 | 100, 70, '', 'Photodiode', null, null, this.getTagsForStencil(gnmeoe, 'photodiode', dtmeoe).join(' ')), | 
| 868 |  | -			this.createVertexTemplateEntry(meoe + 'photo_resistor_1;', | 
|  | 891 | +				this.createVertexTemplateEntry(meoe + 'photo_resistor_1;', | 
| 869 | 892 | 100, 90, '', 'Photo Resistor', null, null, this.getTagsForStencil(gnmeoe, 'photo_resistor_1', dtmeoe).join(' ')), | 
| 870 |  | -			this.createVertexTemplateEntry(meoe + 'photo_resistor_2;pointerEvents=1;', | 
|  | 893 | +				this.createVertexTemplateEntry(meoe + 'photo_resistor_2;pointerEvents=1;', | 
| 871 | 894 | 100, 50, '', 'Photo Resistor', null, null, this.getTagsForStencil(gnmeoe, 'photo_resistor_2', dtmeoe).join(' ')), | 
| 872 |  | -			this.createVertexTemplateEntry(meoe + 'photo_resistor_3;', | 
|  | 895 | +				this.createVertexTemplateEntry(meoe + 'photo_resistor_3;', | 
| 873 | 896 | 100, 90, '', 'Photo Resistor', null, null, this.getTagsForStencil(gnmeoe, 'photo_resistor_3', dtmeoe).join(' ')), | 
| 874 |  | -			this.createVertexTemplateEntry(meoe + 'solar_cell;pointerEvents=1;', | 
|  | 897 | +				this.createVertexTemplateEntry(meoe + 'solar_cell;pointerEvents=1;', | 
| 875 | 898 | 100, 70, '', 'Solar Cell', null, null, this.getTagsForStencil(gnmeoe, 'solar_cell', dtmeoe).join(' ')) | 
| 876 |  | -		]); | 
|  | 899 | +			]); | 
| 877 | 900 |  | 
| 878 | 901 | this.setCurrentSearchEntryLibrary('electrical', 'electrical\VacuumTubes'); | 
| 879 |  | - | 
| 880 |  | -		this.addPaletteFunctions('electrical\VacuumTubes', 'Electrical / Vacuum Tubes', false, | 
| 881 |  | -		[ | 
| 882 |  | -			this.createVertexTemplateEntry(metd + 'diode;', | 
|  | 902 | + | 
|  | 903 | +		// TODO ThingsKit i18n国际化 | 
|  | 904 | +		// this.addPaletteFunctions('electrical\VacuumTubes', 'Electrical / Vacuum Tubes', false, | 
|  | 905 | +		this.addPaletteFunctions('electrical\VacuumTubes', mxResources.get('Electrical / Vacuum Tubes'), false, | 
|  | 906 | +			[ | 
|  | 907 | +				this.createVertexTemplateEntry(metd + 'diode;', | 
| 883 | 908 | 70, 77, '', 'Diode', null, null, this.getTagsForStencil(gnmetd, 'diode', dtmetd).join(' ')), | 
| 884 |  | -			this.createVertexTemplateEntry(metd + 'double_diode;', | 
|  | 909 | +				this.createVertexTemplateEntry(metd + 'double_diode;', | 
| 885 | 910 | 70, 77, '', 'Double Diode', null, null, this.getTagsForStencil(gnmetd, 'double_diode', dtmetd).join(' ')), | 
| 886 |  | -			this.createVertexTemplateEntry(metd + 'triode;', | 
|  | 911 | +				this.createVertexTemplateEntry(metd + 'triode;', | 
| 887 | 912 | 70, 77, '', 'Triode', null, null, this.getTagsForStencil(gnmetd, 'triode', dtmetd).join(' ')), | 
| 888 |  | -			this.createVertexTemplateEntry(metd + 'double_triode;', | 
|  | 913 | +				this.createVertexTemplateEntry(metd + 'double_triode;', | 
| 889 | 914 | 70, 77, '', 'Double Triode', null, null, this.getTagsForStencil(gnmetd, 'double_triode', dtmetd).join(' ')), | 
| 890 |  | -			this.createVertexTemplateEntry(metd + 'tetrode;', | 
|  | 915 | +				this.createVertexTemplateEntry(metd + 'tetrode;', | 
| 891 | 916 | 70, 77, '', 'Tetrode', null, null, this.getTagsForStencil(gnmetd, 'tetrode', dtmetd).join(' ')), | 
| 892 |  | -			this.createVertexTemplateEntry(metd + 'pentode;', | 
|  | 917 | +				this.createVertexTemplateEntry(metd + 'pentode;', | 
| 893 | 918 | 70, 77, '', 'Pentode', null, null, this.getTagsForStencil(gnmetd, 'pentode', dtmetd).join(' ')), | 
| 894 |  | -			this.createVertexTemplateEntry(metd + 'photocell;', | 
|  | 919 | +				this.createVertexTemplateEntry(metd + 'photocell;', | 
| 895 | 920 | 70, 87, '', 'Photocell', null, null, this.getTagsForStencil(gnmetd, 'photocell', dtmetd).join(' ')) | 
| 896 |  | -		]); | 
| 897 |  | - | 
|  | 921 | +			]); | 
|  | 922 | + | 
| 898 | 923 | this.setCurrentSearchEntryLibrary('electrical', 'electrical\Waveforms'); | 
| 899 |  | - | 
| 900 |  | -		this.addPaletteFunctions('electrical\Waveforms', 'Electrical / Waveforms', false, | 
| 901 |  | -		[ | 
| 902 |  | -			this.createVertexTemplateEntry(mew + 'pulse_1;', | 
|  | 924 | + | 
|  | 925 | +		// TODO ThingsKit i18n国际化 | 
|  | 926 | +		// this.addPaletteFunctions('electrical\Waveforms', 'Electrical / Waveforms', false, | 
|  | 927 | +		this.addPaletteFunctions('electrical\Waveforms', mxResources.get('Electrical / Waveforms'), false, | 
|  | 928 | +			[ | 
|  | 929 | +				this.createVertexTemplateEntry(mew + 'pulse_1;', | 
| 903 | 930 | 90, 90, '', 'Pulse', null, null, this.getTagsForStencil(gnmew, 'pulse_1', dtmew).join(' ')), | 
| 904 |  | -			this.createVertexTemplateEntry(mew + 'pulse_2;', | 
|  | 931 | +				this.createVertexTemplateEntry(mew + 'pulse_2;', | 
| 905 | 932 | 90, 90, '', 'Pulse', null, null, this.getTagsForStencil(gnmew, 'pulse_2', dtmew).join(' ')), | 
| 906 |  | -			this.createVertexTemplateEntry(mew + 'sawtooth;', | 
|  | 933 | +				this.createVertexTemplateEntry(mew + 'sawtooth;', | 
| 907 | 934 | 90, 40, '', 'Sawtooth', null, null, this.getTagsForStencil(gnmew, 'sawtooth', dtmew).join(' ')), | 
| 908 |  | -			this.createVertexTemplateEntry(mew + 'sine_wave;', | 
|  | 935 | +				this.createVertexTemplateEntry(mew + 'sine_wave;', | 
| 909 | 936 | 90, 66.18, '', 'Sine Wave', null, null, this.getTagsForStencil(gnmew, 'sine_wave', dtmew).join(' ')), | 
| 910 |  | -			this.createVertexTemplateEntry(mew + 'slow_square_wave;', | 
|  | 937 | +				this.createVertexTemplateEntry(mew + 'slow_square_wave;', | 
| 911 | 938 | 90, 80, '', 'Chopped Square Wave', null, null, this.getTagsForStencil(gnmew, 'slow_square_wave', dtmew).join(' ')), | 
| 912 |  | -			this.createVertexTemplateEntry(mew + 'square_wave;', | 
|  | 939 | +				this.createVertexTemplateEntry(mew + 'square_wave;', | 
| 913 | 940 | 90, 80, '', 'square_wave', null, null, this.getTagsForStencil(gnmew, 'square_wave', dtmew).join(' ')), | 
| 914 |  | -			this.createVertexTemplateEntry(mew + 'step_1;', | 
|  | 941 | +				this.createVertexTemplateEntry(mew + 'step_1;', | 
| 915 | 942 | 90, 90, '', 'Step', null, null, this.getTagsForStencil(gnmew, 'step_1', dtmew).join(' ')), | 
| 916 |  | -			this.createVertexTemplateEntry(mew + 'step_2;', | 
|  | 943 | +				this.createVertexTemplateEntry(mew + 'step_2;', | 
| 917 | 944 | 90, 90, '', 'Step', null, null, this.getTagsForStencil(gnmew, 'step_2', dtmew).join(' ')) | 
| 918 |  | -		]); | 
| 919 |  | - | 
|  | 945 | +			]); | 
|  | 946 | + | 
| 920 | 947 | this.setCurrentSearchEntryLibrary('electrical', 'electrical\RotMech'); | 
| 921 |  | - | 
| 922 |  | -		this.addPaletteFunctions('electrical\RotMech', 'Electrical / Rotating Equipment & Mechanical Functions', false, | 
| 923 |  | -		[ | 
| 924 |  | -			this.createVertexTemplateEntry('verticalLabelPosition=middle;shadow=0;dashed=0;align=center;html=1;verticalAlign=middle;strokeWidth=1;shape=ellipse;fontSize=32;perimeter=ellipsePerimeter;', | 
|  | 948 | + | 
|  | 949 | +		// TODO ThingsKit i18n国际化 | 
|  | 950 | +		// this.addPaletteFunctions('electrical\RotMech', 'Electrical / Rotating Equipment & Mechanical Functions', false, | 
|  | 951 | +		this.addPaletteFunctions('electrical\RotMech', mxResources.get('Electrical / Rotating Equipment & Mechanical Functions'), false, | 
|  | 952 | +			[ | 
|  | 953 | +				this.createVertexTemplateEntry('verticalLabelPosition=middle;shadow=0;dashed=0;align=center;html=1;verticalAlign=middle;strokeWidth=1;shape=ellipse;fontSize=32;perimeter=ellipsePerimeter;', | 
| 925 | 954 | 100, 100, 'M', 'Rotating Machine', null, null, this.getTagsForStencil(gnmerm, 'rotating machine', dtmerm).join(' ')), | 
| 926 |  | -			this.createVertexTemplateEntry(merm + 'armature;pointerEvents=1;', | 
|  | 955 | +				this.createVertexTemplateEntry(merm + 'armature;pointerEvents=1;', | 
| 927 | 956 | 100, 100, '', 'Armature', null, null, this.getTagsForStencil(gnmerm, 'armature', dtmerm).join(' ')), | 
| 928 |  | -			this.createVertexTemplateEntry(merm + 'field;pointerEvents=1;', | 
|  | 957 | +				this.createVertexTemplateEntry(merm + 'field;pointerEvents=1;', | 
| 929 | 958 | 90, 15, '', 'Field', null, null, this.getTagsForStencil(gnmerm, 'field', dtmerm).join(' ')), | 
| 930 |  | -			this.createVertexTemplateEntry(mem + 'permanent_magnet;pointerEvents=1;', | 
|  | 959 | +				this.createVertexTemplateEntry(mem + 'permanent_magnet;pointerEvents=1;', | 
| 931 | 960 | 20, 70, '', 'Permanent Magnet', null, null, this.getTagsForStencil(gnmerm, 'permanent magnet', dtmerm).join(' ')), | 
| 932 |  | -			this.createVertexTemplateEntry(merm + 'winding_connection;', | 
|  | 961 | +				this.createVertexTemplateEntry(merm + 'winding_connection;', | 
| 933 | 962 | 100, 100, '', 'Winding Connection', null, null, this.getTagsForStencil(gnmerm, 'winding connection', dtmerm).join(' ')), | 
| 934 |  | -			this.createVertexTemplateEntry(merm + 'synchro;', | 
|  | 963 | +				this.createVertexTemplateEntry(merm + 'synchro;', | 
| 935 | 964 | 80, 100, '', 'Synchro', null, null, this.getTagsForStencil(gnmerm, 'synchro', dtmerm).join(' ')), | 
| 936 |  | -			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;strokeWidth=1;shape=trapezoid;perimeter=none;', | 
|  | 965 | +				this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;strokeWidth=1;shape=trapezoid;perimeter=none;', | 
| 937 | 966 | 75, 25, '', 'Brake', null, null, this.getTagsForStencil(gnmerm, 'brake', dtmerm).join(' ')), | 
| 938 |  | -			this.createVertexTemplateEntry(merm + 'gearing;pointerEvents=1;', | 
|  | 967 | +				this.createVertexTemplateEntry(merm + 'gearing;pointerEvents=1;', | 
| 939 | 968 | 100, 64, '', 'Gearing', null, null, this.getTagsForStencil(gnmerm, 'gearing', dtmerm).join(' ')), | 
| 940 |  | -			this.createVertexTemplateEntry(merm + 'verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=strokeColor;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.rot_mech.rotation;', | 
|  | 969 | +				this.createVertexTemplateEntry(merm + 'verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=strokeColor;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.rot_mech.rotation;', | 
| 941 | 970 | 69, 54, '', 'Rotation', null, null, this.getTagsForStencil(gnmerm, 'rotation', dtmerm).join(' ')), | 
| 942 |  | -			this.createVertexTemplateEntry(merm + 'clutch;pointerEvents=1;', | 
|  | 971 | +				this.createVertexTemplateEntry(merm + 'clutch;pointerEvents=1;', | 
| 943 | 972 | 100, 20, '', 'Clutch', null, null, this.getTagsForStencil(gnmerm, 'clutch', dtmerm).join(' ')), | 
| 944 |  | -			this.createVertexTemplateEntry(merm + 'clutch_2;pointerEvents=1;', | 
|  | 973 | +				this.createVertexTemplateEntry(merm + 'clutch_2;pointerEvents=1;', | 
| 945 | 974 | 90, 60, '', 'Clutch', null, null, this.getTagsForStencil(gnmerm, 'clutch', dtmerm).join(' ')), | 
| 946 |  | -			this.createVertexTemplateEntry(merm + 'delayed_action;pointerEvents=1;', | 
|  | 975 | +				this.createVertexTemplateEntry(merm + 'delayed_action;pointerEvents=1;', | 
| 947 | 976 | 72, 50, '', 'Delayed Action', null, null, this.getTagsForStencil(gnmerm, 'delayed action', dtmerm).join(' ')), | 
| 948 |  | -			this.createVertexTemplateEntry(merm + 'manual_control;pointerEvents=1;', | 
|  | 977 | +				this.createVertexTemplateEntry(merm + 'manual_control;pointerEvents=1;', | 
| 949 | 978 | 50, 50, '', 'Manual Control', null, null, this.getTagsForStencil(gnmerm, 'manual control', dtmerm).join(' ')), | 
| 950 |  | -			this.createVertexTemplateEntry(merm + 'blocking_device;pointerEvents=1;', | 
|  | 979 | +				this.createVertexTemplateEntry(merm + 'blocking_device;pointerEvents=1;', | 
| 951 | 980 | 100, 15, '', 'Blocking Device', null, null, this.getTagsForStencil(gnmerm, 'blocking device', dtmerm).join(' ')), | 
| 952 |  | -			this.createVertexTemplateEntry(merm + 'latching_device;pointerEvents=1;', | 
|  | 981 | +				this.createVertexTemplateEntry(merm + 'latching_device;pointerEvents=1;', | 
| 953 | 982 | 100, 22, '', 'Latching Device', null, null, this.getTagsForStencil(gnmerm, 'latching device', dtmerm).join(' ')), | 
| 954 |  | -			this.createVertexTemplateEntry(merm + 'mechanical_interlock;pointerEvents=1;', | 
|  | 983 | +				this.createVertexTemplateEntry(merm + 'mechanical_interlock;pointerEvents=1;', | 
| 955 | 984 | 100, 30, '', 'Mechanical Interlock', null, null, this.getTagsForStencil(gnmerm, 'mechanical interlock', dtmerm).join(' ')), | 
| 956 |  | -			this.createVertexTemplateEntry(merm + 'automatic_return;pointerEvents=1;', | 
|  | 985 | +				this.createVertexTemplateEntry(merm + 'automatic_return;pointerEvents=1;', | 
| 957 | 986 | 100, 12, '', 'Automatic Return', null, null, this.getTagsForStencil(gnmerm, 'automatic_return', dtmerm).join(' ')), | 
| 958 |  | -			this.createVertexTemplateEntry(merm + 'detent;pointerEvents=1;', | 
|  | 987 | +				this.createVertexTemplateEntry(merm + 'detent;pointerEvents=1;', | 
| 959 | 988 | 100, 8, '', 'Detent', null, null, this.getTagsForStencil(gnmerm, 'detent', dtmerm).join(' ')) | 
| 960 |  | -		]); | 
| 961 |  | - | 
|  | 989 | +			]); | 
|  | 990 | + | 
| 962 | 991 | var sb = this; | 
| 963 | 992 | this.setCurrentSearchEntryLibrary('electrical', 'electrical\Transmission'); | 
| 964 | 993 |  | 
| 965 | 994 | var fns = | 
| 966 |  | -		[ | 
| 967 |  | -			this.createVertexTemplateEntry(metr + 'bus_width;pointerEvents=1;', | 
|  | 995 | +			[ | 
|  | 996 | +				this.createVertexTemplateEntry(metr + 'bus_width;pointerEvents=1;', | 
| 968 | 997 | 130, 156, '', 'Bus Width', null, null, this.getTagsForStencil(gnmetr, 'bus width', dtmetr).join(' ')), | 
| 969 |  | -			this.createVertexTemplateEntry(metr + 'line_concentrator;', | 
|  | 998 | +				this.createVertexTemplateEntry(metr + 'line_concentrator;', | 
| 970 | 999 | 130, 130, '', 'Line Concentrator', null, null, this.getTagsForStencil(gnmetr, 'line concentrator', dtmetr).join(' ')), | 
| 971 |  | -			this.createVertexTemplateEntry(metr + 'cable_group;pointerEvents=1;', | 
|  | 1000 | +				this.createVertexTemplateEntry(metr + 'cable_group;pointerEvents=1;', | 
| 972 | 1001 | 130, 130, '', 'Cable Group', null, null, this.getTagsForStencil(gnmetr, 'cable group', dtmetr).join(' ')), | 
| 973 |  | -			this.createVertexTemplateEntry(metr + 'overground_enclosure;', | 
|  | 1002 | +				this.createVertexTemplateEntry(metr + 'overground_enclosure;', | 
| 974 | 1003 | 130, 136, '', 'Overground Enclosure', null, null, this.getTagsForStencil(gnmetr, 'overground enclosure', dtmetr).join(' ')), | 
| 975 |  | -			this.createVertexTemplateEntry(metr + 'optical_fiber2;', | 
|  | 1004 | +				this.createVertexTemplateEntry(metr + 'optical_fiber2;', | 
| 976 | 1005 | 130, 80, '', 'Optical Fiber', null, null, this.getTagsForStencil(gnmetr, 'optical fiber', dtmetr).join(' ')), | 
| 977 |  | -			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;strokeWidth=1;shape=ellipse;', | 
|  | 1006 | +				this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;strokeWidth=1;shape=ellipse;', | 
| 978 | 1007 | 10, 10, '', 'Terminal', null, null, this.getTagsForStencil(gnmetr, 'terminal', dtmetr).join(' ')), | 
| 979 |  | -			this.createVertexTemplateEntry(metr + 'terminal_3_phase;pointerEvents=1;', | 
|  | 1008 | +				this.createVertexTemplateEntry(metr + 'terminal_3_phase;pointerEvents=1;', | 
| 980 | 1009 | 43, 10, '', 'Terminal 3 Phase', null, null, this.getTagsForStencil(gnmetr, 'Terminal 3 Phase', dtmetr).join(' ')), | 
| 981 |  | -			this.createVertexTemplateEntry('verticalLabelPosition=middle;shadow=0;dashed=0;align=center;html=1;verticalAlign=middle;strokeWidth=1;shape=ellipse;fontSize=50;fontStyle=1;perimeter=ellipsePerimeter;whiteSpace=wrap;', | 
|  | 1010 | +				this.createVertexTemplateEntry('verticalLabelPosition=middle;shadow=0;dashed=0;align=center;html=1;verticalAlign=middle;strokeWidth=1;shape=ellipse;fontSize=50;fontStyle=1;perimeter=ellipsePerimeter;whiteSpace=wrap;', | 
| 982 | 1011 | 130, 130, 'T', 'Terminal', null, null, this.getTagsForStencil(gnmetr, 'terminal', dtmetr).join(' ')), | 
| 983 |  | -			this.createVertexTemplateEntry(metr + 'line_cable;', | 
|  | 1012 | +				this.createVertexTemplateEntry(metr + 'line_cable;', | 
| 984 | 1013 | 130, 60, '', 'Line/Cable', null, null, this.getTagsForStencil(gnmetr, 'line cable', dtmetr).join(' ')), | 
| 985 |  | -			this.createVertexTemplateEntry(metr + 'anticreepage_device;pointerEvents=1;', | 
|  | 1014 | +				this.createVertexTemplateEntry(metr + 'anticreepage_device;pointerEvents=1;', | 
| 986 | 1015 | 130, 88, '', 'Anticreepage Device', null, null, this.getTagsForStencil(gnmetr, 'anticreepage device', dtmetr).join(' ')), | 
| 987 |  | -			this.createVertexTemplateEntry(metr + 'testPoint;', | 
|  | 1016 | +				this.createVertexTemplateEntry(metr + 'testPoint;', | 
| 988 | 1017 | 60, 130, '', 'Test Point', null, null, this.getTagsForStencil(gnmetr, 'test point', dtmetr).join(' ')), | 
| 989 |  | -			this.createEdgeTemplateEntry('shape=wire;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;sourcePerimeterSpacing=0;targetPerimeterSpacing=0;' + | 
| 990 |  | -				'endArrow=none;curved=0;rounded=0;strokeColor=#009900;dashed=1;fillColor=#ffff00;dashPattern=12 12;fixDash=1;startSize=6;endSize=6;', | 
| 991 |  | -				100, 0, '', 'Dashed Wire', null, this.getTagsForStencil(gnmess, '', 'cable wire dashed').join(' ')), | 
| 992 |  | -			this.createEdgeTemplateEntry('endArrow=none;html=1;strokeWidth=1;', | 
|  | 1018 | +				this.createEdgeTemplateEntry('shape=wire;edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;sourcePerimeterSpacing=0;targetPerimeterSpacing=0;' + | 
|  | 1019 | +					'endArrow=none;curved=0;rounded=0;strokeColor=#009900;dashed=1;fillColor=#ffff00;dashPattern=12 12;fixDash=1;startSize=6;endSize=6;', | 
|  | 1020 | +					100, 0, '', 'Dashed Wire', null, this.getTagsForStencil(gnmess, '', 'cable wire dashed').join(' ')), | 
|  | 1021 | +				this.createEdgeTemplateEntry('endArrow=none;html=1;strokeWidth=1;', | 
| 993 | 1022 | 100, 0, '', 'Transmission Path', null, this.getTagsForStencil(gnmess, '', 'transmission path').join(' ')), | 
| 994 |  | -			this.createEdgeTemplateEntry('endArrow=classicThin;html=1;strokeWidth=1;endSize=20;', | 
|  | 1023 | +				this.createEdgeTemplateEntry('endArrow=classicThin;html=1;strokeWidth=1;endSize=20;', | 
| 995 | 1024 | 100, 0, '', 'Direction of Flow', null, this.getTagsForStencil(gnmess, '', 'direction flow').join(' ')), | 
| 996 |  | -			this.createVertexTemplateEntry(metr + 'straightBus;', | 
|  | 1025 | +				this.createVertexTemplateEntry(metr + 'straightBus;', | 
| 997 | 1026 | 90, 130, '', 'Straight Bus', null, null, this.getTagsForStencil(gnmetr, 'straight bus', dtmetr).join(' ')), | 
| 998 |  | -			this.createVertexTemplateEntry('html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.bendArrow;dy=15;dx=38;notch=0;arrowHead=55;rounded=0;strokeWidth=1', | 
|  | 1027 | +				this.createVertexTemplateEntry('html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.bendArrow;dy=15;dx=38;notch=0;arrowHead=55;rounded=0;strokeWidth=1', | 
| 999 | 1028 | 130, 130, '', 'Elbow Bus', null, null, this.getTagsForStencil(gnmetr, 'elbow bus', dtmetr).join(' ')), | 
| 1000 |  | -			this.createVertexTemplateEntry('html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.bendArrow;dy=15;dx=38;notch=0;arrowHead=55;rounded=0;strokeWidth=1;flipH=1;', | 
|  | 1029 | +				this.createVertexTemplateEntry('html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.bendArrow;dy=15;dx=38;notch=0;arrowHead=55;rounded=0;strokeWidth=1;flipH=1;', | 
| 1001 | 1030 | 130, 130, '', 'Elbow Bus', null, null, this.getTagsForStencil(gnmetr, 'elbow bus', dtmetr).join(' ')), | 
| 1002 |  | -			this.createVertexTemplateEntry(metr + '2_line_bus;', | 
|  | 1031 | +				this.createVertexTemplateEntry(metr + '2_line_bus;', | 
| 1003 | 1032 | 130, 25, '', '2-Line Bus', null, null, this.getTagsForStencil(gnmetr, '2 two line bus', dtmetr).join(' ')), | 
| 1004 |  | -			this.createVertexTemplateEntry(metr + '3_line_bus;', | 
|  | 1033 | +				this.createVertexTemplateEntry(metr + '3_line_bus;', | 
| 1005 | 1034 | 130, 30, '', '3-Line Bus', null, null, this.getTagsForStencil(gnmetr, '3 three line bus', dtmetr).join(' ')), | 
| 1006 |  | -			this.createVertexTemplateEntry(metr + '4_line_bus;', | 
|  | 1035 | +				this.createVertexTemplateEntry(metr + '4_line_bus;', | 
| 1007 | 1036 | 130, 75, '', '4-Line Bus', null, null, this.getTagsForStencil(gnmetr, '3 three line bus', dtmetr).join(' ')), | 
| 1008 |  | -			this.createVertexTemplateEntry(metr + '8_line_bus;', | 
|  | 1037 | +				this.createVertexTemplateEntry(metr + '8_line_bus;', | 
| 1009 | 1038 | 130, 180, '', '8-Line Bus', null, null, this.getTagsForStencil(gnmetr, '3 three line bus', dtmetr).join(' ')), | 
| 1010 |  | -			this.createVertexTemplateEntry(metr + 'twoLineBusElbow;notch=25;', | 
|  | 1039 | +				this.createVertexTemplateEntry(metr + 'twoLineBusElbow;notch=25;', | 
| 1011 | 1040 | 120, 120, '', '2-Line Bus Elbow', null, null, this.getTagsForStencil(gnmetr, '2 two line bus elbow', dtmetr).join(' ')), | 
| 1012 |  | -			this.createVertexTemplateEntry(metr + 'threeLineBusElbow;notch=30;', | 
|  | 1041 | +				this.createVertexTemplateEntry(metr + 'threeLineBusElbow;notch=30;', | 
| 1013 | 1042 | 120, 120, '', '3-Line Bus Elbow', null, null, this.getTagsForStencil(gnmetr, '3 two line bus elbow', dtmetr).join(' ')), | 
| 1014 |  | -			this.createVertexTemplateEntry(metr + 'fourLineBusElbow;notch=75;', | 
|  | 1043 | +				this.createVertexTemplateEntry(metr + 'fourLineBusElbow;notch=75;', | 
| 1015 | 1044 | 120, 120, '', '4-Line Bus Elbow', null, null, this.getTagsForStencil(gnmetr, '4 two line bus elbow', dtmetr).join(' ')), | 
| 1016 |  | -			this.createVertexTemplateEntry(metr + 'eightLineBusElbow;notch=180;', | 
|  | 1045 | +				this.createVertexTemplateEntry(metr + 'eightLineBusElbow;notch=180;', | 
| 1017 | 1046 | 200, 200, '', '8-Line Bus Elbow', null, null, this.getTagsForStencil(gnmetr, '8 two line bus elbow', dtmetr).join(' ')) | 
| 1018 |  | -		]; | 
|  | 1047 | +			]; | 
| 1019 | 1048 |  | 
| 1020 |  | -		this.addPalette('electrical\Transmission', 'Electrical / Transmission Paths', false, mxUtils.bind(this, function(content) | 
| 1021 |  | -				{ | 
| 1022 |  | -					for (var i = 0; i < fns.length; i++) | 
| 1023 |  | -					{ | 
| 1024 |  | -						content.appendChild(fns[i](content)); | 
| 1025 |  | -					} | 
|  | 1049 | +		// TODO ThingsKit i18n国际化 | 
|  | 1050 | +		// this.addPalette('electrical\Transmission', 'Electrical / Transmission Paths', false, mxUtils.bind(this, function (content) { | 
|  | 1051 | +		this.addPalette('electrical\Transmission', mxResources.get('Electrical / Transmission Paths'), false, mxUtils.bind(this, function (content) { | 
|  | 1052 | +			for (var i = 0; i < fns.length; i++) { | 
|  | 1053 | +				content.appendChild(fns[i](content)); | 
|  | 1054 | +			} | 
| 1026 | 1055 | })); | 
| 1027 | 1056 | this.setCurrentSearchEntryLibrary(); | 
| 1028 | 1057 | }; | 
| 1029 |  | - | 
|  | 1058 | + | 
| 1030 | 1059 | })(); | 
... | ... |  |