Package edu.uci.ics.jung.graph

Examples of edu.uci.ics.jung.graph.Edge


    }
   
    // Adds a real edge
    public Edge addEdge(String parent, String name) throws GraphException{
        Vertex v1, v2 = null;
        Edge e = null;
        if (parent != null && name != null) {
            v1 = getVertex(parent);
            v2 = getVertex(name);
            if (v1 != null && v2 != null) {
                // TODO select the edge type according to the physical link type
View Full Code Here


    public String getGraphXML(String name, String key) {
        StringBuffer sb = new StringBuffer();
        Set vertices = _myGraph.getVertices();
        Set edges = _myGraph.getEdges();
        Vertex v = null;
        Edge e = null;
        Coordinates coord = null;
        Boolean hidden = null;
        Object tmp = null;
       
        sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n");
        sb.append("<mapdefinition>\n");
        // The config
        sb.append("<config>\n");
        sb.append("<view>" + name + "</view>\n");
        double scale = getVV(key).getLayoutTransformer().getScale();
        double ltranslateX = getVV(key).getLayoutTransformer().getTranslateX();
        double ltranslateY = getVV(key).getLayoutTransformer().getTranslateY();
        double vtranslateX = getVV(key).getViewTransformer().getTranslateX();
        double vtranslateY = getVV(key).getViewTransformer().getTranslateY();
        if (scale == 1.0)  {
            scale = getVV(key).getViewTransformer().getScale();
        }
        sb.append("<layouttranslatex>" + ltranslateX + "</layouttranslatex>\n");
        sb.append("<layouttranslatey>" + ltranslateY + "</layouttranslatey>\n");
        sb.append("<viewtranslatex>" + vtranslateX + "</viewtranslatex>\n");
        sb.append("<viewtranslatey>" + vtranslateY + "</viewtranslatey>\n");
        sb.append("<scale>" + scale + "</scale>\n");
        String title = getBackgroundTitle(key);
        if (title != null && title.length() > 0)  {
            sb.append("<backgroundtitle>" + title + "</backgroundtitle>\n");
        }
        String bgImage = getBackground(key);
        if (bgImage != null && bgImage.length() > 0)
            sb.append("<backgroundimage>"+ bgImage +"</backgroundimage>\n");
        sb.append("</config>\n");
        // The hosts
        if (!vertices.isEmpty()) {
            sb.append("<hosts>\n");
            for (Object o: vertices) {
                if (o != null && o instanceof Vertex) {
                    v = (Vertex)o;
                    coord = getLayout(key).getCoordinates(v);
                    hidden = (Boolean)v.getUserDatum(userdatumkey+key);
                    sb.append("<host");
                    if (hidden != null && hidden.booleanValue()) {
                        sb.append(" hidden=\"true\"");
                    } if (isLocked(v, key)) {
                        sb.append(" locked=\"true\"");
                    }
                    sb.append(">\n");
                    sb.append("<name>" + getLabel(v) + "</name>\n");
                    sb.append("<coords>" + coord.getX() + "," + coord.getY() + "</coords>\n");
                    tmp = v.getUserDatum("labelLocation");
                    if (tmp != null && tmp instanceof Location) {
                        sb.append("<label_location>" + ((Location)tmp).toString() + "</label_location>\n");
                        tmp = null;
                    }
                    sb.append("</host>\n");
                }
            }
            sb.append("</hosts>\n");
        }
        // The Edges
        boolean exportedge = false;
        if (!edges.isEmpty()) {
            sb.append("<edges>\n");
            for (Object o: edges) {
                exportedge = false;
                if (o != null && o instanceof Edge) {
                    e = (Edge)o;
                    if (getEdgeColor(e) != null) {
                        exportedge = true;
                    }
                    if (!isVisible(e, key)) {
                        exportedge = true;
                    }
                    if (exportedge) {
                        sb.append("<edge"+ (!isVisible(e, key)?" hidden=\"true\"":"") + ">\n");
                        sb.append("<first>"+ getLabel((Vertex)e.getEndpoints().getFirst()) + "</first>\n");
                        sb.append("<second>"+ getLabel((Vertex)e.getEndpoints().getSecond()) + "</second>\n");
                        if (getEdgeColor(e) != null) {
                            sb.append("<color>#" + Integer.toString(getEdgeColor(e).getRGB() & 0xFFFFFF, 16).toUpperCase() + "</color>\n");
                        }
                        sb.append("</edge>\n");
                    }
View Full Code Here

      prefixes = getPaths(prefixEdges);
    }
    Set<List<String>> suffixes = computeSuffixes(tempRed, temp);
    List<List<String>> questions =new ArrayList<List<String>>();
    questions.addAll(mergePrefixWithSuffixes(prefixes, suffixes));
    Edge loopEdge = findEdge(tempRed, tempRed);
    if(loopEdge!=null){
      Collection<String> looplabels = (Collection<String>)loopEdge.getUserDatum(JUConstants.LABEL);
      questions.addAll(mergePrefixWithSuffixes(prefixes, looplabels,suffixes));
    }
   
    DirectedSparseGraph questionPrefixes = augmentPTA(DeterministicDirectedSparseGraph.initialise(), questions, true);
    Iterator<Vertex> questionIt = getEndPoints(questionPrefixes).iterator();
View Full Code Here

  public static Collection<String> getAlphabetForEdges(Collection<Edge> edges){
    HashSet<String> alphabet = new HashSet<String>();
    Iterator<Edge> edgeIt = edges.iterator();
    while(edgeIt.hasNext()){
      Edge e = (edgeIt.next());
      alphabet.addAll((Collection<String>)e.getUserDatum(JUConstants.LABEL));
    }
    return alphabet;
  }
View Full Code Here

    Set<String>loopLabels = new HashSet<String>();
    boolean loopToR = r.getSuccessors().contains(r);
    boolean redAndBlueNeighbours = r.getNeighbors().contains(q);
    if(loopToR||redAndBlueNeighbours){ //there either exists a loop to r or will do if r and b merge
      if(loopToR){
        Edge e = findEdge(r, r);
        HashSet<String> labels = (HashSet<String>)e.getUserDatum(JUConstants.LABEL);
        loopLabels.addAll(labels);
      }
      if(redAndBlueNeighbours){
        Edge e = findEdge(r,q);
        HashSet<String> labels = (HashSet<String>)e.getUserDatum(JUConstants.LABEL);
        loopLabels.addAll(labels);
      }
    }
    wIt = w.iterator();
    while(wIt.hasNext()){
View Full Code Here

   */
  protected static HashSet<List<String>> getShortSuffixes(@SuppressWarnings("unused") DirectedSparseGraph g, Vertex v){
    HashSet<List<String>> returnStrings = new HashSet<List<String>>();
    Iterator<Edge> outEdgeIt = v.getOutEdges().iterator();
    while(outEdgeIt.hasNext()){
      Edge e = outEdgeIt.next();
      if(DeterministicDirectedSparseGraph.isAccept(e.getOpposite(v))){
        ArrayList<Edge> l = new ArrayList<Edge>();
        l.add(e);
        returnStrings.addAll(getPaths(l));
      }
    }
View Full Code Here

   * @return
   */
  protected static Set<List<String>> getPaths(List<Edge> l){
    TreeMap<Integer,Set<List<String>>> returnSet = new TreeMap<Integer,Set<List<String>>>();// KIRR: this should not be done in this way since access to this map is not random - you only need the last element in which case simply storing the last set of lists is best
    for(int i=0;i<l.size();i++){// for each element of the source list
      Edge e = l.get(i);
      Set<String> labels = (Set<String>)e.getUserDatum(JUConstants.LABEL);
      Set<List<String>> strings = new HashSet<List<String>>();
      for(String s:labels)
      {
        if(i==0){
          List<String> string = new ArrayList<String>();
View Full Code Here

    Vertex init = DeterministicDirectedSparseGraph.findInitial(model);
    UnweightedShortestPath p = new UnweightedShortestPath(model);
    Iterator<Edge> pathIt =  ShortestPathUtils.getPath(p, init, q).iterator();
    List<String> list = new ArrayList<String>();
    while(pathIt.hasNext()){
      Edge e = pathIt.next();
      Set<String> s = (Set<String>)e.getUserDatum(JUConstants.LABEL);
      Object[] strings = s.toArray();
      list.add(strings[0].toString());
    }
     
    return list;
View Full Code Here

      DirectedSparseEdge eDash = new DirectedSparseEdge(e.getSource(), qDash);
      eDash.addUserDatum(JUConstants.LABEL, e.getUserDatum(JUConstants.LABEL), UserData.CLONE);
      if(!e.getSource().getSuccessors().contains(qDash))
        model.addEdge(eDash);
      else{
        Edge existing = findEdge(e.getSource(), qDash);
        Set<String> labels = (Set<String>)existing.getUserDatum(JUConstants.LABEL);// KIRR: if you use UserData.SHARED, you do not need to copy the result back using put
        labels.addAll((Set<String>)e.getUserDatum(JUConstants.LABEL));
        existing.setUserDatum(JUConstants.LABEL, labels, UserData.CLONE);
      }
      removeEdges.add(e);
    }
    Iterator<DirectedSparseEdge> outEdges = q.getOutEdges().iterator();
    while(outEdges.hasNext()){
      DirectedSparseEdge e = outEdges.next();
      DirectedSparseEdge eDash = new DirectedSparseEdge(qDash, e.getDest());
      eDash.addUserDatum(JUConstants.LABEL, e.getUserDatum(JUConstants.LABEL), UserData.CLONE);
      if(!qDash.getSuccessors().contains(e.getDest()))
        model.addEdge(eDash);
      else{
        Edge existing = findEdge(qDash, e.getDest());
        Set<String> labels = (Set<String>)existing.getUserDatum(JUConstants.LABEL);
        labels.addAll((Set<String>)e.getUserDatum(JUConstants.LABEL));
        existing.setUserDatum(JUConstants.LABEL, labels, UserData.CLONE);
      }
      removeEdges.add(e);
    }
    model.removeEdges(removeEdges);
    model.removeVertex(q);
View Full Code Here

  public static Collection<String> getAlphabetForEdges(Collection<Edge> edges){
    HashSet<String> alphabet = new HashSet<String>();
    Iterator<Edge> edgeIt = edges.iterator();
    while(edgeIt.hasNext()){
      Edge e = (edgeIt.next());
      alphabet.addAll((Collection<String>)e.getUserDatum(JUConstants.LABEL));
    }
    return alphabet;
  }
View Full Code Here

TOP

Related Classes of edu.uci.ics.jung.graph.Edge

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.