Hi Daniel,<div><br></div><div>Validation is not supposed to occur when going backwards.</div><div><br></div><div>One would go backwards typically to correct a mistake made, or to tune parameters at a previous step to make the current step run better.  The user would often be midway through a step before deciding to go backwards - you wouldn't want to make them "pass" that step before you can go back.</div>
<div><br></div><div>Imagine this example workflow:</div><div>1) Image sharpening - tune parameters and perform edge enhancement - validation is that parameters are ok</div><div>2) Segmentation - tune segmentation parameters and perform segmentation - validation is that an output label map exists and has some specific properties</div>
<div>3) Do something with the label map.</div><div><br></div><div>If you are on step 2, and tried some segmentations that didn't produce valid label maps, you might decide to go back to step 1 and do some more sharpening.  You wouldn't want to have to validate step 2 before going back to step 1.</div>
<div><br></div><div>So - if you have a specific usecase where it makes sense to validate when going backwards, you would have to modify your onExit() for that step - and make sure that the validation passed before going backwards.  It'll likely require a bit of work.  I'd make sure that it truly makes sense to validate going backwards in your workflow.</div>
<div><br></div><div>Hope that helps - please let me know if anything is still unclear.</div><div><br></div><div>Thanks,<br><br>Danielle</div><div><br></div><div><br></div><div><br></div><div><br><div class="gmail_quote">On Thu, Jul 21, 2011 at 4:44 PM, Daniel Haehn <span dir="ltr"><<a href="mailto:haehn@bwh.harvard.edu" target="_blank">haehn@bwh.harvard.edu</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Stephen,<br>
<br>
sorry for the confusion :)<br>
<br>
The validate() method considers only the current step. Going backwards<br>
or forwards should only be possible if validation succeeds. If<br>
validation fails the input can be fixed in the current step. This<br>
means you can never get stuck.<br>
<br>
For now, I will call validate() on the onExit() method. This will work<br>
temporary for me.<br>
<br>
Thx,<br>
Daniel<br>
<br>
On Thu, Jul 21, 2011 at 4:34 PM, Stephen Aylward<br>
<div><div></div><div><<a href="mailto:stephen.aylward@kitware.com" target="_blank">stephen.aylward@kitware.com</a>> wrote:<br>
> Hi,<br>
><br>
> Ok - I might not be following this - let me check on the call sequence....<br>
><br>
> s<br>
><br>
> On Thu, Jul 21, 2011 at 4:23 PM, Daniel Haehn <<a href="mailto:haehn@bwh.harvard.edu" target="_blank">haehn@bwh.harvard.edu</a>> wrote:<br>
>> Hi Stephen,<br>
>><br>
>> I think the validate() method should only validate the current step.<br>
>> Then you would be stuck at a step before you fix the input before you<br>
>> can go back or forward. This would make sense to me.<br>
>><br>
>> Daniel<br>
>><br>
>> On Thu, Jul 21, 2011 at 4:16 PM, Stephen Aylward<br>
>> <<a href="mailto:stephen.aylward@kitware.com" target="_blank">stephen.aylward@kitware.com</a>> wrote:<br>
>>> Validating when going backwards seems odd to me.   It might result in<br>
>>> getting stuck in a state from which you cannot exit because of<br>
>>> something done in a previous state which you cannot fix since you<br>
>>> cannot go back to the previous state.<br>
>>><br>
>>> Maybe there should be a "StepBack" function that is called - and in<br>
>>> your case it could call "validate"?<br>
>>><br>
>>> s<br>
>>><br>
>>> On Thu, Jul 21, 2011 at 4:12 PM, Daniel Haehn <<a href="mailto:haehn@bwh.harvard.edu" target="_blank">haehn@bwh.harvard.edu</a>> wrote:<br>
>>>> Hi guys,<br>
>>>><br>
>>>> I am working on a wizard using a ctkWorkflow and the corresponding<br>
>>>> widget in Python.<br>
>>>><br>
>>>> It seems that the validate() function of a step is only executed when<br>
>>>> going forward in the workflow. E.g. when I go back from step2 to<br>
>>>> step1, the validation code is skipped.<br>
>>>><br>
>>>> Is this correct or am I doing something wrong? I think it would make<br>
>>>> sense to validate anytime one exists the step.<br>
>>>><br>
>>>> Cheers,<br>
>>>> Daniel<br>
>>>> _______________________________________________<br>
>>>> Ctk-developers mailing list<br>
>>>> <a href="mailto:Ctk-developers@commontk.org" target="_blank">Ctk-developers@commontk.org</a><br>
>>>> <a href="http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers" target="_blank">http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers</a><br>
>>>><br>
>>><br>
>>><br>
>>><br>
>>> --<br>
>>><br>
>>> ==============================<br>
>>> Stephen R. Aylward, Ph.D.<br>
>>> Director of Medical Imaging Research<br>
>>> Kitware, Inc. - North Carolina Office<br>
>>> <a href="http://www.kitware.com" target="_blank">http://www.kitware.com</a><br>
>>> stephen.aylward (Skype)<br>
>>> <a href="tel:%28919%29%20969-6990%20x300" value="+19199696990" target="_blank">(919) 969-6990 x300</a><br>
>>><br>
>><br>
><br>
><br>
><br>
> --<br>
><br>
> ==============================<br>
> Stephen R. Aylward, Ph.D.<br>
> Director of Medical Imaging Research<br>
> Kitware, Inc. - North Carolina Office<br>
> <a href="http://www.kitware.com" target="_blank">http://www.kitware.com</a><br>
> stephen.aylward (Skype)<br>
> <a href="tel:%28919%29%20969-6990%20x300" value="+19199696990" target="_blank">(919) 969-6990 x300</a><br>
><br>
_______________________________________________<br>
Ctk-developers mailing list<br>
<a href="mailto:Ctk-developers@commontk.org" target="_blank">Ctk-developers@commontk.org</a><br>
<a href="http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers" target="_blank">http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Danielle Pace, M.ESc.<br>Research and Development Engineer<br>Kitware Inc.,<br>North Carolina Office<div><br></div><div><a href="http://www.kitware.com" target="_blank">www.kitware.com</a></div>

<div><a href="tel:919-969-6990%20X%20319" value="+19199696990" target="_blank">919-969-6990 X 319</a></div><br>
</div>