I have a list view that will have a button on the left to expand or contract
a section that starts out hidden. this section will have some additional
details. Code and HTML below.
When I click the button, the event arrives in my onActivityLogExpansion, and
the wicket ajax debug control turns red. The log says the following, that I
did not setOutputMarkupdId to true. But I did as you can see in the code.
INFO: focus set on ui-id-3
INFO: focus removed from ui-id-3
INFO: focus set on btnExpander8
INFO: focus removed from btnExpander8
INFO: Received ajax response (771 characters)
INFO:
<?xml version="1.0" encoding="UTF-8"?><ajax-response><component
id="expandable17" ></component></ajax-response>
ERROR: Wicket.Ajax.Call.processComponent: Component with id [[expandable17]]
was not found while trying to perform markup update. Make sure you called
component.setOutputMarkupId(true) on the component whose markup you are
trying to update.
INFO: Response processed successfully.
INFO: refocus last focused component not needed/allowed
INFO: focus set on btnExpander8
INFO: focus removed from btnExpander8
INFO: focus set on wicketDebugLink
INFO: focus removed from wicketDebugLink
CODE:
PropertyListView<ShareActivityPlusDecode> activityLog = new
PropertyListView<ShareActivityPlusDecode>("activityLog", activities) {
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(ListItem<ShareActivityPlusDecode>
item)
{
ShareActivityPlusDecode activity =
(ShareActivityPlusDecode)
item.getDefaultModelObject();
item.add(new Label("CREATION_TIMESTAMP"));
item.add(new Label("ACTIVITY_DC"));
item.add(new ExternalLink("mailTo", "mailto:" +
activity.getEMAIL_ADR()).add(new Label("CREATED_BY_USER_ID")));
item.add(new Label("USER_PH"));
item.add(new AjaxButton("btnExpander"){
private static final long
serialVersionUID = 1L;
public void onSubmit(AjaxRequestTarget
target, Form form) {
WebMarkupContainer wmc =
(WebMarkupContainer)
this.getParent().get("expandable");
onActivityLogExpansion(target,
wmc, this);
}
}).setOutputMarkupId(true);
WebMarkupContainer expandable = new
WebMarkupContainer("expandable", new
Model<ShareActivityPlusDecode>((ShareActivityPlusDecode)
item.getDefaultModel().getObject()));
expandable.add(new
Label("EMAIL_ADR").setOutputMarkupId(true));
expandable.add(new
Label("COMMENT").setOutputMarkupId(true));
boolean reject =
item.getModelObject().getACTIVITY_CD().equals(ACTIVITY_REJECT) ||
item.getModelObject().getACTIVITY_CD().equals(ACTIVITY_PENDING_AMENDMENT);
expandable.add(new Label("rejectionReasons", new
Model<String>("")).setVisible(reject).setEnabled(reject).setOutputMarkupId(true));
expandable.setVisible(false);
expandable.setOutputMarkupId(true);
item.add(expandable);
}
};
logForm.add(activityLog);
[...]
private void onActivityLogExpansion(AjaxRequestTarget target,
WebMarkupContainer wmc, AjaxButton invokingButton) {
Label rejectionReasons = (Label) wmc.get("rejectionReasons");
ShareActivityPlusDecode activity = (ShareActivityPlusDecode)
wmc.getDefaultModelObject();
if(rejectionReasons.isEnabled() &&
rejectionReasons.getDefaultModelObjectAsString().length()==0) {
//populate rejection reasons as this is a rejection
activity and the
value isn't set yet
List<String> reasonDecodes =
this.sharingService.fetchRejectionReasons(activity.getACTIVITY_CD());
StringBuilder sb = new StringBuilder();
for(String reason:reasonDecodes)
sb.append(reason).append(", ");
if(sb.length()>=2)
sb.delete(sb.length()-2, sb.length());
Model<String> model = (Model<String>)
rejectionReasons.getDefaultModel();
model.setObject(sb.toString());
}
wmc.setVisible(!wmc.isVisible());
target.add(wmc);
if(wmc.isVisible())
invokingButton.setLabel(new Model<String>("-"));
else
invokingButton.setLabel(new Model<String>("+"));
}
HTML:
Date
Activity
Request Decision
User Phone
<wicket:container wicket:id="activityLog">
<input type="button"
wicket:id="btnExpander" value="+">
01/10/2014
01/15/2014
<span wicket:id="CREATED_BY_USER_ID">
<#>
Rejected-Pending Amendment
Rejected-Pending Amendment
<wicket:container wicket:id="expandable">
<label>Email:</label>
<label>Rejection
Reasons:</label>
<label>Comments:</label>
</wicket:container>
</wicket:container>
--
View this message in context:
http://apache-wicket.1842946.n4.nabble.com/Expandable-section-in-ListView-tp4665014.html
Sent from the Users forum mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]