<?xml version="1.0"?>

<project 
  xmlns:j="jelly:core" 
  xmlns:jj="jelly:jeez" 
  xmlns:i="jelly:interaction" 
  xmlns:log="jelly:log"
  xmlns:util="jelly:util"
  xmlns:s="jelly:swing">
  
  <goal name="wizard:ui" description="Run the Maven Swing Wizard">
    
    <useGoals var="goalMap"/>
  
    <!-- create the frame -->
    <s:frame var="frame" size="400,150" location="200,200" title="Maven Wizard">
      <s:menuBar>
        <s:menu text="Run">
          <j:forEach var="groupEntry" items="${goalMap.entrySet()}">      
            
            <s:menu text="${groupEntry.key}">
              <j:forEach var="goalEntry" items="${groupEntry.value.entrySet()}">      
  
                <!-- give each menu item its own scope then they have their own goal names -->
                <j:scope>
                  <j:set var="goalName" value="${goalEntry.value.name}"/>
                  
                  <s:menuItem>
                    <s:action name="${goalEntry.key}">

                      <log:info>About to invoke the ${goalName} goal!</log:info>

                      <attainGoal name="${goalName}"/>
                      
                    </s:action>
                  </s:menuItem>
                </j:scope>
              </j:forEach>
            </s:menu>
          </j:forEach>
        </s:menu>
      </s:menuBar>
      <s:panel/>
    </s:frame>
  
    ${frame.setVisible(true)}

    <!-- we need to do this to stop maven terminating -->    
    <i:ask question="Hit Enter to terminate" answer="dummy" xmlns:i="jelly:interaction"/>
  </goal>
</project>
