Vector agentURLs = new Vector(); getCommunities();
getCommunities();
  private void makePlanGraph() {    Vector agentURLs = new Vector();    getCommunities(); // get community<->agent mapping    ULPlanFilter filter = new ULPlanFilter(communityToAgents);    if (!filter.preFilter())      return; // user cancelled filter    Vector agentsToContact = filter.getAgentsSelected();    for (int i = 0; i < agentsToContact.size(); i++) {      String URL =   	(String)agentToURL.get((String)agentsToContact.elementAt(i));      if (URL != null)  	agentURLs.add(URL);    }    String PSPId = PSP_PLAN;    String filterValue = filter.getIgnoreObjectTypes();    Collection objectsFromPSP =      Util.getCollectionFromClusters(agentURLs, 				     PSPId + "?" +				     PropertyNames.PLAN_OBJECTS_TO_IGNORE +				     "=" +				     filterValue,				     null);    if (objectsFromPSP == null)      return;    Vector nodeObjects = new Vector();    //    System.out.println("Received plan objects: " + objectsFromPSP.size());    int duplicates = 0;    Vector UIDs = new Vector();    for (Iterator i = objectsFromPSP.iterator(); i.hasNext(); ) {      PropertyTree properties = (PropertyTree)i.next();      String UID = (String)properties.get(PropertyNames.UID_ATTR);      // filter duplicates by UID      if (!UIDs.contains(UID)) {	String agentName = (String)properties.get(PropertyNames.AGENT_ATTR);	String communityName = "";	if (agentName != null)	  communityName = (String)agentToCommunity.get(agentName);	nodeObjects.add(new ULPlanNode(properties, communityName));	UIDs.add(UID);      } else {	duplicates++;      // for debugging      //      Set keys = properties.keySet();      //      System.out.println("Property names/values........");      //      for (Iterator j = keys.iterator(); j.hasNext(); ) {      //	String s = (String)j.next();      //	System.out.println(s + "," + properties.get(s));      //      }      // end for debugging      }    } // end of for loop over objectsFromPSP    //    System.out.println("Duplicates: " + duplicates);    // limit number of objects graphed    int n  = filter.getNumberOfObjects();    if (nodeObjects.size() > n)      nodeObjects.setSize(n);    // if not filtering out direct objects, then handle their links specially    if (filterValue == null ||	filterValue.indexOf(PropertyNames.DIRECT_OBJECT) == -1)      nodeObjects = processDirectObjects(nodeObjects);    if (nodeObjects.size() != 0) {      Window w = 	(Window)new ULPlanFrame(NamedFrame.PLAN, 				new CSMARTGraph(nodeObjects, 						CSMARTGraph.GRAPH_TYPE_PLAN),				filter);      myWindows.add(w);    }  }