Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

AbstractDocumentWindow.java

Go to the documentation of this file.
00001 
00066 package com.arcle.rmt.superwaba.vc;
00067 
00068 import waba.ui.ComboBox;
00069 import waba.ui.Button;
00070 import waba.ui.ListBox;
00071 import waba.ui.ControlEvent;
00072 import waba.ui.Event;
00073 import waba.ui.MenuBar;
00074 
00075 import com.arcle.rmt.xplat.util.List;
00076 import com.arcle.rmt.superwaba.AboutDialog;
00077 import com.arcle.rmt.superwaba.ui.CategoryWindow;
00078 import com.arcle.rmt.superwaba.framework.View;
00079 import com.arcle.rmt.superwaba.framework.Model;
00080 import com.arcle.rmt.superwaba.model.Document;
00081 import com.arcle.rmt.superwaba.vc.DocumentWindowController;
00082 import com.arcle.rmt.superwaba.vc.ElementListController;
00083 
00092 public abstract class AbstractDocumentWindow extends CategoryWindow
00093    implements View {
00094     public AbstractDocumentWindow(DocumentWindowController ctrl) {
00095         super("Document");
00096         _controller = ctrl;
00097     }
00098 
00099     //-----------------------------------------------------------------------
00100     // View implementation
00101 
00102 
00103     //-----------------------------------------------------------------------
00104     // Abstract Methods
00105 
00111     protected abstract List createPanels();
00112 
00113     //-----------------------------------------------------------------------
00114     // Implemented Abstract Methods
00115 
00116     protected String getPanelCaptionAt(int index) {
00117         return ((ElementList)getPanelAt(index)).getCaption();
00118     }
00119 
00120     public Button[] getCommandButtons() {
00121         return new Button[] {
00122             btnNew,
00123             btnClose,
00124             btnDelete
00125         };
00126     }
00127 
00128     //-----------------------------------------------------------------------
00129     // Overridden Methods
00130 
00131     protected void initChildren() {
00132         super.initChildren();
00133         btnNew = createButton("New");
00134         btnClose = createButton("Close");
00135         btnDelete = createButton("Delete");
00136 
00137         setMenuBar(createMenuBar());
00138     }
00139 
00140 
00141     public void onEvent(Event event) {
00142         DocumentWindowController ctrl = getController();
00143         switch(event.type) {
00144         case ControlEvent.PRESSED:
00145             if (event.target == btnNew) {
00146                 doNewElement();
00147                 event.consumed = true;
00148             } else if (event.target == btnClose) {
00149                 ctrl.cmdCloseWindow();
00150             } else if (event.target == btnDelete) {
00151                 ctrl.cmdDeleteDocument();
00152             }
00153         case ControlEvent.WINDOW_CLOSED:
00154             if (event.target == menubar) {
00155                 handleMenuEvent(((MenuBar) menubar).getSelectedMenuItem());
00156             }
00157 
00158         }
00159 
00160         if (!event.consumed) {
00161             super.onEvent(event);
00162         }
00163 
00164     }
00165 
00166     protected void initCompleted() {
00167         getController().viewInitialized(this);
00168         setTitle(getDocument().getTitle());
00169     }
00170 
00174     protected void onPanelSwitched() {
00175         ElementList lst = (ElementList) getActivePanel();
00176         lst.modelUpdated();
00177     }
00178 
00179 
00180     //-----------------------------------------------------------------------
00181     // Factory methods
00182 
00186     protected MenuBar createMenuBar() {
00187         String[][] menuItems = new String[2][];
00188 
00189         menuItems[0] = createRequirementMenuItems();
00190         menuItems[1] = new String[] {
00191             "Help",
00192             "About..."
00193         };
00194         return new MenuBar(menuItems);
00195     }
00196 
00197 
00201     protected abstract String[] createRequirementMenuItems();
00202 
00203     //-----------------------------------------------------------------------
00204     // Accessor methods
00205 
00206 
00207 
00211     protected DocumentWindowController getController() {
00212         return _controller;
00213     }
00214 
00215     //-----------------------------------------------------------------------
00216     // Own Protected Methods
00217 
00221     protected void handleMenuEvent(int selectedItem) {
00222         if (0 <= selectedItem && selectedItem < 100) {
00223             // first pulldown menu was selected
00224             selectedItem--;
00225             setActivePanel(selectedItem);
00226             doNewElement();
00227         } else if (100 <= selectedItem && selectedItem < 200) {
00228             // second pulldown menu was selected
00229             selectedItem -= 100;
00230             switch(selectedItem) {
00231             case 1: // about dialog box
00232                 AboutDialog.show();
00233             }
00234         }
00235     }
00236 
00237 
00241     protected void doNewElement() {
00242         ElementListController ctrl = ((ElementList)getActivePanel())
00243             .getController();
00244         ctrl.cmdNewElement();
00245     }
00246 
00247 
00251     protected Document getDocument() {
00252         return getController().getDocument();
00253     }
00254 
00255 
00259     private DocumentWindowController _controller;
00260 
00261 
00265     private Button btnNew;
00266 
00270     private Button btnClose;
00271 
00275     private Button btnDelete;
00276 }

Generated on Fri Jun 18 19:50:25 2004 for Arcle Rambutan by doxygen 1.3.5