/*******************************************************************************
* Copyright (c) 2006, 2007 Tom Schindl and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Tom Schindl - initial API and implementation
*******************************************************************************/
package org.eclipse.jface.snippets.viewers;
import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerCell;
import org.eclipse.jface.viewers.CellLabelProvider;
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.3M2
*/
public class Snippet015CustomTooltipsForTree {
private static class MyContentProvider implements ITreeContentProvider {
private static final String ROOT = "Root";
public Object[] getElements(Object inputElement) {
return new Object[]{ROOT};
}
public void dispose() {
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
public Object[] getChildren(Object parentElement) {
if(parentElement.equals(ROOT))
return new String[] { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten" };
return new Object[0];
}
public Object getParent(Object element) {
return null;
}
public boolean hasChildren(Object element) {
return element.equals(ROOT);
}
}
/**
* @param args
*/
public static void main(String[] args) {
final Display display = new Display ();
Shell shell = new Shell (display);
shell.setLayout(new FillLayout());
TreeViewer v = new TreeViewer(shell,SWT.FULL_SELECTION);
v.getTree().setLinesVisible(true);
v.getTree().setHeaderVisible(true);
ColumnViewerToolTipSupport.enableFor(v);
v.setContentProvider(new MyContentProvider());
CellLabelProvider labelProvider = new CellLabelProvider() {
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ViewerLabelProvider#getTooltipText(java.lang.Object)
*/
public String getToolTipText(Object element) {
return "Tooltip (" + element + ")";
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ViewerLabelProvider#getTooltipShift(java.lang.Object)
*/
public Point getToolTipShift(Object object) {
return new Point(5,5);
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ViewerLabelProvider#getTooltipDisplayDelayTime(java.lang.Object)
*/
public int getToolTipDisplayDelayTime(Object object) {
return 2000;
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ViewerLabelProvider#getTooltipTimeDisplayed(java.lang.Object)
*/
public int getToolTipTimeDisplayed(Object object) {
return 5000;
}
public void update(ViewerCell cell) {
cell.setText(cell.getElement().toString());
}
};
v.setLabelProvider(labelProvider);
v.setInput("");
shell.setSize(200,200);
shell.open ();
while (!shell.isDisposed()) {
if (!display.readAndDispatch ()) {
display.sleep ();
}
}
display.dispose ();
}
}
分享到:
相关推荐
在文档标题和描述中提到的问题主要涉及到JFace中的TableTree组件在OS X操作系统下的行为异常。 在Windows XP上,TableTree组件在展开或收缩节点时,列宽会保持不变,但在OS X中,当树节点被展开时,包含树的列会...
有问题欢迎来信讨论: talent_marquis@163.com<br><br>才搜索了一下,发现jExplorer这个名字已经泛滥了 <br>最核心代码来自IBM的JFace教程 链接如下: ... <br>已经实现的基本功能: <br>1....
1. SWT控件:包括Button、Text、Table、Tree、Composite等基本和复杂的控件,以及如何使用它们构建用户界面。 2. JFace数据绑定:讲解如何使用IDataProvider和IStructuredModel来实现视图和数据之间的动态同步。 3. ...
Viewer可以看作是一个可定制的数据视图,能够处理各种数据结构,并通过适配器机制与不同的控件(如Table, Tree等)进行绑定。开发者可以通过实现IContentProvider和LabelProvider接口来定义如何显示数据。 2. **...
Viewer提供了数据管理、排序、过滤等功能,并能与 SWT 控件如Table、Tree等无缝集成。 3. **Dialogs and Wizards**:JFace提供了一套标准的对话框和向导实现,如OpenDialog、SaveDialog等,简化了创建用户交互流程...
标题中的"swt/jface.jar"是一个关键组件,它在Java开发环境中用于构建用户界面。SWT(Standard Widget Toolkit)是IBM开发的一个开源GUI库,它提供了与原生操作系统更紧密集成的图形用户界面控件。JFace是建立在SWT...
### JFace教程知识点详解 #### 一、JFace简介与应用场景 **JFace** 是 Eclipse 平台的一个重要组成部分,它提供了一套丰富的 API 来帮助开发者构建基于 SWT(Standard Widget Toolkit)的用户界面。JFace 的核心...
"org.eclipse.jface.rar" 是一个压缩包文件,包含的是Eclipse IDE中JFace库的源代码。Eclipse JFace 是一个用于构建用户界面(UI)的高级Java框架,它是Eclipse平台的重要组成部分,主要设计目的是简化Swing和AWT等...
《SWT_JFace_in_Action》是一本专注于Java编程领域中SWT(Standard Widget Toolkit)和JFace技术的实践指南。这本书深入浅出地讲解了如何使用这两项强大的工具来构建功能丰富的图形用户界面(GUI)。SWT是Eclipse...
3. 在TableViewer的`addColumn()`方法中,使用`setCellEditor()`指定单元格使用的编辑器。 4. 处理CellEditor的`applyEditorValue()`和`editElement()`方法,以确保数据的正确更新和验证。 5. 监听`valueChanged()`...
6. **表和树**:Table和Tree组件用于显示和编辑表格或层次结构的数据。JFace的TableViewer和TreeViewer提供了一种更抽象的方式来操作这些组件,包括数据绑定和排序。 7. **JFace服务**:包括Dialog、...
"mysource-jface"是一个与Java编程相关的项目,主要涉及JFace库的使用。JFace是Eclipse框架的一部分,它提供了一组高级图形用户界面(GUI)组件和工具,简化了SWT(Standard Widget Toolkit)的使用。这篇博客文章...
【SWT/JFace 简介】 SWT(Standard Widget Toolkit)是Java开发者用于创建图形用户界面(GUI)的一种库,它与底层操作系统紧密集成,提供了可移植的API。SWT的优势在于其高性能和与操作系统原生界面的接近,这使得用...
7. **Table and Tree Widgets**:SWT 提供了 Table 和 Tree 控件,允许用户显示和操作数据。在 JFace 中,TableViewer 和 TreeViewer 扩展了这些功能,添加了数据绑定和自定义列渲染等功能。 8. **Layout Managers*...
6. **表和树**:SWT 和 JFace 支持复杂的数据展示,如表格(Table)和树形结构(Tree)。通过实例,我们可以学习如何加载数据、设置列、添加排序和过滤功能,以及处理用户的选择事件。 7. **事件处理**:事件驱动是...
【SWT/JFace从入门到精通】 SWT(Standard Widget Toolkit)和JFace是Eclipse平台下用于构建图形用户界面(GUI)的两个关键库。它们为Java开发者提供了丰富的控件和高级UI功能,使创建桌面应用程序变得简单而强大。...
《Eclipse SWT/Jface核心应用》全面介绍了SWT、JFace和RCP的相关知识。全书共分5篇,第1篇介绍了SWT产生的背景以及SWT的一些基本概念和基础知识。第2篇介绍了SWT基本控件的使用,以及事件处理、布局等SWT基本知识的...
SWT (Standard Widget Toolkit) 和 JFace 是两个用于构建Java图形用户界面(GUI)的开源库,它们在Java开发中特别是在开发桌面应用时扮演着重要角色。本文将深入探讨这两个库,以及如何入门使用它们。 SWT是IBM开发...
JFace是建立在SWT之上的更高层次的抽象框架,简化了GUI开发的复杂性,使得代码更简洁,结构更清晰。 SWT的设计目标是提供与本机系统更紧密的集成,因此它能够创建出与平台原生应用类似的外观和行为。这与Java Swing...
### 使用JFace工具箱的关键知识点 #### 一、JFace工具箱概述 - **定义**:JFace作为Eclipse项目的一部分,提供了一系列高级且易于使用的用户界面组件,这些组件能够帮助开发者快速构建复杂的图形用户界面(GUI)...