home *** CD-ROM | disk | FTP | other *** search
- package powersoft.painter;
-
- import java.awt.Button;
- import java.awt.Checkbox;
- import java.awt.CheckboxMenuItem;
- import java.awt.Choice;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Frame;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.Insets;
- import java.awt.Label;
- import java.awt.LayoutManager;
- import java.awt.List;
- import java.awt.Menu;
- import java.awt.MenuBar;
- import java.awt.MenuItem;
- import java.awt.Rectangle;
- import java.awt.Scrollbar;
- import java.awt.SystemColor;
- import java.awt.TextArea;
- import java.awt.TextField;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.beans.PropertyChangeEvent;
- import java.beans.PropertyChangeListener;
- import java.lang.reflect.Constructor;
- import java.util.EventObject;
- import java.util.Vector;
-
- public class PainterForm extends Frame implements ActionListener, PropertyChangeListener {
- private double _gridHeight = (double)5.0F;
- private double _gridWidth = (double)5.0F;
- private boolean _gridVisible = true;
- private Image _cacheImage = null;
- private boolean _cacheImageNeedsRebuilding;
- private static final String ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
- private static final int ALPHABET_LENGTH = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".length();
- private static final int CACHE_MAX = 16;
- private static int _cacheSize;
- private static Font[] _cacheFont = new Font[16];
- private static double[] _cacheWidth = new double[16];
- private static double[] _cacheHeight = new double[16];
-
- public PainterForm(String var1) {
- ((Frame)this).setTitle(var1);
- ((Component)this).setVisible(false);
- ((Frame)this).addNotify();
- this.setGridVisible(true);
- this.setGridHeight(5);
- this.setGridWidth(5);
- ((Container)this).setLayout((LayoutManager)null);
- }
-
- public void AddComponent(Component var1) {
- ((Container)this).add(var1);
- }
-
- public static long GetPixelsFromDU(Component var0, int var1, int var2, int var3, int var4) {
- Container var11 = null;
-
- Container var10;
- for(var10 = ((Component)var0).getParent(); var10 != null && ((Component)var10).getParent() != null; var10 = ((Component)var10).getParent()) {
- if (var10.getClass().getName().equals("powersoft.powerj.ui.PageWindow")) {
- var10 = var11;
- break;
- }
-
- var11 = var10;
- }
-
- if (var10 != null) {
- var0 = var10;
- }
-
- int var5 = getOrAddFontCacheIndex(((Component)var0).getFont(), (Component)var0);
- double var6 = _cacheWidth[var5];
- double var8 = _cacheHeight[var5];
- var1 = (int)Math.round((double)var1 * var6);
- var2 = (int)Math.round((double)var2 * var8);
- var3 = (int)Math.round((double)var3 * var6);
- var4 = (int)Math.round((double)var4 * var8);
- long var12 = 0L;
- var12 |= (long)(var1 & '\uffff');
- var12 <<= 16;
- var12 |= (long)(var2 & '\uffff');
- var12 <<= 16;
- var12 |= (long)(var3 & '\uffff');
- var12 <<= 16;
- var12 |= (long)(var4 & '\uffff');
- return var12;
- }
-
- public static long GetDUFromPixels(Component var0, int var1, int var2, int var3, int var4) {
- Container var11 = null;
-
- Container var10;
- for(var10 = ((Component)var0).getParent(); var10 != null && ((Component)var10).getParent() != null; var10 = ((Component)var10).getParent()) {
- if (var10.getClass().getName().equals("powersoft.powerj.ui.PageWindow")) {
- var10 = var11;
- break;
- }
-
- var11 = var10;
- }
-
- if (var10 != null) {
- var0 = var10;
- }
-
- int var5 = getOrAddFontCacheIndex(((Component)var0).getFont(), (Component)var0);
- double var6 = _cacheWidth[var5];
- double var8 = _cacheHeight[var5];
- var1 = (int)Math.round((double)var1 / var6);
- var2 = (int)Math.round((double)var2 / var8);
- var3 = (int)Math.round((double)var3 / var6);
- var4 = (int)Math.round((double)var4 / var8);
- long var12 = 0L;
- var12 |= (long)(var1 & '\uffff');
- var12 <<= 16;
- var12 |= (long)(var2 & '\uffff');
- var12 <<= 16;
- var12 |= (long)(var3 & '\uffff');
- var12 <<= 16;
- var12 |= (long)(var4 & '\uffff');
- return var12;
- }
-
- private Rectangle DTGetRectangleAsRect(Component var1, boolean var2) {
- Rectangle var3 = new Rectangle(var1.bounds());
- Container var4 = var1.getParent();
- if (var2) {
- if (var4 != null) {
- Rectangle var5 = this.DTGetRectangleAsRect(var4, true);
- var3.x += var5.x;
- var3.y += var5.y;
- }
- } else {
- Object var6 = null;
- if (var4 != null) {
- Insets var7 = var4.getInsets();
- if (var7 != null) {
- var3.x -= var7.left;
- var3.y -= var7.top;
- }
- }
- }
-
- return var3;
- }
-
- public long DTGetRectangle(Component var1, boolean var2) {
- Rectangle var4 = new Rectangle(var1.bounds());
- Container var5 = var1.getParent();
- if (var2) {
- if (var5 != null) {
- Rectangle var6 = this.DTGetRectangleAsRect(var5, true);
- var4.x += var6.x;
- var4.y += var6.y;
- }
- } else {
- Object var12 = null;
- if (var5 != null) {
- Insets var13 = var5.getInsets();
- if (var13 != null) {
- var4.x -= var13.left;
- var4.y -= var13.top;
- }
- }
- }
-
- int var7 = var4.height;
- int var14 = var4.width;
- int var11 = var4.y;
- int var10 = var4.x;
- long var8 = 0L;
- var8 |= (long)(var10 & '\uffff');
- var8 <<= 16;
- var8 |= (long)(var11 & '\uffff');
- var8 <<= 16;
- var8 |= (long)(var14 & '\uffff');
- var8 <<= 16;
- var8 |= (long)(var7 & '\uffff');
- return var8;
- }
-
- public static int DTGetBackColor(Component var0) {
- Color var1 = var0.getBackground();
- int var2 = 0;
- int var10000;
- if (var1 == null) {
- var10000 = -1;
- } else if (var1 instanceof SystemColor) {
- var2 = 16777216 | var1.hashCode();
- var10000 = var2;
- } else {
- var2 |= var1.getRed();
- var2 <<= 8;
- var2 |= var1.getGreen();
- var2 <<= 8;
- var2 |= var1.getBlue();
- var10000 = var2;
- }
-
- return var10000;
- }
-
- public static int DTGetForeColor(Component var0) {
- Color var1 = var0.getForeground();
- int var2 = 0;
- int var10000;
- if (var1 == null) {
- var10000 = -1;
- } else if (var1 instanceof SystemColor) {
- var2 = 16777216 | var1.hashCode();
- var10000 = var2;
- } else {
- var2 |= var1.getRed();
- var2 <<= 8;
- var2 |= var1.getGreen();
- var2 <<= 8;
- var2 |= var1.getBlue();
- var10000 = var2;
- }
-
- return var10000;
- }
-
- public void setForeground(Color var1) {
- super.setForeground(var1);
- this._cacheImageNeedsRebuilding = true;
- Rectangle var2 = ((Component)this).getBounds();
- this.repaint(0L, 0, 0, var2.width, var2.height);
- }
-
- public void setBackground(Color var1) {
- super.setBackground(var1);
- this._cacheImageNeedsRebuilding = true;
- Rectangle var2 = ((Component)this).getBounds();
- this.repaint(0L, 0, 0, var2.width, var2.height);
- }
-
- public void rebuildCacheImage() {
- if (this._cacheImageNeedsRebuilding) {
- double var1 = this.getGridHeight();
- double var3 = this.getGridWidth();
- Object var9 = null;
- int var10 = (int)((double)20.0F * var3);
- int var11 = (int)((double)20.0F * var1);
- this._cacheImage = ((Component)this).createImage(var10, var11);
- Graphics var12 = this._cacheImage.getGraphics();
- var12.setColor(((Component)this).getBackground());
- var12.fillRect(0, 0, var10, var11);
- var12.setColor(((Component)this).getForeground());
-
- for(double var7 = (double)0.0F; var7 < (double)var10; var7 += var3) {
- for(double var5 = (double)0.0F; var5 < (double)var11; var5 += var1) {
- var12.drawLine((int)Math.round(var7), (int)Math.round(var5), (int)Math.round(var7), (int)Math.round(var5));
- }
- }
-
- this._cacheImageNeedsRebuilding = false;
- }
- }
-
- public void repaint(long var1, int var3, int var4, int var5, int var6) {
- if (var5 != 0 && var6 != 0) {
- if (var1 == 0L) {
- Graphics var7 = ((Component)this).getGraphics();
- if (var7 == null) {
- super.repaint(var1, var3, var4, var5, var6);
- } else {
- var7.clipRect(var3, var4, var5, var6);
- this.paint(var7);
- var7.dispose();
- }
- } else {
- super.repaint(var1, var3, var4, var5, var6);
- }
- }
- }
-
- public static void repaint(Component var0) {
- if (var0 != null) {
- Rectangle var1 = var0.getBounds();
- int var3 = var1.height;
- int var2 = var1.width;
- if (var0 != null) {
- Graphics var4 = var0.getGraphics();
- if (var4 == null) {
- var0.repaint(0L, 0, 0, var2, var3);
- } else {
- if (var0 instanceof Container) {
- Insets var5 = ((Container)var0).getInsets();
- var2 += var5.left;
- var3 += var5.top;
- }
-
- var4.clipRect(0, 0, var2, var3);
- var0.update(var4);
- var4.dispose();
- }
- }
-
- }
- }
-
- public static void repaint(Component var0, int var1, int var2, int var3, int var4) {
- if (var0 != null) {
- Graphics var5 = var0.getGraphics();
- if (var5 == null) {
- var0.repaint(0L, var1, var2, var3, var4);
- } else {
- if (var0 instanceof Container) {
- Insets var6 = ((Container)var0).getInsets();
- var3 += var6.left;
- var4 += var6.top;
- }
-
- var5.clipRect(var1, var2, var3, var4);
- var0.update(var5);
- var5.dispose();
- }
- }
- }
-
- public static void paintChildren(Container var0, Graphics var1) {
- int var2 = var0.getComponentCount();
- Object var3 = null;
- Rectangle var4 = var1.getClipRect();
-
- for(int var5 = var2 - 1; var5 >= 0; --var5) {
- Component var8 = var0.getComponent(var5);
- if (var8 != null && var8.isVisible()) {
- Rectangle var6 = var8.getBounds();
- if (var4 == null || var6.intersects(var4)) {
- Graphics var7 = var8.getGraphics();
- if (var7 != null) {
- var7.clipRect(0, 0, var6.width, var6.height);
- var8.update(var7);
- var7.dispose();
- }
- }
-
- if (var8 instanceof Button || var8 instanceof Choice || var8 instanceof Scrollbar || var8 instanceof TextField || var8 instanceof TextArea || var8 instanceof List || var8 instanceof Checkbox || var8 instanceof Label) {
- var8.setEnabled(false);
- var8.setEnabled(true);
- }
-
- if (var8 instanceof Container) {
- paintChildren((Container)var8, var1);
- }
- }
- }
-
- }
-
- public void paint(Graphics var1) {
- if (this._cacheImageNeedsRebuilding) {
- this.rebuildCacheImage();
- }
-
- Rectangle var2 = ((Component)this).getBounds();
- var1.setColor(((Component)this).getBackground());
- var1.fillRect(0, 0, var2.width, var2.height);
- var1.setColor(((Component)this).getForeground());
- if (this.getGridVisible()) {
- Insets var3 = ((Container)this).getInsets();
- double var4 = this.getGridHeight();
- double var6 = this.getGridWidth();
- int var12 = (int)((double)20.0F * var6);
- int var13 = (int)((double)20.0F * var4);
- var2.x = var3.left;
- var2.y = var3.top;
- var2.width -= var3.left + var3.right;
- var2.height -= var3.top + var3.bottom;
-
- for(double var10 = (double)var2.x; var10 < (double)(var2.x + var2.width); var10 += (double)var12) {
- for(double var8 = (double)var2.y; var8 < (double)(var2.y + var2.height); var8 += (double)var13) {
- var1.drawImage(this._cacheImage, (int)var10, (int)var8, var12, var13, this);
- }
- }
- }
-
- PainterForm var14 = this;
- int var15 = ((Container)this).getComponentCount();
- Object var5 = null;
- Rectangle var17 = var1.getClipRect();
-
- for(int var7 = var15 - 1; var7 >= 0; --var7) {
- Component var16 = ((Container)var14).getComponent(var7);
- if (var16 != null && var16.isVisible()) {
- Rectangle var18 = var16.getBounds();
- if (var17 == null || var18.intersects(var17)) {
- Graphics var9 = var16.getGraphics();
- if (var9 != null) {
- var9.clipRect(0, 0, var18.width, var18.height);
- var16.update(var9);
- var9.dispose();
- }
- }
-
- if (var16 instanceof Button || var16 instanceof Choice || var16 instanceof Scrollbar || var16 instanceof TextField || var16 instanceof TextArea || var16 instanceof List || var16 instanceof Checkbox || var16 instanceof Label) {
- var16.setEnabled(false);
- var16.setEnabled(true);
- }
-
- if (var16 instanceof Container) {
- paintChildren((Container)var16, var1);
- }
- }
- }
-
- }
-
- public void setGridHeightInDU(int var1) {
- this._gridHeight = (double)var1 / (double)1000.0F;
- this._cacheImageNeedsRebuilding = true;
- ((Container)this).invalidate();
- ((Component)this).repaint();
- }
-
- public void setGridHeight(int var1) {
- int var2 = getOrAddFontCacheIndex(((Component)this).getFont(), this);
- double var3 = _cacheHeight[var2];
- this._gridHeight = var3 * (double)var1;
- this._cacheImageNeedsRebuilding = true;
- ((Container)this).invalidate();
- ((Component)this).repaint();
- }
-
- public double getGridHeight() {
- return this._gridHeight;
- }
-
- public void setGridWidthInDU(int var1) {
- this._gridWidth = (double)var1 / (double)1000.0F;
- this._cacheImageNeedsRebuilding = true;
- ((Container)this).invalidate();
- ((Component)this).repaint();
- }
-
- public void setGridWidth(int var1) {
- int var2 = getOrAddFontCacheIndex(((Component)this).getFont(), this);
- double var3 = _cacheWidth[var2];
- this._gridWidth = var3 * (double)var1;
- this._cacheImageNeedsRebuilding = true;
- ((Container)this).invalidate();
- ((Component)this).repaint();
- }
-
- public double getGridWidth() {
- return this._gridWidth;
- }
-
- public void setGridVisible(boolean var1) {
- this._gridVisible = var1;
- ((Container)this).invalidate();
- ((Component)this).repaint();
- }
-
- public boolean getGridVisible() {
- return this._gridVisible;
- }
-
- public static void insertMenu(Frame var0, MenuBar var1, Menu var2, int var3) {
- if (var0 != null) {
- var0.setMenuBar((MenuBar)null);
- }
-
- if (var3 == -1) {
- var1.add(var2);
- } else {
- int var5 = var1.getMenuCount();
- Vector var4 = new Vector(var5);
- var4.setSize(var5);
-
- for(int var6 = 0; var6 < var5; ++var6) {
- var4.setElementAt(var1.getMenu(var6), var6);
- }
-
- for(int var9 = var5 - 1; var9 >= 0; --var9) {
- var1.remove(var9);
- }
-
- var4.insertElementAt(var2, var3);
- var5 = var4.size();
-
- for(int var10 = 0; var10 < var5; ++var10) {
- Menu var7 = (Menu)var4.elementAt(var10);
- var1.add(var7);
- ((MenuItem)var7).setLabel(((MenuItem)var7).getLabel());
- ((MenuItem)var7).setEnabled(((MenuItem)var7).isEnabled());
- }
- }
-
- if (var0 != null) {
- var0.setMenuBar(var1);
- }
-
- }
-
- public void addMenuItem(Menu var1, MenuItem var2, int var3) {
- var2.addActionListener(this);
- if (var3 == -1) {
- var1.add(var2);
- } else {
- var1.insert(var2, var3);
- }
-
- for(int var4 = 0; var4 < var1.countItems(); ++var4) {
- MenuItem var5 = var1.getItem(var4);
- var5.setLabel(var5.getLabel());
- var5.setEnabled(var5.isEnabled());
- if (var5 instanceof Menu) {
- resetMenuItems((Menu)var5);
- } else if (var5 instanceof CheckboxMenuItem) {
- CheckboxMenuItem var6 = (CheckboxMenuItem)var5;
- var6.setState(var6.getState());
- }
- }
-
- }
-
- public static void resetMenuItems(MenuBar var0) {
- for(int var1 = 0; var1 < var0.countMenus(); ++var1) {
- Menu var2 = var0.getMenu(var1);
- ((MenuItem)var2).setLabel(((MenuItem)var2).getLabel());
- ((MenuItem)var2).setEnabled(((MenuItem)var2).isEnabled());
-
- for(int var3 = 0; var3 < var2.countItems(); ++var3) {
- MenuItem var4 = var2.getItem(var3);
- var4.setLabel(var4.getLabel());
- var4.setEnabled(var4.isEnabled());
- if (var4 instanceof Menu) {
- resetMenuItems((Menu)var4);
- } else if (var4 instanceof CheckboxMenuItem) {
- CheckboxMenuItem var5 = (CheckboxMenuItem)var4;
- var5.setState(var5.getState());
- }
- }
- }
-
- }
-
- public static void resetMenuItems(Menu var0) {
- for(int var1 = 0; var1 < var0.countItems(); ++var1) {
- MenuItem var2 = var0.getItem(var1);
- var2.setLabel(var2.getLabel());
- var2.setEnabled(var2.isEnabled());
- if (var2 instanceof Menu) {
- resetMenuItems((Menu)var2);
- } else if (var2 instanceof CheckboxMenuItem) {
- CheckboxMenuItem var3 = (CheckboxMenuItem)var2;
- var3.setState(var3.getState());
- }
- }
-
- }
-
- public synchronized void setMenuBar(MenuBar var1) {
- if (((Frame)this).getMenuBar() != var1) {
- super.setMenuBar(var1);
- if (var1 != null) {
- for(int var2 = 0; var2 < var1.countMenus(); ++var2) {
- Menu var3 = var1.getMenu(var2);
- ((MenuItem)var3).setLabel(((MenuItem)var3).getLabel());
- ((MenuItem)var3).setEnabled(((MenuItem)var3).isEnabled());
-
- for(int var4 = 0; var4 < var3.countItems(); ++var4) {
- MenuItem var5 = var3.getItem(var4);
- var5.setLabel(var5.getLabel());
- var5.setEnabled(var5.isEnabled());
- if (var5 instanceof Menu) {
- resetMenuItems((Menu)var5);
- } else if (var5 instanceof CheckboxMenuItem) {
- CheckboxMenuItem var6 = (CheckboxMenuItem)var5;
- var6.setState(var6.getState());
- }
- }
- }
- }
-
- ((Container)this).validate();
- }
-
- }
-
- public void actionPerformed(ActionEvent var1) {
- this.notifyActionPerformed(var1.getActionCommand());
- }
-
- public native void notifyActionPerformed(String var1);
-
- public void propertyChange(PropertyChangeEvent var1) {
- this.NotifyPropertyChanged(((EventObject)var1).getSource(), var1.getPropertyName());
- }
-
- public native void NotifyPropertyChanged(Object var1, String var2);
-
- private static int getOrAddFontCacheIndex(Font var0, Component var1) {
- int var3 = _cacheSize;
-
- int var2;
- for(var2 = 0; var2 < var3 && _cacheFont[var2] != var0; ++var2) {
- }
-
- if (var2 >= var3) {
- if (var3 < 16) {
- ++_cacheSize;
- } else {
- var2 = _cacheSize - 1;
- }
-
- FontMetrics var7 = var1.getFontMetrics(var0);
- double var8 = (double)(var7 != null ? var7.stringWidth("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz") / ALPHABET_LENGTH : 0);
- double var10 = var7 != null ? (double)var7.getHeight() / (double)2.0F : (double)0.0F;
- _cacheFont[var2] = var0;
- _cacheWidth[var2] = var8 / (double)4.0F;
- _cacheHeight[var2] = var10 / (double)4.0F;
- } else if (var2 > 0) {
- Font var4 = _cacheFont[var2 - 1];
- _cacheFont[var2 - 1] = _cacheFont[var2];
- _cacheFont[var2] = var4;
- double var5 = _cacheWidth[var2 - 1];
- _cacheWidth[var2 - 1] = _cacheWidth[var2];
- _cacheWidth[var2] = var5;
- var5 = _cacheHeight[var2 - 1];
- _cacheHeight[var2 - 1] = _cacheHeight[var2];
- _cacheHeight[var2] = var5;
- --var2;
- }
-
- return var2;
- }
-
- private static void retrieveFontMetrics(int var0, Font var1, Component var2) {
- FontMetrics var3 = var2.getFontMetrics(var1);
- double var4 = (double)(var3 != null ? var3.stringWidth("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz") / ALPHABET_LENGTH : 0);
- double var6 = var3 != null ? (double)var3.getHeight() / (double)2.0F : (double)0.0F;
- _cacheFont[var0] = var1;
- _cacheWidth[var0] = var4 / (double)4.0F;
- _cacheHeight[var0] = var6 / (double)4.0F;
- }
-
- private static int intFromColor(Color var0) {
- int var1 = 0;
- if (var0 == null) {
- return -1;
- } else if (var0 instanceof SystemColor) {
- var1 = 16777216 | var0.hashCode();
- return var1;
- } else {
- var1 |= var0.getRed();
- var1 <<= 8;
- var1 |= var0.getGreen();
- var1 <<= 8;
- var1 |= var0.getBlue();
- return var1;
- }
- }
-
- private static long longFromInts(int var0, int var1, int var2, int var3) {
- long var4 = 0L;
- var4 |= (long)(var0 & '\uffff');
- var4 <<= 16;
- var4 |= (long)(var1 & '\uffff');
- var4 <<= 16;
- var4 |= (long)(var2 & '\uffff');
- var4 <<= 16;
- var4 |= (long)(var3 & '\uffff');
- return var4;
- }
-
- public static void DTShowPropertyDialog(Object var0) {
- try {
- Class var1 = Class.forName("powersoft.painter.ShowPropertyDialogThread");
- Class[] var2 = new Class[]{Class.forName("java.lang.Object")};
- Object[] var3 = new Object[]{var0};
- Constructor var4 = var1.getConstructor(var2);
- Thread var5 = (Thread)var4.newInstance(var3);
- var5.start();
- } catch (Exception var6) {
- }
- }
- }
-