home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / text / AbstractDocument$DefaultDocumentEvent.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  3.5 KB  |  150 lines

  1. package javax.swing.text;
  2.  
  3. import java.util.Hashtable;
  4. import javax.swing.event.DocumentEvent;
  5. import javax.swing.event.DocumentEvent.EventType;
  6. import javax.swing.undo.CannotRedoException;
  7. import javax.swing.undo.CannotUndoException;
  8. import javax.swing.undo.CompoundEdit;
  9. import javax.swing.undo.UndoableEdit;
  10.  
  11. public class AbstractDocument$DefaultDocumentEvent extends CompoundEdit implements DocumentEvent {
  12.    // $FF: synthetic field
  13.    private final AbstractDocument this$0;
  14.    private int offset;
  15.    private int length;
  16.    private Hashtable changeLookup;
  17.    private DocumentEvent.EventType type;
  18.  
  19.    public AbstractDocument$DefaultDocumentEvent(AbstractDocument var1, int var2, int var3, DocumentEvent.EventType var4) {
  20.       this.this$0 = var1;
  21.       this.offset = var2;
  22.       this.length = var3;
  23.       this.type = var4;
  24.    }
  25.  
  26.    // $FF: synthetic method
  27.    static DocumentEvent.EventType access$0(AbstractDocument$DefaultDocumentEvent var0) {
  28.       return var0.type;
  29.    }
  30.  
  31.    public boolean addEdit(UndoableEdit var1) {
  32.       if (this.changeLookup == null && super.edits.size() > 10) {
  33.          this.changeLookup = new Hashtable();
  34.          int var2 = super.edits.size();
  35.  
  36.          for(int var3 = 0; var3 < var2; ++var3) {
  37.             Object var4 = super.edits.elementAt(var3);
  38.             if (var4 instanceof DocumentEvent.ElementChange) {
  39.                DocumentEvent.ElementChange var5 = (DocumentEvent.ElementChange)var4;
  40.                this.changeLookup.put(var5.getElement(), var5);
  41.             }
  42.          }
  43.       }
  44.  
  45.       if (this.changeLookup != null && var1 instanceof DocumentEvent.ElementChange) {
  46.          DocumentEvent.ElementChange var6 = (DocumentEvent.ElementChange)var1;
  47.          this.changeLookup.put(var6.getElement(), var6);
  48.       }
  49.  
  50.       return super.addEdit(var1);
  51.    }
  52.  
  53.    public DocumentEvent.ElementChange getChange(Element var1) {
  54.       if (this.changeLookup != null) {
  55.          return (DocumentEvent.ElementChange)this.changeLookup.get(var1);
  56.       } else {
  57.          int var2 = super.edits.size();
  58.  
  59.          for(int var3 = 0; var3 < var2; ++var3) {
  60.             Object var4 = super.edits.elementAt(var3);
  61.             if (var4 instanceof DocumentEvent.ElementChange) {
  62.                DocumentEvent.ElementChange var5 = (DocumentEvent.ElementChange)var4;
  63.                if (var5.getElement() == var1) {
  64.                   return var5;
  65.                }
  66.             }
  67.          }
  68.  
  69.          return null;
  70.       }
  71.    }
  72.  
  73.    public Document getDocument() {
  74.       return this.this$0;
  75.    }
  76.  
  77.    public int getLength() {
  78.       return this.length;
  79.    }
  80.  
  81.    public int getOffset() {
  82.       return this.offset;
  83.    }
  84.  
  85.    public String getPresentationName() {
  86.       DocumentEvent.EventType var1 = this.getType();
  87.       if (var1 == EventType.INSERT) {
  88.          return "addition";
  89.       } else {
  90.          return var1 == EventType.REMOVE ? "deletion" : "style change";
  91.       }
  92.    }
  93.  
  94.    public String getRedoPresentationName() {
  95.       return "Redo " + this.getPresentationName();
  96.    }
  97.  
  98.    public DocumentEvent.EventType getType() {
  99.       return this.type;
  100.    }
  101.  
  102.    public String getUndoPresentationName() {
  103.       return "Undo " + this.getPresentationName();
  104.    }
  105.  
  106.    public boolean isSignificant() {
  107.       return true;
  108.    }
  109.  
  110.    public void redo() throws CannotRedoException {
  111.       this.this$0.writeLock();
  112.  
  113.       try {
  114.          super.redo();
  115.          if (this.type == EventType.INSERT) {
  116.             this.this$0.fireInsertUpdate(this);
  117.          } else if (this.type == EventType.REMOVE) {
  118.             this.this$0.fireRemoveUpdate(this);
  119.          } else {
  120.             this.this$0.fireChangedUpdate(this);
  121.          }
  122.       } finally {
  123.          this.this$0.writeUnlock();
  124.       }
  125.  
  126.    }
  127.  
  128.    public String toString() {
  129.       return super.edits.toString();
  130.    }
  131.  
  132.    public void undo() throws CannotUndoException {
  133.       this.this$0.writeLock();
  134.  
  135.       try {
  136.          super.undo();
  137.          if (this.type == EventType.REMOVE) {
  138.             this.this$0.fireInsertUpdate(this);
  139.          } else if (this.type == EventType.INSERT) {
  140.             this.this$0.fireRemoveUpdate(this);
  141.          } else {
  142.             this.this$0.fireChangedUpdate(this);
  143.          }
  144.       } finally {
  145.          this.this$0.writeUnlock();
  146.       }
  147.  
  148.    }
  149. }
  150.