00001 00066 package com.arcle.rmt.superwaba.vc; 00067 00068 import waba.ui.Window; 00069 import com.arcle.rmt.superwaba.vc.ElementList; 00070 import com.arcle.rmt.superwaba.vc.ElementEdit; 00071 import com.arcle.rmt.superwaba.model.Document; 00072 import com.arcle.rmt.superwaba.framework.Model; 00073 import com.arcle.rmt.rqml.RQMLFirstClass; 00074 00082 public abstract class ElementListController extends ControllerBase { 00083 public ElementListController(Document doc) { 00084 _document = doc; 00085 } 00086 00087 //---------------------------------------------------------------------- 00088 // Command Handlers 00089 00095 public void cmdNewElement() { 00096 RQMLFirstClass newElement = createElement(); 00097 cmdEditElement(newElement); 00098 } 00099 00107 public void cmdEditElement(RQMLFirstClass elem) { 00108 ElementList view = (ElementList) getView(); 00109 ElementEditController ctrl = createElementEditController(elem); 00110 ElementEdit edit = createElementEdit(ctrl); 00111 Window.getTopMost().popupBlockingModal(edit); 00112 view.modelUpdated(); 00113 } 00114 00115 //---------------------------------------------------------------------- 00116 // Accessor Methods 00117 00121 public Document getDocument() { 00122 return _document; 00123 } 00124 00125 //---------------------------------------------------------------------- 00126 // Factory Methods 00127 00131 protected abstract RQMLFirstClass createElement(); 00132 00136 protected abstract ElementEdit createElementEdit(ElementEditController ctrl); 00137 00141 protected abstract ElementEditController createElementEditController(RQMLFirstClass elem); 00142 00143 //---------------------------------------------------------------------- 00144 // Member variables 00145 00149 private Document _document; 00150 }