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

- 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
Eclipse插件开发 swt ComboBoxCellEditor CCombo 下拉框高度的更多相关文章
- 设置select下拉框高度的一种方法
这种方法可以设置下拉框最多显示几条栏目,多余的栏目用显示滚动条展示: <select style="position: absolute;z-index: 1;" onmou ...
- MFC中控制COMBOBOX控件的下拉框高度
这是使用Visual Stiduo的小技巧哦.今天上网找来的.在界面设计面板上,点击ComboBox的下拉箭头,会另外出现一个虚边框.可以调整其大小.这个就是实现运行的时候下拉边框的默认值啦.
- combobox的下拉框高度怎样设计合理
orry,代码如下$.extend($.fn.combobox.methods, { autoHeight : function (jq) {//combobox扩展,自动调整高度 ...
- 自定义SWT控件一之自定义单选下拉框
一.自定义下拉控件 自定义的下拉框,是自定义样式的,其中的下拉框使用的是独立的window,非复选框的下拉框双击单机其它区域或选择完之后,独立window构成的下拉框会自动消失. package co ...
- QCombobox设置下拉框的宽度
这几天写一个项目,里面用到qcombobox组件,其中下拉框含有129个子项,所以在点击的时候,一个下拉框就将整个电脑屏幕给占满了,很不好看并且在使用中会造成很大的苦恼.其实我就是想设置一个下拉框最大 ...
- 微信小程序下拉框
微信小程序里没有和HTML里的下拉框一样的组件,想要相同的效果只能自己写一个,先看效果 下面来看一下代码: 首先WXML <view class='select_box'> <vie ...
- jquery模拟可输入的下拉框
//页面html <div id="select" class="select" > <ul> <c:forEach items= ...
- 自定义SWT控件四之其它下拉框
4.其它下拉框 4.1 添加联动二级多选择框(有添加按钮和删除按钮) package com.view.control.select; import java.util.ArrayList; impo ...
- 自定义SWT控件三之搜索功能下拉框
3.搜索功能下拉弹出框 package com.view.control.select; import java.util.ArrayList; import java.util.LinkedList ...
随机推荐
- 20141212--C#对象比较
static void Main(string[] args) { Class2 oo = new Class2(); oo.shu = ; oo.zi = "你"; Class2 ...
- 页面传值总结Block
// AppDelegate.m // 页面传值总结 // // Created by qianfeng on 15/6/13. // Copyright (c) 2015年 qianfeng. Al ...
- SharedSDK微信分享不成功,分享之后没有反应
对于一般来说,使用SharedSDK的时候,分享不成功不外乎下面几个原因: 1.测试没有打包2.打包的keystore跟微信开放平台上面的不一致, 导致MD5码不一致3.分享参数错误4.应用没有审核通 ...
- 《linux源代码包的编译安装》RHEL6
linux下源代码包的编译安装其实没那么复杂. 我是win7系统装的虚拟机,就简单说下: 举个简单的例子: http://www.openssl.org/ 这是openssl的官网,下载openssl ...
- VmodCAM图像采集 VGA显示
先上图 总体框图 效果图 效果不是很好,因为暂时用的是zedboard自带的VGA,其只能RGB只有3*3*3的彩色度 VmodCAM原理图 VmodCAM的zedboard管脚约束见:http:// ...
- Linux系统环境变量及命令
Linux哪些我们常用,但是用的时候想不起来,这里做一个备忘录. Linux常用的变量: PATH 决定了shell将到哪些目录中寻找命令或程序 HOME 当前用户主目录 HISTSIZE 历史记录数 ...
- js----深入理解闭包
闭包算是js里面比较不容易理解的点,尤其是对于没有编程基础的人来说. 其实闭包要注意的就那么几条,如果你都明白了那么征服它并不是什么难事儿.下面就让我们来谈一谈闭包的一些基本原理. 闭包的概念 一个闭 ...
- 百度的domain命令到底有用吗?
曾几何时,站长和seoer们在百度输入domain:xxxxxxxx的时候弹出的结果数量让多少人兴奋和失落,为什么我们对百度的domain命令如此着迷呢?因为我们都认为百度的domain命令是查询网站 ...
- PHP操作MongoDB简明教程(转)
转自:http://blog.sina.com.cn/s/blog_6324c2380100ux2m.html MongoDB是最近比较流行的NoSQL数据库,网络上关于PHP操作MongoDB的资料 ...
- webstorm 10.0.4 注册码
激活码: UserName:William ===== LICENSE BEGIN ===== 45550-12042010 00001SzFN0n1bPII7FnAxnt0DDOPJA INauvJ ...