public SubGoalDialogBox( final Command riksPane, List<GwtSubGoal> allSubGoals, List<GwtSubGoal> curretSelectedSubGoals) { // Set the dialog box's caption. setText(messages.associateGoals()); this.allSubGoals = allSubGoals; this.oldSelectedSubGoals = curretSelectedSubGoals; final VerticalPanel checkBoxContainer = new VerticalPanel(); checkBoxContainer.setSpacing(10); for (GwtSubGoal a : allSubGoals) { SubGoalCheckBox checkBox = new SubGoalCheckBox(); checkBox.setText(a.getDescription()); checkBox.setSubGoalID(a.getId()); if (isCurrentSubGoalSelected(a.getId())) { checkBox.setValue(true); } checkBoxContainer.add(checkBox); } Button ok = new Button(messages.ok()); Button cancel = new Button(messages.cancel()); cancel.setWidth("60px"); ok.setWidth("60px"); FlexTable buttonsTable = new FlexTable(); buttonsTable.setWidth("100%"); buttonsTable.setCellPadding(3); buttonsTable.setWidget(0, 0, ok); buttonsTable.setWidget(0, 1, cancel); buttonsTable .getCellFormatter() .setHorizontalAlignment(0, 0, HasHorizontalAlignment.ALIGN_RIGHT); buttonsTable.getCellFormatter().setHorizontalAlignment(0, 1, HasHorizontalAlignment.ALIGN_LEFT); ok.addClickHandler( new ClickHandler() { public void onClick(ClickEvent event) { loadSelectedSubGoals(checkBoxContainer); riksPane.execute(); SubGoalDialogBox.this.hide(); } }); cancel.addClickHandler( new ClickHandler() { public void onClick(ClickEvent event) { SubGoalDialogBox.this.hide(); } }); checkBoxContainer.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER); checkBoxContainer.add(buttonsTable); setWidget(checkBoxContainer); }
private void loadSelectedSubGoals(VerticalPanel checkBoxContainer) { this.newSelectedSubGoals = new ArrayList<GwtSubGoal>(); for (Widget w : checkBoxContainer) { if (w instanceof SubGoalCheckBox) { SubGoalCheckBox currentSubGoal = (SubGoalCheckBox) w; if (currentSubGoal.getValue() == true) // isChecked { GwtSubGoal gwtSelecteSubGoal = getSubGoalById(currentSubGoal.getSubGoalID()); if (gwtSelecteSubGoal != null) { newSelectedSubGoals.add(gwtSelecteSubGoal); } } } } }