`
sxw7362693
  • 浏览: 60718 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

过滤对话框

阅读更多
过滤搜索:

import java.util.ArrayList;
import java.util.List;

import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.dialogs.SelectionDialog;

public class FilterViewerDialog extends SelectionDialog
{
	private TreeViewer dataViewer;

	protected FilterViewerDialog(Shell parentShell)
	{
		super(parentShell);
	}

	protected Control createDialogArea(Composite parent)
	{
		Composite composite = (Composite) super.createDialogArea(parent);
		GridLayout layout = new GridLayout();
		layout.marginLeft = 10;
		layout.marginRight = 10;
		layout.marginTop = 10;
		layout.marginBottom = 10;
		GridData gd = new GridData(GridData.FILL_BOTH);
		composite.setLayout(layout);
		gd.widthHint = 300;
		composite.setLayoutData(gd);

		dataViewer = new TreeViewer(composite, SWT.BORDER | SWT.V_SCROLL);
		dataViewer.setContentProvider(new TreeViewerContentProvider());
		dataViewer.setLabelProvider(new LabelProvider());
		dataViewer.setInput(applyInputDatas());
		dataViewer.addFilter(oddFilter);
		dataViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));

		return composite;
	}

	private List applyInputDatas()
	{
		List numbers = new ArrayList();
		for (int i = 0; i < 10; i++)
		{
			numbers.add(i);
		}

		return numbers;
	}

	ViewerFilter oddFilter = new ViewerFilter()
	{
		public boolean select(Viewer viewer, Object parentElement,
				Object element)
		{
			Integer temp = (Integer) element;
			int obj = temp.intValue();
			if (obj % 2 == 0)
				return true;

			return false;
		}
	};
	
	public static void main(String[] args)
	{
		FilterViewerDialog filter = new FilterViewerDialog(null);
		filter.open();
	}
}


import java.util.List;

import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;


public class TreeViewerContentProvider implements ITreeContentProvider
{

	public void dispose()
	{

	}

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

	}

	public Object[] getChildren(Object parentElement)
	{
		if(parentElement instanceof List)
		{
			return ((List) parentElement).toArray();
		}
		return new Object[0];
	}

	public Object getParent(Object element)
	{
		return null;
	}

	public boolean hasChildren(Object element)
	{
		if(element instanceof List)
		{
			return ((List) element).size() > 0;
		}
		return false;
	}

	public Object[] getElements(Object inputElement)
	{
		return getChildren(inputElement);
	}

}







 Viewer提供一套机制ViewerFilter,给Viewer展示过滤

分享到:
评论

相关推荐

    有过滤功能的DataGridView

    本项目“有过滤功能的DataGridView”旨在增强默认的`DataGridView`控件,通过添加过滤功能,使得用户能够更方便地管理和查看大量数据。 过滤功能是数据处理中的重要一环,它允许用户根据特定条件筛选数据,只显示...

    AdvancedDataGridViewDataModel-master.zip

    本项目"AdvancedDataGridViewDataModel-master.zip"就是针对这一需求的一个示例,它引入了一个高级的数据模型,特别是添加了仿Excel的过滤对话框,允许用户动态设置过滤条件,从而提升数据筛选的灵活性和效率。...

    易语言通用对话框设置过滤器方法

    易语言通用对话框设置过滤器方法 易语言是一门以中文作为程序代码编程语言,以“易”著称。创始人为吴涛。早期版本的名字为E语言。易语言最早的版本的发布可追溯至2000年9月11日。创造易语言的初衷是进行用中文来...

    公用对话框,公用对话框

    这些函数提供了丰富的选项,允许开发者自定义对话框的行为和外观,如设置默认文件类型、初始目录、文件过滤规则等。 除了基本的文件操作,还有其他类型的公用对话框,比如`ColorDialog`用于选择颜色,`FontDialog`...

    易语言通用对话框模块

    例如,调用“打开文件”对话框,需要指定对话框的初始路径、过滤条件等。当用户在对话框中做出选择后,系统会返回相应的结果,如选定的文件路径、颜色值或字体信息,开发者再根据这些信息进行后续处理。 "易语言...

    debugview使用

    在工具栏中选择 Edit→Filter/Highlight 按钮,弹出过滤对话框,设置过滤功能。include 表示调试信息包含的字符串,exclue 表示不包含的字符串,多个字符串使用“;”号隔开。 2. 保存日志信息 DebugView 也提供了...

    清新灵动、高可定制的弹出对话框.zip

    弹出对话框作为用户交互的关键元素,经常被用来显示警告、确认、选项等信息。"清新灵动、高可定制的弹出对话框.zip"是一个专为iOS平台设计的开源项目,旨在提供一种替代苹果原生UIAlertController警报样式的解决方案...

    打开对话框读取文件和打开对话框保存文件

    根据提供的标题、描述、标签及部分内容,我们可以总结出与C#中的文件对话框相关的知识点,主要包括如何使用`OpenFileDialog`来打开文件以及如何利用`SaveFileDialog`来保存文件。 ### 一、使用 OpenFileDialog 打开...

    EAS-BOS-典型客户端代码

    这段代码实现了如何初始化一个自定义的过滤对话框,并设置了其高度、宽度及标题等属性。 2. **设置列表界面的默认过滤条件**: - 可以通过设置`EntityViewInfo`对象的`filter`属性来实现列表数据的默认过滤。 - ...

    模拟资源管理器

    9. **FilterDlg.cpp**:过滤对话框的实现,可能用于文件筛选或搜索功能。 10. **StdAfx.cpp**:预编译头文件的实现,包含了一些常用的、频繁使用的头文件,提高编译速度。 通过这些源代码文件,我们可以看出模拟...

    Ehlib V5.2.84汉化文件

    3. `DBGridEhSimpleFilterDlg.dfm`:此文件涉及Ehlib的简单过滤对话框,它允许用户通过简单的条件对数据库数据进行筛选,提高了数据处理的交互性。 4. `DBGridEhFindDlgs.dfm`:这个文件可能包含了数据库网格的查找...

    CXGRID 6 汉化文件

    - **cxFilterDialog.ddp、cxFilterDialog.dfm**:这两个文件与过滤对话框有关,DDP是Delphi项目文件,DFM则包含了对话框的界面设计和控件布局。 - **cxFilter.pas**:这是过滤功能的源代码文件,可能包含了过滤条件...

    WINDOWS对话框 .PPT

    它可以设置文件类型过滤,提供多选和预览功能,极大地简化了文件操作的用户界面。 2. **字体选择对话框**:CFontDialog类是MFC中用于选择字体和字体属性的对话框,它可以帮助用户轻松地定制文本显示的样式。 非...

    打开文件夹对话框打开文件夹对话框.

    5. **自定义选项**:开发人员可以根据需求定制对话框的行为,如设置默认路径、过滤显示的文件夹类型、设置是否显示隐藏文件等。 6. **事件处理**:编程时,需要监听对话框的关闭事件,通常会有一个返回值表示用户...

    通用对话框使用方法全解,“打开”对话框,“另存为”对话框,“字体”对话框,“打印”对话框,

    开发者可以通过设置其属性(如`Filter`来指定文件类型过滤,`InitialDirectory`来设定默认打开的目录)并调用`ShowDialog`方法来显示对话框。用户选择文件后,`FileName`属性将返回所选文件的路径。 2. **“另存为...

    C#打开文件对话框

    此处的 `"文本文件 (*.txt)|*.txt"` 表示仅显示 `.txt` 文件,并且在对话框中的过滤器列表中显示为“文本文件”。而 `"所有文件 (*.*)|*.*"` 则表示显示所有类型的文件。 ###### 2.3.3 InitialDirectory 属性 `...

    DevExpress CxGrid用法

    过滤功能则可通过Filter属性或使用专用的过滤对话框来实现,让用户自行选择显示哪些记录。 除了基础功能,CxGrid还提供了一些高级特性,如分组、汇总和行细节。分组功能可以将数据按照特定字段进行折叠和展开,方便...

    通用对话框用法例子

    1. **初始化**:首先需要初始化对话框结构体,如`OPENFILENAME`或`CHOOSECOLOR`,设置初始参数,如默认文件路径、过滤器等。 2. **调用API**:使用对应的API函数显示对话框,例如`GetOpenFileName`、`...

    Qt 文件选择对话框

    在Qt中,你可以通过创建`QFileDialog`的对象并调用其方法来打开文件对话框。例如,以下代码将显示一个用于打开文件的对话框: ```cpp QFileDialog dialog(this); if (dialog.exec() == QFileDialog::Accept) { ...

Global site tag (gtag.js) - Google Analytics