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 ...
随机推荐
- .Net 接连 Oracle 数据库(Winform)
之前一直是使用Asp.Net 连接 Oracle 10g,最近想写个小程序,所以选择了 Winform.折腾半天后,才发现 Winform 与 Asp.Net 连接 Oracle 是有些许区别的. 区 ...
- 理解C#系列 / 核心C# / 常量
常量 常量? 我对常量的理解就是在初始化完成后再也不变的“全局变量”. 定义常量 [const][空格][变量类型][空格][变量名称][=][值][:] const表示定义的是常量. 常量特点 常量 ...
- Jquery 学习二
一.事件编程 1.基本事件(以方法形式存在的) 基本语法: 原生Javascript代码中的事件绑定方式: DOM对象.事件 = 事件的处理程序 jQuery代码中的事件绑定方式: jQuery对 ...
- ERP基本功——物料的四个量
ERP基本功——物料的四个量 在分析制造业管理问题的时候,如果能借用一些ERP里才会用到的概念,就会非常的简单,并且条理清晰. 我觉得柳中冈先生一再强调的一个观点非常有用,大意是这样的:任何人依据现有 ...
- 【转】 (C#)利用Aspose.Cells组件导入导出excel文件
Aspose.Cells组件可以不依赖excel来导入导出excel文件: 导入: public static System.Data.DataTable ReadExcel(String strFi ...
- jquery.min.map详见
温故而知新,翻出来阮前辈的文章记录一下 日期:2013年1月23日 上周,jQuery 1.9发布. 这是2.0版之前的最后一个新版本,有很多新功能,其中一个就是支持Source Map. 访问 ht ...
- Docker无法启动 Could not find a free IP address range for interface 'docker0' 最方便的解决办法
阿里云的CentOS 6.5上安装Docker会无法启动,如果直接运行docker -d会看到错误提示:Could not find a free IP address range for inter ...
- hdu 5720 BestCoder 2nd Anniversary Wool 推理+一维区间的并
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5720 题意:有n(n <= 105)个数 ,每个数小于等于 1018:问在给定的[L,R]区间中 ...
- ActiveMQ之JMSReplyTo
在下面的例子中,首先创建两个Queue,发送者给一个Queue发送,接收者接收到消息之后给另一个Queue回复一个Message,然后再创建一个消费者来接受所回复的消息.import javax.jm ...
- RDD的转换操作---RDD转换过程
1) union(otherRDD)RDD-->UnionRDD2) groupByKey(numPartitions)RDD-->ShuffledRDD-->MapPartitio ...