首页 移动开发 在线交易 IT笔记 网络技术 操作系统 企业架构 数据库 考试认证 IT培训 开源软件 数据存储 行业资讯
大家都在看:java   开发   C#   oracle   mysql   android   web开发   学习   sqlserver   linux   asp   php   ajax   javascript   css   html
设置Table的ToolTip
2014-05-19 10:13:15 来源: 作者:admin 栏目:软考等考 责任编辑:
[导读] /** * 设置Table的ToolTip * @param tbv */ public static void setToolTiip(final TableViewer tbv) { final Table table = tbv.getTable(); table.setToolTipText("");// final Display display = PlatformUI.getWorkben..
 
    /**     * 设置Table的ToolTip      * @param tbv     */    public static void setToolTiip(final TableViewer tbv) {        final Table table = tbv.getTable();        table.setToolTipText("");//        final Display display = PlatformUI.getWorkbench().getDisplay();                final Listener textListener = new Listener() {            public void handleEvent(Event event) {                Text text = (Text) event.widget;                Shell shell = text.getShell();                switch (event.type) {                    case SWT.MouseEnter:                        text.forceFocus();                        break;                    case SWT.MouseExit:                        shell.dispose();                        break;                }            }        };                final Listener tableListener = new Listener() {            Shell     tip     = null;            Text      text    = null;            TableItem oldItem = null;            public void handleEvent(Event event) {                switch (event.type) {                    case SWT.Dispose:                    case SWT.KeyDown: {                        if (tip == null) break;                        tip.dispose();                        tip = null;                        break;                    }                                        case SWT.MouseDown: {                        if (tip == null) break;                        tip.dispose();                        tip = null;                        break;                    }                                        case SWT.MouseWheel: {                        if (tip == null || tip.isDisposed()) break;                        table.notifyListeners(SWT.MouseHover, event);                        break;                    }                                        case SWT.MouseHover: {                        TableItem item = table.getItem(new Point(event.x, event.y));                        if (item == oldItem && tip != null && !tip.isDisposed())                             return;                        else                             oldItem = item;                        if (item != null) {//                            if (tip != null && !tip.isDisposed()) tip.dispose();                                                        if (tip == null || tip.isDisposed())                            {                                tip = new Shell(event.display, SWT.ON_TOP | SWT.NO_FOCUS | SWT.TOOL);                                tip.setBackground(event.display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));                                GridLayout layout = new GridLayout();                                layout.marginWidth = 5;                                tip.setLayout(layout);                                text = new Text(tip, SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);                                text.setLayoutData(new GridData(GridData.FILL_BOTH));                                text.setEditable(false);                                text.setForeground(event.display.getSystemColor(SWT.COLOR_INFO_FOREGROUND));                                text.setBackground(event.display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));                                                                text.addListener(SWT.MouseExit, textListener);                                text.addListener(SWT.MouseEnter, textListener);                            }                                                        TableColumn[] columns = tbv.getTable().getColumns();                            StringBuilder buff = new StringBuilder();                            for(int i=0; i<columns.length; i++)                            {                                buff.append(columns[i].getText()).append(": \n\t").append(item.getText(i)).append("\n");                            }                                                        text.setText(buff.toString());                                                        Point p = table.getLocation();                            Point point = table.toDisplay(p.x, p.y);                            Rectangle rect = item.getBounds();                            tip.setBounds(event.x + point.x, point.y + rect.y + table.getHeaderHeight()/2, 300, 300);                            tip.setVisible(true);//                            tip.forceFocus();//                            tip.setActive();//                            tip.addListener(SWT.Deactivate, new Listener() {//                                @Override//                                public void handleEvent(Event event) {//                                    tip.dispose();//                                }//                            });                        } else {                            if ((tip != null) && !tip.isDisposed()) tip.dispose();                        }                    }                }            }        };                table.addListener(SWT.Dispose, tableListener);        table.addListener(SWT.KeyDown, tableListener);        table.addListener(SWT.MouseHover, tableListener);        table.addListener(SWT.MouseDown, tableListener);        table.addListener(SWT.MouseWheel, tableListener);    }

标签:
本站地址:/
版权所有:转载请注明出处!
分享到:
上一篇没有了 下一篇【FastDFS专题】fastdfs使用实战..
您可能还喜欢
暂无...
今日最新资讯 最新推荐信息
考试认证 更多
开发技术 更多
移动开发 更多

关于 | 合作伙伴 | 联系我们 | 友情链接 | 版权声明 | 网站制作 | 网站地图 | 加入收藏 | 设为首页

Copyright@2012-2016 京ICP备12027873号