-package org.simantics.workbench.internal.contributions.search;\r
-\r
-\r
-import org.eclipse.core.expressions.Expression;\r
-import org.eclipse.ui.IWorkbench;\r
-import org.eclipse.ui.IWorkbenchPartSite;\r
-import org.eclipse.ui.IWorkbenchWindow;\r
-import org.eclipse.ui.internal.expressions.ActivePartExpression;\r
-import org.eclipse.ui.internal.expressions.WorkbenchWindowExpression;\r
-import org.eclipse.ui.internal.services.IWorkbenchLocationService;\r
-import org.eclipse.ui.services.AbstractServiceFactory;\r
-import org.eclipse.ui.services.IServiceLocator;\r
-import org.simantics.workbench.search.ISearchService;\r
-\r
-public class SearchServiceFactory extends AbstractServiceFactory {\r
-\r
-\r
- @SuppressWarnings("rawtypes")\r
- @Override\r
- public Object create(Class serviceInterface, IServiceLocator parentLocator,\r
- IServiceLocator locator) {\r
- if (!ISearchService.class.equals(serviceInterface))\r
- return null;\r
- IWorkbenchLocationService wls = (IWorkbenchLocationService) locator\r
- .getService(IWorkbenchLocationService.class);\r
- final IWorkbench wb = wls.getWorkbench();\r
- if (wb == null) {\r
- return null;\r
- }\r
- \r
- Object parent = parentLocator.getService(serviceInterface);\r
- if (parent == null) {\r
- return new SearchServiceImpl();\r
- }\r
- final IWorkbenchWindow window = wls.getWorkbenchWindow();\r
- final IWorkbenchPartSite site = wls.getPartSite();\r
- if (site == null) {\r
- Expression exp = new WorkbenchWindowExpression(window);\r
- return new SlaveSearchService((ISearchService)parent, exp);\r
- }\r
- if (parent instanceof SlaveSearchService) {\r
- Expression parentExp = ((SlaveSearchService) parent).getDefaultExpression();\r
- return new NestableSearchService((ISearchService)parent, parentExp);\r
- }\r
- \r
- Expression exp = new ActivePartExpression(site.getPart());\r
- return new SlaveSearchService((ISearchService)parent, exp);\r
- }\r
-\r
-}\r
+package org.simantics.workbench.internal.contributions.search;
+
+
+import org.eclipse.core.expressions.Expression;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.internal.expressions.ActivePartExpression;
+import org.eclipse.ui.internal.expressions.WorkbenchWindowExpression;
+import org.eclipse.ui.internal.services.IWorkbenchLocationService;
+import org.eclipse.ui.services.AbstractServiceFactory;
+import org.eclipse.ui.services.IServiceLocator;
+import org.simantics.workbench.search.ISearchService;
+
+public class SearchServiceFactory extends AbstractServiceFactory {
+
+
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object create(Class serviceInterface, IServiceLocator parentLocator,
+ IServiceLocator locator) {
+ if (!ISearchService.class.equals(serviceInterface))
+ return null;
+ IWorkbenchLocationService wls = (IWorkbenchLocationService) locator
+ .getService(IWorkbenchLocationService.class);
+ final IWorkbench wb = wls.getWorkbench();
+ if (wb == null) {
+ return null;
+ }
+
+ Object parent = parentLocator.getService(serviceInterface);
+ if (parent == null) {
+ return new SearchServiceImpl();
+ }
+ final IWorkbenchWindow window = wls.getWorkbenchWindow();
+ final IWorkbenchPartSite site = wls.getPartSite();
+ if (site == null) {
+ Expression exp = new WorkbenchWindowExpression(window);
+ return new SlaveSearchService((ISearchService)parent, exp);
+ }
+ if (parent instanceof SlaveSearchService) {
+ Expression parentExp = ((SlaveSearchService) parent).getDefaultExpression();
+ return new NestableSearchService((ISearchService)parent, parentExp);
+ }
+
+ Expression exp = new ActivePartExpression(site.getPart());
+ return new SlaveSearchService((ISearchService)parent, exp);
+ }
+
+}