From: Anjo K. <an...@us...> - 2003-09-28 19:42:31
|
Update of /cvsroot/wonder/Wonder/Common/Frameworks/ERDirectToWeb/Sources/er/directtoweb In directory sc8-pr-cvs1:/tmp/cvs-serv13260 Modified Files: ERD2WFactory.java ERD2WInspectPage.java ERD2WListPage.java ERD2WTabInspectPage.java ERD2WWizardCreationPage.java ERDirectToWeb.java ERDPrinterButton.java Log Message: - MOVEMEs from ERDirectToWeb->ERD2WFactory - adding myCheckRules - fixing bad EOModelGroup Index: ERD2WFactory.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERDirectToWeb/Sources/er/directtoweb/ERD2WFactory.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** ERD2WFactory.java 22 Sep 2003 21:53:06 -0000 1.11 --- ERD2WFactory.java 28 Sep 2003 19:42:12 -0000 1.12 *************** *** 82,97 **** } ! private EOEnterpriseObject _newObjectWithEntityNamed(String entityName, EOEditingContext ec) { ! EOEntity entity = EOModelGroup.defaultGroup().entityNamed(entityName); if (entity.isReadOnly()) { ! throw new IllegalArgumentException(" You can't create a new instance of " + entityName + ". It is a read-only entity. It is marked read-only in the model."); } if (entity.isAbstractEntity()) { ! throw new IllegalArgumentException(" You can't create a new instance of " + entityName + ". It is an abstract entity"); } EOEnterpriseObject eo; try { ec.lock(); ! eo = ERXUtilities.createEO(entityName, ec); } finally { ec.unlock(); --- 82,102 ---- } ! private EOEntity _entityNamed(String entityName, WOSession session) { ! EOEditingContext ec = (session != null ? session.defaultEditingContext() : null); ! EOModelGroup group = (ec == null) ? EOModelGroup.defaultGroup() : EOUtilities.modelGroup(ec); ! return entityName!=null ? group.entityNamed(entityName) : null; ! } ! ! private EOEnterpriseObject _newObjectWithEntity(EOEntity entity, EOEditingContext ec) { if (entity.isReadOnly()) { ! throw new IllegalArgumentException(" You can't create a new instance of " + entity.name() + ". It is a read-only entity. It is marked read-only in the model."); } if (entity.isAbstractEntity()) { ! throw new IllegalArgumentException(" You can't create a new instance of " + entity.name() + ". It is an abstract entity"); } EOEnterpriseObject eo; try { ec.lock(); ! eo = ERXUtilities.createEO(entity.name(), ec); } finally { ec.unlock(); *************** *** 104,108 **** EditPageInterface epi = editPageForEntityNamed(entityName, session); EOEditingContext peerContext = ERXExtensions.newEditingContext(session.defaultEditingContext().parentObjectStore()); ! EOEnterpriseObject newObject = _newObjectWithEntityNamed(entityName, peerContext); epi.setObject(newObject); peerContext.hasChanges(); --- 109,113 ---- EditPageInterface epi = editPageForEntityNamed(entityName, session); EOEditingContext peerContext = ERXExtensions.newEditingContext(session.defaultEditingContext().parentObjectStore()); ! EOEnterpriseObject newObject = _newObjectWithEntity(_entityNamed(entityName, session), peerContext); epi.setObject(newObject); peerContext.hasChanges(); *************** *** 115,120 **** .parentObjectStore()); D2WContext d2wcontext = ((D2WPage)epi).d2wContext(); ! String entityName = d2wcontext.entity().name(); ! EOEnterpriseObject newObject = _newObjectWithEntityNamed(entityName, peerContext); epi.setObject(newObject); peerContext.hasChanges(); --- 120,124 ---- .parentObjectStore()); D2WContext d2wcontext = ((D2WPage)epi).d2wContext(); ! EOEnterpriseObject newObject = _newObjectWithEntity(d2wcontext.entity(), peerContext); epi.setObject(newObject); peerContext.hasChanges(); *************** *** 126,130 **** D2WContext newContext=new D2WContext(session); newContext.setTask(task); ! EOEntity newEntity=entityName!=null ? EOModelGroup.defaultGroup().entityNamed(entityName) : null; if (newEntity!=null) newContext.setEntity(newEntity); String config="__"+task+"__"+entityName; --- 130,134 ---- D2WContext newContext=new D2WContext(session); newContext.setTask(task); ! EOEntity newEntity = _entityNamed(entityName,session); if (newEntity!=null) newContext.setEntity(newEntity); String config="__"+task+"__"+entityName; *************** *** 138,141 **** --- 142,203 ---- } + public WOComponent printerFriendlyPageForD2WContext(D2WContext context, WOSession session) { + myCheckRules(); + D2WContext newContext=new D2WContext(session); + String newTask=context.task().equals("edit") ? "inspect" : context.task(); + newContext.takeValueForKey(newTask,"task"); + // not using subTask directly here because the cache mechanism relies on being able to compute wether this key + // is 'computable' (subTask is since a rule can fire to give a default) or an external output + // newContext.takeValueForKey("printerFriendly","subTask"); + newContext.takeValueForKey("printerFriendly","forcedSubTask"); + newContext.takeValueForKey(context.valueForKey("pageName"),"existingPageName"); + newContext.takeValueForKey(context.valueForKey("subTask"),"existingSubTask"); + newContext.takeValueForKey(context.valueForKey("pageConfiguration"),"pageConfiguration"); + newContext.takeValueForKey(context.entity(),"entity"); + WOComponent result=WOApplication.application().pageWithName((String)newContext.valueForKey("pageName"),session.context()); + ((D2WPage)result).setLocalContext(newContext); + return result; + } + + public WOComponent csvExportPageForD2WContext(D2WContext context, WOSession session) { + myCheckRules(); + D2WContext newContext=new D2WContext(session); + newContext.takeValueForKey(context.task(),"task"); + // not using subTask directly here because the cache mechanism relies on being able to compute wether this key + // is 'computable' (subTask is since a rule can fire to give a default) or an external output + newContext.takeValueForKey("csv","forcedSubTask"); + newContext.takeValueForKey(context.valueForKey("pageName"),"existingPageName"); + newContext.takeValueForKey(context.valueForKey("subTask"),"existingSubTask"); + newContext.takeValueForKey(context.valueForKey("pageConfiguration"),"pageConfiguration"); + newContext.takeValueForKey(context.entity(),"entity"); + WOComponent result=WOApplication.application().pageWithName((String)newContext.valueForKey("pageName"),session.context()); + ((D2WPage)result).setLocalContext(newContext); + return result; + } + + public WOComponent pageForTaskSubTaskAndEntityNamed(String task, String subtask, String entityName, WOSession session) { + myCheckRules(); + D2WContext newContext=new D2WContext(session); + newContext.setTask(task); + newContext.setEntity(_entityNamed(entityName,session)); + newContext.takeValueForKey(subtask, "subTask"); + WOComponent result=WOApplication.application().pageWithName((String)newContext.valueForKey("pageName"),session.context()); + ((D2WPage)result).setLocalContext(newContext); + return result; + } + + public QueryPageInterface queryPageWithFetchSpecificationForEntityNamed(String fsName, String entityName, WOSession s) { + WOComponent result= pageForTaskSubTaskAndEntityNamed("query", "fetchSpecification", entityName,s); + result.takeValueForKey(fsName, "fetchSpecificationName"); + return (QueryPageInterface)result; + } + + public WOComponent errorPageForException(Throwable e, WOSession s) { + myCheckRules(); + ErrorPageInterface epi=D2W.factory().errorPage(s); + epi.setMessage(ERXUtilities.stackTrace(e)); + epi.setNextPage(s.context().page()); + return (WOComponent)epi; + } /** * Gets the <code>pageConfiguration</code> from the current page. Index: ERD2WInspectPage.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERDirectToWeb/Sources/er/directtoweb/ERD2WInspectPage.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** ERD2WInspectPage.java 28 Sep 2003 12:14:29 -0000 1.28 --- ERD2WInspectPage.java 28 Sep 2003 19:42:12 -0000 1.29 *************** *** 235,239 **** public WOComponent printerFriendlyVersion() { ! WOComponent result=ERDirectToWeb.printerFriendlyPageForD2WContext(d2wContext(),session()); ((EditPageInterface)result).setObject(object()); return result; --- 235,239 ---- public WOComponent printerFriendlyVersion() { ! WOComponent result=ERD2WFactory.erFactory().printerFriendlyPageForD2WContext(d2wContext(),session()); ((EditPageInterface)result).setObject(object()); return result; Index: ERD2WListPage.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERDirectToWeb/Sources/er/directtoweb/ERD2WListPage.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** ERD2WListPage.java 9 Sep 2003 16:20:21 -0000 1.28 --- ERD2WListPage.java 28 Sep 2003 19:42:13 -0000 1.29 *************** *** 134,138 **** public static WOComponent printerFriendlyVersion(D2WContext d2wContext, WOSession session, EODataSource dataSource, WODisplayGroup displayGroup) { ! ListPageInterface result=(ListPageInterface)ERDirectToWeb.printerFriendlyPageForD2WContext(d2wContext,session); result.setDataSource(dataSource); WODisplayGroup dg = null; --- 134,138 ---- public static WOComponent printerFriendlyVersion(D2WContext d2wContext, WOSession session, EODataSource dataSource, WODisplayGroup displayGroup) { ! ListPageInterface result=(ListPageInterface)ERD2WFactory.erFactory().printerFriendlyPageForD2WContext(d2wContext,session); result.setDataSource(dataSource); WODisplayGroup dg = null; Index: ERD2WTabInspectPage.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERDirectToWeb/Sources/er/directtoweb/ERD2WTabInspectPage.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** ERD2WTabInspectPage.java 26 Sep 2003 01:37:13 -0000 1.8 --- ERD2WTabInspectPage.java 28 Sep 2003 19:42:13 -0000 1.9 *************** *** 67,71 **** public WOComponent printerFriendlyVersion() { ! WOComponent result=ERDirectToWeb.printerFriendlyPageForD2WContext(d2wContext(),session()); ((EditPageInterface)result).setObject(object()); return result; --- 67,71 ---- public WOComponent printerFriendlyVersion() { ! WOComponent result=ERD2WFactory.erFactory().printerFriendlyPageForD2WContext(d2wContext(),session()); ((EditPageInterface)result).setObject(object()); return result; Index: ERD2WWizardCreationPage.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERDirectToWeb/Sources/er/directtoweb/ERD2WWizardCreationPage.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ERD2WWizardCreationPage.java 6 Sep 2002 21:59:48 -0000 1.3 --- ERD2WWizardCreationPage.java 28 Sep 2003 19:42:13 -0000 1.4 *************** *** 75,79 **** */ public WOComponent printerFriendlyVersion() { ! WOComponent result=ERDirectToWeb.printerFriendlyPageForD2WContext(d2wContext(),session()); ((EditPageInterface)result).setObject(object()); return result; --- 75,79 ---- */ public WOComponent printerFriendlyVersion() { ! WOComponent result=ERD2WFactory.erFactory().printerFriendlyPageForD2WContext(d2wContext(),session()); ((EditPageInterface)result).setObject(object()); return result; Index: ERDirectToWeb.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERDirectToWeb/Sources/er/directtoweb/ERDirectToWeb.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** ERDirectToWeb.java 28 Sep 2003 12:01:09 -0000 1.20 --- ERDirectToWeb.java 28 Sep 2003 19:42:13 -0000 1.21 *************** *** 245,305 **** } ! // MOVEME: ERD2WFactory public static WOComponent printerFriendlyPageForD2WContext(D2WContext context, WOSession session) { ! D2WContext newContext=new D2WContext(session); ! String newTask=context.task().equals("edit") ? "inspect" : context.task(); ! newContext.takeValueForKey(newTask,"task"); ! // not using subTask directly here because the cache mechanism relies on being able to compute wether this key ! // is 'computable' (subTask is since a rule can fire to give a default) or an external output ! // newContext.takeValueForKey("printerFriendly","subTask"); ! newContext.takeValueForKey("printerFriendly","forcedSubTask"); ! newContext.takeValueForKey(context.valueForKey("pageName"),"existingPageName"); ! newContext.takeValueForKey(context.valueForKey("subTask"),"existingSubTask"); ! newContext.takeValueForKey(context.valueForKey("pageConfiguration"),"pageConfiguration"); ! newContext.takeValueForKey(context.entity(),"entity"); ! WOComponent result=WOApplication.application().pageWithName((String)newContext.valueForKey("pageName"),session.context()); ! ((D2WPage)result).setLocalContext(newContext); ! return result; } ! // MOVEME: Should move to the ERXMLLook framework when created. public static WOComponent csvExportPageForD2WContext(D2WContext context, WOSession session) { ! D2WContext newContext=new D2WContext(session); ! newContext.takeValueForKey(context.task(),"task"); ! // not using subTask directly here because the cache mechanism relies on being able to compute wether this key ! // is 'computable' (subTask is since a rule can fire to give a default) or an external output ! newContext.takeValueForKey("csv","forcedSubTask"); ! newContext.takeValueForKey(context.valueForKey("pageName"),"existingPageName"); ! newContext.takeValueForKey(context.valueForKey("subTask"),"existingSubTask"); ! newContext.takeValueForKey(context.valueForKey("pageConfiguration"),"pageConfiguration"); ! newContext.takeValueForKey(context.entity(),"entity"); ! WOComponent result=WOApplication.application().pageWithName((String)newContext.valueForKey("pageName"),session.context()); ! ((D2WPage)result).setLocalContext(newContext); ! return result; } ! // MOVEME: ERD2WFactory public static WOComponent pageForTaskSubTaskAndEntityNamed(String task, String subtask, String entityName, WOSession session) { ! D2WContext newContext=new D2WContext(session); ! newContext.setTask(task); ! newContext.setEntity(EOModelGroup.defaultGroup().entityNamed(entityName)); ! newContext.takeValueForKey(subtask, "subTask"); ! WOComponent result=WOApplication.application().pageWithName((String)newContext.valueForKey("pageName"),session.context()); ! ((D2WPage)result).setLocalContext(newContext); ! return result; } ! // MOVEME: ERD2WFactory ! public static QueryPageInterface queryPageWithFetchSpecificationForEntityNamed(String fsName, String entityName, WOSession s) { ! WOComponent result= pageForTaskSubTaskAndEntityNamed("query", "fetchSpecification", entityName,s); ! result.takeValueForKey(fsName, "fetchSpecificationName"); ! return (QueryPageInterface)result; } ! public static WOComponent errorPageForException(Throwable e, WOSession s) { ! ErrorPageInterface epi=D2W.factory().errorPage(s); ! epi.setMessage(ERXUtilities.stackTrace(e)); ! epi.setNextPage(s.context().page()); ! return (WOComponent)epi; } --- 245,271 ---- } ! /** @deprecated use ERD2WFactory.erFactory().printerFriendlyPageForD2WContext(D2WContext context, WOSession session)*/ public static WOComponent printerFriendlyPageForD2WContext(D2WContext context, WOSession session) { ! return ERD2WFactory.erFactory().printerFriendlyPageForD2WContext(context, session); } ! /** @deprecated use ERD2WFactory.erFactory().csvExportPageForD2WContext(D2WContext context, WOSession session)*/ public static WOComponent csvExportPageForD2WContext(D2WContext context, WOSession session) { ! return ERD2WFactory.erFactory().csvExportPageForD2WContext(context, session); } ! /** @deprecated use ERD2WFactory.erFactory().pageForTaskSubTaskAndEntityNamed(String task, String subtask, String entityName, WOSession session)*/ public static WOComponent pageForTaskSubTaskAndEntityNamed(String task, String subtask, String entityName, WOSession session) { ! return ERD2WFactory.erFactory().pageForTaskSubTaskAndEntityNamed(task, subtask, entityName, session); } ! /** @deprecated use ERD2WFactory.erFactory().queryPageWithFetchSpecificationForEntityNamed(String fsName, String entityName, WOSession session)*/ ! public static QueryPageInterface queryPageWithFetchSpecificationForEntityNamed(String fsName, String entityName, WOSession session) { ! return ERD2WFactory.erFactory().queryPageWithFetchSpecificationForEntityNamed(fsName, entityName, session); } ! /** @deprecated use ERD2WFactory.erFactory().errorPageForException(Throwable e, WOSession session)*/ ! public static WOComponent errorPageForException(Throwable e, WOSession session) { ! return ERD2WFactory.erFactory().errorPageForException(e, session); } Index: ERDPrinterButton.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERDirectToWeb/Sources/er/directtoweb/ERDPrinterButton.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** ERDPrinterButton.java 2 Sep 2003 02:34:12 -0000 1.6 --- ERDPrinterButton.java 28 Sep 2003 19:42:13 -0000 1.7 *************** *** 36,40 **** dummyContext.setTask("inspect"); ! result=ERDirectToWeb.printerFriendlyPageForD2WContext(dummyContext,session()); ((EditPageInterface)result).setObject(object()); } else { --- 36,40 ---- dummyContext.setTask("inspect"); ! result=ERD2WFactory.erFactory().printerFriendlyPageForD2WContext(dummyContext,session()); ((EditPageInterface)result).setObject(object()); } else { *************** *** 48,52 **** public WOComponent editPrinterFriendlyVersion() { ! WOComponent result=ERDirectToWeb.printerFriendlyPageForD2WContext(d2wContext(),session()); ((EditPageInterface)result).setObject(object()); return result; --- 48,52 ---- public WOComponent editPrinterFriendlyVersion() { ! WOComponent result=ERD2WFactory.erFactory().printerFriendlyPageForD2WContext(d2wContext(),session()); ((EditPageInterface)result).setObject(object()); return result; |