> hope this helps some, or at least not make things worse :)
He he...
Yeah, thank you.
Is there any way of telling easily which components are stateful (and
therefore need models) and which are not?
On Tue, 2006-09-05 at 00:19 -0700, Igor Vaynberg wrote:
> models are needed because components are stateful. if a component
> lives across requests and data changes the component needs a way to
> display fresh data. this is where the models come in - they allow a
> component to retrieve fresh data.
>
> consider the listview - in populate item you create a bunch of labels.
> in the end of request all these labels are disacarded and in the
> beginning of the request these labels are recreated. no need for
> models there because a label doesnt live across requests.
>
> now consider the same listview but with reuseitems set to true - that
> means that a label created in populateitem() can potentially live
> across a few requests. now consider this listview is showing a list of
> usernames. at the top of the list is "Bob". user1 is looking at the
> list of users, meanwhile user2 renames "Bob" to "Rob". user1 refreshes
> the page - now if the label used to show the username had no model
> that can refresh itself it would still show "Bob", but if a label had
> a detachable model it would show "Rob" because on the later request
> model.getObject() would return the updated value because it would
> requery the database.
>
> hope this helps some, or at least not make things worse :)
>
> -Igor
>
>
>
>
> On 9/4/06, David Leangen <[EMAIL PROTECTED]> wrote:
>
> You're absolutely right! That worked. Thanks!
>
> I guess I still don't understand when models need to be used
> and when
> simple values are ok.
>
>
> Can somebody explain this to me, or point out some docs?
>
>
> Thank you!
>
>
>
>
> On Tue, 2006-09-05 at 12:13 +0530, karthik Guru wrote:
> > I think having a PropertyModel to access 'isSuccessful'
> seems complicated.
> > May be something like this ?
> >
> > public class TestLabel extends Label {
> >
> > boolean isSuccessful;
> >
> > public TestLabel( final String id, final String
> label,boolean isSuccessful){
> > super( id, label);
> > this.isSuccessful= isSuccessful;
> > }
> >
> > @Override
> > protected void onComponentTag( final ComponentTag tag ){
> > super.onComponentTag( tag );
> > final ValueMap map = tag.getAttributes ();
> > map.put( "class", getLabelTagClass( isSuccessful ) );
> > }
> > }
> >
> > On 9/5/06, David Leangen <[EMAIL PROTECTED]> wrote:
> > >
> > > This is exactly what I need. Thanks!
> > >
> > > Now, to make the code a bit cleaner in my repeater, I'd
> like to subclass
> > > Label, overriding the onComponentTag(ComponentTag) method.
> I'm a big
> > > confused again regarding models...
> > >
> > > This is the mess I created, which does not work. The part
> that confuses
> > > me the most is the use of the property model in the
> subclasses Label.
> > >
> > >
> > > public class TestLabel
> > > extends Label
> > > {
> > > private static final long serialVersionUID = 1L;
> > > private PropertyModel m_isSuccessfulPropertyModel;
> > >
> > > public TestLabel( final String id, final String label,
> final
> > > PropertyModel propModel )
> > > {
> > > super( id, label );
> > > m_isSuccessfulPropertyModel = propModel;
> > > }
> > >
> > > @Override
> > > protected void onComponentTag( final ComponentTag
> tag )
> > > {
> > > super.onComponentTag( tag );
> > > final ValueMap map = tag.getAttributes();
> > > final boolean isSuccessful =
> > > (Boolean)m_isSuccessfulPropertyModel.getObject( this );
> > > map.put( "class",
> getLabelTagClass( isSuccessful ) );
> > > }
> > > }
> > >
> > >
> > > And I populate my item in the repeater like this.
> > >
> > > add(
> > > new DataView( "testResults", new
> > > TestResultDataProvider( testResults ) )
> > > {
> > > private static final long serialVersionUID = 1L;
> > > private boolean m_isSuccessful = true;
> > >
> > > public void populateItem( final Item item )
> > > {
> > > final TestResult testResult =
> (TestResult)item.getModelObject();
> > > final boolean isSuccessful =
> testResult.isSuccessful();
> > > setSuccessful( isSuccessful );
> > > final PropertyModel isSuccessfulPropertyModel =
> new
> > > PropertyModel( this, "isSuccessful" );
> > > final Date lastTimeExecuted = new
> > > Date( testResult.getLastTimeExecuted () );
> > > final Long testDuration =
> testResult.getExecutionTime();
> > > item.add( new TestLabel( "test.name",
> testResult.getName(),
> > > isSuccessfulPropertyModel ) );
> > > }
> > >
> > > public void setSuccessful( final boolean
> isSuccessful )
> > > {
> > > m_isSuccessful = isSuccessful;
> > > }
> > >
> > > public boolean isSuccessful()
> > > {
> > > return m_isSuccessful;
> > > }
> > > }
> > > );
> > >
> > >
> > > What am I missing here?
> > >
> > >
> > >
> > >
> > > On Mon, 2006-09-04 at 19:17 -0700, Igor Vaynberg wrote:
> > > > you can either override oncomponenttag(ComponentTag tag)
> > > > { tag.getAttributes().get/put } or add a behavior to the
> component -
> > > > namely an (Simple)AttributeModifier.
> > > >
> > > > -Igor
> > > >
> > > >
> > > > On 9/4/06, David Leangen <[EMAIL PROTECTED]> wrote:
> > > >
> > > > Could somebody please point me to an example or
> reference on
> > > > how to
> > > > dynamically change tag attributes? I don't
> recall offhand.
> > > >
> > > > I'm trying to do something like this:
> > > >
> > > > If no error:
> > > > <span class="noerr">Righto!</span>
> > > >
> > > > Or if error:
> > > > <span class="err">Sorry, try again!</span>
> > > >
> > > >
> > > > Thanks!
> > > >
> > > >
> > > >
> > > >
>
> -------------------------------------------------------------------------
> > > > Using Tomcat but need to do more? Need to
> support web
> > > > services, security?
> > > > Get stuff done quickly with pre-integrated
> technology to make
> > > > your job easier
> > > > Download IBM WebSphere Application Server
> v.1.0.1 based on
> > > > Apache Geronimo
> > > >
>
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> > > > _______________________________________________
> > > > Wicket-user mailing list
> > > > [email protected]
> > > >
> https://lists.sourceforge.net/lists/listinfo/wicket-user
> > > >
> > > >
>
> -------------------------------------------------------------------------
> > > > Using Tomcat but need to do more? Need to support web
> services, security?
> > > > Get stuff done quickly with pre-integrated technology to
> make your job easier
> > > > Download IBM WebSphere Application Server v.1.0.1 based
> on Apache Geronimo
> > > >
>
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> > > > _______________________________________________
> Wicket-user mailing list [email protected]
> https://lists.sourceforge.net/lists/listinfo/wicket-user
> > >
> > >
> > >
>
> -------------------------------------------------------------------------
> > > Using Tomcat but need to do more? Need to support web
> services, security?
> > > Get stuff done quickly with pre-integrated technology to
> make your job easier
> > > Download IBM WebSphere Application Server v.1.0.1 based on
> Apache Geronimo
> > >
>
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> > > _______________________________________________
> > > Wicket-user mailing list
> > > [email protected]
> > > https://lists.sourceforge.net/lists/listinfo/wicket-user
> > >
> >
> >
>
>
>
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web
> services, security?
> Get stuff done quickly with pre-integrated technology to make
> your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on
> Apache Geronimo
>
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> Wicket-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________ Wicket-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/wicket-user
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user