[Ctk-developers] ctkWorkflow validate does not get called when going back

Danielle Pace danielle.pace at kitware.com
Fri Jul 22 11:30:44 EDT 2011


Hi Daniel,

Validation is not supposed to occur when going backwards.

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.

Imagine this example workflow:
1) Image sharpening - tune parameters and perform edge enhancement -
validation is that parameters are ok
2) Segmentation - tune segmentation parameters and perform segmentation -
validation is that an output label map exists and has some specific
properties
3) Do something with the label map.

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.

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.

Hope that helps - please let me know if anything is still unclear.

Thanks,

Danielle




On Thu, Jul 21, 2011 at 4:44 PM, Daniel Haehn <haehn at bwh.harvard.edu> wrote:

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



-- 
Danielle Pace, M.ESc.
Research and Development Engineer
Kitware Inc.,
North Carolina Office

www.kitware.com
919-969-6990 X 319
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/ctk-developers/attachments/20110722/6a03d979/attachment.html>


More information about the Ctk-developers mailing list