@Override public void tupleSetChanged(TupleSet ts, Tuple[] added, Tuple[] removed) { for (Tuple t : removed) { ((VisualItem) t).setFixed(false); } for (Tuple t : added) { ((VisualItem) t).setFixed(false); ((VisualItem) t).setFixed(true); } }
public void itemExited(VisualItem item, MouseEvent e) { if (activeItem == item) { activeItem = null; item.setFixed(wasFixed); } DisplayComponent d = (DisplayComponent) e.getSource(); d.setToolTipText(null); d.setCursor(Cursor.getDefaultCursor()); }
protected static void setFixed(VisualItem item, boolean fixed) { if (item instanceof AggregateItem) { Iterator items = ((AggregateItem) item).items(); while (items.hasNext()) { setFixed((VisualItem) items.next(), fixed); } } else { item.setFixed(fixed); } }
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"); }
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); } }
@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); // } }