/* draw9: reading from and writing to disks */ import java.awt.*; import java.util.*; public class Draw9 extends Draw8 { Item newItem() { return (Item)(new Item9()); } Item9 item9(int i) { return (Item9)item[i]; } LocalTextIO textIO = new LocalTextIO(); StringTokenizer st; // CONTROL-R TO READ A DRAWING FROM A FILE // CONTROL-W TO WRITE A DRAWING TO A FILE public boolean keyUp(Event e, int key) { String fileName; switch (key) { case 23: // CONTROL W if ((fileName = getFileName()) == null) return true; String s = "nItems " + nItems + "\n"; for (int i = 0 ; i < nItems ; i++) s += item9(i).toString(); textIO.save(fileName, s); return true; case 18: // CONTROL R if ((fileName = getFileName()) == null) return true; clear(); st = new StringTokenizer(textIO.load(fileName)); st.nextToken(); nItems = (new Integer(st.nextToken())).intValue(); for (int i = 0 ; i < nItems ; i++) item[i] = newItem(); for (int i = 0 ; i < nItems ; i++) item9(i).parse(st, item); return true; default: return super.keyUp(e, key); } } String getFileName() { int i = itemAt(mx, my); if (i < 0) return null; String name = item9(i).text; if (name.length() == 0) return null; deleteItem(i); return name + ".drw"; } }