home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing.text.html;
-
- import com.sun.java.swing.Icon;
- import com.sun.java.swing.ImageIcon;
- import com.sun.java.swing.SwingUtilities;
- import com.sun.java.swing.event.DocumentEvent;
- import com.sun.java.swing.text.BadLocationException;
- import com.sun.java.swing.text.Element;
- import com.sun.java.swing.text.Highlighter;
- import com.sun.java.swing.text.JTextComponent;
- import com.sun.java.swing.text.MutableAttributeSet;
- import com.sun.java.swing.text.SimpleAttributeSet;
- import com.sun.java.swing.text.StyledDocument;
- import com.sun.java.swing.text.View;
- import com.sun.java.swing.text.ViewFactory;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Cursor;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.Point;
- import java.awt.Rectangle;
- import java.awt.Shape;
- import java.awt.event.InputEvent;
- import java.awt.event.MouseEvent;
- import java.awt.event.MouseListener;
- import java.awt.event.MouseMotionListener;
- import java.awt.image.ImageObserver;
- import java.io.BufferedInputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.FilterInputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
-
- class ImageView extends View implements ImageObserver, MouseListener, MouseMotionListener, Runnable, HTMLDefs {
- public static final String TOP = "top";
- public static final String TEXTTOP = "texttop";
- public static final String MIDDLE = "middle";
- public static final String ABSMIDDLE = "absmiddle";
- public static final String CENTER = "center";
- public static final String BOTTOM = "bottom";
- private static boolean sIsInc;
- private static int sIncRate;
- private ImageInfo fIMG;
- private int fHeight;
- private int fWidth;
- private Container fContainer;
- private Rectangle fBounds;
- private Component fComponent;
- private Point fGrowBase;
- private boolean fGrowProportionally;
- private static Icon sPendingImageIcon;
- private static Icon sMissingImageIcon;
- private static final String PENDING_IMAGE_SRC = "icons/image-delayed.gif";
- private static final String MISSING_IMAGE_SRC = "icons/image-failed.gif";
- private static final boolean DEBUG = false;
- // $FF: synthetic field
- static Class class$com$sun$java$swing$text$html$ImageView;
-
- static void addImageDataAttribute(MutableAttributeSet var0) {
- ImageInfo var1 = new ImageInfo();
- var0.addAttribute("$IMGObject", var1);
- }
-
- public ImageView(Element var1) {
- super(var1);
- this.fIMG = (ImageInfo)var1.getAttributes().getAttribute("$IMGObject");
- this.fIMG.initialize(this, var1);
- this.fHeight = this.fIMG.fHeight;
- this.fWidth = this.fIMG.fWidth;
- }
-
- public void setParent(View var1) {
- super.setParent(var1);
- this.fContainer = var1 != null ? ((View)this).getContainer() : null;
- if (var1 == null && this.fComponent != null) {
- this.fComponent.getParent().remove(this.fComponent);
- this.fComponent = null;
- }
-
- }
-
- public void changedUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
- super.changedUpdate(var1, var2, var3);
- float var4 = this.fIMG.getVerticalAlignment();
- this.fIMG.changedUpdate(this, ((View)this).getElement());
- boolean var5 = false;
- boolean var6 = false;
- if (this.fHeight != this.fIMG.fHeight) {
- this.fHeight = this.fIMG.fHeight;
- var5 = true;
- }
-
- if (this.fWidth != this.fIMG.fWidth) {
- this.fWidth = this.fIMG.fWidth;
- var6 = true;
- }
-
- if (var5 || var6 || this.fIMG.getVerticalAlignment() != var4) {
- ((View)this).getParent().preferenceChanged(this, var5, var6);
- }
-
- }
-
- public void paint(Graphics var1, Shape var2) {
- Color var3 = var1.getColor();
- this.fBounds = var2.getBounds();
- int var4 = this.fIMG.getBorder();
- int var5 = this.fBounds.x + var4 + this.fIMG.getSpace(0);
- int var6 = this.fBounds.y + var4 + this.fIMG.getSpace(1);
- int var7 = this.fIMG.fWidth;
- int var8 = this.fIMG.fHeight;
- int var9 = this.getSelectionState();
- if (this.fComponent == null) {
- this.fComponent = new 1();
- this.fComponent.addMouseListener(this);
- this.fComponent.addMouseMotionListener(this);
- this.fComponent.setCursor(Cursor.getDefaultCursor());
- this.fContainer.add(this.fComponent);
- }
-
- this.fComponent.setBounds(var5, var6, var7, var8);
- if (!this.fIMG.hasPixels(this)) {
- var1.setColor(Color.lightGray);
- var1.drawRect(var5, var6, var7 - 1, var8 - 1);
- var1.setColor(var3);
- this.loadIcons();
- Icon var10 = this.fIMG.fImage == null ? sMissingImageIcon : sPendingImageIcon;
- if (var10 != null) {
- var10.paintIcon(((View)this).getContainer(), var1, var5, var6);
- }
- }
-
- if (this.fIMG.fImage != null) {
- if (var9 > 0) {
- var1.setXORMode(Color.white);
- }
-
- var1.drawImage(this.fIMG.fImage, var5, var6, var7, var8, this);
- if (var9 > 0) {
- var1.setPaintMode();
- }
- }
-
- Color var12 = this.fIMG.getBorderColor();
- if (var9 == 2) {
- int var11 = 2 - var4;
- if (var11 > 0) {
- var5 += var11;
- var6 += var11;
- var7 -= var11 << 1;
- var8 -= var11 << 1;
- var4 = 2;
- }
-
- var12 = null;
- var1.setColor(Color.black);
- var1.fillRect(var5 + var7 - 5, var6 + var8 - 5, 5, 5);
- }
-
- if (var4 > 0) {
- if (var12 != null) {
- var1.setColor(var12);
- }
-
- for(int var13 = 1; var13 <= var4; ++var13) {
- var1.drawRect(var5 - var13, var6 - var13, var7 - 1 + var13 + var13, var8 - 1 + var13 + var13);
- }
-
- var1.setColor(var3);
- }
-
- }
-
- protected void repaint(long var1) {
- if (this.fContainer != null && this.fBounds != null) {
- this.fContainer.repaint(var1, this.fBounds.x, this.fBounds.y, this.fBounds.width, this.fBounds.height);
- }
-
- }
-
- protected int getSelectionState() {
- int var1 = this.fIMG.fElement.getStartOffset();
- int var2 = this.fIMG.fElement.getEndOffset();
- JTextComponent var3 = (JTextComponent)this.fContainer;
- Highlighter var4 = var3.getHighlighter();
- Highlighter.Highlight[] var5 = var4.getHighlights();
-
- for(int var6 = var5.length - 1; var6 >= 0; --var6) {
- Highlighter.Highlight var7 = var5[var6];
- int var8 = var7.getStartOffset();
- int var9 = var7.getEndOffset();
- if (var8 <= var1 && var9 >= var2) {
- if (var8 == var1 && var9 == var2) {
- return 2;
- }
-
- return 1;
- }
- }
-
- return 0;
- }
-
- protected Color getHighlightColor() {
- JTextComponent var1 = (JTextComponent)this.fContainer;
- return var1.getSelectionColor();
- }
-
- public boolean imageUpdate(Image var1, int var2, int var3, int var4, int var5, int var6) {
- if (this.fIMG.fImage == null) {
- return false;
- } else if ((var2 & 192) != 0) {
- this.fIMG.fImage = null;
- this.repaint(0L);
- return false;
- } else {
- if ((var2 & 2) != 0 && !((View)this).getElement().getAttributes().isDefined("height")) {
- this.fIMG.fHeight = var6;
- }
-
- if ((var2 & 1) != 0 && !((View)this).getElement().getAttributes().isDefined("width")) {
- this.fIMG.fWidth = var5;
- }
-
- if (this.fHeight == this.fIMG.fHeight && this.fWidth == this.fIMG.fWidth) {
- if ((var2 & 48) != 0) {
- this.repaint(0L);
- } else if ((var2 & 8) != 0 && sIsInc) {
- this.repaint((long)sIncRate);
- }
-
- return true;
- } else {
- this.fHeight = this.fIMG.fHeight;
- this.fWidth = this.fIMG.fWidth;
- SwingUtilities.invokeLater(this);
- return true;
- }
- }
- }
-
- public void run() {
- ((View)this).preferenceChanged(this, true, true);
- }
-
- public float getPreferredSpan(int var1) {
- int var2 = 2 * (this.fIMG.getBorder() + this.fIMG.getSpace(var1));
- switch (var1) {
- case 0:
- return (float)(this.fIMG.fWidth + var2);
- case 1:
- return (float)(this.fIMG.fHeight + var2);
- default:
- throw new IllegalArgumentException("Invalid axis: " + var1);
- }
- }
-
- public float getAlignment(int var1) {
- switch (var1) {
- case 1:
- return this.fIMG.getVerticalAlignment();
- default:
- return super.getAlignment(var1);
- }
- }
-
- public Shape modelToView(int var1, Shape var2) throws BadLocationException {
- int var3 = ((View)this).getStartOffset();
- int var4 = ((View)this).getEndOffset();
- if (var1 >= var3 && var1 < var4) {
- Rectangle var5 = new Rectangle(var2.getBounds());
- var5.width = 0;
- return var5;
- } else {
- return null;
- }
- }
-
- public int viewToModel(float var1, float var2, Shape var3) {
- return ((View)this).getStartOffset();
- }
-
- public void setSize(float var1, float var2) {
- }
-
- protected void resize(int var1, int var2) {
- if (var1 != this.fIMG.fWidth || var2 != this.fIMG.fHeight) {
- this.fWidth = this.fIMG.fWidth = var1;
- this.fHeight = this.fIMG.fHeight = var2;
- SimpleAttributeSet var3 = new SimpleAttributeSet();
- var3.addAttribute("width", Integer.toString(var1));
- var3.addAttribute("height", Integer.toString(var2));
- ((StyledDocument)((View)this).getDocument()).setCharacterAttributes(this.fIMG.fElement.getStartOffset(), this.fIMG.fElement.getEndOffset(), var3, false);
- }
- }
-
- public void mousePressed(MouseEvent var1) {
- Dimension var2 = this.fComponent.getSize();
- if (var1.getX() >= var2.width - 7 && var1.getY() >= var2.height - 7 && this.getSelectionState() == 2) {
- Point var8 = this.fComponent.getLocationOnScreen();
- this.fGrowBase = new Point(var8.x + var1.getX() - this.fWidth, var8.y + var1.getY() - this.fHeight);
- this.fGrowProportionally = ((InputEvent)var1).isShiftDown();
- } else {
- this.fGrowBase = null;
- JTextComponent var3 = (JTextComponent)this.fContainer;
- int var4 = this.fIMG.fElement.getStartOffset();
- int var5 = this.fIMG.fElement.getEndOffset();
- int var6 = var3.getCaret().getMark();
- int var7 = var3.getCaret().getDot();
- if (((InputEvent)var1).isShiftDown()) {
- if (var6 <= var4) {
- var3.moveCaretPosition(var5);
- } else {
- var3.moveCaretPosition(var4);
- }
- } else {
- if (var6 != var4) {
- var3.setCaretPosition(var4);
- }
-
- if (var7 != var5) {
- var3.moveCaretPosition(var5);
- }
-
- }
- }
- }
-
- public void mouseDragged(MouseEvent var1) {
- if (this.fGrowBase != null) {
- Point var2 = this.fComponent.getLocationOnScreen();
- int var3 = Math.max(2, var2.x + var1.getX() - this.fGrowBase.x);
- int var4 = Math.max(2, var2.y + var1.getY() - this.fGrowBase.y);
- if (((InputEvent)var1).isShiftDown() && this.fIMG.fImage != null) {
- int var5 = this.fIMG.fImage.getWidth(this);
- int var6 = this.fIMG.fImage.getHeight(this);
- if (var5 > 0 && var6 > 0) {
- float var7 = (float)var6 / (float)var5;
- float var8 = (float)var4 / var7;
- float var9 = (float)var3 * var7;
- if (var8 > (float)var3) {
- var3 = (int)var8;
- } else {
- var4 = (int)var9;
- }
- }
- }
-
- this.resize(var3, var4);
- }
-
- }
-
- public void mouseReleased(MouseEvent var1) {
- this.fGrowBase = null;
- }
-
- public void mouseClicked(MouseEvent var1) {
- if (var1.getClickCount() == 2) {
- System.out.println("ImageView: Double-click!");
- }
-
- }
-
- public void mouseEntered(MouseEvent var1) {
- }
-
- public void mouseMoved(MouseEvent var1) {
- }
-
- public void mouseExited(MouseEvent var1) {
- }
-
- private Icon makeIcon(String var1) throws IOException {
- InputStream var2 = (class$com$sun$java$swing$text$html$ImageView != null ? class$com$sun$java$swing$text$html$ImageView : (class$com$sun$java$swing$text$html$ImageView = class$("com.sun.java.swing.text.html.ImageView"))).getResourceAsStream(var1);
- if (var2 == null) {
- System.err.println((class$com$sun$java$swing$text$html$ImageView != null ? class$com$sun$java$swing$text$html$ImageView : (class$com$sun$java$swing$text$html$ImageView = class$("com.sun.java.swing.text.html.ImageView"))).getName() + "/" + var1 + " not found.");
- return null;
- } else {
- BufferedInputStream var3 = new BufferedInputStream(var2);
- ByteArrayOutputStream var4 = new ByteArrayOutputStream(1024);
- byte[] var5 = new byte[1024];
-
- int var6;
- while((var6 = ((FilterInputStream)var3).read(var5)) > 0) {
- var4.write(var5, 0, var6);
- }
-
- ((FilterInputStream)var3).close();
- ((OutputStream)var4).flush();
- var5 = var4.toByteArray();
- if (var5.length == 0) {
- System.err.println("warning: " + var1 + " is zero-length");
- return null;
- } else {
- return new ImageIcon(var5);
- }
- }
- }
-
- private void loadIcons() {
- try {
- if (sPendingImageIcon == null) {
- sPendingImageIcon = this.makeIcon("icons/image-delayed.gif");
- }
-
- if (sMissingImageIcon == null) {
- sMissingImageIcon = this.makeIcon("icons/image-failed.gif");
- return;
- }
- } catch (Exception var1) {
- System.err.println("ImageView: Couldn't load image icons");
- }
-
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
-
- // $FF: synthetic method
- static boolean access$0() {
- return false;
- }
-
- static {
- String var0 = System.getProperty("awt.image.incrementaldraw");
- sIsInc = var0 == null || var0.equals("true");
- var0 = System.getProperty("awt.image.redrawrate");
- sIncRate = var0 != null ? Integer.parseInt(var0) : 100;
- }
- }
-