Cal puzzles, "ok, if you could have the ultimate configurable 'whiteboard', what features would it have?" Calin says, "Aside from platform independance and other underlying stuff..." says Cal, "chat window, shared edit views for text, drawing, basic spreadsheet..." says Cal, "tabed organization." Calin says, "I want the ability to scroll the window. Essentially making the canvas larger dynamically." Akili rumbles lightly, "The ability to include fixed images that can be moved around." Calin says, "If I start with a small window, and I'm drawing and come to the edge, I want to be able to just scroll to the side, thus increasing the canvas size, and then continue drawing." says Cal, "'object oriented' rather than just pixel based drawing." Calin nods. Calin says, "I would want layers." Calin says, "So I could upload my map from a file, then erase the white layer on top of it to show the parts I want." Calin says, "We'd probably need user permissions on various layers, to keep the other users from seeing more of the bottom-layer map than I want." Cal pieces together a model, "nested organization. leaves could be text, graphics, 'active'..." "Leaves meaning layers?" asks Calin. says Cal, "leaves would be individual entitied that could be moved/edited." Calin says, "Probably a good way to start would be to give each user their own layer. So none of us can erase what another user drew." says Cal, "multiple canvas layers in a container frame." Calin nods says Cal, "transparent canvas, a users canvas being in front for them while being edited." Calin nods. says Cal, "selected canvases being forced in front based on privilidge, for a DM map mask." Calin says, "If each user had one or more canvases, that user could have absolute control over what order their own canvases were in. Each user could then decide the order of the canvases by user, but not by individual canvase." says Cal, "so far we have tab, general container, canvas, text, and calculator objects in the model. edit privilidge based on owner, perhaps group." Cal puzzles, "Anything we'd want to do that this model won't handle?" Calin says, "The ability to display a grid, and perhaps enable 'snap to grid' for the draggable objects would be nice." Cal considers design for the 'ultimate white board'. "client-server or peer to peer networking? client-server would be simpler for some stuff." { frame { tab { canvas source } { frame { text } { calc =+ } { text @ } } } } # manage access privilidges on an object interface privilidge # place stuff where we want class exactlayout impliments LayoutManager2 # a holder for display elements class frame extends panel using exactlayout # tabed layout class tab extends panel using CardLayout # chat panel class text extends Canvas # a calculator cell, holds text, number, or formula refering to other cells class calc extends Canvas # an image class graph extends Image # a set of drawing tools & pallet class drawset