home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Point;
- import java.util.Vector;
-
- class ComponentPin {
- protected Vector ConnComps;
- protected int Level;
- protected int OldLevel;
- protected Point PinPos;
- protected Dimension PinDim;
- protected String Name;
- protected int Flags;
- protected int TextXoffs;
- protected int TextYoffs;
- static final Color PinColor;
- static final Color PinTextColor;
- static final int PIN_NORMAL = 0;
- static final int PIN_NEGATIVE = 1;
- static final int PIN_TEXT_INVISIBLE = 2;
- static final int PIN_EDGETRIGGERED = 4;
- static final int PIN_NOACTION = 8;
- public Font PinFont;
- public FontMetrics PinFontMetrics;
-
- public ComponentPin(ComponentPin var1) {
- this.Name = var1.Name;
- this.PinPos = new Point(var1.PinPos.x, var1.PinPos.y);
- this.PinDim = new Dimension(var1.PinDim.width, var1.PinDim.height);
- this.Flags = var1.Flags;
- this.TextXoffs = var1.TextXoffs;
- this.TextYoffs = var1.TextYoffs;
- this.PinFont = new Font("TimesRoman", 0, 10);
- }
-
- public ComponentPin(String var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8) {
- this.Name = var1;
- this.TextXoffs = var6;
- this.TextYoffs = var7;
- this.PinPos = new Point(var2, var3);
- this.PinDim = new Dimension(var4, var5);
- this.Flags = var8;
- this.PinFont = new Font("TimesRoman", 0, 10);
- }
-
- public void draw(Graphics var1, int var2, int var3, int var4) {
- double var5 = (double)0.0F;
- var1.setColor(PinColor);
- if ((this.Flags & 1) > 0) {
- if (this.PinDim.width > 0) {
- var1.drawLine((var2 + this.PinPos.x) * var4, (var3 + this.PinPos.y) * var4, (var2 + this.PinPos.x + this.PinDim.width - 1) * var4, (var3 + this.PinPos.y + this.PinDim.height) * var4);
- var1.setColor(ElectronicComponent.ComponentColor);
- var1.drawOval((int)(((double)(var2 + this.PinPos.x + this.PinDim.width) - (double)0.875F) * (double)var4), (int)(((double)(var3 + this.PinPos.y) - (double)0.375F) * (double)var4), (int)((double)var4 * (double)0.75F), (int)((double)var4 * (double)0.75F));
- } else {
- var1.drawLine((var2 + this.PinPos.x) * var4, (var3 + this.PinPos.y) * var4, (var2 + this.PinPos.x + this.PinDim.width + 1) * var4, (var3 + this.PinPos.y + this.PinDim.height) * var4);
- var1.setColor(ElectronicComponent.ComponentColor);
- var1.drawOval((var2 + this.PinPos.x + this.PinDim.width) * var4 + 1, (int)(((double)(var3 + this.PinPos.y) - (double)0.375F) * (double)var4), (int)((double)var4 * (double)0.75F), (int)((double)var4 * (double)0.75F));
- }
- } else {
- var1.drawLine((var2 + this.PinPos.x) * var4, (var3 + this.PinPos.y) * var4, (var2 + this.PinPos.x + this.PinDim.width) * var4, (var3 + this.PinPos.y + this.PinDim.height) * var4);
- }
-
- if ((this.Flags & 4) > 0) {
- var5 = (double)0.5F;
- var1.setColor(ElectronicComponent.ComponentColor);
- if (this.PinDim.width > 0) {
- var1.drawLine((var2 + this.PinPos.x + this.PinDim.width) * var4, (int)(((double)(var3 + this.PinPos.y) - (double)0.5F) * (double)var4), (int)(((double)(var2 + this.PinPos.x + this.PinDim.width) + (double)0.5F) * (double)var4), (var3 + this.PinPos.y) * var4);
- var1.drawLine((var2 + this.PinPos.x + this.PinDim.width) * var4, (int)(((double)(var3 + this.PinPos.y) + (double)0.5F) * (double)var4), (int)(((double)(var2 + this.PinPos.x + this.PinDim.width) + (double)0.5F) * (double)var4), (var3 + this.PinPos.y) * var4);
- } else {
- var1.drawLine((var2 + this.PinPos.x + this.PinDim.width) * var4, (int)(((double)(var3 + this.PinPos.y) - (double)0.5F) * (double)var4), (int)(((double)(var2 + this.PinPos.x + this.PinDim.width) - (double)0.5F) * (double)var4), (var3 + this.PinPos.y) * var4);
- var1.drawLine((var2 + this.PinPos.x + this.PinDim.width) * var4, (int)(((double)(var3 + this.PinPos.y) + (double)0.5F) * (double)var4), (int)(((double)(var2 + this.PinPos.x + this.PinDim.width) - (double)0.5F) * (double)var4), (var3 + this.PinPos.y) * var4);
- }
- }
-
- if ((this.Flags & 2) == 0) {
- this.PinFontMetrics = var1.getFontMetrics(this.PinFont);
- int var7 = this.PinFontMetrics.stringWidth(this.Name);
- int var8 = this.PinFontMetrics.getHeight();
- var1.setColor(PinTextColor);
- var1.setFont(this.PinFont);
- if (this.PinDim.width > 0) {
- var1.drawString(this.Name, (int)(((double)(var2 + this.PinPos.x + this.PinDim.width) + var5 + (double)this.TextXoffs) * (double)var4 + (double)2.0F), (int)(((double)(var3 + this.PinPos.y) + (double)0.5F + (double)this.TextYoffs) * (double)var4));
- if ((this.Flags & 1) > 0) {
- var1.drawLine((int)(((double)(var2 + this.PinPos.x + this.PinDim.width) + var5 + (double)this.TextXoffs) * (double)var4 + (double)2.0F), (int)(((double)(var3 + this.PinPos.y) - (double)0.5F + (double)this.TextYoffs) * (double)var4), (int)(((double)(var2 + this.PinPos.x + this.PinDim.width) + var5 + (double)this.TextXoffs) * (double)var4 + (double)var7), (int)(((double)(var3 + this.PinPos.y) - (double)0.5F + (double)this.TextYoffs) * (double)var4));
- return;
- }
- } else if (this.PinDim.width < 0) {
- var1.drawString(this.Name, (int)(((double)(var2 + this.PinPos.x + this.PinDim.width) - var5 + (double)this.TextXoffs) * (double)var4 - (double)var7 - (double)1.0F), (int)(((double)(var3 + this.PinPos.y) + (double)0.5F + (double)this.TextYoffs) * (double)var4));
- if ((this.Flags & 1) > 0) {
- var1.drawLine((int)(((double)(var2 + this.PinPos.x + this.PinDim.width) - var5 + (double)this.TextXoffs) * (double)var4 - (double)var7 - (double)1.0F), (int)(((double)(var3 + this.PinPos.y) - (double)0.5F + (double)this.TextYoffs) * (double)var4), (int)(((double)(var2 + this.PinPos.x + this.PinDim.width) - var5 + (double)this.TextXoffs) * (double)var4), (int)(((double)(var3 + this.PinPos.y) - (double)0.5F + (double)this.TextYoffs) * (double)var4));
- return;
- }
- } else if (this.PinDim.height < 0) {
- var1.drawString(this.Name, (var2 + this.PinPos.x + this.TextXoffs) * var4 - var7 / 2, (var3 + this.PinPos.y + this.PinDim.height + this.TextYoffs) * var4);
- if ((this.Flags & 1) > 0) {
- var1.drawLine((int)(((double)(var2 + this.PinPos.x + this.PinDim.width) - var5 - (double)1.0F + (double)this.TextXoffs) * (double)var4), (int)(((double)(var3 + this.PinPos.y) - (double)0.5F + (double)this.TextYoffs) * (double)var4 - (double)1.0F), (int)(((double)(var2 + this.PinPos.x + this.PinDim.width) - var5 + (double)this.TextXoffs) * (double)var4), (int)(((double)(var3 + this.PinPos.y) - (double)0.5F + (double)this.TextYoffs) * (double)var4) - 1);
- return;
- }
- } else if (this.PinDim.height > 0) {
- var1.drawString(this.Name, (var2 + this.PinPos.x + this.TextXoffs) * var4 - var7 / 2, (var3 + this.PinPos.y + this.PinDim.height + this.TextYoffs - 1) * var4);
- if ((this.Flags & 1) > 0) {
- var1.drawLine((int)(((double)(var2 + this.PinPos.x + this.PinDim.width) - var5 - (double)1.0F + (double)this.TextXoffs) * (double)var4), (int)(((double)(var3 + this.PinPos.y) - (double)0.5F + (double)this.TextYoffs) * (double)var4 - (double)1.0F), (int)(((double)(var2 + this.PinPos.x + this.PinDim.width) - var5 + (double)this.TextXoffs) * (double)var4), (int)(((double)(var3 + this.PinPos.y) - (double)0.5F + (double)this.TextYoffs) * (double)var4) - 1);
- }
- }
- }
-
- }
-
- public int getLevel() {
- if ((this.Flags & 1) == 0) {
- return this.Level;
- } else {
- return this.Level == 0 ? 5 : 0;
- }
- }
-
- public int getOldLevel() {
- if ((this.Flags & 1) == 0) {
- return this.OldLevel;
- } else {
- return this.OldLevel == 0 ? 5 : 0;
- }
- }
-
- public void setLevel(int var1) {
- this.OldLevel = this.Level;
- this.Level = var1;
- }
-
- public String getName() {
- return this.Name;
- }
-
- public void setName(String var1) {
- this.Name = var1;
- }
-
- static {
- PinColor = Color.blue;
- PinTextColor = Color.white;
- }
- }
-