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 ...
随机推荐
- Shell指令
Shell指令 1.Shell原理图 2.Shell指令的基本语法 Shell指令 Shell –选项 参数 Shell –选项 Shell参数 3.常用的Shell指令 1)ls指令:显示文件信息 ...
- java springmvc Log4j filter等(稍微完善一下项目)
仅供参考-接上文 springmvc 1.设置Log4jConfigListener日志监听(可以为开发调试.发布后运行的意外调试.等) 在src/main/resources目录下新建log4j. ...
- linux exec函数族
1.简介 在Linux中,并不存在exec()函数,exec指的是一组函数,一共有6个,分别是: #include <unistd.h> extern char **environ; ...
- Fedora 19 配置参考
1. 安装完Fedora 19之后,第一件事不是升级系统,而是添加源. 下载我配置好的源,非常全面,适用Fedora 19 x86_64.点我下载 打开终端,切换到repo.zip所在目录:mv re ...
- 基于OCILIB的oracle数据库操作总结及自动生成Model和Dao的工具
基于OCILIB的oracle数据库操作总结 1. 类图 2. 基类BaseOCIDao的设计与实现 BaseOCIDao.h头文件 #pragma once /* ----- ...
- lnmp 下安装yaf
须有配置好的环境 详情见:centos6.5下yum安装lnmp(适合刚入职的新手的方法) http://www.cnblogs.com/qzjpkfj/p/4211126.html 具体安装步骤详情 ...
- nginx安装总结
对于nginx作为负载均衡服务器时的安装需要安装rewrite模块需要的pcre()库,gzip模块需要zlib库,ssl模块需要openssl库,对此依赖安装有很多种处理方式,以下简单总结: 通过源 ...
- 33选6算法:M个数N个为一组,无重复的排列组合
private void button1_Click(object sender, EventArgs e) { int nCnt = 0; List nNumList = new List(); f ...
- JS去除数组中重复值的四种方法
JS去除数组中重复值的四种方法 1 /// <summary> o[this[i]] = ""; } } newArr.p ...
- Docs list
http://www.deansys.com/doc/ldd3/index.html Github中文文档: http://www.worldhello.net/gotgithub/03-projec ...