Source code: org/incenter/ngbclient/plotter.java
1
2 package org.incenter.ngbclient;
3 import org.incenter.ngbclient.*;
4 import org.incenter.gb.*;
5
6 import java.awt.*;
7 import java.awt.event.*;
8 import java.net.*;
9 import java.io.*;
10 import java.lang.*;
11 import java.util.*;
12
13 public class plotter extends Canvas
14 {
15 Vector mapObjs;
16 public static final int UNIVERSE = 0;
17 public static final int SYSTEM = 1;
18 int universeFactor = 25, systemFactor = 25;
19 int universeDivider = 100, systemDivider = 10;
20 int divider, factor;
21 int mode;
22 boolean showStar = true;
23
24 public plotter(Vector mobjs, int mode) {
25 mapObjs = mobjs;
26 this.mode = mode;
27 setSize(calcSize());
28
29 setBackground(Color.black);
30 }
31
32 public void setShowStar(boolean b) {
33 showStar = b;
34 repaint();
35 }
36
37 public MapObject getMapObject(int x, int y) {
38 Enumeration en = mapObjs.elements();
39 while(en.hasMoreElements()) {
40 MapObject mo = (MapObject)en.nextElement();
41 if(mo.isInside(x,y))
42 return mo;
43 }
44 return null;
45 }
46
47 private Dimension calcSize() {
48 if(mode == UNIVERSE) {
49 factor = universeFactor;
50 divider = universeDivider;
51 } else if(mode == SYSTEM) {
52 factor = systemFactor;
53 divider = systemDivider;
54 }
55 int maxx = -9999, maxy = -9999;
56 Enumeration en = mapObjs.elements();
57 while(en.hasMoreElements()) {
58 MapObject mo = (MapObject)en.nextElement();
59 if(mo.getXcoord() > maxx) maxx = mo.getXcoord();
60 if(mo.getYcoord() > maxy) maxy = mo.getYcoord();
61 }
62 return new Dimension((maxx/divider)+ 100, (maxy/divider)+100);
63 }
64
65 public void paint(Graphics g) {
66 Dimension dm = getSize();
67 try {
68 int maxx = -9999, maxy = -9999;
69 Enumeration en = mapObjs.elements();
70 while(en.hasMoreElements()) {
71 MapObject mo = (MapObject)en.nextElement();
72 if(mo.getXcoord() > maxx) maxx = mo.getXcoord();
73 if(mo.getYcoord() > maxy) maxy = mo.getYcoord();
74 }
75 en = mapObjs.elements();
76 while(en.hasMoreElements()) {
77 MapObject mo = (MapObject)en.nextElement();
78 if(mode == SYSTEM) {
79 if((mo.getSource() instanceof star_remote && showStar) ||
80 !(mo.getSource() instanceof star_remote))
81 mo.draw(g, divider, 2500, 2500, this);
82 } else
83 mo.draw(g, divider, this);
84 }
85
86 } catch(Exception e) {
87 g.drawString("ERROR:" + e,
88 dm.width /2,
89 dm.height/2);
90 }
91 }
92
93 }