Hi,
try to setOutputMarkupPlaceholderTag(true) on your expandable, otherwise
your component doesn't render at all when setVisible(false)...
Bye
Stef
Entropy wrote:
> 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]
>
--
im Auftrag der eFonds Solutions AG, +49-89-579494-3417
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]