public void setSelectedFill(Paint paint) { this.selectedFill = paint; if (!locked) { if (paint instanceof FlatColor) { freerangeColorPickerPopup.setSelectedColor((FlatColor) paint); rgbhsvpicker.setSelectedColor((FlatColor) paint); } } EventBus.getSystem().publish(new ChangedEvent(ChangedEvent.ObjectChanged, selectedFill, this)); setDrawingDirty(); }
private void setupColorTab(TabPanel panel) { freerangeColorPickerPopup = new FreerangeColorPickerPopup(null, 300, 170, false); freerangeColorPickerPopup.setOutsideColorProvider( new FreerangeColorPickerPopup.OutsideColorProvider() { @Override public FlatColor getColorAt(MouseEvent event) { if (context == null) return super.getColorAt(event); Point2D pt = event.getPointInNodeCoords(context.getSketchCanvas()); pt = context.getSketchCanvas().transformToCanvas(pt.getX(), pt.getY()); java.util.List<SNode> underCursor = new ArrayList<SNode>(); for (SNode node : context.getDocument().getCurrentPage().getNodes()) { if (node.getTransformedBounds().contains(pt)) { underCursor.add(node); } } if (underCursor.isEmpty()) { } else { SNode node = underCursor.get(underCursor.size() - 1); if (node instanceof SShape) { SShape shape = ((SShape) node); if (shape.getFillPaint() instanceof FlatColor) { return (FlatColor) shape.getFillPaint(); } } } return super.getColorAt( event); // To change body of overridden methods use File | Settings | File // Templates. } }); EventBus.getSystem() .addListener( freerangeColorPickerPopup, ChangedEvent.ColorChanged, new Callback<ChangedEvent>() { public void call(ChangedEvent event) throws Exception { locked = true; setSelectedFill((FlatColor) event.getValue()); locked = false; if (!event.isAdjusting()) { popup.setVisible(false); } } }); panel.add("Color", freerangeColorPickerPopup); }