过滤搜索:
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`控件,通过添加过滤功能,使得用户能够更方便地管理和查看大量数据。 过滤功能是数据处理中的重要一环,它允许用户根据特定条件筛选数据,只显示...
本项目"AdvancedDataGridViewDataModel-master.zip"就是针对这一需求的一个示例,它引入了一个高级的数据模型,特别是添加了仿Excel的过滤对话框,允许用户动态设置过滤条件,从而提升数据筛选的灵活性和效率。...
易语言通用对话框设置过滤器方法 易语言是一门以中文作为程序代码编程语言,以“易”著称。创始人为吴涛。早期版本的名字为E语言。易语言最早的版本的发布可追溯至2000年9月11日。创造易语言的初衷是进行用中文来...
这些函数提供了丰富的选项,允许开发者自定义对话框的行为和外观,如设置默认文件类型、初始目录、文件过滤规则等。 除了基本的文件操作,还有其他类型的公用对话框,比如`ColorDialog`用于选择颜色,`FontDialog`...
例如,调用“打开文件”对话框,需要指定对话框的初始路径、过滤条件等。当用户在对话框中做出选择后,系统会返回相应的结果,如选定的文件路径、颜色值或字体信息,开发者再根据这些信息进行后续处理。 "易语言...
在工具栏中选择 Edit→Filter/Highlight 按钮,弹出过滤对话框,设置过滤功能。include 表示调试信息包含的字符串,exclue 表示不包含的字符串,多个字符串使用“;”号隔开。 2. 保存日志信息 DebugView 也提供了...
弹出对话框作为用户交互的关键元素,经常被用来显示警告、确认、选项等信息。"清新灵动、高可定制的弹出对话框.zip"是一个专为iOS平台设计的开源项目,旨在提供一种替代苹果原生UIAlertController警报样式的解决方案...
根据提供的标题、描述、标签及部分内容,我们可以总结出与C#中的文件对话框相关的知识点,主要包括如何使用`OpenFileDialog`来打开文件以及如何利用`SaveFileDialog`来保存文件。 ### 一、使用 OpenFileDialog 打开...
这段代码实现了如何初始化一个自定义的过滤对话框,并设置了其高度、宽度及标题等属性。 2. **设置列表界面的默认过滤条件**: - 可以通过设置`EntityViewInfo`对象的`filter`属性来实现列表数据的默认过滤。 - ...
9. **FilterDlg.cpp**:过滤对话框的实现,可能用于文件筛选或搜索功能。 10. **StdAfx.cpp**:预编译头文件的实现,包含了一些常用的、频繁使用的头文件,提高编译速度。 通过这些源代码文件,我们可以看出模拟...
3. `DBGridEhSimpleFilterDlg.dfm`:此文件涉及Ehlib的简单过滤对话框,它允许用户通过简单的条件对数据库数据进行筛选,提高了数据处理的交互性。 4. `DBGridEhFindDlgs.dfm`:这个文件可能包含了数据库网格的查找...
- **cxFilterDialog.ddp、cxFilterDialog.dfm**:这两个文件与过滤对话框有关,DDP是Delphi项目文件,DFM则包含了对话框的界面设计和控件布局。 - **cxFilter.pas**:这是过滤功能的源代码文件,可能包含了过滤条件...
它可以设置文件类型过滤,提供多选和预览功能,极大地简化了文件操作的用户界面。 2. **字体选择对话框**:CFontDialog类是MFC中用于选择字体和字体属性的对话框,它可以帮助用户轻松地定制文本显示的样式。 非...
5. **自定义选项**:开发人员可以根据需求定制对话框的行为,如设置默认路径、过滤显示的文件夹类型、设置是否显示隐藏文件等。 6. **事件处理**:编程时,需要监听对话框的关闭事件,通常会有一个返回值表示用户...
开发者可以通过设置其属性(如`Filter`来指定文件类型过滤,`InitialDirectory`来设定默认打开的目录)并调用`ShowDialog`方法来显示对话框。用户选择文件后,`FileName`属性将返回所选文件的路径。 2. **“另存为...
此处的 `"文本文件 (*.txt)|*.txt"` 表示仅显示 `.txt` 文件,并且在对话框中的过滤器列表中显示为“文本文件”。而 `"所有文件 (*.*)|*.*"` 则表示显示所有类型的文件。 ###### 2.3.3 InitialDirectory 属性 `...
过滤功能则可通过Filter属性或使用专用的过滤对话框来实现,让用户自行选择显示哪些记录。 除了基础功能,CxGrid还提供了一些高级特性,如分组、汇总和行细节。分组功能可以将数据按照特定字段进行折叠和展开,方便...
1. **初始化**:首先需要初始化对话框结构体,如`OPENFILENAME`或`CHOOSECOLOR`,设置初始参数,如默认文件路径、过滤器等。 2. **调用API**:使用对应的API函数显示对话框,例如`GetOpenFileName`、`...
在Qt中,你可以通过创建`QFileDialog`的对象并调用其方法来打开文件对话框。例如,以下代码将显示一个用于打开文件的对话框: ```cpp QFileDialog dialog(this); if (dialog.exec() == QFileDialog::Accept) { ...