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 ...
随机推荐
- 理解C#系列 / 核心C# / 变量
变量 变量? 变量是对一个东西指定一个名称,变量的功能和人的名字差不多,提到名字就知道指的是什么. 变量类型? 变量类型说明了变量的类型,声明变量是一个整数,还是小数,还是字符,或是图像,或是人类,或 ...
- Ubuntu14.04 安装 PHP cURL
今天遇到 Fatal error: Call to undefined function curl_init() in /xxx/xxxx/www/application/library/Ku/Htt ...
- linux中的文件属性
l 是链接d 是目录c 是字符设备文件b 是块设备- 是文件
- asp.net2.0 国际化
公司业务需要在国外开展了, 因此以前的系统要做多国语言了, 从网上搜集了好多资料, 最后选择了一个比较简单的方案 1. 打开vs2005, 新建网站, 首先在配置文件中添加配置: <syste ...
- UINavigationController 与 UITabBarController
http://www.cnblogs.com/YouXianMing/p/3756904.html // index start from 1. UITabBarItem *newsItem = [[ ...
- js根据IP取得天气
<span id="weather"></span> <script> function weather(cityName) { var cha ...
- WPF学习05:2D绘图 使用Transform进行控件变形
在WPF学习04:2D绘图 使用Shape绘基本图形中,我们了解了如何绘制基本的图形. 这一次,我们进一步,研究如何将图形变形. 例子 一个三角形,经Transform形成组合图形: XAML代码: ...
- 使用RX方式模拟DoubanFm的登陆
WP7下的Get Post都是异步的 关于RX http://www.cnblogs.com/yangecnu/archive/2012/11/03/Introducting_ReactiveExte ...
- OPatch failed with error code 73
前几天给一套LINUX下的RAC数据库打补丁升级,有一台机器更新失败了,相关的异常内容如下: Restoring "/u01/app/oracle/11.2.0/db_1" to ...
- 【android】uiselectoer 自动化测试
转:http://blog.csdn.net/sasoritattoo/article/details/17579739 Android自动化测试主要分为Monkeyrunner.Rubotium.U ...