// classes defining graph structures // author: p gray // date: 26 june 98 import java.awt.*; class Node { static int maxNodeId = 0; int id; int origX = 0, origY = 0; int height = 20; int width = 20; boolean selected = false; boolean movable = false; Node(int startX, int startY) { // get next node id and assign it to this node id = maxNodeId++; System.out.println("New node with id " + Integer.toString(id)); origX = startX; origY = startY; } // accessing public String id() { return Integer.toString(id); } public int origX() { return origX; } public int origY() { return origY; } public int height() { return height; } public int width() { return width; } public void setOrigX(int val) { origX = val; } public void setOrigY(int val) { origY = val; } public boolean containsPoint(int x, int y) { if ( (x >= origX) & (x < (origX + width)) & (y >= origY) & (y < (origY + height)) ) return(true); else return(false); } // selection methods public boolean isSelected() { return selected; } public void select() { selected = true; } public void unselect() { selected = false; } public void setMovable() { movable = true; } public void setUnmovable() { movable = false; } // displaying public void display(Graphics g) { if (selected) g.setColor(Color.red); else g.setColor(Color.black); g.fillOval(origX(), origY(), width(), height()); } }