/* draw5: respond to delete and esc keys; thicken item when mouse is over it. */ import java.awt.*; public class Draw5 extends Draw4 { Item newItem() { return (Item)(new Item5()); } Item5 item5(int i) { return (Item5)item[i]; } public boolean mouseMove(Event e, int x, int y) { damage = true; mx = x; my = y; thickenItemAt(x, y); return true; } // SHOW THE ITEM AT THE MOUSE AS THICKER THAN OTHER ITEMS public void thickenItemAt(int x, int y) { for (int i = 0 ; i < nItems ; i++) item5(i).setThicken(item5(i).contains(x, y)); } // DELETE KEY TO DELETE ITEM AT MOUSE // ESCAPE KEY TO RE-INITIALIZE public boolean keyUp(Event e, int key) { damage = true; switch (key) { case 127: deleteItem(itemAt(mx, my)); return true; case 27: clear() ; return true; } return false; } // DELETE A NEW ITEM THAT IS REALLY JUST THE RESULT OF A CLICK public boolean mouseUp(Event e, int x, int y) { if (iSelected < 0 && item5(nItems-1).nPts < 3) deleteItem(nItems-1); return super.mouseUp(e, x, y); } // REINITIALIZE EVERYTHING public void clear() { nItems = 0; Item.idCount = 0; } // DELETE ONE ITEM void deleteItem(int i) { if (i >= 0) { if (i == nItems-1) --Item.idCount; for (int j = i ; j < nItems ; j++) item[j] = (Item)item5(j+1); nItems--; } } }