mardi 19 septembre 2017

Why last checkBox is selected when I select some checkBox from TreeView(GWT)?

Hello I am developing a GWT app where I am using Tree and TreeItem with CheckBoxes. I have some Trees with checkBoxes(rootCheckBoxes are called), and in every Tree some TreeItems with checkBoxes(treeItemCheckBoxes are called). But when I click on any of treeItemCheckBoxes(does not matter on which and from which Tree) I always have checked last treeItemCheckBox from last TreeItem. This is my code:

GWT_DOMAIN_SERVICE.findAll(new AsyncCallback<List<GwtDomain>>() {

        @Override
        public void onFailure(Throwable caught) {
            exitMessage = MSGS.dialogAddPermissionErrorDomains(caught.getLocalizedMessage());
            exitStatus = false;
            hide();
        }

        @Override
        public void onSuccess(List<GwtDomain> result) {



            for (final GwtDomain gwtDomain : result) {
                GWT_DOMAIN_SERVICE.findActionsByDomainName(gwtDomain.name(), new AsyncCallback<List<GwtAction>>() {

                    @Override
                    public void onFailure(Throwable caught) {
                        exitMessage = MSGS.dialogAddPermissionErrorActions(caught.getLocalizedMessage());
                        exitStatus = false;
                        hide();
                    }

                    @Override
                    public void onSuccess(List<GwtAction> result) {
                        rootCheckBox = new CheckBox();
                        rootCheckBox.setBoxLabel(gwtDomain.toString());
                        rootTreeItem = new TreeItem(rootCheckBox);
                        for (final GwtAction gwtAction : result) {

                            treeItemCheckox = new CheckBox();
                            treeItem =  new TreeItem(treeItemCheckox);
                            treeItemCheckox.setBoxLabel(gwtAction.toString());

                            rootTreeItem.addItem(treeItem);

                            t.addItem(rootTreeItem);

                            treeItemCheckox.addListener(Events.OnClick, new Listener<BaseEvent>() {

                                @Override
                                public void handleEvent(BaseEvent be) {

                                    treeItemCheckox.setValue(true);
                                    if (treeItemCheckox.getValue()) {
                                        childCheckBoxMapList.put(gwtAction, treeItemCheckox);
                                    }
                                }
                            });

                        }

                        rootCheckBoxMapList.put(gwtDomain, rootCheckBox);

                    }

                });

            }

        }
    });

Could someone helps me and says how to fix that? Thanks in advance.

Aucun commentaire:

Enregistrer un commentaire