`
snoopy7713
  • 浏览: 1151895 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

TableViewer 自定义ToolTip

    博客分类:
  • RAP
阅读更多

TableViewer tablesResultTable = new TableViewer(scrolledComposite, SWT.FULL_SELECTION );
        Table table = tablesResultTable.getTable();
        table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
        table.setHeaderVisible(true);
        table.setLinesVisible(true);
        tablesResultTable.setContentProvider(new FailedDDLContentProvider());
        ColumnViewerToolTipSupport.enableFor(tablesResultTable,ToolTip.NO_RECREATE);
                
        TableViewerColumn newColumnTableColumn1 = new TableViewerColumn(tablesResultTable, SWT.NONE);
        newColumnTableColumn1.setLabelProvider(new FailedDDLLabelProvider(0));
        newColumnTableColumn1.getColumn().setWidth(100);
        newColumnTableColumn1.getColumn().setText(Messages.reportPage2TableName);
        
        TableViewerColumn newColumnTableColumn2 = new TableViewerColumn(tablesResultTable, SWT.NONE);
        newColumnTableColumn2.setLabelProvider(new FailedDDLLabelProvider(1));
        newColumnTableColumn2.getColumn().setWidth(400);
        newColumnTableColumn2.getColumn().setText(Messages.reportPage2FailedDDL);
        
        TableViewerColumn newColumnTableColumn3 = new TableViewerColumn(tablesResultTable, SWT.NONE);
        newColumnTableColumn3.setLabelProvider(new FailedDDLLabelProvider(2));
        newColumnTableColumn3.getColumn().setWidth(400);
        newColumnTableColumn3.getColumn().setText(Messages.reportPage2FailedReason);

 

class FailedDDLLabelProvider extends
    CellLabelProvider {

    private int index;
    public FailedDDLLabelProvider(int index) {
        this.index = index;
    }

    public String getColumnText(Object element, int columnIndex) {

        if(element == null)  return "";
        
        if (element instanceof FailedDDL) {
            FailedDDL failedDDL = (FailedDDL) element;

            switch (columnIndex) {
            case 0:
                return failedDDL.getName();
            case 1:
                return failedDDL.getFailedDDL();
            case 2:
                return failedDDL.getFailedReson();
            default:
                return "";
            }
        }
        return null;
    }

    public String getToolTipText(Object element) {
            return getColumnText(element,index);
    }

    public Point getToolTipShift(Object object) {
        return new Point(5, 5);
    }

    public int getToolTipDisplayDelayTime(Object object) {
        return 300;
    }

    public int getToolTipTimeDisplayed(Object object) {
        return 5000;
    }

    @Override
    public void update(ViewerCell cell) {
        cell.setText(getColumnText(cell.getElement(),index));    
    }

}

例子

import org.eclipse.jface.viewers.CellLabelProvider;
import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerCell;
import org.eclipse.jface.window.ToolTip;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

/**
 * Explore New API: JFace custom tooltips drawing.
 *
 * @author Tom Schindl <tom.schindl@bestsolution.at>
 * @since 3.3
 */
public class Snippet011CustomTooltips {
    private static class MyContentProvider implements
            IStructuredContentProvider {

        public Object[] getElements(Object inputElement) {
            return new String[] { "one", "two", "three", "four", "five", "six",
                    "seven", "eight", "nine", "ten" };
        }

        public void dispose() {

        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

        }
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        final Display display = new Display();
        Shell shell = new Shell(display);
        shell.setLayout(new FillLayout());

        TableViewer v = new TableViewer(shell, SWT.FULL_SELECTION);
        v.getTable().setLinesVisible(true);
        v.getTable().setHeaderVisible(true);
        v.setContentProvider(new MyContentProvider());
        ColumnViewerToolTipSupport.enableFor(v,ToolTip.NO_RECREATE);
 
        TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
        LabelProvider lp1 = new LabelProvider(0);
        column.setLabelProvider(lp1);
        column.getColumn().setText("Column 1");
        column.getColumn().setWidth(100);
        
        TableViewerColumn column1 = new TableViewerColumn(v, SWT.NONE);
        LabelProvider lp2 = new LabelProvider(1);
        column1.setLabelProvider(lp2);
        column1.getColumn().setText("Column 2");
        column1.getColumn().setWidth(100);

        v.setInput("");

        shell.setSize(200, 200);
        shell.open();

        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }

        display.dispose();
    }
}

class LabelProvider extends CellLabelProvider {

    private int index;
    
    public LabelProvider(int index) {
        this.index = index;
    }
    
    public String getToolTipText(Object element) {
        return "Tooltip"+ index + " (" + element + ")";
    }

    public Point getToolTipShift(Object object) {
        return new Point(5, 5);
    }

    public int getToolTipDisplayDelayTime(Object object) {
        return 300;
    }

    public int getToolTipTimeDisplayed(Object object) {
        return 2000;
    }

    public void update(ViewerCell cell) {
        cell.setText(cell.getElement().toString());

    }

    public int getIndex() {
        return index;
    }

    public void setIndex(int index) {
        this.index = index;
    }

分享到:
评论

相关推荐

    Swt/Jface tableViewer入门教程一(显示tableViewer)

    你可以自定义实现这些接口,使表格具备更强大的数据管理能力。 在实际开发中,你可能还会遇到如性能优化、多线程数据加载等问题。例如,对于大数据量的表格,可以考虑使用虚拟化技术,只渲染可见区域的行,以提高...

    swt/jface tableViewer开发简化

    6. **定制化功能**: `tableViewer`支持自定义列宽、单元格样式,甚至自定义单元格编辑器,提供高度可定制化的用户体验。 关于压缩包文件`tableReflectPro`,名字暗示可能是一个关于反射(Reflection)的工具或示例...

    TableViewer示例

    【TableViewer示例】——全面探索TableViewer的使用 在Java SWT(Standard Widget Toolkit)库中,TableViewer是一个强大的组件,用于在用户界面中展示表格数据。它提供了丰富的功能,如排序、过滤、编辑和自定义列...

    Tableviewer实现

    `TableViewer`的设计允许开发者扩展其功能,如添加自定义的列类型、编辑器等,以满足特定需求。 总结,`TableViewer`是Eclipse RCP中用于构建强大表格视图的关键组件。通过理解并熟练运用其核心概念和功能,开发者...

    SWT中自己订制了一个TableViewer(用于我的列出项目中的所有错误信息),作为测试用的。与大家分享

    本篇文章将重点讲解如何在SWT中自定义TableViewer,以便展示项目中的所有错误信息,这对于调试和问题排查至关重要。 TableViewer是SWT JFace库中的一个组件,它为 SWT 的 Table 控件提供了一种数据绑定和视图操作的...

    Set TableViewer Cell Focus

    在IT领域,特别是Java Swing和Eclipse RCP开发中,TableViewer是经常被用来展示数据的一个组件。"Set TableViewer Cell Focus"这个话题是关于如何在TableViewer中设置焦点到特定单元格上,这对于实现用户交互和数据...

    tableviewer edit

    在 Eclipse RCP(Rich Client Platform)开发中,`TableViewer` 是一个强大的组件,用于展示数据表。`TableViewer` 是 `JFace` 库的一部分,它提供了与 SWT(Standard Widget Toolkit)表格控件的高级接口,使得数据...

    带有翻页功能的TableViewer.rar

    通过查看源码,你可以学习到如何结合SWT的TableViewer和自定义分页逻辑来创建一个具备翻页功能的数据展示界面。此外,此项目可能还包含了相关的布局管理,以保证UI的美观和响应性。 总的来说,这个项目对于学习和...

    JFace TableViewer的单元格逐个遍历的辅助类

    点击Enter键,对TableViewer的单元格进行逐个遍历的辅助类,推荐用于使用ViewerColumn.setEditingSupport的可编辑TableViewer。 Since 3.3, an alternative API is available, see ViewerColumn.setEditingSupport...

    TableViewer单元格编辑功能

    Jface TableViewer控件实现的对标签文件的标签属性的修改功能。 用TextCellEditor和ComboBoxCellEditor给表格添加编辑功能。 通过表格的addListener事件为表格的单元格添加编辑功能,事例根据鼠标点击时鼠标的X和Y...

    RCP开发之TableViewer 列的显示与隐藏

    RCP开发比Table更高级的TableViewer的使用。实现列的隐藏与显示

    Swt/Jface tableViewer入门教程三(加入在表格上直接编辑数据)

    在本文中,我们将深入探讨如何使用Swt/Jface库中的`TableViewer`组件来创建一个功能丰富的表格,并实现用户可以直接在表格上编辑数据的功能。Swt/Jface是Eclipse平台的一部分,提供了一套用于构建图形用户界面(GUI...

    Setting focus cell in TableViewer

    标题“Setting focus cell in TableViewer”涉及到的是在Eclipse RCP(Rich Client Platform)开发中,如何在TableViewer组件中设置焦点单元格。TableViewer是Eclipse JFace库中的一个关键组件,用于显示和操作表格...

    Plugins-JFace-TableViewer.rar

    Plugins-JFace-TableViewer.rar Plugins-JFace-TableViewer.rar Plugins-JFace-TableViewer.rar Plugins-JFace-TableViewer.rar Plugins-JFace-TableViewer.rar

    TableViewer学习源码

    虽然文件名字起得很笼统 里面只有一个关于TableViewer的项目源码 源码的依据是我转载的一篇学习TableViewer的博客源码 http://blog.csdn.net/weiweiwei256/article/details/49514699

    Eclipse从入门到精通2

    ### Eclipse从入门到精通2 —— JFace TableViewer详解 #### 概述 本文档针对CSDN上《Eclipse从入门到精通2》一书的部分更新内容进行了整合,主要聚焦于Eclipse环境下JFace框架的TableViewer组件的深入解析。...

    swt table扩展

    在实际开发中,我们常常需要对Table进行自定义扩展,以满足特定需求,例如添加自定义列类型、实现复杂的排序功能、或者提供更丰富的交互体验。 首先,让我们了解Table的基本用法。创建一个Table,你需要实例化`org....

    Swtjface的Table显示数据库数据比较方便的工具类.doc

    - `TableViewer` 是 JFace 中用于管理表格内容的组件,它可以自动处理表格的排序、过滤等功能。 - `Table` 是 SWT 中用于显示表格的控件,`TableKiller` 通过 `TableViewer` 获取对 `Table` 的操作权限。 2. **...

    Eclipse RCP 打印表格.zip

    6. **数据适配器**:为了将TableViewer中的数据适配到打印环境中,可能需要创建自定义的数据适配器。这些适配器将表格数据转换为适合打印格式的对象,如Text或Image。 7. **多页打印**:如果表格内容过多,不能在...

    阿里大数据计算服务MaxCompute-安全指南.pdf

    例如,项目空间管理员可以创建一个名为tableviewer的角色,并将用户Alice、Bob和Charlie添加到该角色中: use prj1; create role tableviewer; grant List, CreateInstance on project prj1 to role tableviewer; ...

Global site tag (gtag.js) - Google Analytics