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: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to