您的位置:首页 > 编程语言 > Java开发

Eclipse工具插件开发之ComboFieldEditor设置值刷新的问题

2016-03-11 16:17 716 查看
     做插件开发得时候碰到这个需求,需要把ComboFieldEditor控件刷新值,也就是重新设置,网上没有找到好的办法,只能自己反编译改源码了,首先获取ComboFieldEditor对象,然后在需要刷新的时候调用,
@Overridepublic void onclick(List<String> data) {if(null!=combModel && null!=combDaoXML && null!=combController && null!=combDao && null!=combService && null!=combList && null!=combEditPage && null!=combDetailPage){String[][] list=new String[data.size()+1][2];list[0][0]="";list[0][1]="";for (int i = 0; i < data.size(); i++) {list[i+1][0]=data.get(i);list[i+1][1]=data.get(i);}combModel.addComboForValue(list,compModel);combDaoXML.addComboForValue(list,compDaoXML);combController.addComboForValue(list,compController);combDao.addComboForValue(list,compDao);combService.addComboForValue(list,compService);combList.addComboForValue(list,compList);combEditPage.addComboForValue(list,compEditPage);combDetailPage.addComboForValue(list,compDetailPage);}}
<pre name="code" class="java"><span style="white-space:pre">	</span>addComboForValue这个方法是我在源码里面自己写得一个方法,<pre name="code" class="java">public void addComboForValue(String[][] value,Composite comp){fEntryNamesAndValues =value;for (int i = 0; i < value.length; i++) {boolean isContains =Arrays.asList(fEntryNamesAndValues).contains(value[i][0]);if(!isContains){fCombo.add(value[i][0],i);}}if (value.length > 0) {fCombo.setText(value[0][0]);}clearEmpty();}public void clearEmpty(){for (int i = 0; i < fCombo.getItemCount(); i++) {if(fCombo.getItem(i).equals("")){fCombo.remove(i);}}}
<span style="white-space:pre">	</span><pre name="code" class="java">fEntryNamesAndValues这个变量是在点击ok按钮之后取里面值进行保存在eclipse空间中,有必要设置一下,基本上就这些了.

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: