home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 October / PCO1097.ISO / FilesBBS / FREI / DIGSIM.EXE / ComponentPin.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-05-21  |  4.5 KB  |  146 lines

  1. import java.awt.Color;
  2. import java.awt.Dimension;
  3. import java.awt.Font;
  4. import java.awt.FontMetrics;
  5. import java.awt.Graphics;
  6. import java.awt.Point;
  7. import java.util.Vector;
  8.  
  9. class ComponentPin {
  10.    protected Vector ConnComps;
  11.    protected int Level;
  12.    protected int OldLevel;
  13.    protected Point PinPos;
  14.    protected Dimension PinDim;
  15.    protected String Name;
  16.    protected int Flags;
  17.    protected int TextXoffs;
  18.    protected int TextYoffs;
  19.    static final Color PinColor;
  20.    static final Color PinTextColor;
  21.    static final int PIN_NORMAL = 0;
  22.    static final int PIN_NEGATIVE = 1;
  23.    static final int PIN_TEXT_INVISIBLE = 2;
  24.    static final int PIN_EDGETRIGGERED = 4;
  25.    static final int PIN_NOACTION = 8;
  26.    public Font PinFont;
  27.    public FontMetrics PinFontMetrics;
  28.  
  29.    public ComponentPin(ComponentPin var1) {
  30.       this.Name = var1.Name;
  31.       this.PinPos = new Point(var1.PinPos.x, var1.PinPos.y);
  32.       this.PinDim = new Dimension(var1.PinDim.width, var1.PinDim.height);
  33.       this.Flags = var1.Flags;
  34.       this.TextXoffs = var1.TextXoffs;
  35.       this.TextYoffs = var1.TextYoffs;
  36.       this.PinFont = new Font("TimesRoman", 0, 10);
  37.    }
  38.  
  39.    public ComponentPin(String var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8) {
  40.       this.Name = var1;
  41.       this.TextXoffs = var6;
  42.       this.TextYoffs = var7;
  43.       this.PinPos = new Point(var2, var3);
  44.       this.PinDim = new Dimension(var4, var5);
  45.       this.Flags = var8;
  46.       this.PinFont = new Font("TimesRoman", 0, 10);
  47.    }
  48.  
  49.    public void draw(Graphics var1, int var2, int var3, int var4) {
  50.       double var5 = (double)0.0F;
  51.       var1.setColor(PinColor);
  52.       if ((this.Flags & 1) > 0) {
  53.          if (this.PinDim.width > 0) {
  54.             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);
  55.             var1.setColor(ElectronicComponent.ComponentColor);
  56.             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));
  57.          } else {
  58.             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);
  59.             var1.setColor(ElectronicComponent.ComponentColor);
  60.             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));
  61.          }
  62.       } else {
  63.          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);
  64.       }
  65.  
  66.       if ((this.Flags & 4) > 0) {
  67.          var5 = (double)0.5F;
  68.          var1.setColor(ElectronicComponent.ComponentColor);
  69.          if (this.PinDim.width > 0) {
  70.             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);
  71.             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);
  72.          } else {
  73.             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);
  74.             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);
  75.          }
  76.       }
  77.  
  78.       if ((this.Flags & 2) == 0) {
  79.          this.PinFontMetrics = var1.getFontMetrics(this.PinFont);
  80.          int var7 = this.PinFontMetrics.stringWidth(this.Name);
  81.          int var8 = this.PinFontMetrics.getHeight();
  82.          var1.setColor(PinTextColor);
  83.          var1.setFont(this.PinFont);
  84.          if (this.PinDim.width > 0) {
  85.             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));
  86.             if ((this.Flags & 1) > 0) {
  87.                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));
  88.                return;
  89.             }
  90.          } else if (this.PinDim.width < 0) {
  91.             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));
  92.             if ((this.Flags & 1) > 0) {
  93.                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));
  94.                return;
  95.             }
  96.          } else if (this.PinDim.height < 0) {
  97.             var1.drawString(this.Name, (var2 + this.PinPos.x + this.TextXoffs) * var4 - var7 / 2, (var3 + this.PinPos.y + this.PinDim.height + this.TextYoffs) * var4);
  98.             if ((this.Flags & 1) > 0) {
  99.                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);
  100.                return;
  101.             }
  102.          } else if (this.PinDim.height > 0) {
  103.             var1.drawString(this.Name, (var2 + this.PinPos.x + this.TextXoffs) * var4 - var7 / 2, (var3 + this.PinPos.y + this.PinDim.height + this.TextYoffs - 1) * var4);
  104.             if ((this.Flags & 1) > 0) {
  105.                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);
  106.             }
  107.          }
  108.       }
  109.  
  110.    }
  111.  
  112.    public int getLevel() {
  113.       if ((this.Flags & 1) == 0) {
  114.          return this.Level;
  115.       } else {
  116.          return this.Level == 0 ? 5 : 0;
  117.       }
  118.    }
  119.  
  120.    public int getOldLevel() {
  121.       if ((this.Flags & 1) == 0) {
  122.          return this.OldLevel;
  123.       } else {
  124.          return this.OldLevel == 0 ? 5 : 0;
  125.       }
  126.    }
  127.  
  128.    public void setLevel(int var1) {
  129.       this.OldLevel = this.Level;
  130.       this.Level = var1;
  131.    }
  132.  
  133.    public String getName() {
  134.       return this.Name;
  135.    }
  136.  
  137.    public void setName(String var1) {
  138.       this.Name = var1;
  139.    }
  140.  
  141.    static {
  142.       PinColor = Color.blue;
  143.       PinTextColor = Color.white;
  144.    }
  145. }
  146.