效果图:
 
 
代码如下
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 下拉框高度的更多相关文章

  1. 设置select下拉框高度的一种方法

    这种方法可以设置下拉框最多显示几条栏目,多余的栏目用显示滚动条展示: <select style="position: absolute;z-index: 1;" onmou ...

  2. MFC中控制COMBOBOX控件的下拉框高度

    这是使用Visual Stiduo的小技巧哦.今天上网找来的.在界面设计面板上,点击ComboBox的下拉箭头,会另外出现一个虚边框.可以调整其大小.这个就是实现运行的时候下拉边框的默认值啦.

  3. combobox的下拉框高度怎样设计合理

    orry,代码如下$.extend($.fn.combobox.methods, {        autoHeight : function (jq) {//combobox扩展,自动调整高度    ...

  4. 自定义SWT控件一之自定义单选下拉框

    一.自定义下拉控件 自定义的下拉框,是自定义样式的,其中的下拉框使用的是独立的window,非复选框的下拉框双击单机其它区域或选择完之后,独立window构成的下拉框会自动消失. package co ...

  5. QCombobox设置下拉框的宽度

    这几天写一个项目,里面用到qcombobox组件,其中下拉框含有129个子项,所以在点击的时候,一个下拉框就将整个电脑屏幕给占满了,很不好看并且在使用中会造成很大的苦恼.其实我就是想设置一个下拉框最大 ...

  6. 微信小程序下拉框

    微信小程序里没有和HTML里的下拉框一样的组件,想要相同的效果只能自己写一个,先看效果 下面来看一下代码: 首先WXML <view class='select_box'> <vie ...

  7. jquery模拟可输入的下拉框

    //页面html <div id="select" class="select" > <ul> <c:forEach items= ...

  8. 自定义SWT控件四之其它下拉框

    4.其它下拉框 4.1 添加联动二级多选择框(有添加按钮和删除按钮) package com.view.control.select; import java.util.ArrayList; impo ...

  9. 自定义SWT控件三之搜索功能下拉框

    3.搜索功能下拉弹出框 package com.view.control.select; import java.util.ArrayList; import java.util.LinkedList ...

随机推荐

  1. 超越luabind的luaBridge

    此编是引用他人的文章,这里记录下,主要为以后自己查找方便,原文地址:http://www.cppblog.com/sunicdavy/archive/2013/12/07/204648.html 最近 ...

  2. Regionals 2013 :: North America - Southeast USA

    Regionals 2013 :: North America - Southeast USA It Takes a Village As a Sociologist, you are studyin ...

  3. 随便写了一个DAO

    package com.java; public class ExamStudent { /** * 流水号 */ private int flowId; /** * 四级.六级 */ private ...

  4. sql常用的星期方法

    sql常用的星期方法: SELECT convert(varchar(10),DATEADD(wk, DATEDIFF(wk,0,getdate()), 0),120) --本周开始周一SELECT ...

  5. 大仙说道之Android studio实现Service AIDL

    今天要开发过程中要用到AIDL的调用,之前用的eclipse有大量教程,用起来很方便,现在刚换了Android studio,不可否认studio真的很强大,只是很多功能还需要摸索. AIDL(And ...

  6. V2EX社区

    无论你是在大学进行人生最重要阶段的学习,或者是在中国的某座城市工作,或者是在外太空的某个天体如 Sputnik 1 上享受人生,在注册进入 V2EX 之后,你都可以为自己设置一个所在地,从而找到更多和 ...

  7. C#简单的加密类

    1.加密 public class EncryptHepler { // 验值 static string saltValue = "XXXX"; // 密码值 static st ...

  8. zip生成

    生成zip文件官方网站:http://www.phpconcept.net/pclzip/ 用法一: 1 <?php 2     include_once('pclzip.lib.php'); ...

  9. 【PHP】phpcms html去除空白

    // 文件路径:/phpcms/libs/classes/template_cache.class.php 42行 // 第四第五行是新增的 $content = $this->template ...

  10. WPF学习06:转换控件内容为可存储图片

    在图形软件中,我们经常使用到"另存为图片"的功能,本文即介绍如何将WPF控件显示内容转换为图片. , , PixelFormats.Pbgra32); bitmapRender.R ...