diff options
Diffstat (limited to 'core/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegistryNode.java')
-rw-r--r-- | core/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegistryNode.java | 249 |
1 files changed, 249 insertions, 0 deletions
diff --git a/core/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegistryNode.java b/core/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegistryNode.java new file mode 100644 index 000000000..728784343 --- /dev/null +++ b/core/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/RegistryNode.java @@ -0,0 +1,249 @@ +/******************************************************************************* + * Copyright (c) 2001, 2006 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + * yyyymmdd bug Email and other contact information + * -------- -------- ----------------------------------------------------------- + * 20060427 136449 brunssen@us.ibm.com - Vince Brunssen + *******************************************************************************/ + +package org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective; + +import java.util.Vector; +import org.eclipse.wst.ws.internal.datamodel.ElementAdapter; +import org.eclipse.wst.ws.internal.datamodel.RelAddEvent; +import org.eclipse.wst.ws.internal.datamodel.RelRemoveEvent; +import org.eclipse.wst.ws.internal.explorer.platform.constants.ModelConstants; +import org.eclipse.wst.ws.internal.explorer.platform.datamodel.TreeElement; +import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node; +import org.eclipse.wst.ws.internal.explorer.platform.perspective.NodeManager; +import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.UDDIActionInputs; +import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.UDDIModelConstants; +import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.PublishedItemsElement; +import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.QueryElement; +import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.QueryParentElement; +import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.RegistryElement; + +public class RegistryNode extends UDDINavigatorNode +{ + private RegistryDetailsTool regDetailsTool_; + private RegPublishTool regPublishTool_; + private LoginTool loginTool_; + + public static final String IMAGE_PATH_STANDARD = "uddi/images/registry.gif"; + public static final String IMAGE_PATH_WITH_USER_DEFINED_CATEGORIES = "uddi/images/regstrycat_obj.gif"; + + public RegistryNode(TreeElement element,NodeManager nodeManager,int nodeDepth,String imagePath) + { + super(element,nodeManager,nodeDepth,imagePath); + element.addListener(new ElementAdapter() + { + public void relAdded(RelAddEvent event) + { + String rel = event.getOutBoundRelName(); + if (rel.equals(UDDIModelConstants.REL_QUERIES_PARENT)) + { + QueryParentElement queryParentElement = (QueryParentElement)event.getParentElement(); + createChildNode(queryParentElement); + } + else if (isPublishedItemsRel(rel)) + { + PublishedItemsElement publishedItemsElement = (PublishedItemsElement)event.getParentElement(); + createChildNode(publishedItemsElement); + } + } + public void relRemoved(RelRemoveEvent event) + { + TreeElement childElement = null; + String inBoundRelName = event.getInBoundRelName(); + String outBoundRelName = event.getOutBoundRelName(); + if (inBoundRelName.equals(UDDIModelConstants.REL_QUERIES_PARENT) || isPublishedItemsRel(inBoundRelName)) + childElement = (TreeElement)event.getInboundElement(); + else if (outBoundRelName.equals(UDDIModelConstants.REL_QUERIES_PARENT) || isPublishedItemsRel(outBoundRelName)) + childElement = (TreeElement)event.getOutBoundElement(); + + if (childElement != null) + removeChildNode(childElement); + } + }); + UDDIPerspective uddiPerspective = nodeManager_.getController().getUDDIPerspective(); + element.connect(new QueryParentElement(uddiPerspective.getMessage("NODE_NAME_QUERIES_FOLDER"),element_.getModel()),UDDIModelConstants.REL_QUERIES_PARENT,ModelConstants.REL_OWNER); + element.connect(new PublishedItemsElement(UDDIActionInputs.QUERY_ITEM_BUSINESSES,uddiPerspective.getMessage("NODE_NAME_PUBLISHED_BUSINESSES_FOLDER"),element_.getModel()),UDDIModelConstants.REL_PUBLISHED_BUSINESSES_PARENT,ModelConstants.REL_OWNER); + element.connect(new PublishedItemsElement(UDDIActionInputs.QUERY_ITEM_SERVICES,uddiPerspective.getMessage("NODE_NAME_PUBLISHED_SERVICES_FOLDER"),element_.getModel()),UDDIModelConstants.REL_PUBLISHED_SERVICES_PARENT,ModelConstants.REL_OWNER); + element.connect(new PublishedItemsElement(UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES,uddiPerspective.getMessage("NODE_NAME_PUBLISHED_SERVICE_INTERFACES_FOLDER"),element_.getModel()),UDDIModelConstants.REL_PUBLISHED_SERVICE_INTERFACES_PARENT,ModelConstants.REL_OWNER); + setVisibilityOfChildren(false); + } + + private final boolean isPublishedItemsRel(String rel) + { + return rel.equals(UDDIModelConstants.REL_PUBLISHED_BUSINESSES_PARENT) || rel.equals(UDDIModelConstants.REL_PUBLISHED_SERVICES_PARENT) || rel.equals(UDDIModelConstants.REL_PUBLISHED_SERVICE_INTERFACES_PARENT); + } + + private final void createChildNode(QueryParentElement queryParentElement) + { + QueryParentNode queryParentNode = new QueryParentNode(queryParentElement,nodeManager_,nodeDepth_+1); + addChild(queryParentNode); + } + + private final void createChildNode(PublishedItemsElement publishedItemsElement) + { + PublishedItemsNode publishedItemsNode = new PublishedItemsNode(publishedItemsElement,nodeManager_,nodeDepth_+1); + addChild(publishedItemsNode); + } + + protected final void initTools() + { + nodeManager_.getController(); + UDDIPerspective uddiPerspective = nodeManager_.getController().getUDDIPerspective(); + regDetailsTool_ = new RegistryDetailsTool(toolManager_ ,uddiPerspective.getMessage("ALT_REGISTRY_DETAILS")); + RegFindTool regFindTool = new RegFindTool(toolManager_,uddiPerspective.getMessage("ALT_FIND")); + regPublishTool_ = new RegPublishTool(toolManager_,uddiPerspective.getMessage("ALT_PUBLISH")); + loginTool_ = new LoginTool(toolManager_, uddiPerspective.getMessage("ALT_LOGIN")); + new AddToFavoritesTool(toolManager_,uddiPerspective.getMessage("ALT_ADD_TO_FAVORITES")); + regFindTool.addAuthenticationProperties((RegistryElement)element_); + regPublishTool_.addAuthenticationProperties((RegistryElement)element_); + } + + public final RegistryDetailsTool getRegDetailsTool() + { + return regDetailsTool_; + } + + public final RegPublishTool getRegPublishTool() + { + return regPublishTool_; + } + + public final LoginTool getLoginTool() + { + return loginTool_; + } + + private final void addDiscoveredNodes(Vector allNodes,Node queryParentNode,int queryType) + { + Vector queryNodes = queryParentNode.getChildNodes(); + for (int i=0;i<queryNodes.size();i++) + { + QueryNode queryNode = (QueryNode)queryNodes.elementAt(i); + QueryElement queryElement = (QueryElement)queryNode.getTreeElement(); + if (queryType == UDDIActionInputs.QUERY_ITEM_QUERIES) + allNodes.addElement(queryNode); + else if (queryElement.getQueryType() == queryType) + { + Vector discoveredNodes = queryNode.getChildNodes(); + for (int j=0;j<discoveredNodes.size();j++) + allNodes.addElement(discoveredNodes.elementAt(j)); + } + } + } + + private final void addPublishedNodes(Vector allNodes,Node publishedItemsNode) + { + Vector itemNodes = publishedItemsNode.getChildNodes(); + for (int i=0;i<itemNodes.size();i++) + allNodes.addElement(itemNodes.elementAt(i)); + } + + public final void getAllBusinessNodes(Vector allBusinessNodes) + { + RegistryElement regElement = (RegistryElement)element_; + Node queryParentNode = getChildNode(regElement.getQueryParentElement()); + Node publishedBusinessesNode = getChildNode(regElement.getPublishedBusinessesElement()); + addDiscoveredNodes(allBusinessNodes,queryParentNode,UDDIActionInputs.QUERY_ITEM_BUSINESSES); + addPublishedNodes(allBusinessNodes,publishedBusinessesNode); + } + + public final void getAllServiceNodes(Vector allServicesNodes) + { + RegistryElement regElement = (RegistryElement)element_; + Node queryParentNode = getChildNode(regElement.getQueryParentElement()); + Node publishedServicesNode = getChildNode(regElement.getPublishedServicesElement()); + addDiscoveredNodes(allServicesNodes,queryParentNode,UDDIActionInputs.QUERY_ITEM_SERVICES); + addPublishedNodes(allServicesNodes,publishedServicesNode); + } + + public final void getAllServiceInterfaceNodes(Vector allServiceInterfaceNodes) + { + RegistryElement regElement = (RegistryElement)element_; + Node queryParentNode = getChildNode(regElement.getQueryParentElement()); + Node publishedServiceInterfacesNode = getChildNode(regElement.getPublishedServiceInterfacesElement()); + addDiscoveredNodes(allServiceInterfaceNodes,queryParentNode,UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES); + addPublishedNodes(allServiceInterfaceNodes,publishedServiceInterfacesNode); + } + + public final void getPublishedBusinessNodes(Vector publishedBusinessNodes) + { + RegistryElement regElement = (RegistryElement)element_; + Node publishedBusinessesNode = getChildNode(regElement.getPublishedBusinessesElement()); + addPublishedNodes(publishedBusinessNodes,publishedBusinessesNode); + } + + public final void getPublishedServiceNodes(Vector publishedServiceNodes) + { + RegistryElement regElement = (RegistryElement)element_; + Node publishedServicesNode = getChildNode(regElement.getPublishedServicesElement()); + addPublishedNodes(publishedServiceNodes,publishedServicesNode); + } + + public final void getPublishedServiceInterfaceNodes(Vector publishedServiceInterfaceNodes) + { + RegistryElement regElement = (RegistryElement)element_; + Node publishedServiceInterfacesNode = getChildNode(regElement.getPublishedServiceInterfacesElement()); + addPublishedNodes(publishedServiceInterfaceNodes,publishedServiceInterfacesNode); + } + + public final void getDiscoveredNodes(Vector discoveredNodes,int queryItem) + { + RegistryElement regElement = (RegistryElement)element_; + Node queryParentNode = getChildNode(regElement.getQueryParentElement()); + addDiscoveredNodes(discoveredNodes,queryParentNode,queryItem); + } + + private final boolean hasQueryResults(Node queryParentNode,int queryType) + { + Vector queries = queryParentNode.getChildNodes(); + for (int i=0;i<queries.size();i++) + { + QueryNode queryNode = (QueryNode)queries.elementAt(i); + if (queryNode.getChildNodes().size() > 0) + { + QueryElement queryElement = (QueryElement)queryNode.getTreeElement(); + if (queryElement.getQueryType() == queryType) + return true; + } + } + return false; + } + + public final boolean hasBusiness() + { + RegistryElement regElement = (RegistryElement)element_; + Node publishedBusinessesNode = getChildNode(regElement.getPublishedBusinessesElement()); + if (publishedBusinessesNode.getChildNodes().size() > 0) + return true; + return hasQueryResults(getChildNode(regElement.getQueryParentElement()),UDDIActionInputs.QUERY_ITEM_BUSINESSES); + } + + public final boolean hasService() + { + RegistryElement regElement = (RegistryElement)element_; + Node publishedServicesNode = getChildNode(regElement.getPublishedServicesElement()); + if (publishedServicesNode.getChildNodes().size() > 0) + return true; + return hasQueryResults(getChildNode(regElement.getQueryParentElement()),UDDIActionInputs.QUERY_ITEM_SERVICES); + } + + public final boolean hasServiceInterface() + { + RegistryElement regElement = (RegistryElement)element_; + Node publishedServiceInterfacesNode = getChildNode(regElement.getPublishedServiceInterfacesElement()); + if (publishedServiceInterfacesNode.getChildNodes().size() > 0) + return true; + return hasQueryResults(getChildNode(regElement.getQueryParentElement()),UDDIActionInputs.QUERY_ITEM_SERVICE_INTERFACES); + } +} |