@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"); }
/** * 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); } }
/** * 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); } } }
public void itemReleased(VisualItem item, MouseEvent evt) { item.setFillColor(ColorLib.rgb(255, 255, 255)); item.setStrokeColor(item.getEndStrokeColor()); item.getVisualization().repaint(); }
@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); // } }