1 56 package org.objectstyle.cayenne.modeler.dialog.query; 57 58 import org.objectstyle.cayenne.access.DataDomain; 59 import org.objectstyle.cayenne.map.DataMap; 60 import org.objectstyle.cayenne.map.event.MapEvent; 61 import org.objectstyle.cayenne.map.event.QueryEvent; 62 import org.objectstyle.cayenne.modeler.ProjectController; 63 import org.objectstyle.cayenne.modeler.event.QueryDisplayEvent; 64 import org.objectstyle.cayenne.project.NamedObjectFactory; 65 import org.objectstyle.cayenne.query.Query; 66 import org.scopemvc.controller.basic.BasicController; 67 import org.scopemvc.core.Control; 68 import org.scopemvc.core.ControlException; 69 70 75 public class QueryTypeController extends BasicController { 76 77 public static final String CANCEL_CONTROL = "cayenne.modeler.queryType.cancel.button"; 78 public static final String CREATE_CONTROL = "cayenne.modeler.queryType.create.button"; 79 public static final String OBJECT_QUERY_CONTROL = "cayenne.modeler.queryType.selectQuery.radio"; 80 public static final String SQL_QUERY_CONTROL = "cayenne.modeler.queryType.sqlQuery.radio"; 81 public static final String PROCEDURE_QUERY_CONTROL = "cayenne.modeler.queryType.procedureQuery.radio"; 82 83 protected ProjectController mediator; 84 protected DataMap dataMap; 85 protected DataDomain domain; 86 protected Query query; 87 88 public QueryTypeController(ProjectController mediator) { 89 this.mediator = mediator; 90 this.dataMap = mediator.getCurrentDataMap(); 91 this.domain = mediator.getCurrentDataDomain(); 92 } 93 94 protected void doHandleControl(Control control) throws ControlException { 95 if (control.matchesID(CANCEL_CONTROL)) { 96 shutdown(); 97 } 98 else if (control.matchesID(CREATE_CONTROL)) { 99 createQuery(); 100 } 101 else if (control.matchesID(OBJECT_QUERY_CONTROL)) { 102 } 104 else if (control.matchesID(SQL_QUERY_CONTROL)) { 105 } 107 else if (control.matchesID(PROCEDURE_QUERY_CONTROL)) { 108 } 110 } 111 112 115 public void startup() { 116 setModel(new QueryTypeModel(mediator.getCurrentDataMap())); 117 setView(new QueryTypeDialog()); 118 showView(); 119 } 120 121 124 public void createQuery() { 125 QueryTypeModel model = (QueryTypeModel) getModel(); 126 Query query = model.getSelectedQuery(); 127 if (query == null) { 128 return; 130 } 131 132 String queryName = NamedObjectFactory.createName(Query.class, dataMap); 134 query.setName(queryName); 135 dataMap.addQuery(query); 136 137 mediator.fireQueryEvent(new QueryEvent(this, query, MapEvent.ADD)); 139 mediator 140 .fireQueryDisplayEvent(new QueryDisplayEvent(this, query, dataMap, domain)); 141 shutdown(); 142 } 143 } | Popular Tags |