home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / javax / swing / text / html / HTMLEditorKit$InsertHTMLTextAction.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  4.4 KB  |  158 lines

  1. package javax.swing.text.html;
  2.  
  3. import java.awt.event.ActionEvent;
  4. import java.io.IOException;
  5. import javax.swing.JEditorPane;
  6. import javax.swing.text.AbstractDocument;
  7. import javax.swing.text.BadLocationException;
  8. import javax.swing.text.DefaultStyledDocument;
  9. import javax.swing.text.Element;
  10. import javax.swing.text.JTextComponent;
  11. import javax.swing.text.StyledEditorKit;
  12.  
  13. public class HTMLEditorKit$InsertHTMLTextAction extends HTMLEditorKit.HTMLTextAction {
  14.    protected String html;
  15.    protected HTML.Tag parentTag;
  16.    protected HTML.Tag addTag;
  17.    protected HTML.Tag alternateParentTag;
  18.    protected HTML.Tag alternateAddTag;
  19.    boolean adjustSelection;
  20.  
  21.    public HTMLEditorKit$InsertHTMLTextAction(String var1, String var2, HTML.Tag var3, HTML.Tag var4) {
  22.       this(var1, var2, var3, var4, (HTML.Tag)null, (HTML.Tag)null);
  23.    }
  24.  
  25.    public HTMLEditorKit$InsertHTMLTextAction(String var1, String var2, HTML.Tag var3, HTML.Tag var4, HTML.Tag var5, HTML.Tag var6) {
  26.       this(var1, var2, var3, var4, var5, var6, true);
  27.    }
  28.  
  29.    HTMLEditorKit$InsertHTMLTextAction(String var1, String var2, HTML.Tag var3, HTML.Tag var4, HTML.Tag var5, HTML.Tag var6, boolean var7) {
  30.       super(var1);
  31.       this.html = var2;
  32.       this.parentTag = var3;
  33.       this.addTag = var4;
  34.       this.alternateParentTag = var5;
  35.       this.alternateAddTag = var6;
  36.       this.adjustSelection = var7;
  37.    }
  38.  
  39.    protected void insertHTML(JEditorPane var1, HTMLDocument var2, int var3, String var4, int var5, int var6, HTML.Tag var7) {
  40.       try {
  41.          ((HTMLEditorKit.HTMLTextAction)this).getHTMLEditorKit(var1).insertHTML(var2, var3, var4, var5, var6, var7);
  42.       } catch (IOException var10) {
  43.          throw new RuntimeException("Unable to insert: " + var10);
  44.       } catch (BadLocationException var11) {
  45.          throw new RuntimeException("Unable to insert: " + var11);
  46.       }
  47.    }
  48.  
  49.    protected void insertAtBoundary(JEditorPane var1, HTMLDocument var2, int var3, Element var4, String var5, HTML.Tag var6, HTML.Tag var7) {
  50.       this.insertAtBoundry(var1, var2, var3, var4, var5, var6, var7);
  51.    }
  52.  
  53.    protected void insertAtBoundry(JEditorPane var1, HTMLDocument var2, int var3, Element var4, String var5, HTML.Tag var6, HTML.Tag var7) {
  54.       boolean var10 = var3 == 0;
  55.       Element var9;
  56.       if (var3 <= 0 && var4 != null) {
  57.          var9 = var4;
  58.       } else {
  59.          Element var8;
  60.          for(var8 = ((DefaultStyledDocument)var2).getDefaultRootElement(); var8 != null && var8.getStartOffset() != var3 && !var8.isLeaf(); var8 = var8.getElement(var8.getElementIndex(var3))) {
  61.          }
  62.  
  63.          var9 = var8 != null ? var8.getParentElement() : null;
  64.       }
  65.  
  66.       if (var9 != null) {
  67.          int var11 = 0;
  68.          int var12 = 0;
  69.          if (var10 && var4 != null) {
  70.             for(Element var16 = var9; var16 != null && !var16.isLeaf(); ++var11) {
  71.                var16 = var16.getElement(var16.getElementIndex(var3));
  72.             }
  73.          } else {
  74.             Element var14 = var9;
  75.             --var3;
  76.  
  77.             while(var14 != null && !var14.isLeaf()) {
  78.                var14 = var14.getElement(var14.getElementIndex(var3));
  79.                ++var11;
  80.             }
  81.  
  82.             var14 = var9;
  83.             ++var3;
  84.  
  85.             while(var14 != null && var14 != var4) {
  86.                var14 = var14.getElement(var14.getElementIndex(var3));
  87.                ++var12;
  88.             }
  89.          }
  90.  
  91.          var11 = Math.max(0, var11 - 1);
  92.          this.insertHTML(var1, var2, var3, var5, var11, var12, var7);
  93.       }
  94.  
  95.    }
  96.  
  97.    boolean insertIntoTag(JEditorPane var1, HTMLDocument var2, int var3, HTML.Tag var4, HTML.Tag var5) {
  98.       Element var6 = ((HTMLEditorKit.HTMLTextAction)this).findElementMatchingTag(var2, var3, var4);
  99.       if (var6 != null && var6.getStartOffset() == var3) {
  100.          this.insertAtBoundary(var1, var2, var3, var6, this.html, var4, var5);
  101.          return true;
  102.       } else {
  103.          if (var3 > 0) {
  104.             int var7 = ((HTMLEditorKit.HTMLTextAction)this).elementCountToTag(var2, var3 - 1, var4);
  105.             if (var7 != -1) {
  106.                this.insertHTML(var1, var2, var3, this.html, var7, 0, var5);
  107.                return true;
  108.             }
  109.          }
  110.  
  111.          return false;
  112.       }
  113.    }
  114.  
  115.    void adjustSelection(JEditorPane var1, HTMLDocument var2, int var3, int var4) {
  116.       int var5 = ((AbstractDocument)var2).getLength();
  117.       if (var5 != var4 && var3 < var5) {
  118.          if (var3 > 0) {
  119.             String var6;
  120.             try {
  121.                var6 = ((AbstractDocument)var2).getText(var3 - 1, 1);
  122.             } catch (BadLocationException var8) {
  123.                var6 = null;
  124.             }
  125.  
  126.             if (var6 != null && var6.length() > 0 && var6.charAt(0) == '\n') {
  127.                ((JTextComponent)var1).select(var3, var3);
  128.             } else {
  129.                ((JTextComponent)var1).select(var3 + 1, var3 + 1);
  130.             }
  131.          } else {
  132.             ((JTextComponent)var1).select(1, 1);
  133.          }
  134.       }
  135.  
  136.    }
  137.  
  138.    public void actionPerformed(ActionEvent var1) {
  139.       JEditorPane var2 = ((StyledEditorKit.StyledTextAction)this).getEditor(var1);
  140.       if (var2 != null) {
  141.          HTMLDocument var3 = ((HTMLEditorKit.HTMLTextAction)this).getHTMLDocument(var2);
  142.          int var4 = ((JTextComponent)var2).getSelectionStart();
  143.          int var5 = ((AbstractDocument)var3).getLength();
  144.          boolean var6;
  145.          if (!this.insertIntoTag(var2, var3, var4, this.parentTag, this.addTag) && this.alternateParentTag != null) {
  146.             var6 = this.insertIntoTag(var2, var3, var4, this.alternateParentTag, this.alternateAddTag);
  147.          } else {
  148.             var6 = true;
  149.          }
  150.  
  151.          if (this.adjustSelection && var6) {
  152.             this.adjustSelection(var2, var3, var4, var5);
  153.          }
  154.       }
  155.  
  156.    }
  157. }
  158.