public void selectionChanged(SelectionEvent e) { int act = e.getAction(); if (act == SelectionEvent.ACTION_ADDED) { Set<AppearancePort> ports = shouldShowPopup(e.getAffected()); if (ports == null) { hideCurrentPopup(); } else { showPopup(ports); } } }
private void showPopup(Set<AppearancePort> portObjects) { dragStart = null; CircuitState circuitState = canvas.getCircuitState(); if (circuitState == null) return; ArrayList<Instance> ports = new ArrayList<Instance>(portObjects.size()); for (AppearancePort portObject : portObjects) { ports.add(portObject.getPin()); } hideCurrentPopup(); LayoutThumbnail layout = new LayoutThumbnail(); layout.setCircuit(circuitState, ports); JViewport owner = canvasPane.getViewport(); Point ownerLoc = owner.getLocationOnScreen(); Dimension ownerDim = owner.getSize(); Dimension layoutDim = layout.getPreferredSize(); int x = ownerLoc.x + Math.max(0, ownerDim.width - layoutDim.width - 5); int y = ownerLoc.y + Math.max(0, ownerDim.height - layoutDim.height - 5); PopupFactory factory = PopupFactory.getSharedInstance(); Popup popup = factory.getPopup(canvasPane.getViewport(), layout, x, y); popup.show(); curPopup = popup; curPopupTime = System.currentTimeMillis(); }
public void mouseDragged(MouseEvent e) { Location start = dragStart; if (start != null && start.manhattanDistanceTo(e.getX(), e.getY()) > 4) { hideCurrentPopup(); } }
public void mousePressed(MouseEvent e) { long sincePopup = System.currentTimeMillis() - curPopupTime; if (sincePopup > 50) hideCurrentPopup(); dragStart = Location.create(e.getX(), e.getY()); }
public void mouseExited(MouseEvent e) { long sincePopup = System.currentTimeMillis() - curPopupTime; if (sincePopup > 50) hideCurrentPopup(); }
public void mouseEntered(MouseEvent e) { hideCurrentPopup(); }
private void hidePopup() { LayoutPopupManager man = popupManager; if (man != null) { man.hideCurrentPopup(); } }