Вы можете использовать плитки и создать некоторые определения плиток, например:
<definition name="myBasicView" extends="myView">
<put-attribute name="body" value="/WEB-INF/jsp/taskView/yourPageBody.jsp" />
</definition>
<definition name="myFirstView" extends="myView">
<put-attribute name="body" value="/WEB-INF/jsp/taskView/yourPageBody.jsp" />
<put-attribute name="popup" value="/WEB-INF/jsp/taskView/taskAssignDevelopersPopUp.jsp" />
</definition>
<definition name="mySecondView" extends="myView">
<put-attribute name="body" value="/WEB-INF/jsp/taskView/yourPageBody.jsp" />
<put-attribute name="popup" value="/WEB-INF/jsp/taskView/taskCreateAfter.jsp" />
</definition>
и затем используйте эти определения:
<view-state id="paneMaintenance" parent="#pe-cards" model="model" view="myBasicView" >
<transition on="task-view" then="developers-task-view" bind="false">
</transition>
</view-state>
<view-state id="developers-task-view" view="myFirstView" model="taskAssignModel" parent="#paneMaintenance" popup="true" >
<transition on="create" to="create-task-after" bind="false" >
<evaluate expression="taskAssignHandler.create(taskAssignModel, model.paneModel, true)" />
</transition>
</view-state>
<view-state id="create-task-after" view="mySecondView" model="taskAssignModel" parent="#developers-task-view" popup="true">
<transition on="confirm" bind="true">
<evaluate expression="taskAssignHandler.saveTaskAssign(taskAssignModel, model.paneModel)" />
</transition>
<transition on="cancel" bind="false" to="paneMaintenance"/>
</view-state>
Итак, 1 всплывающее окно для каждого просмотра!