Annotation of capa/capa51/JavaTools/GLabel.java, revision 1.5

1.1       albertel    1: 
                      2: /* ====================================================
                      3:    created by Isaac Tsai, 1997
1.4       albertel    4:    randomized labeling of a figure applet
                      5:    Copyright (C) 1992-2000 Michigan State University
                      6: 
                      7:    The CAPA system is free software; you can redistribute it and/or
1.5     ! albertel    8:    modify it under the terms of the GNU General Public License as
1.4       albertel    9:    published by the Free Software Foundation; either version 2 of the
                     10:    License, or (at your option) any later version.
                     11: 
                     12:    The CAPA system is distributed in the hope that it will be useful,
                     13:    but WITHOUT ANY WARRANTY; without even the implied warranty of
                     14:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1.5     ! albertel   15:    General Public License for more details.
1.4       albertel   16: 
1.5     ! albertel   17:    You should have received a copy of the GNU General Public
1.4       albertel   18:    License along with the CAPA system; see the file COPYING.  If not,
                     19:    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
                     20:    Boston, MA 02111-1307, USA.
                     21: 
                     22:    As a special exception, you have permission to link this program
                     23:    with the TtH/TtM library and distribute executables, as long as you
                     24:    follow the requirements of the GNU GPL in regard to all of the
                     25:    software in the executable aside from TtH/TtM.
                     26: */
                     27: 
1.1       albertel   28: <CENTER>
                     29: 
                     30: <APPLET CODE=GLabel.class CODEBASE=JAVA/Class width=550 height=304>
1.2       albertel   31: <PARAM NAME="BGIMG" VALUE="path/to/background.gif">
1.1       albertel   32: <PARAM NAME="GRID"  VALUE="10">
                     33: <PARAM NAME="COUNT" VALUE="7">
                     34: <PARAM NAME="LB0" VALUE="X">
                     35: <PARAM NAME="X0" VALUE="16">
                     36: <PARAM NAME="Y0" VALUE="242">
                     37: <PARAM NAME="LB1" VALUE="Y">
                     38: <PARAM NAME="X1" VALUE="144">
                     39: <PARAM NAME="Y1" VALUE="288">
                     40: <PARAM NAME="LB2" VALUE="3">
                     41: <PARAM NAME="X2" VALUE="317">
                     42: <PARAM NAME="Y2" VALUE="193">
                     43: <PARAM NAME="LB3" VALUE="4">
                     44: <PARAM NAME="X3" VALUE="524">
                     45: <PARAM NAME="Y3" VALUE="154">
                     46: <PARAM NAME="LB4" VALUE="5">
                     47: <PARAM NAME="X4" VALUE="309">
                     48: <PARAM NAME="Y4" VALUE="30">
                     49: <PARAM NAME="LB5" VALUE="6">
                     50: <PARAM NAME="X5" VALUE="224">
                     51: <PARAM NAME="Y5" VALUE="45">
                     52: <PARAM NAME="LB6" VALUE="7">
                     53: <PARAM NAME="X6" VALUE="49">
                     54: <PARAM NAME="Y6" VALUE="106">
1.2       albertel   55: <PARAM NAME="ICOUNT" VALUE="2">
                     56: <PARAM NAME="IMG0" VALUE="path/to/image0.gif">
                     57: <PARAM NAME="IX0" VALUE="106">
                     58: <PARAM NAME="IY0" VALUE="106">
                     59: <PARAM NAME="IMG1" VALUE="path/to/image1.gif">
                     60: <PARAM NAME="IX1" VALUE="106">
                     61: <PARAM NAME="IY1" VALUE="106">
1.1       albertel   62: </APPLET>
                     63: 
                     64: </CENTER>
                     65: < APPLET
                     66:             [CODEBASE = codebaseURL]
                     67:             CODE = appletFile 
                     68:             [ALT = alternateText]
                     69:             [NAME = appletInstanceName]
                     70:             WIDTH = pixels
                     71:             HEIGHT = pixels 
                     72:             [ALIGN = alignment] 
                     73:             [VSPACE = pixels]
                     74:             [HSPACE = pixels]
                     75:         >
                     76:         [< PARAM NAME = appletParameter1 VALUE = value >]
                     77:         [< PARAM NAME = appletParameter2 VALUE = value >]
                     78:         . . .
                     79:         [alternateHTML]
                     80:         </APPLET>
                     81: 
                     82: */
                     83: 
                     84: import java.applet.*;
                     85: import java.awt.*;
                     86: import java.lang.*;
                     87: import java.util.*;
                     88: import java.net.*;
                     89: 
                     90: public class GLabel extends Applet implements Runnable
                     91: {
                     92: 
                     93:  public int     Xcord[];
                     94:  public int     Ycord[];
                     95:  public String  sLabel[];
1.2       albertel   96:  public Image   iImg[];
                     97:  public int     iX[];
                     98:  public int     iY[];
                     99:  
1.1       albertel  100:  public int     label_cnt;
1.2       albertel  101:  public int     img_cnt;
1.1       albertel  102:  public int     fsize;
                    103:  public int     show_grid;
                    104:  public int     grid_ww;
                    105:  public Image   img;
                    106:  public Font    f16;
                    107: 
                    108: public void init()
                    109:  {
                    110:    int      count, idx;
                    111:    String   p, q;
                    112:    URL      f_url=null;
                    113:    
                    114:    Xcord = new int[64]; Ycord = new int[64];
                    115:    sLabel = new String[64];
1.2       albertel  116:    iImg = new Image[64];
                    117:    iX = new int[64]; iY = new int[64];
                    118:    
1.1       albertel  119:    show_grid = 0;
                    120:    f16 = new Font("TimesRoman",Font.PLAIN,16);
                    121:    
                    122:    p=getParameter("COUNT");
                    123:    label_cnt=(p==null)?1:Integer.valueOf(p).intValue();
                    124: 
                    125:    for(idx=0;idx<label_cnt;idx++){
                    126:      q = "LB" + idx;
                    127:      sLabel[idx] = getParameter(q);
                    128:      q = "X" + idx;
                    129:      p = getParameter(q);
                    130:      Xcord[idx]=(p==null)?20:Integer.valueOf(p).intValue();
                    131:      q = "Y" + idx;
                    132:      p = getParameter(q);
                    133:      Ycord[idx]=(p==null)?30:Integer.valueOf(p).intValue();
                    134:      // System.out.println("X= "+Xcord[idx]+" Y= "+Ycord[idx]+" L= "+sLabel[idx]);
                    135:    }
1.2       albertel  136:    
                    137:    p=getParameter("ICOUNT");
1.3       albertel  138:    img_cnt=(p==null)?0:Integer.valueOf(p).intValue();
1.2       albertel  139:    for(idx=0;idx<img_cnt;idx++){
                    140:      q = "IMG" + idx;
                    141:      p = getParameter(q);
                    142:      if(p != null) {
                    143:      try {
                    144:           System.out.print("URL=" + p + "\n");
                    145:           f_url = new URL(p);
                    146:      } 
                    147:      catch (MalformedURLException exc) {
                    148:           System.out.print("Malformed URL=" + p + "\n");
                    149:        }
                    150:        iImg[idx] = getImage(f_url);
                    151:      }
                    152:      q = "IX" + idx;
                    153:      p = getParameter(q);
                    154:      iX[idx]=(p==null)?20:Integer.valueOf(p).intValue();
                    155:      q = "IY" + idx;
                    156:      p = getParameter(q);
                    157:      iY[idx]=(p==null)?30:Integer.valueOf(p).intValue();
                    158:      // System.out.println("X= "+Xcord[idx]+" Y= "+Ycord[idx]+" L= "+sLabel[idx]);
                    159:    }
                    160:    
                    161:    
                    162:    
1.1       albertel  163:    p=getParameter("BGIMG");
                    164:    if(p != null) {
                    165:      try {
                    166:           System.out.print("URL=" + p + "\n");
                    167:           f_url = new URL(p);
                    168:      } 
                    169:      catch (MalformedURLException exc) {
                    170:           System.out.print("Malformed URL=" + p + "\n");
                    171:      }
                    172:      img = getImage(f_url);
                    173:    }
                    174:    p=getParameter("FSIZE");
                    175:    fsize=(p==null)?16:Integer.valueOf(p).intValue();
                    176:    p=getParameter("GRID");
                    177:    if(p != null) {
                    178:        grid_ww=Integer.valueOf(p).intValue();
                    179:        show_grid = 1;
                    180:    }
                    181:    f16 = new Font("TimesRoman",Font.BOLD,fsize);
                    182:  }
                    183:  
                    184: public void paint(Graphics g)
                    185:  {
                    186:    int        idx; 
1.2       albertel  187:    Dimension  d = getSize();
1.1       albertel  188:    int        appw = d.width;
                    189:    int        apph = d.height;
                    190:    int        x1,y1,x2,y2;
                    191:    
                    192:     g.setFont(f16);
                    193:     if( img != null ) {
                    194:        g.drawImage(img, 0, 0, this);
                    195:     } else {
                    196:        g.setColor(Color.white);
                    197:        g.fillRect(0, 0, appw, apph);
                    198:     }
1.2       albertel  199:     
                    200:     for(idx=0;idx<img_cnt;idx++){
                    201:       if( iImg[idx] != null ) {
                    202:         g.drawImage(iImg[idx], iX[idx],iY[idx], this);
                    203:       } else {
                    204:         g.setColor(Color.white);
                    205:         g.fillRect(iX[idx], iY[idx], appw, apph);
                    206:       }
                    207:     }
                    208:     
                    209:     
                    210:     
1.1       albertel  211:     g.setColor(Color.black);
                    212:     for(idx=0;idx<label_cnt;idx++){
                    213:       g.drawString(sLabel[idx],Xcord[idx],Ycord[idx]);
                    214:     }
                    215:     if((show_grid == 1) && (grid_ww>1)) {
                    216:       for(x1=0,y1=0,y2=apph;x1<=appw;x1=x1+grid_ww) {
                    217:         x2=x1;
                    218:         g.drawLine(x1,y1,x2,y2);
                    219:       }
                    220:       for(x1=0,y1=0,x2=appw;y1<=apph;y1=y1+grid_ww) {
                    221:         y2=y1;
                    222:         g.drawLine(x1,y1,x2,y2);
                    223:       }
                    224:     }
                    225:  }
                    226: public void run()   { }
                    227: public void start() { }
                    228: public void stop()  { }
                    229: 
                    230: }
                    231: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>