try {
listen(false); // don't listen while updating controls
Expression expr = getExpression();
if (expr instanceof Literal) {
Literal literal = (Literal) expr;
Color color = literal.evaluate(null, Color.class);
if (color != null) {
feedback();
refreshSelection( redSpinner, redScale, color.getRed() );
refreshSelection( greenSpinner, greenScale, color.getGreen() );
refreshSelection( blueSpinner, blueScale, color.getBlue() );