昨天修改了service locator的一个bug:当group by 'Transport/Protocol' ,每个分组头部显示有问题。
找到问题原因的过程:
1-根据issue描述重现问题。因为出现问题的列是render为图片显示的列,由此推测bug出在分组后的render上。
2-根据1,要找出分组后在哪儿做的render。从点击menuItem “Group by this column” 后触发的事件设置断点。看触发了哪个函数。
3-使用2的方法没有找到触发的方法是哪个。后来在网上搜到一篇blog,里面用到GroupingView的setGroupRenderer()。顺藤摸瓜,找到使用groupRender的地方,以及将整个dataStore分组、render的逻辑。
4-debug,发现以Transport/Protocol分组时,这列的值却是空的。发现这一列本来没有值,界面上看到是将transport和protocol两列拼接起来的结果。
5-确定解决方案:在界面做render的时候,将Transport/Protocol这一列set上值('transport'+'protocol'),随后基于此列就可以做分组操作了。
接下来测改的结果就需要一些数据。因为我手头的service都是http+soap11的,测不出分组的效果。需要一些其他协议的服务。
使用sdudio创建soap12的service的过程:
主要是三个步骤:一是从wsdl文件创建service,二是给service创建job,三是导出service到runtime的deploy目录。
具体的操作过程我录了段视频:http://screencast.com/t/TV3DVQeo