Example #1
0
  @Override
  public void itemClicked(VisualItem item, MouseEvent e) {

    Visualization vis = item.getVisualization();
    DDGDisplay d = (DDGDisplay) vis.getDisplay(0);

    // revalidates the display by finding the item with the same position as
    // the mouse pointer
    if (revalidated) {
      String state = collapseExpand(item);
      if (state.equals(START)) {
        updateFocusGroup(stepId, item.getVisualization());
        vis.run("color");
        vis.run("repaint");
      }
      if (state.equals(STEP)) {
        expandOneLevel(item);
        updateFocusGroup(startId, item.getVisualization());
        vis.run("color");
        vis.run("repaint");
      }
      revalidated = false;
    } else {
      revalidated = true;
      VisualItem myItem = d.findItem(e.getPoint());
      itemClicked(myItem, e);
    }
  }
  @Override
  public void itemClicked(VisualItem item, MouseEvent e) {

    if (!filterCheck(item)
        || v != item.getVisualization()
        || !UILib.isButtonPressed(e, button)
        || e.getClickCount() != ccount) {
      return;
    }

    if (e.isControlDown()) {
      if (focusedTupleSet.containsTuple(item)) {
        focusedTupleSet.removeTuple(item);
        if (item == curFocus) {
          curFocus = null;
          Iterator<VisualItem> focusedTuples = focusedTupleSet.tuples();
          while (focusedTuples.hasNext()) {
            curFocus = focusedTuples.next();
          }
        }
      } else {
        focusedTupleSet.addTuple(item);
        curFocus = item;
      }
    } else {
      focusedTupleSet.setTuple(item);
      curFocus = item;
    }

    runActivity(v);
  }
    public void itemDragged(VisualItem item, MouseEvent e) {
      if (!SwingUtilities.isLeftMouseButton(e)) return;
      dragged = true;
      Display d = (Display) e.getComponent();
      tmp = d.getAbsoluteCoordinate(e.getPoint(), tmp);
      double dx = tmp.getX() - down.getX();
      double dy = tmp.getY() - down.getY();

      PrefuseLib.setX(item, null, item.getX() + dx);
      PrefuseLib.setY(item, null, item.getY() + dy);
      down.setLocation(tmp);
      if (repaint) item.getVisualization().repaint();
    }
    public void itemReleased(VisualItem item, MouseEvent e) {
      if (!SwingUtilities.isLeftMouseButton(e)) return;
      if (dragged) {
        activeItem = null;
        item.setFixed(wasFixed);
        dragged = false;
      }
      // clear the focus
      Visualization vis = item.getVisualization();
      vis.getFocusGroup(Visualization.FOCUS_ITEMS).clear();

      vis.cancel("forces");
    }
Example #5
0
  /**
   * collapses nodes between a start node and a finish node when the start node is clicked expand
   * nodes between a start and finish node when the step connecting them is clicked
   *
   * @param item
   */
  public String collapseExpand(VisualItem item) {

    if (item instanceof TableNodeItem && item.getString(TYPE).equals(START)) {

      TableNodeItem nodeItem = (TableNodeItem) item;

      if (finishNode(nodeItem) != null && getChild(finishNode(nodeItem)) != null) {

        setNodesAndEdgesInvisible(nodeItem, finishNode(nodeItem));
        setStepVisible(nodeItem);
        setIsolatedNodesInvisible(nodeItem.getGraph());

        Visualization vis = item.getVisualization();
        vis.run("layout");
      }

      return START;
    }

    if (item instanceof TableNodeItem && item.getString(TYPE).equals(STEP)) {

      TableNodeItem nodeItem = (TableNodeItem) item;
      TableNodeItem startNode = getStepParent(nodeItem);
      startId = (getChild(startNode)).getInt(ID);
      TableNodeItem finishNode = getStepChild(nodeItem);

      setStepInvisible(nodeItem);
      setNodesAndEdgesVisible(startNode, finishNode, true);
      setIsolatedNodesVisible(nodeItem.getGraph());

      Visualization vis = item.getVisualization();
      vis.run("layout");

      return STEP;
    }

    return "Other";
  }
    public void itemPressed(VisualItem item, MouseEvent e) {
      if (!SwingUtilities.isLeftMouseButton(e)) return;

      // set the focus to the current node
      Visualization vis = item.getVisualization();
      vis.getFocusGroup(Visualization.FOCUS_ITEMS).setTuple(item);

      item.setFixed(true);
      dragged = false;
      Display d = (Display) e.getComponent();
      down = d.getAbsoluteCoordinate(e.getPoint(), down);

      vis.run("forces");
    }
 @Override
 public void itemPressed(VisualItem item, MouseEvent e) {
   // on right-mouse press, start dragging the document
   if (SwingUtilities.isRightMouseButton(e)) {
     // debug
     System.out.println("debug: " + this.getClass().getName() + ": item pressed w/ right mouse");
     // drag, set the focus to the current node
     Visualization vis = item.getVisualization();
     vis.getFocusGroup(Visualization.FOCUS_ITEMS).setTuple(item);
     item.setFixed(true);
     dragged = false;
     Display d = controller.getDocumentGrid();
     down = d.getAbsoluteCoordinate(e.getPoint(), down);
   }
 }
Example #8
0
  /**
   * expands one level at a time when step node is clicked
   *
   * @param item
   */
  public void expandOneLevel(VisualItem item) {

    Visualization vis = item.getVisualization();
    TableNodeItem stepItem = (TableNodeItem) item;
    TableNodeItem stepParent = getStepParent(stepItem);
    TableNodeItem stepChild = getStepChild(stepItem);

    int finishNodeId = 0;
    Iterator visualItems = vis.visibleItems();
    VisualItem node;

    while (visualItems.hasNext()) {
      node = (VisualItem) visualItems.next();
      if (node instanceof TableNodeItem
          && node.getInt(ID) > (stepParent.getInt(ID) + 1)
          && node.getInt(ID) < stepChild.getInt(ID)
          && node.getString(TYPE).equals(START)
          && node.getInt(ID) > finishNodeId) {
        collapseExpand(node);
        finishNodeId = finishNode((TableNodeItem) node).getInt(ID);
      }
    }
  }
    @Override
    public void itemDragged(VisualItem item, MouseEvent e) {
      if (!SwingUtilities.isRightMouseButton(e)) {
        return;
      }
      if (item.getGroup().equals(m_group)) {
        dragged = true;
        //            Display d = (Display) e.getComponent();
        Display d = controller.getDocumentGrid();
        d.getAbsoluteCoordinate(e.getPoint(), temp);
        double dx = temp.getX() - down.getX();
        double dy = temp.getY() - down.getY();
        double x = item.getX();
        double y = item.getY();
        double w = item.getDouble(WIDTH);
        double h = item.getDouble(HEIGHT);

        item.setStartX(x);
        item.setStartY(y);
        item.setX(x + dx);
        item.setY(y + dy);
        item.setEndX(x + dx);
        item.setEndY(y + dy);

        item.setBounds(x + dx, y + dy, w, h);

        if (repaint) {
          item.getVisualization().repaint();
        }

        down.setLocation(temp);
        if (action != null) {
          d.getVisualization().run(action);
        }
      }
    }
Example #10
0
    public void itemReleased(VisualItem item, MouseEvent evt) {

      item.setFillColor(ColorLib.rgb(255, 255, 255));
      item.setStrokeColor(item.getEndStrokeColor());
      item.getVisualization().repaint();
    }
Example #11
0
    @Override
    public void itemReleased(VisualItem item, MouseEvent e) {
      // when right-mouse released, release the dragged document glyph
      if (!SwingUtilities.isRightMouseButton(e)) {
        return;
      }
      // debug
      System.out.println("debug: " + this.getClass().getName() + ": item released");
      if (dragged) {
        activeItem = null;
        item.setFixed(wasFixed);
        dragged = false;
      }
      // clear the focus
      Visualization vis = item.getVisualization();
      vis.getFocusGroup(Visualization.FOCUS_ITEMS).clear();

      // determine whether item is in same region or new region;
      //  if new region, call controller to update attr vals
      double x = item.getX();
      double y = item.getY();
      double w = item.getDouble(WIDTH);
      double h = item.getDouble(HEIGHT);
      int newRegionX = -1;
      int newRegionY = -1;
      String xAttrName = docGridLayout.getXAttr();
      String yAttrName = docGridLayout.getYAttr();
      List<String> xCats = docGridLayout.getXCats();
      List<String> yCats = docGridLayout.getYCats();
      List<Integer> xCatRegionSizes = docGridLayout.getXCatRegionSizes();
      List<Integer> yCatRegionSizes = docGridLayout.getYCatRegionSizes();
      List<Integer> xCatPositions = docGridLayout.getXCatPositions();
      List<Integer> yCatPositions = docGridLayout.getYCatPositions();
      // for each region, get start and range;
      for (int i = 0; i < xCats.size(); i++) {
        int xRegionStart = xCatPositions.get(i);
        int xRegionEnd = xRegionStart + xCatRegionSizes.get(i);
        if (xRegionStart < x + (w / 2.) && x + (w / 2.) < xRegionEnd) {
          newRegionX = i;
        }
      }
      for (int i = 0; i < yCats.size(); i++) {
        int yRegionStart = yCatPositions.get(i);
        int yRegionEnd = yRegionStart + yCatRegionSizes.get(i);
        if (yRegionStart < y + (h / 2.) && y + (h / 2.) < yRegionEnd) {
          newRegionY = i;
        }
      }

      int docID = item.getInt(DocumentGridTable.NODE_ID);

      // debug
      //            System.out.println("debug: item moved:
      // docID="+docID+"xOrig="+xCats.get(origRegionX)+", xNew="+xCats.get(newRegionX)+",
      // yOrig="+yCats.get(origRegionY)+", yNew="+yCats.get(newRegionY));

      // update for x and y separately
      //            if (origRegionX != newRegionX && newRegionX != -1) {
      String newCatX = xCats.get(newRegionX);
      controller.updateDocumentAttr(docID, xAttrName, newCatX);
      controller.documentAttributesUpdated(docID);
      //            }
      //            if (origRegionY != newRegionY && newRegionY != -1) {
      String newCatY = yCats.get(newRegionY);
      controller.updateDocumentAttr(docID, yAttrName, newCatY);
      controller.documentAttributesUpdated(docID);
      //            }

    }