Examples of DNVGraph


Examples of net.wigis.graph.dnv.DNVGraph

    long startTime = System.currentTimeMillis();
    synchronized( graph )
    {
      Timer loadTimer = new Timer( Timer.MILLISECONDS );
      loadTimer.setStart();
      graph = new DNVGraph( getSelectedFile() );
      graph.setFilename(getSelectedFile());
      graph.setPaintBean( this );
      loadTimer.setEnd();
      System.out.println( "Loading '" + selectedFile + "' took " + loadTimer.getLastSegment( Timer.SECONDS ) + " seconds." );
      int maxLevel = graph.getMaxLevel();
View Full Code Here

Examples of net.wigis.graph.dnv.DNVGraph

    setKeepNeighborsOfSelectedNodes( !isKeepNeighborsOfSelectedNodes() );
  }
 
  public void removeUnselectedNodes()
  {
    DNVGraph graph = getGraph();
    if( graph != null )
    {
      if( graph.getSelectedNodes( level ).size() > 0 )
      {
        addToHistory();

        // Need this list to avoid concurrent modification exception
        List<DNVNode> visibleNodes = new ArrayList<DNVNode>(graph.getVisibleNodes( level ).values());
        for( DNVNode node : visibleNodes )
        {
          if( !node.isSelected() && ( !node.isNeighborSelected() || !keepNeighborsOfSelectedNodes ) )
          {
            graph.removeNode( node );
          }
        }

        graph.deselectAllNodes( level );
        updateNodeSize();
        forceSubgraphRefresh();
        setSelectAllCheckBox( false );
      }
    }
View Full Code Here

Examples of net.wigis.graph.dnv.DNVGraph

    }
  }
 
  public void invertSelection()
  {
    DNVGraph graph = getGraph();
    if( graph != null )
    {
      for( DNVNode node : graph.getVisibleNodes( level ).values() )
      {
        node.setSelected( !node.isSelected() );
      }
    } 
  }
View Full Code Here

Examples of net.wigis.graph.dnv.DNVGraph

  /**
   * Adds the to history.
   */
  public void addToHistory()
  {
    DNVGraph graph = getGraph();
    if( graph != null )
    {
      List<DNVEntity> nodesAndEdges = graph.getNodesAndEdges( level );
      while( history.size() > historyIndex )
      {
        history.remove( history.size() - 1 );
      }
      history.add( nodesAndEdges );
View Full Code Here

Examples of net.wigis.graph.dnv.DNVGraph

   */
  public void undo()
  {
    if( isShowUndo() )
    {
      DNVGraph graph = getGraph();
      if( history.size() == historyIndex )
      {
        if( graph != null )
        {
          List<DNVEntity> nodesAndEdges = graph.getNodesAndEdges( level );
          history.add( nodesAndEdges );
        }
      }

      graph = new DNVGraph();
      historyIndex--;
      List<DNVEntity> nodesAndEdges = history.get( historyIndex );
      for( DNVEntity entity : nodesAndEdges )
      {
        boolean visible = entity.isVisible();
        entity.setGraph( graph );
        graph.addNode( level, entity );
        entity.setVisible( visible );
      }

      for( DNVNode node : graph.getNodes( level ) )
      {
        node.updateNeighbors();
      }
     
      for( DNVNode node : graph.getNodes( level ) )
      {
        node.verifyNeighbors();
      }
      int minTime = this.minTime;
      int maxTime = this.maxTime;
View Full Code Here

Examples of net.wigis.graph.dnv.DNVGraph

   */
  public void redo()
  {
    if( isShowRedo() )
    {
      DNVGraph graph = new DNVGraph();
      historyIndex++;
      List<DNVEntity> nodesAndEdges = history.get( historyIndex );
      for( DNVEntity entity : nodesAndEdges )
      {
        graph.addNode( level, entity );
      }
           
      for( DNVNode node : graph.getNodes( level ) )
      {
        node.verifyNeighbors();
      }

      int minTime = this.minTime;
View Full Code Here

Examples of net.wigis.graph.dnv.DNVGraph

        return;
      }

      ImageCacher.updateConstants( request );

      DNVGraph graph = pb.getGraph();
      int level = (int)pb.getLevel();

      // pb.setHasBeenDisplayed( true );

      int width = -1;
      width = getWidth( request, width );
      int height = -1;
      height = getHeight( request, height );

      boolean overview = false;
      overview = getOverview( request, overview );

      if( width == -1 )
        width = (int)pb.getWidth();

      if( height == -1 )
        height = (int)pb.getHeight();

      double minX = 0;
      double minY = 0;
      double maxX = 1;
      double maxY = 1;

      String minXStr = request.getParameter( "minX" );
      if( minXStr != null && !minXStr.equals( "" ) )
      {
        minX = getMinX( request, minX );
        pb.setMinX( minX );
      }

      String minYStr = request.getParameter( "minY" );
      if( minYStr != null && !minYStr.equals( "" ) )
      {
        minY = getMinY( request, minY );
        pb.setMinY( minY );
      }

      String maxXStr = request.getParameter( "maxX" );
      if( maxXStr != null && !maxXStr.equals( "" ) )
      {
        maxX = getMaxX( request, maxX );
        pb.setMaxX( maxX );
      }

      String maxYStr = request.getParameter( "maxY" );
      if( maxYStr != null && !maxYStr.equals( "" ) )
      {
        maxY = getMaxY( request, maxY );
        pb.setMaxY( maxY );
      }

      String renderingStr = request.getParameter( "r" );
      int rendering = BufferedImage.TYPE_BYTE_INDEXED;
      if( renderingStr != null && renderingStr.equals( "qual" ) )
      {
        rendering = BufferedImage.TYPE_INT_RGB;
      }

      Timer pickingTimer = new Timer( Timer.MILLISECONDS );
     
      // ------------------------------------
      // interaction with static image
      // ------------------------------------
      String mouseDownXstr = request.getParameter( "mouseDownX" );
      // boolean mouseDown = false;
      if( mouseDownXstr != null && !mouseDownXstr.equals( "" ) )
      {
        // mouseDown = true;
        pickingTimer.setStart();
        // drag closest node to this position
        int mouseDownX = Integer.parseInt( mouseDownXstr );
        int mouseDownY = Integer.parseInt( request.getParameter( "mouseDownY" ) );

        // drag it to here
        int mouseUpX = Integer.parseInt( request.getParameter( "mouseUpX" ) );
        int mouseUpY = Integer.parseInt( request.getParameter( "mouseUpY" ) );

        boolean sameNode = Boolean.parseBoolean( request.getParameter( "sameNode" ) );
        boolean ctrlPressed = Boolean.parseBoolean( request.getParameter( "ctrlPressed" ) );

        // - - - - - - - - - - -
        // find closest node
        // - - - - - - - - - - -
        // float maxDepth = Integer.MAX_VALUE;

        double globalMinX = GraphFunctions.getMinXPosition( graph, level, true );
        double globalMaxX = GraphFunctions.getMaxXPosition( graph, level, true );
        double globalMinY = GraphFunctions.getMinYPosition( graph, level, true );
        double globalMaxY = GraphFunctions.getMaxYPosition( graph, level, true );
        if( globalMinY == globalMaxY )
        {
          globalMinY -= 10;
          globalMaxY += 10;
        }
        if( globalMinX == globalMaxX )
        {
          globalMinX -= 10;
          globalMaxX += 10;
        }
        double yBuffer = ( globalMaxY - globalMinY ) * pb.getWhiteSpaceBuffer();
        double xBuffer = ( globalMaxX - globalMinX ) * pb.getWhiteSpaceBuffer();
        DNVNode selectedNode = null;
        globalMaxY += yBuffer;
        globalMinY -= yBuffer;
        globalMaxX += xBuffer;
        globalMinX -= xBuffer;

        if( !sameNode )
        {
          List<DNVNode> nodes = graph.getNodes( level );
          SortByLabelSize sbls = new SortByLabelSize( pb.isHighlightNeighbors() );
          Collections.sort( nodes, sbls );
          DNVNode node;
          Vector2D screenPosition;
          double distance;
          double minDistance = Integer.MAX_VALUE;
          int nodeI = -1;
          int distX = 0; // dist b/w this node and mouse click
          int distY = 0;

          // Check if user clicked on a solid node label
          for( int i = nodes.size() - 1; i >= 0; i-- )
          {
            node = nodes.get( i );
            if( node.isVisible() && ( node.isForceLabel() || pb.isShowLabels() ) && node.getProperty( "faded" ) == null )
            {
              screenPosition = ImageRenderer.transformPosition( globalMinX, globalMaxX, globalMinY, globalMaxY, minX, maxX, minY, maxY,
                  width, height, node.getPosition( true ) );
              ImageRenderer.Rectangle boundingRectangle = ImageRenderer.getRectangleBoundingTheLabel( node, screenPosition, null,
                  (int)Math.round( pb.getNodeSize() * node.getRadius() ), node.getLabel( pb.isInterpolationLabels() ), pb
                      .isCurvedLabels()
                      || node.isCurvedLabel(), pb.getLabelSize(), minX, maxX, width / pb.getWidth(), pb.isScaleLabels(), pb
                      .getMaxLabelLength(), pb.getCurvedLabelAngle(), pb.isBoldLabels(), false, false );
              if( mouseDownX >= boundingRectangle.left() && mouseDownX <= boundingRectangle.right()
                  && mouseDownY <= boundingRectangle.bottom() && mouseDownY >= boundingRectangle.top() )
              {
                distX = (int)( mouseDownX - screenPosition.getX() );
                distY = (int)( mouseDownY - screenPosition.getY() );
                node.setProperty( "distX", "" + distX );
                node.setProperty( "distY", "" + distY );
                minDistance = 0;
                nodeI = i;
                break;
              }
            }
          }

          if( nodeI == -1 )
          {
            // loop thru all nodes to find closest node
            for( int i = nodes.size() - 1; i >= 0; i-- )
            {
              node = nodes.get( i );
              if( node.isVisible() )
              {
                screenPosition = ImageRenderer.transformPosition( globalMinX, globalMaxX, globalMinY, globalMaxY, minX, maxX, minY,
                    maxY, width, height, node.getPosition( true ) );

                // find node closest to mouseDown
                distX = (int)( mouseDownX - screenPosition.getX() );
                distY = (int)( mouseDownY - screenPosition.getY() );

                distance = distX * distX + distY * distY;

                if( distance < minDistance )
                {
                  node.setProperty( "distX", "" + distX );
                  node.setProperty( "distY", "" + distY );

                  minDistance = distance;
                  nodeI = i;
                }
              }
            }
          }

          if( nodes.size() > 0 && nodeI != -1 )
          {
            node = nodes.get( nodeI );

            double nodeWidth;
            nodeWidth = getNodeWidth( pb, width, minX, maxX, node.getRadius() );
            // check if selected node is close enough to mouseDown
            if( Settings.DEBUG )
              System.out.println( "Minimum distance was " + Math.sqrt( minDistance ) );

            if( Math.sqrt( minDistance ) >= nodeWidth )
            {
              // Still no node selected so check nodes with faded
              // labels
              for( int i = nodes.size() - 1; i >= 0; i-- )
              {
                node = nodes.get( i );
                if( node.isVisible() && ( node.isForceLabel() || pb.isShowLabels() ) && node.getProperty( "faded" ) != null
                    && Float.parseFloat( node.getProperty( "faded" ) ) > 0.1 )
                {
                  screenPosition = ImageRenderer.transformPosition( globalMinX, globalMaxX, globalMinY, globalMaxY, minX, maxX,
                      minY, maxY, width, height, node.getPosition( true ) );
                  ImageRenderer.Rectangle boundingRectangle = ImageRenderer.getRectangleBoundingTheLabel( node, screenPosition,
                      null, (int)Math.round( pb.getNodeSize() * node.getRadius() ),
                      node.getLabel( pb.isInterpolationLabels() ), pb.isCurvedLabels() || node.isCurvedLabel(), pb
                          .getLabelSize(), minX, maxX, width / pb.getWidth(), pb.isScaleLabels(), pb.getMaxLabelLength(),
                      pb.getCurvedLabelAngle(), pb.isBoldLabels(), false, false );
                  if( mouseDownX >= boundingRectangle.left() && mouseDownX <= boundingRectangle.right()
                      && mouseDownY <= boundingRectangle.bottom() && mouseDownY >= boundingRectangle.top() )
                  {
                    distX = (int)( mouseDownX - screenPosition.getX() );
                    distY = (int)( mouseDownY - screenPosition.getY() );
                    node.setProperty( "distX", "" + distX );
                    node.setProperty( "distY", "" + distY );
                    minDistance = 0;
                    nodeI = i;
                    break;
                  }
                }
              }
            }

            node = nodes.get( nodeI );

            nodeWidth = getNodeWidth( pb, width, minX, maxX, node.getRadius() );
            // check if selected node is close enough to mouseDown
            if( Settings.DEBUG )
              System.out.println( "Minimum distance was " + Math.sqrt( minDistance ) );
            if( Math.sqrt( minDistance ) < nodeWidth )
            {
              // if( node.isSelected() )
              // {
              // sameNode = true;
              // }
              pb.setSelectedNode( node, ctrlPressed );
              selectedNode = node;
            }
            else
            {
              if( pb.getSelectedNode() != null )
              {
                pb.setSelectedNode( null, ctrlPressed );
//                runDocumentTopicsCircularLayout( request, pb, graph, level );
              }
            }
          }

          if( selectedNode == null )
          {
            minDistance = Integer.MAX_VALUE;
            List<DNVEdge> edges = graph.getEdges( level );
            DNVEdge edge;
            Vector2D screenPosition2;
            int edgeI = 0;
            for( int i = 0; i < edges.size(); i++ )
            {
View Full Code Here

Examples of net.wigis.graph.dnv.DNVGraph

        nodes.put( index, tempNode );
      }
    }

    // int level = (int)pb.getLevel();
    DNVGraph graph = pb.getGraph();

    Vector2D nodeWorldPos;

    Iterator<Node> nodeIterator = nodes.values().iterator();
    while( nodeIterator.hasNext() )
    {
      tempNode = nodeIterator.next();
      x = tempNode.getX();
      y = tempNode.getY();
      id = tempNode.getId();
      selected = tempNode.isSelected();
      nodeWorldPos = ImageRenderer.transformScreenToWorld( x, y, minX, maxX, minY, maxY, pb.getGlobalMinX(), pb.getGlobalMaxX(), pb
          .getGlobalMinY(), pb.getGlobalMaxY(), pb.getWidth(), pb.getHeight() );
      DNVNode node = (DNVNode)graph.getNodeById( id );
      if( node != null )
      {
        Vector2D movement = ImageRenderer.getMovement( node, nodeWorldPos );
        node.moveRelatedNodes( movement, true, false );
        node.setPosition( nodeWorldPos );
View Full Code Here

Examples of net.wigis.graph.dnv.DNVGraph

   */
  public void graphIt()
  {
    showMessage( "Generating publication graph to " + degreesOfSeparation + " degrees of spearation." );
    Publication p = null;
    DNVGraph g = new DNVGraph();
    int count = 100000;
    log( "searchResults length is: " + searchResults.size() );
    // p = generateGraphFromPublicationsArray( p, g, count );
    DOSExpander dos = new DOSExpander();
    log( "max number results to return: " + maxResults );
    removeNonSelectedNodes();
    this.searchResults = dos.expand( g, searchResults, degreesOfSeparation, maxResults );
    p = generateGraphFromPublicationsArray( p, g, count );

    // generate a unique id for the graph
    int firstSpaceIndex = searchQuery.indexOf( " " );
    if( firstSpaceIndex == -1 )
      firstSpaceIndex = searchQuery.length();
    String fileName = searchQuery.substring( 0, firstSpaceIndex ) + " " + now();
    String selectedFile = OUTPUT_FILE_PATH + CITESEER_SEARCH_PREFIX + fileName + OUTPUT_FILE_EXTENSION;
    // this.searchResults = null;
    g.writeGraph( selectedFile );
    FacesContext fc = FacesContext.getCurrentInstance();
    PaintBean pb = PaintBean.getCurrentInstance();
    GraphsBean gb = (GraphsBean)ContextLookup.lookup( "graphsBean", fc );
    if( gb != null )
      gb.buildFileList();
View Full Code Here

Examples of net.wigis.graph.dnv.DNVGraph

   * @param mappingFile
   *            the mapping file
   */
  public static void determineExpertise( String directory, String graphFile, String mappingFile )
  {
    DNVGraph graph = new DNVGraph( directory + graphFile );
    determineExpertise( directory, graph, mappingFile );
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.