X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=org.argeo.suite.e4%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fe4%2Fparts%2FQuickSearchView.java;h=ffe8da99056f905c2568b24bcc208985c809076c;hp=3f95d8c4715ec1fd45579f92df20b6f1c4458bb4;hb=865a12fed948636c686b5958381227ca3ed52fb5;hpb=0508f30bba143164a0fe83e3e7343e9375a4b6f4 diff --git a/org.argeo.suite.e4/src/org/argeo/suite/e4/parts/QuickSearchView.java b/org.argeo.suite.e4/src/org/argeo/suite/e4/parts/QuickSearchView.java index 3f95d8c..ffe8da9 100644 --- a/org.argeo.suite.e4/src/org/argeo/suite/e4/parts/QuickSearchView.java +++ b/org.argeo.suite.e4/src/org/argeo/suite/e4/parts/QuickSearchView.java @@ -2,6 +2,8 @@ package org.argeo.suite.e4.parts; import static org.argeo.eclipse.ui.EclipseUiUtils.notEmpty; +import java.util.List; + import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; import javax.inject.Inject; @@ -33,9 +35,14 @@ import org.argeo.connect.util.XPathUtils; import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.jcr.JcrUtils; import org.argeo.people.PeopleService; +import org.eclipse.e4.ui.di.Focus; +import org.eclipse.e4.ui.workbench.modeling.ESelectionService; import org.eclipse.jface.layout.TableColumnLayout; import org.eclipse.jface.viewers.ColumnWeightData; import org.eclipse.jface.viewers.ILabelProvider; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.swt.SWT; @@ -67,6 +74,9 @@ public class QuickSearchView implements Refreshable { @Inject private SystemWorkbenchService systemWorkbenchService; + @Inject + private ESelectionService selectionService; + // This page widgets private TableViewer entityViewer; private Text filterTxt; @@ -89,6 +99,7 @@ public class QuickSearchView implements Refreshable { refreshFilteredList(); try { + // new String[] { ConnectTypes.CONNECT_ENTITY } session.getWorkspace().getObservationManager().addEventListener(new EventListener() { @Override @@ -96,7 +107,7 @@ public class QuickSearchView implements Refreshable { parent.getDisplay().asyncExec(() -> refreshFilteredList()); } }, Event.PROPERTY_CHANGED | Event.NODE_ADDED | Event.NODE_REMOVED | Event.PROPERTY_ADDED, "/", true, null, - new String[] { ConnectTypes.CONNECT_ENTITY }, true); + null, false); } catch (RepositoryException e) { throw new ConnectException("Cannot add JCR observer", e); } @@ -175,6 +186,16 @@ public class QuickSearchView implements Refreshable { v.setContentProvider(new BasicNodeListContentProvider()); v.addDoubleClickListener(new JcrViewerDClickListener(systemWorkbenchService)); + v.addSelectionChangedListener(new ISelectionChangedListener() { + public void selectionChanged(SelectionChangedEvent event) { + IStructuredSelection selection = (IStructuredSelection) event.getSelection(); + List lst = selection.toList(); + if (lst != null && !lst.isEmpty()) + selectionService.setSelection(selection.toList()); + else + selectionService.setSelection(null); + } + }); return v; } @@ -183,7 +204,7 @@ public class QuickSearchView implements Refreshable { JcrUtils.logoutQuietly(session); } - + @Focus public void setFocus() { refreshFilteredList(); filterTxt.setFocus(); @@ -217,6 +238,7 @@ public class QuickSearchView implements Refreshable { // } long begin = System.currentTimeMillis(); + // session.refresh(false); Query xpathQuery = XPathUtils.createQuery(session, xpathQueryStr); xpathQuery.setLimit(ConnectUiConstants.SEARCH_DEFAULT_LIMIT); @@ -234,23 +256,24 @@ public class QuickSearchView implements Refreshable { } } -// public void setRepository(Repository repository) { -// this.repository = repository; -// } -// -// public void setResourcesService(ResourcesService resourcesService) { -// this.resourcesService = resourcesService; -// } -// -// public void setActivitiesService(ActivitiesService activitiesService) { -// this.activitiesService = activitiesService; -// } -// -// public void setPeopleService(PeopleService peopleService) { -// this.peopleService = peopleService; -// } -// -// public void setSystemWorkbenchService(SystemWorkbenchService systemWorkbenchService) { -// this.systemWorkbenchService = systemWorkbenchService; -// } + // public void setRepository(Repository repository) { + // this.repository = repository; + // } + // + // public void setResourcesService(ResourcesService resourcesService) { + // this.resourcesService = resourcesService; + // } + // + // public void setActivitiesService(ActivitiesService activitiesService) { + // this.activitiesService = activitiesService; + // } + // + // public void setPeopleService(PeopleService peopleService) { + // this.peopleService = peopleService; + // } + // + // public void setSystemWorkbenchService(SystemWorkbenchService + // systemWorkbenchService) { + // this.systemWorkbenchService = systemWorkbenchService; + // } }