You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ev...@apache.org on 2005/12/20 18:58:55 UTC
svn commit: r358054 - in /maven/continuum/trunk/continuum-webapp/src/main:
java/org/apache/maven/continuum/web/action/
java/org/apache/maven/continuum/web/model/
java/org/apache/maven/continuum/web/util/
java/org/apache/maven/continuum/web/view/ webapp/
Author: evenisse
Date: Tue Dec 20 09:58:46 2005
New Revision: 358054
URL: http://svn.apache.org/viewcvs?rev=358054&view=rev
Log:
Use extremecomponents table with some cell renderer instead of full html
Added:
maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/model/
maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/model/SummaryProjectModel.java (with props)
maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/util/
maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/util/StateGenerator.java (with props)
maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/
maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/BuildCell.java (with props)
maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/StateCell.java (with props)
Modified:
maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/SummaryAction.java
maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp
Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/SummaryAction.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/SummaryAction.java?rev=358054&r1=358053&r2=358054&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/SummaryAction.java (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/SummaryAction.java Tue Dec 20 09:58:46 2005
@@ -17,36 +17,72 @@
*/
import org.apache.maven.continuum.Continuum;
+import org.apache.maven.continuum.model.project.BuildResult;
+import org.apache.maven.continuum.model.project.Project;
+import org.apache.maven.continuum.web.model.SummaryProjectModel;
import com.opensymphony.xwork.ActionSupport;
import com.opensymphony.webwork.ServletActionContext;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.Iterator;
+import java.util.Map;
public class SummaryAction
extends ActionSupport
{
private Continuum continuum;
- private Collection projects;
-
public String execute()
throws Exception
{
try
{
- projects = continuum.getProjects();
- ServletActionContext.getRequest().setAttribute( "projects", projects );
+ //TODO: Create a summary jpox request so code will be more simple and performance will be better
+ Collection projects = continuum.getProjects();
+ Map buildResults = continuum.getLatestBuildResults();
+ Map buildResultsInSuccess = continuum.getBuildResultsInSuccess();
+
+ Collection summary = new ArrayList();
+
+ for ( Iterator i = projects.iterator(); i.hasNext(); )
+ {
+ Project project = (Project) i.next();
+ SummaryProjectModel model = new SummaryProjectModel();
+ model.setId( project.getId() );
+ model.setName( project.getName() );
+ model.setVersion( project.getVersion() );
+ model.setProjectGroupName( project.getProjectGroup().getName() );
+ if ( continuum.isInBuildingQueue( project.getId() ) || continuum.isInCheckoutQueue( project.getId() ) )
+ {
+ model.setInQueue( true );
+ }
+ else
+ {
+ model.setInQueue( false );
+ }
+ model.setState( project.getState() );
+ model.setBuildNumber( project.getBuildNumber() );
+ BuildResult buildInSuccess = (BuildResult) buildResultsInSuccess.get( new Integer( project.getId() ) );
+ if ( buildInSuccess != null )
+ {
+ model.setBuildInSuccessId( buildInSuccess.getId() );
+ }
+ BuildResult latestBuild = (BuildResult) buildResults.get( new Integer( project.getId() ) );
+ if ( latestBuild != null )
+ {
+ model.setLatestBuildId( latestBuild.getId() );
+ }
+ summary.add( model );
+ }
+
+ ServletActionContext.getRequest().setAttribute( "projects", summary );
}
catch( Exception e )
{
e.printStackTrace();
}
return SUCCESS;
- }
-
- public Collection getProjects()
- {
- return projects;
}
}
Added: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/model/SummaryProjectModel.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/model/SummaryProjectModel.java?rev=358054&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/model/SummaryProjectModel.java (added)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/model/SummaryProjectModel.java Tue Dec 20 09:58:46 2005
@@ -0,0 +1,120 @@
+package org.apache.maven.continuum.web.model;
+
+/*
+ * Copyright 2004-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+public class SummaryProjectModel
+{
+ private int id = -1;
+ private String name;
+ private String version;
+ private String projectGroupName;
+ private int latestBuildId = -1;
+ private int buildInSuccessId = -1;
+ private int buildNumber = -1;
+ private int state = -1;
+ private boolean inQueue = false;
+
+ public int getId()
+ {
+ return id;
+ }
+
+ public void setId( int id )
+ {
+ this.id = id;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName( String name )
+ {
+ this.name = name;
+ }
+
+ public String getVersion()
+ {
+ return version;
+ }
+
+ public void setVersion( String version )
+ {
+ this.version = version;
+ }
+
+ public String getProjectGroupName()
+ {
+ return projectGroupName;
+ }
+
+ public void setProjectGroupName( String projectGroupName )
+ {
+ this.projectGroupName = projectGroupName;
+ }
+
+ public int getLatestBuildId()
+ {
+ return latestBuildId;
+ }
+
+ public void setLatestBuildId( int latestBuildId )
+ {
+ this.latestBuildId = latestBuildId;
+ }
+
+ public int getBuildInSuccessId()
+ {
+ return buildInSuccessId;
+ }
+
+ public void setBuildInSuccessId( int buildInSuccessId )
+ {
+ this.buildInSuccessId = buildInSuccessId;
+ }
+
+ public int getBuildNumber()
+ {
+ return buildNumber;
+ }
+
+ public void setBuildNumber( int buildNumber )
+ {
+ this.buildNumber = buildNumber;
+ }
+
+ public int getState()
+ {
+ return state;
+ }
+
+ public void setState( int state )
+ {
+ this.state = state;
+ }
+
+ public boolean isInQueue()
+ {
+ return inQueue;
+ }
+
+ public void setInQueue( boolean inQueue )
+ {
+ this.inQueue = inQueue;
+ }
+}
Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/model/SummaryProjectModel.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/model/SummaryProjectModel.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/util/StateGenerator.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/util/StateGenerator.java?rev=358054&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/util/StateGenerator.java (added)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/util/StateGenerator.java Tue Dec 20 09:58:46 2005
@@ -0,0 +1,64 @@
+package org.apache.maven.continuum.web.util;
+
+/*
+ * Copyright 2004-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.continuum.project.ContinuumProjectState;
+
+public class StateGenerator
+{
+ public static final String NEW = "NEW";
+ public static final String BUILDING = "Building";
+ public static final String UPDATING = "Updating";
+ public static final String CHECKING_OUT = "Checking Out";
+ public static final String UNKNOWN = "Unknown";
+
+ public static String generate( int state, String contextPath )
+ {
+ if ( state == ContinuumProjectState.NEW )
+ {
+ return NEW;
+ }
+ else if ( state == ContinuumProjectState.OK )
+ {
+ return "<img src=\"" + contextPath + "/images/icon_success_sml.gif\" alt=\"Success\" title=\"Success\" border=\"0\" />";
+ }
+ else if ( state == ContinuumProjectState.FAILED )
+ {
+ return "<img src=\"" + contextPath + "/images/icon_warning_sml.gif\" alt=\"Failed\" title=\"Failed\" border=\"0\" />";
+ }
+ else if ( state == ContinuumProjectState.ERROR )
+ {
+ return "<img src=\"" + contextPath + "/images/icon_error_sml.gif\" alt=\"Error\" title=\"Error\" border=\"0\" />";
+ }
+ else if ( state == ContinuumProjectState.BUILDING )
+ {
+ return BUILDING;
+ }
+ else if ( state == ContinuumProjectState.UPDATING )
+ {
+ return UPDATING;
+ }
+ else if ( state == ContinuumProjectState.CHECKING_OUT )
+ {
+ return CHECKING_OUT;
+ }
+ else
+ {
+ return UNKNOWN;
+ }
+ }
+}
Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/util/StateGenerator.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/util/StateGenerator.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/BuildCell.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/BuildCell.java?rev=358054&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/BuildCell.java (added)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/BuildCell.java Tue Dec 20 09:58:46 2005
@@ -0,0 +1,62 @@
+package org.apache.maven.continuum.web.view;
+
+/*
+ * Copyright 2004-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.continuum.web.model.SummaryProjectModel;
+import org.apache.maven.continuum.web.util.StateGenerator;
+
+import org.extremecomponents.table.bean.Column;
+import org.extremecomponents.table.cell.DisplayCell;
+import org.extremecomponents.table.core.BaseModel;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * Used in Summary view
+ */
+public class BuildCell
+ extends DisplayCell
+{
+ public void init(BaseModel model, Column column)
+ {
+ super.init(model, column);
+
+ SummaryProjectModel project = (SummaryProjectModel) model.getCurrentCollectionBean();
+
+ int buildNumber = project.getBuildNumber();
+
+ if ( project.isInQueue() )
+ {
+ column.setValue( "In queue" );
+ }
+ else if ( project.getState() == 1 || project.getState() == 2 || project.getState() == 3 || project.getState() == 4 )
+ {
+ if ( project.getBuildNumber() > 0 )
+ {
+ column.setValue( "<a href=\"TO_BE_DEFINE\">" + project.getBuildNumber() + "</a>" );
+ }
+ else
+ {
+ column.setValue( " " );
+ }
+ }
+ else
+ {
+ column.setValue( "In progress" );
+ }
+ }
+}
Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/BuildCell.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/BuildCell.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/StateCell.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/StateCell.java?rev=358054&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/StateCell.java (added)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/StateCell.java Tue Dec 20 09:58:46 2005
@@ -0,0 +1,58 @@
+package org.apache.maven.continuum.web.view;
+
+/*
+ * Copyright 2004-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.continuum.web.model.SummaryProjectModel;
+import org.apache.maven.continuum.web.util.StateGenerator;
+
+import org.extremecomponents.table.bean.Column;
+import org.extremecomponents.table.cell.DisplayCell;
+import org.extremecomponents.table.core.BaseModel;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * Used in Summary view
+ */
+public class StateCell
+ extends DisplayCell
+{
+ public void init(BaseModel model, Column column)
+ {
+ super.init(model, column);
+
+ SummaryProjectModel project = (SummaryProjectModel) model.getCurrentCollectionBean();
+
+ int latestBuildId = project.getLatestBuildId();
+
+ HttpServletRequest request = (HttpServletRequest) model.getPageContext().getRequest();
+
+ String state = StateGenerator.generate( project.getState(), request.getContextPath() );
+
+ if ( project.getState() == 1 || project.getState() == 2 || project.getState() == 3 || project.getState() == 4 )
+ {
+ if ( latestBuildId != -1 && !StateGenerator.NEW.equals( state ) )
+ {
+ column.setValue( "<a href=\"TO_BE_DEFINE\">" + state + "</a>" );
+ }
+ else
+ {
+ column.setValue( state );
+ }
+ }
+ }
+}
Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/StateCell.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/StateCell.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp?rev=358054&r1=358053&r2=358054&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp Tue Dec 20 09:58:46 2005
@@ -6,6 +6,8 @@
<title><ww:text name="summary.page.title"/></title>
</head>
<body>
+ <div id="h3">
+ <h3><ww:text name="summary.section.title"/></h3>
<ec:table items="projects"
var="project"
showExports="false"
@@ -13,45 +15,17 @@
showStatusBar="false"
filterable="false">
<ec:row highlightRow="true">
- <ec:column property="status" title=" ">
-
+ <ec:column property="state" title=" " cell="org.apache.maven.continuum.web.view.StateCell"/>
+ <ec:column property="name">
+ <a href="TO_BE_DEFINE">${pageScope.project.name}</a>
</ec:column>
- <ec:column property="name"/>
<ec:column property="version"/>
- <ec:column property="buildNumber" title="summary.projectTable.build">
-
- </ec:column>
+ <ec:column property="buildNumber" title="summary.projectTable.build" cell="org.apache.maven.continuum.web.view.BuildCell"/>
<ec:column property="groupName" title="summary.projectTable.group">
- ${pageScope.project.projectGroup.name}
+ ${pageScope.project.projectGroupName}
</ec:column>
</ec:row>
</ec:table>
- <div id="h3">
- <h3><ww:text name="summary.section.title"/></h3>
- <table border="1" cellspacing="2" cellpadding="3" width="100%" id="projectSummaryTable">
-
- <tbody><tr>
- <th> </th>
- <th width="100%"><ww:text name="summary.projectTable.name"/></th>
- <th><ww:text name="summary.projectTable.version"/></th>
- <th><ww:text name="summary.projectTable.build"/></th>
- <th><ww:text name="summary.projectTable.group"/></th>
- <th colspan="7"></th>
- </tr>
- <% String trStyle = "a"; %>
- <ww:iterator value="projects">
- <tr class="<%= "a".equals( trStyle ) ? "b" : "a" %>">
- <td> </td>
- <td><ww:property value="name"/></td>
- <td><ww:property value="version"/></td>
- <td> </td>
- <td><ww:property value="projectGroup.name"/></td>
- <td colspan="7"> </td>
- </tr>
- <% trStyle = "a".equals( trStyle ) ? "b" : "a"; %>
- </ww:iterator>
- </tbody>
- </table>
<div class="functnbar3">
<img src="<ww:url value="/images/icon_success_sml.gif"/>" alt="<ww:text name="message.success"/>" title="<ww:text name="message.success"/>"/> <font color="red">TODO</font>
<img src="<ww:url value="/images/icon_warning_sml.gif"/>" alt="<ww:text name="message.failed"/>" title="<ww:text name="message.failed"/>"/> <font color="red">TODO</font>