public void show(Node node, double x, double y) { if (sharedContextMenu != null) { sharedContextMenu.setVisible(false); sharedLayer.remove(sharedContextMenu); } Stage stage = node.getParent().getStage(); sharedLayer = stage.getPopupLayer(); Point2D pt = NodeUtils.convertToScene(node, x, y); pt = NodeUtils.convertFromScene(sharedLayer, pt); setTranslateX(pt.getX() + 2); setTranslateY(pt.getY()); setVisible(true); sharedContextMenu = this; sharedLayer.add(this); }
@Override protected void setPressed(boolean pressed) { super.setPressed(pressed); if (pressed) { if (!popupadded) { Stage stage = getParent().getStage(); stage.getPopupLayer().add(popup); } Point2D pt = NodeUtils.convertToScene(this, 0, getHeight()); popup.setTranslateX(Math.round(Math.max(pt.getX(), 0))); popup.setTranslateY(Math.round(Math.max(pt.getY(), 0))); popup.setVisible(true); EventBus.getSystem().setPressedNode(popup); } else { // popup.setVisible(false); } }