title: Prevent save using IResourceDeltaVisitor
body: <p>I am trying to write an eclipse plugin which works like a client to a server. The client will try to interact with the server when a resource tracked by the plugin is modified and the Save button is clicked.</p>
  
  <p>What I intend to implement is to prevent the local save from happening (i.e. retain the file as dirty) until the server interaction is complete and if the interaction is successful.</p>
  
  <p>For this, I have implemented IResourceChangeListener and IResourceDeltaVisitor which triggers the server event on POST_BUILD (instead of POST_CHANGE, because I do not want the local save to happen yet).</p>
  
  <pre><code>getWorkspace().addResourceChangeListener(new MyChangeListener(), IResourceChangeEvent.POST_BUILD);
  
  MyChangeListener#resourceChanged(IResourceChangeEvent event) {
      switch(event.getType()) {
          case IResourceChangeEvent.POST_BUILD:
              event.getDelta().accept(MyresourceVisitor.create());
      }
  }
  
  MyresourceVisitor#visit(IResourceDelta delta) {
      switch (delta.getKind()) {
          case IResourceDelta.CHANGED:
              boolean success = interactWithServer(delta.getResource());
              break;
      }
      return true;
  }
  </code></pre>
  
  <p>But this would always go ahead and save the resource as well irrespective of the success of the server interaction - How can I prevent the save?</p>