home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / xa / SourcePane$SourceReparseUndoable.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  4.1 KB  |  97 lines

  1. package com.extensibility.xa;
  2.  
  3. import com.extensibility.app.BaseUndoable;
  4. import com.extensibility.app.BaseWindow;
  5. import com.extensibility.app.DialogFactory;
  6. import com.extensibility.app.UI;
  7. import com.extensibility.rock.Platform;
  8. import java.awt.Component;
  9. import java.io.StringWriter;
  10.  
  11. public class SourcePane$SourceReparseUndoable extends BaseUndoable {
  12.    // $FF: synthetic field
  13.    final SourcePane this$0;
  14.    StringWriter oldWriter;
  15.    String oldText;
  16.    boolean oldDirty;
  17.  
  18.    public SourcePane$SourceReparseUndoable(SourcePane var1, BaseWindow var2) {
  19.       super(var2);
  20.       this.this$0 = var1;
  21.    }
  22.  
  23.    public void undo() {
  24.       super.undo();
  25.       this.this$0.getSourceText().getDocument().removeUndoableEditListener(this.this$0.undoListener);
  26.  
  27.       try {
  28.          this.this$0.getSchemaDoc().getUndoManager().discardAllEdits();
  29.          this.this$0.ignoreMyCommitPending = true;
  30.          this.this$0.getSchemaDoc().commitPendingEdits(false);
  31.          this.this$0.ignoreMyCommitPending = false;
  32.          this.this$0.getSchemaDoc().reparse(this.this$0.uri, this.oldWriter.toString());
  33.          if (this.this$0.getSchemaDoc().getParseErrors().size() > 0) {
  34.             XADesktop.createErrorWindow(this.this$0.getSchemaDoc());
  35.          } else {
  36.             DialogFactory.note((Component)null, UI.getString("dialog.parsedOk"));
  37.             this.this$0.getSchemaWin().hideErrorPane();
  38.          }
  39.  
  40.          int var1 = this.this$0.getSourceText().getSelectionStart();
  41.          this.this$0.getSourceText().setText(this.oldText);
  42.          var1 = Math.min(var1, this.this$0.getSourceText().getText().length());
  43.          this.this$0.getSourceText().select(var1, var1);
  44.          this.this$0.checkJDKBug();
  45.          this.this$0.setDirty(this.oldDirty);
  46.       } catch (Exception var6) {
  47.          DialogFactory.showException(((BaseUndoable)this).getWindow(), 123, var6);
  48.       } finally {
  49.          ;
  50.       }
  51.  
  52.       this.this$0.getSourceText().getDocument().addUndoableEditListener(this.this$0.undoListener);
  53.       ((BaseSourcePane.SourceUndoManager)this.this$0.getUndoManager()).trimAllExceptFirst();
  54.    }
  55.  
  56.    public void doCommand() {
  57.       this.this$0.getSourceText().getDocument().removeUndoableEditListener(this.this$0.undoListener);
  58.  
  59.       try {
  60.          this.this$0.inReparse = true;
  61.          this.oldWriter = Platform.getTextAreaStringWriter();
  62.          this.this$0.getSchemaDoc().write(this.oldWriter, this.this$0.uri);
  63.          this.oldText = new String(this.this$0.getSourceText().getText());
  64.          this.oldDirty = this.this$0.isDirty();
  65.          this.this$0.ignoreMyCommitPending = true;
  66.          this.this$0.getSchemaDoc().commitPendingEdits(false);
  67.          this.this$0.ignoreMyCommitPending = false;
  68.          this.this$0.getSchemaDoc().reparse(this.this$0.uri, this.this$0.getSourceText().getText());
  69.          this.this$0.getSchemaDoc().setParsedFromFile(false);
  70.          this.this$0.setDirty(false);
  71.          this.this$0.getSchemaDoc().touch(this.this$0.uri);
  72.          if (this.this$0.getSchemaDoc().getParseErrors().size() > 0) {
  73.             XADesktop.createErrorWindow(this.this$0.getSchemaDoc());
  74.          } else {
  75.             DialogFactory.note((Component)null, UI.getString("dialog.parsedOk"));
  76.             this.this$0.getSchemaWin().hideErrorPane();
  77.          }
  78.       } catch (Exception var6) {
  79.          DialogFactory.showException(((BaseUndoable)this).getWindow(), 123, var6);
  80.       } finally {
  81.          this.this$0.inReparse = false;
  82.       }
  83.  
  84.       this.this$0.getSourceText().getDocument().addUndoableEditListener(this.this$0.undoListener);
  85.    }
  86.  
  87.    public void redo() {
  88.       super.redo();
  89.       this.doCommand();
  90.       ((BaseSourcePane.SourceUndoManager)this.this$0.getUndoManager()).trimAllExceptFirst();
  91.    }
  92.  
  93.    public String getPresentationName() {
  94.       return UI.getString("undo.reparse");
  95.    }
  96. }
  97.