Annotation of capa/capa51/JavaTools/GLabel.java, revision 1.4
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
! 8: modify it under the terms of the GNU Library General Public License as
! 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
! 15: Library General Public License for more details.
! 16:
! 17: You should have received a copy of the GNU Library General Public
! 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>