X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.jcr.ui.explorer%2Fsrc%2Forg%2Fargeo%2Fjcr%2Fui%2Fexplorer%2Futils%2FJcrUiUtils.java;fp=org.argeo.jcr.ui.explorer%2Fsrc%2Forg%2Fargeo%2Fjcr%2Fui%2Fexplorer%2Futils%2FJcrUiUtils.java;h=0000000000000000000000000000000000000000;hb=21a4ea1fb5380ce1dd763c1ea09067cdd2dfd0f3;hp=ca32113ed52f523c544c7a897aff73b3ec720e5a;hpb=d9c415444754b60b586ee0145d7a382ed132178d;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.jcr.ui.explorer/src/org/argeo/jcr/ui/explorer/utils/JcrUiUtils.java b/org.argeo.jcr.ui.explorer/src/org/argeo/jcr/ui/explorer/utils/JcrUiUtils.java deleted file mode 100644 index ca32113ed..000000000 --- a/org.argeo.jcr.ui.explorer/src/org/argeo/jcr/ui/explorer/utils/JcrUiUtils.java +++ /dev/null @@ -1,179 +0,0 @@ -/* - * 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.argeo.jcr.ui.explorer.utils; - -import javax.jcr.Node; -import javax.jcr.RepositoryException; - -import org.argeo.ArgeoException; -import org.argeo.eclipse.ui.TreeParent; -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 { - - /** Insure that the UI component is not stale, refresh if needed */ - public static void forceRefreshIfNeeded(TreeParent element) { - Node curNode = null; - - boolean doRefresh = false; - - try { - 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 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(); - element.getChildren(); - } - } catch (RepositoryException re) { - throw new ArgeoException( - "Unexpected error while synchronising the UI with the JCR repository", - re); - } - } - - /** - * Insure that a model element is inline with the underlying data by - * cleaning the corresponding subtree and building it again. - */ - public static void forceRebuild(TreeParent element) { - // TODO implement this method if needed. - } - /** - * Workaround to get the alias of the repository that contains the given - * element. As we cannot browse the UI tree upward we recursively browse it - * downward until we find the given element - * */ - // public static String getRepositoryAliasFromITreeElement( - // NodeContentProvider ncp, Object element) { - // RepositoryNode repositoryNode = null; - // if (element instanceof RepositoryNode) - // return ((RepositoryNode) element).getName(); - // else if (element instanceof RepositoryRegister) - // throw new ArgeoException( - // "Cannot get alias for a repository register"); - // - // // Get root elements - // Object[] elements = ncp.getElements(null); - // - // try { - // for (int i = 0; i < elements.length; i++) { - // if (elements[i] instanceof Node) { - // Node curNode = (Node) elements[i]; - // if (curNode.isNodeType(ArgeoTypes.ARGEO_USER_HOME)) { - // // Do nothing, we'll find the node in the "normal" tree - // // and - // // get corresponding alias this way round - // } else - // throw new ArgeoException( - // "Normal nodes should not be at the root of NodeTreeViewer"); - // } else if (elements[i] instanceof RepositoryRegister) { - // RepositoryRegister repositoryRegister = (RepositoryRegister) elements[i]; - // Map repositories = repositoryRegister - // .getRepositories(); - // - // for (String name : repositories.keySet()) { - // boolean found = isElementInCurrentTreePart( - // ncp, - // new RepositoryNode(name, repositories.get(name)), - // (Node) element); - // if (found) - // return name; - // } - // } else - // throw new ArgeoException( - // "Unexpected object class at the root of NodeTreeViewer"); - // } - // } catch (RepositoryException re) { - // throw new ArgeoException( - // "Unexpected error while retrieving Alias name", re); - // } - // return null; - // } - // - // /** implements the recursivity */ - // private static boolean isElementInCurrentTreePart(NodeContentProvider - // ncp, - // Object parentElement, NodParente searchedElement) { - // boolean found = false; - // if (parentElement instanceof WorkspaceNode) { - // WorkspaceNode wn = (WorkspaceNode) parentElement; - // Object[] children = wn.getChildren(); - // int i = children.length - 1; - // while (!found && i >= 0) { - // found = isElementInCurrentTreePart(ncp, children[i], - // searchedElement); - // } - // return found; - // } else if (parentElement instanceof RepositoryNode) { - // RepositoryNode rn = (RepositoryNode) parentElement; - // Object[] children = rn.getChildren(); - // int i = children.length - 1; - // while (!found && i >= 0) { - // found = isElementInCurrentTreePart(ncp, children[i], - // searchedElement); - // } - // return found; - // } else { - // Node node = (Node) parentElement; - // if (node.equals(searchedElement)) - // return true; - // NodeIterator ni; - // try { - // ni = node.getNodes(); - // while (!found && ni.hasNext()) { - // found = isElementInCurrentTreePart(ncp, ni.nextNode(), - // searchedElement); - // } - // } catch (RepositoryException e) { - // throw new ArgeoException("unexpected erreur while recursively" - // + " recovering RepositoryNode for selected object", e); - // } - // - // return found; - // } - // } -}