Hi Martin,

he did use AjaxFormChoiceComponentUpdatingBehavior (as seen in the first code snippet).

Too bad we won't know what went wrong here:
You can use multiple AjaxCheckBoxes instead, but it requires much more work.

Have fun
Sven


On 26.01.2017 20:49, Martin Grigorov wrote:
Hi,

On Thu, Jan 26, 2017 at 6:56 PM, SeldonCrisis <[email protected]> wrote:

I just wanted to update this in case anyone else references it in the
future.
While the *Check* fix was a solution to the *"precondition check"* error, I
was still unable to execute the ajax instructions inside the overridden
*"protected void onUpdate(AjaxRequestTarget target){}"* method.

When you use a CheckGroup you have to
use org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior to
receive Ajax notifications when the checkboxes are toggled.


For this reason, I decided to instead use *AjaxCheckBox*, alternatively
implementing all the logic in both overridden *"onUpdate"* methods. I used
an array of Boolean values to represent the values of the Model Objects
since I wouldn't be able to refer to the Model Object of the second
AjaxCheckBox in the onUpdate of the first as it has yet to be instantiated.

*Here's my Java code:*
final Button fileClaimButton;
final CheckBox cb1, cb2;
final boolean[] bArray = {false, false};

fileClaimButton = new AjaxButton("fileClaimButton"){
         private static final long serialVersionUID = 1L;
         @Override
         protected void onSubmit(AjaxRequestTarget target, Form<?> form){
                 System.out.print("File Claim Executed");
         }
};
fileClaimButton.setEnabled(false);
fileClaimButton.setOutputMarkupId(true);
fileClaimButton.setOutputMarkupPlaceholderTag(true);

cb1 = new AjaxCheckBox("cg1-cb1", new Model<Boolean>(false)){
         @Override
         protected void onUpdate(AjaxRequestTarget target) {
                 bArray[0] = getModelObject();
                 if (bArray[0] == true && bArray[1] == true)
                         fileClaimButton.setEnabled(true);
                 else
                         fileClaimButton.setEnabled(false);

                 target.add(fileClaimButton);
         }};

cb2 = new AjaxCheckBox("cg1-cb2", new Model<Boolean>(false)){
         @Override
         protected void onUpdate(AjaxRequestTarget target) {
                 bArray[1] = getModelObject();
                 if (bArray[0] == true &&  bArray[1] == true)
                         fileClaimButton.setEnabled(true);
                 else
                         fileClaimButton.setEnabled(false);

                 target.add(fileClaimButton);
         }};

--
View this message in context: http://apache-wicket.1842946.
n4.nabble.com/Ajax-request-stopped-because-of-precondition-check-on-
CheckGroup-tp4676865p4676880.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]




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to