So I assume it would be +0 for everyone?
On 8/10/07, Simon Lessard <[EMAIL PROTECTED]> wrote: > > Hello everybody, > > Currently Trinidad includes a ProcessMenuModel class that contains > undesirable methods. The complete method list (not including inherited ones) > is: > > - public boolean isImmediate() > - public boolean isReadOnly() > - public boolean isVisited() > - public void clearMaxPath() > - public void setMaxPathKey(Object maxPathKey) > - public Object getMaxPathKey() > > The methods involving maxPathKey are the ones annoying me the most. > However, as it's part of the public API we have to keep backward > compatibility as much as possible. Note also that isReadOnly should not > named that way as readOnly support was removed from process classes in favor > of disabled since a readOnly link did not make much sense. > > Anyway, I would rather have the following class structure and method > signatures: > > public abstract class ProcessModel > > - public abstract boolean isDisabled(); > - public abstract boolean isImmediate(); > - public abstract boolean isVisited(); > - public abstract boolean isNextStepAvailable(); /* Could be > optional or maybe in a subclass, this would check if there's a step before > the current one */ > - public abstract boolean isPreviousStepAvailable(); /* As above */ > - public abstract Object getNextStep(); /* As above */ > - public abstract Object getPreviousStep(); /* As above */ > > public class MaxPathKeyProcessModel extends ProcessModel /* Or a better > name */ > > - Implements all methods using the old ProcessMenuModel code. > > @Deprecated > public class ProcessMenuModel extends MaxPathKeyProcessModel > > - Empty class except for isReadOnly() that should return > super.isDisabled() > > > The structure above would clean up the Model class that really shouldn't > contain very implementation specific code like the max path key algorithm > and would allow us to add new ProcessModel classes with more > functionalities. For example I had one using a mode for step access right > like: MAX_PLUS_NEXT, MAX, ANY, NEXT_ONLY, etc. > > The previous/next step methods could be useful for page templates since it > would be possible to include the train in the header as well as a previous > and next step buttons in the page footer in a generic way using the very > same process model. Note that we might have to also include methods like > isPreviousVisited(), isPreviousDisabled() and such to fully support that. > > Opinions, suggestions? > > > Regards, > > ~ Simon > > > >
