+--------------+ | DisplayPanel | +--------------+ / \ --- | +---------------------------+ | BalloonControl | +---------------------------+ +--| BalloonInputView bView | | | Balloon b |---------+ | | BufferredPanel window |---+ | | | JPTCanvas theCanvas |-+ | | | | SimpleAction paintAction | | | v | | SimpleAction newAction | | | +------------+ | | SimpleAction cancelAction | | | | Balloon | | +---------------------------+ | | +------------+ | | void paintAction() | | | | int x | | | void paintAction() | | | | int y | | | void cancelAction() | | | | int radius | | +---------------------------+ | | | Color c | | +---------+ | +------------+ | v v | +-----------------------+ +---------------+ | | JPTCanvas | | BufferedPanel | | +-----------------------+ +---------------+ | | BufferredPanel window | | +-----------------------+ | | +-------------------------------------+ | | interface: BalloonInput | | +-------------------------------------+ | | Balloon demandBalloon() | | | Balloon requestBalloon() | | | throws CancelledException | | +-------------------------------------+ | / \ | | | +- - - - - - - - - - - - - - - - -+ | | | | +-----------------------+ +---------------------+ | | GUIBalloonInput | | ConsoleBalloonInput | | +-----------------------+ +---------------------+ | | BalloonInputView bGUI |--+ +---------------------+ | +-----------------------+ | +---------+ | | | Display | | | +---------+ +---------------------+ | / \ | | --- v v | +----------------------------+ | BalloonInputView | +----------------------------+ | TextFieldView xTFV | | TextFieldView yTFV | | SliderView rSlider | | ColorView cVieW | +----------------------------+ | TablePanel createDisplay() | +----------------------------+