Eclipse插件开发 swt ComboBoxCellEditor CCombo 下拉框高度

简介: 效果图:     代码如下 bindingPageTableViewer.setCellModifier(new ICellModifier() { public boolean canModify(Object element, Stri...
效果图:
 
 
代码如下
bindingPageTableViewer.setCellModifier(new ICellModifier() {
   
            public boolean canModify(Object element, String property) {
                IBindingPageModel bindingPageModel = (IBindingPageModel) element;
                if (property.equals(bindingPageColumnNameArray[3])) {
                    String[] items = null;
                    if (null == bindingPageModel.getBindingPage()
                            || bindingPageModel.getBindingPage() instanceof IFormPageModel) {
                        items = getPageNameArray(0);
                    } else {
                        items = getPageNameArray(1);
                    }
                    for(int i=0;i<items.length;i++){
                        System.out.println("items : " + items[i]);
                    }
                        
                    cellEditors[3] = new ComboBoxCellEditor(table, items,
                            SWT.READ_ONLY   );
                       
                                        //下拉框高度设置,根据items数组除以2,进行设置
                    CCombo cc = (CCombo)cellEditors[3].getControl();
                    cc.setVisibleItemCount(items.length/2);
                       
                       
                       
                }
   
                return true;
            }
   
            public Object getValue(Object element, String property) {
                IBindingPageModel model = (IBindingPageModel) element;
   
                if (property.equals(bindingPageColumnNameArray[2])) {
                    if (null == model.getBindingPage()
                            || model.getBindingPage() instanceof IFormPageModel) {
                        return new Integer(0);
                    } else {
                        return new Integer(1);
                    }
                }
                if (property.equals(bindingPageColumnNameArray[3])) {
                    String[] pageItems = ((ComboBoxCellEditor) cellEditors[3])
                            .getItems();
                    System.out.println("cellEditors[3] : " + cellEditors[3]);
                    String pageName = "";
                    if (null != model.getBindingPage()) {
                        pageName = model.getBindingPage().getName();
                        System.out.println("pageName:" + pageName);
                    }
                    for (int i = 0, length = pageItems.length; i < length; i++) {
                        if (pageItems[i].equals(pageName)) {
                            return new Integer(i);
                        }
                    }
                    return new Integer(0);
                }
                return null;
            }
   
            public void modify(Object element, String property, Object value) {
                IBindingPageModel model = null;
                IPageModel pageModel = null;
                if (element instanceof Item)
                    model = (IBindingPageModel) ((Item) element).getData();
   
                if (property.equals(bindingPageColumnNameArray[2])) {
                    int pageTypeValue = ((Integer) value).intValue();
                    ComboBoxCellEditor pageCellEditor = (ComboBoxCellEditor) cellEditors[3];
                    String[] pageNameArray = getPageNameArray(pageTypeValue);
                    pageCellEditor.setItems(pageNameArray);
   
                    if (pageTypeValue == 0
                            && !(model.getBindingPage() instanceof IFormPageModel)) {
                        if (pageNameArray.length > 0) {
                            String pageName = pageNameArray[0];
                            pageModel = getFormModel().getPageByName(pageName);
                            model.setBindingPage(pageModel);
                        } else {
                            model.setBindingPage(ModelFactory.getInstance()
                                    .newFormPageModel());
                        }
                    }
                    if (pageTypeValue == 1
                            && !(model.getBindingPage() instanceof IInterfacePageModel)) {
                        if (pageNameArray.length > 0) {
                            String pageName = pageNameArray[0];
                            pageModel = getInterfacePageByName(pageName);
                            model.setBindingPage(pageModel);
                        } else {
                            model.setBindingPage(ModelFactory.getInstance()
                                    .newInterfacePageModel());
                        }
                    }
                }
                if (property.equals(bindingPageColumnNameArray[3])) {
                    int pageValue = ((Integer) value).intValue();
                    String[] cellItems = ((ComboBoxCellEditor) cellEditors[3])
                            .getItems();
                    String pageName = null;
                    if (pageValue >= 0 && cellItems.length > 0) {
                        pageName = cellItems[pageValue];
                        System.out.println("pageName: " + pageName);
                    }
   
                    if (model.getBindingPage() instanceof IFormPageModel) {
                        pageModel = getFormModel().getPageByName(pageName);
                        if (pageModel == null
                                || pageModel.equals(model.getBindingPage())) {
                            pageModel = null;
                        } else {
                            model.setBindingPage(pageModel);
                        }
                    } else if (model.getBindingPage() instanceof IInterfacePageModel) {
                        pageModel = getInterfacePageByName(pageName);
                        if (pageModel == null
                                || pageModel.equals(model.getBindingPage())) {
                            pageModel = null;
                        } else {
                            model.setBindingPage(pageModel);
                        }
                    }
                }
                if (null != pageModel) {
                    model.getBindingParameterList().clear();
                    model.getBindingOperationList().clear();
                }
   
                bindingPageTableViewer.refresh();
                updatePageStates(model);
            }
        });

 

 

核心思想:

CellEditor cellEditor = new ComboBoxCellEditor(table, items,SWT.READ_ONLY);

//拿到control,进行高度设置即可,如果直接使用的是CCombo下拉框,上面那行代码都不用要,就可以设置下来高度。

CCombo cc = (CCombo)cellEditor.getControl();

cc.setVisibleItemCount(items.length/2);

 

落雨 ae6623

qq 394263788

目录
相关文章
|
Java 关系型数据库 MySQL
JSP在线小说系统用eclipse定制开发mysql数据库BS模式java编程jdbc
JSP 在线小说系统是一套完善的web设计系统,对理解JSP java SERLVET mvc编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0,使用java语言开发。
219 1
JSP在线小说系统用eclipse定制开发mysql数据库BS模式java编程jdbc
|
Java Maven Android开发
在Eclipse里配置Maven插件
Maven是一款比较常用的Java开发拓展包,它相当于一个全自动jar包管理器,会导入用户开发时需要使用的相应jar包。使用Maven开发Java程序,可以极大提升开发者的开发效率。下面我就跟大家介绍一下如何在Eclipse里安装和配置Maven插件。
525 0
|
Java 关系型数据库 MySQL
java 网上二手车销售系统用eclipse定制开发mysql数据库BS模式java编程jdbc
JSP 网上二手车销售系统是一套完善的web设计系统,对理解JSP java SERLVET mvc编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0,使用java语言开发。
207 0
|
Java 关系型数据库 MySQL
SSM度假村管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目
SSM 度假村管理系统是一套完善的信息系统,结合SSM框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 前段主要技术html div js 后端主要技术 SSM框架 java jdbc 数据库 mysql 开发工具 eclipse JDK1.8 TOMCAT 8.5
128 0
|
NoSQL 编译器 C语言
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。高级技巧包括内存检查、性能分析和符号调试。通过实践案例学习如何有效定位和解决问题,同时注意保持耐心、合理利用工具、记录过程并避免过度调试,以提高编程能力和开发效率。
419 1
|
存储 Oracle Java
Java面试题:描述如何使用Eclipse或IntelliJ IDEA进行Java开发?
Java面试题:描述如何使用Eclipse或IntelliJ IDEA进行Java开发?
191 0
|
开发工具 Android开发 git
合作开发(Eclipse+git +码云)
合作开发(Eclipse+git +码云)
307 0
|
Java 关系型数据库 数据库
JSP网上手机商城系统 用eclipse定制开发mysql数据库BS模式java编程jdbc
JSP 网上手机商城系统是一套完善的web设计系统,对理解JSP java SERLVET mvc编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0,使用java语言开发。
271 1
JSP网上手机商城系统 用eclipse定制开发mysql数据库BS模式java编程jdbc
|
Java 关系型数据库 MySQL
SSM校园设备管信息管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目
SSM 校园设备管信息理系统是一套完善的信息系统,结合SSM框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系 统主要采用B/S模式开发。 前段主要技术html div js 后端主要技术 SSM框架 java jdbc 数据库 mysql 开发工具 eclipse JDK1.8 TOMCAT 8.5
236 0
SSM校园设备管信息管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目
|
XML Java Maven
eclipse 、idea 安装activiti插件
eclipse 、idea 安装activiti插件
630 0