/** Allow setting of state without triggering a dialog. */ String silentlySetState(Object newState, Object newValue) { if (getState().equals(newState)) { // no change, no fire vetoable and property change return null; } try { getSupport().fireVetoableChange(PROP_STATE, getState(), newState); state = newState; // always notify state change getChange().firePropertyChange(PROP_STATE, null, newState); } catch (PropertyVetoException pve) { // and notify the user that the change cannot happen LOG.log(Level.INFO, "Cannot change property: " + pve.getPropertyChangeEvent().getPropertyName(), pve); String name = (getFeatureDescriptor() == null) ? null : getFeatureDescriptor().getDisplayName(); return PropUtils.findLocalizedMessage(pve, newValue, name); } return null; }