Commit 462bf12d by Tuomas Riihimäki

Added scrumtoys & updated db & softan jaottelu graphs

1 parent 09f270ec
Showing with 10660 additions and 2 deletions
...@@ -25,7 +25,7 @@ public class UserFacade extends GenericFacade<User> { ...@@ -25,7 +25,7 @@ public class UserFacade extends GenericFacade<User> {
public User findByLogin(String login) { public User findByLogin(String login) {
TypedQuery<User> q = em.createNamedQuery("User.findByLogin",User.class); TypedQuery<User> q = em.createNamedQuery("User.findByLogin",User.class);
q.setParameter(":login", login); q.setParameter("login", login);
return q.getSingleResult(); return q.getSingleResult();
} }
......
/* /*
* To change this template, choose Tools | Templates * To change this template, choose Tools | Templates
* and open the template in the editor. * and open the template in the editor.
*/ */
package fi.insomnia.bortal.handler; package fi.insomnia.bortal.handler;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped; import javax.enterprise.context.SessionScoped;
import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedBean;
import fi.insomnia.bortal.SessionHandlerBeanLocal;
import fi.insomnia.bortal.model.User;
/** /**
* *
* @author tuukka * @author tuukka
...@@ -16,12 +21,25 @@ import javax.faces.bean.ManagedBean; ...@@ -16,12 +21,25 @@ import javax.faces.bean.ManagedBean;
@SessionScoped @SessionScoped
public class SessionHandler { public class SessionHandler {
@EJB
private SessionHandlerBeanLocal handlerbean;
private User user;
/** Creates a new instance of SessionHandler */ /** Creates a new instance of SessionHandler */
public SessionHandler() { public SessionHandler() {
} }
private boolean hasPermission(String target) { public boolean hasPermission(String target) {
handlerbean.hasPermission(target, getUser());
throw new UnsupportedOperationException("Not yet implemented"); throw new UnsupportedOperationException("Not yet implemented");
} }
public void setUser(User user) {
this.user = user;
}
public User getUser() {
return user;
}
} }
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/JVM 1.6">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.sun.enterprise.jst.server.runtimeTarget/GlassFish v3 Java EE 6">
<attributes>
<attribute name="owner.project.facets" value="jst.web"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="output" path="build/classes"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Scrumtoys</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>
</projectDescription>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
<attributes>
<attribute name="hide" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
<classpathentry kind="output" path=""/>
</classpath>
#Sat Mar 20 13:38:31 EET 2010
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.6
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="Scrumtoys">
<wb-resource deploy-path="/" source-path="/WebContent"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
<property name="context-root" value="Scrumtoys"/>
<property name="java-output-path" value="/Scrumtoys/build/classes"/>
</wb-module>
</project-modules>
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<runtime name="GlassFish v3 Java EE 6"/>
<fixed facet="jst.web"/>
<fixed facet="java"/>
<installed facet="java" version="1.6"/>
<installed facet="jst.web" version="3.0"/>
<installed facet="sun.facet" version="9"/>
</faceted-project>
org.eclipse.wst.jsdt.launching.baseBrowserLibrary
\ No newline at end of file
<?xml version="1.0"?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE facelet-taglib PUBLIC
"-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
"http://java.sun.com/dtd/facelet-taglib_1_0.dtd">
<facelet-taglib>
<namespace>http://www.java.net/scrumtoys/jsfcomps</namespace>
<tag>
<tag-name>burndown</tag-name>
<component>
<component-type>BURNDOWN_OUTPUT</component-type>
<renderer-type>BURNDOWN_RENDERER</renderer-type>
</component>
</tag>
<tag>
<tag-name>test</tag-name>
<source>testTag.xhtml</source>
</tag>
</facelet-taglib>
\ No newline at end of file
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
<h:outputText value=" test "/>
</ui:composition>
</html>
\ No newline at end of file
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<application>
<resource-bundle>
<base-name>i18n</base-name>
<var>i18n</var>
</resource-bundle>
<message-bundle>i18n</message-bundle>
<locale-config>
<default-locale>en_US</default-locale>
<supported-locale>pt_BR</supported-locale>
</locale-config>
<el-resolver>jsf2.demo.scrum.web.scope.TaskScopeResolver</el-resolver>
</application>
<navigation-rule>
<description>
global navigation rules
</description>
<from-view-id>*</from-view-id>
<navigation-case>
<description>Go to Edit Project Page</description>
<from-outcome>editProject</from-outcome>
<to-view-id>/project/edit.jsf</to-view-id>
</navigation-case>
<navigation-case>
<description>Go to Select Projects Page</description>
<from-outcome>showProjects</from-outcome>
<to-view-id>/project/show.jsf</to-view-id>
</navigation-case>
<navigation-case>
<description>Go to Edit Sprint Page</description>
<from-outcome>editSprint</from-outcome>
<to-view-id>/sprint/edit.jsf</to-view-id>
</navigation-case>
<navigation-case>
<description>Go to Dashboard</description>
<from-outcome>showDashboard</from-outcome>
<to-view-id>/dashboard/show.jsf</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<description>
dashboard navigation rules
</description>
<from-view-id>/dashboard/show.xhtml</from-view-id>
<navigation-case>
<from-outcome>showSprints</from-outcome>
<to-view-id>/sprint/show.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<description>
see burndown
</description>
<from-outcome>burndown</from-outcome>
<to-view-id>/burndown.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<description>
project navigation rules
</description>
<from-view-id>/project/show.xhtml</from-view-id>
<navigation-case>
<from-outcome>showSprints</from-outcome>
<to-view-id>/sprint/show.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<description>
sprint navigation rules
</description>
<from-view-id>/sprint/show.xhtml</from-view-id>
<navigation-case>
<from-outcome>showStories</from-outcome>
<to-view-id>/story/show.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>showDashboard</from-outcome>
<to-view-id>/dashboard/show.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<description>
story navigation rules
</description>
<from-view-id>/story/show.xhtml</from-view-id>
<navigation-case>
<from-outcome>showTasks</from-outcome>
<to-view-id>/task/show.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>showSprints</from-outcome>
<to-view-id>/sprint/show.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<description>
task navigation rules
</description>
<from-view-id>/task/show.xhtml</from-view-id>
<navigation-case>
<from-outcome>showStories</from-outcome>
<to-view-id>/story/show.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 Servlet 2.5//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd">
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<sun-web-app error-url="">
<context-root>/scrumtoys</context-root>
<class-loader delegate="true"/>
<jsp-config>
<property name="keepgenerated" value="true">
<description>Keep a copy of the generated servlet class' java code.</description>
</property>
</jsp-config>
</sun-web-app>
<?xml version="1.0"?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>Scrum Checklist 2.0</display-name>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>javax.faces.FACELETS_LIBRARIES</param-name>
<param-value>/WEB-INF/facelets/jsfcomps.taglib.xml</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/index.html</location>
</error-page>
</web-app>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="template.xhtml">
<ui:define name="pageTitle">
<h:outputText value="HOME needs i18n"></h:outputText>
</ui:define>
<ui:define name="content">
<h:messages globalOnly="true" showDetail="true" tooltip="true" errorClass="errorMsgs" infoClass="infoMsgs" />
<h:form id="frmNew">
<h2>New Sprint</h2>
<h:panelGrid columns="3" style="width: 300px">
<h:outputLabel value="#{i18n['sprints.label.name']}:" for="itName" />
<h:inputText id="itName" value="#{allInOneMB.sprintsMB.toSave.name}" required="true" requiredMessage="Type the short name" />
<h:message for="itName" />
<h:outputLabel value="#{i18n['sprints.label.goals']}:" for="itGoals" />
<h:inputText id="itGoals" value="#{allInOneMB.sprintsMB.toSave.goals}" required="true" requiredMessage="Describe the goals" />
<h:message for="itGoals" />
<h:outputLabel value="#{i18n['sprints.label.iterationScope']}:" for="itIterationScope" />
<h:inputText id="itIterationScope" value="#{allInOneMB.sprintsMB.toSave.iterationScope}" required="true" requiredMessage="Type the scope" />
<h:message for="itIterationScope" />
<h:outputLabel value="#{i18n['sprints.label.startedAt']}:" for="itStartedAt" />
<h:inputText id="itStartedAt" value="#{allInOneMB.sprintsMB.toSave.startedAt}" required="true" requiredMessage="Type when this sprint start" />
<h:message for="itStartedAt" />
<h:outputLabel value="#{i18n['sprints.label.dailyMeetingTime']}:" for="itDailyMeetingTime" />
<h:inputText id="itDailyMeetingTime" value="#{allInOneMB.sprintsMB.toSave.dailyMeetingTime}" required="true" requiredMessage="Type the estimation (story points)" />
<h:message for="itDailyMeetingTime" />
<f:verbatim></f:verbatim>
<f:verbatim></f:verbatim>
<h:commandButton action="#{allInOneMB.sprintsMB.save}" value="save" />
</h:panelGrid>
</h:form>
<h:form id="frmList">
<h2>Sprints</h2>
<h:panelGrid columns="3" style="width: 300px">
<h:outputLabel value="Not exist sprints" style="color: orange" rendered="#{allInOneMB.sprintsMB.dm.rowCount eq 0}"/>
</h:panelGrid>
<h:dataTable value="#{allInOneMB.sprintsMB.dm}" var="sprint" width="100%" rendered="#{allInOneMB.sprintsMB.dm.rowCount > 0}">
<h:column headerClass="textColumn">
<f:facet name="header"><h:outputLabel value="#" /></f:facet>
<h:outputText value="#{allInOneMB.sprintsMB.dm.rowIndex + 1}" />
<f:facet name="footer">#{""}</f:facet>
</h:column>
<h:column headerClass="textColumn">
<f:facet name="header"><h:outputLabel value="name" /></f:facet>
<h:outputText value="#{sprint.name}" />
<f:facet name="footer">#{allInOneMB.sprintsMB.dm.rowCount}#{" sprints"}</f:facet>
</h:column>
<h:column headerClass="textColumn">
<f:facet name="header"><h:outputLabel value="goals" /></f:facet>
<h:outputText value="#{sprint.goals}" />
<f:facet name="footer">#{" "}</f:facet>
</h:column>
<h:column headerClass="textColumn">
<f:facet name="header"><h:outputLabel value="iteration scope" /></f:facet>
<h:outputText value="#{sprint.iterationScope}" />
<f:facet name="footer">#{" "}</f:facet>
</h:column>
<h:column headerClass="textColumn">
<f:facet name="header"><h:outputLabel value="started at" /></f:facet>
<h:outputText value="#{sprint.startedAt}" />
<f:facet name="footer">#{" "}</f:facet>
</h:column>
<h:column headerClass="textColumn">
<f:facet name="header"><h:outputLabel value="daily meeting time" /></f:facet>
<h:outputText value="#{sprint.dailyMeetingTime}" />
<f:facet name="footer">#{" "}</f:facet>
</h:column>
<h:column>
<f:facet name="header"><h:outputLabel value="actions" /></f:facet>
<h:commandButton action="#{allInOneMB.sprintsMB.edit}" value="edit ..." />
<h:commandButton action="#{allInOneMB.sprintsMB.remove}" value="remove" />
<h:commandButton action="#{allInOneMB.sprintsMB.showStories}" value="stories ..." />
<h:commandButton action="#{allInOneMB.sprintsMB.showDashboard}" value="dashboard ..." />
<f:facet name="footer">#{" "}</f:facet>
</h:column>
</h:dataTable>
</h:form>
<h:form id="frmNewStory">
<h2>New Story</h2>
<h:panelGrid columns="3" style="width: 300px">
<h:outputLabel value="#{i18n['stories.label.sprint']}:" for="otSprint" />
<h:outputText id="otSprint" value="#{storiesMB.toSave.sprint.name}" />
<h:message for="otSprint" />
<h:outputLabel value="#{i18n['stories.label.name']}:" for="itName" />
<h:inputText id="itName" value="#{storiesMB.toSave.name}" required="true" requiredMessage="Describe the story" />
<h:message for="itName" />
<h:outputLabel value="#{i18n['stories.label.acceptance']}:" for="itAcceptance" />
<h:inputTextarea id="itAcceptance" value="#{storiesMB.toSave.acceptance}" required="true" cols="50" rows="4" requiredMessage="Describe the acceptance" />
<h:message for="itAcceptance" />
<h:outputLabel value="#{i18n['stories.label.priority']}:" for="selPriority" />
<h:inputText id="selPriority" value="#{storiesMB.toSave.priority}" required="true" requiredMessage="Type the priority (sequence to do)" />
<h:message for="selPriority" />
<h:outputLabel value="#{i18n['stories.label.estimation']}:" for="itEstimation" />
<h:inputText id="itEstimation" value="#{storiesMB.toSave.estimation}" required="true" requiredMessage="Type the estimation (story points)" />
<h:message for="itEstimation" />
<f:verbatim></f:verbatim>
<f:verbatim></f:verbatim>
<h:commandButton action="#{storiesMB.save}" value="save" />
</h:panelGrid>
</h:form>
<h:form id="frmStories">
<h2>Stories</h2>
<h:panelGrid columns="3" >
<h:outputLabel value="No exist stories for this sprint" rendered="#{storiesMB.dm.rowCount eq 0}"/>
</h:panelGrid>
<h:dataTable value="#{storiesMB.dm}" var="story" width="100%" rendered="#{storiesMB.dm.rowCount > 0}">
<h:column headerClass="textColumn">
<f:facet name="header"><h:outputLabel value="#" /></f:facet>
<h:outputText value="#{storiesMB.dm.rowIndex + 1}" />
<f:facet name="footer">#{""}</f:facet>
</h:column>
<h:column headerClass="textColumn">
<f:facet name="header"><h:outputLabel value="name" /></f:facet>
<h:outputText value="#{story.name}" />
<f:facet name="footer">#{storiesMB.dm.rowCount}#{" stories"}</f:facet>
</h:column>
<h:column headerClass="textColumn">
<f:facet name="header"><h:outputLabel value="priority" /></f:facet>
<h:outputText value="#{story.priority}" />
<f:facet name="footer">#{" "}</f:facet>
</h:column>
<h:column headerClass="textColumn">
<f:facet name="header"><h:outputLabel value="estimation (sp)" /></f:facet>
<h:outputText value="#{story.estimation}" />
<f:facet name="footer">#{" "}</f:facet>
</h:column>
<h:column headerClass="textColumn">
<f:facet name="header"><h:outputLabel value="acceptance" /></f:facet>
<h:outputText value="#{story.acceptance}" />
<f:facet name="footer">#{" "}</f:facet>
</h:column>
<h:column>
<f:facet name="header"><h:outputLabel value="actions" /></f:facet>
<h:commandButton action="#{storiesMB.edit}" value="edit ..." immediate="true" />
<h:commandButton action="#{storiesMB.remove}" value="remove" immediate="true" />
<h:commandButton action="#{storiesMB.showTasks}" value="tasks" immediate="true" />
<f:facet name="footer">#{" "}</f:facet>
</h:column>
</h:dataTable>
</h:form>
<h:form id="frmNewTask">
<h:commandLink action="stories" value="#{'go back stories'}" immediate="true" />
<h2>New Task</h2>
<h:panelGrid columns="3" style="width: 300px">
<h:outputLabel value="#{i18n['tasks.label.story']}:" for="otStory" />
<h:outputText id="otStory" value="#{tasksMB.taskToSave.story.name}" />
<h:message for="otStory" />
<h:outputLabel value="#{i18n['tasks.label.name']}:" for="itName" />
<h:inputText id="itName" value="#{tasksMB.taskToSave.name}" required="true" requiredMessage="Descreva a tarefa" />
<h:message for="itName" />
<f:verbatim></f:verbatim>
<f:verbatim></f:verbatim>
<h:commandButton action="#{tasksMB.save}" value="save" />
</h:panelGrid>
</h:form>
<h:form id="frmTasks">
<h2>Tasks</h2>
<h:panelGrid columns="3" style="width: 300px">
<h:outputLabel value="Nao ha tarefas para esta estoria" style="color: orange" rendered="#{tasksMB.dmTasks.rowCount eq 0}"/>
</h:panelGrid>
<h:dataTable value="#{tasksMB.dmTasks}" var="task" width="300px" rendered="#{tasksMB.dmTasks.rowCount > 0}">
<h:column headerClass="textColumn">
<f:facet name="header"><h:outputLabel value="#" /></f:facet>
<h:outputText value="#{tasksMB.dmTasks.rowIndex + 1}" />
<f:facet name="footer">#{""}</f:facet>
</h:column>
<h:column headerClass="textColumn">
<f:facet name="header"><h:outputLabel value="name" /></f:facet>
<h:outputText value="#{task.name}" />
<f:facet name="footer">#{tasksMB.dmTasks.rowCount}#{" tasks"}</f:facet>
</h:column>
<h:column>
<f:facet name="header"><h:outputLabel value="actions" /></f:facet>
<h:commandButton action="#{tasksMB.edit}" value="edit ..." immediate="true" />
<h:commandButton action="#{tasksMB.remove}" value="remove" immediate="true" />
<f:facet name="footer">#{" "}</f:facet>
</h:column>
</h:dataTable>
</h:form>
</ui:define>
</ui:composition>
</html>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:jsfcomps="http://www.java.net/scrumtoys/jsfcomps"
xmlns:appez="http://java.sun.com/jsf/composite/components" >
<h:head>
<title>#{"Burndown"}</title>
<h:outputStylesheet library="css/1_1" name="app.css"/>
</h:head>
<h:body>
<h:outputScript library="javax.faces" name="ajax.js" target="head"/>
<h:messages errorClass="errorMsgs" infoClass="infoMsgs" />
<appez:title id="tituloDashboard" text="#{'Burndown'}" />
<h:form>
<h:outputLabel value="Sprint:" for="somSprints" />
<h:selectOneMenu id="somSprints" value="#{burndownMB.selectedSprintId}">
<f:selectItems value="#{burndownMB.siSprints}"/>
</h:selectOneMenu>
<h:message for="somSprints" />
<h:commandButton action="#{burndownMB.update}" value="Update" />
<h:panelGrid columns="1">
<h:outputText value="#{burndownMB.selectedSprint.name}" />
<jsfcomps:burndown value="#{burndownMB.selectedSprint}" />
<jsfcomps:test />
</h:panelGrid>
</h:form>
</h:body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="template.xhtml">
<ui:define name="pageTitle">
<h:outputText value="#{i18n['menuitem.label.sprints']}"></h:outputText>
</ui:define>
<ui:define name="content">
<h:form id="changeSkin">
<h:panelGrid styleClass="whiteboard" headerClass="tableHeader" footerClass="tableFooter">
<f:facet name="header">
<h:outputText value="Select application skin color"></h:outputText>
</f:facet>
<h:panelGrid columns="4" styleClass="tableBody" columnClasses="postItYellow, postItOrange, postItRed, postItBlue">
<h:commandLink action="#{skinManager.yellowSkin}"><h:outputText value="Yellow"></h:outputText></h:commandLink>
<h:commandLink action="#{skinManager.orangeSkin}"><h:outputText value="Orange"></h:outputText></h:commandLink>
<h:commandLink action="#{skinManager.redSkin}"><h:outputText value="Red"></h:outputText></h:commandLink>
<h:commandLink action="#{skinManager.blueSkin}"><h:outputText value="Blue"></h:outputText></h:commandLink>
</h:panelGrid>
<f:facet name="footer">
<h:outputText value=" "></h:outputText>
</f:facet>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:appez="http://java.sun.com/jsf/composite/components" >
<ui:composition template="template.xhtml">
<ui:define name="pageTitle">
<h:outputText value="HOME needs i18n"></h:outputText>
</ui:define>
<ui:define name="content">
<h:outputScript library="javax.faces" name="ajax.js" target="head"></h:outputScript>
<h:messages errorClass="errorMsgs" infoClass="infoMsgs" />
<appez:title id="tituloDashboard" text="#{dashboardMB.selectedSprint.name}">
<h:panelGroup>
<h:outputLabel value="#{i18n['label.goal']}:" for="" style="font-weight: bold" />
<h:outputText value="#{dashboardMB.selectedSprint.goals}" />
</h:panelGroup>
</appez:title>
<h:panelGrid columns="2" style="float: left">
<h:outputLabel value="#{i18n['label.estimatives']}:" for="" style="font-weight: bold" />
<h:outputText value="#{dashboardMB.selectedSprint.meetings.estimation.date}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText>
<h:outputLabel value="#{i18n['label.planning1']}:" for="" style="font-weight: bold" />
<h:outputText value="#{dashboardMB.selectedSprint.meetings.sprintPlanningI.date}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText>
<h:outputLabel value="#{i18n['label.planning2']}:" for="" style="font-weight: bold" />
<h:outputText value="#{dashboardMB.selectedSprint.meetings.sprintPlanningII.date}"/>
<h:outputLabel value="#{i18n['label.dailyMeeting']}:" for="" style="font-weight: bold" />
<h:panelGroup>
<h:outputText value="#{dashboard2MB.selectedSprint.dailyMeetingTime}">
</h:outputText>
</h:panelGroup>
<h:outputLabel value="#{i18n['label.revision']}:" for="" style="font-weight: bold" />
<h:outputText value="#{dashboardMB.selectedSprint.meetings.revision.date}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText>
<h:outputLabel value="#{i18n['label.retrospective']}:" for="" style="font-weight: bold" />
<h:outputText value="#{dashboardMB.selectedSprint.meetings.retrospective.date}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText>
</h:panelGrid>
<table width="100%">
<tr>
<td style="vertical-align: top; min-width: 150px" width="150px">
<h:form id="frmStories">
<ui:include src=".dashboard.stories.xhtml" />
</h:form>
</td>
<td style="vertical-align: top; min-width: 150px" width="150px">
<h:form id="frmTodo">
<ui:include src=".dashboard.todoTasks.xhtml" />
</h:form>
</td>
<td style="vertical-align: top; min-width: 150px" width="150px">
<h:form id="frmWorking">
<ui:include src=".dashboard.workingTasks.xhtml" />
</h:form>
</td>
<td style="vertical-align: top; min-width: 150px" width="150px">
<h:form id="frmDone">
<ui:include src=".dashboard.doneTasks.xhtml" />
</h:form>
</td>
</tr>
</table>
</ui:define>
</ui:composition>
</html>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:scrum="http://java.sun.com/jsf/composite/components" >
<ui:composition template="/template.xhtml">
<f:metadata>
<f:viewParam name="skin" value="#{skinUrlManager.skin}" />
<f:event type="preRenderView" listener="#{skinUrlManager.update}" />
</f:metadata>
<ui:define name="pageTitle">
<h:outputText value="#{i18n['story.show.title']}"></h:outputText>
</ui:define>
<ui:define name="navigationBar">
<h:commandLink immediate="true" action="/project/show" value="#{i18n['navigation.projects']}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/project/edit" value="#{sprintManager.project.name}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/sprint/show" value="#{i18n['navigation.sprints']}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:outputText value="#{i18n['sprint.edit.form.title']}" styleClass="tituloForm"></h:outputText>
</ui:define>
<ui:define name="content">
<h:form id="frmListStories">
<h:panelGrid columns="5">
<h:dataTable value="#{dashboardManager.stories}" var="story" rendered="#{dashboardManager.stories.rowCount > 0}" border="0" id="dtStories" >
<h:column>
<f:facet name="header"><h:outputText value="STORIES" /></f:facet>
<scrum:bigPostit>
<ui:param name="postitLabel" value=""></ui:param>
<ui:param name="postitText" value="#{story.name}"></ui:param>
</scrum:bigPostit>
</h:column>
</h:dataTable>
<h:dataTable value="#{dashboardManager.toDoTasks}" var="task" title="Todo Tasks">
<f:facet name="header"><h:outputText value="TO DO" /></f:facet>
<h:column>
<scrum:postit action="#{dashboardManager.editToDoTask}">
<ui:param name="postitLabel" value=""></ui:param>
<ui:param name="postitText" value="#{task.name}"></ui:param>
</scrum:postit>
</h:column>
</h:dataTable>
<h:dataTable value="#{dashboardManager.workingTasks}" var="task" title="Working Tasks">
<f:facet name="header"><h:outputText value="DOING" /></f:facet>
<h:column>
<scrum:postit action="#{dashboardManager.editWorkingTask}">
<ui:param name="postitLabel" value=""></ui:param>
<ui:param name="postitText" value="#{task.name}"></ui:param>
</scrum:postit>
</h:column>
</h:dataTable>
<h:dataTable value="#{dashboardManager.doneTasks}" var="task" title="Done Tasks">
<f:facet name="header"><h:outputText value="DONE" /></f:facet>
<h:column>
<scrum:postit action="#{dashboardManager.editDoneTask}">
<ui:param name="postitLabel" value=""></ui:param>
<ui:param name="postitText" value="#{task.name}"></ui:param>
</scrum:postit>
</h:column>
</h:dataTable>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
<div align="center" style="width: 100%">
<h:graphicImage value="/resources/images/SoccerDukeSmall.png" width="59" height="47" title="Developed by: Alberto Lemos (Spock), Andre Frota, Ed Burns, Vinicius Nunes, Vinicius Senger e Yara Senger"></h:graphicImage>
</div>
</ui:composition>
</html>
\ No newline at end of file
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="template.xhtml">
<f:metadata>
<f:viewParam name="skin" value="#{skinUrlManager.skin}" />
<f:event type="preRenderView" listener="#{skinUrlManager.update}" />
</f:metadata>
<ui:insert name="pageTitle">
<h:outputText value="#{i18n['template.title']}"></h:outputText>
</ui:insert>
<ui:define name="content">
Welcome
</ui:define>
</ui:composition>
</html>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<meta http-equiv="refresh" content="0;url=/scrumtoys/home.jsf">
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GlassFish JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
<table width="990" class="menuTable" cellpadding="0" cellspacing="0" >
<tr>
<td>
<h:graphicImage value="/resources/images/duque_Top_990x150.png"></h:graphicImage><br/>
</td>
</tr>
<tr>
<td>
<table class="menuTable" cellpadding="0" cellspacing="0">
<tr>
<td>
<h:outputLink styleClass="menuhandler" value="#{i18n['menuitem.path.home']}" onmouseover="menuHighlight(1)">
<h:outputText value="HOME"/>
</h:outputLink>
</td> <td>
<h:outputLink styleClass="menuhandler" value="#{i18n['menuitem.path.dashboard']}" onmouseover="menuHighlight(2)">
<h:outputText value="#{i18n['menuitem.label.dashboard']}" />
</h:outputLink>
</td>
<td>
<h:outputLink styleClass="menuhandler" value="#{i18n['menuitem.path.allInOne']}" onmouseover="menuHighlight(3)">
<h:outputText value="#{i18n['menuitem.label.allInOne']}" />
</h:outputLink>
</td>
<td>
<h:outputLink styleClass="menuhandler" value="#{i18n['menuitem.path.burndown']}" onmouseover="menuHighlight(4)">
<h:outputText value="#{i18n['menuitem.label.burndown']}" />
</h:outputLink>
</td>
<td>
<h:outputLink styleClass="menuhandler" value="#{i18n['menuitem.path.sprints']}" onmouseover="menuHighlight(5)">
<h:outputText value="#{i18n['menuitem.label.sprints']}" />
</h:outputLink>
</td>
<td>
<h:outputLink styleClass="menuhandler" value="#{i18n['menuitem.path.sprints']}" onmouseover="menuHighlight(6)">
<h:outputText value="JSF 2.0" />
</h:outputLink>
</td>
</tr>
<tr>
<td>
<div class="menu" id="menu1"></div>
</td>
<td>
<div class="menu" id="menu2">
<ul>
<li><a href="#">Help</a></li>
</ul>
</div>
</td>
<td>
<div class="menu" id="menu3">
<ul>
<li><a href="#">Demo1</a></li>
<li><a href="#">Demo2</a></li>
</ul>
</div>
</td>
<td>
<div class="menu" id="menu4"></div>
</td>
<td>
<div class="menu" id="menu5">
<ul>
<li> <h:outputLink value="#{i18n['menuitem.path.newsprint']}">
<h:outputText value="#{i18n['menuitem.label.newsprint']}" />
</h:outputLink>
</li>
<li> <h:outputLink value="#{i18n['menuitem.path.sprintslist']}" >
<h:outputText value="#{i18n['menuitem.label.sprintslist']}" />
</h:outputLink>
</li>
</ul>
</div>
</td>
<td>
<div class="menu" id="menu6" >
<ul>
<li><a href="http://www.jcp.org/en/jsr/detail?id=314#">JSR 314</a></li>
<li><a href="http://weblogs.java.net/blog/edburns/archive/2007/01/jsf_irc_channel.html#">IRC</a></li>
<li><a href="http://java.sun.com/javaee/javaserverfaces/#">Documentation</a></li>
<li><a href="#">Blogs</a></li>
</ul>
</div>
</td>
</tr>
<tr></tr>
</table>
</td>
</tr>
</table>
</ui:composition>
</html>
\ No newline at end of file
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="/template.xhtml">
<ui:define name="pageTitle">
<h:outputText value="#{i18n['project.create.title']}"/>
</ui:define>
<ui:define name="navigationBar">
<h:commandLink action="/project/show" value="#{i18n['navigation.projects']}"/>
<h:outputText value="#{i18n['navigation.separtor']}"/>
<h:outputText value="#{i18n['project.create.form.title']}" styleClass="tituloForm" />
</ui:define>
<ui:define name="content">
<h:form id="createProjectForm">
<h:panelGrid columns="1" footerClass="footerForm">
<h:panelGroup>
<ui:include src="form.xhtml"/>
</h:panelGroup>
<f:facet name="footer">
<h:commandButton id="btnCreate" action="#{projectManager.save}" value="#{i18n['project.create.button.create']}" styleClass="botaoPostIt" />
<h:commandButton id="btnCancel" action="show" value="#{i18n['project.create.button.cancel']}" styleClass="botaoPostIt" immediate="true" />
</f:facet>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</html>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="/template.xhtml">
<ui:define name="pageTitle">
<h:outputText value="#{i18n['project.edit.title']}"/>
</ui:define>
<ui:define name="navigationBar">
<h:commandLink action="/project/show" value="#{i18n['navigation.projects']}"/>
<h:outputText value="#{i18n['navigation.separtor']}"/>
<h:outputText value="#{i18n['project.edit.form.title']}:" styleClass="tituloForm" />
</ui:define>
<ui:define name="content">
<h:form styleClass="scrumForm" id="editProjectForm">
<h:panelGrid columns="1" headerClass="tituloForm" footerClass="footerForm">
<ui:include src="form.xhtml" />
<f:facet name="footer">
<h:commandButton id="btnEditUpdate" action="#{projectManager.save}" value="#{i18n['project.edit.button.update']}" styleClass="botaoPostIt" />
<h:commandButton id="btnEditCancel" action="#{projectManager.cancelEdit}" immediate="true" value="#{i18n['project.edit.button.cancel']}" styleClass="botaoPostIt" />
</f:facet>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</html>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition>
<h:panelGrid columns="3" columnClasses="formLabel, formInput, formErrorMessage">
<h:outputLabel value="#{i18n['project.form.label.name']}:" for="itName"/>
<h:inputText id="itName" value="#{projectManager.currentProject.name}" required="true"
requiredMessage="#{i18n['project.form.label.name.required']}" size="40"
validator="#{projectManager.checkUniqueProjectName}" />
<h:message for="itName" styleClass="errorMessage" />
<h:outputLabel value="#{i18n['project.form.label.startDate']}:" for="itStartedDate" />
<h:panelGroup>
<h:inputText id="itStartedDate" value="#{projectManager.currentProject.startDate}" required="true" requiredMessage="#{i18n['project.form.label.startDate.required']}">
<f:convertDateTime pattern="#{i18n['project.form.label.startDate.pattern']}" />
</h:inputText>
<h:outputText value="(#{i18n['project.form.label.startDate.pattern']})" styleClass="inputPattern" />
</h:panelGroup>
<h:message for="itStartedDate" styleClass="errorMessage"/>
<h:outputLabel value="#{i18n['project.form.label.endDate']}:" for="itEndDate" />
<h:panelGroup>
<h:inputText id="itEndDate" value="#{projectManager.currentProject.endDate}" required="false" requiredMessage="#{i18n['project.form.label.endDate.required']}">
<f:convertDateTime pattern="#{i18n['project.form.label.endDate.pattern']}" />
</h:inputText>
<h:outputText value="(#{i18n['project.form.label.endDate.pattern']})" styleClass="inputPattern"/>
</h:panelGroup>
<h:message for="itEndDate" styleClass="errorMessage" />
</h:panelGrid>
</ui:composition>
</html>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="/template.xhtml">
<ui:define name="pageTitle">
<h:outputText value="#{i18n['project.show.title']}"/>
</ui:define>
<ui:define name="navigationBar">
<h:outputText value="#{i18n['project.show.title']}" styleClass="tituloForm" />
</ui:define>
<ui:define name="content">
<h:form id="frmListProjects">
<h:outputText value="#{i18n['project.show.table.label.empty']}"
rendered="#{projectManager.projects.rowCount eq 0}" />
<h:dataTable value="#{projectManager.projects}" var="project"
rendered="#{projectManager.projects.rowCount > 0}"
title="#{i18n['project.show.table.title']}"
summary="#{i18n['project.show.table.title']}"
border="0"
headerClass="datatableHeader"
rowClasses="datatableRow,datatableRow2"
columnClasses="dataTableFirstColumn"
styleClass="datatable"
id="dtProjects">
<h:column>
<f:facet name="header"><h:outputText value="#" /></f:facet>
<h:outputText value="#{projectManager.projects.rowIndex + 1}" />
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{i18n['project.show.table.header.name']}" /></f:facet>
<h:outputText value="#{project.name}" />
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{i18n['project.show.table.header.startDate']}"/></f:facet>
<h:outputText value="#{project.startDate}">
<f:convertDateTime pattern="#{i18n['project.show.table.header.startDate.pattern']}" />
</h:outputText>
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{i18n['project.show.table.header.endDate']}"/></f:facet>
<h:outputText value="#{project.endDate}">
<f:convertDateTime pattern="#{i18n['project.show.table.header.endDate.pattern']}" />
</h:outputText>
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{i18n['project.show.table.header.actions']}"/></f:facet>
<h:commandButton styleClass="botaoPostIt" action="#{projectManager.edit}" value="#{i18n['project.show.button.edit']}" />
<h:commandButton styleClass="botaoPostIt" action="#{projectManager.remove}" value="#{i18n['project.show.button.delete']}" />
<h:commandButton styleClass="botaoPostIt" action="#{projectManager.showSprints}" value="#{i18n['project.show.button.showSprints']}" />
</h:column>
</h:dataTable>
<h:commandButton styleClass="botaoPostIt" action="#{projectManager.create}" value="#{i18n['project.show.button.newProject']}" />
</h:form>
</ui:define>
</ui:composition>
</html>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:composite="http://java.sun.com/jsf/composite">
<composite:interface>
<composite:valueHolder name="postitLabel"/>
<composite:valueHolder name="postitText"/>
<composite:valueHolder name="postitLabel2"/>
<composite:valueHolder name="postitText2"/>
<composite:valueHolder name="postitLabel3"/>
<composite:valueHolder name="postitText3"/>
</composite:interface>
<composite:implementation>
<h:panelGrid styleClass="bigPostitComponent" columns="2" columnClasses="postitLabel, postItInfo">
<f:facet name="header">
<f:verbatim>
<br></br>
</f:verbatim>
</f:facet>
<h:outputText value="#{postitLabel}"/>
<h:outputText value="#{postitText}"/>
<h:outputText value="#{postitLabel2}"/>
<h:outputText value="#{postitText2}"/>
<h:outputText value="#{postitLabel3}"/>
<h:outputText value="#{postitText3}"/>
</h:panelGrid>
</composite:implementation>
</html>
\ No newline at end of file
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:composite="http://java.sun.com/jsf/composite"
xmlns:scrum="http://java.sun.com/jsf/composite/components"
xmlns:ui="http://java.sun.com/jsf/facelets">
<composite:interface>
<composite:valueHolder name="image"/>
</composite:interface>
<composite:implementation>
<h:form id="menuSelectProjectForm">
<table width="990" class="menuTable" cellpadding="0" cellspacing="0" id="menuTable">
<tr>
<scrum:menuItem>
<ui:param name="label" value="#{i18n['menuitem.label.home']}"></ui:param>
<ui:param name="destination" value="#{i18n['menuitem.path.home']}"></ui:param>
<ui:param name="menuid" value="1"></ui:param>
</scrum:menuItem>
<scrum:menuItem>
<ui:param name="label" value="#{i18n['menuitem.label.projects']}"></ui:param>
<ui:param name="destination" value="#{i18n['menuitem.path.projects']}"></ui:param>
<ui:param name="menuid" value="2"></ui:param>
</scrum:menuItem>
<scrum:menuItem>
<ui:param name="label" value="#{i18n['menuitem.label.settings']}"></ui:param>
<ui:param name="destination" value=""></ui:param>
<ui:param name="menuid" value="4"></ui:param>
</scrum:menuItem>
<scrum:menuItem>
<ui:param name="label" value="#{i18n['menuitem.label.jsf2']}"></ui:param>
<ui:param name="destination" value=""></ui:param>
<ui:param name="menuid" value="5"></ui:param>
</scrum:menuItem>
<td>
<h:outputLabel for="prjCombo" value="#{i18n['home.project.combo.label']}" styleClass="formLabel" />
<h:selectOneMenu id="prjCombo" value="#{projectManager.currentProject}" styleClass="formInput">
<f:selectItems value="#{projectManager.projectList}" var="project" itemLabel="#{project.name}" itemValue="#{project}"/>
</h:selectOneMenu>
</td>
<td>
<h:commandButton value="Change Project" action="#{projectManager.viewSprints}"></h:commandButton>
</td>
</tr>
<tr>
<scrum:submenu>
<ui:param name="menuid" value="1"></ui:param>
</scrum:submenu>
<scrum:submenu>
<ui:param name="menuid" value="2"></ui:param>
<scrum:submenuItem>
<ui:param name="label" value="#{i18n['menuitem.label.showProjects']}"></ui:param>
<ui:param name="destination" value="#{i18n['menuitem.path.showProjects']}"></ui:param>
</scrum:submenuItem>
</scrum:submenu>
<scrum:submenu>
<ui:param name="menuid" value="4"></ui:param>
<scrum:submenuItem>
<ui:param name="label" value="#{i18n['menuitem.label.changeskin']}"></ui:param>
<ui:param name="destination" value="#{i18n['menuitem.path.changeskin']}"></ui:param>
</scrum:submenuItem>
</scrum:submenu>
<scrum:submenu>
<ui:param name="menuid" value="5"></ui:param>
<scrum:submenuItem>
<ui:param name="label" value="#{i18n['menuitem.label.about']}"></ui:param>
<ui:param name="destination" value="#{i18n['menuitem.path.about']}"></ui:param>
</scrum:submenuItem>
<scrum:submenuItem>
<ui:param name="label" value="#{i18n['menuitem.label.jsr314']}"></ui:param>
<ui:param name="destination" value="#{i18n['menuitem.path.jsr314']}"></ui:param>
</scrum:submenuItem>
<scrum:submenuItem>
<ui:param name="label" value="#{i18n['menuitem.label.irc']}"></ui:param>
<ui:param name="destination" value="#{i18n['menuitem.path.irc']}"></ui:param>
</scrum:submenuItem>
<scrum:submenuItem>
<ui:param name="label" value="#{i18n['menuitem.label.documentation']}"></ui:param>
<ui:param name="destination" value="#{i18n['menuitem.path.documentation']}"></ui:param>
</scrum:submenuItem>
</scrum:submenu>
<scrum:submenu>
<ui:param name="menuid" value="6"></ui:param>
</scrum:submenu>
</tr>
</table>
<h:graphicImage value="#{image}"></h:graphicImage><br/>
</h:form>
</composite:implementation>
</html>
\ No newline at end of file
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:composite="http://java.sun.com/jsf/composite">
<composite:interface>
<composite:valueHolder name="label" />
<composite:valueHolder name="destination" />
<composite:valueHolder name="menuid" />
</composite:interface>
<composite:implementation>
<td>
<h:outputLink styleClass="menuhandler" value="#{destination}" onmouseover="menuHighlight(#{menuid})" rendered="#{label!=''}">
<h:outputText value="#{label}"/>
</h:outputLink>
<composite:insertChildren />
</td>
</composite:implementation>
</html>
\ No newline at end of file
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:composite="http://java.sun.com/jsf/composite"
xmlns:ui="http://java.sun.com/jsf/facelets">
<composite:interface>
<composite:valueHolder name="postitLabel"/>
<composite:valueHolder name="postitText"/>
<composite:attribute name="color" type="java.lang.String"/>
<composite:attribute name="action" method-signature="java.lang.String action()" targets="postitAction"/>
</composite:interface>
<composite:implementation>
<h:panelGrid styleClass="postitComponent#{cc.attrs.color}">
<h:panelGroup>
<h:outputText value="#{postitLabel}" styleClass="postitLabel"/> <br/><br/>
<ui:insert name="main">
<h:commandLink id="postitAction" immediate="true">
<h:outputText value="#{postitText}"/>
</h:commandLink>
</ui:insert>
</h:panelGroup>
</h:panelGrid>
</composite:implementation>
</html>
\ No newline at end of file
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition template="postit.xhtml">
<ui:define name="main">
<h:link outcome="#{cc.attrs.url}" value="#{postitText}"
rendered="#{cc.attrs.url != null}">
<f:param name="#{cc.attrs.paramName}" value="#{cc.attrs.paramValue}" />
</h:link>
</ui:define>
</ui:composition>
</html>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:composite="http://java.sun.com/jsf/composite">
<ui:composition>
<composite:interface>
<composite:valueHolder name="menuid" />
</composite:interface>
<composite:implementation>
<td>
<div class="menu" id="menu#{menuid}">
<ul>
<composite:insertChildren></composite:insertChildren>
</ul>
</div>
</td>
</composite:implementation>
</ui:composition>
</html>
\ No newline at end of file
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:composite="http://java.sun.com/jsf/composite">
<composite:interface>
<composite:valueHolder name="label" />
<composite:valueHolder name="destination" />
</composite:interface>
<composite:implementation>
<li>
<h:outputLink value="#{destination}" rendered="#{label!=''}">
<h:outputText value="#{label}" />
</h:outputLink>
</li>
</composite:implementation>
</html>
\ No newline at end of file
label=T\u00EDtulo
version=0.1.0
\ No newline at end of file
<?xml version="1.0" encoding="ISO-8859-1" ?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:composite="http://java.sun.com/jsf/composite"
xmlns:fn="http://java.sun.com/jsp/jstl/functions">
<ui:composition>
<composite:interface>
<composite:attribute name="text" required="true" />
<composite:valueHolder name="oTitle" />
<composite:facet name="header" />
<composite:facet name="footer" />
</composite:interface>
<composite:implementation>
<h:panelGrid columns="1" rendered="#{not empty compositeComponent.facets.header}">
<composite:insertFacet name="header" />
</h:panelGrid>
<h:panelGroup>
<h1>
<h:outputText id="otTitle" value="#{compositeComponent.attrs.text}" />
<span style="font-size: small; color: gray; font-family: serif"><h:outputLabel value="#{fn:toLowerCase(compositeComponent.resourceBundleMap.version)}" /></span>
</h1>
</h:panelGroup>
<h:panelGroup rendered="#{not empty compositeComponent.children}">
<div style="border: 1px dotted gray; padding: 10px; margin: 10px">
<composite:insertChildren />
</div>
</h:panelGroup>
<h:panelGrid columns="1" rendered="#{not empty compositeComponent.facets.footer}">
<composite:insertFacet name="footer" />
</h:panelGrid>
</composite:implementation>
</ui:composition>
</html>
\ No newline at end of file
rotulo=Title
versao=0.1.0
\ No newline at end of file
rotulo=T\u00EDtulo
versao=0.1.0
\ No newline at end of file
body {
background-color: orange;
}
span.error {
color: red;
font-size: 22px;
}
h1 {
font-family: serif;
color: white;
}
\ No newline at end of file
div.navBarClass span, div.navBarClass {
/* Blue 100%*/
color:#0069AA;
padding:10px;
}
.tituloForm {
font-size: 10pt;
/* Blue 100%*/
color: #0069AA;;
font-weight:bold;
padding:5px;
margin:5px;
}
input.botaoPostIt{
font-size: 8pt;
/* Blue 100%*/
color: #0069AA;
font-weight:bold;
background-color:white;
}
.inputPattern{
/* Blue 20%*/
color: #B3D4E7;
}
label {
font-size: 12px;
/* Blue 100%*/
color: #0069AA;
text-align: left;
border:none;
}
input, select,textarea {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
/* Orange 100% */
color: #0069AA;
text-align: left;
background-color:white;
border-style:ridge;
/*lightgray*/
border:1px solid #d3d3d3;
padding:4px;
margin:4px;
margin-bottom:4px;
font-weight:normal;
}
.datatableHeader{
/* Orange 100% */
background-color:#0069AA;
color:white;
font-size:12pt;
font-weight:normal;
padding:10px;
margin:10px;
}
.datatableRow2{
/* Blue 20% */
background-color:#B3D4E7;
font-size:12px;
color:black;
padding:15px;
margin:15px;
text-align:center;
}
.navigationLink{
text-decoration:none;
text-align:right;
/* Blue 100% */
color:#0069AA;
}
/*Diferent datatable lines / oposite*/
.datatableRow{
background-color:white;
color:black;
font-size:12px;
text-align:center;
}
table.menuTable{
/* it seems its not necessary */
border-collapse:collapse;
vertical-align:middle;
text-align: left;
}
table.menuTable tr td{
vertical-align:middle;
padding-bottom:0px;
/*space between menu itens */
width:168px;
}
.menu a{
text-decoration: none;
font-family: Arial, Helvetica, sans-serif ;
font-size: 12px;
padding: 10px;
/* Blue 100% */
color: #0069AA;
}
/* menuItem and menu spacing */
.menu ul{
text-align:left;
padding:0pt;
margin:0pt;
/* sub menu item background */
background-color:white;
/* fundo transparente
background-image:url("../resources/images/menu/Transparency.png;");
*/
}
/* submenu div */
.menu{
display:none;
position:absolute;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
}
/* submenu item*/
.menu li{
/* white background for avoiding transparency on submenu item */
/*background-color:white;*/
list-style-type: none;
display: block;
padding:10px;
/* altura do submenu */
width: 142px;
/* Orange 100% */
border:1px solid #0069AA;
font-weight:bold;
}
.menuhandler {
/* Orange 100% */
border:1px solid #0069AA;
color:white;
text-decoration:none;
display: block;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
width: 141px;
vertical-align:middle;
text-align: left;
font-weight: bold;
padding:10px;
background-color:#0069AA;
/* fundo transparente
background-image:url("../resources/images/menu/Transparency.png;");
color:white;
*/
}
.selectProject{
vertical-align:bottom;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
text-align:center;
}
.postitComponent{
background-image:url("../resources/images/postits/novos/postit_azul_150x145.png");
width:150px;
height:145px;
font-size: 14px;
text-align:center;
color:white;
}
.postitComponent tr td{
padding: 5pt;
padding-top: 15pt;
vertical-align:top;
}
.postitComponent a{
text-decoration:none;
color:white;
}
.bigPostitComponent{
background-image:url("../resources/images/postits/novos/postit_azul_315x150.png");
background-repeat:no-repeat;
width:315px;
height:150px;
font-size: 14px;
text-align:center;
color:white;
}
.bigPostitComponent tr td{
padding: 5pt;
vertical-align:top;
}
div.navBarClass span, div.navBarClass {
/* Orange 100%*/
color:#F78E1E;
padding:10px;
}
.tituloForm {
font-size: 10pt;
/* Orange 100%*/
color: #F78E1E;;
font-weight:bold;
padding:5px;
margin:5px;
}
input.botaoPostIt{
font-size: 8pt;
/* Orange 100%*/
color: #F78E1E;
font-weight:bold;
background-color:white;
}
.inputPattern{
/* Orange 20%*/
color: #FCDEBC;
}
label {
font-size: 12px;
/* Orange 100%*/
color: #F78E1E;
text-align: left;
border:none;
}
input, select,textarea {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
/* Orange 100% */
color: #F78E1E;
text-align: left;
background-color:white;
border-style:ridge;
/*lightgray*/
border:1px solid #d3d3d3;
padding:4px;
margin:4px;
margin-bottom:4px;
font-weight:normal;
}
.datatableHeader{
/* Orange 100% */
background-color:#F78E1E;
color:white;
font-size:12pt;
font-weight:normal;
padding:10px;
margin:10px;
}
.datatableRow2{
/* Orange 20% */
background-color:#FCDEBC;
font-size:12px;
color:black;
padding:15px;
margin:15px;
text-align:center;
}
.navigationLink{
text-decoration:none;
text-align:right;
/* Orange 100% */
color:#F78E1E;
}
/*Diferent datatable lines / oposite*/
.datatableRow{
background-color:white;
color:black;
font-size:12px;
text-align:center;
}
table.menuTable{
/* it seems its not necessary */
border-collapse:collapse;
vertical-align:middle;
text-align: left;
}
table.menuTable tr td{
vertical-align:middle;
padding-bottom:0px;
/*space between menu itens */
width:168px;
}
.menu a{
text-decoration: none;
font-family: Arial, Helvetica, sans-serif ;
font-size: 12px;
padding: 10px;
/* Orange 100% */
color: #F78E1E;
}
/* menuItem and menu spacing */
.menu ul{
text-align:left;
padding:0pt;
margin:0pt;
/* sub menu item background */
background-color:white;
/* fundo transparente
background-image:url("../resources/images/menu/Transparency.png;");
*/
}
/* submenu div */
.menu{
display:none;
position:absolute;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
}
/* submenu item*/
.menu li{
/* white background for avoiding transparency on submenu item */
/*background-color:white;*/
list-style-type: none;
display: block;
padding:10px;
/* altura do submenu */
width: 142px;
/* Orange 100% */
border:1px solid #F78E1E;
font-weight:bold;
}
.menuhandler {
/* Orange 100% */
border:1px solid #F78E1E;
color:white;
text-decoration:none;
display: block;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
width: 141px;
vertical-align:middle;
text-align: left;
font-weight: bold;
padding:10px;
background-color:#F78E1E;
/* fundo transparente
background-image:url("../resources/images/menu/Transparency.png;");
color:white;
*/
}
.selectProject{
vertical-align:bottom;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
text-align:center;
}
.postitComponent{
background-image:url("../resources/images/postits/novos/postit_lara_150x145.png");
width:150px;
height:145px;
font-size: 14px;
text-align:center;
color:white;
}
.postitComponent a{
text-decoration:none;
color:black;
}
.postitComponent tr td{
padding: 5pt;
padding-top: 15pt;
vertical-align:top;
}
.bigPostitComponent{
background-image:url("../resources/images/postits/novos/postit_lara_315x150.png");
background-repeat:no-repeat;
width:315px;
height:150px;
font-size: 14px;
text-align:center;
color:white;
}
.bigPostitComponent tr td{
padding: 5pt;
vertical-align:top;
}
.postitComponent a{
text-decoration:none;
color:black;
}
div.navBarClass span, div.navBarClass {
/* Red 100%*/
color: #EF3E42;;
padding:10px;
}
.tituloForm {
font-size: 10pt;
/* Red 100%*/
color: #EF3E42;;
font-weight:bold;
padding:5px;
margin:5px;
}
input.botaoPostIt{
font-size: 8pt;
/* Red 100%*/
color: #EF3E42;
font-weight:bold;
background-color:white;
}
.inputPattern{
/* Red 20%*/
color: #F8C6C7;
}
label {
font-size: 10pt;
/* Red 100%*/
color: #EF3E42;
text-align: left;
border:none;
}
input, select,textarea {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
/* Red 100% */
color: #EF3E42;
text-align: left;
background-color:white;
border-style:ridge;
/*lightgray*/
border:1px solid #d3d3d3;
padding:4px;
margin:4px;
margin-bottom:4px;
font-weight:normal;
}
.datatableHeader{
/* Red 100% */
background-color:#EF3E42;
color:white;
font-size:12pt;
font-weight:normal;
padding:10px;
margin:10px;
}
.datatableRow2{
/* blue 20% */
background-color:#F8C6C7;
font-size:12px;
color:black;
padding:15px;
margin:15px;
text-align:center;
}
.navigationLink{
text-decoration:none;
text-align:right;
/* Red 100% */
color:#EF3E42;
}
/*Diferent datatable lines / oposite*/
.datatableRow{
background-color:white;
color:black;
font-size:12px;
text-align:center;
}
table.menuTable{
/* it seems its not necessary */
border-collapse:collapse;
vertical-align:middle;
text-align: left;
}
table.menuTable tr td{
vertical-align:middle;
padding-bottom:0px;
/*space between menu itens */
width:168px;
}
.menu a{
text-decoration: none;
font-family: Arial, Helvetica, sans-serif ;
font-size: 12px;
padding: 10px;
/* Red 100% */
color: #EF3E42;
}
/* menuItem and menu spacing */
.menu ul{
text-align:left;
padding:0pt;
margin:0pt;
/* sub menu item background */
background-color:white;
/* fundo transparente
background-image:url("../resources/images/menu/Transparency.png;");
*/
}
/* submenu div */
.menu{
display:none;
position:absolute;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
}
/* submenu item*/
.menu li{
/* white background for avoiding transparency on submenu item */
/*background-color:white;*/
list-style-type: none;
display: block;
padding:10px;
/* altura do submenu */
width: 142px;
/* Red 100% */
border:1px solid #EF3E42;
font-weight:bold;
}
.menuhandler {
/* Red 100% */
border:1px solid #EF3E42;
color:white;
text-decoration:none;
display: block;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
width: 141px;
vertical-align:middle;
text-align: left;
font-weight: bold;
padding:10px;
background-color:#EF3E42;
/* fundo transparente
background-image:url("../resources/images/menu/Transparency.png;");
color:white;
*/
}
.selectProject{
vertical-align:middle;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
text-align:center;
}
.postitComponent{
background-image:url("../resources/images/postits/novos/postit_verm_150x145.png");
width:150px;
height:145px;
font-size: 14px;
text-align:center;
color:white;
}
.postitComponent tr td{
padding: 5pt;
padding-top: 15pt;
vertical-align:top;
}
.bigPostitComponent{
background-image:url("../resources/images/postits/novos/postit_verm_315x150.png");
background-repeat:no-repeat;
width:315px;
height:150px;
font-size: 14px;
text-align:center;
color:white;
}
.bigPostitComponent tr td{
padding: 5pt;
vertical-align:top;
}
.postitComponent a{
text-decoration:none;
color:white;
}
div.navBarClass span, div.navBarClass {
/* Blue 100%*/
color:#0069AA;
padding:10px;
}
.tituloForm {
font-size: 10pt;
/* Blue 100%*/
color: #0069AA;;
font-weight:bold;
padding:5px;
margin:5px;
}
input.botaoPostIt{
font-size: 8pt;
/* Blue 100%*/
color: #0069AA;
font-weight:bold;
background-color:white;
}
.inputPattern{
/* Blue 20%*/
color: #B3D4E7;
}
label {
font-size: 12px;
/* Blue 100%*/
color: #0069AA;
text-align: left;
border:none;
}
input, select,textarea {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
/* Orange 100% */
color: #0069AA;
text-align: left;
background-color:white;
border-style:ridge;
/*lightgray*/
border:1px solid #d3d3d3;
padding:4px;
margin:4px;
margin-bottom:4px;
font-weight:normal;
}
.datatableHeader{
/* Orange 100% */
background-color:#0069AA;
color:white;
font-size:12pt;
font-weight:normal;
padding:10px;
margin:10px;
}
.datatableRow2{
/* Blue 20% */
background-color:#B3D4E7;
font-size:12px;
color:black;
padding:15px;
margin:15px;
text-align:center;
}
.navigationLink{
text-decoration:none;
text-align:right;
/* Blue 100% */
color:#0069AA;
}
/*Diferent datatable lines / oposite*/
.datatableRow{
background-color:white;
color:black;
font-size:12px;
text-align:center;
}
table.menuTable{
/* it seems its not necessary */
border-collapse:collapse;
vertical-align:middle;
text-align: left;
}
table.menuTable tr td{
vertical-align:middle;
padding-bottom:0px;
/*space between menu itens */
width:168px;
}
.menu a{
text-decoration: none;
font-family: Arial, Helvetica, sans-serif ;
font-size: 12px;
padding: 10px;
/* Blue 100% */
color: #0069AA;
}
/* menuItem and menu spacing */
.menu ul{
text-align:left;
padding:0pt;
margin:0pt;
/* sub menu item background */
background-color:white;
/* fundo transparente
background-image:url("../resources/images/menu/Transparency.png;");
*/
}
/* submenu div */
.menu{
display:none;
position:absolute;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
}
/* submenu item*/
.menu li{
/* white background for avoiding transparency on submenu item */
/*background-color:white;*/
list-style-type: none;
display: block;
padding:10px;
/* altura do submenu */
width: 142px;
/* Orange 100% */
border:1px solid #0069AA;
font-weight:bold;
}
.menuhandler {
/* Orange 100% */
border:1px solid #0069AA;
color:white;
text-decoration:none;
display: block;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
width: 141px;
vertical-align:middle;
text-align: left;
font-weight: bold;
padding:10px;
background-color:#0069AA;
/* fundo transparente
background-image:url("../resources/images/menu/Transparency.png;");
color:white;
*/
}
.selectProject{
vertical-align:bottom;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
text-align:center;
}
.postitComponent{
background-image:url("../resources/images/postits/novos/postit_azul_150x145.png");
width:150px;
height:145px;
font-size: 14px;
text-align:center;
color:white;
}
.postitComponent tr td{
padding: 5pt;
padding-top: 15pt;
vertical-align:top;
}
.postitComponent a{
text-decoration:none;
color:white;
}
.bigPostitComponent{
background-image:url("../resources/images/postits/novos/postit_azul_315x150.png");
background-repeat:no-repeat;
width:315px;
height:150px;
font-size: 14px;
text-align:center;
color:white;
}
.bigPostitComponent tr td{
padding: 5pt;
vertical-align:top;
}
div.navBarClass span, div.navBarClass {
/* Yellow 100%*/
color: #FDBB30;;
padding:10px;
}
.tituloForm {
font-size: 10pt;
/* Yellow 100%*/
color: #FDBB30;;
font-weight:bold;
padding:5px;
margin:5px;
}
input.botaoPostIt{
font-size: 8pt;
/* Yellow 100%*/
color: #FDBB30;
font-weight:bold;
background-color:white;
}
.inputPattern {
/* Yellow 20%*/
color: #FDEAC0
}
label {
font-size: 10pt;
/* Yellow 100%*/
color: #FDBB30;
text-align: left;
border:none;
}
input, select,textarea {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
/* Yellow 100% */
color: #FDBB30;
text-align: left;
background-color:white;
border-style:ridge;
/*lightgray*/
border:1px solid #d3d3d3;
padding:4px;
margin:4px;
margin-bottom:4px;
font-weight:normal;
}
.datatableHeader{
/* Yellow 100% */
background-color:#FDBB30;
color:white;
font-size:12pt;
font-weight:normal;
padding:10px;
margin:10px;
}
.datatableRow2{
/* Yellow 20% */
background-color:#FDEAC0;
font-size:12px;
color:black;
padding:15px;
margin:15px;
text-align:center;
}
.navigationLink{
text-decoration:none;
text-align:right;
/* Yellow 100% */
color:#FDBB30;
}
/*Diferent datatable lines / oposite*/
.datatableRow{
background-color:white;
color:black;
font-size:12px;
text-align:center;
}
.dataTableFirstColumn{
font-weight:bold;
}
table.menuTable{
/* it seems its not necessary */
border-collapse:collapse;
vertical-align:middle;
text-align: left;
}
table.menuTable tr td{
vertical-align:middle;
padding-bottom:0px;
/*space between menu itens */
width:168px;
}
.menu a{
text-decoration: none;
font-family: Arial, Helvetica, sans-serif ;
font-size: 12px;
padding: 10px;
/* Yellow 100% */
color: #FDBB30;
}
/* menuItem and menu spacing */
.menu ul{
text-align:left;
padding:0pt;
margin:0pt;
/* sub menu item background */
background-color:white;
/* fundo transparente
background-image:url("../resources/images/menu/Transparency.png;");
*/
}
/* submenu div */
.menu{
display:none;
position:absolute;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
}
/* submenu item*/
.menu li{
/* white background for avoiding transparency on submenu item */
/*background-color:white;*/
list-style-type: none;
display: block;
padding:10px;
/* altura do submenu */
width: 142px;
/* Yellow 100% */
border:1px solid #FDBB30;
font-weight:bold;
}
.menuhandler {
/* Yellow 100% */
border:1px solid #FDBB30;
color:white;
text-decoration:none;
display: block;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
width: 141px;
vertical-align:middle;
text-align: left;
font-weight: bold;
padding:10px;
background-color:#FDBB30;
/* fundo transparente
background-image:url("../resources/images/menu/Transparency.png;");
color:white;
*/
}
.selectProject{
vertical-align:middle;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
text-align:center;
padding:3pt;
}
.postitComponent{
background-image:url("../resources/images/postits/novos/postit_amar_150x145.png");
width:150px;
height:145px;
font-size: 14px;
text-align:center;
color:white;
}
.postitComponent tr td{
padding: 5pt;
padding-top: 15pt;
vertical-align:top;
}
.bigPostitComponent{
background-image:url("../resources/images/postits/novos/postit_amar_315x150.png");
background-repeat:no-repeat;
width:315px;
height:150px;
font-size: 14px;
text-align:center;
color:white;
}
.bigPostitComponent tr td{
padding: 5pt;
vertical-align:top;
}
.postitComponent a{
text-decoration:none;
color:black;
}
div.navBarClass a{
background-color: white;
vertical-align: middle;
padding:10px;
color:gray;
text-decoration:none;
}
/* Whiteboard */
.tableHeader{
background-image:url("../resources/images/lousaNova/quadroNegro_top_990x80.png");
background-repeat:no-repeat;
height:80px;
width:100%;
margin: 0px;
padding: 0px;
}
table.tableBody{
width:990px;
background-image:url("../resources/images/lousaNova/quadroNegro_meio_990x10.png;");
margin: 0px;
padding: 0px;
border-collapse:collapse;
border-spacing:0pt;
background-repeat:repeat-y;
}
table.tableBody tr td{
/* important to make content aligned inside the table*/
vertical-align:top;
}
td.tableFooter{
width:990px;
height:120px;
background-image:url("../resources/images/lousaNova/quadroNegro_top_990x80");
background-repeat:no-repeat;
margin:0px;
padding:0px;
}
td.footerForm{
text-align:center;
}
.errorMessage{
color: red;
font-size: 12px;
}
td.formLabel, label{
margin-left:15pt;
}
.formLabel {
width:30%;
text-align: right;
background-position: left;
background-repeat:no-repeat;
}
.formInput{
font-size: 12px;
}
td{
font-family: Arial, Helvetica, sans-serif;
}
.datatable {
border-collapse:collapse;
}
.datatable tr td{
padding:5px;
margin:5px;
}
.dataTableFirstColumn{
font-weight:bold;
}
.postitComponentYellow{
background-image:url("../resources/images/postits/novos/postit_amar_150x145.png");
width:150px;
height:145px;
font-size: 14px;
text-align:center;
color:black;
}
.postItComponentYellow a {
color:black;
text-decoration:none;
}
.postitComponentYellow tr td{
padding: 5pt;
padding-top: 15pt;
vertical-align:top;
}
.postitComponentRed{
background-image:url("../resources/images/postits/novos/postit_verm_150x145.png");
width:150px;
height:145px;
font-size: 14px;
text-align:center;
color:white;
}
.postitComponentRed tr td{
padding: 5pt;
padding-top: 15pt;
vertical-align:top;
}
.postItComponentRed a {
color:white;
text-decoration:none;
}
.postitComponentBlue{
background-image:url("../resources/images/postits/novos/postit_azul_150x145.png");
width:150px;
height:145px;
font-size: 14px;
text-align:center;
color:white;
}
.postitComponentBlue tr td{
padding: 5pt;
padding-top: 15pt;
vertical-align:top;
}
.postItComponentBlue a {
color:white;
text-decoration:none;
}
.postitComponentOrange{
background-image:url("../resources/images/postits/novos/postit_lara_150x145.png");
width:150px;
height:145px;
font-size: 14px;
text-align:center;
color:black;
}
.postitComponentOrange tr td{
padding: 5pt;
padding-top: 15pt;
vertical-align:top;
}
.postItComponentOrange a {
color:black;
text-decoration:none;
}
.postitLabel{
font-weight:bold;
font-size:16px;
text-align:right;
width:30%
}
.postItInfo{
width:70%;
text-align:left;
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
function validate(refid) {
var input = document.getElementById(refid);
if (isNaN(input.value)) {
alert("Input is not a number");
}
}
\ No newline at end of file
/*
* OSR: https://opensourcereview.central.sun.com/app?action=ViewReq&review_type=Expedited&traq_num=12626
* source: http://www.javascripttoolbox.com/libsource.php/date/source/date.js
* version: 1.02
*/
/**
* Copyright (c)2005-2009 Matt Kruse (javascripttoolbox.com)
*
* Dual licensed under the MIT and GPL licenses.
* This basically means you can use this code however you want for
* free, but don't claim to have written it yourself!
* Donations always accepted: http://www.JavascriptToolbox.com/donate/
*
* Please do not link to the .js files on javascripttoolbox.com from
* your site. Copy the files locally to your server instead.
*
*/
/*
Date functions
These functions are used to parse, format, and manipulate Date objects.
See documentation and examples at http://www.JavascriptToolbox.com/lib/date/
*/
Date.$VERSION = 1.02;
// Utility function to append a 0 to single-digit numbers
Date.LZ = function(x) {return(x<0||x>9?"":"0")+x};
// Full month names. Change this for local month names
Date.monthNames = new Array('January','February','March','April','May','June','July','August','September','October','November','December');
// Month abbreviations. Change this for local month names
Date.monthAbbreviations = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
// Full day names. Change this for local month names
Date.dayNames = new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
// Day abbreviations. Change this for local month names
Date.dayAbbreviations = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
// Used for parsing ambiguous dates like 1/2/2000 - default to preferring 'American' format meaning Jan 2.
// Set to false to prefer 'European' format meaning Feb 1
Date.preferAmericanFormat = true;
// If the getFullYear() method is not defined, create it
if (!Date.prototype.getFullYear) {
Date.prototype.getFullYear = function() { var yy=this.getYear(); return (yy<1900?yy+1900:yy); } ;
}
// Parse a string and convert it to a Date object.
// If no format is passed, try a list of common formats.
// If string cannot be parsed, return null.
// Avoids regular expressions to be more portable.
Date.parseString = function(val, format) {
// If no format is specified, try a few common formats
if (typeof(format)=="undefined" || format==null || format=="") {
var generalFormats=new Array('y-M-d','MMM d, y','MMM d,y','y-MMM-d','d-MMM-y','MMM d','MMM-d','d-MMM');
var monthFirst=new Array('M/d/y','M-d-y','M.d.y','M/d','M-d');
var dateFirst =new Array('d/M/y','d-M-y','d.M.y','d/M','d-M');
var checkList=new Array(generalFormats,Date.preferAmericanFormat?monthFirst:dateFirst,Date.preferAmericanFormat?dateFirst:monthFirst);
for (var i=0; i<checkList.length; i++) {
var l=checkList[i];
for (var j=0; j<l.length; j++) {
var d=Date.parseString(val,l[j]);
if (d!=null) {
return d;
}
}
}
return null;
};
this.isInteger = function(val) {
for (var i=0; i < val.length; i++) {
if ("1234567890".indexOf(val.charAt(i))==-1) {
return false;
}
}
return true;
};
this.getInt = function(str,i,minlength,maxlength) {
for (var x=maxlength; x>=minlength; x--) {
var token=str.substring(i,i+x);
if (token.length < minlength) {
return null;
}
if (this.isInteger(token)) {
return token;
}
}
return null;
};
val=val+"";
format=format+"";
var i_val=0;
var i_format=0;
var c="";
var token="";
var token2="";
var x,y;
var year=new Date().getFullYear();
var month=1;
var date=1;
var hh=0;
var mm=0;
var ss=0;
var ampm="";
while (i_format < format.length) {
// Get next token from format string
c=format.charAt(i_format);
token="";
while ((format.charAt(i_format)==c) && (i_format < format.length)) {
token += format.charAt(i_format++);
}
// Extract contents of value based on format token
if (token=="yyyy" || token=="yy" || token=="y") {
if (token=="yyyy") {
x=4;y=4;
}
if (token=="yy") {
x=2;y=2;
}
if (token=="y") {
x=2;y=4;
}
year=this.getInt(val,i_val,x,y);
if (year==null) {
return null;
}
i_val += year.length;
if (year.length==2) {
if (year > 70) {
year=1900+(year-0);
}
else {
year=2000+(year-0);
}
}
}
else if (token=="MMM" || token=="NNN"){
month=0;
var names = (token=="MMM"?(Date.monthNames.concat(Date.monthAbbreviations)):Date.monthAbbreviations);
for (var i=0; i<names.length; i++) {
var month_name=names[i];
if (val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()) {
month=(i%12)+1;
i_val += month_name.length;
break;
}
}
if ((month < 1)||(month>12)){
return null;
}
}
else if (token=="EE"||token=="E"){
var names = (token=="EE"?Date.dayNames:Date.dayAbbreviations);
for (var i=0; i<names.length; i++) {
var day_name=names[i];
if (val.substring(i_val,i_val+day_name.length).toLowerCase()==day_name.toLowerCase()) {
i_val += day_name.length;
break;
}
}
}
else if (token=="MM"||token=="M") {
month=this.getInt(val,i_val,token.length,2);
if(month==null||(month<1)||(month>12)){
return null;
}
i_val+=month.length;
}
else if (token=="dd"||token=="d") {
date=this.getInt(val,i_val,token.length,2);
if(date==null||(date<1)||(date>31)){
return null;
}
i_val+=date.length;
}
else if (token=="hh"||token=="h") {
hh=this.getInt(val,i_val,token.length,2);
if(hh==null||(hh<1)||(hh>12)){
return null;
}
i_val+=hh.length;
}
else if (token=="HH"||token=="H") {
hh=this.getInt(val,i_val,token.length,2);
if(hh==null||(hh<0)||(hh>23)){
return null;
}
i_val+=hh.length;
}
else if (token=="KK"||token=="K") {
hh=this.getInt(val,i_val,token.length,2);
if(hh==null||(hh<0)||(hh>11)){
return null;
}
i_val+=hh.length;
hh++;
}
else if (token=="kk"||token=="k") {
hh=this.getInt(val,i_val,token.length,2);
if(hh==null||(hh<1)||(hh>24)){
return null;
}
i_val+=hh.length;
hh--;
}
else if (token=="mm"||token=="m") {
mm=this.getInt(val,i_val,token.length,2);
if(mm==null||(mm<0)||(mm>59)){
return null;
}
i_val+=mm.length;
}
else if (token=="ss"||token=="s") {
ss=this.getInt(val,i_val,token.length,2);
if(ss==null||(ss<0)||(ss>59)){
return null;
}
i_val+=ss.length;
}
else if (token=="a") {
if (val.substring(i_val,i_val+2).toLowerCase()=="am") {
ampm="AM";
}
else if (val.substring(i_val,i_val+2).toLowerCase()=="pm") {
ampm="PM";
}
else {
return null;
}
i_val+=2;
}
else {
if (val.substring(i_val,i_val+token.length)!=token) {
return null;
}
else {
i_val+=token.length;
}
}
}
// If there are any trailing characters left in the value, it doesn't match
if (i_val != val.length) {
return null;
}
// Is date valid for month?
if (month==2) {
// Check for leap year
if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) { // leap year
if (date > 29){
return null;
}
}
else {
if (date > 28) {
return null;
}
}
}
if ((month==4)||(month==6)||(month==9)||(month==11)) {
if (date > 30) {
return null;
}
}
// Correct hours value
if (hh<12 && ampm=="PM") {
hh=hh-0+12;
}
else if (hh>11 && ampm=="AM") {
hh-=12;
}
return new Date(year,month-1,date,hh,mm,ss);
};
// Check if a date string is valid
Date.isValid = function(val,format) {
return (Date.parseString(val,format) != null);
};
// Check if a date object is before another date object
Date.prototype.isBefore = function(date2) {
if (date2==null) {
return false;
}
return (this.getTime()<date2.getTime());
};
// Check if a date object is after another date object
Date.prototype.isAfter = function(date2) {
if (date2==null) {
return false;
}
return (this.getTime()>date2.getTime());
};
// Check if two date objects have equal dates and times
Date.prototype.equals = function(date2) {
if (date2==null) {
return false;
}
return (this.getTime()==date2.getTime());
};
// Check if two date objects have equal dates, disregarding times
Date.prototype.equalsIgnoreTime = function(date2) {
if (date2==null) {
return false;
}
var d1 = new Date(this.getTime()).clearTime();
var d2 = new Date(date2.getTime()).clearTime();
return (d1.getTime()==d2.getTime());
};
// Format a date into a string using a given format string
Date.prototype.format = function(format) {
format=format+"";
var result="";
var i_format=0;
var c="";
var token="";
var y=this.getYear()+"";
var M=this.getMonth()+1;
var d=this.getDate();
var E=this.getDay();
var H=this.getHours();
var m=this.getMinutes();
var s=this.getSeconds();
var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
// Convert real date parts into formatted versions
var value=new Object();
if (y.length < 4) {
y=""+(+y+1900);
}
value["y"]=""+y;
value["yyyy"]=y;
value["yy"]=y.substring(2,4);
value["M"]=M;
value["MM"]=Date.LZ(M);
value["MMM"]=Date.monthNames[M-1];
value["NNN"]=Date.monthAbbreviations[M-1];
value["d"]=d;
value["dd"]=Date.LZ(d);
value["E"]=Date.dayAbbreviations[E];
value["EE"]=Date.dayNames[E];
value["H"]=H;
value["HH"]=Date.LZ(H);
if (H==0){
value["h"]=12;
}
else if (H>12){
value["h"]=H-12;
}
else {
value["h"]=H;
}
value["hh"]=Date.LZ(value["h"]);
value["K"]=value["h"]-1;
value["k"]=value["H"]+1;
value["KK"]=Date.LZ(value["K"]);
value["kk"]=Date.LZ(value["k"]);
if (H > 11) {
value["a"]="PM";
}
else {
value["a"]="AM";
}
value["m"]=m;
value["mm"]=Date.LZ(m);
value["s"]=s;
value["ss"]=Date.LZ(s);
while (i_format < format.length) {
c=format.charAt(i_format);
token="";
while ((format.charAt(i_format)==c) && (i_format < format.length)) {
token += format.charAt(i_format++);
}
if (typeof(value[token])!="undefined") {
result=result + value[token];
}
else {
result=result + token;
}
}
return result;
};
// Get the full name of the day for a date
Date.prototype.getDayName = function() {
return Date.dayNames[this.getDay()];
};
// Get the abbreviation of the day for a date
Date.prototype.getDayAbbreviation = function() {
return Date.dayAbbreviations[this.getDay()];
};
// Get the full name of the month for a date
Date.prototype.getMonthName = function() {
return Date.monthNames[this.getMonth()];
};
// Get the abbreviation of the month for a date
Date.prototype.getMonthAbbreviation = function() {
return Date.monthAbbreviations[this.getMonth()];
};
// Clear all time information in a date object
Date.prototype.clearTime = function() {
this.setHours(0);
this.setMinutes(0);
this.setSeconds(0);
this.setMilliseconds(0);
return this;
};
// Add an amount of time to a date. Negative numbers can be passed to subtract time.
Date.prototype.add = function(interval, number) {
if (typeof(interval)=="undefined" || interval==null || typeof(number)=="undefined" || number==null) {
return this;
}
number = +number;
if (interval=='y') { // year
this.setFullYear(this.getFullYear()+number);
}
else if (interval=='M') { // Month
this.setMonth(this.getMonth()+number);
}
else if (interval=='d') { // Day
this.setDate(this.getDate()+number);
}
else if (interval=='w') { // Weekday
var step = (number>0)?1:-1;
while (number!=0) {
this.add('d',step);
while(this.getDay()==0 || this.getDay()==6) {
this.add('d',step);
}
number -= step;
}
}
else if (interval=='h') { // Hour
this.setHours(this.getHours() + number);
}
else if (interval=='m') { // Minute
this.setMinutes(this.getMinutes() + number);
}
else if (interval=='s') { // Second
this.setSeconds(this.getSeconds() + number);
}
return this;
};
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
var lastHighlightedMenu=null;
function menuHighlight(menuIndex) {
menuDisappear();
var myDiv = document.getElementById("menu"+menuIndex);
// armazena qual o item de menu foi selecionado
lastHighlightedMenu=myDiv;
myDiv.style.display="block";
}
function menuDisappear() {
// retorna true se diferente de null ou undefined
if(lastHighlightedMenu)
lastHighlightedMenu.style.display="none";
}
\ No newline at end of file
/*
* OSR: https://opensourcereview.central.sun.com/app?action=ViewReq&review_type=Expedited&traq_num=12626
* source: http://www.mattkruse.com/javascript/validations/validations.js
* version: December 29, 2003
*/
// ===================================================================
// Author: Matt Kruse <matt@mattkruse.com>
// WWW: http://www.mattkruse.com/
//
// NOTICE: You may use this code for any purpose, commercial or
// private, without any further permission from the author. You may
// remove this notice from your final code if you wish, however it is
// appreciated by the author if at least my web site address is kept.
//
// You may *NOT* re-distribute this code in any way except through its
// use. That means, you can include it in your product, or your web
// site, or any other form where the code is actually being used. You
// may not put the plain javascript up on your site for download or
// include it in your javascript libraries for download.
// If you wish to share this code with others, please just point them
// to the URL instead.
// Please DO NOT link directly to my .js files from your site. Copy
// the files to your server and use them there. Thank you.
// ===================================================================
// HISTORY
// ------------------------------------------------------------------
// December 29, 2003: Added the option to specify a delimiter for
// multiple valued input field via getInputValue(), etc.
//-------------------------------------------------------------------
// Trim functions
// Returns string with whitespace trimmed
//-------------------------------------------------------------------
function LTrim(str){
if (str==null){return null;}
for(var i=0;str.charAt(i)==" ";i++);
return str.substring(i,str.length);
}
function RTrim(str){
if (str==null){return null;}
for(var i=str.length-1;str.charAt(i)==" ";i--);
return str.substring(0,i+1);
}
function Trim(str){return LTrim(RTrim(str));}
function LTrimAll(str) {
if (str==null){return str;}
for (var i=0; str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t"; i++);
return str.substring(i,str.length);
}
function RTrimAll(str) {
if (str==null){return str;}
for (var i=str.length-1; str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t"; i--);
return str.substring(0,i+1);
}
function TrimAll(str) {
return LTrimAll(RTrimAll(str));
}
//-------------------------------------------------------------------
// isNull(value)
// Returns true if value is null
//-------------------------------------------------------------------
function isNull(val){return(val==null);}
//-------------------------------------------------------------------
// isBlank(value)
// Returns true if value only contains spaces
//-------------------------------------------------------------------
function isBlank(val){
if(val==null){return true;}
for(var i=0;i<val.length;i++) {
if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
}
return true;
}
//-------------------------------------------------------------------
// isInteger(value)
// Returns true if value contains all digits
//-------------------------------------------------------------------
function isInteger(val){
if (isBlank(val)){return false;}
for(var i=0;i<val.length;i++){
if(!isDigit(val.charAt(i))){return false;}
}
return true;
}
//-------------------------------------------------------------------
// isNumeric(value)
// Returns true if value contains a positive float value
//-------------------------------------------------------------------
function isNumeric(val){return(parseFloat(val,10)==(val*1));}
//-------------------------------------------------------------------
// isArray(obj)
// Returns true if the object is an array, else false
//-------------------------------------------------------------------
function isArray(obj){return(typeof(obj.length)=="undefined")?false:true;}
//-------------------------------------------------------------------
// isDigit(value)
// Returns true if value is a 1-character digit
//-------------------------------------------------------------------
function isDigit(num) {
if (num.length>1){return false;}
var string="1234567890";
if (string.indexOf(num)!=-1){return true;}
return false;
}
//-------------------------------------------------------------------
// setNullIfBlank(input_object)
// Sets a form field to "" if it isBlank()
//-------------------------------------------------------------------
function setNullIfBlank(obj){if(isBlank(obj.value)){obj.value="";}}
//-------------------------------------------------------------------
// setFieldsToUpperCase(input_object)
// Sets value of form field toUpperCase() for all fields passed
//-------------------------------------------------------------------
function setFieldsToUpperCase(){
for(var i=0;i<arguments.length;i++) {
arguments[i].value = arguments[i].value.toUpperCase();
}
}
//-------------------------------------------------------------------
// disallowBlank(input_object[,message[,true]])
// Checks a form field for a blank value. Optionally alerts if
// blank and focuses
//-------------------------------------------------------------------
function disallowBlank(obj){
var msg=(arguments.length>1)?arguments[1]:"";
var dofocus=(arguments.length>2)?arguments[2]:false;
if (isBlank(getInputValue(obj))){
if(!isBlank(msg)){alert(msg);}
if(dofocus){
if (isArray(obj) && (typeof(obj.type)=="undefined")) {obj=obj[0];}
if(obj.type=="text"||obj.type=="textarea"||obj.type=="password") { obj.select(); }
obj.focus();
}
return true;
}
return false;
}
//-------------------------------------------------------------------
// disallowModify(input_object[,message[,true]])
// Checks a form field for a value different than defaultValue.
// Optionally alerts and focuses
//-------------------------------------------------------------------
function disallowModify(obj){
var msg=(arguments.length>1)?arguments[1]:"";
var dofocus=(arguments.length>2)?arguments[2]:false;
if (getInputValue(obj)!=getInputDefaultValue(obj)){
if(!isBlank(msg)){alert(msg);}
if(dofocus){
if (isArray(obj) && (typeof(obj.type)=="undefined")) {obj=obj[0];}
if(obj.type=="text"||obj.type=="textarea"||obj.type=="password") { obj.select(); }
obj.focus();
}
setInputValue(obj,getInputDefaultValue(obj));
return true;
}
return false;
}
//-------------------------------------------------------------------
// commifyArray(array[,delimiter])
// Take an array of values and turn it into a comma-separated string
// Pass an optional second argument to specify a delimiter other than
// comma.
//-------------------------------------------------------------------
function commifyArray(obj,delimiter){
if (typeof(delimiter)=="undefined" || delimiter==null) {
delimiter = ",";
}
var s="";
if(obj==null||obj.length<=0){return s;}
for(var i=0;i<obj.length;i++){
s=s+((s=="")?"":delimiter)+obj[i].toString();
}
return s;
}
//-------------------------------------------------------------------
// getSingleInputValue(input_object,use_default,delimiter)
// Utility function used by others
//-------------------------------------------------------------------
function getSingleInputValue(obj,use_default,delimiter) {
switch(obj.type){
case 'radio': case 'checkbox': return(((use_default)?obj.defaultChecked:obj.checked)?obj.value:null);
case 'text': case 'hidden': case 'textarea': return(use_default)?obj.defaultValue:obj.value;
case 'password': return((use_default)?null:obj.value);
case 'select-one':
if (obj.options==null) { return null; }
if(use_default){
var o=obj.options;
for(var i=0;i<o.length;i++){if(o[i].defaultSelected){return o[i].value;}}
return o[0].value;
}
if (obj.selectedIndex<0){return null;}
return(obj.options.length>0)?obj.options[obj.selectedIndex].value:null;
case 'select-multiple':
if (obj.options==null) { return null; }
var values=new Array();
for(var i=0;i<obj.options.length;i++) {
if((use_default&&obj.options[i].defaultSelected)||(!use_default&&obj.options[i].selected)) {
values[values.length]=obj.options[i].value;
}
}
return (values.length==0)?null:commifyArray(values,delimiter);
}
alert("FATAL ERROR: Field type "+obj.type+" is not supported for this function");
return null;
}
//-------------------------------------------------------------------
// getSingleInputText(input_object,use_default,delimiter)
// Utility function used by others
//-------------------------------------------------------------------
function getSingleInputText(obj,use_default,delimiter) {
switch(obj.type){
case 'radio': case 'checkbox': return "";
case 'text': case 'hidden': case 'textarea': return(use_default)?obj.defaultValue:obj.value;
case 'password': return((use_default)?null:obj.value);
case 'select-one':
if (obj.options==null) { return null; }
if(use_default){
var o=obj.options;
for(var i=0;i<o.length;i++){if(o[i].defaultSelected){return o[i].text;}}
return o[0].text;
}
if (obj.selectedIndex<0){return null;}
return(obj.options.length>0)?obj.options[obj.selectedIndex].text:null;
case 'select-multiple':
if (obj.options==null) { return null; }
var values=new Array();
for(var i=0;i<obj.options.length;i++) {
if((use_default&&obj.options[i].defaultSelected)||(!use_default&&obj.options[i].selected)) {
values[values.length]=obj.options[i].text;
}
}
return (values.length==0)?null:commifyArray(values,delimiter);
}
alert("FATAL ERROR: Field type "+obj.type+" is not supported for this function");
return null;
}
//-------------------------------------------------------------------
// setSingleInputValue(input_object,value)
// Utility function used by others
//-------------------------------------------------------------------
function setSingleInputValue(obj,value) {
switch(obj.type){
case 'radio': case 'checkbox': if(obj.value==value){obj.checked=true;return true;}else{obj.checked=false;return false;}
case 'text': case 'hidden': case 'textarea': case 'password': obj.value=value;return true;
case 'select-one': case 'select-multiple':
var o=obj.options;
for(var i=0;i<o.length;i++){
if(o[i].value==value){o[i].selected=true;}
else{o[i].selected=false;}
}
return true;
}
alert("FATAL ERROR: Field type "+obj.type+" is not supported for this function");
return false;
}
//-------------------------------------------------------------------
// getInputValue(input_object[,delimiter])
// Get the value of any form input field
// Multiple-select fields are returned as comma-separated values, or
// delmited by the optional second argument
// (Doesn't support input types: button,file,reset,submit)
//-------------------------------------------------------------------
function getInputValue(obj,delimiter) {
var use_default=(arguments.length>2)?arguments[2]:false;
if (isArray(obj) && (typeof(obj.type)=="undefined")) {
var values=new Array();
for(var i=0;i<obj.length;i++){
var v=getSingleInputValue(obj[i],use_default,delimiter);
if(v!=null){values[values.length]=v;}
}
return commifyArray(values,delimiter);
}
return getSingleInputValue(obj,use_default,delimiter);
}
//-------------------------------------------------------------------
// getInputText(input_object[,delimiter])
// Get the displayed text of any form input field
// Multiple-select fields are returned as comma-separated values, or
// delmited by the optional second argument
// (Doesn't support input types: button,file,reset,submit)
//-------------------------------------------------------------------
function getInputText(obj,delimiter) {
var use_default=(arguments.length>2)?arguments[2]:false;
if (isArray(obj) && (typeof(obj.type)=="undefined")) {
var values=new Array();
for(var i=0;i<obj.length;i++){
var v=getSingleInputText(obj[i],use_default,delimiter);
if(v!=null){values[values.length]=v;}
}
return commifyArray(values,delimiter);
}
return getSingleInputText(obj,use_default,delimiter);
}
//-------------------------------------------------------------------
// getInputDefaultValue(input_object[,delimiter])
// Get the default value of any form input field when it was created
// Multiple-select fields are returned as comma-separated values, or
// delmited by the optional second argument
// (Doesn't support input types: button,file,password,reset,submit)
//-------------------------------------------------------------------
function getInputDefaultValue(obj,delimiter){return getInputValue(obj,delimiter,true);}
//-------------------------------------------------------------------
// isChanged(input_object)
// Returns true if input object's value has changed since it was
// created.
//-------------------------------------------------------------------
function isChanged(obj){return(getInputValue(obj)!=getInputDefaultValue(obj));}
//-------------------------------------------------------------------
// setInputValue(obj,value)
// Set the value of any form field. In cases where no matching value
// is available (select, radio, etc) then no option will be selected
// (Doesn't support input types: button,file,password,reset,submit)
//-------------------------------------------------------------------
function setInputValue(obj,value) {
var use_default=(arguments.length>1)?arguments[1]:false;
if(isArray(obj)&&(typeof(obj.type)=="undefined")){
for(var i=0;i<obj.length;i++){setSingleInputValue(obj[i],value);}
}
else{setSingleInputValue(obj,value);}
}
//-------------------------------------------------------------------
// isFormModified(form_object,hidden_fields,ignore_fields)
// Check to see if anything in a form has been changed. By default
// it will check all visible form elements and ignore all hidden
// fields.
// You can pass a comma-separated list of field names to check in
// addition to visible fields (for hiddens, etc).
// You can also pass a comma-separated list of field names to be
// ignored in the check.
//-------------------------------------------------------------------
function isFormModified(theform,hidden_fields,ignore_fields){
if(hidden_fields==null){hidden_fields="";}
if(ignore_fields==null){ignore_fields="";}
var hiddenFields=new Object();
var ignoreFields=new Object();
var i,field;
var hidden_fields_array=hidden_fields.split(',');
for (i=0;i<hidden_fields_array.length;i++) {
hiddenFields[Trim(hidden_fields_array[i])]=true;
}
var ignore_fields_array=ignore_fields.split(',');
for (i=0;i<ignore_fields_array.length;i++) {
ignoreFields[Trim(ignore_fields_array[i])]=true;
}
for (i=0;i<theform.elements.length;i++) {
var changed=false;
var name=theform.elements[i].name;
if(!isBlank(name)){
var type=theform.elements[i].type;
if(!ignoreFields[name]){
if(type=="hidden"&&hiddenFields[name]){changed=isChanged(theform[name]);}
else if(type=="hidden"){changed=false;}
else {changed=isChanged(theform[name]);}
}
}
if(changed){return true;}
}
return false;
}
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:scrum="http://java.sun.com/jsf/composite/components">
<ui:composition template="/template.xhtml">
<f:metadata>
<f:viewParam name="skin" value="#{skinUrlManager.skin}" />
<f:event type="preRenderView" listener="#{skinUrlManager.update}" />
</f:metadata>
<ui:define name="pageTitle">
<h:outputText value="#{i18n['story.show.title']}"></h:outputText>
</ui:define>
<ui:define name="content">
<h:form id="frmListStories">
<h:panelGrid columns="#{skinValuesManager.size + 1}" width="990" >
<h:outputLabel value=""/>
<ui:repeat value="#{skinValuesManager.names}" var="name">
<td>
<scrum:postitLink color="#{name}" url="changeSkin"
paramName="skin" paramValue="#{name}">
<ui:param name="postitLabel" value=""/>
<ui:param name="postitText" value="#{name}"/>
</scrum:postitLink>
</td>
</ui:repeat>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</html>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="/template.xhtml">
<ui:define name="pageTitle">
<h:outputText value="#{i18n['sprint.create.title']}"/>
</ui:define>
<ui:define name="navigationBar">
<h:commandLink immediate="true" action="/project/show" value="#{i18n['sprint.form.label.projects']}"/>
<h:outputText value="#{i18n['navigation.separtor']}"/>
<h:commandLink immediate="true" action="/project/edit" value="#{sprintManager.project.name}"/>
<h:outputText value="#{i18n['navigation.separtor']}"/>
<h:outputText value="#{i18n['sprint.create.form.title']}" styleClass="tituloForm"/>
</ui:define>
<ui:define name="content">
<h:form styleClass="scrumForm" id="createSprintForm">
<h:panelGrid columns="2" headerClass="tituloForm" footerClass="footerForm">
<ui:include src="form.xhtml" />
<f:facet name="footer">
<h:commandButton rendered="#{sprintManager.project.name != null}" id="btnCreate" action="#{sprintManager.save}" value="#{i18n['sprint.create.button.create']}" styleClass="botaoPostIt" />
<h:commandButton rendered="#{sprintManager.project.name != null}" id="btnCancel" action="show" value="#{i18n['sprint.create.button.cancel']}" styleClass="botaoPostIt" immediate="true" />
</f:facet>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</html>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="/template.xhtml">
<ui:define name="pageTitle">
<h:outputText value="#{i18n['sprint.edit.title']}"/>
</ui:define>
<ui:define name="navigationBar">
<h:commandLink immediate="true" action="/project/show" value="#{i18n['navigation.projects']}"/>
<h:outputText value="#{i18n['navigation.separtor']}"/>
<h:commandLink immediate="true" action="/project/edit" value="#{sprintManager.project.name}"/>
<h:outputText value="#{i18n['navigation.separtor']}"/>
<h:commandLink immediate="true" action="/sprint/show" value="#{i18n['navigation.sprints']}"/>
<h:outputText value="#{i18n['navigation.separtor']}"/>
<h:outputText value="#{i18n['sprint.edit.form.title']}" styleClass="tituloForm"/>
</ui:define>
<ui:define name="content">
<h:form styleClass="scrumForm" id="editSprintForm">
<h:panelGrid columns="2" headerClass="tituloForm" footerClass="footerForm">
<ui:include src="form.xhtml" />
<f:facet name="footer">
<h:commandButton id="btnEditUpdate" action="#{sprintManager.save}" value="#{i18n['sprint.edit.button.update']}" styleClass="botaoPostIt" />
<h:commandButton id="btnEditCancel" action="#{sprintManager.cancelEdit}" immediate="true" value="#{i18n['sprint.edit.button.cancel']}" styleClass="botaoPostIt" />
<h:button styleClass="botaoPostIt" outcome="/dashboard/show" value="#{i18n['sprint.show.button.showDashboard']}" />
</f:facet>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</html>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition>
<h:panelGrid columns="3" columnClasses="formLabel, formInput, formErrorMessage" styleClass="postItFormTable">
<h:outputLabel value="#{i18n['sprint.form.label.name']}:" for="itName"/>
<h:inputText id="itName" value="#{sprintManager.currentSprint.name}" required="true"
requiredMessage="#{i18n['sprint.form.label.name.required']}" size="30" />
<h:message for="itName" styleClass="errorMessage" />
<h:outputLabel value="#{i18n['sprint.form.label.goals']}:" for="itGoals" />
<h:inputTextarea id="itGoals" value="#{sprintManager.currentSprint.goals}" required="true" cols="31" rows="3" requiredMessage="#{i18n['sprint.form.label.goals.required']}" />
<h:message for="itGoals" styleClass="errorMessage"/>
<h:outputLabel value="#{i18n['sprint.form.label.iterationScope']}:" for="itIterationScope" />
<h:inputText id="itIterationScope" value="#{sprintManager.currentSprint.iterationScope}" required="true" size="50" requiredMessage="#{i18n['sprint.form.label.iterationScope.required']}" />
<h:message for="itIterationScope" styleClass="errorMessage"/>
<h:outputLabel value="#{i18n['sprint.form.label.startDate']}:" for="itStartedDate" />
<h:panelGroup>
<h:inputText id="itStartedDate" value="#{sprintManager.currentSprint.startDate}" required="true" requiredMessage="#{i18n['sprint.form.label.startDate.required']}">
<f:convertDateTime pattern="#{i18n['sprint.form.label.startDate.pattern']}" />
</h:inputText>
<h:outputText value="(#{i18n['sprint.form.label.startDate.pattern']})" styleClass="inputPattern" />
</h:panelGroup>
<h:message for="itStartedDate" styleClass="errorMessage" />
<h:outputLabel value="#{i18n['sprint.form.label.dailyMeetingTime']}:" for="itDailyMeetingTime" />
<h:panelGroup>
<h:inputText id="itDailyMeetingTime" value="#{sprintManager.currentSprint.dailyMeetingTime}" required="true" requiredMessage="#{i18n['sprint.form.label.dailyMeetingTime.required']}">
<f:convertDateTime pattern="#{i18n['sprint.form.label.dailyMeetingTime.pattern']}" />
</h:inputText>
<h:outputText value="(#{i18n['sprint.form.label.dailyMeetingTime.pattern']})" styleClass="inputPattern"/>
</h:panelGroup>
<h:message for="itDailyMeetingTime" styleClass="errorMessage"/>
</h:panelGrid>
</ui:composition>
</html>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="/template.xhtml">
<ui:define name="pageTitle">
<h:outputText value="#{i18n['sprint.show.title']}"/>
</ui:define>
<ui:define name="navigationBar">
<h:commandLink action="/project/show" value="#{i18n['sprint.form.label.projects']}"/>
<h:outputText value="#{i18n['navigation.separtor']}"/>
<h:commandLink action="/project/edit" value="#{sprintManager.project.name}"/>
<h:outputText value="#{i18n['navigation.separtor']}"/>
<h:outputText value="#{i18n['sprints.table.title']}" styleClass="tituloForm"/>
</ui:define>
<ui:define name="content">
<h:form id="frmListSprints">
<h:panelGrid columns="2" headerClass="tituloForm" footerClass="footerForm">
<h:outputText value="#{i18n['sprint.show.table.label.empty']}"
rendered="#{sprintManager.sprints.rowCount eq 0}" />
<h:dataTable value="#{sprintManager.sprints}" var="sprint"
rendered="#{sprintManager.sprints.rowCount > 0}"
title="#{i18n['sprint.show.table.title']}"
summary="#{i18n['sprint.show.table.title']}"
border="0"
headerClass="datatableHeader"
rowClasses="datatableRow,datatableRow2"
columnClasses="dataTableFirstColumn"
styleClass="datatable"
id="dtSprints">
<h:column>
<f:facet name="header">
<h:outputText value="#" />
</f:facet>
<h:outputText value="#{sprintManager.sprints.rowIndex + 1}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['sprint.show.table.header.name']}" />
</f:facet>
<h:outputText value="#{sprint.name}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['sprint.show.table.header.goals']}" />
</f:facet>
<h:outputText value="#{sprint.goals}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['sprint.show.table.header.startDate']}"/>
</f:facet>
<h:outputText value="#{sprint.startDate}">
<f:convertDateTime pattern="#{i18n['sprint.show.table.header.startDate.pattern']}" />
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['sprint.show.table.header.dailyMeetingTime']}" />
</f:facet>
<h:outputText value="#{sprint.dailyMeetingTime}">
<f:convertDateTime pattern="#{i18n['sprint.show.table.header.dailyMeetingTime.pattern']}" />
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['sprint.show.table.header.actions']}"/>
</f:facet>
<h:commandButton styleClass="botaoPostIt" action="#{sprintManager.edit}" value="#{i18n['sprint.show.button.edit']}" />
<h:commandButton id="btnDeleteSprint" styleClass="botaoPostIt" action="#{sprintManager.remove}" value="#{i18n['sprint.show.button.delete']} AJAX"
onclick="jsf.ajax.request(this, event, {execute: 'frmListSprints',
render: 'frmListSprints'}); return false;" />
<h:commandButton styleClass="botaoPostIt" action="#{sprintManager.remove}" value="#{i18n['sprint.show.button.delete']}" />
<h:commandButton styleClass="botaoPostIt" action="#{sprintManager.showDashboard}" value="#{i18n['sprint.show.button.showDashboard']}" />
<h:commandButton styleClass="botaoPostIt" action="#{sprintManager.showStories}" value="#{i18n['sprint.show.button.showStories']}" />
</h:column>
</h:dataTable>
<f:facet name="footer">
<h:commandButton styleClass="botaoPostIt" action="#{sprintManager.create}" value="#{i18n['sprint.show.button.newSprint']}" />
</f:facet>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition>
<h:panelGrid columns="1" border="0">
<h:outputLabel value="#{i18n['stories.label.nostory']}" rendered="#{storiesMB.dm.rowCount eq 0}"/>
<br/><br/>
<h:panelGrid columns="1" style="float: right">
<h:panelGroup>
<h:outputLabel value="#{i18n['stories.label.sprint']}: " for="otSprint" />
<h:outputText id="otSprint" value="Mostrar o nome do Sprint com link para o Sprint" />
</h:panelGroup>
<h:panelGroup>
<h:outputLabel value="#{i18n['label.startedAt']}: " for="otSprintStartDate"/>
<h:outputText id="otSprintStartDate" value="mostrar a data de inicio do sprint" />
<br/><br/>
</h:panelGroup>
</h:panelGrid>
<h:form id="testeForm">
<h:commandLink styleClass="navigationLink" id="showButton" action="#{sprintsMB.showForm}"
value="+ Add Story to this Sprint"
onclick="jsf.ajax.request(this, event,
{execute:'testeForm:showButton',
render: 'testeForm:testeShowHidePG testeForm:testeShowHidePG:newStoryPG'});
return false;" >
</h:commandLink>
<h:panelGrid columns="1" border="0" id="testeShowHidePG">
<h:panelGrid columns="1" border="0" id="newStoryPG" rendered="#{sprintsMB.showAddNewStoryForm}">
<ui:include src="./newStory.xhtml"></ui:include>
</h:panelGrid>
</h:panelGrid>
</h:form>
<h:form id="frmListStories">
<h:dataTable value="#{storiesMB.dm}" var="story" rendered="#{storiesMB.dm.rowCount > 0}"
title="#{i18n['stories.table.title']}"
summary="#{i18n['stories.table.title']}"
border="0"
id="dtStories"
headerClass="datatableHeader"
rowClasses="datatableRow,datatableRow2"
columnClasses="dataTableFirstColumn"
styleClass="datatable">
<h:column>
<f:facet name="header"><h:outputText value="#" /></f:facet>
<h:outputText value="#{storiesMB.dm.rowIndex + 1}" />
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{i18n['stories.label.name']}" /></f:facet>
<h:outputText value="#{story.name}" />
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{i18n['stories.label.priority']}" /></f:facet>
<h:outputText value="#{story.priority}" />
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{i18n['stories.label.estimation']}" /></f:facet>
<h:outputText value="#{story.estimation}" />
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{i18n['stories.label.acceptance']}"/></f:facet>
<h:outputText value="#{story.acceptance}" />
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{i18n['label.actions']}" /></f:facet>
<h:commandButton styleClass="botaoPostIt" action="#{storiesMB.edit}" value="#{i18n['button.edit']}" immediate="true" />
<h:commandButton styleClass="botaoPostIt" action="#{storiesMB.remove}" value="#{i18n['button.delete']}" immediate="true" />
<h:commandButton styleClass="botaoPostIt" action="#{storiesMB.showTasks}" value="#{i18n['button.tasks']}" immediate="true" />
</h:column>
</h:dataTable>
</h:form>
</h:panelGrid>
</ui:composition>
</html>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="/template.xhtml">
<ui:define name="pageTitle">
<h:outputText value="#{i18n['story.create.title']}"></h:outputText>
</ui:define>
<ui:define name="navigationBar">
<h:commandLink immediate="true" action="/project/show" value="#{i18n['navigation.projects']}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/project/edit" value="#{sprintManager.project.name}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/sprint/show" value="#{i18n['navigation.sprints']}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/sprint/edit" value="#{sprintManager.currentSprint.name}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/story/show" value="#{i18n['navigation.stories']}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:outputText value="#{i18n['story.create.title']}" styleClass="tituloForm"></h:outputText>
</ui:define>
<ui:define name="content">
<h:form styleClass="scrumForm" id="createStoryForm">
<h:panelGrid columns="3" columnClasses="formLabel, formInput, formErrorMessage" styleClass="postItFormTable">
<h:outputLabel value="#{i18n['story.form.label.name']}:" for="itName"/>
<h:inputText id="itName" value="#{storyManager.currentStory.name}" required="true"
requiredMessage="#{i18n['story.form.label.name.required']}" size="40" maxlength="40"
validator="#{storyManager.checkUniqueStoryName}" />
<h:message for="itName" styleClass="errorMessage"/>
<h:outputLabel value="#{i18n['story.form.label.startDate']}:" for="itStartedDate" />
<h:panelGroup>
<h:inputText id="itStartedDate" value="#{storyManager.currentStory.startDate}" required="true" requiredMessage="#{i18n['story.form.label.startDate.required']}" size="10" maxlength="10">
<f:convertDateTime pattern="#{i18n['story.form.label.startDate.pattern']}" />
</h:inputText>
<h:outputText value="(#{i18n['story.form.label.startDate.pattern']})" styleClass="inputPattern" />
</h:panelGroup>
<h:message for="itStartedDate" styleClass="errorMessage" />
<h:outputLabel value="#{i18n['story.form.label.priority']}:" for="itPriority" />
<h:inputText id="itPriority" value="#{storyManager.currentStory.priority}" required="true" requiredMessage="#{i18n['story.form.label.priority.required']}" />
<h:message for="itPriority" styleClass="errorMessage"/>
<h:outputLabel value="#{i18n['story.form.label.estimation']}:" for="itEstimation" />
<h:inputText id="itEstimation" value="#{storyManager.currentStory.estimation}" required="true" requiredMessage="#{i18n['story.form.label.estimation.required']}" />
<h:message for="itEstimation" styleClass="errorMessage"/>
<h:outputLabel value="#{i18n['story.form.label.acceptance']}:" for="itAcceptance" />
<h:inputText id="itAcceptance" value="#{storyManager.currentStory.acceptance}" required="true" requiredMessage="#{i18n['story.form.label.acceptance.required']}" size="40" maxlength="40" />
<h:message for="itAcceptance" styleClass="errorMessage" />
<f:facet name="footer">
<h:commandButton id="btnCreate" action="#{storyManager.save}" value="#{i18n['story.create.button.create']}" styleClass="botaoPostIt" />
<h:commandButton id="btnCancel" action="show" value="#{i18n['story.create.button.cancel']}" styleClass="botaoPostIt" immediate="true" />
</f:facet>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</html>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="/template.xhtml">
<ui:define name="pageTitle">
<h:outputText value="#{i18n['story.edit.title']}"></h:outputText>
</ui:define>
<ui:define name="navigationBar">
<h:commandLink immediate="true" action="/project/show" value="#{i18n['navigation.projects']}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/project/edit" value="#{sprintManager.project.name}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/sprint/show" value="#{i18n['navigation.sprints']}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/sprint/edit" value="#{sprintManager.currentSprint.name}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/story/show" value="#{i18n['navigation.stories']}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:outputText value="#{i18n['story.edit.title']}" styleClass="tituloForm"></h:outputText>
</ui:define>
<ui:define name="content">
<h:form styleClass="scrumForm" id="editStoryForm">
<h:panelGrid columns="3" columnClasses="formLabel, formInput, formErrorMessage" styleClass="postItFormTable">
<ui:include src="form.xhtml" />
<f:facet name="footer">
<h:commandButton rendered="#{storyManager.sprint.name != null}" id="btnEditUpdate" action="#{storyManager.save}" value="#{i18n['story.edit.button.update']}" styleClass="botaoPostIt" />
<h:commandButton rendered="#{storyManager.sprint.name != null}" id="btnEditCancel" action="#{storyManager.cancelEdit}" immediate="true" value="#{i18n['story.edit.button.cancel']}" styleClass="botaoPostIt" />
<h:button styleClass="botaoPostIt" outcome="/dashboard/show" value="#{i18n['sprint.show.button.showDashboard']}" />
</f:facet>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</html>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition>
<h:outputLabel value="#{i18n['story.form.label.name']}:" for="itName"/>
<h:inputText id="itName" value="#{storyManager.currentStory.name}" required="true"
requiredMessage="#{i18n['story.form.label.name.required']}" size="40" maxlength="40"
validator="#{storyManager.checkUniqueStoryName}" />
<h:message for="itName" styleClass="errorMessage"/>
<h:outputLabel value="#{i18n['story.form.label.startDate']}:" for="itStartedDate" />
<h:panelGroup>
<h:inputText id="itStartedDate" value="#{storyManager.currentStory.startDate}" required="true" requiredMessage="#{i18n['story.form.label.startDate.required']}" size="10" maxlength="10">
<f:convertDateTime pattern="#{i18n['story.form.label.startDate.pattern']}" />
</h:inputText>
<h:outputText value="(#{i18n['story.form.label.startDate.pattern']})" styleClass="inputPattern" />
</h:panelGroup>
<h:message for="itStartedDate" styleClass="errorMessage" />
<h:outputLabel value="#{i18n['story.form.label.priority']}:" for="itPriority" />
<h:inputText id="itPriority" value="#{storyManager.currentStory.priority}" required="true" requiredMessage="#{i18n['story.form.label.priority.required']}" />
<h:message for="itPriority" styleClass="errorMessage"/>
<h:outputLabel value="#{i18n['story.form.label.estimation']}:" for="itEstimation" />
<h:inputText id="itEstimation" value="#{storyManager.currentStory.estimation}" required="true" requiredMessage="#{i18n['story.form.label.estimation.required']}" />
<h:message for="itEstimation" styleClass="errorMessage"/>
<h:outputLabel value="#{i18n['story.form.label.acceptance']}:" for="itAcceptance" />
<h:inputText id="itAcceptance" value="#{storyManager.currentStory.acceptance}" required="true" requiredMessage="#{i18n['story.form.label.acceptance.required']}" size="40" maxlength="40" />
<h:message for="itAcceptance" styleClass="errorMessage" />
</ui:composition>
</html>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="/template.xhtml">
<ui:define name="pageTitle">
<h:outputText value="#{i18n['story.show.title']}"></h:outputText>
</ui:define>
<ui:define name="navigationBar">
<h:commandLink action="/project/show" value="#{i18n['navigation.projects']}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink action="/project/edit" value="#{sprintManager.project.name}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink action="/sprint/show" value="#{i18n['navigation.sprints']}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink action="/sprint/edit" value="#{sprintManager.currentSprint.name}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:outputText value="#{i18n['stories.table.title']}" styleClass="tituloForm"></h:outputText>
</ui:define>
<ui:define name="content">
<h:form id="frmListStories">
<h:panelGrid columns="3" headerClass="tituloForm" footerClass="footerForm">
<h:outputText value="#{i18n['story.show.table.label.empty']}"
rendered="#{storyManager.stories.rowCount eq 0}" />
<h:dataTable value="#{storyManager.stories}" var="story"
rendered="#{storyManager.stories.rowCount > 0}"
title="#{i18n['story.show.table.title']}"
summary="#{i18n['story.show.table.title']}"
border="0"
headerClass="datatableHeader"
rowClasses="datatableRow,datatableRow2"
columnClasses="dataTableFirstColumn"
styleClass="datatable"
id="dtStories">
<h:column>
<f:facet name="header"><h:outputText value="#" /></f:facet>
<h:outputText value="#{storyManager.stories.rowIndex + 1}" />
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{i18n['story.show.table.header.name']}" /></f:facet>
<h:outputText value="#{story.name}" />
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{i18n['story.show.table.header.startDate']}"/></f:facet>
<h:outputText value="#{story.startDate}">
<f:convertDateTime pattern="#{i18n['story.show.table.header.startDate.pattern']}" />
</h:outputText>
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{i18n['story.show.table.header.priority']}" /></f:facet>
<h:outputText value="#{story.priority}" />
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{i18n['story.show.table.header.estimation']}" /></f:facet>
<h:outputText value="#{story.estimation}" />
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{i18n['story.show.table.header.acceptance']}" /></f:facet>
<h:outputText value="#{story.acceptance}" />
</h:column>
<h:column>
<f:facet name="header"><h:outputText value="#{i18n['story.show.table.header.actions']}"/></f:facet>
<h:commandButton styleClass="botaoPostIt" action="#{storyManager.edit}" value="#{i18n['story.show.button.edit']}" />
<h:commandButton styleClass="botaoPostIt" action="#{storyManager.remove}" value="#{i18n['story.show.button.delete']}" />
<h:commandButton id="btnDeleteStory" styleClass="botaoPostIt" action="#{storyManager.remove}" value="#{i18n['story.show.button.delete']} AJAX"
onclick="jsf.ajax.request(this, event, {execute: 'frmListStories',
render: 'frmListStories'}); return false;" />
<h:commandButton styleClass="botaoPostIt" action="#{storyManager.showTasks}" value="#{i18n['story.show.button.showTasks']}" />
</h:column>
</h:dataTable>
<f:facet name="footer">
<h:commandButton styleClass="botaoPostIt" action="#{storyManager.create}" value="#{i18n['story.show.button.newStory']}" />
<h:commandButton styleClass="botaoPostIt" action="showSprints" value="#{i18n['story.show.button.showSprints']}" />
<h:button styleClass="botaoPostIt" outcome="/dashboard/show" value="#{i18n['sprint.show.button.showDashboard']}" />
</f:facet>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</html>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core" >
<ui:composition template="/template.xhtml">
<ui:define name="pageTitle">
<h:outputText value="#{i18n['task.create.title']}"></h:outputText>
</ui:define>
<ui:define name="navigationBar">
<h:commandLink immediate="true" action="/project/show" value="#{i18n['navigation.projects']}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/project/edit" value="#{sprintManager.project.name}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/sprint/show" value="#{i18n['navigation.sprints']}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/sprint/edit" value="#{sprintManager.currentSprint.name}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/story/show" value="#{i18n['navigation.stories']}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/story/edit" value="#{taskManager.story.name}"></h:commandLink>
<h:outputText value=" > "></h:outputText>
<h:outputText value="#{i18n['task.create.form.title']}" styleClass="tituloForm"></h:outputText>
</ui:define>
<ui:define name="content">
<h:form id="createTaskForm">
<h:panelGrid columns="3" headerClass="tituloForm" footerClass="footerForm">
<ui:include src="form.xhtml" />
<f:facet name="footer">
<h:commandButton rendered="#{storyManager.sprint.name != null}" id="btnCreate" action="#{taskManager.save}" value="#{i18n['task.create.button.create']}" styleClass="botaoPostIt" />
<h:commandButton rendered="#{storyManager.sprint.name != null}" id="btnCancel" action="show" value="#{i18n['task.create.button.cancel']}" styleClass="botaoPostIt" immediate="true" />
</f:facet>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</html>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html">
<ui:composition template="/template.xhtml">
<ui:define name="pageTitle">
<h:outputText value="#{i18n['task.edit.title']}"></h:outputText>
</ui:define>
<ui:define name="navigationBar">
<h:commandLink immediate="true" action="/project/show" value="#{i18n['navigation.projects']}" ></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/project/edit" value="#{sprintManager.project.name}" ></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/sprint/show" value="#{i18n['navigation.sprints']}" ></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/sprint/edit" value="#{sprintManager.currentSprint.name}" ></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/story/show" value="#{i18n['navigation.stories']}" ></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/story/edit" value="#{storyManager.currentStory.name}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:outputText value="#{i18n['task.edit.form.title']}" styleClass="tituloForm"></h:outputText>
</ui:define>
<ui:define name="content">
<h:form styleClass="scrumForm" id="editTaskForm">
<h:panelGrid headerClass="tituloForm" footerClass="footerForm">
<ui:include src="form.xhtml" />
<h:panelGroup>
<h:commandButton rendered="#{storyManager.sprint.name != null}" id="btnEditUpdate" action="#{taskManager.save}" value="#{i18n['task.edit.button.update']}" styleClass="botaoPostIt" />
<h:commandButton rendered="#{storyManager.sprint.name != null}" id="btnEditCancel" action="#{taskManager.cancelEdit}" immediate="true" value="#{i18n['task.edit.button.cancel']}" styleClass="botaoPostIt" />
<h:button styleClass="botaoPostIt" outcome="/dashboard/show" value="#{i18n['sprint.show.button.showDashboard']}" />
</h:panelGroup>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</html>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core" >
<ui:composition id="comp1">
<h:panelGrid columns="3" columnClasses="formLabel, formInput, formErrorMessage" styleClass="postItFormTable" id="pgFormTask">
<h:outputLabel value="#{i18n['task.form.label.name']}:" for="itTaskName" id="olName"/>
<h:inputText id="itTaskName" value="#{taskManager.currentTask.name}" required="true"
requiredMessage="#{i18n['task.form.label.name.required']}" maxlength="30" size="30"
validator="#{taskManager.checkUniqueTaskName}" />
<h:message for="itTaskName" styleClass="errorMessage" id="emName"/>
<h:outputLabel value="#{i18n['task.form.label.startDate']}:" for="itTaskName"/>
<h:panelGroup>
<h:inputText id="itStartedDate" value="#{taskManager.currentTask.startDate}" maxlength="10" size="10" >
<f:convertDateTime pattern="#{i18n['task.form.label.startDate.pattern']}" />
</h:inputText>
<h:outputText value="(#{i18n['task.form.label.startDate.pattern']})" styleClass="inputPattern" />
</h:panelGroup>
<h:message for="itStartedDate" styleClass="errorMessage"/>
<h:outputLabel value="#{i18n['task.form.label.endDate']}:" for="itTaskName"/>
<h:panelGroup>
<h:inputText id="itEndDate" value="#{taskManager.currentTask.endDate}" maxlength="10" size="10" >
<f:convertDateTime pattern="#{i18n['task.form.label.endDate.pattern']}" />
</h:inputText>
<h:outputText value="(#{i18n['task.form.label.endDate.pattern']})" styleClass="inputPattern" />
</h:panelGroup>
<h:message for="itEndDate" styleClass="errorMessage"/>
<h:outputLabel value="#{i18n['task.form.label.status']}:" for="itStatus"/>
<h:outputText id="itStatus" value="#{taskManager.currentTask.status}" />
</h:panelGrid>
</ui:composition>
</html>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="/template.xhtml">
<ui:define name="pageTitle">
<h:outputText value="#{i18n['task.show.title']}"></h:outputText>
</ui:define>
<ui:define name="navigationBar">
<h:commandLink immediate="true" action="/project/show" value="#{i18n['navigation.projects']}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/project/edit" value="#{sprintManager.project.name}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/sprint/show" value="#{i18n['navigation.sprints']}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/sprint/edit" value="#{sprintManager.currentSprint.name}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/story/show" value="#{i18n['navigation.stories']}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:commandLink immediate="true" action="/story/edit" value="#{taskManager.story.name}"></h:commandLink>
<h:outputText value="#{i18n['navigation.separtor']}"></h:outputText>
<h:outputText value="#{i18n['task.show.table.title']}" styleClass="tituloForm"></h:outputText>
</ui:define>
<ui:define name="content">
<h:form id="frmListTasks">
<h:panelGrid columns="3" headerClass="tituloForm" footerClass="footerForm">
<h:outputText value="#{i18n['task.show.table.label.empty']}"
rendered="#{taskManager.tasks.rowCount eq 0}" />
<h:dataTable value="#{taskManager.tasks}" var="task"
rendered="#{taskManager.tasks.rowCount > 0}"
title="#{i18n['task.show.table.title']}"
summary="#{i18n['task.show.table.title']}"
border="0"
headerClass="datatableHeader"
rowClasses="datatableRow,datatableRow2"
columnClasses="dataTableFirstColumn"
styleClass="datatable"
id="dtTasks">
<h:column>
<f:facet name="header">
<h:outputText value="#" />
</f:facet>
<h:outputText value="#{taskManager.tasks.rowIndex + 1}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['task.show.table.header.name']}" />
</f:facet>
<h:outputText value="#{task.name}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['task.show.table.header.startDate']}"/>
</f:facet>
<h:outputText value="#{task.startDate}">
<f:convertDateTime pattern="#{i18n['task.show.table.header.startDate.pattern']}" />
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['task.show.table.header.endDate']}"/>
</f:facet>
<h:outputText value="#{task.endDate}">
<f:convertDateTime pattern="#{i18n['task.show.table.header.endDate.pattern']}" />
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['task.show.table.header.status']}" />
</f:facet>
<h:outputText value="#{i18n[task.statusKeyI18n]}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['task.show.table.header.actions']}"/>
</f:facet>
<h:commandButton styleClass="botaoPostIt" action="#{taskManager.edit}" value="#{i18n['task.show.button.edit']}" />
<h:commandButton id="btnDeleteTask" styleClass="botaoPostIt" action="#{taskManager.remove}" value="#{i18n['task.show.button.delete']} AJAX"
onclick="jsf.ajax.request(this, event, {execute: 'frmListTasks',
render: 'frmListTasks'}); return false;" />
<h:commandButton styleClass="botaoPostIt" action="#{taskManager.remove}" value="#{i18n['task.show.button.delete']}" />
</h:column>
</h:dataTable>
<f:facet name="footer">
<h:commandButton styleClass="botaoPostIt" action="#{taskManager.create}" value="#{i18n['task.show.button.newTask']}" />
<h:commandButton styleClass="botaoPostIt" action="#{taskManager.showStories}" value="#{i18n['task.show.button.showStories']}" />
<h:button styleClass="botaoPostIt" outcome="/dashboard/show" value="#{i18n['sprint.show.button.showDashboard']}" />
</f:facet>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</html>
<?xml version="1.0" encoding="UTF-8" ?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can obtain
a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
language governing permissions and limitations under the License.
When distributing the software, include this License Header Notice in each
file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the License
Header, with the fields enclosed by brackets [] replaced by your own
identifying information: "Portions Copyrighted [year]
[name of copyright owner]"
Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:scrum="http://java.sun.com/jsf/composite/components">
<h:head>
<h:outputStylesheet library="css/1_1" name="#{skinManager.selectedSkin}"/>
<h:outputStylesheet library="css/1_1" name="common.css"/>
<h:outputScript library="js" name="menu.js" target="head"/>
<h:outputScript library="javax.faces" name="jsf.js"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>
<ui:insert name="pageTitle">
<h:outputText value="#{i18n['template.title']}"></h:outputText>
</ui:insert>
</title>
</h:head>
<h:body>
<div align="center">
<h:panelGrid width="990">
<scrum:menu>
<ui:param name="image" value="/resources/images/menu/barraSuperior-04.png"></ui:param>
</scrum:menu>
<h:form id="navigationBar">
<div class="navBarClass">
<ui:insert name="navigationBar"></ui:insert>
</div>
</h:form>
<h:panelGrid columns="1" headerClass="tableHeader" footerClass="tableFooter" cellpadding="0" cellspacing="0">
<f:facet name="header">
<h:outputText value=""></h:outputText>
</f:facet>
<table class="tableBody"><tr><td>
<table align="center">
<tr><td>
<ui:insert name="content"></ui:insert>
</td></tr>
</table>
</td></tr></table>
<f:facet name="footer">
<h:graphicImage value="/resources/images/lousaNova/quadroNegro_botton_990x120.png" ></h:graphicImage>
</f:facet>
</h:panelGrid>
<h:panelGroup>
<ui:include src="./footer.xhtml" />
</h:panelGroup>
</h:panelGrid>
</div>
</h:body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="scrumtoysPU" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>jsf2.demo.scrum.model.entities.Project</class>
<class>jsf2.demo.scrum.model.entities.Sprint</class>
<class>jsf2.demo.scrum.model.entities.Story</class>
<class>jsf2.demo.scrum.model.entities.Task</class>
<validation-mode>NONE</validation-mode>
<properties>
<property name="eclipselink.target-database" value="Auto"/>
<property name="eclipselink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
</persistence>
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="scrumtoysPU" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>jsf2.demo.scrum.model.entities.Project</class>
<class>jsf2.demo.scrum.model.entities.Sprint</class>
<class>jsf2.demo.scrum.model.entities.Story</class>
<class>jsf2.demo.scrum.model.entities.Task</class>
<validation-mode>NONE</validation-mode>
<properties>
<property name="eclipselink.target-database" value="Auto"/>
<property name="eclipselink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
</persistence>
sprint.form.label.name.unique=Sprint name must be unique within a project
\ No newline at end of file
sprint.form.label.name.unique=Sprint name must be unique within a project
\ No newline at end of file
button.dashboard=Dashboard
button.delete=Delete
button.edit=Edit
button.save=Save
button.stories=Stories
button.tasks=Tasks
home.project.combo.default.item=-- Select one project --
home.project.combo.label=Project
label.actions=Actions
label.code=code
label.dailyMeeting =Daily Meeting
label.done=Done Tasks
label.estimatives=Estimatives
label.finishedAt=finished at
label.gainedPoints=Gained Points
label.goal=Goal
label.goals=Goals
label.name=Name
label.planning1 = Planning 1
label.planning2 = Planning 2
label.retrospective=Retrospective
label.revision=Review
label.scope=Scope
label.startedAt=Started at
label.stories=Stories
label.story=Story
label.task=Task
label.tasks=Tasks
label.to=to
label.toFinish=Finish
label.toRemove=Remove
label.toStart=Start
label.todo=Todo Tasks
label.working=Working Tasks
menuitem.label.projects=Projects
menuitem.label.home=Homes
menuitem.label.changeskin=Change Skin
menuitem.label.createProject=Create Project
menuitem.label.dashboard=Dashboard
menuitem.label.jsf2=More...
menuitem.label.newsprint=Create Sprint
menuitem.label.settings=Settings
menuitem.label.showProjects=View Projects
menuitem.label.sprints=Sprints
menuitem.label.sprintslist=View Sprints
menuitem.label.stories=Stories
menuitem.label.tasks=Tasks
menuitem.path.projects=/scrumtoys/project/show.jsf
menuitem.path.burndown=/scrumtoys/burndown.jsf
menuitem.path.changeskin=/scrumtoys/skin/changeSkin.jsf
menuitem.path.createProject=/scrumtoys/project/create.jsf
menuitem.path.dashboard=/scrumtoys/dashboard.jsf
menuitem.path.home=/scrumtoys/home.jsf
menuitem.path.jsf2=/scrumtoys/home.jsf
menuitem.path.newsprint=/scrumtoys/sprint/create.jsf
menuitem.path.showProjects=/scrumtoys/project/show.jsf
menuitem.path.sprints=/scrumtoys/sprint/show.jsf
menuitem.path.sprintslist=/scrumtoys/sprint/show.jsf
menuitem.path.stories=stories.jsf
menuitem.path.tasks=tasks.jsf
project.create.button.cancel=Cancel
project.create.button.create=Create Project
project.create.form.title=Create Project
project.create.title=Create Project
project.edit.button.cancel=Cancel
project.edit.button.update=Update Project
project.edit.form.title=Edit Project
project.edit.title=Edit Project
project.form.label.endDate.pattern=MM/dd/yyyy
project.form.label.endDate=End Date
project.form.label.name.required=Describe a short name (30 characters)
project.form.label.name=Name
project.form.label.startDate.pattern=MM/dd/yyyy
project.form.label.startDate.required=Type when this sprint start
project.form.label.startDate=Start Date
project.show.button.delete=Delete
project.show.button.edit=Edit
project.show.button.home=Home
project.show.button.newProject=Create New Project
project.show.button.showSprints=Sprints
project.show.table.header.actions=Actions
project.show.table.header.endDate.pattern=MM/dd/yy
project.show.table.header.endDate=End Date
project.show.table.header.name=Name
project.show.table.header.startDate.pattern=MM/dd/yy
project.show.table.header.startDate=Start Date
project.show.table.label.empty=There is no project
project.show.table.title=Projects
project.show.title=Projects
sprint.create.button.cancel=Cancel
sprint.create.button.create=Create Sprint
sprint.create.form.title=Create Sprint
sprint.create.title=Create Sprint
sprint.edit.button.cancel=Cancel
sprint.edit.button.update=Update Sprint
sprint.edit.form.title=Edit Sprint
sprint.edit.title=Edit Sprint
sprint.form.label.dailyMeetingTime.pattern=HH:mm
sprint.form.label.dailyMeetingTime.required=Type the dailing meeting time
sprint.form.label.dailyMeetingTime=Daily Meeting
sprint.form.label.endDate.pattern=MM/dd/yyyy
sprint.form.label.endDate=End Date
sprint.form.label.gainedStoryPoints.required=Type the story points
sprint.form.label.gainedStoryPoints=Gained Points
sprint.form.label.goals.required=Describe the goals
sprint.form.label.goals=Goals
sprint.form.label.iterationScope.required=Type the iteration scope
sprint.form.label.iterationScope=Story Points
sprint.form.label.name.required=Describe a short name (30 characters)
sprint.form.label.name=Name
sprint.form.label.project.name=Project
sprint.form.label.project=Project
sprint.form.label.startDate.pattern=MM/dd/yyyy
sprint.form.label.startDate.required=Type when this sprint start
sprint.form.label.startDate=Start Date
sprint.show.button.delete=Delete
sprint.show.button.edit=Edit
sprint.show.button.home=Home
sprint.show.button.newSprint=Create New Sprint
sprint.show.button.showDashboard=Dashboard
sprint.show.button.showStories=Stories
sprint.show.table.header.actions=Actions
sprint.show.table.header.dailyMeetingTime.pattern=HH:mm
sprint.show.table.header.dailyMeetingTime=Daily Meeting Time
sprint.show.table.header.goals=Goals
sprint.show.table.header.name=Name
sprint.show.table.header.startDate.pattern=MM/dd/yy
sprint.show.table.header.startDate=Start Date
sprint.show.table.label.empty=There is no sprint for this project
sprint.show.table.title=Sprints
sprint.show.title=Sprints
sprints.label.dailingmeeting.required=Type the dailing meeting time
sprints.label.dailyMeetingTime=Daily Meeting
sprints.label.goals.required=Describe the goals
sprints.label.goals=Goals
sprints.label.iterationScope=Story Points
sprints.label.name.required=Describe a short name (30 characters)
sprints.label.name=Name
sprints.label.sprints=Sprints
sprints.label.startdate.required=Type when this sprint start
sprints.label.startedAt=Start at
sprints.label.storypoints.required=Descripte the amount of story points estimated
sprints.table.title=Sprints
stories.label.acceptance.required=Describe the acceptance criteria
stories.label.acceptance=Acceptance
stories.label.estimation=Story Points
stories.label.name=Name
stories.label.newstory=New Story
stories.label.nostory=There is no stories for this sprint
stories.label.priority.required=Describe the priority (sequence to do)
stories.label.priority=Priority
stories.label.sprint=Sprint
stories.label.storylist=Stories
stories.label.storypoints.required=Describe the estimated number of story points
stories.table.title=Stories
story.create.button.cancel=Cancel
story.create.button.create=Create Story
story.create.form.title=Create Story
story.create.title=Create Story
story.edit.button.cancel=Cancel
story.edit.button.update=Update Story
story.edit.form.title=Edit Story
story.edit.title=Edit Story
story.form.label.acceptance.required=Type acceptance
story.form.label.acceptance=Acceptance Criteria
story.form.label.endDate.pattern=MM/dd/yyyy
story.form.label.endDate=End Date
story.form.label.estimation.required=Type estimation
story.form.label.estimation=Estimation
story.form.label.name.required=Describe a short name (30 characters)
story.form.label.name=Name
story.form.label.priority.required=Define the priority
story.form.label.priority=Priority
story.form.label.sprint.name=Sprint
story.form.label.startDate.pattern=MM/dd/yyyy
story.form.label.startDate.required=Type when this sprint start
story.form.label.startDate=Start Date
story.show.button.delete=Delete
story.show.button.edit=Edit
story.show.button.newStory=Create New Story
story.show.button.showSprints=Show Sprints
story.show.button.showTasks=Tasks
story.show.table.header.acceptance=Acceptance Criteria
story.show.table.header.actions=Actions
story.show.table.header.estimation=Estimation
story.show.table.header.name=Name
story.show.table.header.priority=Priority
story.show.table.header.startDate.pattern=MM/dd/yy
story.show.table.header.startDate=Start Date
story.show.table.label.empty=There is no story for this sprint
story.show.table.title=List of Stories
story.show.title=List of Stories
task.create.button.cancel=Cancel
task.create.button.create=Create Task
task.create.form.title=Create Task
task.create.title=Create Task
task.edit.button.cancel=Cancel
task.edit.button.update=Update Task
task.edit.form.title=Edit Task
task.edit.title=Edit Task
task.form.label.endDate.pattern=MM/dd/yyyy
task.form.label.endDate=End Date
task.form.label.name.required=Describe a short name (30 characters)
task.form.label.name=Name
task.form.label.startDate.pattern=MM/dd/yyyy
task.form.label.startDate.required=Type when this task starts
task.form.label.startDate=Start Date
task.form.label.status.required=Specify the current status of the task
task.form.label.status=Status
task.form.label.story.name=Story
task.show.button.delete=Delete
task.show.button.edit=Edit
task.show.button.newTask=Create New Task
task.show.button.showStories=Show Stories
task.show.button.showTasks=Tasks
task.show.table.header.actions=Actions
task.show.table.header.endDate.pattern=MM/dd/yy
task.show.table.header.endDate=End Date
task.show.table.header.name=Name
task.show.table.header.startDate.pattern=MM/dd/yy
task.show.table.header.startDate=Start Date
task.show.table.header.status.DONE=Done
task.show.table.header.status.TODO=Todo
task.show.table.header.status.WORKING=Working
task.show.table.header.status=Status
task.show.table.label.empty=There is no task for this story
task.show.table.title=Tasks
task.show.title=Tasks
tasks.label.name=Name
tasks.label.story=Story
taskstatus.done.plural=Done
taskstatus.done.single=Done
taskstatus.todo.plural=Opened
taskstatus.todo.single=Opened
taskstatus.working.plural=Working
taskstatus.working.single=Working
project.form.label.name.unique=There is another project with same name
sprint.form.label.name.unique=There is another sprint with same name for this project
story.form.label.name.unique=There is another story with same name for this sprint
task.form.label.name.unique=There is another task with same name for this story
template.title=JSF 2.0 Demo - Scrum Whiteboard Application
menuitem.label.about=About
menuitem.label.jsr314=JSR 314
menuitem.label.irc=IRC
menuitem.label.documentation=Documentation
menuitem.path.irc=http://weblogs.java.net/blog/edburns/archive/2007/01/jsf_irc_channel.html
menuitem.path.jsr314=http://www.jcp.org/en/jsr/detail?id=314#
menuitem.path.about=http://www.globalcode.com.br/site/noticias/jsf2scrumdemo.seam
menuitem.path.documentation=http://java.sun.com/javaee/javaserverfaces/
task.form.label.sprint.name=Sprint
task.show.nostory=Select a Story first
stories.show.nosprint=Select a Sprint first
sprint.form.label.noproject=Select a Sprint first
sprint.form.label.projects=Projects
navigation.projects=Projects
navigation.stories=Stories
navigation.tasks=Tasks
navigation.sprints=Sprints
dashboard.title=Dashboard
navigation.separtor=>
button.dashboard=Dashboard
button.delete=Delete
button.edit=Edit
button.save=Save
button.stories=Stories
button.tasks=Tasks
home.project.combo.default.item=-- Select one project --
home.project.combo.label=Project
label.actions=Actions
label.code=code
label.dailyMeeting =Daily Meeting
label.done=Done Tasks
label.estimatives=Estimatives
label.finishedAt=finished at
label.gainedPoints=Gained Points
label.goal=Goal
label.goals=Goals
label.name=Name
label.planning1 = Planning 1
label.planning2 = Planning 2
label.retrospective=Retrospective
label.revision=Review
label.scope=Scope
label.startedAt=Started at
label.stories=Stories
label.story=Story
label.task=Task
label.tasks=Tasks
label.to=to
label.toFinish=Finish
label.toRemove=Remove
label.toStart=Start
label.todo=Todo Tasks
label.working=Working Tasks
menuitem.label.projects=Projects
menuitem.label.home=Home
menuitem.label.changeskin=Change Skin
menuitem.label.createProject=Create Project
menuitem.label.dashboard=Dashboard
menuitem.label.jsf2=More...
menuitem.label.newsprint=Create Sprint
menuitem.label.settings=Settings
menuitem.label.showProjects=View Projects
menuitem.label.sprints=Sprints
menuitem.label.sprintslist=View Sprints
menuitem.label.stories=Stories
menuitem.label.tasks=Tasks
menuitem.path.projects=/scrumtoys/project/show.jsf
<<<<<<< .mine
menuitem.path.changeskin=/scrumtoys/skin/changeSkin.jsf
=======
menuitem.path.burndown=/scrumtoys/burndown.jsf
menuitem.path.changeskin=/scrumtoys/skin/changeSkin.jsf
>>>>>>> .r7360
menuitem.path.createProject=/scrumtoys/project/create.jsf
menuitem.path.dashboard=/scrumtoys/dashboard.jsf
menuitem.path.home=/scrumtoys/home.jsf
menuitem.path.jsf2=/scrumtoys/home.jsf
menuitem.path.newsprint=/scrumtoys/sprint/create.jsf
menuitem.path.showProjects=/scrumtoys/project/show.jsf
menuitem.path.sprints=/scrumtoys/sprint/show.jsf
menuitem.path.sprintslist=/scrumtoys/sprint/show.jsf
menuitem.path.stories=stories.jsf
menuitem.path.tasks=tasks.jsf
project.create.button.cancel=Cancel
project.create.button.create=Create Project
project.create.form.title=Create Project
project.create.title=Create Project
project.edit.button.cancel=Cancel
project.edit.button.update=Update Project
project.edit.form.title=Edit Project
project.edit.title=Edit Project
project.form.label.endDate.pattern=MM/dd/yyyy
project.form.label.endDate=End Date
project.form.label.name.required=Describe a short name (30 characters)
project.form.label.name=Name
project.form.label.startDate.pattern=MM/dd/yyyy
project.form.label.startDate.required=Type when this sprint start
project.form.label.startDate=Start Date
project.show.button.delete=Delete
project.show.button.edit=Edit
project.show.button.home=Home
project.show.button.newProject=Create New Project
project.show.button.showSprints=Sprints
project.show.table.header.actions=Actions
project.show.table.header.endDate.pattern=MM/dd/yy
project.show.table.header.endDate=End Date
project.show.table.header.name=Name
project.show.table.header.startDate.pattern=MM/dd/yy
project.show.table.header.startDate=Start Date
project.show.table.label.empty=There is no project
project.show.table.title=Projects
project.show.title=Projects
sprint.create.button.cancel=Cancel
sprint.create.button.create=Create Sprint
sprint.create.form.title=Create Sprint
sprint.create.title=Create Sprint
sprint.edit.button.cancel=Cancel
sprint.edit.button.update=Update Sprint
sprint.edit.form.title=Edit Sprint
sprint.edit.title=Edit Sprint
sprint.form.label.dailyMeetingTime.pattern=HH:mm
sprint.form.label.dailyMeetingTime.required=Type the dailing meeting time
sprint.form.label.dailyMeetingTime=Daily Meeting
sprint.form.label.endDate.pattern=MM/dd/yyyy
sprint.form.label.endDate=End Date
sprint.form.label.gainedStoryPoints.required=Type the story points
sprint.form.label.gainedStoryPoints=Gained Points
sprint.form.label.goals.required=Describe the goals
sprint.form.label.goals=Goals
sprint.form.label.iterationScope.required=Type the iteration scope
sprint.form.label.iterationScope=Story Points
sprint.form.label.name.required=Describe a short name (30 characters)
sprint.form.label.name=Name
sprint.form.label.project.name=Project
sprint.form.label.project=Project
sprint.form.label.startDate.pattern=MM/dd/yyyy
sprint.form.label.startDate.required=Type when this sprint start
sprint.form.label.startDate=Start Date
sprint.show.button.delete=Delete
sprint.show.button.edit=Edit
sprint.show.button.home=Home
sprint.show.button.newSprint=Create New Sprint
sprint.show.button.showDashboard=Dashboard
sprint.show.button.showStories=Stories
sprint.show.table.header.actions=Actions
sprint.show.table.header.dailyMeetingTime.pattern=HH:mm
sprint.show.table.header.dailyMeetingTime=Daily Meeting Time
sprint.show.table.header.goals=Goals
sprint.show.table.header.name=Name
sprint.show.table.header.startDate.pattern=MM/dd/yy
sprint.show.table.header.startDate=Start Date
sprint.show.table.label.empty=There is no sprint for this project
sprint.show.table.title=Sprints
sprint.show.title=Sprints
sprints.label.dailingmeeting.required=Type the dailing meeting time
sprints.label.dailyMeetingTime=Daily Meeting
sprints.label.goals.required=Describe the goals
sprints.label.goals=Goals
sprints.label.iterationScope=Story Points
sprints.label.name.required=Describe a short name (30 characters)
sprints.label.name=Name
sprints.label.sprints=Sprints
sprints.label.startdate.required=Type when this sprint start
sprints.label.startedAt=Start at
sprints.label.storypoints.required=Descripte the amount of story points estimated
sprints.table.title=Sprints
stories.label.acceptance.required=Describe the acceptance criteria
stories.label.acceptance=Acceptance
stories.label.estimation=Story Points
stories.label.name=Name
stories.label.newstory=New Story
stories.label.nostory=There is no stories for this sprint
stories.label.priority.required=Describe the priority (sequence to do)
stories.label.priority=Priority
stories.label.sprint=Sprint
stories.label.storylist=Stories
stories.label.storypoints.required=Describe the estimated number of story points
stories.table.title=Stories
story.create.button.cancel=Cancel
story.create.button.create=Create Story
story.create.form.title=Create Story
story.create.title=Create Story
story.edit.button.cancel=Cancel
story.edit.button.update=Update Story
story.edit.form.title=Edit Story
story.edit.title=Edit Story
story.form.label.acceptance.required=Type acceptance
story.form.label.acceptance=Acceptance Criteria
story.form.label.endDate.pattern=MM/dd/yyyy
story.form.label.endDate=End Date
story.form.label.estimation.required=Type estimation
story.form.label.estimation=Estimation
story.form.label.name.required=Describe a short name (30 characters)
story.form.label.name=Name
story.form.label.priority.required=Define the priority
story.form.label.priority=Priority
story.form.label.sprint.name=Sprint
story.form.label.startDate.pattern=MM/dd/yyyy
story.form.label.startDate.required=Type when this sprint start
story.form.label.startDate=Start Date
story.show.button.delete=Delete
story.show.button.edit=Edit
story.show.button.newStory=Create New Story
story.show.button.showSprints=Show Sprints
story.show.button.showTasks=Tasks
story.show.table.header.acceptance=Acceptance Criteria
story.show.table.header.actions=Actions
story.show.table.header.estimation=Estimation
story.show.table.header.name=Name
story.show.table.header.priority=Priority
story.show.table.header.startDate.pattern=MM/dd/yy
story.show.table.header.startDate=Start Date
story.show.table.label.empty=There is no story for this sprint
story.show.table.title=List of Stories
story.show.title=List of Stories
task.create.button.cancel=Cancel
task.create.button.create=Create Task
task.create.form.title=Create Task
task.create.title=Create Task
task.edit.button.cancel=Cancel
task.edit.button.update=Update Task
task.edit.form.title=Edit Task
task.edit.title=Edit Task
task.form.label.endDate.pattern=MM/dd/yyyy
task.form.label.endDate=End Date
task.form.label.name.required=Describe a short name (30 characters)
task.form.label.name=Name
task.form.label.startDate.pattern=MM/dd/yyyy
task.form.label.startDate.required=Type when this task starts
task.form.label.startDate=Start Date
task.form.label.status.required=Specify the current status of the task
task.form.label.status=Status
task.form.label.story.name=Story
task.show.button.delete=Delete
task.show.button.edit=Edit
task.show.button.newTask=Create New Task
task.show.button.showStories=Show Stories
task.show.button.showTasks=Tasks
task.show.table.header.actions=Actions
task.show.table.header.endDate.pattern=MM/dd/yy
task.show.table.header.endDate=End Date
task.show.table.header.name=Name
task.show.table.header.startDate.pattern=MM/dd/yy
task.show.table.header.startDate=Start Date
task.show.table.header.status.DONE=Done
task.show.table.header.status.TODO=Todo
task.show.table.header.status.WORKING=Working
task.show.table.header.status=Status
task.show.table.label.empty=There is no task for this story
task.show.table.title=Tasks
task.show.title=Tasks
tasks.label.name=Name
tasks.label.story=Story
taskstatus.done.plural=Done
taskstatus.done.single=Done
taskstatus.todo.plural=Opened
taskstatus.todo.single=Opened
taskstatus.working.plural=Working
taskstatus.working.single=Working
project.form.label.name.unique=There is another project with same name
sprint.form.label.name.unique=There is another sprint with same name for this project
story.form.label.name.unique=There is another story with same name for this sprint
task.form.label.name.unique=There is another task with same name for this story
template.title=JSF 2.0 Demo - Scrum Whiteboard Application
menuitem.label.about=About
menuitem.label.jsr314=JSR 314
menuitem.label.irc=IRC
menuitem.label.documentation=Documentation
menuitem.path.irc=http://weblogs.java.net/blog/edburns/archive/2007/01/jsf_irc_channel.html
menuitem.path.jsr314=http://www.jcp.org/en/jsr/detail?id=314#
menuitem.path.about=http://www.globalcode.com.br/site/noticias/jsf2scrumdemo.seam
menuitem.path.documentation=http://java.sun.com/javaee/javaserverfaces/
task.form.label.sprint.name=Sprint
task.show.nostory=Select a Story first
stories.show.nosprint=Select a Sprint first
sprint.form.label.noproject=Select a Sprint first
sprint.form.label.projects=Projects
navigation.projects=Projects
navigation.stories=Stories
navigation.tasks=Tasks
navigation.sprints=Sprints
dashboard.title=Dashboard
navigation.separtor=>
button.dashboard=Dashboard
button.delete=Remover
button.edit=Editar
button.save=Salvar
button.stories=Estorias
button.tasks=Atividades
home.project.combo.default.item=-- Selecione um projeto --
home.project.combo.label=Projetos
label.actions=Acoes
label.code=codigo
label.dailyMeeting =Reuniao Diaria
label.done=Tarefas Feitas
label.estimatives=Estimativas
label.finishedAt=terminada em
label.gainedPoints=Pontos ganhos
label.goal=Objetivo
label.goals=Objetivos
label.name=Nome
label.planning1 =Planejamento 1
label.planning2 =Planejamento 2
label.retrospective=Retrospectiva
label.revision=Revisao
label.scope=Escopo
label.startedAt=Iniciada em
label.stories=Estorias
label.story=Estoria
label.task=Tarefa
label.tasks=Tarefas
label.to=a
label.toFinish=Terminar
label.toRemove=Apagar
label.toStart=Iniciar
label.todo=Tarefas Abertas
label.working=Tarefas em Andamento
menuitem.label.projects=Projetos
menuitem.label.home=Pagina inicial
menuitem.label.changeskin=Mudar aparencia
menuitem.label.createProject=Novo Projeto
menuitem.label.dashboard=Painel
menuitem.label.jsf2=Mais...
menuitem.label.newsprint=Novo Sprint
menuitem.label.settings=Configuracoes
menuitem.label.showProjects=Ver Projetos
menuitem.label.sprints=Sprints
menuitem.label.sprintslist=Ver Sprints
menuitem.label.stories=Estorias
menuitem.label.tasks=Tarefas
menuitem.path.projects=/scrumtoys/project/show.jsf
<<<<<<< .mine
menuitem.path.changeskin=/scrumtoys/skin/changeSkin.jsf
=======
menuitem.path.burndown=/scrumtoys/burndown.jsf
menuitem.path.changeskin=/scrumtoys/skin/changeSkin.jsf
>>>>>>> .r7360
menuitem.path.createProject=/scrumtoys/project/create.jsf
menuitem.path.dashboard=/scrumtoys/dashboard.jsf
menuitem.path.home=/scrumtoys/home.jsf
menuitem.path.jsf2=/scrumtoys/home.jsf
menuitem.path.newsprint=/scrumtoys/sprint/create.jsf
menuitem.path.showProjects=/scrumtoys/project/show.jsf
menuitem.path.sprints=/scrumtoys/sprint/show.jsf
menuitem.path.sprintslist=/scrumtoys/sprint/show.jsf
menuitem.path.stories=stories.jsf
menuitem.path.tasks=tasks.jsf
project.create.button.cancel=Cancelar
project.create.button.create=Criar Projeto
project.create.form.title=Criar Projeto
project.create.title=Criar Projeto
project.edit.button.cancel=Cancelar
project.edit.button.update=Atualizar Projeto
project.edit.form.title=Editar Projeto
project.edit.title=Editar Projeto
project.form.label.endDate.pattern=MM/dd/yyyy
project.form.label.endDate=Data Termino
project.form.label.name.required=Defina um nome (30 characters)
project.form.label.name=Nome
project.form.label.startDate.pattern=MM/dd/yyyy
project.form.label.startDate.required=Defina quanto este projeto inicia
project.form.label.startDate=Data Inicio
project.show.button.delete=Apagar
project.show.button.edit=Editar
project.show.button.home=Home
project.show.button.newProject=Criar Novo Projeto
project.show.button.showSprints=Sprints
project.show.table.header.actions=Acoes
project.show.table.header.endDate.pattern=MM/dd/yy
project.show.table.header.endDate=Data Termino
project.show.table.header.name=Nome
project.show.table.header.startDate.pattern=MM/dd/yy
project.show.table.header.startDate=Data Inicio
project.show.table.label.empty=Nao existe projeto
project.show.table.title=Projetos
project.show.title=Projetos
sprint.create.button.cancel=Cancelar
sprint.create.button.create=Criar Sprint
sprint.create.form.title=Cadastro de Sprint
sprint.create.title=Cadastro de Sprint
sprint.edit.button.cancel=Cancelar
sprint.edit.button.update=Atualizar Sprint
sprint.edit.form.title=Edicao de Sprint
sprint.edit.title=Edicao de Sprint
sprint.form.label.dailyMeetingTime.pattern=HH:mm
sprint.form.label.dailyMeetingTime.required=Defina o horario da reuniao diacria
sprint.form.label.dailyMeetingTime=Hora reuniao diaria
sprint.form.label.endDate.pattern=dd/MM/yyyy
sprint.form.label.endDate=Data termino
sprint.form.label.gainedStoryPoints.required=Defina o numero de Story Points estimados
sprint.form.label.gainedStoryPoints=Story Points ganhos
sprint.form.label.goals.required=Defina os objetivos do Sprint
sprint.form.label.goals=Objetivos
sprint.form.label.iterationScope.required=Defina o numero de iteracoes
sprint.form.label.iterationScope=Story Points
sprint.form.label.name.required=Defina um nome para o Sprint (30 caracteres)
sprint.form.label.name=Nome
sprint.form.label.project.name=Projeto
sprint.form.label.project=Projeto
sprint.form.label.startDate.pattern=dd/MM/yyyy
sprint.form.label.startDate.required=Data de inicio do Sprint
sprint.form.label.startDate=Data inicio
sprint.show.button.delete=Apagar
sprint.show.button.edit=Editar
sprint.show.button.home=Home
sprint.show.button.newSprint=Criar Novo Sprint
sprint.show.button.showDashboard=Dashboard
sprint.show.button.showStories=Estorias
sprint.show.table.header.actions=Acoes
sprint.show.table.header.dailyMeetingTime.pattern=HH:mm
sprint.show.table.header.dailyMeetingTime=Hora Reunioes Diarias
sprint.show.table.header.goals=Objetivos
sprint.show.table.header.name=Nome
sprint.show.table.header.startDate.pattern=dd/MM/yy
sprint.show.table.header.startDate=Data de Inicio
sprint.show.table.label.empty=Nao existe sprint para este projeto
sprint.show.table.title=Sprints
sprint.show.title=Sprints
sprints.label.dailingmeeting.required=Defina o horario da reuniao diaria
sprints.label.dailyMeetingTime=Reuniao diaria
sprints.label.goals.required=Defina os objetivos do Sprint
sprints.label.goals=Objetivos
sprints.label.iterationScope=Story Points
sprints.label.name.required=Defina um nome para o Sprint (30 caracteres)
sprints.label.name=Nome
sprints.label.sprints=Sprints
sprints.label.startdate.required=Digite a data de inicio deste Sprint
sprints.label.startedAt=Inicia em
sprints.label.storypoints.required=Defina o numero de Story Points estimados
sprints.table.title=Sprints
stories.label.acceptance.required=Defina o criterio de aceitacao
stories.label.acceptance=Aceite
stories.label.estimation=Story Points
stories.label.name=Nome
stories.label.newstory=Nova Estoria
stories.label.nostory=Nao ha estorias para este Sprint
stories.label.priority.required=Defina a prioridade da estoria
stories.label.priority=Prioridade
stories.label.sprint=Sprint
stories.label.storylist=Stories
stories.label.storypoints.required=Defina o numero de Story Points estimado
stories.table.title=Estorias
story.create.button.cancel=Cancelar
story.create.button.create=Criar Estoria
story.create.form.title=Criacao de Estoria
story.create.title=Criacao de Estoria
story.edit.button.cancel=Cancelar
story.edit.button.update=Atualizar Estoria
story.edit.form.title=Editar Estoria
story.edit.title=Editar Estoria
story.form.label.acceptance.required=Campo obrigatorio
story.form.label.acceptance=Criterio de aceitacao
story.form.label.endDate.pattern=MM/dd/yyyy
story.form.label.endDate=Data de Temino
story.form.label.estimation.required=Campo obrigatorio
story.form.label.estimation=Estimativa
story.form.label.name.required=Defina um nome para o Sprint (30 caracteres)
story.form.label.name=Nome
story.form.label.priority.required=Defina a prioridade
story.form.label.priority=Prioridade
story.form.label.sprint.name=Sprint
story.form.label.startDate.pattern=MM/dd/yyyy
story.form.label.startDate.required=Defina quando a estoria comeca
story.form.label.startDate=Data Inicio
story.show.button.delete=Apagar
story.show.button.edit=Editar
story.show.button.newStory=Criar Nova Estoria
story.show.button.showSprints=Mostrar Sprints
story.show.button.showTasks=Tarefas
story.show.table.header.acceptance=Criterio de Aceitacao
story.show.table.header.actions=Acoes
story.show.table.header.estimation=Estimativa
story.show.table.header.name=Nome
story.show.table.header.priority=Prioridade
story.show.table.header.startDate.pattern=MM/dd/yy
story.show.table.header.startDate=Data Inicio
story.show.table.label.empty=Nao existe estoria para este sprint
story.show.table.title=Lista de Estorias
story.show.title=Lista de Estorias
task.create.button.cancel=Cancelar
task.create.button.create=Criar Tarefa
task.create.form.title=Criar Tarefa
task.create.title=Criar Tarefa
task.edit.button.cancel=Cancelar
task.edit.button.update=Atualizar Tarefa
task.edit.form.title=Editar Tarefa
task.edit.title=Editar Tarefa
task.form.label.endDate.pattern=MM/dd/yyyy
task.form.label.endDate=Data Termino
task.form.label.name.required=Defina um nome para esta tarefa (30 caracteres)
task.form.label.name=Nome
task.form.label.startDate.pattern=MM/dd/yyyy
task.form.label.startDate.required=Indique quando esta tarefa inicia
task.form.label.startDate=Data Inicio
task.form.label.status.required=Especifique o status atual desta tarefa
task.form.label.status=Status
task.form.label.story.name=Estoria
task.show.button.delete=Apagar
task.show.button.edit=Editar
task.show.button.newTask=Criar Nova Tarefa
task.show.button.showStories=Mostrar Estorias
task.show.button.showTasks=Tarefas
task.show.table.header.actions=Acoes
task.show.table.header.endDate.pattern=MM/dd/yy
task.show.table.header.endDate=Data Termino
task.show.table.header.name=Nome
task.show.table.header.startDate.pattern=MM/dd/yy
task.show.table.header.startDate=Data Inicio
task.show.table.header.status.DONE=Feito
task.show.table.header.status.TODO=Para fazer
task.show.table.header.status.WORKING=Em andamento
task.show.table.header.status=Status
task.show.table.label.empty=Nao existe tarefa para esta estoria
task.show.table.title=Tarefas
task.show.title=Tarefas
tasks.label.name=Nome
tasks.label.story=Estoria
taskstatus.done.plural=Terminadas
taskstatus.done.single=Terminada
taskstatus.todo.plural=Abertas
taskstatus.todo.single=Aberta
taskstatus.working.plural=Em andamento
taskstatus.working.single=Em andamento
project.form.label.name.unique=Existe outro projeto com o mesmo nome
sprint.form.label.name.unique=Existe outro sprint com mesmo nome para este projeto
story.form.label.name.unique=Existe outra Estoria com o mesmo nome para este sprint
task.form.label.name.unique=Existe outra tarefa com o mesmo nome para esta estoria
template.title=JSF 2.0 Demo - Scrum Whiteboard Application
menuitem.label.about=Sobre
menuitem.label.jsr314=JSR 314
menuitem.label.irc=IRC
menuitem.label.documentation=Documentacao
menuitem.path.irc=http://weblogs.java.net/blog/edburns/archive/2007/01/jsf_irc_channel.html
menuitem.path.jsr314=http://www.jcp.org/en/jsr/detail?id=314#
menuitem.path.about=http://www.globalcode.com.br/site/noticias/jsf2scrumdemo.seam
menuitem.path.documentation=http://java.sun.com/javaee/javaserverfaces/
task.form.label.sprint.name=Sprint
task.show.nostory=Selecione uma est\u00F3ria primeiro
stories.show.nosprint=Selecione um sprint primeiro
sprint.form.label.noproject=Selecione um sprint primeiro
sprint.form.label.projects=Projetos
navigation.projects=Projetos
navigation.stories=Estorias
navigation.tasks=Tarefas
navigation.sprints=Sprints
dashboard.title=Dashboard
navigation.separtor=>
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="scrumtoysPU" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>jsf2.demo.scrum.model.entities.Project</class>
<class>jsf2.demo.scrum.model.entities.Sprint</class>
<class>jsf2.demo.scrum.model.entities.Story</class>
<class>jsf2.demo.scrum.model.entities.Task</class>
<validation-mode>NONE</validation-mode>
<properties>
<property name="eclipselink.target-database" value="Auto"/>
<property name="eclipselink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
</persistence>
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.model.entities;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
/**
*
* @author Dr. Spock (spock at dev.java.net)
*/
@MappedSuperclass
public abstract class AbstractEntity implements PersistentEntity<Long> {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
public boolean isNew() {
return (this.id == null);
}
@Override
public abstract boolean equals(Object object);
@Override
public abstract int hashCode();
@Override
public abstract String toString();
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.model.entities;
import java.io.Serializable;
/**
*
* @author Dr. Spock (spock at dev.java.net)
*/
public interface PersistentEntity<PK extends Serializable> extends Serializable {
PK getId();
boolean isNew();
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.model.entities;
import java.io.Serializable;
import java.util.Collections;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
/**
* @author Dr. Spock (spock at dev.java.net)
*/
@Entity
@Table(name = "projects")
@NamedQueries({@NamedQuery(name = "project.getAll", query = "select p from Project as p"),
@NamedQuery(name = "project.getAllOpen", query = "select p from Project as p where p.endDate is null"),
@NamedQuery(name = "project.countByName", query = "select count(p) from Project as p where p.name = :name and not(p = :currentProject)"),
@NamedQuery(name = "project.new.countByName", query = "select count(p) from Project as p where p.name = :name")})
public class Project extends AbstractEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Column(nullable = false, unique = true)
private String name;
@Temporal(TemporalType.DATE)
@Column(name = "start_date", nullable = false)
private Date startDate;
@Temporal(TemporalType.DATE)
@Column(name = "end_date")
private Date endDate;
@OneToMany(mappedBy = "project", cascade = CascadeType.ALL)
private List<Sprint> sprints;
public Project() {
this.startDate = new Date();
}
public Project(String name) {
this();
this.name = name;
}
public Project(String name, Date startDate) {
this(name);
this.startDate = startDate;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public List<Sprint> getSprints() {
return (sprints != null) ? Collections.unmodifiableList(sprints) : Collections.<Sprint>emptyList();
}
public boolean addSprint(Sprint sprint) {
if (sprints == null) {
sprints = new LinkedList<Sprint>();
}
if (sprint != null && !sprints.contains(sprint)) {
sprints.add(sprint);
sprint.setProject(this);
return true;
}
return false;
}
public boolean removeSpring(Sprint sprint) {
return (sprints != null
&& !sprints.isEmpty()
&& sprints.remove(sprint));
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Project other = (Project) obj;
return !((this.name == null)
? (other.name != null)
: !this.name.equals(other.name));
}
@Override
public int hashCode() {
int hash = 7;
hash = 79 * hash + (this.name != null ? this.name.hashCode() : 0);
return hash;
}
@Override
public String toString() {
return "Project[name=" + name + ",startDate=" + startDate + ",endDate=" + endDate + "]";
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.model.entities;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Collections;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
/**
* @author Dr. Spock (spock at dev.java.net)
*/
@Entity
@Table(name = "sprints", uniqueConstraints = @UniqueConstraint(columnNames = {"name", "project_id"}))
@NamedQueries({@NamedQuery(name = "sprint.countByNameAndProject", query = "select count(s) from Sprint as s where s.name = :name and s.project = :project and not(s = :currentSprint)"),
@NamedQuery(name = "sprint.new.countByNameAndProject", query = "select count(s) from Sprint as s where s.name = :name and s.project = :project")})
public class Sprint extends AbstractEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Column(nullable = false)
private String name;
private String goals;
@Temporal(TemporalType.DATE)
@Column(name = "start_date", nullable = false)
private Date startDate;
@Temporal(TemporalType.DATE)
@Column(name = "end_date")
private Date endDate;
@Column(name = "iteration_scope")
private int iterationScope;
@Column(name = "gained_story_points")
private int gainedStoryPoints;
@Temporal(TemporalType.TIME)
@Column(name = "daily_meeting_time")
private Date dailyMeetingTime;
@OneToMany(mappedBy = "sprint", cascade = CascadeType.ALL)
private List<Story> stories;
@ManyToOne
@JoinColumn(name = "project_id")
private Project project;
public Sprint() {
this.startDate = new Date();
}
public Sprint(String name) {
this();
this.name = name;
}
public Sprint(String name, Project project) {
this(name);
this.project = project;
}
@SprintNameUniquenessConstraint
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGoals() {
return goals;
}
public void setGoals(String goals) {
this.goals = goals;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public int getIterationScope() {
return iterationScope;
}
public void setIterationScope(int iterationScope) {
this.iterationScope = iterationScope;
}
public int getGainedStoryPoints() {
return gainedStoryPoints;
}
public void setGainedStoryPoints(int gainedStoryPoints) {
this.gainedStoryPoints = gainedStoryPoints;
}
public Date getDailyMeetingTime() {
return dailyMeetingTime;
}
public void setDailyMeetingTime(Date dailyMeetingTime) {
this.dailyMeetingTime = dailyMeetingTime;
}
public List<Story> getStories() {
return (stories != null) ? Collections.unmodifiableList(stories) : Collections.<Story>emptyList();
}
public boolean addStory(Story story) {
if (stories == null) {
stories = new LinkedList<Story>();
}
if (story != null && !stories.contains(story)) {
stories.add(story);
story.setSprint(this);
return true;
}
return false;
}
public boolean removeStory(Story story) {
return (stories != null
&& !stories.isEmpty()
&& stories.remove(story));
}
public Project getProject() {
return project;
}
public void setProject(Project project) {
this.project = project;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Sprint other = (Sprint) obj;
if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) {
return false;
}
return !(this.project != other.project
&& (this.project == null || !this.project.equals(other.project)));
}
@Override
public int hashCode() {
int hash = 7;
hash = 97 * hash + (this.name != null ? this.name.hashCode() : 0);
hash = 97 * hash + (this.project != null ? this.project.hashCode() : 0);
return hash;
}
@Override
public String toString() {
return "Sprint[name=" + name + ",startDate=" + startDate + ",project=" + project + "]";
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.model.entities;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
@Documented
@Constraint(validatedBy = SprintNameUniquenessConstraintValidator.class)
@Target({ ElementType.METHOD, ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
public @interface SprintNameUniquenessConstraint {
String message() default "{sprint.form.label.name.unique}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.model.entities;
import javax.faces.context.FacesContext;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import jsf2.demo.scrum.web.controller.SprintManager;
public class SprintNameUniquenessConstraintValidator implements ConstraintValidator<SprintNameUniquenessConstraint, String> {
public boolean isValid(String value, ConstraintValidatorContext ctx) {
FacesContext context = FacesContext.getCurrentInstance();
SprintManager sprintManager = (SprintManager)
context.getApplication().evaluateExpressionGet(context,
"#{sprintManager}", SprintManager.class);
boolean result = true;
String message = sprintManager.
checkUniqueSprintNameApplicationValidatorMethod(value);
if (message != null) {
result = false;
ConstraintValidatorContext.ConstraintViolationBuilder builder =
ctx.buildConstraintViolationWithTemplate(message);
builder.addConstraintViolation();
}
return result;
}
public void initialize(SprintNameUniquenessConstraint arg0) {
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.model.entities;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Collections;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
/**
* @author Dr. Spock (spock at dev.java.net)
*/
@Entity
@Table(name = "stories", uniqueConstraints = @UniqueConstraint(columnNames = {"name", "sprint_id"}))
@NamedQueries({@NamedQuery(name = "story.countByNameAndSprint", query = "select count(s) from Story as s where s.name = :name and s.sprint = :sprint and not(s = :currentStory)"),
@NamedQuery(name = "story.new.countByNameAndSprint", query = "select count(s) from Story as s where s.name = :name and s.sprint = :sprint")})
public class Story extends AbstractEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Column(nullable = false)
private String name;
private int priority;
@Temporal(TemporalType.DATE)
@Column(name = "start_date", nullable = false)
private Date startDate;
@Temporal(TemporalType.DATE)
@Column(name = "end_date")
private Date endDate;
private String acceptance;
private int estimation;
@ManyToOne
@JoinColumn(name = "sprint_id")
private Sprint sprint;
@OneToMany(mappedBy = "story", cascade = CascadeType.ALL)
private List<Task> tasks;
public Story() {
this.startDate = new Date();
}
public Story(String name) {
this();
this.name = name;
}
public Story(String name, Sprint sprint) {
this(name);
this.name = name;
if (sprint != null) {
sprint.addStory(this);
}
}
public String getAcceptance() {
return acceptance;
}
public void setAcceptance(String acceptance) {
this.acceptance = acceptance;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public int getEstimation() {
return estimation;
}
public void setEstimation(int estimation) {
this.estimation = estimation;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPriority() {
return priority;
}
public void setPriority(int priority) {
this.priority = priority;
}
public Sprint getSprint() {
return sprint;
}
public void setSprint(Sprint sprint) {
this.sprint = sprint;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public List<Task> getTasks() {
return (tasks != null) ? Collections.unmodifiableList(tasks) : Collections.<Task>emptyList();
}
public List<Task> getDoneTasks() {
return Collections.unmodifiableList(getTasks(TaskStatus.DONE));
}
public List<Task> getWorkingTasks() {
return Collections.unmodifiableList(getTasks(TaskStatus.WORKING));
}
public List<Task> getTodoTasks() {
return Collections.unmodifiableList(getTasks(TaskStatus.TODO));
}
private List<Task> getTasks(TaskStatus status) {
List<Task> result = new LinkedList<Task>();
if (tasks != null && !tasks.isEmpty()) {
for (Task task : tasks) {
if (task != null && status.equals(task.getStatus())) {
result.add(task);
}
}
}
return result;
}
public boolean addTask(Task task) {
if (tasks == null) {
tasks = new LinkedList<Task>();
}
if (task != null && !tasks.contains(task)) {
tasks.add(task);
task.setStory(this);
return true;
}
return false;
}
public boolean removeTask(Task task) {
return (tasks != null && !tasks.isEmpty() && tasks.remove(task));
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Story other = (Story) obj;
if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) {
return false;
}
return !(this.sprint != other.sprint
&& (this.sprint == null || !this.sprint.equals(other.sprint)));
}
@Override
public int hashCode() {
int hash = 7;
hash = 23 * hash + (this.name != null ? this.name.hashCode() : 0);
hash = 23 * hash + (this.sprint != null ? this.sprint.hashCode() : 0);
return hash;
}
@Override
public String toString() {
return "Story[name=" + name + ",startDate=" + startDate + ",sprint=" + sprint + "]";
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.model.entities;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
/**
* @author Dr. Spock (spock at dev.java.net)
*/
@Entity
@Table(name = "tasks", uniqueConstraints = @UniqueConstraint(columnNames = {"name", "story_id"}))
@NamedQueries({@NamedQuery(name = "task.countByNameAndStory", query = "select count(t) from Task as t where t.name = :name and t.story = :story and not(t = :currentTask)"),
@NamedQuery(name = "task.new.countByNameAndStory", query = "select count(t) from Task as t where t.name = :name and t.story = :story")})
public class Task extends AbstractEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Column(nullable = false)
private String name;
@Temporal(TemporalType.DATE)
@Column(name = "start_date")
private Date startDate;
@Temporal(TemporalType.DATE)
@Column(name = "end_date")
private Date endDate;
@Enumerated(EnumType.ORDINAL)
private TaskStatus status;
@ManyToOne
@JoinColumn(name = "story_id")
private Story story;
public Task() {
this.status = TaskStatus.TODO;
}
public Task(String name) {
this();
this.name = name;
}
public Task(String name, Story story) {
this(name);
if (story != null) {
story.addTask(this);
}
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
changeTaskStatus(this.startDate, endDate);
}
protected void changeTaskStatus(Date startDate, Date endDate) {
if (endDate != null) {
this.setStatus(TaskStatus.DONE);
}
if (endDate == null && this.startDate != null) {
this.setStatus(TaskStatus.WORKING);
}
if (endDate == null && this.startDate == null) {
this.setStatus(TaskStatus.TODO);
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
changeTaskStatus(startDate, this.endDate);
}
public TaskStatus getStatus() {
return status;
}
public void setStatus(TaskStatus status) {
this.status = status;
}
public Story getStory() {
return story;
}
public void setStory(Story story) {
this.story = story;
}
public String getStatusKeyI18n() {
return "task.show.table.header.status."+status;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Task other = (Task) obj;
if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) {
return false;
}
return !(this.story != other.story
&& (this.story == null || !this.story.equals(other.story)));
}
@Override
public int hashCode() {
int hash = 7;
hash = 83 * hash + (this.name != null ? this.name.hashCode() : 0);
hash = 83 * hash + (this.story != null ? this.story.hashCode() : 0);
return hash;
}
@Override
public String toString() {
return "Task[name=" + name + ",startDate=" + startDate + ",story=" + story + "]";
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.model.entities;
/**
*
* @author Dr. Spock (spock at dev.java.net)
*/
public enum TaskStatus {
TODO, DONE, WORKING
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.web.controller;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.Resource;
import javax.faces.application.FacesMessage;
import javax.faces.application.FacesMessage.Severity;
import javax.faces.context.FacesContext;
import javax.faces.event.SystemEvent;
import javax.faces.event.SystemEventListener;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceUnit;
import javax.persistence.EntityManagerFactory;
import javax.transaction.UserTransaction;
/**
*
* @author Dr. Spock (spock at dev.java.net)
*/
public abstract class AbstractManager {
@PersistenceUnit
private EntityManagerFactory emf;
@Resource
private UserTransaction userTransaction;
protected final <T> T doInTransaction(PersistenceAction<T> action) throws ManagerException {
EntityManager em = emf.createEntityManager();
try {
userTransaction.begin();
T result = action.execute(em);
userTransaction.commit();
return result;
} catch (Exception e) {
try {
userTransaction.rollback();
} catch (Exception ex) {
Logger.getLogger(AbstractManager.class.getName()).log(Level.SEVERE, null, ex);
}
throw new ManagerException(e);
} finally {
em.close();
}
}
protected final void doInTransaction(PersistenceActionWithoutResult action) throws ManagerException {
EntityManager em = emf.createEntityManager();
try {
userTransaction.begin();
action.execute(em);
userTransaction.commit();
} catch (Exception e) {
try {
userTransaction.rollback();
} catch (Exception ex) {
Logger.getLogger(AbstractManager.class.getName()).log(Level.SEVERE, null, ex);
}
throw new ManagerException(e);
} finally {
em.close();
}
}
protected static interface PersistenceAction<T> {
T execute(EntityManager em);
}
protected static interface PersistenceActionWithoutResult {
void execute(EntityManager em);
}
protected void addMessage(String message) {
addMessage(null, message, FacesMessage.SEVERITY_INFO);
}
protected void addMessage(String componentId, String message) {
addMessage(componentId, message, FacesMessage.SEVERITY_INFO);
}
protected void addMessage(String message, Severity severity) {
addMessage(null, message, severity);
}
protected void addMessage(String componentId, String message, Severity severity) {
FacesContext.getCurrentInstance().addMessage(componentId, new FacesMessage(severity, message, message));
}
protected String getMessageForKey(String key) {
FacesContext ctx = FacesContext.getCurrentInstance();
ResourceBundle rb = ctx.getApplication().getResourceBundle(ctx, "i18n");
return rb.getString(key);
}
protected FacesMessage getFacesMessageForKey(String key) {
return new FacesMessage(getMessageForKey(key));
}
protected Logger getLogger(Class<?> clazz) {
if (clazz == null) {
throw new IllegalArgumentException("Class for logger is required.");
}
return Logger.getLogger(clazz.getName());
}
protected void publishEvent(Class<? extends SystemEvent> eventClass, Object source) {
if (source != null) {
FacesContext ctx = FacesContext.getCurrentInstance();
ctx.getApplication().publishEvent(ctx, eventClass, source);
}
}
protected void subscribeToEvent(Class<? extends SystemEvent> eventClass, SystemEventListener listener) {
FacesContext.getCurrentInstance().getApplication().subscribeToEvent(eventClass, listener);
}
protected void unsubscribeFromEvent(Class<? extends SystemEvent> eventClass, SystemEventListener listener) {
FacesContext.getCurrentInstance().getApplication().unsubscribeFromEvent(eventClass, listener);
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.web.controller;
import jsf2.demo.scrum.model.entities.Sprint;
import jsf2.demo.scrum.model.entities.Story;
import jsf2.demo.scrum.model.entities.Task;
import javax.annotation.PreDestroy;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.context.FacesContext;
@ManagedBean(name = "dashboardManager")
@ViewScoped
public class DashboardManager extends AbstractManager implements Serializable {
private static final long serialVersionUID = 1L;
@ManagedProperty("#{taskManager}")
private TaskManager taskManager;
@ManagedProperty("#{sprintManager}")
private SprintManager sprintManager;
@ManagedProperty("#{storyManager}")
private StoryManager storyManager;
private ListDataModel<Task> toDoTasks;
private ListDataModel<Task> workingTasks;
private ListDataModel<Task> doneTasks;
@PreDestroy
public void destroy() {
toDoTasks = null;
workingTasks = null;
doneTasks = null;
FacesContext.getCurrentInstance().getViewRoot().getViewMap().remove("dashboardManager");
}
public Sprint getSprint() {
return getSprintManager().getCurrentSprint();
}
public void setSprint(Sprint sprint) {
this.getSprintManager().setCurrentSprint(sprint);
}
public DataModel<Story> getStories() {
return storyManager.getStories();
}
public void setStories(DataModel<Story> stories) {
storyManager.setStories(stories);
}
public ListDataModel<Task> getToDoTasks() {
List<Task> toDoTasksList = new ArrayList<Task>();
if (sprintManager.getCurrentSprint() == null) {
return new ListDataModel<Task>(toDoTasksList);
}
for (Story story : storyManager.getStoryList()) {
toDoTasksList.addAll(story.getTodoTasks());
}
toDoTasks = new ListDataModel<Task>(toDoTasksList);
return toDoTasks;
}
public ListDataModel<Task> getWorkingTasks() {
List<Task> workingTasksList = new ArrayList<Task>();
if (sprintManager.getCurrentSprint() == null) {
return new ListDataModel<Task>(workingTasksList);
}
for (Story story : storyManager.getStoryList()) {
workingTasksList.addAll(story.getWorkingTasks());
}
workingTasks = new ListDataModel<Task>(workingTasksList);
return workingTasks;
}
public ListDataModel<Task> getDoneTasks() {
List<Task> doneTasksList = new ArrayList<Task>();
if (sprintManager.getCurrentSprint() == null) {
return new ListDataModel<Task>(doneTasksList);
}
for (Story story : storyManager.getStoryList()) {
doneTasksList.addAll(story.getDoneTasks());
}
doneTasks = new ListDataModel<Task>(doneTasksList);
return doneTasks;
}
private String editTask(Task currentTask) {
if (currentTask == null)
return "";
taskManager.setCurrentTask(currentTask);
Story currentStory = storyManager.getCurrentStory();
if (currentStory != currentTask.getStory()) {
storyManager.setCurrentStory(currentTask.getStory());
}
return "/task/edit";
}
public String editToDoTask() {
return editTask(toDoTasks.getRowData());
}
public String editDoneTask() {
return editTask(doneTasks.getRowData());
}
public String editWorkingTask() {
return editTask(workingTasks.getRowData());
}
public TaskManager getTaskManager() {
return taskManager;
}
public void setTaskManager(TaskManager taskManager) {
this.taskManager = taskManager;
}
public SprintManager getSprintManager() {
return sprintManager;
}
public void setSprintManager(SprintManager sprintManager) {
this.sprintManager = sprintManager;
}
public StoryManager getStoryManager() {
return storyManager;
}
public void setStoryManager(StoryManager storyManager) {
this.storyManager = storyManager;
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.web.controller;
/**
*
* @author Dr. Spock (spock at dev.java.net)
*/
public class ManagerException extends Exception {
private static final long serialVersionUID = 1L;
public ManagerException(Throwable cause) {
super(cause);
}
public ManagerException(String message, Throwable cause) {
super(message, cause);
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.web.controller;
import jsf2.demo.scrum.model.entities.Project;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import javax.faces.model.SelectItem;
import javax.faces.validator.ValidatorException;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* @author Dr. Spock (spock at dev.java.net)
*/
@ManagedBean(name = "projectManager")
@SessionScoped
public class ProjectManager extends AbstractManager implements Serializable {
private static final long serialVersionUID = 1L;
private Project currentProject;
private DataModel<Project> projects;
private List<SelectItem> projectItems;
private List<Project> projectList;
@PostConstruct
public void construct() {
Project project = new Project();
setCurrentProject(project);
init();
}
@PreDestroy
public void destroy() {
projects = null;
if (projectItems != null) {
projectItems.clear();
projectItems = null;
}
if (projectList != null) {
projectList.clear();
projectList = null;
}
currentProject = null;
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().remove("projectManager");
}
public void init() {
try {
setProjectList(doInTransaction(new PersistenceAction<List<Project>>() {
@SuppressWarnings({"unchecked"})
public List<Project> execute(EntityManager em) {
Query query = em.createNamedQuery("project.getAll");
return (List<Project>) query.getResultList();
}
}));
} catch (ManagerException ex) {
Logger.getLogger(ProjectManager.class.getName()).log(Level.SEVERE, null, ex);
}
projectItems = new LinkedList<SelectItem>();
projectItems.add(new SelectItem(new Project(), "-- Select one project --"));
if (getProjectList() != null) {
projects = new ListDataModel<Project>(getProjectList());
for (Project p : getProjectList()) {
projectItems.add(new SelectItem(p, p.getName()));
}
}
}
public String create() {
Project project = new Project();
setCurrentProject(project);
return "create";
}
public String save() {
if (getCurrentProject() != null) {
try {
Project merged = doInTransaction(new PersistenceAction<Project>() {
public Project execute(EntityManager em) {
if (getCurrentProject().isNew()) {
em.persist(getCurrentProject());
} else if (!em.contains(currentProject)) {
return em.merge(getCurrentProject());
}
return getCurrentProject();
}
});
if (!currentProject.equals(merged)) {
setCurrentProject(merged);
int idx = getProjectList().indexOf(getCurrentProject());
if (idx != -1) {
getProjectList().set(idx, merged);
}
}
if (!projectList.contains(merged)) {
getProjectList().add(merged);
}
} catch (Exception e) {
getLogger(getClass()).log(Level.SEVERE, "Error on try to save Project: " + getCurrentProject(), e);
addMessage("Error on try to save Project", FacesMessage.SEVERITY_ERROR);
return null;
}
}
init();
return "show";
}
public String edit() {
setCurrentProject(projects.getRowData());
// Using implicity navigation, this request come from /projects/show.xhtml and directs to /project/edit.xhtml
return "edit";
}
public String remove() {
final Project project = projects.getRowData();
if (project != null) {
try {
doInTransaction(new PersistenceActionWithoutResult() {
public void execute(EntityManager em) {
if (em.contains(project)) {
em.remove(project);
} else {
em.remove(em.merge(project));
}
}
});
getProjectList().remove(project);
} catch (Exception e) {
getLogger(getClass()).log(Level.SEVERE, "Error on try to remove Project: " + getCurrentProject(), e);
addMessage("Error on try to remove Project", FacesMessage.SEVERITY_ERROR);
return null;
}
}
init();
// Using implicity navigation, this request come from /projects/show.xhtml and directs to /project/show.xhtml
// could be null instead
return "show";
}
public void checkUniqueProjectName(FacesContext context, UIComponent component, Object newValue) {
final String newName = (String) newValue;
try {
Long count = doInTransaction(new PersistenceAction<Long>() {
public Long execute(EntityManager em) {
Query query = em.createNamedQuery((getCurrentProject().isNew()) ? "project.new.countByName" : "project.countByName");
query.setParameter("name", newName);
if (!currentProject.isNew()) {
query.setParameter("currentProject", getCurrentProject());
}
return (Long) query.getSingleResult();
}
});
if (count != null && count > 0) {
throw new ValidatorException(getFacesMessageForKey("project.form.label.name.unique"));
}
} catch (ManagerException ex) {
Logger.getLogger(ProjectManager.class.getName()).log(Level.SEVERE, null, ex);
}
}
public String cancelEdit() {
// Implicity navigation, this request come from /projects/edit.xhtml and directs to /project/show.xhtml
return "show";
}
public String showSprints() {
setCurrentProject(projects.getRowData());
// Implicity navigation, this request come from /projects/show.xhtml and directs to /project/showSprints.xhtml
return "showSprints";
}
public Project getCurrentProject() {
return currentProject;
}
public void setCurrentProject(Project currentProject) {
this.currentProject = currentProject;
}
public DataModel<Project> getProjects() {
return projects;
}
public void setProjects(DataModel<Project> projects) {
this.projects = projects;
}
public List<SelectItem> getProjectItems() {
return projectItems;
}
public void setProjectItems(List<SelectItem> projectItems) {
this.projectItems = projectItems;
}
/**
* @return the projectList
*/
public List<Project> getProjectList() {
return projectList;
}
/**
* @param projectList the projectList to set
*/
public void setProjectList(List<Project> projectList) {
this.projectList = projectList;
}
public String viewSprints() {
return "/sprint/show";
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.web.controller;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ManagedProperty;
import javax.faces.context.FacesContext;
/**
*
* @author Dr. Spock (spock at dev.java.net)
*/
@ManagedBean(name = "skinManager")
@SessionScoped
public class SkinManager extends AbstractManager implements Serializable {
private String selectedSkin;
@ManagedProperty(value="#{skinValuesManager}")
private SkinValuesManager skinValuesManager;
private static final long serialVersionUID = 2936693632616580209L;
@PostConstruct
public void construct() {
selectedSkin = skinValuesManager.getDefaultSkinCss();
}
@PreDestroy
public void destroy() {
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().remove("skinManager");
}
public String getSelectedSkin() {
return selectedSkin;
}
public void setSelectedSkin(String selectedSkin) {
this.selectedSkin = selectedSkin;
}
public SkinValuesManager getSkinValuesManager() {
return skinValuesManager;
}
public void setSkinValuesManager(SkinValuesManager skinValuesManager) {
this.skinValuesManager = skinValuesManager;
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.web.controller;
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
/**
*
* @author eder
*/
@ManagedBean(name = "skinUrlManager")
@RequestScoped
public class SkinUrlManager extends AbstractManager implements Serializable {
private String skin;
@ManagedProperty(value="#{skinManager}")
private SkinManager skinManager;
@ManagedProperty(value="#{skinValuesManager}")
private SkinValuesManager skinValuesManager;
private static final long serialVersionUID = 7770408832569218016L;
public String getSkin() {
return skin;
}
public void setSkin(String skin) {
this.skin = skin;
}
public void update() {
if (skin == null || "".equals(skin))
return;
String skinCss = skinValuesManager.getSkinCss(skin.toLowerCase());
skinManager.setSelectedSkin(skinCss);
}
public SkinManager getSkinManager() {
return skinManager;
}
public void setSkinManager(SkinManager skinManager) {
this.skinManager = skinManager;
}
public SkinValuesManager getSkinValuesManager() {
return skinValuesManager;
}
public void setSkinValuesManager(SkinValuesManager skinValuesManager) {
this.skinValuesManager = skinValuesManager;
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.web.controller;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ApplicationScoped;
import java.util.Map;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.ArrayList;
import javax.annotation.PreDestroy;
import javax.faces.context.FacesContext;
/**
*
* @author edermag
*/
@ManagedBean(name="skinValuesManager", eager=true)
@ApplicationScoped
public class SkinValuesManager implements Serializable {
private Map<String, String> values;
private String defaultSkin = "blue";
private static final long serialVersionUID = 2238251086172648511L;
@PostConstruct
public void construct() {
values = new LinkedHashMap<String, String>();
values.put("yellow", "appYellowSkin.css");
values.put("orange", "appOrangeSkin.css");
values.put("red", "appRedSkin.css");
values.put(defaultSkin, "appBlueSkin.css");
}
@PreDestroy
public void destroy() {
if (null != values) {
values.clear();
values = null;
}
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().remove("skinValuesManager");
}
protected String getSkinCss(String skin) {
if (!values.containsKey(skin))
return getDefaultSkinCss();
return values.get(skin);
}
protected String getDefaultSkinCss() {
return values.get(defaultSkin);
}
public List<String> getNames() {
return new ArrayList<String>(values == null ? null : values.keySet());
}
public int getSize() {
return values.keySet().size();
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.web.controller;
import jsf2.demo.scrum.model.entities.Project;
import jsf2.demo.scrum.model.entities.Sprint;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import javax.faces.validator.ValidatorException;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.io.Serializable;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* @author Dr. Spock (spock at dev.java.net)
*/
@ManagedBean(name = "sprintManager")
@SessionScoped
public class SprintManager extends AbstractManager implements Serializable {
private static final long serialVersionUID = 1L;
private Sprint currentSprint;
private DataModel<Sprint> sprints;
private List<Sprint> sprintList;
@ManagedProperty("#{projectManager}")
private ProjectManager projectManager;
private Project currentProject;
@PostConstruct
public void construct() {
init();
}
@PreDestroy
public void destroy() {
sprints = null;
if (null != sprintList) {
sprintList.clear();
sprintList = null;
}
projectManager = null;
currentProject = null;
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().remove("sprintManager");
}
public void init() {
Sprint sprint = new Sprint();
Project pmCurrentProject = getProjectManager().getCurrentProject();
sprint.setProject(pmCurrentProject);
setCurrentSprint(sprint);
if (pmCurrentProject != null) {
sprintList = new LinkedList<Sprint>(pmCurrentProject.getSprints());
} else {
sprintList = Collections.emptyList();
}
sprints = new ListDataModel<Sprint>(sprintList);
}
public String create() {
Sprint sprint = new Sprint();
sprint.setProject(getProjectManager().getCurrentProject());
setCurrentSprint(sprint);
return "create";
}
public String save() {
if (currentSprint != null) {
try {
Sprint merged = doInTransaction(new PersistenceAction<Sprint>() {
public Sprint execute(EntityManager em) {
if (currentSprint.isNew()) {
em.persist(currentSprint);
} else if (!em.contains(currentSprint)) {
return em.merge(currentSprint);
}
return currentSprint;
}
});
if (!currentSprint.equals(merged)) {
setCurrentSprint(merged);
int idx = sprintList.indexOf(currentSprint);
if (idx != -1) {
sprintList.set(idx, merged);
}
}
getProjectManager().getCurrentProject().addSprint(merged);
if (!sprintList.contains(merged)) {
sprintList.add(merged);
}
} catch (Exception e) {
getLogger(getClass()).log(Level.SEVERE, "Error on try to save Sprint: " + currentSprint, e);
addMessage("Error on try to save Sprint", FacesMessage.SEVERITY_ERROR);
return null;
}
}
return "show";
}
public String edit() {
setCurrentSprint(sprints.getRowData());
return "edit";
}
public String remove() {
final Sprint sprint = sprints.getRowData();
if (sprint != null) {
try {
doInTransaction(new PersistenceActionWithoutResult() {
public void execute(EntityManager em) {
if (em.contains(sprint)) {
em.remove(sprint);
} else {
em.remove(em.merge(sprint));
}
}
});
getProjectManager().getCurrentProject().removeSpring(sprint);
sprintList.remove(sprint);
} catch (Exception e) {
getLogger(getClass()).log(Level.SEVERE, "Error on try to remove Sprint: " + currentSprint, e);
addMessage("Error on try to remove Sprint", FacesMessage.SEVERITY_ERROR);
return null;
}
}
return "show";
}
/*
* This method can be pointed to by a validator methodExpression, such as:
*
* <h:inputText id="itName" value="#{sprintManager.currentSprint.name}" required="true"
* requiredMessage="#{i18n['sprint.form.label.name.required']}" maxLength="30" size="30"
* validator="#{sprintManager.checkUniqueSprintName}" />
*/
public void checkUniqueSprintNameFacesValidatorMethod(FacesContext context, UIComponent component, Object newValue) {
final String newName = (String) newValue;
String message = checkUniqueSprintNameApplicationValidatorMethod(newName);
if (null != message) {
throw new ValidatorException(getFacesMessageForKey("sprint.form.label.name.unique"));
}
}
/*
* This method is called by the JSR-303 SprintNameUniquenessConstraintValidator.
* If it returns non-null, the result must be interpreted as the localized
* validation message.
*
*/
public String checkUniqueSprintNameApplicationValidatorMethod(String newValue) {
String message = null;
final String newName = newValue;
try {
Long count = doInTransaction(new PersistenceAction<Long>() {
public Long execute(EntityManager em) {
Query query = em.createNamedQuery((currentSprint.isNew()) ? "sprint.new.countByNameAndProject" : "sprint.countByNameAndProject");
query.setParameter("name", newName);
query.setParameter("project", getProjectManager().getCurrentProject());
if (!currentSprint.isNew()) {
query.setParameter("currentSprint", currentSprint);
}
return (Long) query.getSingleResult();
}
});
if (count != null && count > 0) {
message = getFacesMessageForKey("sprint.form.label.name.unique").getSummary();
}
} catch (ManagerException ex) {
Logger.getLogger(SprintManager.class.getName()).log(Level.SEVERE, null, ex);
}
return message;
}
public String cancelEdit() {
return "show";
}
public String showStories() {
setCurrentSprint(sprints.getRowData());
return "showStories";
}
public String showDashboard() {
setCurrentSprint(sprints.getRowData());
return "showDashboard";
}
public Sprint getCurrentSprint() {
return currentSprint;
}
public void setCurrentSprint(Sprint currentSprint) {
this.currentSprint = currentSprint;
}
public DataModel<Sprint> getSprints() {
this.sprints = new ListDataModel<Sprint>(projectManager.getCurrentProject().getSprints());
return this.sprints;
}
public void setSprints(DataModel<Sprint> sprints) {
this.sprints = sprints;
}
public ProjectManager getProjectManager() {
return projectManager;
}
public void setProjectManager(ProjectManager projectManager) {
this.projectManager = projectManager;
}
public Project getProject() {
Project pmCurrentProject = projectManager.getCurrentProject();
// Verify if the currentProject is out of date
// If there is a new CurrentProject we need to update sprintList and set currentSprint to null and tell user he/she needs to select a Sprint
if (pmCurrentProject != currentProject) {
this.setCurrentSprint(null);
this.sprintList = pmCurrentProject.getSprints();
this.sprints = new ListDataModel<Sprint>(sprintList);
this.currentProject = pmCurrentProject;
}
return currentProject;
}
public void setProject(Project project) {
projectManager.setCurrentProject(project);
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.web.controller;
import jsf2.demo.scrum.model.entities.Sprint;
import jsf2.demo.scrum.model.entities.Story;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import javax.faces.validator.ValidatorException;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
@ManagedBean(name = "storyManager")
@SessionScoped
public class StoryManager extends AbstractManager implements Serializable {
private static final long serialVersionUID = 1L;
@ManagedProperty("#{sprintManager}")
private SprintManager sprintManager;
private Story currentStory;
private DataModel<Story> stories;
private List<Story> storyList;
@PostConstruct
public void construct() {
init();
}
@PreDestroy
public void destroy() {
sprintManager = null;
currentStory = null;
stories = null;
if (null != storyList) {
storyList.clear();
storyList = null;
}
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().remove("storyManager");
}
public void init() {
Sprint currentSprint = sprintManager.getCurrentSprint();
if (currentSprint != null) {
Story story = new Story();
setStoryList(new LinkedList<Story>(currentSprint.getStories()));
story.setSprint(currentSprint);
setCurrentStory(story);
} else {
setStoryList(new ArrayList<Story>());
}
stories = new ListDataModel<Story>(getStoryList());
}
public String create() {
Story story = new Story();
story.setSprint(sprintManager.getCurrentSprint());
setCurrentStory(story);
return "create";
}
public String save() {
if (currentStory != null) {
try {
Story merged = doInTransaction(new PersistenceAction<Story>() {
public Story execute(EntityManager em) {
if (currentStory.isNew()) {
em.persist(currentStory);
} else if (!em.contains(currentStory)) {
return em.merge(currentStory);
}
return currentStory;
}
});
if (!currentStory.equals(merged)) {
setCurrentStory(merged);
int idx = getStoryList().indexOf(currentStory);
if (idx != -1) {
getStoryList().set(idx, merged);
}
}
sprintManager.getCurrentSprint().addStory(merged);
if (!storyList.contains(merged)) {
getStoryList().add(merged);
}
} catch (Exception e) {
getLogger(getClass()).log(Level.SEVERE, "Error on try to save Story: " + currentStory, e);
addMessage("Error on try to save Story", FacesMessage.SEVERITY_ERROR);
return null;
}
}
return "show";
}
public String edit() {
setCurrentStory(stories.getRowData());
return "edit";
}
public String remove() {
final Story story = stories.getRowData();
if (story != null) {
try {
doInTransaction(new PersistenceActionWithoutResult() {
public void execute(EntityManager em) {
if (em.contains(story)) {
em.remove(story);
} else {
em.remove(em.merge(story));
}
}
});
sprintManager.getCurrentSprint().removeStory(story);
getStoryList().remove(story);
} catch (Exception e) {
getLogger(getClass()).log(Level.SEVERE, "Error on try to remove Story: " + currentStory, e);
addMessage("Error on try to remove Story", FacesMessage.SEVERITY_ERROR);
return null;
}
}
return "show";
}
public void checkUniqueStoryName(FacesContext context, UIComponent component, Object newValue) {
final String newName = (String) newValue;
try {
Long count = doInTransaction(new PersistenceAction<Long>() {
public Long execute(EntityManager em) {
Query query = em.createNamedQuery((currentStory.isNew()) ? "story.new.countByNameAndSprint" : "story.countByNameAndSprint");
query.setParameter("name", newName);
query.setParameter("sprint", sprintManager.getCurrentSprint());
if (!currentStory.isNew()) {
query.setParameter("currentStory", currentStory);
}
return (Long) query.getSingleResult();
}
});
if (count != null && count > 0) {
throw new ValidatorException(getFacesMessageForKey("story.form.label.name.unique"));
}
} catch (ManagerException ex) {
Logger.getLogger(StoryManager.class.getName()).log(Level.SEVERE, null, ex);
}
}
public String cancelEdit() {
return "show";
}
public String showTasks() {
setCurrentStory(stories.getRowData());
return "showTasks";
}
public Story getCurrentStory() {
return currentStory;
}
public void setCurrentStory(Story currentStory) {
this.currentStory = currentStory;
}
public DataModel<Story> getStories() {
if (sprintManager.getCurrentSprint() != null) {
this.stories = new ListDataModel<Story>(sprintManager.getCurrentSprint().getStories());
return stories;
} else {
return new ListDataModel<Story>();
}
}
public void setStories(DataModel<Story> stories) {
this.stories = stories;
}
public Sprint getSprint() {
return sprintManager.getCurrentSprint();
}
public void setSprint(Sprint sprint) {
sprintManager.setCurrentSprint(sprint);
}
/**
* @return the storyList
*/
public List<Story> getStoryList() {
if (sprintManager.getCurrentSprint() != null) {
this.storyList = sprintManager.getCurrentSprint().getStories();
}
return this.storyList;
}
/**
* @param storyList the storyList to set
*/
public void setStoryList(List<Story> storyList) {
this.storyList = storyList;
}
/**
* @return the sprintManager
*/
public SprintManager getSprintManager() {
return sprintManager;
}
/**
* @param sprintManager the sprintManager to set
*/
public void setSprintManager(SprintManager sprintManager) {
this.sprintManager = sprintManager;
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.web.controller;
import jsf2.demo.scrum.model.entities.Story;
import jsf2.demo.scrum.model.entities.Task;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import javax.faces.validator.ValidatorException;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.PreDestroy;
import javax.faces.bean.CustomScoped;
import jsf2.demo.scrum.web.scope.TaskScopeResolver;
/**
* @author Dr. Spock (spock at dev.java.net)
*/
@ManagedBean(name = "taskManager")
@CustomScoped(value="#{taskScope}")
public class TaskManager extends AbstractManager implements Serializable {
private static final long serialVersionUID = 1L;
private Task currentTask;
private DataModel<Task> tasks;
private List<Task> taskList;
@ManagedProperty("#{storyManager}")
private StoryManager storyManager;
@PostConstruct
public void construct() {
getLogger(getClass()).log(Level.INFO, "new intance of taskManager in taskScope");
init();
}
public void init() {
Task task = new Task();
Story currentStory = storyManager.getCurrentStory();
task.setStory(currentStory);
setCurrentTask(task);
if (currentStory != null) {
taskList = new LinkedList<Task>(currentStory.getTasks());
} else {
taskList = new ArrayList<Task>();
}
tasks = new ListDataModel<Task>(taskList);
}
public String create() {
Task task = new Task();
task.setStory(storyManager.getCurrentStory());
setCurrentTask(task);
return "create";
}
public String save() {
if (currentTask != null) {
try {
Task merged = doInTransaction(new PersistenceAction<Task>() {
public Task execute(EntityManager em) {
if (currentTask.isNew()) {
em.persist(currentTask);
} else if (!em.contains(currentTask)) {
return em.merge(currentTask);
}
return currentTask;
}
});
if (!currentTask.equals(merged)) {
setCurrentTask(merged);
int idx = taskList.indexOf(currentTask);
if (idx != -1) {
taskList.set(idx, merged);
}
}
storyManager.getCurrentStory().addTask(merged);
if (!taskList.contains(merged)) {
taskList.add(merged);
}
} catch (Exception e) {
getLogger(getClass()).log(Level.SEVERE, "Error on try to save Task: " + currentTask, e);
addMessage("Error on try to save Task", FacesMessage.SEVERITY_ERROR);
return null;
}
}
return "show";
}
public String edit() {
setCurrentTask(tasks.getRowData());
return "edit";
}
public String remove() {
final Task task = tasks.getRowData();
if (task != null) {
try {
doInTransaction(new PersistenceActionWithoutResult() {
public void execute(EntityManager em) {
if (em.contains(task)) {
em.remove(task);
} else {
em.remove(em.merge(task));
}
}
});
storyManager.getCurrentStory().removeTask(task);
taskList.remove(task);
} catch (Exception e) {
getLogger(getClass()).log(Level.SEVERE, "Error on try to remove Task: " + currentTask, e);
addMessage("Error on try to remove Task", FacesMessage.SEVERITY_ERROR);
return null;
}
}
return "show";
}
public void checkUniqueTaskName(FacesContext context, UIComponent component, Object newValue) {
final String newName = (String) newValue;
try {
Long count = doInTransaction(new PersistenceAction<Long>() {
public Long execute(EntityManager em) {
Query query = em.createNamedQuery((currentTask.isNew()) ? "task.new.countByNameAndStory" : "task.countByNameAndStory");
query.setParameter("name", newName);
query.setParameter("story", storyManager.getCurrentStory());
if (!currentTask.isNew()) {
query.setParameter("currentTask", (!currentTask.isNew()) ? currentTask : null);
}
return (Long) query.getSingleResult();
}
});
if (count != null && count > 0) {
throw new ValidatorException(getFacesMessageForKey("task.form.label.name.unique"));
}
} catch (ManagerException ex) {
Logger.getLogger(TaskManager.class.getName()).log(Level.SEVERE, null, ex);
}
}
public String cancelEdit() {
return "show";
}
public Task getCurrentTask() {
return currentTask;
}
public void setCurrentTask(Task currentTask) {
this.currentTask = currentTask;
}
public DataModel<Task> getTasks() {
this.tasks = new ListDataModel<Task>(storyManager.getCurrentStory().getTasks());
return tasks;
}
public void setTasks(DataModel<Task> tasks) {
this.tasks = tasks;
}
public Story getStory() {
return storyManager.getCurrentStory();
}
public void setStory(Story story) {
storyManager.setCurrentStory(story);
}
public StoryManager getStoryManager() {
return storyManager;
}
public void setStoryManager(StoryManager storyManager) {
this.storyManager = storyManager;
}
public String showStories() {
endScope();
return "/story/show";
}
private void endScope() {
TaskScopeResolver.destroyScope();
}
@PreDestroy
public void destroy() {
getLogger(getClass()).log(Level.INFO, "destroy intance of taskManager in taskScope");
currentTask = null;
tasks = null;
if (null != taskList) {
taskList.clear();
taskList = null;
}
storyManager = null;
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.web.event;
import javax.faces.event.SystemEvent;
/**
*
* @author Dr. Spock (spock at dev.java.net)
*/
public class CurrentProjectChangeEvent extends SystemEvent {
private static final long serialVersionUID = -5633456683147546243L;
public CurrentProjectChangeEvent(Object source) {
super(source);
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.web.event;
import javax.faces.event.SystemEvent;
/**
*
* @author Dr. Spock (spock at dev.java.net)
*/
public class CurrentSprintChangeEvent extends SystemEvent {
private static final long serialVersionUID = -4000646623469835514L;
public CurrentSprintChangeEvent(Object source) {
super(source);
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.web.event;
import javax.faces.event.SystemEvent;
/**
*
* @author Dr. Spock (spock at dev.java.net)
*/
public class CurrentStoryChangeEvent extends SystemEvent {
private static final long serialVersionUID = -6484414742384961535L;
public CurrentStoryChangeEvent(Object source) {
super(source);
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.web.event;
import javax.faces.event.SystemEvent;
/**
*
* @author Dr. Spock (spock at dev.java.net)
*/
public class CurrentTaskChangeEvent extends SystemEvent {
private static final long serialVersionUID = 5152005639803302363L;
public CurrentTaskChangeEvent(Object source) {
super(source);
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.web.helper;
import jsf2.demo.scrum.model.entities.Project;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import javax.faces.convert.FacesConverter;
import java.util.HashMap;
import java.util.Map;
/**
* @author Dr. Spock (spock at dev.java.net)
*/
@FacesConverter(forClass = Project.class)
public class ProjectConverter implements Converter {
private static Map<Long, Project> cache = new HashMap<Long, Project>();
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if (value == null || value.equals("0")) {
return null;
}
try {
return cache.get(Long.parseLong(value));
} catch (NumberFormatException e) {
throw new ConverterException("Invalid value: " + value, e);
}
}
public String getAsString(FacesContext context, UIComponent component, Object object) {
Project project = (Project) object;
Long id = project.getId();
if (id != null) {
cache.put(id, project);
return String.valueOf(id.longValue());
} else {
return "0";
}
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.web.scope;
import java.util.concurrent.ConcurrentHashMap;
import javax.faces.application.Application;
import javax.faces.context.FacesContext;
import javax.faces.event.PostConstructCustomScopeEvent;
import javax.faces.event.PreDestroyCustomScopeEvent;
import javax.faces.event.ScopeContext;
/**
* Actually, custom scope is a Map where the instances of managed bean are store.
*/
public class TaskScope extends ConcurrentHashMap<String,Object> {
private Application application;
private static final long serialVersionUID = -7242422398841995164L;
public TaskScope(Application application) {
this.application = application;
}
//will call the postConstruct method.
public void notifyCreate(String scopeName, FacesContext facesContext) {
ScopeContext scopeContext = new ScopeContext(scopeName, this);
application.publishEvent(facesContext, PostConstructCustomScopeEvent.class, scopeContext);
}
//will call the preDestroy method.
public void notifyDestroy(String scopeName, FacesContext facesContext) {
ScopeContext scopeContext = new ScopeContext(scopeName, this);
application.publishEvent(facesContext, PreDestroyCustomScopeEvent.class, scopeContext);
}
}
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath" exception
* as provided by Sun in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the License
* Header, with the fields enclosed by brackets [] replaced by your own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package jsf2.demo.scrum.web.scope;
import java.beans.FeatureDescriptor;
import java.util.Collections;
import java.util.Iterator;
import java.util.Map;
import javax.el.ELContext;
import javax.el.ELResolver;
import javax.el.PropertyNotFoundException;
import javax.faces.context.FacesContext;
/**
* Resolver to #{taskScope} expression.
* @author eder
*/
public class TaskScopeResolver extends ELResolver {
private static final String SCOPE_NAME = "taskScope";
@Override
public Class<?> getCommonPropertyType(ELContext context, Object base) {
if (base != null) {
return null;
}
return String.class;
}
@Override
public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext context, Object base) {
return Collections.<FeatureDescriptor>emptyList().iterator();
}
@Override
public Class<?> getType(ELContext context, Object base, Object property) {
return Object.class;
}
@Override
public Object getValue(ELContext context, Object scope, Object property) {
if (property == null) {
throw new PropertyNotFoundException();
}
if (scope == null && SCOPE_NAME.equals(property.toString())) {
TaskScope scopeManager = getScope(context);
context.setPropertyResolved(true);
return scopeManager;
} else if (scope != null && scope instanceof TaskScope) {
//looking for bean in scope already created.
return lookupBean(context, (TaskScope) scope, property.toString());
} else if (scope == null) {
return lookupBean(context, getScope(context), property.toString());
}
return null;
}
@Override
public boolean isReadOnly(ELContext context, Object base, Object property) {
return true;
}
@Override
public void setValue(ELContext context, Object base, Object property, Object value) {
}
private TaskScope getScope(ELContext context) {
//looking for custom scope in the session
//if doesn't exists create and put it in the session
FacesContext facesContext = (FacesContext) context.getContext(FacesContext.class);
Map<String,Object> sessionMap = facesContext.getExternalContext().getSessionMap();
TaskScope scopeManager = (TaskScope) sessionMap.get(SCOPE_NAME);
if (scopeManager == null) {
scopeManager = new TaskScope(facesContext.getApplication());
sessionMap.put(SCOPE_NAME, scopeManager);
scopeManager.notifyCreate(SCOPE_NAME,facesContext);
}
return scopeManager;
}
private Object lookupBean(ELContext context, TaskScope scope, String key) {
//looking for mbean in taskScope
Object value = scope.get(key);
context.setPropertyResolved(value != null);
return value;
}
public static void destroyScope() {
//remove scope from the session
FacesContext ctx = FacesContext.getCurrentInstance();
Map<String,Object> sessionMap = ctx.getExternalContext().getSessionMap();
TaskScope taskScope = (TaskScope) sessionMap.remove(SCOPE_NAME);
if (taskScope != null)
taskScope.notifyDestroy(SCOPE_NAME, ctx);
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="scrumtoysPU" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>jsf2.demo.scrum.model.entities.Project</class>
<class>jsf2.demo.scrum.model.entities.Sprint</class>
<class>jsf2.demo.scrum.model.entities.Story</class>
<class>jsf2.demo.scrum.model.entities.Task</class>
<validation-mode>NONE</validation-mode>
<properties>
<property name="eclipselink.target-database" value="Auto"/>
<property name="eclipselink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
</persistence>
sprint.form.label.name.unique=Sprint name must be unique within a project
\ No newline at end of file
sprint.form.label.name.unique=Sprint name must be unique within a project
\ No newline at end of file
button.dashboard=Dashboard
button.delete=Delete
button.edit=Edit
button.save=Save
button.stories=Stories
button.tasks=Tasks
home.project.combo.default.item=-- Select one project --
home.project.combo.label=Project
label.actions=Actions
label.code=code
label.dailyMeeting =Daily Meeting
label.done=Done Tasks
label.estimatives=Estimatives
label.finishedAt=finished at
label.gainedPoints=Gained Points
label.goal=Goal
label.goals=Goals
label.name=Name
label.planning1 = Planning 1
label.planning2 = Planning 2
label.retrospective=Retrospective
label.revision=Review
label.scope=Scope
label.startedAt=Started at
label.stories=Stories
label.story=Story
label.task=Task
label.tasks=Tasks
label.to=to
label.toFinish=Finish
label.toRemove=Remove
label.toStart=Start
label.todo=Todo Tasks
label.working=Working Tasks
menuitem.label.projects=Projects
menuitem.label.home=Homes
menuitem.label.changeskin=Change Skin
menuitem.label.createProject=Create Project
menuitem.label.dashboard=Dashboard
menuitem.label.jsf2=More...
menuitem.label.newsprint=Create Sprint
menuitem.label.settings=Settings
menuitem.label.showProjects=View Projects
menuitem.label.sprints=Sprints
menuitem.label.sprintslist=View Sprints
menuitem.label.stories=Stories
menuitem.label.tasks=Tasks
menuitem.path.projects=/scrumtoys/project/show.jsf
menuitem.path.burndown=/scrumtoys/burndown.jsf
menuitem.path.changeskin=/scrumtoys/skin/changeSkin.jsf
menuitem.path.createProject=/scrumtoys/project/create.jsf
menuitem.path.dashboard=/scrumtoys/dashboard.jsf
menuitem.path.home=/scrumtoys/home.jsf
menuitem.path.jsf2=/scrumtoys/home.jsf
menuitem.path.newsprint=/scrumtoys/sprint/create.jsf
menuitem.path.showProjects=/scrumtoys/project/show.jsf
menuitem.path.sprints=/scrumtoys/sprint/show.jsf
menuitem.path.sprintslist=/scrumtoys/sprint/show.jsf
menuitem.path.stories=stories.jsf
menuitem.path.tasks=tasks.jsf
project.create.button.cancel=Cancel
project.create.button.create=Create Project
project.create.form.title=Create Project
project.create.title=Create Project
project.edit.button.cancel=Cancel
project.edit.button.update=Update Project
project.edit.form.title=Edit Project
project.edit.title=Edit Project
project.form.label.endDate.pattern=MM/dd/yyyy
project.form.label.endDate=End Date
project.form.label.name.required=Describe a short name (30 characters)
project.form.label.name=Name
project.form.label.startDate.pattern=MM/dd/yyyy
project.form.label.startDate.required=Type when this sprint start
project.form.label.startDate=Start Date
project.show.button.delete=Delete
project.show.button.edit=Edit
project.show.button.home=Home
project.show.button.newProject=Create New Project
project.show.button.showSprints=Sprints
project.show.table.header.actions=Actions
project.show.table.header.endDate.pattern=MM/dd/yy
project.show.table.header.endDate=End Date
project.show.table.header.name=Name
project.show.table.header.startDate.pattern=MM/dd/yy
project.show.table.header.startDate=Start Date
project.show.table.label.empty=There is no project
project.show.table.title=Projects
project.show.title=Projects
sprint.create.button.cancel=Cancel
sprint.create.button.create=Create Sprint
sprint.create.form.title=Create Sprint
sprint.create.title=Create Sprint
sprint.edit.button.cancel=Cancel
sprint.edit.button.update=Update Sprint
sprint.edit.form.title=Edit Sprint
sprint.edit.title=Edit Sprint
sprint.form.label.dailyMeetingTime.pattern=HH:mm
sprint.form.label.dailyMeetingTime.required=Type the dailing meeting time
sprint.form.label.dailyMeetingTime=Daily Meeting
sprint.form.label.endDate.pattern=MM/dd/yyyy
sprint.form.label.endDate=End Date
sprint.form.label.gainedStoryPoints.required=Type the story points
sprint.form.label.gainedStoryPoints=Gained Points
sprint.form.label.goals.required=Describe the goals
sprint.form.label.goals=Goals
sprint.form.label.iterationScope.required=Type the iteration scope
sprint.form.label.iterationScope=Story Points
sprint.form.label.name.required=Describe a short name (30 characters)
sprint.form.label.name=Name
sprint.form.label.project.name=Project
sprint.form.label.project=Project
sprint.form.label.startDate.pattern=MM/dd/yyyy
sprint.form.label.startDate.required=Type when this sprint start
sprint.form.label.startDate=Start Date
sprint.show.button.delete=Delete
sprint.show.button.edit=Edit
sprint.show.button.home=Home
sprint.show.button.newSprint=Create New Sprint
sprint.show.button.showDashboard=Dashboard
sprint.show.button.showStories=Stories
sprint.show.table.header.actions=Actions
sprint.show.table.header.dailyMeetingTime.pattern=HH:mm
sprint.show.table.header.dailyMeetingTime=Daily Meeting Time
sprint.show.table.header.goals=Goals
sprint.show.table.header.name=Name
sprint.show.table.header.startDate.pattern=MM/dd/yy
sprint.show.table.header.startDate=Start Date
sprint.show.table.label.empty=There is no sprint for this project
sprint.show.table.title=Sprints
sprint.show.title=Sprints
sprints.label.dailingmeeting.required=Type the dailing meeting time
sprints.label.dailyMeetingTime=Daily Meeting
sprints.label.goals.required=Describe the goals
sprints.label.goals=Goals
sprints.label.iterationScope=Story Points
sprints.label.name.required=Describe a short name (30 characters)
sprints.label.name=Name
sprints.label.sprints=Sprints
sprints.label.startdate.required=Type when this sprint start
sprints.label.startedAt=Start at
sprints.label.storypoints.required=Descripte the amount of story points estimated
sprints.table.title=Sprints
stories.label.acceptance.required=Describe the acceptance criteria
stories.label.acceptance=Acceptance
stories.label.estimation=Story Points
stories.label.name=Name
stories.label.newstory=New Story
stories.label.nostory=There is no stories for this sprint
stories.label.priority.required=Describe the priority (sequence to do)
stories.label.priority=Priority
stories.label.sprint=Sprint
stories.label.storylist=Stories
stories.label.storypoints.required=Describe the estimated number of story points
stories.table.title=Stories
story.create.button.cancel=Cancel
story.create.button.create=Create Story
story.create.form.title=Create Story
story.create.title=Create Story
story.edit.button.cancel=Cancel
story.edit.button.update=Update Story
story.edit.form.title=Edit Story
story.edit.title=Edit Story
story.form.label.acceptance.required=Type acceptance
story.form.label.acceptance=Acceptance Criteria
story.form.label.endDate.pattern=MM/dd/yyyy
story.form.label.endDate=End Date
story.form.label.estimation.required=Type estimation
story.form.label.estimation=Estimation
story.form.label.name.required=Describe a short name (30 characters)
story.form.label.name=Name
story.form.label.priority.required=Define the priority
story.form.label.priority=Priority
story.form.label.sprint.name=Sprint
story.form.label.startDate.pattern=MM/dd/yyyy
story.form.label.startDate.required=Type when this sprint start
story.form.label.startDate=Start Date
story.show.button.delete=Delete
story.show.button.edit=Edit
story.show.button.newStory=Create New Story
story.show.button.showSprints=Show Sprints
story.show.button.showTasks=Tasks
story.show.table.header.acceptance=Acceptance Criteria
story.show.table.header.actions=Actions
story.show.table.header.estimation=Estimation
story.show.table.header.name=Name
story.show.table.header.priority=Priority
story.show.table.header.startDate.pattern=MM/dd/yy
story.show.table.header.startDate=Start Date
story.show.table.label.empty=There is no story for this sprint
story.show.table.title=List of Stories
story.show.title=List of Stories
task.create.button.cancel=Cancel
task.create.button.create=Create Task
task.create.form.title=Create Task
task.create.title=Create Task
task.edit.button.cancel=Cancel
task.edit.button.update=Update Task
task.edit.form.title=Edit Task
task.edit.title=Edit Task
task.form.label.endDate.pattern=MM/dd/yyyy
task.form.label.endDate=End Date
task.form.label.name.required=Describe a short name (30 characters)
task.form.label.name=Name
task.form.label.startDate.pattern=MM/dd/yyyy
task.form.label.startDate.required=Type when this task starts
task.form.label.startDate=Start Date
task.form.label.status.required=Specify the current status of the task
task.form.label.status=Status
task.form.label.story.name=Story
task.show.button.delete=Delete
task.show.button.edit=Edit
task.show.button.newTask=Create New Task
task.show.button.showStories=Show Stories
task.show.button.showTasks=Tasks
task.show.table.header.actions=Actions
task.show.table.header.endDate.pattern=MM/dd/yy
task.show.table.header.endDate=End Date
task.show.table.header.name=Name
task.show.table.header.startDate.pattern=MM/dd/yy
task.show.table.header.startDate=Start Date
task.show.table.header.status.DONE=Done
task.show.table.header.status.TODO=Todo
task.show.table.header.status.WORKING=Working
task.show.table.header.status=Status
task.show.table.label.empty=There is no task for this story
task.show.table.title=Tasks
task.show.title=Tasks
tasks.label.name=Name
tasks.label.story=Story
taskstatus.done.plural=Done
taskstatus.done.single=Done
taskstatus.todo.plural=Opened
taskstatus.todo.single=Opened
taskstatus.working.plural=Working
taskstatus.working.single=Working
project.form.label.name.unique=There is another project with same name
sprint.form.label.name.unique=There is another sprint with same name for this project
story.form.label.name.unique=There is another story with same name for this sprint
task.form.label.name.unique=There is another task with same name for this story
template.title=JSF 2.0 Demo - Scrum Whiteboard Application
menuitem.label.about=About
menuitem.label.jsr314=JSR 314
menuitem.label.irc=IRC
menuitem.label.documentation=Documentation
menuitem.path.irc=http://weblogs.java.net/blog/edburns/archive/2007/01/jsf_irc_channel.html
menuitem.path.jsr314=http://www.jcp.org/en/jsr/detail?id=314#
menuitem.path.about=http://www.globalcode.com.br/site/noticias/jsf2scrumdemo.seam
menuitem.path.documentation=http://java.sun.com/javaee/javaserverfaces/
task.form.label.sprint.name=Sprint
task.show.nostory=Select a Story first
stories.show.nosprint=Select a Sprint first
sprint.form.label.noproject=Select a Sprint first
sprint.form.label.projects=Projects
navigation.projects=Projects
navigation.stories=Stories
navigation.tasks=Tasks
navigation.sprints=Sprints
dashboard.title=Dashboard
navigation.separtor=>
button.dashboard=Dashboard
button.delete=Delete
button.edit=Edit
button.save=Save
button.stories=Stories
button.tasks=Tasks
home.project.combo.default.item=-- Select one project --
home.project.combo.label=Project
label.actions=Actions
label.code=code
label.dailyMeeting =Daily Meeting
label.done=Done Tasks
label.estimatives=Estimatives
label.finishedAt=finished at
label.gainedPoints=Gained Points
label.goal=Goal
label.goals=Goals
label.name=Name
label.planning1 = Planning 1
label.planning2 = Planning 2
label.retrospective=Retrospective
label.revision=Review
label.scope=Scope
label.startedAt=Started at
label.stories=Stories
label.story=Story
label.task=Task
label.tasks=Tasks
label.to=to
label.toFinish=Finish
label.toRemove=Remove
label.toStart=Start
label.todo=Todo Tasks
label.working=Working Tasks
menuitem.label.projects=Projects
menuitem.label.home=Home
menuitem.label.changeskin=Change Skin
menuitem.label.createProject=Create Project
menuitem.label.dashboard=Dashboard
menuitem.label.jsf2=More...
menuitem.label.newsprint=Create Sprint
menuitem.label.settings=Settings
menuitem.label.showProjects=View Projects
menuitem.label.sprints=Sprints
menuitem.label.sprintslist=View Sprints
menuitem.label.stories=Stories
menuitem.label.tasks=Tasks
menuitem.path.projects=/scrumtoys/project/show.jsf
<<<<<<< .mine
menuitem.path.changeskin=/scrumtoys/skin/changeSkin.jsf
=======
menuitem.path.burndown=/scrumtoys/burndown.jsf
menuitem.path.changeskin=/scrumtoys/skin/changeSkin.jsf
>>>>>>> .r7360
menuitem.path.createProject=/scrumtoys/project/create.jsf
menuitem.path.dashboard=/scrumtoys/dashboard.jsf
menuitem.path.home=/scrumtoys/home.jsf
menuitem.path.jsf2=/scrumtoys/home.jsf
menuitem.path.newsprint=/scrumtoys/sprint/create.jsf
menuitem.path.showProjects=/scrumtoys/project/show.jsf
menuitem.path.sprints=/scrumtoys/sprint/show.jsf
menuitem.path.sprintslist=/scrumtoys/sprint/show.jsf
menuitem.path.stories=stories.jsf
menuitem.path.tasks=tasks.jsf
project.create.button.cancel=Cancel
project.create.button.create=Create Project
project.create.form.title=Create Project
project.create.title=Create Project
project.edit.button.cancel=Cancel
project.edit.button.update=Update Project
project.edit.form.title=Edit Project
project.edit.title=Edit Project
project.form.label.endDate.pattern=MM/dd/yyyy
project.form.label.endDate=End Date
project.form.label.name.required=Describe a short name (30 characters)
project.form.label.name=Name
project.form.label.startDate.pattern=MM/dd/yyyy
project.form.label.startDate.required=Type when this sprint start
project.form.label.startDate=Start Date
project.show.button.delete=Delete
project.show.button.edit=Edit
project.show.button.home=Home
project.show.button.newProject=Create New Project
project.show.button.showSprints=Sprints
project.show.table.header.actions=Actions
project.show.table.header.endDate.pattern=MM/dd/yy
project.show.table.header.endDate=End Date
project.show.table.header.name=Name
project.show.table.header.startDate.pattern=MM/dd/yy
project.show.table.header.startDate=Start Date
project.show.table.label.empty=There is no project
project.show.table.title=Projects
project.show.title=Projects
sprint.create.button.cancel=Cancel
sprint.create.button.create=Create Sprint
sprint.create.form.title=Create Sprint
sprint.create.title=Create Sprint
sprint.edit.button.cancel=Cancel
sprint.edit.button.update=Update Sprint
sprint.edit.form.title=Edit Sprint
sprint.edit.title=Edit Sprint
sprint.form.label.dailyMeetingTime.pattern=HH:mm
sprint.form.label.dailyMeetingTime.required=Type the dailing meeting time
sprint.form.label.dailyMeetingTime=Daily Meeting
sprint.form.label.endDate.pattern=MM/dd/yyyy
sprint.form.label.endDate=End Date
sprint.form.label.gainedStoryPoints.required=Type the story points
sprint.form.label.gainedStoryPoints=Gained Points
sprint.form.label.goals.required=Describe the goals
sprint.form.label.goals=Goals
sprint.form.label.iterationScope.required=Type the iteration scope
sprint.form.label.iterationScope=Story Points
sprint.form.label.name.required=Describe a short name (30 characters)
sprint.form.label.name=Name
sprint.form.label.project.name=Project
sprint.form.label.project=Project
sprint.form.label.startDate.pattern=MM/dd/yyyy
sprint.form.label.startDate.required=Type when this sprint start
sprint.form.label.startDate=Start Date
sprint.show.button.delete=Delete
sprint.show.button.edit=Edit
sprint.show.button.home=Home
sprint.show.button.newSprint=Create New Sprint
sprint.show.button.showDashboard=Dashboard
sprint.show.button.showStories=Stories
sprint.show.table.header.actions=Actions
sprint.show.table.header.dailyMeetingTime.pattern=HH:mm
sprint.show.table.header.dailyMeetingTime=Daily Meeting Time
sprint.show.table.header.goals=Goals
sprint.show.table.header.name=Name
sprint.show.table.header.startDate.pattern=MM/dd/yy
sprint.show.table.header.startDate=Start Date
sprint.show.table.label.empty=There is no sprint for this project
sprint.show.table.title=Sprints
sprint.show.title=Sprints
sprints.label.dailingmeeting.required=Type the dailing meeting time
sprints.label.dailyMeetingTime=Daily Meeting
sprints.label.goals.required=Describe the goals
sprints.label.goals=Goals
sprints.label.iterationScope=Story Points
sprints.label.name.required=Describe a short name (30 characters)
sprints.label.name=Name
sprints.label.sprints=Sprints
sprints.label.startdate.required=Type when this sprint start
sprints.label.startedAt=Start at
sprints.label.storypoints.required=Descripte the amount of story points estimated
sprints.table.title=Sprints
stories.label.acceptance.required=Describe the acceptance criteria
stories.label.acceptance=Acceptance
stories.label.estimation=Story Points
stories.label.name=Name
stories.label.newstory=New Story
stories.label.nostory=There is no stories for this sprint
stories.label.priority.required=Describe the priority (sequence to do)
stories.label.priority=Priority
stories.label.sprint=Sprint
stories.label.storylist=Stories
stories.label.storypoints.required=Describe the estimated number of story points
stories.table.title=Stories
story.create.button.cancel=Cancel
story.create.button.create=Create Story
story.create.form.title=Create Story
story.create.title=Create Story
story.edit.button.cancel=Cancel
story.edit.button.update=Update Story
story.edit.form.title=Edit Story
story.edit.title=Edit Story
story.form.label.acceptance.required=Type acceptance
story.form.label.acceptance=Acceptance Criteria
story.form.label.endDate.pattern=MM/dd/yyyy
story.form.label.endDate=End Date
story.form.label.estimation.required=Type estimation
story.form.label.estimation=Estimation
story.form.label.name.required=Describe a short name (30 characters)
story.form.label.name=Name
story.form.label.priority.required=Define the priority
story.form.label.priority=Priority
story.form.label.sprint.name=Sprint
story.form.label.startDate.pattern=MM/dd/yyyy
story.form.label.startDate.required=Type when this sprint start
story.form.label.startDate=Start Date
story.show.button.delete=Delete
story.show.button.edit=Edit
story.show.button.newStory=Create New Story
story.show.button.showSprints=Show Sprints
story.show.button.showTasks=Tasks
story.show.table.header.acceptance=Acceptance Criteria
story.show.table.header.actions=Actions
story.show.table.header.estimation=Estimation
story.show.table.header.name=Name
story.show.table.header.priority=Priority
story.show.table.header.startDate.pattern=MM/dd/yy
story.show.table.header.startDate=Start Date
story.show.table.label.empty=There is no story for this sprint
story.show.table.title=List of Stories
story.show.title=List of Stories
task.create.button.cancel=Cancel
task.create.button.create=Create Task
task.create.form.title=Create Task
task.create.title=Create Task
task.edit.button.cancel=Cancel
task.edit.button.update=Update Task
task.edit.form.title=Edit Task
task.edit.title=Edit Task
task.form.label.endDate.pattern=MM/dd/yyyy
task.form.label.endDate=End Date
task.form.label.name.required=Describe a short name (30 characters)
task.form.label.name=Name
task.form.label.startDate.pattern=MM/dd/yyyy
task.form.label.startDate.required=Type when this task starts
task.form.label.startDate=Start Date
task.form.label.status.required=Specify the current status of the task
task.form.label.status=Status
task.form.label.story.name=Story
task.show.button.delete=Delete
task.show.button.edit=Edit
task.show.button.newTask=Create New Task
task.show.button.showStories=Show Stories
task.show.button.showTasks=Tasks
task.show.table.header.actions=Actions
task.show.table.header.endDate.pattern=MM/dd/yy
task.show.table.header.endDate=End Date
task.show.table.header.name=Name
task.show.table.header.startDate.pattern=MM/dd/yy
task.show.table.header.startDate=Start Date
task.show.table.header.status.DONE=Done
task.show.table.header.status.TODO=Todo
task.show.table.header.status.WORKING=Working
task.show.table.header.status=Status
task.show.table.label.empty=There is no task for this story
task.show.table.title=Tasks
task.show.title=Tasks
tasks.label.name=Name
tasks.label.story=Story
taskstatus.done.plural=Done
taskstatus.done.single=Done
taskstatus.todo.plural=Opened
taskstatus.todo.single=Opened
taskstatus.working.plural=Working
taskstatus.working.single=Working
project.form.label.name.unique=There is another project with same name
sprint.form.label.name.unique=There is another sprint with same name for this project
story.form.label.name.unique=There is another story with same name for this sprint
task.form.label.name.unique=There is another task with same name for this story
template.title=JSF 2.0 Demo - Scrum Whiteboard Application
menuitem.label.about=About
menuitem.label.jsr314=JSR 314
menuitem.label.irc=IRC
menuitem.label.documentation=Documentation
menuitem.path.irc=http://weblogs.java.net/blog/edburns/archive/2007/01/jsf_irc_channel.html
menuitem.path.jsr314=http://www.jcp.org/en/jsr/detail?id=314#
menuitem.path.about=http://www.globalcode.com.br/site/noticias/jsf2scrumdemo.seam
menuitem.path.documentation=http://java.sun.com/javaee/javaserverfaces/
task.form.label.sprint.name=Sprint
task.show.nostory=Select a Story first
stories.show.nosprint=Select a Sprint first
sprint.form.label.noproject=Select a Sprint first
sprint.form.label.projects=Projects
navigation.projects=Projects
navigation.stories=Stories
navigation.tasks=Tasks
navigation.sprints=Sprints
dashboard.title=Dashboard
navigation.separtor=>
button.dashboard=Dashboard
button.delete=Remover
button.edit=Editar
button.save=Salvar
button.stories=Estorias
button.tasks=Atividades
home.project.combo.default.item=-- Selecione um projeto --
home.project.combo.label=Projetos
label.actions=Acoes
label.code=codigo
label.dailyMeeting =Reuniao Diaria
label.done=Tarefas Feitas
label.estimatives=Estimativas
label.finishedAt=terminada em
label.gainedPoints=Pontos ganhos
label.goal=Objetivo
label.goals=Objetivos
label.name=Nome
label.planning1 =Planejamento 1
label.planning2 =Planejamento 2
label.retrospective=Retrospectiva
label.revision=Revisao
label.scope=Escopo
label.startedAt=Iniciada em
label.stories=Estorias
label.story=Estoria
label.task=Tarefa
label.tasks=Tarefas
label.to=a
label.toFinish=Terminar
label.toRemove=Apagar
label.toStart=Iniciar
label.todo=Tarefas Abertas
label.working=Tarefas em Andamento
menuitem.label.projects=Projetos
menuitem.label.home=Pagina inicial
menuitem.label.changeskin=Mudar aparencia
menuitem.label.createProject=Novo Projeto
menuitem.label.dashboard=Painel
menuitem.label.jsf2=Mais...
menuitem.label.newsprint=Novo Sprint
menuitem.label.settings=Configuracoes
menuitem.label.showProjects=Ver Projetos
menuitem.label.sprints=Sprints
menuitem.label.sprintslist=Ver Sprints
menuitem.label.stories=Estorias
menuitem.label.tasks=Tarefas
menuitem.path.projects=/scrumtoys/project/show.jsf
<<<<<<< .mine
menuitem.path.changeskin=/scrumtoys/skin/changeSkin.jsf
=======
menuitem.path.burndown=/scrumtoys/burndown.jsf
menuitem.path.changeskin=/scrumtoys/skin/changeSkin.jsf
>>>>>>> .r7360
menuitem.path.createProject=/scrumtoys/project/create.jsf
menuitem.path.dashboard=/scrumtoys/dashboard.jsf
menuitem.path.home=/scrumtoys/home.jsf
menuitem.path.jsf2=/scrumtoys/home.jsf
menuitem.path.newsprint=/scrumtoys/sprint/create.jsf
menuitem.path.showProjects=/scrumtoys/project/show.jsf
menuitem.path.sprints=/scrumtoys/sprint/show.jsf
menuitem.path.sprintslist=/scrumtoys/sprint/show.jsf
menuitem.path.stories=stories.jsf
menuitem.path.tasks=tasks.jsf
project.create.button.cancel=Cancelar
project.create.button.create=Criar Projeto
project.create.form.title=Criar Projeto
project.create.title=Criar Projeto
project.edit.button.cancel=Cancelar
project.edit.button.update=Atualizar Projeto
project.edit.form.title=Editar Projeto
project.edit.title=Editar Projeto
project.form.label.endDate.pattern=MM/dd/yyyy
project.form.label.endDate=Data Termino
project.form.label.name.required=Defina um nome (30 characters)
project.form.label.name=Nome
project.form.label.startDate.pattern=MM/dd/yyyy
project.form.label.startDate.required=Defina quanto este projeto inicia
project.form.label.startDate=Data Inicio
project.show.button.delete=Apagar
project.show.button.edit=Editar
project.show.button.home=Home
project.show.button.newProject=Criar Novo Projeto
project.show.button.showSprints=Sprints
project.show.table.header.actions=Acoes
project.show.table.header.endDate.pattern=MM/dd/yy
project.show.table.header.endDate=Data Termino
project.show.table.header.name=Nome
project.show.table.header.startDate.pattern=MM/dd/yy
project.show.table.header.startDate=Data Inicio
project.show.table.label.empty=Nao existe projeto
project.show.table.title=Projetos
project.show.title=Projetos
sprint.create.button.cancel=Cancelar
sprint.create.button.create=Criar Sprint
sprint.create.form.title=Cadastro de Sprint
sprint.create.title=Cadastro de Sprint
sprint.edit.button.cancel=Cancelar
sprint.edit.button.update=Atualizar Sprint
sprint.edit.form.title=Edicao de Sprint
sprint.edit.title=Edicao de Sprint
sprint.form.label.dailyMeetingTime.pattern=HH:mm
sprint.form.label.dailyMeetingTime.required=Defina o horario da reuniao diacria
sprint.form.label.dailyMeetingTime=Hora reuniao diaria
sprint.form.label.endDate.pattern=dd/MM/yyyy
sprint.form.label.endDate=Data termino
sprint.form.label.gainedStoryPoints.required=Defina o numero de Story Points estimados
sprint.form.label.gainedStoryPoints=Story Points ganhos
sprint.form.label.goals.required=Defina os objetivos do Sprint
sprint.form.label.goals=Objetivos
sprint.form.label.iterationScope.required=Defina o numero de iteracoes
sprint.form.label.iterationScope=Story Points
sprint.form.label.name.required=Defina um nome para o Sprint (30 caracteres)
sprint.form.label.name=Nome
sprint.form.label.project.name=Projeto
sprint.form.label.project=Projeto
sprint.form.label.startDate.pattern=dd/MM/yyyy
sprint.form.label.startDate.required=Data de inicio do Sprint
sprint.form.label.startDate=Data inicio
sprint.show.button.delete=Apagar
sprint.show.button.edit=Editar
sprint.show.button.home=Home
sprint.show.button.newSprint=Criar Novo Sprint
sprint.show.button.showDashboard=Dashboard
sprint.show.button.showStories=Estorias
sprint.show.table.header.actions=Acoes
sprint.show.table.header.dailyMeetingTime.pattern=HH:mm
sprint.show.table.header.dailyMeetingTime=Hora Reunioes Diarias
sprint.show.table.header.goals=Objetivos
sprint.show.table.header.name=Nome
sprint.show.table.header.startDate.pattern=dd/MM/yy
sprint.show.table.header.startDate=Data de Inicio
sprint.show.table.label.empty=Nao existe sprint para este projeto
sprint.show.table.title=Sprints
sprint.show.title=Sprints
sprints.label.dailingmeeting.required=Defina o horario da reuniao diaria
sprints.label.dailyMeetingTime=Reuniao diaria
sprints.label.goals.required=Defina os objetivos do Sprint
sprints.label.goals=Objetivos
sprints.label.iterationScope=Story Points
sprints.label.name.required=Defina um nome para o Sprint (30 caracteres)
sprints.label.name=Nome
sprints.label.sprints=Sprints
sprints.label.startdate.required=Digite a data de inicio deste Sprint
sprints.label.startedAt=Inicia em
sprints.label.storypoints.required=Defina o numero de Story Points estimados
sprints.table.title=Sprints
stories.label.acceptance.required=Defina o criterio de aceitacao
stories.label.acceptance=Aceite
stories.label.estimation=Story Points
stories.label.name=Nome
stories.label.newstory=Nova Estoria
stories.label.nostory=Nao ha estorias para este Sprint
stories.label.priority.required=Defina a prioridade da estoria
stories.label.priority=Prioridade
stories.label.sprint=Sprint
stories.label.storylist=Stories
stories.label.storypoints.required=Defina o numero de Story Points estimado
stories.table.title=Estorias
story.create.button.cancel=Cancelar
story.create.button.create=Criar Estoria
story.create.form.title=Criacao de Estoria
story.create.title=Criacao de Estoria
story.edit.button.cancel=Cancelar
story.edit.button.update=Atualizar Estoria
story.edit.form.title=Editar Estoria
story.edit.title=Editar Estoria
story.form.label.acceptance.required=Campo obrigatorio
story.form.label.acceptance=Criterio de aceitacao
story.form.label.endDate.pattern=MM/dd/yyyy
story.form.label.endDate=Data de Temino
story.form.label.estimation.required=Campo obrigatorio
story.form.label.estimation=Estimativa
story.form.label.name.required=Defina um nome para o Sprint (30 caracteres)
story.form.label.name=Nome
story.form.label.priority.required=Defina a prioridade
story.form.label.priority=Prioridade
story.form.label.sprint.name=Sprint
story.form.label.startDate.pattern=MM/dd/yyyy
story.form.label.startDate.required=Defina quando a estoria comeca
story.form.label.startDate=Data Inicio
story.show.button.delete=Apagar
story.show.button.edit=Editar
story.show.button.newStory=Criar Nova Estoria
story.show.button.showSprints=Mostrar Sprints
story.show.button.showTasks=Tarefas
story.show.table.header.acceptance=Criterio de Aceitacao
story.show.table.header.actions=Acoes
story.show.table.header.estimation=Estimativa
story.show.table.header.name=Nome
story.show.table.header.priority=Prioridade
story.show.table.header.startDate.pattern=MM/dd/yy
story.show.table.header.startDate=Data Inicio
story.show.table.label.empty=Nao existe estoria para este sprint
story.show.table.title=Lista de Estorias
story.show.title=Lista de Estorias
task.create.button.cancel=Cancelar
task.create.button.create=Criar Tarefa
task.create.form.title=Criar Tarefa
task.create.title=Criar Tarefa
task.edit.button.cancel=Cancelar
task.edit.button.update=Atualizar Tarefa
task.edit.form.title=Editar Tarefa
task.edit.title=Editar Tarefa
task.form.label.endDate.pattern=MM/dd/yyyy
task.form.label.endDate=Data Termino
task.form.label.name.required=Defina um nome para esta tarefa (30 caracteres)
task.form.label.name=Nome
task.form.label.startDate.pattern=MM/dd/yyyy
task.form.label.startDate.required=Indique quando esta tarefa inicia
task.form.label.startDate=Data Inicio
task.form.label.status.required=Especifique o status atual desta tarefa
task.form.label.status=Status
task.form.label.story.name=Estoria
task.show.button.delete=Apagar
task.show.button.edit=Editar
task.show.button.newTask=Criar Nova Tarefa
task.show.button.showStories=Mostrar Estorias
task.show.button.showTasks=Tarefas
task.show.table.header.actions=Acoes
task.show.table.header.endDate.pattern=MM/dd/yy
task.show.table.header.endDate=Data Termino
task.show.table.header.name=Nome
task.show.table.header.startDate.pattern=MM/dd/yy
task.show.table.header.startDate=Data Inicio
task.show.table.header.status.DONE=Feito
task.show.table.header.status.TODO=Para fazer
task.show.table.header.status.WORKING=Em andamento
task.show.table.header.status=Status
task.show.table.label.empty=Nao existe tarefa para esta estoria
task.show.table.title=Tarefas
task.show.title=Tarefas
tasks.label.name=Nome
tasks.label.story=Estoria
taskstatus.done.plural=Terminadas
taskstatus.done.single=Terminada
taskstatus.todo.plural=Abertas
taskstatus.todo.single=Aberta
taskstatus.working.plural=Em andamento
taskstatus.working.single=Em andamento
project.form.label.name.unique=Existe outro projeto com o mesmo nome
sprint.form.label.name.unique=Existe outro sprint com mesmo nome para este projeto
story.form.label.name.unique=Existe outra Estoria com o mesmo nome para este sprint
task.form.label.name.unique=Existe outra tarefa com o mesmo nome para esta estoria
template.title=JSF 2.0 Demo - Scrum Whiteboard Application
menuitem.label.about=Sobre
menuitem.label.jsr314=JSR 314
menuitem.label.irc=IRC
menuitem.label.documentation=Documentacao
menuitem.path.irc=http://weblogs.java.net/blog/edburns/archive/2007/01/jsf_irc_channel.html
menuitem.path.jsr314=http://www.jcp.org/en/jsr/detail?id=314#
menuitem.path.about=http://www.globalcode.com.br/site/noticias/jsf2scrumdemo.seam
menuitem.path.documentation=http://java.sun.com/javaee/javaserverfaces/
task.form.label.sprint.name=Sprint
task.show.nostory=Selecione uma est\u00F3ria primeiro
stories.show.nosprint=Selecione um sprint primeiro
sprint.form.label.noproject=Selecione um sprint primeiro
sprint.form.label.projects=Projetos
navigation.projects=Projetos
navigation.stories=Estorias
navigation.tasks=Tarefas
navigation.sprints=Sprints
dashboard.title=Dashboard
navigation.separtor=>
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!