我的代码中有一个 ComboViewer, 不过在Window 2000,Form 中,样式有点难看,有讨厌的三维边框。
而 FormToolkit 只对 CCombo 控件 进行细边框绘制(FormToolkit.paintBorderFor(...))
所以我依照 ComboViewer “抄” 了一个 CComboViewer。

java 代码
 
  1. package com.longthsoft.rcppart.ui.parts;  
  2.   
  3. import org.eclipse.jface.viewers.AbstractListViewer;  
  4. import org.eclipse.swt.SWT;  
  5. import org.eclipse.swt.custom.CCombo;  
  6. import org.eclipse.swt.widgets.Composite;  
  7. import org.eclipse.swt.widgets.Control;  
  8.   
  9. public class CComboViewer extends AbstractListViewer {  
  10.   
  11.     private CCombo combo;  
  12.   
  13.     public CComboViewer(Composite parent) {  
  14.         this(parent, SWT.READ_ONLY | SWT.BORDER);  
  15.     }  
  16.   
  17.     public CComboViewer(Composite parent, int style) {  
  18.         this(new CCombo(parent, style));  
  19.     }  
  20.   
  21.     public CComboViewer(CCombo list) {  
  22.         this.combo = list;  
  23.         hookControl(list);  
  24.     }  
  25.   
  26.     public CCombo getCCombo() {  
  27.         return combo;  
  28.     }  
  29.   
  30.     @Override  
  31.     public Control getControl() {  
  32.         return combo;  
  33.     }  
  34.   
  35.     @Override  
  36.     protected void listAdd(String string, int index) {  
  37.         combo.add(string, index);  
  38.     }  
  39.   
  40.     @Override  
  41.     protected void listDeselectAll() {  
  42.         combo.deselectAll();  
  43.         combo.clearSelection();  
  44.     }  
  45.   
  46.     @Override  
  47.     protected int listGetItemCount() {  
  48.         return combo.getItemCount();  
  49.     }  
  50.   
  51.     @Override  
  52.     protected int[] listGetSelectionIndices() {  
  53.         return new int[] { combo.getSelectionIndex() };  
  54.     }  
  55.   
  56.     @Override  
  57.     protected void listRemove(int index) {  
  58.         combo.remove(index);  
  59.     }  
  60.   
  61.     @Override  
  62.     protected void listRemoveAll() {  
  63.         combo.removeAll();  
  64.     }  
  65.   
  66.     @Override  
  67.     protected void listSetItem(int index, String string) {  
  68.         combo.setItem(index, string);  
  69.     }  
  70.   
  71.     @Override  
  72.     protected void listSetItems(String[] labels) {  
  73.         combo.setItems(labels);  
  74.     }  
  75.   
  76.     @Override  
  77.     protected void listSetSelection(int[] ixs) {  
  78.         for (int idx = 0; idx < ixs.length; idx++) {  
  79.             combo.select(ixs[idx]);  
  80.         }  
  81.     }  
  82.   
  83.     @Override  
  84.     protected void listShowSelection() {  
  85.         return;  
  86.     }  
  87.   
  88.     @Override  
  89.     public void reveal(Object element) {  
  90.         return;  
  91.     }  
  92.   
  93. }  
评论
semicircle 2008-04-10
nice,为啥么不上个图看看效果。
发表评论

您还没有登录,请登录后发表评论

bencode
  • 浏览: 30622 次
  • 性别: Icon_minigender_1
  • 来自: 浙江台州
  • 详细资料
搜索本博客
存档
最新评论