Hi everyone,

I need to write a wizard to edit a set of identical objects. Each object is edited on a separate page. The question is how to iterate over collection. The only way I found is use indexed collection or array and store current index.

Code:
<view-state id="selectItems">
  <transition on="back" to="cancel"/>
  <transition on="next" to="hasNextItem">
    <set name="flowScope.index" value="0"/>
  </transition>
</view-state>
	
<decision-state id="hasNextItem">
  <if test="items.size() &gt; index" then="editItem" else="finish"/>
</decision-state>
	
<view-state id="editItem">
<on-entry>
  <evaluate result="viewScope.item expression="items.get(index)"/>
</on-entry>
<transition on="next" to="hasNextItem">
  <evaluate result="index" expression="index + 1"/>
</transition>		
</view-state>

<end-state id="finish"/>
<end-state id="cancel"/>
It works fine. But it seems a little ugly. May be someone knows better solution?

I use SWF 2.0.6 and Spring 2.5.6