title: Change Listener not firing
body: <p>I have a enum:</p>
  
  <pre><code>public enum TimelineState {
      PLAY,
      PAUSE, 
      STOPPED, 
      FINISHED 
  }
  </code></pre>
  
  <p>And then I have a object property: <code>ObjectProperty&lt;TimelineState&gt;</code></p>
  
  <p>That object property is listened to by:</p>
  
  <pre><code>public class CallFinishedListener implements ChangeListener&lt;TimelineState&gt; {
  
      @Override
      public void changed(ObservableValue&lt;? extends TimelineState&gt; arg0,
              TimelineState arg1, TimelineState arg2) {
              // do stuff
      }
  
  }
  </code></pre>
  
  <p>I also have an invalidation listener:</p>
  
  <pre><code>state().addListener(new InvalidationListener() {
  
              @Override
              public void invalidate() {
                           // do stuff
              }
  });
  </code></pre>
  
  <p>When the following function changes the state, <strong>ONLY the invalidation listener fires!</strong> (why?)</p>
  
  <pre><code>@Override
  public void pause() {
      this.setState(TimelineState.PAUSE);
  }
  
  @Override
  public void reset() {
      this.movePlayheadTo(new TimeElapsed(0));
  }
  
  protected synchronized void finish() {
      // At this point, the value is TimelineState.FINISHED
      this.pause(); // This changes the state to TimelineState.PAUSE
      this.reset();
      state.set(TimelineState.FINISHED);
  }
  </code></pre>
  
  <p>The only thing I can find is this blog post that vaguely mentions that change listeners only activate when the value "really changes"
  <a href="http://blog.netopyr.com/2012/02/08/when-to-use-a-changelistener-or-an-invalidationlistener/" rel="nofollow">http://blog.netopyr.com/2012/02/08/when-to-use-a-changelistener-or-an-invalidationlistener/</a></p>