protected final <T> void attachListener(ObservableValue<T> observable, ChangeListener<T> listener) {
        @SuppressWarnings("unchecked")
        final ObservableValue<Object> key = (ObservableValue<Object>) observable;
        
        @SuppressWarnings("unchecked")
        final ChangeListener<Object> value = (ChangeListener<Object>) listener;
        
        listeners.put(key, value);
        observable.addListener(listener);
    }
Attaches a ChangeListener to the ObservableValue, and also stores their relationship.
<p>
Knowledge of their relationship is used when this PropertyEditor.Item is
removed from the PropertySheet, to detach the listeners again. This will avoid
memory leaks, as listeners otherwise prevent the observable from being garbage 
collected.

@param <T>  type of the ObservableValue and the ChangeListener
@param observable  the ObservableValue
@param listener    the ChangeListener
tool-parent/tool-propertyeditor/src/main/java/com/speedment/tool/propertyeditor/item/AbstractLabelTooltipItem.java