2
* @(#)AWGraphApplet.java
3
* $Revision: 1.6 $ - $Author: eldy $ - $Date: 2004/01/07 22:32:03 $
7
import java.applet.Applet;
9
import java.util.Vector;
12
public class AWGraphApplet extends Applet
15
public AWGraphApplet()
17
special = "Not yet defined";
24
background_color = Color.white;
25
border_color = Color.white;
26
special_color = Color.gray;
27
backgraph_colorl = Color.decode("#F6F6F6");
28
backgraph_colorm = Color.decode("#EDEDED");
29
backgraph_colorh = Color.decode("#E0E0E0");
32
// public synchronized void init() {
33
public synchronized void start()
35
special = getParameter("special");
36
if (special == null) { special = ""; }
38
Log("Applet "+VERSION+" ($Revision: 1.6 $) init");
40
String s = getParameter("b_fontsize");
41
if (s != null) { b_fontsize = Integer.parseInt(s); }
43
title = getParameter("title");
44
if (title == null) { title = "Chart"; }
46
s = getParameter("nbblocks");
47
if (s != null) { nbblocks = Integer.parseInt(s); }
49
s = getParameter("nbvalues");
50
if (s != null) { nbvalues = Integer.parseInt(s); }
52
s = getParameter("blockspacing");
53
if (s != null) { blockSpacing = Integer.parseInt(s); }
54
s = getParameter("valspacing");
55
if (s != null) { valSpacing = Integer.parseInt(s); }
56
s = getParameter("valwidth");
57
if (s != null) { valWidth = Integer.parseInt(s); }
59
s = getParameter("orientation");
60
if (s == null) { orientation = VERTICAL; }
61
else if (s.equalsIgnoreCase("horizontal")) { orientation = HORIZONTAL; }
62
else { orientation = VERTICAL; }
63
s = getParameter("barsize");
64
if (s != null) { barsize = Integer.parseInt(s); }
66
s = getParameter("background_color");
67
if (s != null) { background_color = Color.decode("#"+s); }
68
s = getParameter("border_color");
69
if (s != null) { border_color = Color.decode("#"+s); }
70
s = getParameter("special_color");
71
if (s != null) { special_color = Color.decode("#"+s); }
73
Log("bblocks "+nbblocks);
74
Log("nbvalues "+nbvalues);
75
Log("barsize "+barsize);
77
font = new Font("Verdana,Arial,Helvetica", 0, b_fontsize);
78
fontb = new Font("Verdana,Arial,Helvetica", Font.BOLD, b_fontsize);
79
fontmetrics = getFontMetrics(font);
81
blabels = new String[nbblocks];
82
vlabels = new String[nbvalues];
83
styles = new int[nbvalues];
84
max = new float[nbvalues];
85
colors = new Color[nbvalues];
86
values = new float[nbblocks][nbvalues];
88
for (int i=0; i < nbvalues; i++) {
94
for (int j=0; j < nbblocks; j++) {
98
for (int i=0; i < nbvalues; i++) {
99
if (max[i]<=0.0F) { max[i]=1.0F; }
100
Log("max["+i+"]="+max[i]);
104
private synchronized void Log(String s)
106
System.out.println(getClass().getName()+" ("+special+"): "+s);
109
private synchronized void parsebLabel(int i)
111
String s = getParameter("b" + (i+1) + "_label");
117
maxLabelWidth = Math.max(fontmetrics.stringWidth(blabels[i]), maxLabelWidth);
120
private synchronized void parseLabel(int i)
122
String s = getParameter("v" + (i+1) + "_label");
130
private synchronized void parseStyle(int i)
132
String s = getParameter("v" + (i+1) + "_style");
133
if (s == null || s.equalsIgnoreCase("solid")) {
135
} else if (s.equalsIgnoreCase("striped")) {
142
private synchronized void parseColor(int i)
144
String s = getParameter("v" + (i+1) + "_color");
146
colors[i] = Color.decode("#"+s);
148
colors[i] = Color.gray;
152
private synchronized void parseMax(int i)
154
String s = getParameter("v" + (i+1) + "_max");
156
max[i] = Float.valueOf(s).floatValue();
162
private synchronized void parseValue(int i)
164
String s = getParameter("b" + (i+1));
166
String[] as=split(s," ",0);
167
for (int j=0; j<as.length; j++) {
169
if (as[j].compareTo("?")==0) { values[i][j] = 0; }
170
else { values[i][j] = Float.parseFloat(as[j]); }
171
// Log("values["+i+"]["+j+"]="+values[i][j]);
176
private String[] split(String s, String c, int iStart)
178
Vector v = new Vector();
179
boolean bFin = false;
183
//System.out.println("s = " + s);
186
i = s.indexOf(c, iOld+1);
188
//System.out.println("i = " + i);
189
sub = s.substring(iOld+1, i);
191
sub = s.substring(iOld+1, s.length());
194
//System.out.println("sub = " + sub);
197
String[] tabS = new String[v.size()];
198
for (i=0 ; i<v.size() ; i++) {
199
tabS[i] = (String)v.elementAt(i);
204
private String remove(String s, String c)
206
Vector v = new Vector();
207
boolean bFin = false;
211
//System.out.println("s = " + s);
214
i = s.indexOf(c, iOld+1);
216
//System.out.println("i = " + i);
217
sub = s.substring(iOld+1, i);
219
sub = s.substring(iOld+1, s.length());
222
//System.out.println("sub = " + sub);
226
for (i=0 ; i<v.size() ; i++) {
227
sub += (String)v.elementAt(i);
232
private Graphics bfr;
237
img = createImage(this.getSize().width, this.getSize().height);
238
bfr = img.getGraphics();
241
public synchronized void paint(Graphics g)
243
// background and border
244
bfr.setColor(background_color);
245
bfr.fillRect(0, 0, getSize().width, getSize().height);
246
bfr.setColor(border_color);
247
bfr.drawRect(0, 0, getSize().width, getSize().height);
249
// draw the bars and their titles
250
if(orientation == HORIZONTAL) { paintHorizontal(bfr); }
251
else { paintVertical(bfr); }
253
g.drawImage(this.img, 0, 0, this);
256
private synchronized void draw3DBar(Graphics g,int x, int y, float w, float h, int shift, Color color)
258
// Draw a 3D bar at pos (x,y)
259
Polygon polygon = new Polygon();
260
int width=new Float(w).intValue();
261
int height=new Float(h).intValue();
262
// Log("draw3DBar "+x+","+y+","+w+"=>"+width+","+h+"=>"+height);
264
polygon.addPoint(x,y);
265
polygon.addPoint(x+width,y);
266
polygon.addPoint(x+width,y-height);
267
polygon.addPoint(x,y-height);
269
g.fillPolygon(polygon);
270
g.setColor(color.darker());
271
g.drawPolygon(polygon);
272
Polygon polygon2 = new Polygon();
273
polygon2.addPoint(x+width,y);
274
polygon2.addPoint(x+width+shift,y-shift);
275
polygon2.addPoint(x+width+shift,y-shift-height);
276
polygon2.addPoint(x+width,y-height);
277
g.setColor(color.darker());
278
g.fillPolygon(polygon2);
279
g.setColor(color.darker().darker());
280
g.drawPolygon(polygon2);
281
Polygon polygon3 = new Polygon();
282
polygon3.addPoint(x,y-height);
283
polygon3.addPoint(x+width,y-height);
284
polygon3.addPoint(x+width+shift,y-height-shift);
285
polygon3.addPoint(x+shift,y-height-shift);
287
g.fillPolygon(polygon3);
288
g.setColor(color.darker());
289
g.drawPolygon(polygon3);
292
private synchronized void paintHorizontal(Graphics g)
296
private synchronized void paintVertical(Graphics g)
298
g.setColor(Color.black);
302
int allbarwidth=(((nbvalues*(valWidth+valSpacing))+blockSpacing)*nbblocks);
303
int allbarheight=barsize;
304
int axepointx=(getSize().width-allbarwidth)/2 - 2*shift;
305
int axepointy = getSize().height - (2*fontmetrics.getHeight()) - 2 - textVertSpacing;
311
Polygon polygon = new Polygon();
312
polygon.addPoint(cx,cy);
313
polygon.addPoint(cx+allbarwidth+3*shift,cy);
314
polygon.addPoint(cx+allbarwidth+4*shift,cy-shift);
315
polygon.addPoint(cx+shift,cy-shift);
316
g.setColor(backgraph_colorl);
317
g.fillPolygon(polygon);
318
g.setColor(Color.lightGray);
319
g.drawPolygon(polygon);
320
Polygon polygon2 = new Polygon();
321
polygon2.addPoint(cx,cy);
322
polygon2.addPoint(cx+shift,cy-shift);
323
polygon2.addPoint(cx+shift,cy-shift-barsize);
324
polygon2.addPoint(cx,cy-barsize);
325
g.setColor(backgraph_colorh);
326
g.fillPolygon(polygon2);
327
g.setColor(Color.lightGray);
328
g.drawPolygon(polygon2);
329
Polygon polygon3 = new Polygon();
330
polygon3.addPoint(cx+shift,cy-shift);
331
polygon3.addPoint(cx+allbarwidth+4*shift,cy-shift);
332
polygon3.addPoint(cx+allbarwidth+4*shift,cy-shift-barsize);
333
polygon3.addPoint(cx+shift,cy-shift-barsize);
334
g.setColor(backgraph_colorm);
335
g.fillPolygon(polygon3);
336
g.setColor(Color.lightGray);
337
g.drawPolygon(polygon3);
341
// Loop on each block
342
for (int j = 0; j < nbblocks; j++) {
344
// Draw the block label
345
// Log("Write block j="+j+" with cx="+cx);
346
cy = getSize().height - fontmetrics.getHeight() - 3 - textVertSpacing;
347
g.setColor(Color.black);
349
// Check if bold or highlight
350
int bold=0; int highlight=0; String label=blabels[j];
351
if (blabels[j].indexOf(":")>0) { bold=1; label=remove(blabels[j],":"); }
352
if (blabels[j].indexOf("!")>0) { highlight=1; label=remove(blabels[j],"!"); }
354
if (bold==1) { g.setFont(fontb); }
355
String as[] = split(label, "\247", 0);
356
// Write background for block legend
358
g.setColor(special_color);
359
g.fillRect(cx-Math.max(-1+blockSpacing>>1,0),cy-fontmetrics.getHeight()+2,(nbvalues*(valWidth+valSpacing))+Math.max(blockSpacing-2,0)+1,((fontmetrics.getHeight()+textVertSpacing)*as.length)+2);
360
g.setColor(Color.black);
362
// Write text for block legend
363
for (int i=0; i<as.length; i++) {
364
int cxoffset=((nbvalues*(valWidth+valSpacing))-fontmetrics.stringWidth(as[i]))>>1;
365
if (cxoffset<0) { cxoffset=0; }
366
g.drawString(as[i], cx+cxoffset, cy);
367
cy+=fontmetrics.getHeight()+textVertSpacing-1;
369
if (bold==1) { g.setFont(font); }
371
// Loop on each value
372
for (int i = 0; i < nbvalues; i++) {
374
cy = getSize().height - fontmetrics.getHeight() - 6 - textVertSpacing;
375
cy -= fontmetrics.getHeight() - 4;
377
// draw the shadow and bar
378
draw3DBar(g,cx,cy,valWidth,(values[j][i]*(float)barsize)/max[i],SHIFTBAR,colors[i]);
380
cy = (int)((float)cy - (values[j][i] + 5F));
381
cx += (valWidth + valSpacing);
388
public synchronized String getAppletInfo()
390
return "Title: " + title + "\n";
393
public synchronized String[][] getParameterInfo()
396
{"version", "string", "AWGraphApplet "+VERSION},
397
{"copyright", "string", "GPL"},
398
{"title", "string", title}
403
private static final int VERTICAL = 0;
404
private static final int HORIZONTAL = 1;
405
private static final int SOLID = 0;
406
private static final int STRIPED = 1;
407
private static final int DEBUG = 3;
408
private static final int SHIFTBAR = 3;
409
private static final String VERSION = "1.1";
411
private String title;
412
private String special;
415
private FontMetrics fontmetrics;
416
private int orientation;
419
private int nbblocks;
420
private String blabels[];
421
private int b_fontsize;
422
private int blockSpacing;
423
private int textVertSpacing;
425
private int nbvalues;
426
private Color colors[];
427
private String vlabels[];
428
private int styles[];
430
private int valSpacing;
431
private int valWidth;
433
private float values[][];
435
private int maxLabelWidth;
436
private Color background_color;
437
private Color border_color;
438
private Color special_color;
439
private Color backgraph_colorl;
440
private Color backgraph_colorm;
441
private Color backgraph_colorh;
446
// # Applet Applet.getAppletContext().getApplet( "receiver" )
447
// that accesses another Applet uniquely identified via a name you assign in the HTML <applet name= tag.
448
// # Applet Enumeration Applet.getAppletContext().getApplets()
449
// that gets you a list of all the Applets, of any class, not just yours, running on the page (including yourself).
2
* @(#)AWGraphApplet.java
3
* $Revision: 1.6 $ - $Author: eldy $ - $Date: 2004/01/07 22:32:03 $
7
import java.applet.Applet;
9
import java.util.Vector;
12
public class AWGraphApplet extends Applet
15
public AWGraphApplet()
17
special = "Not yet defined";
24
background_color = Color.white;
25
border_color = Color.white;
26
special_color = Color.gray;
27
backgraph_colorl = Color.decode("#F6F6F6");
28
backgraph_colorm = Color.decode("#EDEDED");
29
backgraph_colorh = Color.decode("#E0E0E0");
32
// public synchronized void init() {
33
public synchronized void start()
35
special = getParameter("special");
36
if (special == null) { special = ""; }
38
Log("Applet "+VERSION+" ($Revision: 1.6 $) init");
40
String s = getParameter("b_fontsize");
41
if (s != null) { b_fontsize = Integer.parseInt(s); }
43
title = getParameter("title");
44
if (title == null) { title = "Chart"; }
46
s = getParameter("nbblocks");
47
if (s != null) { nbblocks = Integer.parseInt(s); }
49
s = getParameter("nbvalues");
50
if (s != null) { nbvalues = Integer.parseInt(s); }
52
s = getParameter("blockspacing");
53
if (s != null) { blockSpacing = Integer.parseInt(s); }
54
s = getParameter("valspacing");
55
if (s != null) { valSpacing = Integer.parseInt(s); }
56
s = getParameter("valwidth");
57
if (s != null) { valWidth = Integer.parseInt(s); }
59
s = getParameter("orientation");
60
if (s == null) { orientation = VERTICAL; }
61
else if (s.equalsIgnoreCase("horizontal")) { orientation = HORIZONTAL; }
62
else { orientation = VERTICAL; }
63
s = getParameter("barsize");
64
if (s != null) { barsize = Integer.parseInt(s); }
66
s = getParameter("background_color");
67
if (s != null) { background_color = Color.decode("#"+s); }
68
s = getParameter("border_color");
69
if (s != null) { border_color = Color.decode("#"+s); }
70
s = getParameter("special_color");
71
if (s != null) { special_color = Color.decode("#"+s); }
73
Log("bblocks "+nbblocks);
74
Log("nbvalues "+nbvalues);
75
Log("barsize "+barsize);
77
font = new Font("Verdana,Arial,Helvetica", 0, b_fontsize);
78
fontb = new Font("Verdana,Arial,Helvetica", Font.BOLD, b_fontsize);
79
fontmetrics = getFontMetrics(font);
81
blabels = new String[nbblocks];
82
vlabels = new String[nbvalues];
83
styles = new int[nbvalues];
84
max = new float[nbvalues];
85
colors = new Color[nbvalues];
86
values = new float[nbblocks][nbvalues];
88
for (int i=0; i < nbvalues; i++) {
94
for (int j=0; j < nbblocks; j++) {
98
for (int i=0; i < nbvalues; i++) {
99
if (max[i]<=0.0F) { max[i]=1.0F; }
100
Log("max["+i+"]="+max[i]);
104
private synchronized void Log(String s)
106
System.out.println(getClass().getName()+" ("+special+"): "+s);
109
private synchronized void parsebLabel(int i)
111
String s = getParameter("b" + (i+1) + "_label");
117
maxLabelWidth = Math.max(fontmetrics.stringWidth(blabels[i]), maxLabelWidth);
120
private synchronized void parseLabel(int i)
122
String s = getParameter("v" + (i+1) + "_label");
130
private synchronized void parseStyle(int i)
132
String s = getParameter("v" + (i+1) + "_style");
133
if (s == null || s.equalsIgnoreCase("solid")) {
135
} else if (s.equalsIgnoreCase("striped")) {
142
private synchronized void parseColor(int i)
144
String s = getParameter("v" + (i+1) + "_color");
146
colors[i] = Color.decode("#"+s);
148
colors[i] = Color.gray;
152
private synchronized void parseMax(int i)
154
String s = getParameter("v" + (i+1) + "_max");
156
max[i] = Float.valueOf(s).floatValue();
162
private synchronized void parseValue(int i)
164
String s = getParameter("b" + (i+1));
166
String[] as=split(s," ",0);
167
for (int j=0; j<as.length; j++) {
169
if (as[j].compareTo("?")==0) { values[i][j] = 0; }
170
else { values[i][j] = Float.parseFloat(as[j]); }
171
// Log("values["+i+"]["+j+"]="+values[i][j]);
176
private String[] split(String s, String c, int iStart)
178
Vector v = new Vector();
179
boolean bFin = false;
183
//System.out.println("s = " + s);
186
i = s.indexOf(c, iOld+1);
188
//System.out.println("i = " + i);
189
sub = s.substring(iOld+1, i);
191
sub = s.substring(iOld+1, s.length());
194
//System.out.println("sub = " + sub);
197
String[] tabS = new String[v.size()];
198
for (i=0 ; i<v.size() ; i++) {
199
tabS[i] = (String)v.elementAt(i);
204
private String remove(String s, String c)
206
Vector v = new Vector();
207
boolean bFin = false;
211
//System.out.println("s = " + s);
214
i = s.indexOf(c, iOld+1);
216
//System.out.println("i = " + i);
217
sub = s.substring(iOld+1, i);
219
sub = s.substring(iOld+1, s.length());
222
//System.out.println("sub = " + sub);
226
for (i=0 ; i<v.size() ; i++) {
227
sub += (String)v.elementAt(i);
232
private Graphics bfr;
237
img = createImage(this.getSize().width, this.getSize().height);
238
bfr = img.getGraphics();
241
public synchronized void paint(Graphics g)
243
// background and border
244
bfr.setColor(background_color);
245
bfr.fillRect(0, 0, getSize().width, getSize().height);
246
bfr.setColor(border_color);
247
bfr.drawRect(0, 0, getSize().width, getSize().height);
249
// draw the bars and their titles
250
if(orientation == HORIZONTAL) { paintHorizontal(bfr); }
251
else { paintVertical(bfr); }
253
g.drawImage(this.img, 0, 0, this);
256
private synchronized void draw3DBar(Graphics g,int x, int y, float w, float h, int shift, Color color)
258
// Draw a 3D bar at pos (x,y)
259
Polygon polygon = new Polygon();
260
int width=new Float(w).intValue();
261
int height=new Float(h).intValue();
262
// Log("draw3DBar "+x+","+y+","+w+"=>"+width+","+h+"=>"+height);
264
polygon.addPoint(x,y);
265
polygon.addPoint(x+width,y);
266
polygon.addPoint(x+width,y-height);
267
polygon.addPoint(x,y-height);
269
g.fillPolygon(polygon);
270
g.setColor(color.darker());
271
g.drawPolygon(polygon);
272
Polygon polygon2 = new Polygon();
273
polygon2.addPoint(x+width,y);
274
polygon2.addPoint(x+width+shift,y-shift);
275
polygon2.addPoint(x+width+shift,y-shift-height);
276
polygon2.addPoint(x+width,y-height);
277
g.setColor(color.darker());
278
g.fillPolygon(polygon2);
279
g.setColor(color.darker().darker());
280
g.drawPolygon(polygon2);
281
Polygon polygon3 = new Polygon();
282
polygon3.addPoint(x,y-height);
283
polygon3.addPoint(x+width,y-height);
284
polygon3.addPoint(x+width+shift,y-height-shift);
285
polygon3.addPoint(x+shift,y-height-shift);
287
g.fillPolygon(polygon3);
288
g.setColor(color.darker());
289
g.drawPolygon(polygon3);
292
private synchronized void paintHorizontal(Graphics g)
296
private synchronized void paintVertical(Graphics g)
298
g.setColor(Color.black);
302
int allbarwidth=(((nbvalues*(valWidth+valSpacing))+blockSpacing)*nbblocks);
303
int allbarheight=barsize;
304
int axepointx=(getSize().width-allbarwidth)/2 - 2*shift;
305
int axepointy = getSize().height - (2*fontmetrics.getHeight()) - 2 - textVertSpacing;
311
Polygon polygon = new Polygon();
312
polygon.addPoint(cx,cy);
313
polygon.addPoint(cx+allbarwidth+3*shift,cy);
314
polygon.addPoint(cx+allbarwidth+4*shift,cy-shift);
315
polygon.addPoint(cx+shift,cy-shift);
316
g.setColor(backgraph_colorl);
317
g.fillPolygon(polygon);
318
g.setColor(Color.lightGray);
319
g.drawPolygon(polygon);
320
Polygon polygon2 = new Polygon();
321
polygon2.addPoint(cx,cy);
322
polygon2.addPoint(cx+shift,cy-shift);
323
polygon2.addPoint(cx+shift,cy-shift-barsize);
324
polygon2.addPoint(cx,cy-barsize);
325
g.setColor(backgraph_colorh);
326
g.fillPolygon(polygon2);
327
g.setColor(Color.lightGray);
328
g.drawPolygon(polygon2);
329
Polygon polygon3 = new Polygon();
330
polygon3.addPoint(cx+shift,cy-shift);
331
polygon3.addPoint(cx+allbarwidth+4*shift,cy-shift);
332
polygon3.addPoint(cx+allbarwidth+4*shift,cy-shift-barsize);
333
polygon3.addPoint(cx+shift,cy-shift-barsize);
334
g.setColor(backgraph_colorm);
335
g.fillPolygon(polygon3);
336
g.setColor(Color.lightGray);
337
g.drawPolygon(polygon3);
341
// Loop on each block
342
for (int j = 0; j < nbblocks; j++) {
344
// Draw the block label
345
// Log("Write block j="+j+" with cx="+cx);
346
cy = getSize().height - fontmetrics.getHeight() - 3 - textVertSpacing;
347
g.setColor(Color.black);
349
// Check if bold or highlight
350
int bold=0; int highlight=0; String label=blabels[j];
351
if (blabels[j].indexOf(":")>0) { bold=1; label=remove(blabels[j],":"); }
352
if (blabels[j].indexOf("!")>0) { highlight=1; label=remove(blabels[j],"!"); }
354
if (bold==1) { g.setFont(fontb); }
355
String as[] = split(label, "\247", 0);
356
// Write background for block legend
358
g.setColor(special_color);
359
g.fillRect(cx-Math.max(-1+blockSpacing>>1,0),cy-fontmetrics.getHeight()+2,(nbvalues*(valWidth+valSpacing))+Math.max(blockSpacing-2,0)+1,((fontmetrics.getHeight()+textVertSpacing)*as.length)+2);
360
g.setColor(Color.black);
362
// Write text for block legend
363
for (int i=0; i<as.length; i++) {
364
int cxoffset=((nbvalues*(valWidth+valSpacing))-fontmetrics.stringWidth(as[i]))>>1;
365
if (cxoffset<0) { cxoffset=0; }
366
g.drawString(as[i], cx+cxoffset, cy);
367
cy+=fontmetrics.getHeight()+textVertSpacing-1;
369
if (bold==1) { g.setFont(font); }
371
// Loop on each value
372
for (int i = 0; i < nbvalues; i++) {
374
cy = getSize().height - fontmetrics.getHeight() - 6 - textVertSpacing;
375
cy -= fontmetrics.getHeight() - 4;
377
// draw the shadow and bar
378
draw3DBar(g,cx,cy,valWidth,(values[j][i]*(float)barsize)/max[i],SHIFTBAR,colors[i]);
380
cy = (int)((float)cy - (values[j][i] + 5F));
381
cx += (valWidth + valSpacing);
388
public synchronized String getAppletInfo()
390
return "Title: " + title + "\n";
393
public synchronized String[][] getParameterInfo()
396
{"version", "string", "AWGraphApplet "+VERSION},
397
{"copyright", "string", "GPL"},
398
{"title", "string", title}
403
private static final int VERTICAL = 0;
404
private static final int HORIZONTAL = 1;
405
private static final int SOLID = 0;
406
private static final int STRIPED = 1;
407
private static final int DEBUG = 3;
408
private static final int SHIFTBAR = 3;
409
private static final String VERSION = "1.1";
411
private String title;
412
private String special;
415
private FontMetrics fontmetrics;
416
private int orientation;
419
private int nbblocks;
420
private String blabels[];
421
private int b_fontsize;
422
private int blockSpacing;
423
private int textVertSpacing;
425
private int nbvalues;
426
private Color colors[];
427
private String vlabels[];
428
private int styles[];
430
private int valSpacing;
431
private int valWidth;
433
private float values[][];
435
private int maxLabelWidth;
436
private Color background_color;
437
private Color border_color;
438
private Color special_color;
439
private Color backgraph_colorl;
440
private Color backgraph_colorm;
441
private Color backgraph_colorh;
446
// # Applet Applet.getAppletContext().getApplet( "receiver" )
447
// that accesses another Applet uniquely identified via a name you assign in the HTML <applet name= tag.
448
// # Applet Enumeration Applet.getAppletContext().getApplets()
449
// that gets you a list of all the Applets, of any class, not just yours, running on the page (including yourself).