1 <?xml version='1.0' encoding='UTF-8' ?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml"
4 xmlns:p="http://primefaces.prime.com.tr/ui"
5 xmlns:h="http://java.sun.com/jsf/html"
6 xmlns:f="http://java.sun.com/jsf/core"
7 xmlns:c="http://java.sun.com/jsp/jstl/core"
8 xmlns:ui="http://java.sun.com/jsf/facelets">
9 <f:loadBundle basename="org.ufcspa.simdecs.resources.messages" var="msg" />
11 <title>SimDeCS</title>
12 <link type="text/css" rel="stylesheet" href="styles.css" />
16 <p:menubar autoSubmenuDisplay="true" style="font-size: 11px; background: #ECECEC;" >
17 <p:submenu label="#{msg.editDiagramMenuFile}" icon="ui-icon ui-icon-document">
18 <p:menuitem value="#{msg.editDiagramMenuNew}" url="#" />
19 <p:menuitem value="#{msg.editDiagramMenuOpen}" url="#" />
20 <p:menuitem value="#{msg.editDiagramMenuSave}" url="#" />
22 <p:submenu label="#{msg.editDiagramMenuLanguage}" icon="ui-icon ui-icon-pencil">
23 <p:menuitem value="#{msg.editDiagramMenuLanguagePortugueseLabel}" actionListener="#{languageSelector.handleLanguageChange()}" ajax="false" immediate="true">
24 <f:param name="language" value="#{msg.editDiagramMenuLanguagePortugueseCode}" />
26 <p:menuitem value="#{msg.editDiagramMenuLanguageEnglishLabel}" actionListener="#{languageSelector.handleLanguageChange()}" ajax="false" immediate="true">
27 <f:param name="language" value="#{msg.editDiagramMenuLanguageEnglishCode}" />
30 <p:submenu label="#{msg.editDiagramMenuHelp}" icon="ui-icon ui-icon-help">
31 <p:menuitem value="#{msg.editDiagramMenuAbout}" url="#" />
38 <p:growl id="messageGrow1" showDetail="true" life="3000" />
41 <p:panel id="diagramCanvas" header="#{editDiagram.diagramManager.diagramName}" style="font-size:12px;overflow: auto; height: 500px;">
42 <h:form id="fdiagram">
43 <table border="0" cellspacing="0">
45 <ui:repeat id="swimLanesLoop" value="#{editDiagram.diagramManager.swimLanes}" var="swimLane">
47 <td align="left" width="150">
48 <p:commandLink actionListener="#{editActor.prepareWindowEditActor}" oncomplete="dialogNewActor.show();" update="fEditActor">
49 <h:graphicImage id="swimLane#{swimLane.id}" value="#{swimLane.image}" height="150" />
50 <f:param name="pActorID" value="#{swimLane.id}" />
52 <!-- <p:tooltip for="swimLane#{swimLane.id}" value="#{swimLane.name}" showEffect="fade" hideEffect="fade" showEffectLength="1000" hideEffectLength="1000"/> -->
54 <ui:repeat value="#{swimLane.nodes}" var="node">
56 <p:commandLink rendered="#{!node.isInternal()}" actionListener="#{editBeginNode.prepareWindowEditBeginNode}" oncomplete="dialogBeginNode.show();" update="fEditBeginNode">
57 <h:graphicImage rendered="#{!node.isInternal()}" id="node#{node.id}" value="#{node.currentImage}" width="150"/>
58 <f:param name="pActorID" value="#{swimLane.id}" />
59 <f:param name="pNodeID" value="#{node.id}" />
61 <!-- <p:tooltip for="node#{node.id}" value="#{node.name}" showEffect="fade" hideEffect="fade" showEffectLength="1000" hideEffectLength="1000"/> -->
64 <td align="left" width="150">
65 <p:commandLink id="addNodeAction#{swimLane.id}" actionListener="#{editNode.prepareActionMenu}" oncomplete="dialogAddNodeMenu.show();" update="fAddNodeMenu">
66 <f:param name="pActorID" value="#{swimLane.id}" />
67 <h:graphicImage id="plus#{swimLane.id}" value="img/others/plus.png" />
72 <td style='background-image: url("img/swimLanes/separator.png");'>
74 <ui:repeat value="#{swimLane.nodes}" var="node">
75 <td style='background-image: url("img/swimLanes/separator.png");'>
78 <td style='background-image: url("img/swimLanes/separator.png");'>
86 <p:dialog id="dialogAddNodeMenu" widgetVar="dialogAddNodeMenu" closable="true" draggable="true" modal="true" width="500" height="300">
87 <h:form id="fAddNodeMenu">
88 <p:menu id="dinamycAddNodeMenu" model="#{editNode.menuActionList}" />
92 <p:dialog id="dialogEditNodeMenu" header="#{msg.editPropertiesTableTitle}" widgetVar="dialogEditNodeMenu" closable="true" draggable="true" modal="true" width="600" height="450">
93 <h:form id="fEditNodeMenu">
94 <p:dataTable var="property" value="#{editNode.properties}">
96 <p:column headerText="#{msg.editPropertiesTableName}">
97 <h:outputText value="#{property.name}"/>
100 <p:column headerText="#{msg.editPropertiesTableValue}">
103 <f:facet name="output"><h:outputText value="#{property.value}"/></f:facet>
104 <f:facet name="input"><h:inputText value="#{property.value}" required="#{property.required}" maxlength="#{property.maxLength}" /></f:facet>
113 <p:commandButton id="changePropertiesButton" value="#{msg.editPropertiesButtonOk}" actionListener="#{editNode.addNode}" update="fdiagram" oncomplete="dialogEditNodeMenu.hide();" />
114 <p:commandButton id="cancelChangePropertiesButton" value="#{msg.editPropertiesButtonCancel}" type="button" onclick="dialogAddNodeMenu.hide();"/>
120 <p:dialog id="dialogNewActor" widgetVar="dialogNewActor" header="#{msg.editDiagramEditActor}" closable="true" draggable="true" modal="true" width="500">
121 <h:form id="fEditActor">
122 <p:panel id="dialogNewActorPanel">
123 <h:inputHidden id="editActorID" value="#{editActor.id}" />
124 <table class="formTable">
126 <th><h:outputText value="#{msg.editDiagramActorName}" /></th>
128 <p:inputText id="editActorName" value="#{editActor.name}" required="true" size="50" maxlength="100" />
132 <th><h:outputText value="#{msg.editDiagramActorType}" /></th>
134 <h:selectOneMenu id="editActorType" value="#{editActor.type}" required="true">
135 <f:selectItem itemValue="" itemLabel="#{msg.selectOneOnList}" />
136 <f:selectItems value="#{editActor.actorTypes}" />
141 <th><h:outputText value="#{msg.editDiagramActorSex}" /></th>
143 <h:selectOneMenu id="editActorSex" value="#{editActor.sex}" required="true">
144 <f:selectItem itemValue="" itemLabel="#{msg.selectOneOnList}" />
145 <f:selectItem itemValue="M" itemLabel="#{msg.editDiagramActorSexMale}" />
146 <f:selectItem itemValue="F" itemLabel="#{msg.editDiagramActorSexFemale}" />
151 <th><h:outputText value="#{msg.editDiagramActorAge}" /></th>
153 <p:inputText id="editActorAge" value="#{editActor.age}" required="true" size="5" maxlength="3">
154 <f:convertNumber integerOnly="true" minIntegerDigits="1" maxIntegerDigits="3" />
155 <f:validateLongRange minimum="0" maximum="150" />
160 <th><h:outputText value="#{msg.editDiagramActorHeight}" /></th>
162 <p:inputText id="editActorHeight" value="#{editActor.height}" required="true" size="5">
163 <f:convertNumber maxIntegerDigits="1" minFractionDigits="2" maxFractionDigits="2" />
165 <h:outputText value="#{msg.editDiagramActorHeightMeasureUnit}" />
169 <th><h:outputText value="#{msg.editDiagramActorWeight}" /></th>
171 <p:inputText id="editActorWeight" value="#{editActor.weight}" required="true" size="5" maxlength="3">
172 <f:convertNumber integerOnly="true" />
174 <h:outputText value="#{msg.editDiagramActorWeightMeasureUnit}" />
179 <p:commandButton id="buttonAddActor" value="#{msg.buttonAdd}" oncomplete="handleAddActorRequest(xhr, status, args);" actionListener="#{editActor.addActor}" update="diagramCanvas,dialogNewActorPanel,messageGrow1,fdiagram" />
180 <p:commandButton id="buttonEditActor" value="#{msg.buttonEdit}" oncomplete="handleAddActorRequest(xhr, status, args);" actionListener="#{editActor.editActor}" update="diagramCanvas,dialogNewActorPanel,messageGrow1,fdiagram" />
181 <p:commandButton id="buttonRemoveActor" value="#{msg.buttonRemove}" style="color: red;" oncomplete="dialogNewActor.hide();" actionListener="#{editActor.removeActor}" ajax="false" update="swimLanesLoop" />
183 <script type="text/javascript">
184 function handleAddActorRequest(xhr, status, args) {
185 if(args.validationFailed) {
186 jQuery('#dialogNewActor').parent().effect("shake", { times:3 }, 100);
188 dialogNewActor.hide();
197 <p:menuitem id="dockAddActor" value="#{msg.editDiagramAddActor}" icon="/img/dock/addActor.png" immediate="true" actionListener="#{editActor.prepareWindowAddActor}" oncomplete="dialogNewActor.show();" update="fEditActor,dialogNewActorPanel"/>