Ejemplo n.º 1
0
  /**
   * Creates a dirty region for a document event and adds it to the queue.
   *
   * @param event the document event for which to create a dirty region
   */
  private void createDirtyRegion(final DocumentChangeEvent event) {
    if (event.getLength() == 0 && event.getText() != null) {
      // Insert
      dirtyRegionQueue.addDirtyRegion(
          new DirtyRegion(
              event.getOffset(), event.getText().length(), DirtyRegion.INSERT, event.getText()));

    } else if (event.getText() == null || event.getText().length() == 0) {
      // Remove
      dirtyRegionQueue.addDirtyRegion(
          new DirtyRegion(event.getOffset(), event.getLength(), DirtyRegion.REMOVE, null));

    } else {
      // Replace (Remove + Insert)
      dirtyRegionQueue.addDirtyRegion(
          new DirtyRegion(event.getOffset(), event.getLength(), DirtyRegion.REMOVE, null));
      dirtyRegionQueue.addDirtyRegion(
          new DirtyRegion(
              event.getOffset(), event.getText().length(), DirtyRegion.INSERT, event.getText()));
    }
  }
Ejemplo n.º 2
0
 private void processNextRegion() {
   final DirtyRegion region = dirtyRegionQueue.removeNextDirtyRegion();
   process(region);
 }