1
/*
2
* @author: Lilf
3
* Description: ExtJS中的面向对象设计,组件化变成思想
4
*/
5
/***************************扩展VTypes类,增加年龄的验证****************************/
6
Ext.apply(Ext.form.VTypes, {
7
"age": function(_v){
8
if (/^\d+$/.test(_v)) {
9
var intExp = parseInt(_v);
10
if (intExp < 200)
11
return true;
12
}
13
return false;
14
},
15
ageText: "请输入正确的年龄格式,如:23"
16
});
17
/***************************继承自FormPanel的表单组件,用来构件Window***************************/
18
PersonInfoFormPanel = Ext.extend(Ext.form.FormPanel, {
19
constructor: function(){
20
PersonInfoFormPanel.superclass.constructor.apply(this, [{
21
baseCls: "x-plain",
22
buttonAlign: "right",
23
labelWidth: 30,
24
defaultType: "textfield",
25
defaults: {
26
anchor: "95%",
27
labelStyle: "text-align:right"
28
},
29
items: [{
30
fieldLabel: "姓名",
31
name: "name"
32
}, {
33
fieldLabel: "年龄",
34
name: "age",
35
vtype: "age"//验证年龄(通过vtype类型来验证)
36
}, {
37
xtype: "combo",
38
mode: "local",//本地数据
39
readOnly: true,
40
fieldLabel: "性别",
41
displayField: "sex",//显示下拉框的内容
42
triggerAction: "all",//在选择时,显示所有的项
43
value: "男",//默认值
44
store: new Ext.data.SimpleStore({
45
fields: ["sex"],
46
data: [["男"], ["女"]]
47
}),
48
name: "sex"//绑定字段
49
}]
50
51
52
}])
53
},
54
//---以下为PersonInfoFormPanel类对外提供的方法---
55
getValues: function(){
56
if (this.getForm().isValid())
57
return new Ext.data.Record(this.getForm().getValues());
58
else
59
throw new Error("验证没有通过");//自定义异常
60
},
61
setValues: function(_r){
62
this.getForm().loadRecord(_r);
63
},
64
reset: function(){
65
this.getForm().reset();
66
}
67
68
69
});
70
/*************继承自Window的基类,insertWindow与updateWindow都由此继承****************/
71
baseWindow = Ext.extend(Ext.Window, {
72
form: null,
73
constructor: function(){
74
this.form = new PersonInfoFormPanel();//实例化PersonInfoFormPanel类
75
baseWindow.superclass.constructor.apply(this, [{
76
plain: true,
77
350,
78
//title: "新增人员",
79
modal: true,
80
resizable: false,
81
closeAction: "hide",
82
defaults: {
83
style: "padding:5px"
84
},
85
items: this.form,
86
buttons: [{
87
text: "确 定",
88
handler: this.onSubmitClick,//提交事件调用
89
scope: this
90
}, {
91
text: "取 消",
92
handler: this.onCancelClick,//取消事件调用
93
scope: this
94
95
}]
96
}]);
97
//给insertWindow对象添加事件(事件冒泡)
98
this.addEvents("submit");
99
},
100
//提交事件处理函数
101
onSubmitClick: function(){
102
try {
103
//发布事件
104
this.fireEvent("submit", this, this.form.getValues());//调用PersonInfoFormPanel类中自定义的方法getValues
105
this.close();
106
107
}
108
catch (_err) {
109
Ext.Msg.alert("系统提示", _err.description);//扑捉自定义错误或异常
110
}
111
},
112
//取消事件处理函数
113
onCancelClick: function(){
114
this.close();
115
},
116
//重置与隐藏事件处理函数
117
close: function(){
118
this.form.reset();
119
this.hide();
120
}
121
122
});
123
/******************insertWindow类****************************/
124
insertWindow = Ext.extend(baseWindow, {
125
title: "新增人员"
126
});
127
/****************updateWindow类******************************/
128
updateWindow = Ext.extend(baseWindow, {
129
title: "修改人员",
130
load: function(_r){
131
this.form.setValues(_r);
132
}
133
});
134
/*******根据上面组件创建新的GridPanel类,它就像我们根据不同的零件设计出来的汽车************
135
* ExtJs自定义PersonListGridPanel类
136
* 该类继承自GridPanel[使用Ext.extend(superClass,override Object)方法实现继承],
137
* 并override了该类的构造函�hu数
138
* 构造函数内部继承自GridPanel的构造函数[apply(this,arguments)实现继承]
139
* 该类实现了如何对外部公布一个事�件
140
* 在构造函数中添加一个事件[this.addEvents("事件名称")]
141
* 然后使用this.fireEvent("事件名称",参数)来发布此事�件
142
* 最后在客户端调用的时候来订阅该事�jian件
143
*/
144
PersonListGridPanel = Ext.extend(Ext.grid.GridPanel, {
145
_window: null,
146
_updateWin: null,
147
constructor: function(_url){
148
this._window = new insertWindow();//insertWindow对象引用
149
this._updateWin = new updateWindow();//updateWindow对象引用
150
PersonListGridPanel.superclass.constructor.apply(this, [{
151
renderTo: Ext.getBody(),
152
550,
153
height: 200,
154
frame: true,
155
layout: "form",
156
//工具栏
157
tbar: [{
158
text: "add",
159
handler: function(){
160
this._window.show();
161
},
162
scope: this
163
}, "-", {
164
text: "update",
165
handler: function(){
166
this._updateWin.show();
167
try {
168
this._updateWin.load(this.getSelected());
169
}
170
171
172
catch (_err) {
173
Ext.Msg.alert("系统提示", _err.description);
174
this._updateWin.close();
175
}
176
},
177
scope: this
178
}, "-", {
179
text: "delete",
180
handler: this.onRemovePerson,
181
scope: this
182
}],
183
enableColumnMove: false,
184
//列模板
185
columns: [{
186
header: "Name",
187
menuDisabled: true,
188
dataIndex: "name"
189
}, {
190
header: "Age",
191
menuDisabled: true,
192
dataIndex: "age"
193
}, {
194
header: "Sex",
195
menuDisabled: true,
196
dataIndex: "sex"
197
}],
198
//数据源
199
store: new Ext.data.JsonStore({
200
autoLoad: true,
201
url: _url,
202
fields: ["name", "age", "sex"]
203
}),
204
//选中模板
205
selModel: new Ext.grid.RowSelectionModel({
206
singleSelect: true,
207
listeners: {
208
"rowselect": {
209
fn: this.onRowSelected,
210
scope: this
211
}
212
}
213
})
214
215
}]);
216
//添加事件
217
this.addEvents("rowselect");
218
//事件订阅
219
this._window.on("submit", this.onInsertWinSubmit, this);
220
this._updateWin.on("submit", this.onUpdateWinSubmit, this);
221
},
222
//----- 以下为自定义方法---------
223
//获得选中的记录
224
getSelected: function(){
225
var _sm = this.getSelectionModel();
226
if (_sm.getCount() == 0)
227
throw new Error("你没有选中任何记录,请选择一条记录后重试
");
228
return _sm.getSelected();
229
},
230
//插入一条记录
231
insert: function(_r){
232
this.getStore().add(_r);
233
},
234
//更新选中的记录
235
update: function(_r){
236
try {
237
var _rs = this.getSelected();
238
var _data = _rs.data;
239
for (var _i in _data) {
240
_rs.set(_i, _r.get(_i));
241
};
242
_rs.commit();
243
}
244
catch (_err) {
245
246
}
247
248
},
249
//删除选中的记录
250
remove: function(){
251
try {
252
var _rs = this.getSelected();
253
Ext.Msg.confirm("系统提示", "你确定删除吗?", function(_btn){
254
if (_btn == "yes")
255
this.getStore().remove(_rs);
256
}, this);
257
}
258
catch (_err) {
259
Ext.Msg.alert("系统提示", _err.description);
260
}
261
},
262
//-------以下为自定义事件处理函数------------
263
//添加事件
264
onInsertWinSubmit: function(_win, _r){
265
this.insert(_r);
266
},
267
//修改事件
268
onUpdateWinSubmit: function(_win, _r){
269
this.update(_r);
270
},
271
//删除事件
272
onRemovePerson: function(){
273
this.remove();
274
},
275
//选中事件
276
onRowSelected: function(_sel, _index, _r){
277
this.fireEvent("rowselect", _r);//发布事件
278
}
279
280
})
281![](/Images/OutliningIndicators/None.gif)
282![](/Images/OutliningIndicators/None.gif)
283![](/Images/OutliningIndicators/None.gif)
284![](/Images/OutliningIndicators/None.gif)
285![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
2
![](/Images/OutliningIndicators/InBlock.gif)
3
![](/Images/OutliningIndicators/InBlock.gif)
4
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
5
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
6
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
7
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
8
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
17
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
18
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
19
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
20
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
29
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/InBlock.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/InBlock.gif)
44
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/InBlock.gif)
47
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
48
![](/Images/OutliningIndicators/InBlock.gif)
49
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
50
![](/Images/OutliningIndicators/InBlock.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
53
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
54
![](/Images/OutliningIndicators/InBlock.gif)
55
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
56
![](/Images/OutliningIndicators/InBlock.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/InBlock.gif)
59
![](/Images/OutliningIndicators/InBlock.gif)
60
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
61
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
62
![](/Images/OutliningIndicators/InBlock.gif)
63
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
64
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
67
![](/Images/OutliningIndicators/InBlock.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
70
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
71
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
72
![](/Images/OutliningIndicators/InBlock.gif)
73
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
74
![](/Images/OutliningIndicators/InBlock.gif)
75
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
76
![](/Images/OutliningIndicators/InBlock.gif)
77
![](/Images/OutliningIndicators/InBlock.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/InBlock.gif)
80
![](/Images/OutliningIndicators/InBlock.gif)
81
![](/Images/OutliningIndicators/InBlock.gif)
82
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
83
![](/Images/OutliningIndicators/InBlock.gif)
84
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
85
![](/Images/OutliningIndicators/InBlock.gif)
86
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
87
![](/Images/OutliningIndicators/InBlock.gif)
88
![](/Images/OutliningIndicators/InBlock.gif)
89
![](/Images/OutliningIndicators/InBlock.gif)
90
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
91
![](/Images/OutliningIndicators/InBlock.gif)
92
![](/Images/OutliningIndicators/InBlock.gif)
93
![](/Images/OutliningIndicators/InBlock.gif)
94
![](/Images/OutliningIndicators/InBlock.gif)
95
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
96
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
97
![](/Images/OutliningIndicators/InBlock.gif)
98
![](/Images/OutliningIndicators/InBlock.gif)
99
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
100
![](/Images/OutliningIndicators/InBlock.gif)
101
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
102
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
103
![](/Images/OutliningIndicators/InBlock.gif)
104
![](/Images/OutliningIndicators/InBlock.gif)
105
![](/Images/OutliningIndicators/InBlock.gif)
106
![](/Images/OutliningIndicators/InBlock.gif)
107
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
108
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
109
![](/Images/OutliningIndicators/InBlock.gif)
110
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
111
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
112
![](/Images/OutliningIndicators/InBlock.gif)
113
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
114
![](/Images/OutliningIndicators/InBlock.gif)
115
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
116
![](/Images/OutliningIndicators/InBlock.gif)
117
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
118
![](/Images/OutliningIndicators/InBlock.gif)
119
![](/Images/OutliningIndicators/InBlock.gif)
120
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
121
![](/Images/OutliningIndicators/InBlock.gif)
122
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
123
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
124
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
125
![](/Images/OutliningIndicators/InBlock.gif)
126
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
127
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
128
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
129
![](/Images/OutliningIndicators/InBlock.gif)
130
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
131
![](/Images/OutliningIndicators/InBlock.gif)
132
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
133
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
134
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
135
![](/Images/OutliningIndicators/InBlock.gif)
136
![](/Images/OutliningIndicators/InBlock.gif)
137
![](/Images/OutliningIndicators/InBlock.gif)
138
![](/Images/OutliningIndicators/InBlock.gif)
139
![](/Images/OutliningIndicators/InBlock.gif)
140
![](/Images/OutliningIndicators/InBlock.gif)
141
![](/Images/OutliningIndicators/InBlock.gif)
142
![](/Images/OutliningIndicators/InBlock.gif)
143
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
144
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
145
![](/Images/OutliningIndicators/InBlock.gif)
146
![](/Images/OutliningIndicators/InBlock.gif)
147
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
148
![](/Images/OutliningIndicators/InBlock.gif)
149
![](/Images/OutliningIndicators/InBlock.gif)
150
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
151
![](/Images/OutliningIndicators/InBlock.gif)
152
![](/Images/OutliningIndicators/InBlock.gif)
153
![](/Images/OutliningIndicators/InBlock.gif)
154
![](/Images/OutliningIndicators/InBlock.gif)
155
![](/Images/OutliningIndicators/InBlock.gif)
156
![](/Images/OutliningIndicators/InBlock.gif)
157
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
158
![](/Images/OutliningIndicators/InBlock.gif)
159
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
160
![](/Images/OutliningIndicators/InBlock.gif)
161
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
162
![](/Images/OutliningIndicators/InBlock.gif)
163
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
164
![](/Images/OutliningIndicators/InBlock.gif)
165
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
166
![](/Images/OutliningIndicators/InBlock.gif)
167
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
168
![](/Images/OutliningIndicators/InBlock.gif)
169
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
170
![](/Images/OutliningIndicators/InBlock.gif)
171
![](/Images/OutliningIndicators/InBlock.gif)
172
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
173
![](/Images/OutliningIndicators/InBlock.gif)
174
![](/Images/OutliningIndicators/InBlock.gif)
175
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
176
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
177
![](/Images/OutliningIndicators/InBlock.gif)
178
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
179
![](/Images/OutliningIndicators/InBlock.gif)
180
![](/Images/OutliningIndicators/InBlock.gif)
181
![](/Images/OutliningIndicators/InBlock.gif)
182
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
183
![](/Images/OutliningIndicators/InBlock.gif)
184
![](/Images/OutliningIndicators/InBlock.gif)
185
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
186
![](/Images/OutliningIndicators/InBlock.gif)
187
![](/Images/OutliningIndicators/InBlock.gif)
188
![](/Images/OutliningIndicators/InBlock.gif)
189
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
190
![](/Images/OutliningIndicators/InBlock.gif)
191
![](/Images/OutliningIndicators/InBlock.gif)
192
![](/Images/OutliningIndicators/InBlock.gif)
193
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
194
![](/Images/OutliningIndicators/InBlock.gif)
195
![](/Images/OutliningIndicators/InBlock.gif)
196
![](/Images/OutliningIndicators/InBlock.gif)
197
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
198
![](/Images/OutliningIndicators/InBlock.gif)
199
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
200
![](/Images/OutliningIndicators/InBlock.gif)
201
![](/Images/OutliningIndicators/InBlock.gif)
202
![](/Images/OutliningIndicators/InBlock.gif)
203
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
204
![](/Images/OutliningIndicators/InBlock.gif)
205
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
206
![](/Images/OutliningIndicators/InBlock.gif)
207
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
208
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
209
![](/Images/OutliningIndicators/InBlock.gif)
210
![](/Images/OutliningIndicators/InBlock.gif)
211
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
212
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
213
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
214
![](/Images/OutliningIndicators/InBlock.gif)
215
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
216
![](/Images/OutliningIndicators/InBlock.gif)
217
![](/Images/OutliningIndicators/InBlock.gif)
218
![](/Images/OutliningIndicators/InBlock.gif)
219
![](/Images/OutliningIndicators/InBlock.gif)
220
![](/Images/OutliningIndicators/InBlock.gif)
221
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
222
![](/Images/OutliningIndicators/InBlock.gif)
223
![](/Images/OutliningIndicators/InBlock.gif)
224
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
225
![](/Images/OutliningIndicators/InBlock.gif)
226
![](/Images/OutliningIndicators/InBlock.gif)
227
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/dot.gif)
228
![](/Images/OutliningIndicators/InBlock.gif)
229
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
230
![](/Images/OutliningIndicators/InBlock.gif)
231
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
232
![](/Images/OutliningIndicators/InBlock.gif)
233
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
234
![](/Images/OutliningIndicators/InBlock.gif)
235
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
236
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
237
![](/Images/OutliningIndicators/InBlock.gif)
238
![](/Images/OutliningIndicators/InBlock.gif)
239
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
240
![](/Images/OutliningIndicators/InBlock.gif)
241
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
242
![](/Images/OutliningIndicators/InBlock.gif)
243
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
244
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
245
![](/Images/OutliningIndicators/InBlock.gif)
246
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
247
![](/Images/OutliningIndicators/InBlock.gif)
248
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
249
![](/Images/OutliningIndicators/InBlock.gif)
250
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
251
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
252
![](/Images/OutliningIndicators/InBlock.gif)
253
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
254
![](/Images/OutliningIndicators/InBlock.gif)
255
![](/Images/OutliningIndicators/InBlock.gif)
256
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
257
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
258
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
259
![](/Images/OutliningIndicators/InBlock.gif)
260
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
261
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
262
![](/Images/OutliningIndicators/InBlock.gif)
263
![](/Images/OutliningIndicators/InBlock.gif)
264
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
265
![](/Images/OutliningIndicators/InBlock.gif)
266
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
267
![](/Images/OutliningIndicators/InBlock.gif)
268
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
269
![](/Images/OutliningIndicators/InBlock.gif)
270
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
271
![](/Images/OutliningIndicators/InBlock.gif)
272
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
273
![](/Images/OutliningIndicators/InBlock.gif)
274
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
275
![](/Images/OutliningIndicators/InBlock.gif)
276
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
277
![](/Images/OutliningIndicators/InBlock.gif)
278
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
279
![](/Images/OutliningIndicators/InBlock.gif)
280
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
281
![](/Images/OutliningIndicators/None.gif)
282
![](/Images/OutliningIndicators/None.gif)
283
![](/Images/OutliningIndicators/None.gif)
284
![](/Images/OutliningIndicators/None.gif)
285
![](/Images/OutliningIndicators/None.gif)