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 / DefaultHighlighter.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  4.5 KB  |  181 lines

  1. package javax.swing.text;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.Insets;
  6. import java.awt.Rectangle;
  7. import java.awt.Shape;
  8. import java.util.Vector;
  9. import javax.swing.plaf.TextUI;
  10.  
  11. public class DefaultHighlighter extends LayeredHighlighter {
  12.    private Vector highlights = new Vector();
  13.    private JTextComponent component;
  14.    private boolean drawsLayeredHighlights = true;
  15.    public static LayeredHighlighter.LayerPainter DefaultPainter = new DefaultHighlightPainter((Color)null);
  16.  
  17.    public void paint(Graphics var1) {
  18.       int var2 = this.highlights.size();
  19.  
  20.       for(int var3 = 0; var3 < var2; ++var3) {
  21.          HighlightInfo var4 = (HighlightInfo)this.highlights.elementAt(var3);
  22.          if (!(var4 instanceof LayeredHighlightInfo)) {
  23.             Rectangle var5 = this.component.getBounds();
  24.             Insets var6 = this.component.getInsets();
  25.             var5.x = var6.left;
  26.             var5.y = var6.top;
  27.             var5.width -= var6.left + var6.right;
  28.  
  29.             for(var5.height -= var6.top + var6.bottom; var3 < var2; ++var3) {
  30.                var4 = (HighlightInfo)this.highlights.elementAt(var3);
  31.                if (!(var4 instanceof LayeredHighlightInfo)) {
  32.                   Highlighter.HighlightPainter var7 = var4.getPainter();
  33.                   var7.paint(var1, var4.getStartOffset(), var4.getEndOffset(), var5, this.component);
  34.                }
  35.             }
  36.          }
  37.       }
  38.  
  39.    }
  40.  
  41.    public void install(JTextComponent var1) {
  42.       this.component = var1;
  43.       this.removeAllHighlights();
  44.    }
  45.  
  46.    public void deinstall(JTextComponent var1) {
  47.       this.component = null;
  48.    }
  49.  
  50.    public Object addHighlight(int var1, int var2, Highlighter.HighlightPainter var3) throws BadLocationException {
  51.       Document var4 = this.component.getDocument();
  52.       TextUI var5 = this.component.getUI();
  53.       Object var6 = this.getDrawsLayeredHighlights() && var3 instanceof LayeredHighlighter.LayerPainter ? new LayeredHighlightInfo(this) : new HighlightInfo(this);
  54.       ((HighlightInfo)var6).painter = var3;
  55.       ((HighlightInfo)var6).p0 = var4.createPosition(var1);
  56.       ((HighlightInfo)var6).p1 = var4.createPosition(var2);
  57.       this.highlights.addElement(var6);
  58.       var5.damageRange(this.component, var1, var2);
  59.       return var6;
  60.    }
  61.  
  62.    public void removeHighlight(Object var1) {
  63.       if (var1 instanceof LayeredHighlightInfo) {
  64.          LayeredHighlightInfo var2 = (LayeredHighlightInfo)var1;
  65.          if (var2.width > 0 && var2.height > 0) {
  66.             this.component.repaint(var2.x, var2.y, var2.width, var2.height);
  67.          }
  68.       } else {
  69.          TextUI var4 = this.component.getUI();
  70.          HighlightInfo var3 = (HighlightInfo)var1;
  71.          var4.damageRange(this.component, var3.p0.getOffset(), var3.p1.getOffset());
  72.       }
  73.  
  74.       this.highlights.removeElement(var1);
  75.    }
  76.  
  77.    public void removeAllHighlights() {
  78.       TextUI var1 = this.component.getUI();
  79.       if (this.getDrawsLayeredHighlights()) {
  80.          int var2 = this.highlights.size();
  81.          if (var2 != 0) {
  82.             int var3 = 0;
  83.             int var4 = 0;
  84.             int var5 = 0;
  85.             int var6 = 0;
  86.  
  87.             for(int var7 = 0; var7 < var2; ++var7) {
  88.                LayeredHighlightInfo var8 = (LayeredHighlightInfo)this.highlights.elementAt(var7);
  89.                var3 = Math.min(var3, var8.x);
  90.                var4 = Math.min(var4, var8.y);
  91.                var5 = Math.max(var5, var8.x + var8.width);
  92.                var6 = Math.max(var6, var8.y + var8.height);
  93.             }
  94.  
  95.             if (var3 != var5 && var4 != var6) {
  96.                this.component.repaint(var3, var4, var5 - var3, var6 - var4);
  97.             }
  98.  
  99.             this.highlights.removeAllElements();
  100.          }
  101.       } else if (var1 != null) {
  102.          int var9 = this.highlights.size();
  103.          if (var9 != 0) {
  104.             int var10 = Integer.MAX_VALUE;
  105.             int var11 = 0;
  106.  
  107.             for(int var12 = 0; var12 < var9; ++var12) {
  108.                HighlightInfo var13 = (HighlightInfo)this.highlights.elementAt(var12);
  109.                var10 = Math.min(var10, var13.p0.getOffset());
  110.                var11 = Math.max(var11, var13.p1.getOffset());
  111.             }
  112.  
  113.             var1.damageRange(this.component, var10, var11);
  114.             this.highlights.removeAllElements();
  115.          }
  116.       }
  117.  
  118.    }
  119.  
  120.    public void changeHighlight(Object var1, int var2, int var3) throws BadLocationException {
  121.       Document var4 = this.component.getDocument();
  122.       TextUI var5 = this.component.getUI();
  123.       if (var1 instanceof LayeredHighlightInfo) {
  124.          LayeredHighlightInfo var6 = (LayeredHighlightInfo)var1;
  125.          if (var6.width > 0 && var6.height > 0) {
  126.             this.component.repaint(var6.x, var6.y, var6.width, var6.height);
  127.          }
  128.  
  129.          var6.width = var6.height = 0;
  130.          var6.p0 = var4.createPosition(var2);
  131.          var6.p1 = var4.createPosition(var3);
  132.          var5.damageRange(this.component, Math.min(var2, var3), Math.max(var2, var3));
  133.       } else {
  134.          HighlightInfo var9 = (HighlightInfo)var1;
  135.          int var7 = var9.p0.getOffset();
  136.          int var8 = var9.p1.getOffset();
  137.          if (var2 == var7) {
  138.             var5.damageRange(this.component, Math.min(var8, var3), Math.max(var8, var3));
  139.          } else if (var3 == var8) {
  140.             var5.damageRange(this.component, Math.min(var2, var7), Math.max(var2, var7));
  141.          } else {
  142.             var5.damageRange(this.component, var7, var8);
  143.             var5.damageRange(this.component, var2, var3);
  144.          }
  145.  
  146.          var9.p0 = var4.createPosition(var2);
  147.          var9.p1 = var4.createPosition(var3);
  148.       }
  149.  
  150.    }
  151.  
  152.    public Highlighter.Highlight[] getHighlights() {
  153.       Highlighter.Highlight[] var1 = new Highlighter.Highlight[this.highlights.size()];
  154.       this.highlights.copyInto(var1);
  155.       return var1;
  156.    }
  157.  
  158.    public void paintLayeredHighlights(Graphics var1, int var2, int var3, Shape var4, JTextComponent var5, View var6) {
  159.       for(int var7 = this.highlights.size() - 1; var7 >= 0; --var7) {
  160.          Object var8 = this.highlights.elementAt(var7);
  161.          if (var8 instanceof LayeredHighlightInfo) {
  162.             LayeredHighlightInfo var9 = (LayeredHighlightInfo)var8;
  163.             int var10 = ((HighlightInfo)var9).getStartOffset();
  164.             int var11 = ((HighlightInfo)var9).getEndOffset();
  165.             if (var2 < var10 && var3 > var10 || var2 >= var10 && var2 < var11) {
  166.                var9.paintLayeredHighlights(var1, var2, var3, var4, var5, var6);
  167.             }
  168.          }
  169.       }
  170.  
  171.    }
  172.  
  173.    public void setDrawsLayeredHighlights(boolean var1) {
  174.       this.drawsLayeredHighlights = var1;
  175.    }
  176.  
  177.    public boolean getDrawsLayeredHighlights() {
  178.       return this.drawsLayeredHighlights;
  179.    }
  180. }
  181.