/* draw3: draw shadow if item contains (x,y) */ import java.awt.*; public class Draw3 extends Draw2 { int iSelected = -1; Item newItem() { return (Item)(new Item3()); } Item3 item3(int i) { return (Item3)item[i]; } // DRAW SHADOW ONLY FOR THE SELECTED ITEM public void renderShadow() { if (iSelected >= 0) { setShadow(iSelected); item3(iSelected).draw(g, 10, 10, 3*item3(iSelected).r/2); } } public void renderFg() { for (int i = 0 ; i < nItems ; i++) if (i != iSelected) drawItem(i); // DRAW THE SELECTED ITEM ON TOP OF ALL OTHER ITEMS if (iSelected >= 0) drawItem(iSelected); } public void drawItem(int i) { item3(i).draw(g); } // CLICK ON AN ITEM TO SELECT IT public boolean mouseDown(Event e, int x, int y) { iSelected = itemAt(x, y); return super.mouseDown(e, x, y); } public boolean mouseUp(Event e, int x, int y) { iSelected = -1; return super.mouseUp(e, x, y); } // DO HIT TESTING ON ALL ITEMS TO FIND THE ONE AT X,Y int itemAt(int x, int y) { int ii = -1; for (int i = 0 ; i < nItems ; i++) if (item3(i).contains(x, y)) ii = i; return ii; } }