Have a look at 

https://cwiki.apache.org/confluence/display/WICKET/Listview+with+checkboxes 
<https://cwiki.apache.org/confluence/display/WICKET/Listview+with+checkboxes>

https://www.mkyong.com/wicket/wicket-multiple-checkboxes-example-checkboxmultiplechoice/
 
<https://www.mkyong.com/wicket/wicket-multiple-checkboxes-example-checkboxmultiplechoice/>



François



> Le 19 oct. 2016 à 16:11, ganea iulia <superbiss...@gmail.com> a écrit :
> 
> Hello,
> 
> I have actually made this to work by adding this behaviour to the
> checkgroup:
> 
> group.add(new AjaxFormChoiceComponentUpdatingBehavior() {
>                private static final long serialVersionUID =
> 1654345477970524731L;
> 
>                @Override
>                protected void onUpdate(AjaxRequestTarget target) {
>                    target.add(group);
>                }
> 
>            });
> 
> However, now I face following issue:
> If I replace my ListView component, with a RefreshingView, I cannot check
> any of the checks from the items. I check it, but then it gets unchecked
> right away.
> This is because the RefreshingView repaints its model at every roundtrip to
> the server.
> 
> I have tried this:
> http://stackoverflow.com/questions/12282492/add-row-to-refreshingview-without-repainting-entire-refreshingview
> by setting:
> listOfItems.setItemReuseStrategy(new ReuseIfModelsEqualStrategy());
> 
> But it did not change a thing for me.
> 
> Please guide on how to have a Check for every item of the RepeatingView,
> that can be checked.
> 
> Thank you.
> 
> 
> 
> On Tue, Oct 18, 2016 at 1:28 PM, ganea iulia <superbiss...@gmail.com> wrote:
> 
>> Hi,
>> I have 2 forms.
>> 
>> Bottom form = testForm
>> - I have a listview with checkboxes.
>> As I needed a checkAll control also, I have uses CheckGroup,
>> CheckGroupSelector and Check wicket components.
>> 
>> Top form = testForm0
>> -I have only an link
>> 
>> The use case is the following:
>> I check one item (or all) in bottom form, but then I need to get the
>> selected values when click on link in top form.
>> 
>> The check doesn't do submit so the values are not retained. I alsways get
>> the
>> size = 0 message.
>> 
>> Could you tell me how I can manage this?
>> 
>> Here is the code:
>> =HTML=
>> <form wicket:id="testForm0">
>>   <table class="contenidoform"  cellpadding=1 cellspacing=0 border="0"
>> width="100%">
>> <tr>
>> <th rowspan="3">
>> <a href="#" wicket:id="print"><img src="images/Print.png" title="print"
>> /></a>
>> </th>
>> </tr>
>> </table>
>>    </form>
>> <form wicket:id="testForm">
>> <span wicket:id="group">
>> <table class="contenidoform" cellpadding=1 cellspacing=0 border="0"
>> width="100%">
>> <thead>
>> <tr>
>> <th>Name</th>
>> <th>Code</th>
>> </tr>
>> <tr>
>> <th>Id</th>
>> <th rowspan="3"><input type="checkbox" wicket:id="allCheck" title="check
>> all/uncheck all" /></th>
>> </tr>
>> </thead>
>> <tbody wicket:id="itemsContainer">
>> <wicket:container wicket:id="forEachItem">
>>   <tr >
>> <td wicket:id="itemName"></td>
>> <td wicket:id="itemCode"></td>
>> </tr>
>> <tr>
>> <td wicket:id="itemId"></td>
>> <td ><input type="checkbox" wicket:id="itemCheck" title="check to print"
>> /></td>
>> </tr>
>> </wicket:container>
>>   <tr>
>> <th align="left">&nbsp;</th>
>> <th align="left">
>> <div style="padding-left: 0%;display: inline;" />
>> <a><input type="image" src="images/Save.gif" class="submitButton"
>> name="btnSave" value="OK" /></a>
>> </th>
>>   </tr>
>> </tbody>
>> </table>
>> </span>
>> </form>
>> 
>> 
>> ==JAVA==
>> private static final long serialVersionUID = 311508940740808005L;
>> private static final Logger logger = LogManager.getLogger(TestPage.class);
>> private TestForm tst;
>> 
>> public TestPage(IModel<TestBean> model) {
>> super(model);
>> 
>> TestForm0 tst0 = new TestForm0("testForm0");
>> tst0.setOutputMarkupId(true);
>> add(tst0);
>> tst = new TestForm("testForm", model);
>> tst.setOutputMarkupId(true);
>> add(tst);
>> 
>> }
>> 
>> class TestForm0 extends Form<TestBean> {
>> 
>> /**
>> *
>> */
>> private static final long serialVersionUID = 1L;
>> 
>> public TestForm0(String id) {
>> super(id);
>> 
>> Link<TestadosSN> print = new Link<TestadosSN>("print") {
>> private static final long serialVersionUID = 15L;
>> 
>> @Override
>> public void onClick() {
>> System.out.println("size=" + tst.getCheckedTestBeans().size());
>> }
>> };
>> add(print);
>> }
>> }
>> class TestForm extends Form<TestBean> {
>> /**
>> *
>> */
>> private static final long serialVersionUID = 1L;
>> 
>> private List<TestBean> checkedTestBeans;
>> public List<TestBean> getCheckedTestBeans() {
>> return checkedTestBeans;
>> }
>> 
>> public void setCheckedTestBeans(List<TestBean> checkedTestBeans) {
>> this.checkedTestBeans = checkedTestBeans;
>> }
>> 
>> public TestForm(String id, IModel<TestBean> model) {
>> super(id, model);
>> 
>> checkedTestBeans = new ArrayList<TestBean>();
>> TextField<String> txtName = new TextField<String>("txtName", new
>> PropertyModel<String>(getModelObject(), "name"));
>> add(txtName);
>> txtName.setOutputMarkupId(true);
>> txtName.add(new AjaxFormComponentUpdatingBehavior("change") {
>> private static final long serialVersionUID = 1654345477970524731L;
>> 
>> @Override
>> protected void onUpdate(AjaxRequestTarget target) {
>> target.add(txtName);
>> }
>> 
>> });
>> 
>> SubmitLink clearForm = new SubmitLink("clearForm", this){
>> 
>> /**
>> *
>> */
>> private static final long serialVersionUID = 1L;
>> @Override
>> public void onSubmit() {
>> model.setObject(new TestBean());
>> TestForm.this.clearInput();
>> };
>> };
>> clearForm.setOutputMarkupId(true);
>> add(clearForm);
>> AjaxLink<TestBean> clearLink = new AjaxLink<TestBean>("clearLink", model)
>> {
>> /**
>> *
>> */
>> private static final long serialVersionUID = 1L;
>> 
>> @Override
>> public void onClick(AjaxRequestTarget target) {
>> model.setObject(new TestBean());
>> TestForm.this.clearInput();
>> target.add(TestForm.this);
>> txtName.setConvertedInput("");
>> 
>> }
>> 
>> };
>> clearLink.setOutputMarkupId(true);
>> add(clearLink);
>> ///
>> CheckGroup<TestBean> group = new CheckGroup<TestBean>("group",
>> checkedTestBeans);
>> CheckGroupSelector cgs = new CheckGroupSelector("allCheck");
>> group.add(cgs);
>> List<TestBean> beans = Arrays.asList(new TestBean("Name1", "Code1", 1),
>> new TestBean("Name2", "Code2", 2));
>> final WebMarkupContainer itemsContainer = new WebMarkupContainer("
>> itemsContainer");
>> itemsContainer.setOutputMarkupId(true);
>> itemsContainer.add(new ListView<TestBean>("forEachItem", beans) {
>> /**
>> *
>> */
>> private static final long serialVersionUID = 1L;
>> 
>> @Override
>> protected void populateItem(ListItem<TestBean> item) {
>>  item.add(new Label("itemName", new PropertyModel(item.getModel(),
>> "name")));
>>  item.add(new Label("itemCode", new PropertyModel(item.getModel(),
>> "code")));
>>  item.add(new Label("itemId", new PropertyModel(item.getModel(), "id")));
>>  item.add(new Check<TestBean>("itemCheck", item.getModel(), group));
>> }
>>  });
>> group.add(itemsContainer);
>> add(group);
>> //choice
>> List<String> lst = new ArrayList<String>();
>> lst.add("C1");
>> lst.add("C2");
>> 
>> 
>> ChoiceRenderer<String> renderer = new ChoiceRenderer<String>("code") {
>> 
>> private static final long serialVersionUID = 8875819661197521211L;
>> 
>> @Override
>> public Object getDisplayValue(String arg0) {
>> return (arg0.equals("C1") ? "Code1" : "Code2");
>> }
>> 
>> @Override
>> public String getIdValue(String arg0, int arg1) {
>> return arg0;
>> }
>> 
>> @Override
>> public String getObject(String paramString, IModel<? extends List<?
>> extends String>> paramIModel) {
>> // TODO Auto-generated method stub
>> return paramString;
>> }
>> 
>> };
>> DropDownChoice<String> code = new DropDownChoice<String>("code", lst,
>> renderer);
>> code.setOutputMarkupId(true);
>> code.setModel(new PropertyModel<String>(getModelObject(), "code"));
>> add(code);
>> }
>> 
>> @Override
>> protected void onSubmit() {
>> 
>> logger.info("OnSubmit");
>> System.out.println("size=" + checkedTestBeans.size());
>> 
>> }
>> }
>> 
>> 

Reply via email to