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

来源:互联网 发布:mac腾讯视频文件位置 编辑:程序博客网 时间:2024/06/04 00:48
     做插件开发得时候碰到这个需求,需要把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空间中,有必要设置一下,基本上就这些了.



0 0
原创粉丝点击