Skip to main content
summaryrefslogtreecommitdiffstats
blob: a02b8ceed8978cb64a2691927d16347426dbaec0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*******************************************************************************
 * Copyright (c) 2001, 2005 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
 *******************************************************************************/

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.Controller;
import org.eclipse.wst.ws.internal.explorer.platform.perspective.FormTool;
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.actions.FindAction;
import org.eclipse.wst.ws.internal.explorer.platform.uddi.constants.UDDIModelConstants;
import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.BusinessElement;
import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.RegistryElement;
import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.ServiceElement;
import org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel.ServiceInterfaceElement;
import org.uddi4j.datatype.business.BusinessEntity;
import org.uddi4j.datatype.service.BusinessService;
import org.uddi4j.datatype.tmodel.TModel;

public class QueryNode extends UDDINavigatorNode
{
  private FormTool regFindTool_;
  private FindAction findAction_;
  public QueryNode(TreeElement element,NodeManager nodeManager,int nodeDepth)
  {
    super(element,nodeManager,nodeDepth,"uddi/images/query.gif");
    element.addListener(new ElementAdapter()
    {
      public void relAdded(RelAddEvent event)
      {
        String rel = event.getOutBoundRelName();
        if (rel.equals(UDDIModelConstants.REL_QUERY_RESULTS))
        {
          TreeElement treeElement = (TreeElement)event.getParentElement();
          createChildNode(treeElement);
        }
      }

      public void relRemoved(RelRemoveEvent event)
      {
        TreeElement treeElement = null;
        if (event.getInBoundRelName().equals(UDDIModelConstants.REL_QUERY_RESULTS))
          treeElement = (TreeElement)event.getInboundElement();
        else if (event.getOutBoundRelName().equals(UDDIModelConstants.REL_QUERY_RESULTS))
          treeElement = (TreeElement)event.getOutBoundElement();

        if (treeElement != null)
          removeChildNode(treeElement);
      }
    });
    createChildren();
    setVisibilityOfChildren(false);
    findAction_ = null;
  }

  private final void createChildren()
  {
    Vector initialResults = (Vector)element_.getPropertyAsObject(UDDIModelConstants.INITIAL_RESULTS);
    for (int i=0;i<initialResults.size();i++)
    {
      Object object = initialResults.elementAt(i);
      TreeElement childElement = null;
      if (object instanceof BusinessEntity)
        childElement = new BusinessElement((BusinessEntity)object,element_.getModel());
      else if (object instanceof BusinessService)
        childElement = new ServiceElement((BusinessService)object,element_.getModel());
      else if (object instanceof TModel)
        childElement = new ServiceInterfaceElement((TModel)object,element_.getModel());
      if (childElement != null)
        element_.connect(childElement,UDDIModelConstants.REL_QUERY_RESULTS,ModelConstants.REL_OWNER);
    }
  }

  private final void createChildNode(TreeElement element)
  {
    Node childNode = null;
    if (element instanceof BusinessElement)
      childNode = new BusinessNode(element,nodeManager_,nodeDepth_+1);
    else if (element instanceof ServiceElement)
      childNode = new ServiceNode(element,nodeManager_,nodeDepth_+1);
    else if (element instanceof ServiceInterfaceElement)
      childNode = new ServiceInterfaceNode(element,nodeManager_,nodeDepth_+1);
    if (childNode != null)
      addChild(childNode);
  }

  protected final void initTools()
  {
    Controller controller = nodeManager_.getController();
    UDDIPerspective uddiPerspective = controller.getUDDIPerspective();
    new ResultsTool(toolManager_,controller.getMessage("ALT_RESULTS"));
    regFindTool_ = new RegFindTool(toolManager_,uddiPerspective.getMessage("ALT_FIND"));
  }

  public final void setFindToolProperties(FindAction findAction)
  {
    findAction_ = findAction;
    regFindTool_.updatePropertyTable(findAction.getPropertyTable());
  }

  public void addAuthenticationProperties(RegistryElement regElement)
  {
    ((RegFindTool)regFindTool_).addAuthenticationProperties(regElement);
    Vector childNodes = getChildNodes();
    for (int i=0;i<childNodes.size();i++)
    {
      UDDINavigatorNode navigatorNode = (UDDINavigatorNode)childNodes.elementAt(i);
      navigatorNode.addAuthenticationProperties(regElement);
    }
  }

  public final FindAction getFindAction()
  {
    return findAction_;
  }
}

Back to the top