On 28 June 2014 15:37, Markus Bozem <[email protected]> wrote: > Hello, > > Isn´t it possible to create a transient instance and display it, so the > user can fill it out and save it? > > public Country createCountry() > { > Country country = container.newTransientInstance(Country.class) ; > return country ; > } > > Nope... because we need the object to be persistent in order to derive a stable Id. We avoid using things like the HttpSession so that Isis' architecture is nominally stateless (not so relevant for the Wicket viewer itself, of course, but is for the Restful Objects viewer).
I don´t want to implement the logic for dependent drop boxes, field names > in a view (action) and the entity object. > > Or: > > Can I return a persistent object and open it directly in edit mode? > > Not either (though might be a feature worth considering). Raise a ticket if you wish [1] Right now, the best we can offer is that you write a viewModel and implement both ViewModel and also ViewModel.Cloneable. This will have the effect you are after. Note that this is newly implemented, so requires Isis to be built from source [2] and then update your pom to reference 1.6.0-SNAPSHOT instead of 1.5.0. I use this feature for the Wizard feature I implemented recently [3] Cheers Dan [1] https://issues.apache.org/jira/browse/ISIS [2] https://isis.apache.org/contributors/building-isis.html [3] http://github.com/danhaywood/isis-wicket-wizard > With this code I get: > > . org.apache.wicket.WicketRuntimeException > . Error attaching this container for rendering: [EntityCombinedPanel > [Component id = entity-0]] > . > org.apache.wicket.MarkupContainer#onBeforeRenderChildren(MarkupContainer.java:1693) > . org.apache.wicket.Component#onBeforeRender(Component.java:3844) > . org.apache.wicket.Component#internalBeforeRender(Component.java:923) > . org.apache.wicket.Component#beforeRender(Component.java:991) > . > org.apache.wicket.MarkupContainer#onBeforeRenderChildren(MarkupContainer.java:1681) > . org.apache.wicket.Component#onBeforeRender(Component.java:3844) > . org.apache.wicket.Component#internalBeforeRender(Component.java:923) > . org.apache.wicket.Component#beforeRender(Component.java:991) > . > org.apache.wicket.MarkupContainer#onBeforeRenderChildren(MarkupContainer.java:1681) > . org.apache.wicket.Component#onBeforeRender(Component.java:3844) > . org.apache.wicket.Component#internalBeforeRender(Component.java:923) > . org.apache.wicket.Component#beforeRender(Component.java:991) > . > org.apache.wicket.MarkupContainer#onBeforeRenderChildren(MarkupContainer.java:1681) > . org.apache.wicket.Component#onBeforeRender(Component.java:3844) > . org.apache.wicket.Page#onBeforeRender(Page.java:798) > . > org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage#onBeforeRender(EntityPage.java:143) > . org.apache.wicket.Component#internalBeforeRender(Component.java:923) > . org.apache.wicket.Component#beforeRender(Component.java:991) > . org.apache.wicket.Component#internalPrepareForRender(Component.java:2214) > . org.apache.wicket.Page#internalPrepareForRender(Page.java:241) > . org.apache.wicket.Component#render(Component.java:2303) > . org.apache.wicket.Page#renderPage(Page.java:1010) > . > org.apache.wicket.request.handler.render.WebPageRenderer#renderPage(WebPageRenderer.java:121) > . > org.apache.wicket.request.handler.render.WebPageRenderer#respond(WebPageRenderer.java:219) > . > org.apache.wicket.core.request.handler.RenderPageRequestHandler#respond(RenderPageRequestHandler.java:165) > . > org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor#respond(RequestCycle.java:861) > . > org.apache.wicket.request.RequestHandlerStack#execute(RequestHandlerStack.java:64) > . > org.apache.wicket.request.cycle.RequestCycle#execute(RequestCycle.java:261) > . > org.apache.wicket.request.cycle.RequestCycle#processRequest(RequestCycle.java:218) > . > org.apache.wicket.request.cycle.RequestCycle#processRequestAndDetach(RequestCycle.java:289) > . > org.apache.wicket.protocol.http.WicketFilter#processRequestCycle(WicketFilter.java:259) > . > org.apache.wicket.protocol.http.WicketFilter#processRequest(WicketFilter.java:201) > . > org.apache.wicket.protocol.http.WicketFilter#doFilter(WicketFilter.java:282) > . > org.mortbay.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1212) > . > org.apache.shiro.web.servlet.AbstractShiroFilter#executeChain(AbstractShiroFilter.java:449) > . > org.apache.shiro.web.servlet.AbstractShiroFilter$1#call(AbstractShiroFilter.java:365) > . > org.apache.shiro.subject.support.SubjectCallable#doCall(SubjectCallable.java:90) > . > org.apache.shiro.subject.support.SubjectCallable#call(SubjectCallable.java:83) > . > org.apache.shiro.subject.support.DelegatingSubject#execute(DelegatingSubject.java:383) > . > org.apache.shiro.web.servlet.AbstractShiroFilter#doFilterInternal(AbstractShiroFilter.java:362) > . > org.apache.shiro.web.servlet.OncePerRequestFilter#doFilter(OncePerRequestFilter.java:125) > . > org.mortbay.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1212) > . org.mortbay.jetty.servlet.ServletHandler#handle(ServletHandler.java:399) > . > org.mortbay.jetty.security.SecurityHandler#handle(SecurityHandler.java:216) > . org.mortbay.jetty.servlet.SessionHandler#handle(SessionHandler.java:182) > . org.mortbay.jetty.handler.ContextHandler#handle(ContextHandler.java:766) > . org.mortbay.jetty.webapp.WebAppContext#handle(WebAppContext.java:450) > . org.mortbay.jetty.handler.HandlerWrapper#handle(HandlerWrapper.java:152) > . org.mortbay.jetty.Server#handle(Server.java:326) > . org.mortbay.jetty.HttpConnection#handleRequest(HttpConnection.java:542) > . > org.mortbay.jetty.HttpConnection$RequestHandler#headerComplete(HttpConnection.java:928) > . org.mortbay.jetty.HttpParser#parseNext(HttpParser.java:549) > . org.mortbay.jetty.HttpParser#parseAvailable(HttpParser.java:212) > . org.mortbay.jetty.HttpConnection#handle(HttpConnection.java:404) > . > org.mortbay.jetty.bio.SocketConnector$Connection#run(SocketConnector.java:228) > . > org.mortbay.thread.QueuedThreadPool$PoolThread#run(QueuedThreadPool.java:582) > . java.lang.IllegalArgumentException > . Object 'Untitled Country' is not persistent. > . > org.apache.isis.viewer.wicket.ui.components.entity.EntityActionLinkFactory#newLink(EntityActionLinkFactory.java:61) > . > org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuItem#newSubMenuItem(CssMenuItem.java:283) > . > org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuBuilder#addMenuItemForAction(CssMenuBuilder.java:146) > . > org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuBuilder#addMenuItem(CssMenuBuilder.java:127) > . > org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuBuilder#addMenuItemsForActionsOfType(CssMenuBuilder.java:119) > . > org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuBuilder#addMenuItems(CssMenuBuilder.java:88) > . > org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuBuilder#buildPanel(CssMenuBuilder.java:76) > . > org.apache.isis.viewer.wicket.ui.components.entity.header.EntityHeaderPanel#buildEntityActionsGui(EntityHeaderPanel.java:116) > . > org.apache.isis.viewer.wicket.ui.components.entity.header.EntityHeaderPanel#buildGui(EntityHeaderPanel.java:97) > . > org.apache.isis.viewer.wicket.ui.components.entity.header.EntityHeaderPanel#onBeforeRender(EntityHeaderPanel.java:91) > . org.apache.wicket.Component#internalBeforeRender(Component.java:923) > . org.apache.wicket.Component#beforeRender(Component.java:991) > . > org.apache.wicket.MarkupContainer#onBeforeRenderChildren(MarkupContainer.java:1681) > . org.apache.wicket.Component#onBeforeRender(Component.java:3844) > . org.apache.wicket.Component#internalBeforeRender(Component.java:923) > . org.apache.wicket.Component#beforeRender(Component.java:991) > . > org.apache.wicket.MarkupContainer#onBeforeRenderChildren(MarkupContainer.java:1681) > . org.apache.wicket.Component#onBeforeRender(Component.java:3844) > . org.apache.wicket.Component#internalBeforeRender(Component.java:923) > . org.apache.wicket.Component#beforeRender(Component.java:991) > . > org.apache.wicket.MarkupContainer#onBeforeRenderChildren(MarkupContainer.java:1681) > . org.apache.wicket.Component#onBeforeRender(Component.java:3844) > . org.apache.wicket.Component#internalBeforeRender(Component.java:923) > . org.apache.wicket.Component#beforeRender(Component.java:991) > . > org.apache.wicket.MarkupContainer#onBeforeRenderChildren(MarkupContainer.java:1681) > . org.apache.wicket.Component#onBeforeRender(Component.java:3844) > . org.apache.wicket.Page#onBeforeRender(Page.java:798) > . > org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage#onBeforeRender(EntityPage.java:143) > . org.apache.wicket.Component#internalBeforeRender(Component.java:923) > . org.apache.wicket.Component#beforeRender(Component.java:991) > . org.apache.wicket.Component#internalPrepareForRender(Component.java:2214) > . org.apache.wicket.Page#internalPrepareForRender(Page.java:241) > . org.apache.wicket.Component#render(Component.java:2303) > . org.apache.wicket.Page#renderPage(Page.java:1010) > . > org.apache.wicket.request.handler.render.WebPageRenderer#renderPage(WebPageRenderer.java:121) > . > org.apache.wicket.request.handler.render.WebPageRenderer#respond(WebPageRenderer.java:219) > . > org.apache.wicket.core.request.handler.RenderPageRequestHandler#respond(RenderPageRequestHandler.java:165) > . > org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor#respond(RequestCycle.java:861) > . > org.apache.wicket.request.RequestHandlerStack#execute(RequestHandlerStack.java:64) > . > org.apache.wicket.request.cycle.RequestCycle#execute(RequestCycle.java:261) > . > org.apache.wicket.request.cycle.RequestCycle#processRequest(RequestCycle.java:218) > . > org.apache.wicket.request.cycle.RequestCycle#processRequestAndDetach(RequestCycle.java:289) > . > org.apache.wicket.protocol.http.WicketFilter#processRequestCycle(WicketFilter.java:259) > . > org.apache.wicket.protocol.http.WicketFilter#processRequest(WicketFilter.java:201) > . > org.apache.wicket.protocol.http.WicketFilter#doFilter(WicketFilter.java:282) > . > org.mortbay.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1212) > . > org.apache.shiro.web.servlet.AbstractShiroFilter#executeChain(AbstractShiroFilter.java:449) > . > org.apache.shiro.web.servlet.AbstractShiroFilter$1#call(AbstractShiroFilter.java:365) > . > org.apache.shiro.subject.support.SubjectCallable#doCall(SubjectCallable.java:90) > . > org.apache.shiro.subject.support.SubjectCallable#call(SubjectCallable.java:83) > . > org.apache.shiro.subject.support.DelegatingSubject#execute(DelegatingSubject.java:383) > . > org.apache.shiro.web.servlet.AbstractShiroFilter#doFilterInternal(AbstractShiroFilter.java:362) > . > org.apache.shiro.web.servlet.OncePerRequestFilter#doFilter(OncePerRequestFilter.java:125) > . > org.mortbay.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1212) > . org.mortbay.jetty.servlet.ServletHandler#handle(ServletHandler.java:399) > . > org.mortbay.jetty.security.SecurityHandler#handle(SecurityHandler.java:216) > . org.mortbay.jetty.servlet.SessionHandler#handle(SessionHandler.java:182) > . org.mortbay.jetty.handler.ContextHandler#handle(ContextHandler.java:766) > . org.mortbay.jetty.webapp.WebAppContext#handle(WebAppContext.java:450) > . org.mortbay.jetty.handler.HandlerWrapper#handle(HandlerWrapper.java:152) > . org.mortbay.jetty.Server#handle(Server.java:326) > . org.mortbay.jetty.HttpConnection#handleRequest(HttpConnection.java:542) > . > org.mortbay.jetty.HttpConnection$RequestHandler#headerComplete(HttpConnection.java:928) > . org.mortbay.jetty.HttpParser#parseNext(HttpParser.java:549) > . org.mortbay.jetty.HttpParser#parseAvailable(HttpParser.java:212) > . org.mortbay.jetty.HttpConnection#handle(HttpConnection.java:404) > . > org.mortbay.jetty.bio.SocketConnector$Connection#run(SocketConnector.java:228) > . > org.mortbay.thread.QueuedThreadPool$PoolThread#run(QueuedThreadPool.java:582) > > > Kind regards, > > Markus Bozem > > >
