import org.argeo.slc.akb.AkbNames;\r
import org.argeo.slc.akb.AkbTypes;\r
import org.argeo.slc.akb.ui.AkbUiPlugin;\r
+import org.argeo.slc.akb.ui.AkbUiUtils;\r
import org.argeo.slc.akb.ui.commands.DeleteAkbNodes;\r
import org.argeo.slc.akb.ui.commands.OpenAkbNodeEditor;\r
import org.argeo.slc.akb.ui.providers.AkbTreeLabelProvider;\r
private EventListener allResultsObserver = null;\r
private final static String[] observedNodeTypesUnderAllResults = {\r
AkbTypes.AKB_ENV_TEMPLATE, AkbTypes.AKB_CONNECTOR_ALIAS,\r
- AkbTypes.AKB_ITEM, AkbTypes.AKB_ITEM_FOLDER };\r
+ AkbTypes.AKB_ITEM, AkbTypes.AKB_ITEM_FOLDER,\r
+ AkbTypes.AKB_CONNECTOR_FOLDER };\r
\r
// private EventListener myResultsObserver = null;\r
// private EventListener allResultsObserver = null;\r
// sashForm.setWeights(getWeights());\r
\r
// setOrderedInput(resultTreeViewer);\r
-\r
- // Initialize observer\r
- // try {\r
- // ObservationManager observationManager = session.getWorkspace()\r
- // .getObservationManager();\r
- // myResultsObserver = new MyResultsObserver(resultTreeViewer\r
- // .getTree().getDisplay());\r
- // allResultsObserver = new AllResultsObserver(resultTreeViewer\r
- // .getTree().getDisplay());\r
- //\r
- // // observe tree changes under MyResults\r
- // observationManager.addEventListener(myResultsObserver,\r
- // Event.NODE_ADDED | Event.NODE_REMOVED,\r
- // SlcJcrResultUtils.getMyResultsBasePath(session), true,\r
- // null, observedNodeTypesUnderMyResult, false);\r
- // // observe tree changes under All results\r
- // observationManager.addEventListener(allResultsObserver,\r
- // Event.NODE_ADDED | Event.NODE_REMOVED,\r
- // SlcJcrResultUtils.getSlcResultsBasePath(session), true,\r
- // null, observedNodeTypesUnderAllResults, false);\r
- // } catch (RepositoryException e) {\r
- // throw new SlcException("Cannot register listeners", e);\r
- // }\r
}\r
\r
/**\r
\r
// The main tree viewer\r
protected TreeViewer createResultsTreeViewer(Composite parent) {\r
+ parent.setLayout(AkbUiUtils.gridLayoutNoBorder());\r
int style = SWT.BORDER | SWT.MULTI;\r
\r
TreeViewer viewer = new TreeViewer(parent, style);\r
\r
protected void onEventInUiThread(List<Event> events)\r
throws RepositoryException {\r
- resultTreeViewer.setInput(initializeResultTree());\r
- // if (lastSelectedSourceElementParent != null)\r
- // refresh(lastSelectedSourceElementParent);\r
+ boolean fullRefresh = false;\r
+\r
+ eventLoop: for (Event event : events) {\r
+ String currPath = event.getPath();\r
+ if (session.nodeExists(currPath)) {\r
+ Node node = session.getNode(currPath);\r
+ if (node.isNodeType(AkbTypes.AKB_ENV_TEMPLATE)) {\r
+ fullRefresh = true;\r
+ break eventLoop;\r
+ }\r
+ }\r
+ }\r
+\r
+ Object[] visibles = resultTreeViewer.getExpandedElements();\r
+ if (fullRefresh)\r
+ resultTreeViewer.setInput(initializeResultTree());\r
+ else\r
+ resultTreeViewer.refresh();\r
+\r
+ resultTreeViewer.setExpandedElements(visibles);\r
}\r
}\r
\r
\r
private Node[] initializeResultTree() {\r
try {\r
-\r
NodeIterator ni = templatesParentNode.getNodes();\r
List<Node> templates = new ArrayList<Node>();\r
\r
}\r
\r
Node[] templateArr = templates.toArray(new Node[templates.size()]);\r
-\r
return templateArr;\r
} catch (RepositoryException re) {\r
throw new AkbException("Error while initializing templates Tree.",\r