X-Git-Url: http://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=core%2Forg.argeo.suite.ui%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fui%2Fwidgets%2FTreeOrSearchArea.java;fp=core%2Forg.argeo.suite.ui%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fui%2Fwidgets%2FTreeOrSearchArea.java;h=3434ed54f5d0cb84809553ba6a6e65fb50700a8e;hp=0000000000000000000000000000000000000000;hb=e8d31e8321bb18489b37a53a32db833f8efb5ddf;hpb=44b2a06f610d0a13947af46f0f27e7d814865972 diff --git a/core/org.argeo.suite.ui/src/org/argeo/suite/ui/widgets/TreeOrSearchArea.java b/core/org.argeo.suite.ui/src/org/argeo/suite/ui/widgets/TreeOrSearchArea.java new file mode 100644 index 0000000..3434ed5 --- /dev/null +++ b/core/org.argeo.suite.ui/src/org/argeo/suite/ui/widgets/TreeOrSearchArea.java @@ -0,0 +1,74 @@ +package org.argeo.suite.ui.widgets; + +import org.argeo.cms.ui.util.CmsUiUtils; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.StackLayout; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Text; + +/** + * Displays a tree by default, which becomes a list if the search text field is + * used. + */ +public class TreeOrSearchArea extends Composite { + private static final long serialVersionUID = -1302546480076719532L; + + private Text searchT; + private StackLayout bodyLayout; + + private TreeViewer treeViewer; + private TreeViewer searchResultsViewer; + + public TreeOrSearchArea(Composite parent, int style) { + super(parent, style); + createUi(this); + } + + protected void createUi(Composite parent) { + parent.setLayout(new GridLayout()); + Composite searchC = new Composite(parent, SWT.NONE); + searchC.setLayout(new GridLayout()); + searchC.setLayoutData(CmsUiUtils.fillWidth()); + createSearchUi(searchC); + + Composite bodyC = new Composite(parent, SWT.NONE); + bodyC.setLayoutData(CmsUiUtils.fillAll()); + bodyLayout = new StackLayout(); + bodyC.setLayout(bodyLayout); + Composite treeC = new Composite(bodyC, SWT.NONE); + createTreeUi(treeC); + Composite searchResultsC = new Composite(bodyC, SWT.NONE); + createSearchResultsUi(searchResultsC); + + bodyLayout.topControl = treeC; + } + + protected void createSearchUi(Composite parent) { + parent.setLayout(CmsUiUtils.noSpaceGridLayout()); + searchT = new Text(parent, SWT.MULTI | SWT.BORDER); + searchT.setLayoutData(CmsUiUtils.fillWidth()); + } + + protected void createTreeUi(Composite parent) { + parent.setLayout(CmsUiUtils.noSpaceGridLayout()); + treeViewer = new TreeViewer(parent); + treeViewer.getTree().setLayoutData(CmsUiUtils.fillAll()); + } + + protected void createSearchResultsUi(Composite parent) { + parent.setLayout(CmsUiUtils.noSpaceGridLayout()); + searchResultsViewer = new TreeViewer(parent); + searchResultsViewer.getTree().setLayoutData(CmsUiUtils.fillAll()); + } + + public TreeViewer getTreeViewer() { + return treeViewer; + } + + public TreeViewer getSearchResultsViewer() { + return searchResultsViewer; + } + +}