title: Eclipse RCP view will not update when editor data is modified
body: <p>I'm attempting to do something that seems like it should be quite common, so I'm surprised I'm having a hard time finding a solution.</p>
  
  <p>I have a simple Eclipse RCP application.  It consists of a view, containing a treeViewer that displays elements of an xml file hierarchically.  The other side is an editor, which contains various fields such as textboxes, etc, for displaying and also modifying the xml values.  The treeviewer displays icons alongside the element name, and what I'm trying to do is change the icon to a "modified" version of the icon whenever a change is made in the editor - signifying that a value of that element has been changed.  This is very similar to how Eclipse, when integrated with subversion, shows that a file has been modified from the base revision in the Package Explorer.</p>
  
  <p>I'll try to just show the parts of the code relevant to this specific issue and hope I don't leave anything out.  This is the editor class:</p>
  
  <pre><code>public class XmlEditor extends EditorPart
  {
      protected boolean dirty = false;
  
      public void setDirty(boolean value)
      {
          dirty = value;
          firePropertyChange(PROP_DIRTY);
      }
  }
  </code></pre>
  
  <p>and this is the view with the tree:</p>
  
  <pre><code>public class TreeView extends ViewPart implements IPropertyChangeListener {
      public void createPartControl(Composite parent) {
          treeViewer = new TreeViewer(parent, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);
          getSite().setSelectionProvider(treeViewer);
  
          treeViewer.setLabelProvider(new TreeObjLabelProvider());
          treeViewer.setContentProvider(new TreeObjContentProvider());
  
          PlatformUI.getWorkbench().getWorkingSetManager().addPropertyChangeListener(this);
      }
  
      public void propertyChange(PropertyChangeEvent event) {
          if (event.getProperty().equals(IWorkbenchPartConstants.PROP_DIRTY)) {
              treeViewer.refresh();
          }
      }
  }
  </code></pre>
  
  <p>In this scenario, <code>TreeView::propertyChange()</code> is not getting called, even though <code>firePropertyChange()</code> is getting fired.  Any ideas why?  I'm also open to any other ideas that don't involve PropertyChangeListener, it just seemed like this would be the easiest way at the time.  Thank you.</p>