/*
- * Copyright (C) 2007-2012 Mathieu Baudier
+ * Copyright (C) 2007-2012 Argeo GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
import org.argeo.ArgeoException;
import org.argeo.eclipse.ui.TreeParent;
-import org.argeo.jcr.ui.explorer.model.RepositoriesNode;
-import org.argeo.jcr.ui.explorer.model.RepositoryNode;
-import org.argeo.jcr.ui.explorer.model.SingleJcrNode;
-import org.argeo.jcr.ui.explorer.model.WorkspaceNode;
+import org.argeo.jcr.ui.explorer.model.RepositoriesElem;
+import org.argeo.jcr.ui.explorer.model.RepositoryElem;
+import org.argeo.jcr.ui.explorer.model.SingleJcrNodeElem;
+import org.argeo.jcr.ui.explorer.model.WorkspaceElem;
/** Centralizes some useful methods to build UIs with JCR */
public class JcrUiUtils {
boolean doRefresh = false;
try {
- if (element instanceof SingleJcrNode) {
- curNode = ((SingleJcrNode) element).getNode();
- } else if (element instanceof WorkspaceNode) {
- curNode = ((WorkspaceNode) element).getRootNode();
+ if (element instanceof SingleJcrNodeElem) {
+ curNode = ((SingleJcrNodeElem) element).getNode();
+ } else if (element instanceof WorkspaceElem) {
+ curNode = ((WorkspaceElem) element).getRootNode();
}
if (curNode != null
&& element.getChildren().length != curNode.getNodes()
.getSize())
doRefresh = true;
- else if (element instanceof RepositoryNode) {
- RepositoryNode rn = (RepositoryNode) element;
- String[] wkpNames = rn.getDefaultSession().getWorkspace()
- .getAccessibleWorkspaceNames();
- if (element.getChildren().length != wkpNames.length)
- doRefresh = true;
- } else if (element instanceof RepositoriesNode) {
- RepositoriesNode rn = (RepositoriesNode) element;
- if (element.getChildren().length != rn.getRepositoryRegister()
- .getRepositories().size())
- doRefresh = true;
+ else if (element instanceof RepositoryElem) {
+ RepositoryElem rn = (RepositoryElem) element;
+ if (rn.isConnected()) {
+ String[] wkpNames = rn.getAccessibleWorkspaceNames();
+ if (element.getChildren().length != wkpNames.length)
+ doRefresh = true;
+ }
+ } else if (element instanceof RepositoriesElem) {
+ doRefresh = true;
+ // Always force refresh for RepositoriesElem : the condition
+ // below does not take remote repository into account and it is
+ // not trivial to do so.
+
+ // RepositoriesElem rn = (RepositoriesElem) element;
+ // if (element.getChildren().length !=
+ // rn.getRepositoryRegister()
+ // .getRepositories().size())
+ // doRefresh = true;
}
if (doRefresh) {
element.clearChildren();