gatein SVN: r1241 - in portal/trunk/webui/core: src/main/java/org/exoplatform/webui/core and 2 other directories.
by do-not-reply@jboss.org
Author: julien_viet
Date: 2010-01-12 17:48:45 -0500 (Tue, 12 Jan 2010)
New Revision: 1241
Modified:
portal/trunk/webui/core/pom.xml
portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/UIComponent.java
portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/FormattableValueRenderer.java
portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/ValueRenderer.java
portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/ValueRendererRegistry.java
portal/trunk/webui/core/src/test/java/org/exoplatform/webui/core/renderers/ValueRendererRegistryTestCase.java
Log:
fix code to be thread safe and type safe
Modified: portal/trunk/webui/core/pom.xml
===================================================================
--- portal/trunk/webui/core/pom.xml 2010-01-12 17:28:38 UTC (rev 1240)
+++ portal/trunk/webui/core/pom.xml 2010-01-12 22:48:45 UTC (rev 1241)
@@ -19,71 +19,59 @@
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.webui</artifactId>
+ <version>3.0.0-Beta05-SNAPSHOT</version>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>exo.portal.webui.core</artifactId>
+ <packaging>jar</packaging>
+ <name>GateIn Portal WebUI Core</name>
+
+ <dependencies>
+ <dependency>
<groupId>org.exoplatform.portal</groupId>
- <artifactId>exo.portal.webui</artifactId>
+ <artifactId>exo.portal.component.web</artifactId>
<version>3.0.0-Beta05-SNAPSHOT</version>
- </parent>
+ </dependency>
+ <dependency>
+ <groupId>org.gatein.common</groupId>
+ <artifactId>common-common</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.jibx</groupId>
+ <artifactId>maven-jibx-plugin</artifactId>
+ <version>${org.jibx.version}</version>
+ <configuration>
+ <directory>src/main/resources</directory>
+ <includes>
+ <includes>binding.xml</includes>
+ </includes>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>bind</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>exo.portal.webui.core</artifactId>
- <packaging>jar</packaging>
- <name>GateIn Portal WebUI Core</name>
-
- <dependencies>
- <dependency>
- <groupId>org.exoplatform.portal</groupId>
- <artifactId>exo.portal.component.web</artifactId>
- <version>3.0.0-Beta05-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.gatein.common</groupId>
- <artifactId>common-common</artifactId>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.jibx</groupId>
- <artifactId>maven-jibx-plugin</artifactId>
- <version>${org.jibx.version}</version>
- <configuration>
- <directory>src/main/resources</directory>
- <includes>
- <includes>binding.xml</includes>
- </includes>
- </configuration>
- <executions>
- <execution>
- <goals>
- <goal>bind</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <!-- -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <compilerArgument>-proc:none</compilerArgument>
- </configuration>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <excludes>
- <exclude>org/exoplatform/webui/test/**</exclude>
- </excludes>
- </configuration>
- </plugin>
-
- </plugins>
- </build>
+ <!-- -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <compilerArgument>-proc:none</compilerArgument>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</project>
Modified: portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/UIComponent.java
===================================================================
--- portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/UIComponent.java 2010-01-12 17:28:38 UTC (rev 1240)
+++ portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/UIComponent.java 2010-01-12 22:48:45 UTC (rev 1241)
@@ -463,12 +463,12 @@
return null;
}
- public ValueRenderer getRendererFor(Object value)
+ public ValueRenderer<?> getRendererFor(Object value)
{
- return rendererRegistry.getRendererFor(value == null ? null : value.getClass());
+ return rendererRegistry.getRendererFor(value);
}
- public <ValueType> void registerRendererFor(ValueRenderer<ValueType> renderer, Class<? extends ValueType> valueType)
+ public <V> void registerRendererFor(ValueRenderer<V> renderer, Class<? extends V> valueType)
{
rendererRegistry.registerRendererFor(renderer, valueType);
}
Modified: portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/FormattableValueRenderer.java
===================================================================
--- portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/FormattableValueRenderer.java 2010-01-12 17:28:38 UTC (rev 1240)
+++ portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/FormattableValueRenderer.java 2010-01-12 22:48:45 UTC (rev 1241)
@@ -26,26 +26,38 @@
import java.text.Format;
/**
+ *
* @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
* @version $Revision$
*/
-public class FormattableValueRenderer extends ValueRenderer<Object>
+public class FormattableValueRenderer<V> extends ValueRenderer<V>
{
- private Format format;
+
private String cssClass;
+ private Format formatPrototype;
+
+ private final ThreadLocal<Format> format = new ThreadLocal<Format>()
+ {
+ @Override
+ public Format get()
+ {
+ return (Format)formatPrototype.clone();
+ }
+ };
+
public FormattableValueRenderer(Format format, String cssClass)
{
- this.format = format;
+ this.formatPrototype = format;
this.cssClass = cssClass;
}
@Override
- public String render(Object value)
+ public String render(V value)
{
- if (format != null)
+ if (formatPrototype != null)
{
- return format.format(value);
+ return format.get().format(value);
}
else
{
@@ -54,7 +66,7 @@
}
@Override
- public String getCSSClassFor(Object value)
+ public String getCSSClassFor(V value)
{
if (cssClass != null)
{
Modified: portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/ValueRenderer.java
===================================================================
--- portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/ValueRenderer.java 2010-01-12 17:28:38 UTC (rev 1240)
+++ portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/ValueRenderer.java 2010-01-12 22:48:45 UTC (rev 1241)
@@ -29,12 +29,12 @@
* @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
* @version $Revision$
*/
-public class ValueRenderer<ValueType>
+public class ValueRenderer<V>
{
public static final String EMPTY = "";
public static final String DEFAULT_CSS_CLASS = "Text";
public static final ValueRenderer<Object> DEFAULT_RENDERER = new ValueRenderer<Object>();
- public static final ValueRenderer NULL_RENDERER = new ValueRenderer()
+ public static final ValueRenderer<Object> NULL_RENDERER = new ValueRenderer<Object>()
{
@Override
public String render(Object value)
@@ -50,13 +50,13 @@
};
- public String render(ValueType value)
+ public String render(V value)
{
ParameterValidation.throwIllegalArgExceptionIfNull(value, "Value");
return value.toString();
}
- public String getCSSClassFor(ValueType value)
+ public String getCSSClassFor(V value)
{
return DEFAULT_CSS_CLASS;
}
Modified: portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/ValueRendererRegistry.java
===================================================================
--- portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/ValueRendererRegistry.java 2010-01-12 17:28:38 UTC (rev 1240)
+++ portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/ValueRendererRegistry.java 2010-01-12 22:48:45 UTC (rev 1241)
@@ -28,9 +28,7 @@
import java.sql.Time;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
/**
* @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
@@ -38,12 +36,12 @@
*/
public class ValueRendererRegistry
{
- private static Map<Class, ValueRenderer> DEFAULT_RENDERERS;
- private Map<Class, ValueRenderer> renderers;
+ private static Map<Class<?>, ValueRenderer<?>> DEFAULT_RENDERERS;
+ private Map<Class<?>, ValueRenderer<?>> renderers;
static
{
- FormattableValueRenderer numberRenderer = new FormattableValueRenderer(null, "number");
+ FormattableValueRenderer<Number> numberRenderer = new FormattableValueRenderer<Number>(null, "number");
registerDefaultRendererFor(numberRenderer, Number.class);
registerDefaultRendererFor(numberRenderer, Byte.class);
registerDefaultRendererFor(numberRenderer, Double.class);
@@ -52,15 +50,30 @@
registerDefaultRendererFor(numberRenderer, Long.class);
registerDefaultRendererFor(numberRenderer, Short.class);
- FormattableValueRenderer dateRenderer = new FormattableValueRenderer(new SimpleDateFormat("HH:mm:ss yyyy-MM-dd"), "Datetime");
+ FormattableValueRenderer<Date> dateRenderer = new FormattableValueRenderer<Date>(new SimpleDateFormat("HH:mm:ss yyyy-MM-dd"), "Datetime");
registerDefaultRendererFor(dateRenderer, Date.class);
registerDefaultRendererFor(dateRenderer, java.sql.Date.class);
registerDefaultRendererFor(dateRenderer, Time.class);
registerDefaultRendererFor(dateRenderer, Timestamp.class);
}
+ public <V> ValueRenderer<? super V> getRendererFor(V value)
+ {
+ if (value == null)
+ {
+ return null;
+ }
+ else
+ {
+ Class<?> valueType = value.getClass();
+ // This is almost OK
+ @SuppressWarnings("unchecked")
+ ValueRenderer<? super V> renderer = (ValueRenderer<? super V>)getRendererFor(valueType);
+ return renderer;
+ }
+ }
- public <ValueType> ValueRenderer<ValueType> getRendererFor(Class<? extends ValueType> valueType)
+ public <V> ValueRenderer<? super V> getRendererFor(Class<V> valueType)
{
if (valueType == null)
{
@@ -68,7 +81,7 @@
}
// first check local renderers
- ValueRenderer renderer = getRendererIn(valueType, renderers);
+ ValueRenderer<? super V> renderer = getRendererIn(valueType, renderers);
if (renderer == null)
{
// then globally registered ones
@@ -77,15 +90,24 @@
// if we haven't found a match, check inheritance and return first match
if (renderer == null)
{
- for (Map.Entry<Class, ValueRenderer> entry : DEFAULT_RENDERERS.entrySet())
+ for (Map.Entry<Class<?>, ValueRenderer<?>> entry : DEFAULT_RENDERERS.entrySet())
{
- Class type = entry.getKey();
+ Class<?> type = entry.getKey();
if (type.isAssignableFrom(valueType))
{
- renderer = entry.getValue();
+ // the valueType class is assignable to the type class which mean that
+ // the type class is a super class of the valueType class
+ // This cast is OK
+ @SuppressWarnings("unchecked")
+ ValueRenderer<? super V> tmp = (ValueRenderer<? super V>) entry.getValue();
+ renderer = tmp;
+ // OK
+ @SuppressWarnings("unchecked")
+ Class<? extends V> asSubclassOfV = (Class<? extends V>)type;
+
// add the found renderers to the default ones so that further look-ups will be faster
- registerDefaultRendererFor(renderer, type);
+ registerDefaultRendererFor(renderer, asSubclassOfV);
break;
}
@@ -103,32 +125,40 @@
return renderer;
}
- public static <ValueType> void registerDefaultRendererFor(ValueRenderer<ValueType> renderer, Class<? extends ValueType> type)
+ public static <V> void registerDefaultRendererFor(ValueRenderer<? super V> renderer, Class<? extends V> type)
{
DEFAULT_RENDERERS = registerIn(renderer, type, DEFAULT_RENDERERS);
}
- public <ValueType> void registerRendererFor(ValueRenderer<ValueType> renderer, Class<? extends ValueType> type)
+ public <V> void registerRendererFor(ValueRenderer<V> renderer, Class<? extends V> type)
{
renderers = registerIn(renderer, type, renderers);
}
- private static <ValueType> Map<Class, ValueRenderer> registerIn(ValueRenderer<ValueType> renderer, Class<? extends ValueType> type, Map<Class, ValueRenderer> renderers)
+ private static <V> Map<Class<?>, ValueRenderer<?>> registerIn(
+ ValueRenderer<? super V> renderer,
+ Class<? extends V> type,
+ Map<Class<?>, ValueRenderer<?>> renderers)
{
ParameterValidation.throwIllegalArgExceptionIfNull(type, "Value class");
ParameterValidation.throwIllegalArgExceptionIfNull(renderer, "Renderer");
if (renderers == null)
{
- renderers = new HashMap<Class, ValueRenderer>(7);
+ renderers = new HashMap<Class<?>, ValueRenderer<?>>(7);
}
+ else
+ {
+ // Copy on write for thread safety
+ renderers = new HashMap<Class<?>, ValueRenderer<?>>(renderers);
+ }
renderers.put(type, renderer);
return renderers;
}
- private static ValueRenderer getRendererIn(Class valueType, Map<Class, ValueRenderer> renderers)
+ private static <V> ValueRenderer<? super V> getRendererIn(Class<V> valueType, Map<Class<?>, ValueRenderer<?>> renderers)
{
if (renderers == null)
{
@@ -136,7 +166,10 @@
}
else
{
- return renderers.get(valueType);
+ // this cast is OK
+ @SuppressWarnings("unchecked")
+ ValueRenderer<? super V> renderer = (ValueRenderer<? super V>) renderers.get(valueType);
+ return renderer;
}
}
}
Modified: portal/trunk/webui/core/src/test/java/org/exoplatform/webui/core/renderers/ValueRendererRegistryTestCase.java
===================================================================
--- portal/trunk/webui/core/src/test/java/org/exoplatform/webui/core/renderers/ValueRendererRegistryTestCase.java 2010-01-12 17:28:38 UTC (rev 1240)
+++ portal/trunk/webui/core/src/test/java/org/exoplatform/webui/core/renderers/ValueRendererRegistryTestCase.java 2010-01-12 22:48:45 UTC (rev 1241)
@@ -35,18 +35,16 @@
public class ValueRendererRegistryTestCase extends TestCase
{
private ValueRendererRegistry registry;
- private ValueRenderer renderer;
@Override
protected void setUp() throws Exception
{
registry = new ValueRendererRegistry();
- renderer = null;
}
public void testGetDefaultRenderer()
{
- renderer = registry.getRendererFor(Object.class);
+ ValueRenderer<? super Object> renderer = registry.getRendererFor(Object.class);
assertEquals(ValueRenderer.DEFAULT_RENDERER, renderer);
assertEquals(ValueRenderer.DEFAULT_CSS_CLASS, renderer.getCSSClassFor(new Object()));
}
@@ -55,10 +53,10 @@
{
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
String css = "testDate";
- registry.registerRendererFor(new FormattableValueRenderer(dateFormat, css), TestDate.class);
+ registry.registerRendererFor(new FormattableValueRenderer<Date>(dateFormat, css), TestDate.class);
TestDate date = new TestDate(2010, 1, 12, 13, 37, 0);
- renderer = registry.getRendererFor(date.getClass());
+ ValueRenderer<? super TestDate> renderer = registry.getRendererFor(date);
assertNotNull(renderer);
assertEquals(dateFormat.format(date), renderer.render(date));
assertEquals(css, renderer.getCSSClassFor(date));
@@ -66,7 +64,7 @@
public void testRenderNullValue()
{
- renderer = registry.getRendererFor(null);
+ ValueRenderer<? super Object> renderer = registry.getRendererFor(null);
assertNotNull(renderer);
assertEquals(ValueRenderer.EMPTY, renderer.render(null));
assertEquals(ValueRenderer.EMPTY, renderer.getCSSClassFor(null));
@@ -74,17 +72,17 @@
public void testSupportsPreviousUIGridScenario()
{
- renderer = registry.getRendererFor(Integer.class);
+ ValueRenderer<? super Integer> renderer = registry.getRendererFor(Integer.class);
assertNotNull(renderer);
assertEquals("100", renderer.render(100));
assertEquals("number", renderer.getCSSClassFor(100));
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss yyyy-MM-dd");
TestDate date = new TestDate(2010, 1, 12, 13, 37, 0);
- renderer = registry.getRendererFor(date.getClass());
+ ValueRenderer<? super TestDate> renderer2 = registry.getRendererFor(date);
assertNotNull(renderer);
- assertEquals(dateFormat.format(date), renderer.render(date));
- assertEquals("Datetime", renderer.getCSSClassFor(date));
+ assertEquals(dateFormat.format(date), renderer2.render(date));
+ assertEquals("Datetime", renderer2.getCSSClassFor(date));
}
private static class TestDate extends Date
14 years, 11 months
gatein SVN: r1240 - in components/pc/trunk: distrib/jboss-4.2/server/default/deploy/jboss-web.deployer/conf and 7 other directories.
by do-not-reply@jboss.org
Author: thomas.heute(a)jboss.com
Date: 2010-01-12 12:28:38 -0500 (Tue, 12 Jan 2010)
New Revision: 1240
Added:
components/pc/trunk/distrib/jboss-5.1/
components/pc/trunk/distrib/jboss-5.1/server/
components/pc/trunk/distrib/jboss-5.1/server/default/
components/pc/trunk/distrib/jboss-5.1/server/default/deployers/
components/pc/trunk/distrib/jboss-5.1/server/default/deployers/jbossweb.deployer/
components/pc/trunk/distrib/jboss-5.1/server/default/deployers/jbossweb.deployer/web.xml
Modified:
components/pc/trunk/distrib/distrib.xml
components/pc/trunk/distrib/jboss-4.2/server/default/deploy/jboss-web.deployer/conf/web.xml
components/pc/trunk/portal/src/assemble/simple-portal-jboss42.xml
components/pc/trunk/portal/src/assemble/simple-portal-jboss51.xml
components/pc/trunk/test/pom.xml
Log:
GTNPC-16: simple-portal does not work
Modified: components/pc/trunk/distrib/distrib.xml
===================================================================
--- components/pc/trunk/distrib/distrib.xml 2010-01-12 15:14:16 UTC (rev 1239)
+++ components/pc/trunk/distrib/distrib.xml 2010-01-12 17:28:38 UTC (rev 1240)
@@ -131,15 +131,13 @@
</copy>
<!-- Taglib integration -->
- <!--
<copy todir="${pc.build.bin.as51}" overwrite="true" filtering="true">
<fileset dir="jboss-5.1"/>
<filterset>
<filter token="maven.version" value="${maven.version}"/>
</filterset>
</copy>
- -->
-
+
<!-- -->
<antcall target="__zip">
<param name="release.name" value="${demo.release.name.jboss51}"/>
Modified: components/pc/trunk/distrib/jboss-4.2/server/default/deploy/jboss-web.deployer/conf/web.xml
===================================================================
--- components/pc/trunk/distrib/jboss-4.2/server/default/deploy/jboss-web.deployer/conf/web.xml 2010-01-12 15:14:16 UTC (rev 1239)
+++ components/pc/trunk/distrib/jboss-4.2/server/default/deploy/jboss-web.deployer/conf/web.xml 2010-01-12 17:28:38 UTC (rev 1240)
@@ -306,7 +306,7 @@
<init-param>
<description>Portlet standard tlds</description>
<param-name>tagLibJar2</param-name>
- <param-value>../simple-portal/lib/portlet-portlet-@maven.version@.jar</param-value>
+ <param-value>../simple-portal/lib/pc-portlet-@maven.version@.jar</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
Added: components/pc/trunk/distrib/jboss-5.1/server/default/deployers/jbossweb.deployer/web.xml
===================================================================
--- components/pc/trunk/distrib/jboss-5.1/server/default/deployers/jbossweb.deployer/web.xml (rev 0)
+++ components/pc/trunk/distrib/jboss-5.1/server/default/deployers/jbossweb.deployer/web.xml 2010-01-12 17:28:38 UTC (rev 1240)
@@ -0,0 +1,1186 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<web-app 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_2_5.xsd"
+ version="2.5">
+ <!-- ======================== Introduction ============================== -->
+ <!-- This document defines default values for *all* web applications -->
+ <!-- loaded into this instance of Tomcat. As each application is -->
+ <!-- deployed, this file is processed, followed by the -->
+ <!-- "/WEB-INF/web.xml" deployment descriptor from your own -->
+ <!-- applications. -->
+ <!-- -->
+ <!-- WARNING: Do not configure application-specific resources here! -->
+ <!-- They should go in the "/WEB-INF/web.xml" file in your application. -->
+
+ <!-- =========== Common Context Params ================================== -->
+
+ <!-- Regular expression to determine if two different URLs actually point -->
+ <!-- to the same jar file. This keeps faces-config files from being -->
+ <!-- read twice. -->
+ <context-param>
+ <param-name>com.sun.faces.duplicateJARPattern</param-name>
+ <param-value>^tmp\d+(\S*\.jar)</param-value>
+ </context-param>
+
+ <!-- JBossInjectionProvider provides resource injection for managed beans. -->
+ <!-- See JSF 1.2 spec section 5.4 for details. -->
+ <context-param>
+ <param-name>com.sun.faces.injectionProvider</param-name>
+ <param-value>org.jboss.web.jsf.integration.injection.JBossDelegatingInjectionProvider</param-value>
+ </context-param>
+
+ <!-- ================== Common filter Configuration ==================== -->
+ <filter>
+ <filter-name>CommonHeadersFilter</filter-name>
+ <filter-class>
+ org.jboss.web.tomcat.filters.ReplyHeaderFilter</filter-class>
+ <init-param>
+ <param-name>X-Powered-By</param-name>
+ <param-value>Servlet 2.5; JBoss-5.0/JBossWeb-2.1</param-value>
+ </init-param>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>CommonHeadersFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <!-- ================== Common Listener Configuration ==================== -->
+ <listener>
+ <listener-class>org.jboss.web.tomcat.security.SecurityFlushSessionListener</listener-class>
+ </listener>
+
+ <!-- Configures JSF for a web application if the javax.faces.webapp.FacesServlet is declared -->
+ <!-- in web.xml. -->
+ <listener>
+ <listener-class>org.jboss.web.jsf.integration.config.JBossJSFConfigureListener</listener-class>
+ </listener>
+
+ <!-- Listens to all web app lifecycle events so that @PreDestroy can be called on -->
+ <!-- JSF managed beans that go out of scope. You can comment this out if you -->
+ <!-- don't use JSF or you don't use annotations on your managed beans. -->
+ <listener>
+ <listener-class>com.sun.faces.application.WebappLifecycleListener</listener-class>
+ </listener>
+
+ <!-- ================== Built In Servlet Definitions ==================== -->
+
+
+ <!-- The default servlet for all web applications, that serves static -->
+ <!-- resources. It processes all requests that are not mapped to other -->
+ <!-- servlets with servlet mappings (defined either here or in your own -->
+ <!-- web.xml file. This servlet supports the following initialization -->
+ <!-- parameters (default values are in square brackets): -->
+ <!-- -->
+ <!-- debug Debugging detail level for messages logged -->
+ <!-- by this servlet. [0] -->
+ <!-- -->
+ <!-- input Input buffer size (in bytes) when reading -->
+ <!-- resources to be served. [2048] -->
+ <!-- -->
+ <!-- listings Should directory listings be produced if there -->
+ <!-- is no welcome file in this directory? [true] -->
+ <!-- -->
+ <!-- output Output buffer size (in bytes) when writing -->
+ <!-- resources to be served. [2048] -->
+ <!-- -->
+ <!-- readonly Is this context "read only", so HTTP -->
+ <!-- commands like PUT and DELETE are -->
+ <!-- rejected? [true] -->
+ <!-- -->
+ <!-- readmeFile File name to display with the directory -->
+ <!-- contents. [null] -->
+ <!-- -->
+ <!-- For directory listing customization. Checks localXsltFile, then -->
+ <!-- globalXsltFile, then defaults to original behavior. -->
+ <!-- -->
+ <!-- localXsltFile Make directory listings an XML doc and -->
+ <!-- pass the result to this style sheet residing -->
+ <!-- in that directory. This overrides -->
+ <!-- globalXsltFile[null] -->
+ <!-- -->
+ <!-- globalXsltFile Site wide configuration version of -->
+ <!-- localXsltFile This argument is expected -->
+ <!-- to be a physical file. [null] -->
+ <!-- -->
+ <!-- -->
+
+ <servlet>
+ <servlet-name>default</servlet-name>
+ <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
+ <init-param>
+ <param-name>debug</param-name>
+ <param-value>0</param-value>
+ </init-param>
+ <init-param>
+ <param-name>listings</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+
+ <!-- The "invoker" servlet, which executes anonymous servlet classes -->
+ <!-- that have not been defined in a web.xml file. Traditionally, this -->
+ <!-- servlet is mapped to the URL pattern "/servlet/*", but you can map -->
+ <!-- it to other patterns as well. The extra path info portion of such a -->
+ <!-- request must be the fully qualified class name of a Java class that -->
+ <!-- implements Servlet (or extends HttpServlet), or the servlet name -->
+ <!-- of an existing servlet definition. This servlet supports the -->
+ <!-- following initialization parameters (default values are in square -->
+ <!-- brackets): -->
+ <!-- -->
+ <!-- debug Debugging detail level for messages logged -->
+ <!-- by this servlet. [0] -->
+
+ <!--
+ <servlet>
+ <servlet-name>invoker</servlet-name>
+ <servlet-class>
+ org.apache.catalina.servlets.InvokerServlet
+ </servlet-class>
+ <init-param>
+ <param-name>debug</param-name>
+ <param-value>0</param-value>
+ </init-param>
+ <load-on-startup>2</load-on-startup>
+ </servlet>
+ -->
+
+
+ <!-- The JSP page compiler and execution servlet, which is the mechanism -->
+ <!-- used by Tomcat to support JSP pages. Traditionally, this servlet -->
+ <!-- is mapped to the URL pattern "*.jsp". This servlet supports the -->
+ <!-- following initialization parameters (default values are in square -->
+ <!-- brackets): -->
+ <!-- -->
+ <!-- checkInterval If development is false and checkInterval is -->
+ <!-- greater than zero, background compilations are -->
+ <!-- enabled. checkInterval is the time in seconds -->
+ <!-- between checks to see if a JSP page needs to -->
+ <!-- be recompiled. [0] -->
+ <!-- -->
+ <!-- modificationTestInterval -->
+ <!-- Causes a JSP (and its dependent files) to not -->
+ <!-- be checked for modification during the -->
+ <!-- specified time interval (in seconds) from the -->
+ <!-- last time the JSP was checked for -->
+ <!-- modification. A value of 0 will cause the JSP -->
+ <!-- to be checked on every access. -->
+ <!-- Used in development mode only. [4] -->
+ <!-- -->
+ <!-- compiler Which compiler Ant should use to compile JSP -->
+ <!-- pages. See the Ant documentation for more -->
+ <!-- information. -->
+ <!-- -->
+ <!-- classdebuginfo Should the class file be compiled with -->
+ <!-- debugging information? [true] -->
+ <!-- -->
+ <!-- classpath What class path should I use while compiling -->
+ <!-- generated servlets? [Created dynamically -->
+ <!-- based on the current web application] -->
+ <!-- -->
+ <!-- development Is Jasper used in development mode? If true, -->
+ <!-- the frequency at which JSPs are checked for -->
+ <!-- modification may be specified via the -->
+ <!-- modificationTestInterval parameter. [true] -->
+ <!-- -->
+ <!-- enablePooling Determines whether tag handler pooling is -->
+ <!-- enabled [true] -->
+ <!-- -->
+ <!-- fork Tell Ant to fork compiles of JSP pages so that -->
+ <!-- a separate JVM is used for JSP page compiles -->
+ <!-- from the one Tomcat is running in. [true] -->
+ <!-- -->
+ <!-- ieClassId The class-id value to be sent to Internet -->
+ <!-- Explorer when using <jsp:plugin> tags. -->
+ <!-- [clsid:8AD9C840-044E-11D1-B3E9-00805F499D93] -->
+ <!-- -->
+ <!-- javaEncoding Java file encoding to use for generating java -->
+ <!-- source files. [UTF8] -->
+ <!-- -->
+ <!-- keepgenerated Should we keep the generated Java source code -->
+ <!-- for each page instead of deleting it? [true] -->
+ <!-- -->
+ <!-- mappedfile Should we generate static content with one -->
+ <!-- print statement per input line, to ease -->
+ <!-- debugging? [true] -->
+ <!-- -->
+ <!-- trimSpaces Should white spaces in template text between -->
+ <!-- actions or directives be trimmed? [false] -->
+ <!-- -->
+ <!-- suppressSmap Should the generation of SMAP info for JSR45 -->
+ <!-- debugging be suppressed? [false] -->
+ <!-- -->
+ <!-- dumpSmap Should the SMAP info for JSR45 debugging be -->
+ <!-- dumped to a file? [false] -->
+ <!-- False if suppressSmap is true -->
+ <!-- -->
+ <!-- genStrAsCharArray Should text strings be generated as char -->
+ <!-- arrays, to improve performance in some cases? -->
+ <!-- [false] -->
+ <!-- -->
+ <!-- errorOnUseBeanInvalidClassAttribute -->
+ <!-- Should Jasper issue an error when the value of -->
+ <!-- the class attribute in an useBean action is -->
+ <!-- not a valid bean class? [true] -->
+ <!-- -->
+ <!-- scratchdir What scratch directory should we use when -->
+ <!-- compiling JSP pages? [default work directory -->
+ <!-- for the current web application] -->
+ <!-- -->
+ <!-- xpoweredBy Determines whether X-Powered-By response -->
+ <!-- header is added by generated servlet [false] -->
+ <!-- -->
+ <!-- If you wish to use Jikes to compile JSP pages: -->
+ <!-- Set the init parameter "compiler" to "jikes". Define -->
+ <!-- the property "-Dbuild.compiler.emacs=true" when starting Tomcat -->
+ <!-- by adding the above to your CATALINA_OPTS environment variable. -->
+ <!-- If you get an error reporting that jikes can't use UTF8 encoding, -->
+ <!-- try setting the init parameter "javaEncoding" to "ISO-8859-1". -->
+
+ <servlet>
+ <servlet-name>jsp</servlet-name>
+ <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
+ <init-param>
+ <param-name>fork</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <init-param>
+ <param-name>xpoweredBy</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <!-- Use jdk1.5 features in jsp pages -->
+ <init-param>
+ <param-name>compilerSourceVM</param-name>
+ <param-value>1.5</param-value>
+ </init-param>
+ <!-- Use a custom options class to allow the shared tag lib descriptors
+ to be loaded from jars in the tomcat sar conf/tlds directory. The
+ standard options implementation can only find taglibs based on the
+ class loader classpath.
+ -->
+ <init-param>
+ <param-name>engineOptionsClass</param-name>
+ <param-value>
+ org.jboss.web.tomcat.service.jasper.JspServletOptions</param-value>
+ </init-param>
+ <!-- Specify the jars relative to the jbossweb-tomcat6.sar that should
+ be scanned for common tag lib descriptors to include in every war
+ deployment.
+ -->
+ <init-param>
+ <description>JSF standard tlds</description>
+ <param-name>tagLibJar0</param-name>
+ <param-value>jsf-libs/jsf-impl.jar</param-value>
+ </init-param>
+ <init-param>
+ <description>JSTL standard tlds</description>
+ <param-name>tagLibJar1</param-name>
+ <param-value>jstl.jar</param-value>
+ </init-param>
+ <init-param>
+ <description>Portlet standard tlds</description>
+ <param-name>tagLibJar2</param-name>
+ <param-value>../simple-portal/lib/pc-portlet-@maven.version@.jar</param-value>
+ </init-param>
+
+ <load-on-startup>3</load-on-startup>
+ </servlet>
+
+
+ <!-- Server Side Includes processing servlet, which processes SSI -->
+ <!-- directives in HTML pages consistent with similar support in web -->
+ <!-- servers like Apache. Traditionally, this servlet is mapped to the -->
+ <!-- URL pattern "*.shtml". This servlet supports the following -->
+ <!-- initialization parameters (default values are in square brackets): -->
+ <!-- -->
+ <!-- buffered Should output from this servlet be buffered? -->
+ <!-- (0=false, 1=true) [0] -->
+ <!-- -->
+ <!-- debug Debugging detail level for messages logged -->
+ <!-- by this servlet. [0] -->
+ <!-- -->
+ <!-- expires The number of seconds before a page with SSI -->
+ <!-- directives will expire. [No default] -->
+ <!-- -->
+ <!-- isVirtualWebappRelative -->
+ <!-- Should "virtual" paths be interpreted as -->
+ <!-- relative to the context root, instead of -->
+ <!-- the server root? (0=false, 1=true) [0] -->
+
+ <!--
+ <servlet>
+ <servlet-name>ssi</servlet-name>
+ <servlet-class>
+ org.apache.catalina.ssi.SSIServlet
+ </servlet-class>
+ <init-param>
+ <param-name>buffered</param-name>
+ <param-value>1</param-value>
+ </init-param>
+ <init-param>
+ <param-name>debug</param-name>
+ <param-value>0</param-value>
+ </init-param>
+ <init-param>
+ <param-name>expires</param-name>
+ <param-value>666</param-value>
+ </init-param>
+ <init-param>
+ <param-name>isVirtualWebappRelative</param-name>
+ <param-value>0</param-value>
+ </init-param>
+ <load-on-startup>4</load-on-startup>
+ </servlet>
+ -->
+
+
+ <!-- Common Gateway Includes (CGI) processing servlet, which supports -->
+ <!-- execution of external applications that conform to the CGI spec -->
+ <!-- requirements. Typically, this servlet is mapped to the URL pattern -->
+ <!-- "/cgi-bin/*", which means that any CGI applications that are -->
+ <!-- executed must be present within the web application. This servlet -->
+ <!-- supports the following initialization parameters (default values -->
+ <!-- are in square brackets): -->
+ <!-- -->
+ <!-- cgiPathPrefix The CGI search path will start at -->
+ <!-- webAppRootDir + File.separator + this prefix. -->
+ <!-- [WEB-INF/cgi] -->
+ <!-- -->
+ <!-- debug Debugging detail level for messages logged -->
+ <!-- by this servlet. [0] -->
+ <!-- -->
+ <!-- executable Name of the exectuable used to run the -->
+ <!-- script. [perl] -->
+ <!-- -->
+ <!-- parameterEncoding Name of parameter encoding to be used with -->
+ <!-- CGI servlet. -->
+ <!-- [System.getProperty("file.encoding","UTF-8")] -->
+ <!-- -->
+ <!-- passShellEnvironment Should the shell environment variables (if -->
+ <!-- any) be passed to the CGI script? [false] -->
+ <!-- -->
+ <!-- IMPORTANT: To use the CGI servlet, you also need to rename the -->
+ <!-- $CATALINA_HOME/server/lib/servlets-cgi.renametojar file -->
+ <!-- to $CATALINA_HOME/server/lib/servlets-cgi.jar -->
+
+ <!--
+ <servlet>
+ <servlet-name>cgi</servlet-name>
+ <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
+ <init-param>
+ <param-name>debug</param-name>
+ <param-value>6</param-value>
+ </init-param>
+ <init-param>
+ <param-name>cgiPathPrefix</param-name>
+ <param-value>WEB-INF/cgi</param-value>
+ </init-param>
+ <load-on-startup>5</load-on-startup>
+ </servlet>
+ -->
+
+
+ <!-- ================ Built In Servlet Mappings ========================= -->
+
+
+ <!-- The servlet mappings for the built in servlets defined above. Note -->
+ <!-- that, by default, the CGI and SSI servlets are *not* mapped. You -->
+ <!-- must uncomment these mappings (or add them to your application's own -->
+ <!-- web.xml deployment descriptor) to enable these services -->
+
+ <!-- The mapping for the default servlet -->
+ <servlet-mapping>
+ <servlet-name>default</servlet-name>
+ <url-pattern>/</url-pattern>
+ </servlet-mapping>
+
+ <!-- The mapping for the invoker servlet -->
+ <!--
+ <servlet-mapping>
+ <servlet-name>invoker</servlet-name>
+ <url-pattern>/servlet/*</url-pattern>
+ </servlet-mapping>
+ -->
+
+ <!-- The mapping for the JSP servlet -->
+ <servlet-mapping>
+ <servlet-name>jsp</servlet-name>
+ <url-pattern>*.jsp</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>jsp</servlet-name>
+ <url-pattern>*.jspx</url-pattern>
+ </servlet-mapping>
+
+ <!-- The mapping for the SSI servlet -->
+ <!--
+ <servlet-mapping>
+ <servlet-name>ssi</servlet-name>
+ <url-pattern>*.shtml</url-pattern>
+ </servlet-mapping>
+ -->
+
+ <!-- The mapping for the CGI Gateway servlet -->
+
+ <!--
+ <servlet-mapping>
+ <servlet-name>cgi</servlet-name>
+ <url-pattern>/cgi-bin/*</url-pattern>
+ </servlet-mapping>
+ -->
+
+
+ <!-- ==================== Default Session Configuration ================= -->
+ <!-- You can set the default session timeout (in minutes) for all newly -->
+ <!-- created sessions by modifying the value below. -->
+
+ <session-config>
+ <session-timeout>30</session-timeout>
+ </session-config>
+
+
+ <!-- ===================== Default MIME Type Mappings =================== -->
+ <!-- When serving static resources, Tomcat will automatically generate -->
+ <!-- a "Content-Type" header based on the resource's filename extension, -->
+ <!-- based on these mappings. Additional mappings can be added here (to -->
+ <!-- apply to all web applications), or in your own application's web.xml -->
+ <!-- deployment descriptor. -->
+
+ <mime-mapping>
+ <extension>abs</extension>
+ <mime-type>audio/x-mpeg</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>ai</extension>
+ <mime-type>application/postscript</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>aif</extension>
+ <mime-type>audio/x-aiff</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>aifc</extension>
+ <mime-type>audio/x-aiff</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>aiff</extension>
+ <mime-type>audio/x-aiff</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>aim</extension>
+ <mime-type>application/x-aim</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>art</extension>
+ <mime-type>image/x-jg</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>asf</extension>
+ <mime-type>video/x-ms-asf</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>asx</extension>
+ <mime-type>video/x-ms-asf</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>au</extension>
+ <mime-type>audio/basic</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>avi</extension>
+ <mime-type>video/x-msvideo</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>avx</extension>
+ <mime-type>video/x-rad-screenplay</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>bcpio</extension>
+ <mime-type>application/x-bcpio</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>bin</extension>
+ <mime-type>application/octet-stream</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>bmp</extension>
+ <mime-type>image/bmp</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>body</extension>
+ <mime-type>text/html</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>cdf</extension>
+ <mime-type>application/x-cdf</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>cer</extension>
+ <mime-type>application/x-x509-ca-cert</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>class</extension>
+ <mime-type>application/java</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>cpio</extension>
+ <mime-type>application/x-cpio</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>csh</extension>
+ <mime-type>application/x-csh</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>css</extension>
+ <mime-type>text/css</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>dib</extension>
+ <mime-type>image/bmp</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>doc</extension>
+ <mime-type>application/msword</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>dtd</extension>
+ <mime-type>application/xml-dtd</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>dv</extension>
+ <mime-type>video/x-dv</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>dvi</extension>
+ <mime-type>application/x-dvi</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>eps</extension>
+ <mime-type>application/postscript</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>etx</extension>
+ <mime-type>text/x-setext</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>exe</extension>
+ <mime-type>application/octet-stream</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>gif</extension>
+ <mime-type>image/gif</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>gtar</extension>
+ <mime-type>application/x-gtar</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>gz</extension>
+ <mime-type>application/x-gzip</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>hdf</extension>
+ <mime-type>application/x-hdf</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>hqx</extension>
+ <mime-type>application/mac-binhex40</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>htc</extension>
+ <mime-type>text/x-component</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>htm</extension>
+ <mime-type>text/html</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>html</extension>
+ <mime-type>text/html</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>hqx</extension>
+ <mime-type>application/mac-binhex40</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>ief</extension>
+ <mime-type>image/ief</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>jad</extension>
+ <mime-type>text/vnd.sun.j2me.app-descriptor</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>jar</extension>
+ <mime-type>application/java-archive</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>java</extension>
+ <mime-type>text/plain</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>jnlp</extension>
+ <mime-type>application/x-java-jnlp-file</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>jpe</extension>
+ <mime-type>image/jpeg</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>jpeg</extension>
+ <mime-type>image/jpeg</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>jpg</extension>
+ <mime-type>image/jpeg</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>js</extension>
+ <mime-type>text/javascript</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>jsf</extension>
+ <mime-type>text/plain</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>jspf</extension>
+ <mime-type>text/plain</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>kar</extension>
+ <mime-type>audio/x-midi</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>latex</extension>
+ <mime-type>application/x-latex</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>m3u</extension>
+ <mime-type>audio/x-mpegurl</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>mac</extension>
+ <mime-type>image/x-macpaint</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>man</extension>
+ <mime-type>application/x-troff-man</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>mathml</extension>
+ <mime-type>application/mathml+xml</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>me</extension>
+ <mime-type>application/x-troff-me</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>mid</extension>
+ <mime-type>audio/x-midi</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>midi</extension>
+ <mime-type>audio/x-midi</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>mif</extension>
+ <mime-type>application/x-mif</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>mov</extension>
+ <mime-type>video/quicktime</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>movie</extension>
+ <mime-type>video/x-sgi-movie</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>mp1</extension>
+ <mime-type>audio/x-mpeg</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>mp2</extension>
+ <mime-type>audio/x-mpeg</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>mp3</extension>
+ <mime-type>audio/x-mpeg</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>mp4</extension>
+ <mime-type>video/mp4</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>mpa</extension>
+ <mime-type>audio/x-mpeg</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>mpe</extension>
+ <mime-type>video/mpeg</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>mpeg</extension>
+ <mime-type>video/mpeg</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>mpega</extension>
+ <mime-type>audio/x-mpeg</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>mpg</extension>
+ <mime-type>video/mpeg</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>mpv2</extension>
+ <mime-type>video/mpeg2</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>ms</extension>
+ <mime-type>application/x-wais-source</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>nc</extension>
+ <mime-type>application/x-netcdf</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>oda</extension>
+ <mime-type>application/oda</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <!-- OpenDocument Database -->
+ <extension>odb</extension>
+ <mime-type>application/vnd.oasis.opendocument.database</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <!-- OpenDocument Chart -->
+ <extension>odc</extension>
+ <mime-type>application/vnd.oasis.opendocument.chart</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <!-- OpenDocument Formula -->
+ <extension>odf</extension>
+ <mime-type>application/vnd.oasis.opendocument.formula</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <!-- OpenDocument Drawing -->
+ <extension>odg</extension>
+ <mime-type>application/vnd.oasis.opendocument.graphics</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <!-- OpenDocument Image -->
+ <extension>odi</extension>
+ <mime-type>application/vnd.oasis.opendocument.image</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <!-- OpenDocument Master Document -->
+ <extension>odm</extension>
+ <mime-type>application/vnd.oasis.opendocument.text-master</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <!-- OpenDocument Presentation -->
+ <extension>odp</extension>
+ <mime-type>application/vnd.oasis.opendocument.presentation</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <!-- OpenDocument Spreadsheet -->
+ <extension>ods</extension>
+ <mime-type>application/vnd.oasis.opendocument.spreadsheet</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <!-- OpenDocument Text -->
+ <extension>odt</extension>
+ <mime-type>application/vnd.oasis.opendocument.text</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <!-- OpenDocument Drawing Template -->
+ <extension>otg </extension>
+ <mime-type>application/vnd.oasis.opendocument.graphics-template</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <!-- HTML Document Template -->
+ <extension>oth</extension>
+ <mime-type>application/vnd.oasis.opendocument.text-web</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <!-- OpenDocument Presentation Template -->
+ <extension>otp</extension>
+ <mime-type>application/vnd.oasis.opendocument.presentation-template</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <!-- OpenDocument Spreadsheet Template -->
+ <extension>ots</extension>
+ <mime-type>application/vnd.oasis.opendocument.spreadsheet-template </mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <!-- OpenDocument Text Template -->
+ <extension>ott</extension>
+ <mime-type>application/vnd.oasis.opendocument.text-template</mime-type>
+ </mime-mapping>
+ <!-- xiph mime types -->
+ <mime-mapping>
+ <extension>ogx</extension>
+ <mime-type>application/ogg</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>ogv</extension>
+ <mime-type>video/ogg</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>oga</extension>
+ <mime-type>audio/ogg</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>ogg</extension>
+ <mime-type>audio/ogg</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>spx</extension>
+ <mime-type>audio/ogg</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>flac</extension>
+ <mime-type>audio/flac</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>anx</extension>
+ <mime-type>application/annodex</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>axa</extension>
+ <mime-type>audio/annodex</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>axv</extension>
+ <mime-type>video/annodex</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>xspf</extension>
+ <mime-type>application/xspf+xml</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>pbm</extension>
+ <mime-type>image/x-portable-bitmap</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>pct</extension>
+ <mime-type>image/pict</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>pdf</extension>
+ <mime-type>application/pdf</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>pgm</extension>
+ <mime-type>image/x-portable-graymap</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>pic</extension>
+ <mime-type>image/pict</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>pict</extension>
+ <mime-type>image/pict</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>pls</extension>
+ <mime-type>audio/x-scpls</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>png</extension>
+ <mime-type>image/png</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>pnm</extension>
+ <mime-type>image/x-portable-anymap</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>pnt</extension>
+ <mime-type>image/x-macpaint</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>ppm</extension>
+ <mime-type>image/x-portable-pixmap</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>ppt</extension>
+ <mime-type>application/powerpoint</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>ps</extension>
+ <mime-type>application/postscript</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>psd</extension>
+ <mime-type>image/x-photoshop</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>qt</extension>
+ <mime-type>video/quicktime</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>qti</extension>
+ <mime-type>image/x-quicktime</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>qtif</extension>
+ <mime-type>image/x-quicktime</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>ras</extension>
+ <mime-type>image/x-cmu-raster</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>rdf</extension>
+ <mime-type>application/rdf+xml</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>rgb</extension>
+ <mime-type>image/x-rgb</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>rm</extension>
+ <mime-type>application/vnd.rn-realmedia</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>roff</extension>
+ <mime-type>application/x-troff</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>rtf</extension>
+ <mime-type>application/rtf</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>rtx</extension>
+ <mime-type>text/richtext</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>sh</extension>
+ <mime-type>application/x-sh</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>shar</extension>
+ <mime-type>application/x-shar</mime-type>
+ </mime-mapping>
+<!--
+ <mime-mapping>
+ <extension>shtml</extension>
+ <mime-type>text/x-server-parsed-html</mime-type>
+ </mime-mapping>
+-->
+ <mime-mapping>
+ <extension>smf</extension>
+ <mime-type>audio/x-midi</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>sit</extension>
+ <mime-type>application/x-stuffit</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>snd</extension>
+ <mime-type>audio/basic</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>src</extension>
+ <mime-type>application/x-wais-source</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>sv4cpio</extension>
+ <mime-type>application/x-sv4cpio</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>sv4crc</extension>
+ <mime-type>application/x-sv4crc</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>swf</extension>
+ <mime-type>application/x-shockwave-flash</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>t</extension>
+ <mime-type>application/x-troff</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>tar</extension>
+ <mime-type>application/x-tar</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>tcl</extension>
+ <mime-type>application/x-tcl</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>tex</extension>
+ <mime-type>application/x-tex</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>texi</extension>
+ <mime-type>application/x-texinfo</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>texinfo</extension>
+ <mime-type>application/x-texinfo</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>tif</extension>
+ <mime-type>image/tiff</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>tiff</extension>
+ <mime-type>image/tiff</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>tr</extension>
+ <mime-type>application/x-troff</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>tsv</extension>
+ <mime-type>text/tab-separated-values</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>txt</extension>
+ <mime-type>text/plain</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>ulw</extension>
+ <mime-type>audio/basic</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>ustar</extension>
+ <mime-type>application/x-ustar</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>vxml</extension>
+ <mime-type>application/voicexml+xml</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>xbm</extension>
+ <mime-type>image/x-xbitmap</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>xht</extension>
+ <mime-type>application/xhtml+xml</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>xhtml</extension>
+ <mime-type>application/xhtml+xml</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>xml</extension>
+ <mime-type>application/xml</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>xpm</extension>
+ <mime-type>image/x-xpixmap</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>xsl</extension>
+ <mime-type>application/xml</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>xslt</extension>
+ <mime-type>application/xslt+xml</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>xul</extension>
+ <mime-type>application/vnd.mozilla.xul+xml</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>xwd</extension>
+ <mime-type>image/x-xwindowdump</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>wav</extension>
+ <mime-type>audio/x-wav</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>svg</extension>
+ <mime-type>image/svg+xml</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>svgz</extension>
+ <mime-type>image/svg+xml</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>vsd</extension>
+ <mime-type>application/x-visio</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <!-- Wireless Bitmap -->
+ <extension>wbmp</extension>
+ <mime-type>image/vnd.wap.wbmp</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <!-- WML Source -->
+ <extension>wml</extension>
+ <mime-type>text/vnd.wap.wml</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <!-- Compiled WML -->
+ <extension>wmlc</extension>
+ <mime-type>application/vnd.wap.wmlc</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <!-- WML Script Source -->
+ <extension>wmls</extension>
+ <mime-type>text/vnd.wap.wmlscript</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <!-- Compiled WML Script -->
+ <extension>wmlscriptc</extension>
+ <mime-type>application/vnd.wap.wmlscriptc</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>wmv</extension>
+ <mime-type>video/x-ms-wmv</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>wrl</extension>
+ <mime-type>x-world/x-vrml</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>Z</extension>
+ <mime-type>application/x-compress</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>z</extension>
+ <mime-type>application/x-compress</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>zip</extension>
+ <mime-type>application/zip</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>xls</extension>
+ <mime-type>application/vnd.ms-excel</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>doc</extension>
+ <mime-type>application/vnd.ms-word</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>ppt</extension>
+ <mime-type>application/vnd.ms-powerpoint</mime-type>
+ </mime-mapping>
+
+ <!-- ==================== Default Welcome File List ===================== -->
+ <!-- When a request URI refers to a directory, the default servlet looks -->
+ <!-- for a "welcome file" within that directory and, if present, -->
+ <!-- to the corresponding resource URI for display. If no welcome file -->
+ <!-- is present, the default servlet either serves a directory listing, -->
+ <!-- or returns a 404 status, depending on how it is configured. -->
+ <!-- -->
+ <!-- If you define welcome files in your own application's web.xml -->
+ <!-- deployment descriptor, that list *replaces* the list configured -->
+ <!-- here, so be sure that you include any of the default values that -->
+ <!-- you wish to include. -->
+
+ <welcome-file-list>
+ <welcome-file>index.html</welcome-file>
+ <welcome-file>index.htm</welcome-file>
+ <welcome-file>index.jsp</welcome-file>
+ </welcome-file-list>
+
+</web-app>
Modified: components/pc/trunk/portal/src/assemble/simple-portal-jboss42.xml
===================================================================
--- components/pc/trunk/portal/src/assemble/simple-portal-jboss42.xml 2010-01-12 15:14:16 UTC (rev 1239)
+++ components/pc/trunk/portal/src/assemble/simple-portal-jboss42.xml 2010-01-12 17:28:38 UTC (rev 1240)
@@ -22,16 +22,16 @@
<include>org.gatein.wci:wci-tomcat</include>
<include>javax.portlet:portlet-api</include>
+ <include>org.gatein.pc:pc-portlet</include>
+ <include>org.gatein.pc:pc-api</include>
+ <include>javax.ccpp:ccpp</include>
+
</includes>
</dependencySet>
<dependencySet>
<outputDirectory>simple-portal.war/WEB-INF/lib</outputDirectory>
<includes>
- <include>org.gatein.pc:pc-portlet</include>
- <include>org.gatein.pc:pc-api</include>
- <include>javax.ccpp:ccpp</include>
-
<include>org.gatein.common:common-mc</include>
<include>org.gatein.pc:pc-controller</include>
<include>org.gatein.pc:pc-mc</include>
Modified: components/pc/trunk/portal/src/assemble/simple-portal-jboss51.xml
===================================================================
--- components/pc/trunk/portal/src/assemble/simple-portal-jboss51.xml 2010-01-12 15:14:16 UTC (rev 1239)
+++ components/pc/trunk/portal/src/assemble/simple-portal-jboss51.xml 2010-01-12 17:28:38 UTC (rev 1240)
@@ -21,15 +21,15 @@
<include>org.gatein.wci:wci-wci</include>
<include>org.gatein.wci:wci-tomcat</include>
+ <include>org.gatein.pc:pc-portlet</include>
+ <include>org.gatein.pc:pc-api</include>
+ <include>javax.ccpp:ccpp</include>
</includes>
</dependencySet>
<dependencySet>
<outputDirectory>simple-portal.war/WEB-INF/lib</outputDirectory>
<includes>
- <include>org.gatein.pc:pc-portlet</include>
- <include>org.gatein.pc:pc-api</include>
- <include>javax.ccpp:ccpp</include>
<include>org.gatein.common:common-mc</include>
<include>org.gatein.pc:pc-controller</include>
Modified: components/pc/trunk/test/pom.xml
===================================================================
--- components/pc/trunk/test/pom.xml 2010-01-12 15:14:16 UTC (rev 1239)
+++ components/pc/trunk/test/pom.xml 2010-01-12 17:28:38 UTC (rev 1240)
@@ -18,9 +18,9 @@
<dependency>
- <groupId>org.gatein.common</groupId>
- <artifactId>common-logging</artifactId>
- </dependency>
+ <groupId>org.gatein.common</groupId>
+ <artifactId>common-logging</artifactId>
+ </dependency>
<dependency>
<groupId>org.gatein.wci</groupId>
14 years, 11 months
gatein SVN: r1239 - in portal/trunk/portlet/exoadmin/src/main: webapp/groovy/wsrp/webui/component and 1 other directory.
by do-not-reply@jboss.org
Author: chris.laprun(a)jboss.com
Date: 2010-01-12 10:14:16 -0500 (Tue, 12 Jan 2010)
New Revision: 1239
Removed:
portal/trunk/portlet/exoadmin/src/main/webapp/groovy/wsrp/webui/component/UIWsrpGrid.gtmpl
Modified:
portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/wsrp/webui/component/UIWsrpConsole.java
portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/wsrp/webui/component/UIWsrpProducerEditor.java
portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/wsrp/webui/component/UIWsrpProducerOverview.java
Log:
- Cleaned-up UIWsrpConsole and make it use the default SelectTabActionListener. Tabs should now be stateful.
- UIGrid for registration properties is now using the default template which we can reuse thanks to the new renderer framework.
- Removed now useless UIWsrpGrid.gtmpl.
Modified: portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/wsrp/webui/component/UIWsrpConsole.java
===================================================================
--- portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/wsrp/webui/component/UIWsrpConsole.java 2010-01-12 15:09:42 UTC (rev 1238)
+++ portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/wsrp/webui/component/UIWsrpConsole.java 2010-01-12 15:14:16 UTC (rev 1239)
@@ -1,146 +1,55 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * This is free software; you can redistribute it and/or modify it *
- * under the terms of the GNU Lesser General Public License as *
- * published by the Free Software Foundation; either version 2.1 of *
- * the License, or (at your option) any later version. *
- * *
- * This software is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this software; if not, write to the Free *
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
- ******************************************************************************/
+/*
+ * JBoss, a division of Red Hat
+ * Copyright 2010, Red Hat Middleware, LLC, and individual
+ * contributors as indicated by the @authors tag. See the
+ * copyright.txt in the distribution for a full listing of
+ * individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
package org.exoplatform.wsrp.webui.component;
-import org.exoplatform.portal.webui.application.UIApplicationList;
-import org.exoplatform.portal.webui.application.UIPortlet;
-import org.exoplatform.portal.webui.container.UIContainerList;
-import org.exoplatform.portal.webui.util.Util;
-import org.exoplatform.portal.webui.workspace.UIPortalApplication;
-import org.exoplatform.webui.application.WebuiRequestContext;
import org.exoplatform.webui.config.annotation.ComponentConfig;
import org.exoplatform.webui.config.annotation.ComponentConfigs;
import org.exoplatform.webui.config.annotation.EventConfig;
-import org.exoplatform.webui.core.UIComponent;
import org.exoplatform.webui.core.UIContainer;
import org.exoplatform.webui.core.UITabPane;
import org.exoplatform.webui.core.lifecycle.UIApplicationLifecycle;
-import org.exoplatform.webui.event.Event;
/** @author Wesley Hales */
@ComponentConfigs({
-@ComponentConfig(
- lifecycle = UIApplicationLifecycle.class,
- template = "app:/groovy/wsrp/webui/component/UIWsrpConsole.gtmpl"),
-@ComponentConfig(
- id = "UIWsrpConsoleTab",
- type = UITabPane.class,
- //template = "system:/groovy/webui/core/UITabPane.gtmpl",
- template = "app:/groovy/wsrp/webui/component/UIWsrpConsoleContent.gtmpl",
- events = {@EventConfig(listeners = UIWsrpConsole.SelectTabActionListener.class)})})
+ @ComponentConfig(
+ lifecycle = UIApplicationLifecycle.class,
+ template = "app:/groovy/wsrp/webui/component/UIWsrpConsole.gtmpl"),
+ @ComponentConfig(
+ id = "UIWsrpConsoleTab",
+ type = UITabPane.class,
+ template = "app:/groovy/wsrp/webui/component/UIWsrpConsoleContent.gtmpl",
+ events = {@EventConfig(listeners = UITabPane.SelectTabActionListener.class)})})
public class UIWsrpConsole extends UIContainer
{
-
- private UITabPane uiTabPane;
-
public UIWsrpConsole() throws Exception
{
- uiTabPane = addChild(UITabPane.class, "UIWsrpConsoleTab", null);
+ UITabPane uiTabPane = addChild(UITabPane.class, "UIWsrpConsoleTab", null);
uiTabPane.addChild(UIWsrpConsumerOverview.class, null, "Manage Consumers").setRendered(true);
uiTabPane.addChild(UIWsrpProducerOverview.class, null, "Producer Configuration").setRendered(false);
- if (uiTabPane.getSelectedTabId().equals("")){
+ if (uiTabPane.getSelectedTabId().equals(""))
+ {
uiTabPane.setSelectedTab(1);
}
-
}
-
- public void processRender(WebuiRequestContext context) throws Exception
- {
-// UIPortalApplication uiPortalApp = Util.getUIPortalApplication();
-// int portalMode = uiPortalApp.getModeState();
-// if (portalMode != UIPortalApplication.NORMAL_MODE)
-// {
-// UITabPane uiTabPane = this.getChild(UITabPane.class);
-// UIComponent uiComponent = uiTabPane.getChildById(uiTabPane.getSelectedTabId());
-// if (uiComponent instanceof UIWsrpConsumerOverview)
-// {
-// if (portalMode == UIPortalApplication.APP_VIEW_EDIT_MODE)
-// {
-// Util.showComponentEditInViewMode(org.exoplatform.portal.webui.container.UIContainer.class);
-// }
-// else
-// {
-// uiPortalApp.setModeState(UIPortalApplication.APP_BLOCK_EDIT_MODE);
-// Util.showComponentLayoutMode(org.exoplatform.portal.webui.container.UIContainer.class);
-// }
-// }
-// else if (uiComponent instanceof UIWsrpProducerOverview)
-// {
-// if (portalMode == UIPortalApplication.CONTAINER_VIEW_EDIT_MODE)
-// {
-// Util.showComponentEditInViewMode(org.exoplatform.portal.webui.container.UIContainer.class);
-// }
-// else
-// {
-// uiPortalApp.setModeState(UIPortalApplication.CONTAINER_BLOCK_EDIT_MODE);
-// Util.showComponentLayoutMode(org.exoplatform.portal.webui.container.UIContainer.class);
-// }
-// }
-// }
- super.processRender(context);
- }
-
- static public class SelectTabActionListener extends UITabPane.SelectTabActionListener
- {
- public void execute(Event<UITabPane> event) throws Exception
- {
-// super.execute(event);
-// UITabPane uiTabPane = event.getSource();
-// UIComponent uiComponent = uiTabPane.getChildById(uiTabPane.getSelectedTabId());
-// UIPortalApplication uiPortalApp = Util.getUIPortalApplication();
-// int portalMode = uiPortalApp.getModeState();
-//
-// if (uiComponent instanceof UIWsrpConsumerOverview)
-// { // Swicth to Porlets Tab
-// if (portalMode % 2 == 0)
-// {
-// uiPortalApp.setModeState(UIPortalApplication.APP_VIEW_EDIT_MODE);
-// Util.showComponentEditInViewMode(org.exoplatform.portal.webui.container.UIContainer.class);
-// }
-// else
-// {
-// uiPortalApp.setModeState(UIPortalApplication.APP_BLOCK_EDIT_MODE);
-// Util.showComponentLayoutMode(org.exoplatform.portal.webui.container.UIContainer.class);
-// }
-// }
-// else if (uiComponent instanceof UIWsrpProducerOverview)
-// { // Swicth to
-// // Containers Tab
-// if (portalMode % 2 == 0)
-// {
-// uiPortalApp.setModeState(UIPortalApplication.CONTAINER_VIEW_EDIT_MODE);
-// Util.showComponentEditInViewMode(org.exoplatform.portal.webui.container.UIContainer.class);
-// }
-// else
-// {
-// uiPortalApp.setModeState(UIPortalApplication.CONTAINER_BLOCK_EDIT_MODE);
-// Util.showComponentLayoutMode(org.exoplatform.portal.webui.container.UIContainer.class);
-// }
-// }
-// event.getRequestContext().addUIComponentToUpdateByAjax(
-// Util.getUIPortalApplication().getChildById(UIPortalApplication.UI_WORKING_WS_ID));
- }
- }
-
}
Modified: portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/wsrp/webui/component/UIWsrpProducerEditor.java
===================================================================
--- portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/wsrp/webui/component/UIWsrpProducerEditor.java 2010-01-12 15:09:42 UTC (rev 1238)
+++ portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/wsrp/webui/component/UIWsrpProducerEditor.java 2010-01-12 15:14:16 UTC (rev 1239)
@@ -1,6 +1,6 @@
/*
* JBoss, a division of Red Hat
- * Copyright 2009, Red Hat Middleware, LLC, and individual
+ * Copyright 2010, Red Hat Middleware, LLC, and individual
* contributors as indicated by the @authors tag. See the
* copyright.txt in the distribution for a full listing of
* individual contributors.
@@ -22,18 +22,12 @@
*/
package org.exoplatform.wsrp.webui.component;
-import org.exoplatform.commons.utils.LazyPageList;
-import org.exoplatform.commons.utils.ListAccess;
import org.exoplatform.portal.webui.util.Util;
import org.exoplatform.web.application.ApplicationMessage;
import org.exoplatform.webui.application.WebuiRequestContext;
import org.exoplatform.webui.config.annotation.ComponentConfig;
-import org.exoplatform.webui.config.annotation.ComponentConfigs;
import org.exoplatform.webui.config.annotation.EventConfig;
import org.exoplatform.webui.core.UIApplication;
-import org.exoplatform.webui.core.UIComponent;
-import org.exoplatform.webui.core.UIGrid;
-import org.exoplatform.webui.core.UIPopupWindow;
import org.exoplatform.webui.core.lifecycle.UIFormLifecycle;
import org.exoplatform.webui.event.Event;
import org.exoplatform.webui.event.EventListener;
@@ -47,15 +41,7 @@
import org.gatein.wsrp.producer.config.ProducerConfiguration;
import org.gatein.wsrp.producer.config.ProducerConfigurationService;
import org.gatein.wsrp.producer.config.ProducerRegistrationRequirements;
-import org.gatein.wsrp.registration.RegistrationPropertyDescription;
-import javax.xml.namespace.QName;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
-
/** @author Wesley Hales */
@ComponentConfig(
@@ -67,8 +53,6 @@
public class UIWsrpProducerEditor extends UIForm
{
-
-
private static final String REG_REQUIRED_FOR_DESCRIPTION = "registrationrequiredforfulldescription";
private static final String STRICT_MODE = "strictmode";
private static final String REQUIRES_REGISTRATION = "requiresregistration";
@@ -132,8 +116,6 @@
regRequired.setValue(registrationRequired);
-
-
// if registration is required then we display more information
if (registrationRequired)
{
Modified: portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/wsrp/webui/component/UIWsrpProducerOverview.java
===================================================================
--- portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/wsrp/webui/component/UIWsrpProducerOverview.java 2010-01-12 15:09:42 UTC (rev 1238)
+++ portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/wsrp/webui/component/UIWsrpProducerOverview.java 2010-01-12 15:14:16 UTC (rev 1239)
@@ -1,6 +1,6 @@
/*
* JBoss, a division of Red Hat
- * Copyright 2009, Red Hat Middleware, LLC, and individual
+ * Copyright 2010, Red Hat Middleware, LLC, and individual
* contributors as indicated by the @authors tag. See the
* copyright.txt in the distribution for a full listing of
* individual contributors.
@@ -26,7 +26,6 @@
import org.exoplatform.commons.utils.ListAccess;
import org.exoplatform.container.ExoContainer;
import org.exoplatform.container.ExoContainerContext;
-import org.exoplatform.portal.webui.container.UIContainerForm;
import org.exoplatform.portal.webui.util.Util;
import org.exoplatform.web.application.ApplicationMessage;
import org.exoplatform.webui.application.WebuiRequestContext;
@@ -37,8 +36,8 @@
import org.exoplatform.webui.core.UIContainer;
import org.exoplatform.webui.core.UIGrid;
import org.exoplatform.webui.core.UIPopupWindow;
-import org.exoplatform.webui.core.UITabPane;
import org.exoplatform.webui.core.lifecycle.UIApplicationLifecycle;
+import org.exoplatform.webui.core.renderers.ValueRenderer;
import org.exoplatform.webui.event.Event;
import org.exoplatform.webui.event.EventListener;
import org.gatein.wsrp.producer.config.ProducerConfiguration;
@@ -47,11 +46,14 @@
import org.gatein.wsrp.registration.RegistrationPropertyDescription;
import javax.xml.namespace.QName;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
/** @author Wesley Hales */
@ComponentConfigs({
- @ComponentConfig(id = "RegistrationPropertySelector", type = UIGrid.class, template = "app:/groovy/wsrp/webui/component/UIWsrpGrid.gtmpl"),
+ @ComponentConfig(id = UIWsrpProducerOverview.REGISTRATION_PROPERTIES, type = UIGrid.class, template = "system:/groovy/webui/core/UIGrid.gtmpl"),
@ComponentConfig(
lifecycle = UIApplicationLifecycle.class,
template = "app:/groovy/wsrp/webui/component/UIWsrpProducerOverview.gtmpl",
@@ -82,6 +84,18 @@
addChild(UIWsrpProducerEditor.class, null, null);
// registration properties
registrationProperties = addChild(UIGrid.class, REGISTRATION_PROPERTIES, REGISTRATION_PROPERTIES);
+
+ // add renderer for LocalizedString
+ ValueRenderer<LocalizedString> renderer = new ValueRenderer<LocalizedString>()
+ {
+ @Override
+ public String render(LocalizedString value)
+ {
+ return value.getValue();
+ }
+ };
+ registrationProperties.registerRendererFor(renderer, LocalizedString.class);
+
//configure the edit and delete buttons based on an id from the data list - this will also be passed as param to listener
registrationProperties.configure("key", FIELDS, SELECT_ACTIONS);
registrationProperties.getUIPageIterator().setId(REGISTRATION_PROPERTIES_ITERATOR);
Deleted: portal/trunk/portlet/exoadmin/src/main/webapp/groovy/wsrp/webui/component/UIWsrpGrid.gtmpl
===================================================================
--- portal/trunk/portlet/exoadmin/src/main/webapp/groovy/wsrp/webui/component/UIWsrpGrid.gtmpl 2010-01-12 15:09:42 UTC (rev 1238)
+++ portal/trunk/portlet/exoadmin/src/main/webapp/groovy/wsrp/webui/component/UIWsrpGrid.gtmpl 2010-01-12 15:14:16 UTC (rev 1239)
@@ -1,112 +0,0 @@
-<%
- import org.exoplatform.webui.core.UIComponent;
- import org.exoplatform.webui.form.UIForm;
- import java.text.DateFormat;
- import java.text.SimpleDateFormat;
- import org.gatein.wsrp.registration.LocalizedString;
-
- String[] beanFields = uicomponent.getBeanFields();
- String[] beanActions = uicomponent.getBeanActions();
- UIComponent uiParent = uicomponent.getParent();
- String name = uicomponent.getLabel();
- UIForm uiForm = uicomponent.getAncestorOfType(UIForm.class);
-
- DateFormat dateFormat = null;
- LocalizedString localizedString = null;
-%>
-<div id="$uicomponent.id">
- <table class="UIGrid" cellspacing="0">
- <thead>
- <tr>
- <%if(name != null) {%>
- <%for(field in beanFields) { %>
- <th><%=_ctx.appRes(name+".header."+field)%></th>
- <%}%>
- <%if(beanActions != null) { %>
- <th><%=_ctx.appRes(name+".header.action")%></th>
- <%}%>
- <%}%>
- <%if(name == null) {%>
- <%for(field in beanFields) { %>
- <th><%=_ctx.appRes(uiParent.getName()+".header."+field)%></th>
- <%}%>
- <%if(beanActions != null && beanActions.length > 0) { %>
- <th><%=_ctx.appRes(uiParent.getName()+".header.action")%></th>
- <%}%>
- <%}%>
- </tr>
- </thead>
- <tbody>
- <%if(uicomponent.getUIPageIterator().getAvailable() < 1) {%>
- <tr>
- <td style="font-style:italic; color: #FF5604; text-align: center;" colspan="<%=beanFields.length+1%>">
- <%=_ctx.appRes("UIGrid.msg.empty")%>
- </td>
- </tr>
- <%} else {
- def rowClass = null;
- boolean even = true;
- for (bean in uicomponent.getBeans()) {
- if(even) rowClass = "EvenRow";
- else rowClass = "OddRow";
- even = !even;
- %>
- <tr class="$rowClass">
- <%
- for(field in beanFields) {
- def fieldValue = uicomponent.getFieldValue(bean, field);
- def cssClass = "";
- if(fieldValue != null) {
- def fieldClass = fieldValue.getClass();
- if(fieldClass == Integer.class) cssClass = "number";
- else if(java.util.Date.class.isAssignableFrom(fieldClass)) {
- if(dateFormat == null) dateFormat = new SimpleDateFormat("HH:mm:ss yyyy-MM-dd");
- cssClass = "Datetime";
- fieldValue = dateFormat.format(fieldValue);
- }else if(org.gatein.wsrp.registration.LocalizedString.class.isAssignableFrom(fieldClass)) {
- fieldValue = fieldValue.value
- }
- else cssClass = "Text";
- } else {
- fieldValue = "";
- }
- String value = fieldValue.toString();
- println "<td><div class=\""+cssClass+"\" title='$fieldValue'>"+fieldValue+"</div></td>";
- }
- if(beanActions != null && beanActions.length > 0) {
- %>
- <td>
- <div class="ActionContainer">
- <%
- def beanIdField = uicomponent.getBeanIdField();
- for(action in beanActions) {
- def beanId = uicomponent.getFieldValue(bean, beanIdField) ;
- if(action == null) continue;
- String title = _ctx.appRes(uicomponent.getParent().getName() + ".action.title." + action);
- String actionLink = "";
- if(uiForm != null){
- actionLink = uiForm.event(action, uicomponent.getParent().getId(), beanId);
- } else {
- actionLink = uiParent.event(action, beanId);
- }
- %>
- <img onclick="$actionLink" alt="" title="$title" src="/eXoResources/skin/sharedImages/Blank.gif" class="${action}Icon" />
- <%}%>
- </div>
- </td>
- <%
- }
- %>
- </tr>
- <%
- }
- }
- %>
- </tbody>
- </table> <!--End UIGrid-->
- <%
- if(uicomponent.getUIPageIterator().getAvailablePage() > 1) {
- _ctx.renderUIComponent(uicomponent.getUIPageIterator());
- }
- %>
-</div>
\ No newline at end of file
14 years, 11 months
gatein SVN: r1238 - in portal/trunk: webui/core and 5 other directories.
by do-not-reply@jboss.org
Author: chris.laprun(a)jboss.com
Date: 2010-01-12 10:09:42 -0500 (Tue, 12 Jan 2010)
New Revision: 1238
Added:
portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/
portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/FormattableValueRenderer.java
portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/ValueRenderer.java
portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/ValueRendererRegistry.java
portal/trunk/webui/core/src/test/java/org/exoplatform/webui/core/
portal/trunk/webui/core/src/test/java/org/exoplatform/webui/core/renderers/
portal/trunk/webui/core/src/test/java/org/exoplatform/webui/core/renderers/ValueRendererRegistryTestCase.java
Modified:
portal/trunk/web/portal/src/main/webapp/groovy/webui/core/UIGrid.gtmpl
portal/trunk/webui/core/pom.xml
portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/UIComponent.java
Log:
- Added capability to specify value renderers based on type on UIComponent. ValueRendererRegistry records which renderer
is used to render which value type. Default renderers are defined and components can override them or specify private
renderers as well.
- Removed hardcoded rendering of types in UIGrid.gtmpl which should be now a lot more reusable by leveraging the new
renderer framework.
- Added test case and activated it.
Modified: portal/trunk/web/portal/src/main/webapp/groovy/webui/core/UIGrid.gtmpl
===================================================================
--- portal/trunk/web/portal/src/main/webapp/groovy/webui/core/UIGrid.gtmpl 2010-01-12 12:22:13 UTC (rev 1237)
+++ portal/trunk/web/portal/src/main/webapp/groovy/webui/core/UIGrid.gtmpl 2010-01-12 15:09:42 UTC (rev 1238)
@@ -1,108 +1,108 @@
<%
- import org.exoplatform.webui.core.UIComponent;
- import org.exoplatform.webui.form.UIForm;
- import java.text.DateFormat;
- import java.text.SimpleDateFormat;
+ import org.exoplatform.webui.core.UIComponent;
+ import org.exoplatform.webui.form.UIForm;
- String[] beanFields = uicomponent.getBeanFields();
- String[] beanActions = uicomponent.getBeanActions();
- UIComponent uiParent = uicomponent.getParent();
- String name = uicomponent.getLabel();
- UIForm uiForm = uicomponent.getAncestorOfType(UIForm.class);
-
- DateFormat dateFormat = null;
+ String[] beanFields = uicomponent.getBeanFields();
+ String[] beanActions = uicomponent.getBeanActions();
+ UIComponent uiParent = uicomponent.getParent();
+ String name = uicomponent.getLabel();
+ UIForm uiForm = uicomponent.getAncestorOfType(UIForm.class);
%>
<div id="$uicomponent.id">
- <table class="UIGrid" cellspacing="0">
- <thead>
- <tr>
- <%if(name != null) {%>
- <%for(field in beanFields) { %>
- <th><%=_ctx.appRes(name+".header."+field)%></th>
- <%}%>
- <%if(beanActions != null) { %>
- <th><%=_ctx.appRes(name+".header.action")%></th>
- <%}%>
- <%}%>
- <%if(name == null) {%>
- <%for(field in beanFields) { %>
- <th><%=_ctx.appRes(uiParent.getName()+".header."+field)%></th>
- <%}%>
- <%if(beanActions != null && beanActions.length > 0) { %>
- <th><%=_ctx.appRes(uiParent.getName()+".header.action")%></th>
- <%}%>
- <%}%>
- </tr>
- </thead>
- <tbody>
- <%if(uicomponent.getUIPageIterator().getAvailable() < 1) {%>
- <tr>
- <td style="font-style:italic; color: #FF5604; text-align: center;" colspan="<%=beanFields.length+1%>">
- <%=_ctx.appRes("UIGrid.msg.empty")%>
- </td>
- </tr>
- <%} else {
- def rowClass = null;
- boolean even = true;
- for (bean in uicomponent.getBeans()) {
- if(even) rowClass = "EvenRow";
- else rowClass = "OddRow";
- even = !even;
- %>
- <tr class="$rowClass">
- <%
- for(field in beanFields) {
- def fieldValue = uicomponent.getFieldValue(bean, field);
- def cssClass = "";
- if(fieldValue != null) {
- def fieldClass = fieldValue.getClass();
- if(fieldClass == Integer.class) cssClass = "number";
- else if(java.util.Date.class.isAssignableFrom(fieldClass)) {
- if(dateFormat == null) dateFormat = new SimpleDateFormat("HH:mm:ss yyyy-MM-dd");
- cssClass = "Datetime";
- fieldValue = dateFormat.format(fieldValue);
- }
- else cssClass = "Text";
- } else {
- fieldValue = "";
- }
- String value = fieldValue.toString();
- println "<td><div class=\""+cssClass+"\" title='$fieldValue'>"+fieldValue+"</div></td>";
- }
- if(beanActions != null && beanActions.length > 0) {
- %>
- <td>
- <div class="ActionContainer">
- <%
- def beanIdField = uicomponent.getBeanIdField();
- for(action in beanActions) {
- def beanId = uicomponent.getFieldValue(bean, beanIdField) ;
- if(action == null) continue;
- String title = _ctx.appRes(uicomponent.getParent().getName() + ".action.title." + action);
- String actionLink = "";
- if(uiForm != null){
- actionLink = uiForm.event(action, uicomponent.getParent().getId(), beanId);
- } else {
- actionLink = uiParent.event(action, beanId);
- }
- %>
- <img onclick="$actionLink" alt="" title="$title" src="/eXoResources/skin/sharedImages/Blank.gif" class="${action}Icon" />
- <%}%>
- </div>
- </td>
- <%
- }
- %>
- </tr>
- <%
- }
- }
- %>
- </tbody>
- </table> <!--End UIGrid-->
- <%
- if(uicomponent.getUIPageIterator().getAvailablePage() > 1) {
- _ctx.renderUIComponent(uicomponent.getUIPageIterator());
- }
- %>
+ <table class="UIGrid" cellspacing="0">
+ <thead>
+ <tr>
+ <% if (name != null)
+ { %>
+ <% for (field in beanFields)
+ { %>
+ <th><%=_ctx.appRes(name + ".header." + field)%></th>
+ <% } %>
+ <% if (beanActions != null)
+ { %>
+ <th><%=_ctx.appRes(name + ".header.action")%></th>
+ <% } %>
+ <% } %>
+ <% if (name == null)
+ { %>
+ <% for (field in beanFields)
+ { %>
+ <th><%=_ctx.appRes(uiParent.getName() + ".header." + field)%></th>
+ <% } %>
+ <% if (beanActions != null && beanActions.length > 0)
+ { %>
+ <th><%=_ctx.appRes(uiParent.getName() + ".header.action")%></th>
+ <% } %>
+ <% } %>
+ </tr>
+ </thead>
+ <tbody>
+ <% if (uicomponent.getUIPageIterator().getAvailable() < 1)
+ { %>
+ <tr>
+ <td style="font-style:italic; color: #FF5604; text-align: center;" colspan="<%=beanFields.length + 1%>">
+ <%=_ctx.appRes("UIGrid.msg.empty")%>
+ </td>
+ </tr>
+ <% }
+ else
+ {
+ def rowClass = null;
+ boolean even = true;
+ for (bean in uicomponent.getBeans())
+ {
+ if (even) rowClass = "EvenRow";
+ else rowClass = "OddRow";
+ even = !even;
+ %>
+ <tr class="$rowClass">
+ <%
+ for (field in beanFields)
+ {
+ def fieldValue = uicomponent.getFieldValue(bean, field);
+ def renderer = uicomponent.getRendererFor(fieldValue);
+ println "<td><div class=\"" + renderer.getCSSClassFor(fieldValue) + "\" title='$fieldValue'>" + renderer.render(fieldValue) + "</div></td>";
+ }
+ if (beanActions != null && beanActions.length > 0)
+ {
+ %>
+ <td>
+ <div class="ActionContainer">
+ <%
+ def beanIdField = uicomponent.getBeanIdField();
+ for (action in beanActions)
+ {
+ def beanId = uicomponent.getFieldValue(bean, beanIdField);
+ if (action == null) continue;
+ String title = _ctx.appRes(uicomponent.getParent().getName() + ".action.title." + action);
+ String actionLink = "";
+ if (uiForm != null)
+ {
+ actionLink = uiForm.event(action, uicomponent.getParent().getId(), beanId);
+ }
+ else
+ {
+ actionLink = uiParent.event(action, beanId);
+ }
+ %>
+ <img onclick="$actionLink" alt="" title="$title" src="/eXoResources/skin/sharedImages/Blank.gif" class="${action}Icon"/>
+ <% } %>
+ </div>
+ </td>
+ <%
+ }
+ %>
+ </tr>
+ <%
+ }
+ }
+ %>
+ </tbody>
+ </table> <!--End UIGrid-->
+<%
+ if (uicomponent.getUIPageIterator().getAvailablePage() > 1)
+ {
+ _ctx.renderUIComponent(uicomponent.getUIPageIterator());
+ }
+%>
</div>
\ No newline at end of file
Modified: portal/trunk/webui/core/pom.xml
===================================================================
--- portal/trunk/webui/core/pom.xml 2010-01-12 12:22:13 UTC (rev 1237)
+++ portal/trunk/webui/core/pom.xml 2010-01-12 15:09:42 UTC (rev 1238)
@@ -19,63 +19,71 @@
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <groupId>org.exoplatform.portal</groupId>
- <artifactId>exo.portal.webui</artifactId>
- <version>3.0.0-Beta05-SNAPSHOT</version>
- </parent>
-
- <modelVersion>4.0.0</modelVersion>
- <artifactId>exo.portal.webui.core</artifactId>
- <packaging>jar</packaging>
- <name>GateIn Portal WebUI Core</name>
-
- <properties>
- <maven.test.skip>true</maven.test.skip>
- </properties>
-
- <dependencies>
- <dependency>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
<groupId>org.exoplatform.portal</groupId>
- <artifactId>exo.portal.component.web</artifactId>
+ <artifactId>exo.portal.webui</artifactId>
<version>3.0.0-Beta05-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.gatein.common</groupId>
- <artifactId>common-common</artifactId>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.jibx</groupId>
- <artifactId>maven-jibx-plugin</artifactId>
- <version>${org.jibx.version}</version>
- <configuration>
- <directory>src/main/resources</directory>
- <includes>
- <includes>binding.xml</includes>
- </includes>
- </configuration>
- <executions>
- <execution>
- <goals>
- <goal>bind</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
+ </parent>
- <!-- -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <compilerArgument>-proc:none</compilerArgument>
- </configuration>
- </plugin>
- </plugins>
- </build>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>exo.portal.webui.core</artifactId>
+ <packaging>jar</packaging>
+ <name>GateIn Portal WebUI Core</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.component.web</artifactId>
+ <version>3.0.0-Beta05-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.gatein.common</groupId>
+ <artifactId>common-common</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.jibx</groupId>
+ <artifactId>maven-jibx-plugin</artifactId>
+ <version>${org.jibx.version}</version>
+ <configuration>
+ <directory>src/main/resources</directory>
+ <includes>
+ <includes>binding.xml</includes>
+ </includes>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>bind</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!-- -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <compilerArgument>-proc:none</compilerArgument>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>org/exoplatform/webui/test/**</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </build>
</project>
Modified: portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/UIComponent.java
===================================================================
--- portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/UIComponent.java 2010-01-12 12:22:13 UTC (rev 1237)
+++ portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/UIComponent.java 2010-01-12 15:09:42 UTC (rev 1238)
@@ -26,6 +26,8 @@
import org.exoplatform.webui.application.WebuiApplication;
import org.exoplatform.webui.application.WebuiRequestContext;
import org.exoplatform.webui.config.Component;
+import org.exoplatform.webui.core.renderers.ValueRenderer;
+import org.exoplatform.webui.core.renderers.ValueRendererRegistry;
import org.exoplatform.webui.event.Event;
import org.exoplatform.webui.event.Event.Phase;
import org.exoplatform.webui.event.EventListener;
@@ -52,6 +54,8 @@
transient protected Component config;
+ transient private ValueRendererRegistry rendererRegistry = new ValueRendererRegistry();
+
public String getId()
{
return this.id;
@@ -458,4 +462,14 @@
}
return null;
}
+
+ public ValueRenderer getRendererFor(Object value)
+ {
+ return rendererRegistry.getRendererFor(value == null ? null : value.getClass());
+ }
+
+ public <ValueType> void registerRendererFor(ValueRenderer<ValueType> renderer, Class<? extends ValueType> valueType)
+ {
+ rendererRegistry.registerRendererFor(renderer, valueType);
+ }
}
\ No newline at end of file
Added: portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/FormattableValueRenderer.java
===================================================================
--- portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/FormattableValueRenderer.java (rev 0)
+++ portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/FormattableValueRenderer.java 2010-01-12 15:09:42 UTC (rev 1238)
@@ -0,0 +1,68 @@
+/*
+ * JBoss, a division of Red Hat
+ * Copyright 2010, Red Hat Middleware, LLC, and individual
+ * contributors as indicated by the @authors tag. See the
+ * copyright.txt in the distribution for a full listing of
+ * individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.exoplatform.webui.core.renderers;
+
+import java.text.Format;
+
+/**
+ * @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
+ * @version $Revision$
+ */
+public class FormattableValueRenderer extends ValueRenderer<Object>
+{
+ private Format format;
+ private String cssClass;
+
+ public FormattableValueRenderer(Format format, String cssClass)
+ {
+ this.format = format;
+ this.cssClass = cssClass;
+ }
+
+ @Override
+ public String render(Object value)
+ {
+ if (format != null)
+ {
+ return format.format(value);
+ }
+ else
+ {
+ return super.render(value);
+ }
+ }
+
+ @Override
+ public String getCSSClassFor(Object value)
+ {
+ if (cssClass != null)
+ {
+ return cssClass;
+ }
+ else
+ {
+ return super.getCSSClassFor(value);
+ }
+ }
+}
Added: portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/ValueRenderer.java
===================================================================
--- portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/ValueRenderer.java (rev 0)
+++ portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/ValueRenderer.java 2010-01-12 15:09:42 UTC (rev 1238)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, a division of Red Hat
+ * Copyright 2010, Red Hat Middleware, LLC, and individual
+ * contributors as indicated by the @authors tag. See the
+ * copyright.txt in the distribution for a full listing of
+ * individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.exoplatform.webui.core.renderers;
+
+import org.gatein.common.util.ParameterValidation;
+
+/**
+ * @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
+ * @version $Revision$
+ */
+public class ValueRenderer<ValueType>
+{
+ public static final String EMPTY = "";
+ public static final String DEFAULT_CSS_CLASS = "Text";
+ public static final ValueRenderer<Object> DEFAULT_RENDERER = new ValueRenderer<Object>();
+ public static final ValueRenderer NULL_RENDERER = new ValueRenderer()
+ {
+ @Override
+ public String render(Object value)
+ {
+ return EMPTY;
+ }
+
+ @Override
+ public String getCSSClassFor(Object value)
+ {
+ return EMPTY;
+ }
+ };
+
+
+ public String render(ValueType value)
+ {
+ ParameterValidation.throwIllegalArgExceptionIfNull(value, "Value");
+ return value.toString();
+ }
+
+ public String getCSSClassFor(ValueType value)
+ {
+ return DEFAULT_CSS_CLASS;
+ }
+}
Added: portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/ValueRendererRegistry.java
===================================================================
--- portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/ValueRendererRegistry.java (rev 0)
+++ portal/trunk/webui/core/src/main/java/org/exoplatform/webui/core/renderers/ValueRendererRegistry.java 2010-01-12 15:09:42 UTC (rev 1238)
@@ -0,0 +1,142 @@
+/*
+ * JBoss, a division of Red Hat
+ * Copyright 2010, Red Hat Middleware, LLC, and individual
+ * contributors as indicated by the @authors tag. See the
+ * copyright.txt in the distribution for a full listing of
+ * individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.exoplatform.webui.core.renderers;
+
+import org.gatein.common.util.ParameterValidation;
+
+import java.sql.Time;
+import java.sql.Timestamp;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
+ * @version $Revision$
+ */
+public class ValueRendererRegistry
+{
+ private static Map<Class, ValueRenderer> DEFAULT_RENDERERS;
+ private Map<Class, ValueRenderer> renderers;
+
+ static
+ {
+ FormattableValueRenderer numberRenderer = new FormattableValueRenderer(null, "number");
+ registerDefaultRendererFor(numberRenderer, Number.class);
+ registerDefaultRendererFor(numberRenderer, Byte.class);
+ registerDefaultRendererFor(numberRenderer, Double.class);
+ registerDefaultRendererFor(numberRenderer, Float.class);
+ registerDefaultRendererFor(numberRenderer, Integer.class);
+ registerDefaultRendererFor(numberRenderer, Long.class);
+ registerDefaultRendererFor(numberRenderer, Short.class);
+
+ FormattableValueRenderer dateRenderer = new FormattableValueRenderer(new SimpleDateFormat("HH:mm:ss yyyy-MM-dd"), "Datetime");
+ registerDefaultRendererFor(dateRenderer, Date.class);
+ registerDefaultRendererFor(dateRenderer, java.sql.Date.class);
+ registerDefaultRendererFor(dateRenderer, Time.class);
+ registerDefaultRendererFor(dateRenderer, Timestamp.class);
+ }
+
+
+ public <ValueType> ValueRenderer<ValueType> getRendererFor(Class<? extends ValueType> valueType)
+ {
+ if (valueType == null)
+ {
+ return ValueRenderer.NULL_RENDERER;
+ }
+
+ // first check local renderers
+ ValueRenderer renderer = getRendererIn(valueType, renderers);
+ if (renderer == null)
+ {
+ // then globally registered ones
+ renderer = getRendererIn(valueType, DEFAULT_RENDERERS);
+
+ // if we haven't found a match, check inheritance and return first match
+ if (renderer == null)
+ {
+ for (Map.Entry<Class, ValueRenderer> entry : DEFAULT_RENDERERS.entrySet())
+ {
+ Class type = entry.getKey();
+ if (type.isAssignableFrom(valueType))
+ {
+ renderer = entry.getValue();
+
+ // add the found renderers to the default ones so that further look-ups will be faster
+ registerDefaultRendererFor(renderer, type);
+
+ break;
+ }
+ }
+
+ // if we still haven't found one, use the default
+ if (renderer == null)
+ {
+ renderer = ValueRenderer.DEFAULT_RENDERER;
+ }
+ }
+
+ }
+
+ return renderer;
+ }
+
+ public static <ValueType> void registerDefaultRendererFor(ValueRenderer<ValueType> renderer, Class<? extends ValueType> type)
+ {
+ DEFAULT_RENDERERS = registerIn(renderer, type, DEFAULT_RENDERERS);
+ }
+
+ public <ValueType> void registerRendererFor(ValueRenderer<ValueType> renderer, Class<? extends ValueType> type)
+ {
+ renderers = registerIn(renderer, type, renderers);
+ }
+
+ private static <ValueType> Map<Class, ValueRenderer> registerIn(ValueRenderer<ValueType> renderer, Class<? extends ValueType> type, Map<Class, ValueRenderer> renderers)
+ {
+ ParameterValidation.throwIllegalArgExceptionIfNull(type, "Value class");
+ ParameterValidation.throwIllegalArgExceptionIfNull(renderer, "Renderer");
+
+ if (renderers == null)
+ {
+ renderers = new HashMap<Class, ValueRenderer>(7);
+ }
+
+ renderers.put(type, renderer);
+
+ return renderers;
+ }
+
+ private static ValueRenderer getRendererIn(Class valueType, Map<Class, ValueRenderer> renderers)
+ {
+ if (renderers == null)
+ {
+ return null;
+ }
+ else
+ {
+ return renderers.get(valueType);
+ }
+ }
+}
Added: portal/trunk/webui/core/src/test/java/org/exoplatform/webui/core/renderers/ValueRendererRegistryTestCase.java
===================================================================
--- portal/trunk/webui/core/src/test/java/org/exoplatform/webui/core/renderers/ValueRendererRegistryTestCase.java (rev 0)
+++ portal/trunk/webui/core/src/test/java/org/exoplatform/webui/core/renderers/ValueRendererRegistryTestCase.java 2010-01-12 15:09:42 UTC (rev 1238)
@@ -0,0 +1,97 @@
+/*
+ * JBoss, a division of Red Hat
+ * Copyright 2010, Red Hat Middleware, LLC, and individual
+ * contributors as indicated by the @authors tag. See the
+ * copyright.txt in the distribution for a full listing of
+ * individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.exoplatform.webui.core.renderers;
+
+import junit.framework.TestCase;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
+ * @version $Revision$
+ */
+public class ValueRendererRegistryTestCase extends TestCase
+{
+ private ValueRendererRegistry registry;
+ private ValueRenderer renderer;
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ registry = new ValueRendererRegistry();
+ renderer = null;
+ }
+
+ public void testGetDefaultRenderer()
+ {
+ renderer = registry.getRendererFor(Object.class);
+ assertEquals(ValueRenderer.DEFAULT_RENDERER, renderer);
+ assertEquals(ValueRenderer.DEFAULT_CSS_CLASS, renderer.getCSSClassFor(new Object()));
+ }
+
+ public void testRegisterLocalRenderer()
+ {
+ SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
+ String css = "testDate";
+ registry.registerRendererFor(new FormattableValueRenderer(dateFormat, css), TestDate.class);
+
+ TestDate date = new TestDate(2010, 1, 12, 13, 37, 0);
+ renderer = registry.getRendererFor(date.getClass());
+ assertNotNull(renderer);
+ assertEquals(dateFormat.format(date), renderer.render(date));
+ assertEquals(css, renderer.getCSSClassFor(date));
+ }
+
+ public void testRenderNullValue()
+ {
+ renderer = registry.getRendererFor(null);
+ assertNotNull(renderer);
+ assertEquals(ValueRenderer.EMPTY, renderer.render(null));
+ assertEquals(ValueRenderer.EMPTY, renderer.getCSSClassFor(null));
+ }
+
+ public void testSupportsPreviousUIGridScenario()
+ {
+ renderer = registry.getRendererFor(Integer.class);
+ assertNotNull(renderer);
+ assertEquals("100", renderer.render(100));
+ assertEquals("number", renderer.getCSSClassFor(100));
+
+ SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss yyyy-MM-dd");
+ TestDate date = new TestDate(2010, 1, 12, 13, 37, 0);
+ renderer = registry.getRendererFor(date.getClass());
+ assertNotNull(renderer);
+ assertEquals(dateFormat.format(date), renderer.render(date));
+ assertEquals("Datetime", renderer.getCSSClassFor(date));
+ }
+
+ private static class TestDate extends Date
+ {
+ private TestDate(int year, int month, int date, int hrs, int min, int sec)
+ {
+ super(year, month, date, hrs, min, sec);
+ }
+ }
+}
14 years, 11 months
gatein SVN: r1237 - in components/pc/trunk: portal and 6 other directories.
by do-not-reply@jboss.org
Author: thomas.heute(a)jboss.com
Date: 2010-01-12 07:22:13 -0500 (Tue, 12 Jan 2010)
New Revision: 1237
Added:
components/pc/trunk/distrib/GateInPC-README.txt
components/pc/trunk/samples/src/main/artifacts/jsp-portlet-war/jsp/
Removed:
components/pc/trunk/samples/src/main/artifacts/jsp-portlet-war/WEB-INF/jsp/
Modified:
components/pc/trunk/distrib/distrib.xml
components/pc/trunk/portal/pom.xml
components/pc/trunk/portal/src/assemble/simple-portal-jboss42.xml
components/pc/trunk/portal/src/assemble/simple-portal-jboss51.xml
components/pc/trunk/portal/src/assemble/simple-portal-tomcat60.xml
components/pc/trunk/portal/src/main/resources/simple-portal-war/WEB-INF/web.xml
components/pc/trunk/portal/src/main/resources/simple-portal-war/layouts/nav/main.jsp
components/pc/trunk/samples/src/main/java/org/gatein/pc/samples/jsp/JSPPortlet.java
Log:
GTNPC-16: simple-portal does not work
Added: components/pc/trunk/distrib/GateInPC-README.txt
===================================================================
--- components/pc/trunk/distrib/GateInPC-README.txt (rev 0)
+++ components/pc/trunk/distrib/GateInPC-README.txt 2010-01-12 12:22:13 UTC (rev 1237)
@@ -0,0 +1,15 @@
+
+GateIn Portlet Container
+LGPL Licensed (See http://www.gnu.org/copyleft/lesser.html for details on the product usage)
+
+GateIn Portlet Container is the next generation portlet container on which GateIn Portal
+is based. It provides a standard-compliant implementation of the JSR-286 Portlet 2.0
+specification. It has been developed with reusability in mind so that advanced users, who don't require
+a full-fledged portal, can leverage the portlet management services it provides in their own applications.
+GateIn Portlet Container is available through the business-friendly LGPL open source license.
+
+This distribution also contains a simple portal built on top of GateIn Portlet Container. This simple
+portal can be run on Tomcat 6.x and JBoss Application Server 4.2.x.
+
+INSTALLATION AND RUNNING:
+For installation, please refer to the user guide available in the 'gateinpc-docs' directory
Modified: components/pc/trunk/distrib/distrib.xml
===================================================================
--- components/pc/trunk/distrib/distrib.xml 2010-01-12 11:28:30 UTC (rev 1236)
+++ components/pc/trunk/distrib/distrib.xml 2010-01-12 12:22:13 UTC (rev 1237)
@@ -2,9 +2,9 @@
<property name="source.dir" value="../"/>
<property name="src.docs.dir" value="${source.dir}/docs"/>
- <property name="pc.release.version" value="2.1.0-Beta02"/>
- <property name="demo.release.version" value="2.1.0-Beta02"/>
- <property name="maven.version" value="2.1.0-Beta02"/>
+ <property name="pc.release.version" value="2.1.0-CR02-SNAPSHOT"/>
+ <property name="demo.release.version" value="2.1.0-CR02-SNAPSHOT"/>
+ <property name="maven.version" value="2.1.0-CR02-SNAPSHOT"/>
<!-- -->
<property name="pc.release.name" value="gatein-portletcontainer-${pc.release.version}"/>
Modified: components/pc/trunk/portal/pom.xml
===================================================================
--- components/pc/trunk/portal/pom.xml 2010-01-12 11:28:30 UTC (rev 1236)
+++ components/pc/trunk/portal/pom.xml 2010-01-12 12:22:13 UTC (rev 1237)
@@ -27,6 +27,11 @@
</dependency>
<dependency>
+ <groupId>org.gatein.wci</groupId>
+ <artifactId>wci-tomcat</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.gatein.pc</groupId>
<artifactId>pc-portlet</artifactId>
</dependency>
@@ -89,6 +94,18 @@
<groupId>apache-taglibs</groupId>
<artifactId>standard</artifactId>
</dependency>
+
+ <dependency>
+ <groupId>apache-log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.5.6</version>
+ </dependency>
+
</dependencies>
<build>
Modified: components/pc/trunk/portal/src/assemble/simple-portal-jboss42.xml
===================================================================
--- components/pc/trunk/portal/src/assemble/simple-portal-jboss42.xml 2010-01-12 11:28:30 UTC (rev 1236)
+++ components/pc/trunk/portal/src/assemble/simple-portal-jboss42.xml 2010-01-12 12:22:13 UTC (rev 1237)
@@ -15,11 +15,11 @@
<includes>
<include>org.gatein.common:common-common</include>
+ <include>org.gatein.common:common-logging</include>
+ <include>org.slf4j:slf4j-api</include>
+ <include>org.slf4j:slf4j-log4j12</include>
<include>org.gatein.wci:wci-wci</include>
- <include>org.gatein.pc:pc-portlet</include>
- <include>org.gatein.pc:pc-api</include>
-
- <include>javax.ccpp:ccpp</include>
+ <include>org.gatein.wci:wci-tomcat</include>
<include>javax.portlet:portlet-api</include>
</includes>
@@ -28,6 +28,10 @@
<outputDirectory>simple-portal.war/WEB-INF/lib</outputDirectory>
<includes>
+ <include>org.gatein.pc:pc-portlet</include>
+ <include>org.gatein.pc:pc-api</include>
+ <include>javax.ccpp:ccpp</include>
+
<include>org.gatein.common:common-mc</include>
<include>org.gatein.pc:pc-controller</include>
<include>org.gatein.pc:pc-mc</include>
Modified: components/pc/trunk/portal/src/assemble/simple-portal-jboss51.xml
===================================================================
--- components/pc/trunk/portal/src/assemble/simple-portal-jboss51.xml 2010-01-12 11:28:30 UTC (rev 1236)
+++ components/pc/trunk/portal/src/assemble/simple-portal-jboss51.xml 2010-01-12 12:22:13 UTC (rev 1237)
@@ -16,11 +16,10 @@
<includes>
<include>org.gatein.common:common-common</include>
+ <include>org.gatein.common:common-logging</include>
+ <include>javax.portlet:portlet-api</include>
<include>org.gatein.wci:wci-wci</include>
- <include>org.gatein.pc:pc-portlet</include>
- <include>org.gatein.pc:pc-api</include>
- <include>javax.ccpp:ccpp</include>
- <include>javax.portlet:portlet-api</include>
+ <include>org.gatein.wci:wci-tomcat</include>
</includes>
</dependencySet>
@@ -28,6 +27,10 @@
<outputDirectory>simple-portal.war/WEB-INF/lib</outputDirectory>
<includes>
+ <include>org.gatein.pc:pc-portlet</include>
+ <include>org.gatein.pc:pc-api</include>
+ <include>javax.ccpp:ccpp</include>
+
<include>org.gatein.common:common-mc</include>
<include>org.gatein.pc:pc-controller</include>
<include>org.gatein.pc:pc-mc</include>
Modified: components/pc/trunk/portal/src/assemble/simple-portal-tomcat60.xml
===================================================================
--- components/pc/trunk/portal/src/assemble/simple-portal-tomcat60.xml 2010-01-12 11:28:30 UTC (rev 1236)
+++ components/pc/trunk/portal/src/assemble/simple-portal-tomcat60.xml 2010-01-12 12:22:13 UTC (rev 1237)
@@ -15,10 +15,15 @@
<includes>
<include>org.gatein.common:common-common</include>
+ <include>org.gatein.common:common-logging</include>
<include>org.gatein.wci:wci-wci</include>
+ <include>org.gatein.wci:wci-tomcat</include>
<include>org.gatein.pc:pc-portlet</include>
<include>org.gatein.pc:pc-api</include>
-
+
+ <include>org.slf4j:slf4j-api</include>
+ <include>org.slf4j:slf4j-log4j12</include>
+
<include>apache-log4j:log4j</include>
<include>javax.ccpp:ccpp</include>
<include>javax.activation:activation</include>
Modified: components/pc/trunk/portal/src/main/resources/simple-portal-war/WEB-INF/web.xml
===================================================================
--- components/pc/trunk/portal/src/main/resources/simple-portal-war/WEB-INF/web.xml 2010-01-12 11:28:30 UTC (rev 1236)
+++ components/pc/trunk/portal/src/main/resources/simple-portal-war/WEB-INF/web.xml 2010-01-12 12:22:13 UTC (rev 1237)
@@ -51,7 +51,7 @@
</listener>
<servlet>
<servlet-name>ContainerServlet</servlet-name>
- <servlet-class>org.gatein.wci.impl.tomcat.TC6ContainerServlet</servlet-class>
+ <servlet-class>org.gatein.wci.tomcat.TC6ContainerServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
</web-app>
Modified: components/pc/trunk/portal/src/main/resources/simple-portal-war/layouts/nav/main.jsp
===================================================================
--- components/pc/trunk/portal/src/main/resources/simple-portal-war/layouts/nav/main.jsp 2010-01-12 11:28:30 UTC (rev 1236)
+++ components/pc/trunk/portal/src/main/resources/simple-portal-war/layouts/nav/main.jsp 2010-01-12 12:22:13 UTC (rev 1237)
@@ -32,9 +32,11 @@
<li>
<a href="${pageContext.request.contextPath}/demo/demo4.jsp" class="${fn:substringAfter(pageContext.request.servletPath, 'demo/') == 'demo4.jsp' ? 'selected' : ''}">Demo4</a>
</li>
+ <!--
<li>
<a href="${pageContext.request.contextPath}/demo/jsr-301.jsp" class="${fn:substringAfter(pageContext.request.servletPath, 'demo/') == 'jsr-301.jsp' ? 'selected' : ''}">JSR-301 Demo</a>
</li>
+ -->
</ul>
<br class="clear"/>
</div>
Copied: components/pc/trunk/samples/src/main/artifacts/jsp-portlet-war/jsp (from rev 1228, components/pc/trunk/samples/src/main/artifacts/jsp-portlet-war/WEB-INF/jsp)
Modified: components/pc/trunk/samples/src/main/java/org/gatein/pc/samples/jsp/JSPPortlet.java
===================================================================
--- components/pc/trunk/samples/src/main/java/org/gatein/pc/samples/jsp/JSPPortlet.java 2010-01-12 11:28:30 UTC (rev 1236)
+++ components/pc/trunk/samples/src/main/java/org/gatein/pc/samples/jsp/JSPPortlet.java 2010-01-12 12:22:13 UTC (rev 1237)
@@ -34,7 +34,7 @@
*/
public class JSPPortlet extends GenericPortlet
{
- private static final String JSP_PATH = "/WEB-INF/jsp";
+ private static final String JSP_PATH = "/jsp";
protected void doView(RenderRequest rRequest, RenderResponse rResponse) throws PortletException, IOException, UnavailableException
{
14 years, 11 months
gatein SVN: r1236 - portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/webui/component/UISelector/UINodeIconSelector.
by do-not-reply@jboss.org
Author: thuy.nguyen
Date: 2010-01-12 06:28:30 -0500 (Tue, 12 Jan 2010)
New Revision: 1236
Modified:
portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/webui/component/UISelector/UINodeIconSelector/Stylesheet.css
Log:
GTNPORTAL-470: IE: Error UI in Icon Tab when add/edit node (page)
Modified: portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/webui/component/UISelector/UINodeIconSelector/Stylesheet.css
===================================================================
--- portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/webui/component/UISelector/UINodeIconSelector/Stylesheet.css 2010-01-12 10:38:43 UTC (rev 1235)
+++ portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/webui/component/UISelector/UINodeIconSelector/Stylesheet.css 2010-01-12 11:28:30 UTC (rev 1236)
@@ -27,6 +27,15 @@
.UINodeIconSelector .LeftColumnStyle .ItemListContainer .ItemDetailList {
height: 263px;
+}
+
+.UINodeIconSelector .LeftColumnStyle .UIDropDownControl {
+ width: auto; /* orientation=rt */
+ position: static; /* orientation=rt */
+}
+
+.UINodeIconSelector .LeftColumnStyle .UIDropDownControl .UIDropDownAnchor {
+ width: 175px; /* orientation=rt */
}
.UINodeIconSelector .SelectedIconInfo {
14 years, 11 months
gatein SVN: r1235 - portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/portal/portal.
by do-not-reply@jboss.org
Author: hoang_to
Date: 2010-01-12 05:38:43 -0500 (Tue, 12 Jan 2010)
New Revision: 1235
Modified:
portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/portal/portal/sharedlayout.xml
Log:
GTNPORTAL-466: File missed in last commit
Modified: portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/portal/portal/sharedlayout.xml
===================================================================
--- portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/portal/portal/sharedlayout.xml 2010-01-12 10:35:35 UTC (rev 1234)
+++ portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/portal/portal/sharedlayout.xml 2010-01-12 10:38:43 UTC (rev 1235)
@@ -70,7 +70,10 @@
<application-ref>exoadmin</application-ref>
<portlet-ref>AdminToolbarPortlet</portlet-ref>
</portlet>
+ <!--
<access-permissions>*:/platform/administrators; *:/organization/management/executive-board</access-permissions>
+ -->
+ <access-permissions>Everyone</access-permissions>
<show-info-bar>false</show-info-bar>
</portlet-application>
</container>
14 years, 11 months
gatein SVN: r1234 - portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UIToolbarContainer.
by do-not-reply@jboss.org
Author: thuy.nguyen
Date: 2010-01-12 05:35:35 -0500 (Tue, 12 Jan 2010)
New Revision: 1234
Modified:
portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UIToolbarContainer/Stylesheet.css
Log:
GTNPORTAL-467: IE7: Error UI in Editor Icon of Dashboard page
Modified: portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UIToolbarContainer/Stylesheet.css
===================================================================
--- portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UIToolbarContainer/Stylesheet.css 2010-01-12 10:25:00 UTC (rev 1233)
+++ portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UIToolbarContainer/Stylesheet.css 2010-01-12 10:35:35 UTC (rev 1234)
@@ -84,7 +84,7 @@
text-align: left; /* orientation=lt */
text-align: right; /* orientation=rt */
float: none; /* orientation=lt */
- !float: left; /* orientation=rt */
+ !float: left; /* orientation=rt */ /* fix for IE7 */
}
/****************************/
@@ -243,7 +243,7 @@
}
.UIToolbarContainer .UIAdminToolbarPortlet {
- width: 120px; /* orientation=rt */
+ width: 200px; /* orientation=rt */
}
.UIToolbarContainer .UIAdminToolbarPortlet .UIHorizontalTabs .UITab {
14 years, 11 months
gatein SVN: r1233 - in portal/trunk: portlet/exoadmin/src/main/java/org/exoplatform/toolbar/webui/component and 1 other directories.
by do-not-reply@jboss.org
Author: hoang_to
Date: 2010-01-12 05:25:00 -0500 (Tue, 12 Jan 2010)
New Revision: 1233
Modified:
portal/trunk/component/portal/src/main/java/org/exoplatform/portal/config/UserACL.java
portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/toolbar/webui/component/UIAdminToolbarPortlet.java
portal/trunk/portlet/exoadmin/src/main/webapp/groovy/admintoolbar/webui/component/UIAdminToolbarPortlet.gtmpl
Log:
GTNPORTAL-466: The site editor menu needs to provide contextual display of its items
Modified: portal/trunk/component/portal/src/main/java/org/exoplatform/portal/config/UserACL.java
===================================================================
--- portal/trunk/component/portal/src/main/java/org/exoplatform/portal/config/UserACL.java 2010-01-12 10:11:08 UTC (rev 1232)
+++ portal/trunk/component/portal/src/main/java/org/exoplatform/portal/config/UserACL.java 2010-01-12 10:25:00 UTC (rev 1233)
@@ -59,7 +59,7 @@
private String navigationCreatorMembershipType_;
private List<String> mandatoryGroups_;
-
+
private List<String> mandatoryMSTypes_;
private PortalACLPlugin portalACLPlugin;
@@ -101,7 +101,7 @@
{
mandatoryGroups_ = new ArrayList<String>();
}
-
+
ValuesParam mandatoryMSTypesParam = params.getValuesParam("mandatory.mstypes");
if (mandatoryMSTypesParam != null)
mandatoryMSTypes_ = mandatoryMSTypesParam.getValues();
@@ -213,7 +213,7 @@
{
return mandatoryGroups_;
}
-
+
public List<String> getMandatoryMSTypes()
{
return mandatoryMSTypes_;
@@ -269,6 +269,30 @@
return hasEditPermission(getIdentity(), page);
}
+ /**
+ *
+ * Minh Hoang TO - This method is equivalent to
+ * <code>hasEditPermission(Page)</code>. It allows us to check edit
+ * permission with a UIPage, without converting UIPage into Page via
+ * PortalDataMapper
+ *
+ */
+ public boolean hasEditPermissionOnPage(String ownerType, String ownerId, String editPermExpression)
+ {
+ Identity identity = this.getIdentity();
+
+ if (PortalConfig.USER_TYPE.equals(ownerType))
+ {
+ if (ownerId.equals(identity.getUserId()))
+ {
+ return true;
+ }
+ return false;
+ }
+
+ return hasPermission(identity, editPermExpression);
+ }
+
public boolean hasPermission(String expPerm)
{
return hasPermission(getIdentity(), expPerm);
@@ -367,8 +391,9 @@
String expAdminGroup = getAdminGroups();
String expPerm = null;
- //Check to see whether current user is member of admin group or not, if so grant
- //edit permission for group navigation for that user.
+ // Check to see whether current user is member of admin group or not,
+ // if so grant
+ // edit permission for group navigation for that user.
if (expAdminGroup != null)
{
expAdminGroup = expAdminGroup.startsWith("/") ? expAdminGroup : "/" + expAdminGroup;
Modified: portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/toolbar/webui/component/UIAdminToolbarPortlet.java
===================================================================
--- portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/toolbar/webui/component/UIAdminToolbarPortlet.java 2010-01-12 10:11:08 UTC (rev 1232)
+++ portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/toolbar/webui/component/UIAdminToolbarPortlet.java 2010-01-12 10:25:00 UTC (rev 1233)
@@ -19,8 +19,15 @@
package org.exoplatform.toolbar.webui.component;
+import org.exoplatform.portal.config.UserACL;
import org.exoplatform.portal.config.model.PageNavigation;
+import org.exoplatform.portal.webui.page.UIPage;
+import org.exoplatform.portal.webui.page.UIPageBody;
import org.exoplatform.portal.webui.util.Util;
+import org.exoplatform.portal.webui.workspace.UIPortalApplication;
+import org.exoplatform.portal.webui.workspace.UIWorkingWorkspace;
+import org.exoplatform.webui.application.WebuiApplication;
+import org.exoplatform.webui.application.WebuiRequestContext;
import org.exoplatform.webui.config.annotation.ComponentConfig;
import org.exoplatform.webui.core.UIPortletApplication;
import org.exoplatform.webui.core.lifecycle.UIApplicationLifecycle;
@@ -28,6 +35,9 @@
@ComponentConfig(lifecycle = UIApplicationLifecycle.class, template = "app:/groovy/admintoolbar/webui/component/UIAdminToolbarPortlet.gtmpl")
public class UIAdminToolbarPortlet extends UIPortletApplication
{
+ // Minh Hoang TO
+ // TODO: Add a ThreadLocal cache to avoid double invocation of editPermission
+ // check ( one in processRender method, and one in Groovy template )
public UIAdminToolbarPortlet() throws Exception
{
@@ -42,4 +52,50 @@
return null;
return Util.getUIPortal().getNavigations().get(0);
}
+
+ @Override
+ public void processRender(WebuiApplication app, WebuiRequestContext context) throws Exception
+ {
+ // A user could view the toolbar portlet iff he/she has edit permission
+ // either on
+ // 'active' page or 'active' portal
+ if (hasEditPermissionOnNavigation() || hasEditPermissionOnPage())
+ {
+ super.processRender(app, context);
+ }
+ }
+
+ private boolean hasEditPermissionOnNavigation() throws Exception
+ {
+ PageNavigation selectedNavigation = getSelectedNavigation();
+ UIPortalApplication portalApp = Util.getUIPortalApplication();
+ UserACL userACL = portalApp.getApplicationComponent(UserACL.class);
+ if (selectedNavigation == null || userACL == null)
+ {
+ return false;
+ }
+ else
+ {
+ return userACL.hasEditPermission(selectedNavigation);
+ }
+ }
+
+ private boolean hasEditPermissionOnPage() throws Exception
+ {
+ UIPortalApplication portalApp = Util.getUIPortalApplication();
+ UIWorkingWorkspace uiWorkingWS = portalApp.getChildById(UIPortalApplication.UI_WORKING_WS_ID);
+ UIPageBody pageBody = uiWorkingWS.findFirstComponentOfType(UIPageBody.class);
+ UIPage uiPage = (UIPage)pageBody.getUIComponent();
+
+ if (uiPage == null)
+ {
+ return false;
+ }
+ else
+ {
+ UserACL userACL = portalApp.getApplicationComponent(UserACL.class);
+ return userACL.hasEditPermissionOnPage(uiPage.getOwnerType(), uiPage.getOwnerId(), uiPage.getEditPermission());
+ }
+ }
+
}
Modified: portal/trunk/portlet/exoadmin/src/main/webapp/groovy/admintoolbar/webui/component/UIAdminToolbarPortlet.gtmpl
===================================================================
--- portal/trunk/portlet/exoadmin/src/main/webapp/groovy/admintoolbar/webui/component/UIAdminToolbarPortlet.gtmpl 2010-01-12 10:11:08 UTC (rev 1232)
+++ portal/trunk/portlet/exoadmin/src/main/webapp/groovy/admintoolbar/webui/component/UIAdminToolbarPortlet.gtmpl 2010-01-12 10:25:00 UTC (rev 1233)
@@ -20,6 +20,9 @@
String editSiteLayout = _ctx.appRes("UIAdminToolbarPortlet.action.EditSiteLayout");
String editorLabel = _ctx.appRes("UIAdminToolbarPortlet.action.Editor");
+ boolean userCouldEditNavigation = uicomponent.hasEditPermissionOnNavigation();
+ boolean userCouldEditPage = uicomponent.hasEditPermissionOnPage();
+
PageNavigation selectedNav = uicomponent.getSelectedNavigation();
if (selectedNav != null) {
editorLabel = _ctx.appRes("UIAdminToolbarPortlet.action." + selectedNav.getOwnerType() + ".Editor");
@@ -35,15 +38,23 @@
</div>
<div class="MenuItemContainer" style="position: absolute; display:none;">
<div class="SubBlock">
- <div class="MenuItem">
- <a href="javascript:ajaxGet(eXo.env.server.createPortalURL('UIWorkingWorkspace', 'PageCreationWizard', true))" title="" class="ItemIcon AddPageIcon">$addPageLabel</a>
- </div>
- <div class="MenuItem">
- <a href="javascript:ajaxGet(eXo.env.server.createPortalURL('UIWorkingWorkspace', 'EditCurrentPage', true))" title="" class="ItemIcon EditPageIcon">$editPageLabel</a>
- </div>
- <div class="MenuItem">
- <a href="javascript:ajaxGet(eXo.env.server.createPortalURL('UIWorkingWorkspace', 'EditInline', true))" title="" class="ItemIcon EditSiteIcon">$editSiteLayout</a>
- </div>
+ <% if(userCouldEditNavigation){ %>
+ <div class="MenuItem">
+ <a href="javascript:ajaxGet(eXo.env.server.createPortalURL('UIWorkingWorkspace', 'PageCreationWizard', true))" title="" class="ItemIcon AddPageIcon">$addPageLabel</a>
+ </div>
+ <% } %>
+
+ <% if(userCouldEditPage){ %>
+ <div class="MenuItem">
+ <a href="javascript:ajaxGet(eXo.env.server.createPortalURL('UIWorkingWorkspace', 'EditCurrentPage', true))" title="" class="ItemIcon EditPageIcon">$editPageLabel</a>
+ </div>
+ <% } %>
+
+ <% if(userCouldEditNavigation){ %>
+ <div class="MenuItem">
+ <a href="javascript:ajaxGet(eXo.env.server.createPortalURL('UIWorkingWorkspace', 'EditInline', true))" title="" class="ItemIcon EditSiteIcon">$editSiteLayout</a>
+ </div>
+ <% } %>
</div>
</div>
</div>
14 years, 11 months
gatein SVN: r1232 - in portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component: view/UIToolbarContainer and 1 other directory.
by do-not-reply@jboss.org
Author: thuy.nguyen
Date: 2010-01-12 05:11:08 -0500 (Tue, 12 Jan 2010)
New Revision: 1232
Modified:
portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/customization/UIPortalToolPanel/Stylesheet.css
portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UIToolbarContainer/Stylesheet.css
Log:
GTNPORTAL-468: IE7: Lost create new page form when move cursor to step navigation bar
Modified: portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/customization/UIPortalToolPanel/Stylesheet.css
===================================================================
--- portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/customization/UIPortalToolPanel/Stylesheet.css 2010-01-12 09:36:10 UTC (rev 1231)
+++ portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/customization/UIPortalToolPanel/Stylesheet.css 2010-01-12 10:11:08 UTC (rev 1232)
@@ -33,12 +33,10 @@
_height: 100%;
}
-.UIPortalToolPanel .Body .PageDecoratorContainer {
+.UIEditInlineWS .UIPortalToolPanel .PageDecoratorContainer {
}
.UIPortalToolPanel .Body .PageDecoratorContent {
- min-width: 100px;
- overflow: auto;
}
.UIPortalToolPanel .Body .UIPage {
Modified: portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UIToolbarContainer/Stylesheet.css
===================================================================
--- portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UIToolbarContainer/Stylesheet.css 2010-01-12 09:36:10 UTC (rev 1231)
+++ portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UIToolbarContainer/Stylesheet.css 2010-01-12 10:11:08 UTC (rev 1232)
@@ -83,8 +83,8 @@
padding-left: 2px; /* orientation=rt */
text-align: left; /* orientation=lt */
text-align: right; /* orientation=rt */
- float: none;
-
+ float: none; /* orientation=lt */
+ !float: left; /* orientation=rt */
}
/****************************/
14 years, 11 months