You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-scm@portals.apache.org by dd...@apache.org on 2005/02/21 01:30:21 UTC

svn commit: r154581 [3/3] - in portals/pluto/trunk/portal: ./ src/java/org/apache/commons/ src/java/org/apache/commons/fileupload/ src/java/org/apache/pluto/portlet/ src/java/org/apache/pluto/portlet/admin/ src/java/org/apache/pluto/portlet/admin/bean/ src/java/org/apache/pluto/portlet/admin/controller/ src/java/org/apache/pluto/portlet/admin/model/ src/java/org/apache/pluto/portlet/admin/services/ src/java/org/apache/pluto/portlet/admin/taglib/ src/java/org/apache/pluto/portlet/admin/util/ src/webapp/ src/webapp/WEB-INF/ src/webapp/WEB-INF/aggregation/ src/webapp/WEB-INF/data/

Added: portals/pluto/trunk/portal/src/java/org/apache/pluto/portlet/admin/util/PlutoAdminContext.java
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/portal/src/java/org/apache/pluto/portlet/admin/util/PlutoAdminContext.java?view=auto&rev=154581
==============================================================================
--- portals/pluto/trunk/portal/src/java/org/apache/pluto/portlet/admin/util/PlutoAdminContext.java (added)
+++ portals/pluto/trunk/portal/src/java/org/apache/pluto/portlet/admin/util/PlutoAdminContext.java Sun Feb 20 16:30:14 2005
@@ -0,0 +1,176 @@
+/*
+ * Copyright 2003,2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pluto.portlet.admin.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.pluto.portlet.admin.PlutoAdminException;
+import org.apache.pluto.portlet.admin.PlutoAdminLogger;
+import org.apache.pluto.portlet.admin.PlutoAdminConstants;
+
+/**
+ * A singleton factory that holds methods to get various data on
+ * the Pluto install such as the path to the Pluto home directory
+ * held within properties files. A HashMap cache is used to store
+ * the properties (as a Properties object) when they are first
+ * loaded.
+ *
+ * @author Craig Doremus
+ *
+ */
+public class PlutoAdminContext  {
+
+	private static final String CLASS_NAME = "PlutoAdminContext";
+	private static Map _cache = new HashMap();
+	private static PlutoAdminContext _instance = new PlutoAdminContext();
+
+	/**
+	 *
+	 */
+	private PlutoAdminContext() {
+	}
+
+	public static PlutoAdminContext getInstance(){
+		return _instance;
+	}
+
+	/**
+	 * Accessor for the full path to the pageregistry.xml file using
+	 * the getPlutoHome() method.
+	 *
+	 * @return The absolute path to pageregistry.xml
+	 * @see #getPlutoHome()
+	 */
+	public String getPageRegistryPath() {
+		String path = getPlutoHome() + PlutoAdminConstants.FS + getRelDataDir() + PlutoAdminConstants.FS + getProperties().getProperty("pageregistry-file");
+		return path;
+	}
+
+	/**
+	 * Accessor for the full path to the portletentityregistry.xml file using
+	 * the getPlutoHome() method.
+	 *
+	 * @return The absolute path to portletentityregistry.xml
+	 * @see #getPlutoHome()
+	 */
+	public String getPortletEntityRegistryPath() {
+		String path = getPlutoHome() + PlutoAdminConstants.FS + getRelDataDir() + PlutoAdminConstants.FS + getProperties().getProperty("portletentityregistry-file");
+		return path;
+	}
+
+	/**
+	 * Uses properties in pluto-admin.properties to get the
+	 * full path to the installed Pluto home directory, which in
+	 * Tomcat is Pluto's webapps directory (usually 'pluto').
+	 * @return The absolute path to the directory where the Pluto
+	 * container is installed.
+	 */
+	public String getPlutoHome(){
+		String plutoHome = null;
+		Properties props = getProperties();
+		String plutoContext = props.getProperty("pluto-web-context");
+		plutoHome = getWebappsPath() + PlutoAdminConstants.FS + plutoContext;
+		return plutoHome;
+	}
+
+	/**
+	 * Uses properties in pluto-admin.properties to get the
+	 * full path to the installed Pluto home directory, which in
+	 * Tomcat is Pluto's webapps directory (usually 'pluto').
+	 * @return The absolute path to the directory where the Pluto
+	 * container is installed.
+	 */
+	public String getWebappsPath(){
+		String path = null;
+		Properties props = getProperties();
+//		String tomcatHome = props.getProperty("tomcat-home");
+		String tomcatHome = getTomcatHome();
+		path = tomcatHome + "/webapps";
+		return path;
+	}
+
+	/**
+	 * Returns the Properties object from a properties file that is in the
+	 * classpath. After it's first access, the properties are stored
+	 * in a cache.
+	 *
+	 * @param propFileName Name of the properties file.
+	 * @return Properties The filled properties object
+	 * @throws IOException If there is a problem loading the properties
+	 * from the file
+	 * @throws NullPointerException If the InputStream accessing the properties
+	 * file is null.
+	 */
+	public Properties getProperties(String propFileName){
+		final String METHOD_NAME = "getProperties(propFileName)";
+		Properties props = null;
+		//retreive from cache if available
+		props = (Properties)_cache.get(propFileName);
+		if ( props == null) {
+	    //get the properties from prop file
+	    InputStream stream = PlutoAdminContext.class.getClassLoader().getResourceAsStream(propFileName);
+	    if (stream == null) {
+	    	String logMsg = "Null InputStream." +
+	    	" Please make sure the properties file exists and is in the classpath.";
+				NullPointerException e = new NullPointerException(logMsg);
+	    		PlutoAdminLogger.logError(CLASS_NAME, METHOD_NAME, e);
+				throw e;
+			}
+	    props = new Properties();
+			try {
+				props.load(stream);
+			} catch (IOException e) {
+				PlutoAdminLogger.logError(CLASS_NAME, METHOD_NAME, e);
+				throw new PlutoAdminException(e);
+			}
+			//add props to the cache
+			_cache.put(propFileName, props);
+			return props;
+		} else {
+			return props;
+		}
+	}
+
+	public Properties getProperties(){
+		return getProperties(PlutoAdminConstants.PROP_FILENAME);
+	}
+
+	private String getRelDataDir(){
+		String dir = getProperties().getProperty("data-dir-relative-path");
+		return dir;
+	}
+
+	public String getPortletContextsPath() {
+		String path = getPlutoHome() + PlutoAdminConstants.FS + getRelDataDir() + PlutoAdminConstants.FS + getProperties().getProperty("portletcontexts-file");
+		return path;
+	}
+
+	public String getTomcatHome(){
+		final String METHOD_NAME = "getTomcatHome()";
+		Properties props = System.getProperties();
+		String home = (String)props.get("catalina.base");
+		if (home == null) {
+			String msg = "The System Property catalina.home has not been set!";
+			PlutoAdminLogger.logError(CLASS_NAME, METHOD_NAME, msg);
+			throw new PlutoAdminException(msg);
+		}
+		return home;
+	}
+}

Added: portals/pluto/trunk/portal/src/java/org/apache/pluto/portlet/admin/util/PortletApplicationEntityImplComparator.java
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/portal/src/java/org/apache/pluto/portlet/admin/util/PortletApplicationEntityImplComparator.java?view=auto&rev=154581
==============================================================================
--- portals/pluto/trunk/portal/src/java/org/apache/pluto/portlet/admin/util/PortletApplicationEntityImplComparator.java (added)
+++ portals/pluto/trunk/portal/src/java/org/apache/pluto/portlet/admin/util/PortletApplicationEntityImplComparator.java Sun Feb 20 16:30:14 2005
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2003,2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pluto.portlet.admin.util;
+
+import java.util.Comparator;
+
+import org.apache.pluto.portalImpl.om.entity.impl.PortletApplicationEntityImpl;
+import org.apache.pluto.portlet.admin.BaseAdminObject;
+
+/**
+ * Implementation of Comparator for comparing Castor
+ * PortletApplicationEntityImp instances.
+ * .
+ *
+ * @author Craig Doremus
+ * @see org.apache.pluto.portalImpl.om.entity.impl.PortletApplicationEntityImpl
+ */
+public class PortletApplicationEntityImplComparator extends BaseAdminObject implements Comparator {
+
+	private static final String CLASS_NAME = "PortletApplicationEntityImplComparator";
+	public PortletApplicationEntityImplComparator() {
+		super(CLASS_NAME);
+	}
+	/**
+	 * Implementation method
+	 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
+	 */
+	public int compare(Object obj1, Object obj2) {
+		if (!(obj1 instanceof PortletApplicationEntityImpl) || !(obj2 instanceof PortletApplicationEntityImpl)) {
+			throw new ClassCastException("Wrong class type used for PortletApplicationEntityImplComparator");
+		} else {
+			PortletApplicationEntityImpl app1 = (PortletApplicationEntityImpl)obj1;
+			Integer app1ID = new Integer(Integer.parseInt(app1.getCastorId()));
+			PortletApplicationEntityImpl app2 = (PortletApplicationEntityImpl)obj2;
+			Integer app2ID = new Integer(Integer.parseInt(app2.getCastorId()));
+			return app1ID.compareTo(app2ID);
+		}
+	}
+
+}

Modified: portals/pluto/trunk/portal/src/webapp/WEB-INF/aggregation/Banner.jsp
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/portal/src/webapp/WEB-INF/aggregation/Banner.jsp?view=diff&r1=154580&r2=154581
==============================================================================
Binary files - no diff available.

Modified: portals/pluto/trunk/portal/src/webapp/WEB-INF/data/pageregistry.xml
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/portal/src/webapp/WEB-INF/data/pageregistry.xml?view=diff&r1=154580&r2=154581
==============================================================================
--- portals/pluto/trunk/portal/src/webapp/WEB-INF/data/pageregistry.xml (original)
+++ portals/pluto/trunk/portal/src/webapp/WEB-INF/data/pageregistry.xml Sun Feb 20 16:30:14 2005
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!-- 
-Copyright 2004 The Apache Software Foundation
+Copyright 2004,2005 The Apache Software Foundation
 Licensed  under the  Apache License,  Version 2.0  (the "License");
 you may not use  this file  except in  compliance with the License.
 You may obtain a copy of the License at 
@@ -44,5 +44,33 @@
 
     </fragment>
 
+
+    <fragment name="adminportletapp" type="page">
+        <navigation>
+            <title>Admin</title>
+            <description>Used for deploying portlets to Pluto</description>
+        </navigation>
+
+        <fragment name="row" type="row">
+
+            <fragment name="col1" type="column">
+
+                <fragment name="p1" type="portlet">
+                    <property name="portlet" value="5.0"/>
+                </fragment>
+
+                <fragment name="p2" type="portlet">
+                    <property name="portlet" value="5.1"/>
+                </fragment>
+
+                <fragment name="p3" type="portlet">
+                    <property name="portlet" value="5.2"/>
+                </fragment>
+
+            </fragment>
+
+        </fragment>
+
+    </fragment>
 
 </portal>

Modified: portals/pluto/trunk/portal/src/webapp/WEB-INF/data/portletcontexts.txt
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/portal/src/webapp/WEB-INF/data/portletcontexts.txt?view=diff&r1=154580&r2=154581
==============================================================================
--- portals/pluto/trunk/portal/src/webapp/WEB-INF/data/portletcontexts.txt (original)
+++ portals/pluto/trunk/portal/src/webapp/WEB-INF/data/portletcontexts.txt Sun Feb 20 16:30:14 2005
@@ -1 +1,2 @@
-/testsuite
\ No newline at end of file
+/testsuite
+/pluto

Modified: portals/pluto/trunk/portal/src/webapp/WEB-INF/data/portletentityregistry.xml
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/portal/src/webapp/WEB-INF/data/portletentityregistry.xml?view=diff&r1=154580&r2=154581
==============================================================================
--- portals/pluto/trunk/portal/src/webapp/WEB-INF/data/portletentityregistry.xml (original)
+++ portals/pluto/trunk/portal/src/webapp/WEB-INF/data/portletentityregistry.xml Sun Feb 20 16:30:14 2005
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0"?>
 <!-- 
-Copyright 2004 The Apache Software Foundation
+Copyright 2004,2005 The Apache Software Foundation
 Licensed  under the  Apache License,  Version 2.0  (the "License");
 you may not use  this file  except in  compliance with the License.
 You may obtain a copy of the License at 
@@ -21,10 +21,21 @@
         <portlet id="1">
             <definition-id>testsuite.TestPortlet1</definition-id>
             <preferences>
+                <pref-name>TEST</pref-name>
+                <pref-value>TEST_VALUE</pref-value>
+                <pref-value>ANOTHER</pref-value>
+                <read-only>false</read-only>
+            </preferences>
+            <preferences>
                 <pref-name>TestName4</pref-name>
                 <pref-value>TestValue4</pref-value>
                 <read-only>true</read-only>
             </preferences>
+            <preferences>
+                <pref-name>org.apache.pluto.testsuite.BOGUS_KEY</pref-name>
+                <pref-value>notTheOriginal</pref-value>
+                <read-only>false</read-only>
+            </preferences>
         </portlet>
     </application>
     <application id="4">
@@ -36,6 +47,18 @@
                 <pref-value>TestValue4</pref-value>
                 <read-only>true</read-only>
             </preferences>
+        </portlet>
+    </application>
+    <application id="5">
+        <definition-id>pluto</definition-id>
+        <portlet id="0">
+            <definition-id>pluto.deploywar</definition-id>
+        </portlet>
+        <portlet id="1">
+            <definition-id>pluto.portletentityregistry</definition-id>
+        </portlet>
+        <portlet id="2">
+            <definition-id>pluto.pageregistry</definition-id>
         </portlet>
     </application>
 </portlet-entity-registry>

Modified: portals/pluto/trunk/portal/src/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/portal/src/webapp/WEB-INF/web.xml?view=diff&r1=154580&r2=154581
==============================================================================
--- portals/pluto/trunk/portal/src/webapp/WEB-INF/web.xml (original)
+++ portals/pluto/trunk/portal/src/webapp/WEB-INF/web.xml Sun Feb 20 16:30:14 2005
@@ -41,7 +41,52 @@
         <description>Test servlet for TCK Tests</description>
         <servlet-class>org.apache.pluto.portalImpl.servlet.TCKdriver</servlet-class>
     </servlet>
-
+    <servlet>
+        <servlet-name>portletentityregistry</servlet-name>
+        <display-name>portletentityregistry Wrapper</display-name>
+        <description>Automated generated Portlet Wrapper</description>
+        <servlet-class>org.apache.pluto.core.PortletServlet</servlet-class>
+        <init-param>
+            <param-name>portlet-class</param-name>
+            <param-value>org.apache.pluto.portlet.admin.controller.PortletEntityRegistryPortlet</param-value>
+        </init-param>
+        <init-param>
+            <param-name>portlet-guid</param-name>
+            <param-value>pluto.portletentityregistry</param-value>
+        </init-param>
+    </servlet>
+    <servlet>
+        <servlet-name>pageregistry</servlet-name>
+        <display-name>pageregistry Wrapper</display-name>
+        <description>Automated generated Portlet Wrapper</description>
+        <servlet-class>org.apache.pluto.core.PortletServlet</servlet-class>
+        <init-param>
+            <param-name>portlet-class</param-name>
+            <param-value>org.apache.pluto.portlet.admin.controller.PageRegistryPortlet</param-value>
+        </init-param>
+        <init-param>
+            <param-name>portlet-guid</param-name>
+            <param-value>pluto.pageregistry</param-value>
+        </init-param>
+    </servlet>
+    <servlet>
+        <servlet-name>deploywar</servlet-name>
+        <display-name>deploywar Wrapper</display-name>
+        <description>Automated generated Portlet Wrapper</description>
+        <servlet-class>org.apache.pluto.core.PortletServlet</servlet-class>
+        <init-param>
+            <param-name>portlet-class</param-name>
+            <param-value>org.apache.pluto.portlet.admin.controller.DeployWarPortlet</param-value>
+        </init-param>
+        <init-param>
+            <param-name>portlet-guid</param-name>
+            <param-value>pluto.deploywar</param-value>
+        </init-param>
+    </servlet>
+ 
+    <!-- ======================= -->
+    <!-- Portal Driver Servlets  -->
+    <!-- ======================= -->
     <servlet-mapping>
        <servlet-name>pluto</servlet-name>
        <url-pattern>/portal/*</url-pattern>
@@ -55,18 +100,28 @@
         <url-pattern>/tck/*</url-pattern>
     </servlet-mapping>
 
-    <security-constraint>
-        <web-resource-collection>
-            <web-resource-name></web-resource-name>
-            <url-pattern>/login_success.jsp</url-pattern>
-            <http-method>GET</http-method>
-            <http-method>POST</http-method>
-            <http-method>PUT</http-method>
-        </web-resource-collection>
-        <auth-constraint>
-            <role-name>tomcat</role-name>
-        </auth-constraint>
-    </security-constraint>
+    <!-- ======================= -->
+    <!-- Administrative Portlets -->
+    <!-- ======================= -->
+    <servlet-mapping>
+        <servlet-name>deploywar</servlet-name>
+        <url-pattern>/deploywar/*</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>portletentityregistry</servlet-name>
+        <url-pattern>/portletentityregistry/*</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>pageregistry</servlet-name>
+        <url-pattern>/pageregistry/*</url-pattern>
+    </servlet-mapping>
+
+    <taglib>
+      <taglib-uri>http://portals.apache.org/pluto/admin</taglib-uri>
+      <taglib-location>/WEB-INF/pluto-admin.tld</taglib-location>
+    </taglib>
 
     <security-constraint>
       <web-resource-collection>

Modified: portals/pluto/trunk/portal/src/webapp/portlet-spec-1.0.css
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/portal/src/webapp/portlet-spec-1.0.css?view=diff&r1=154580&r2=154581
==============================================================================
--- portals/pluto/trunk/portal/src/webapp/portlet-spec-1.0.css (original)
+++ portals/pluto/trunk/portal/src/webapp/portlet-spec-1.0.css Sun Feb 20 16:30:14 2005
@@ -1,5 +1,5 @@
 /*
-Copyright 2004 The Apache Software Foundation
+Copyright 2004,2005 The Apache Software Foundation
 Licensed  under the  Apache License,  Version 2.0  (the "License");
 you may not use  this file  except in  compliance with the License.
 You may obtain a copy of the License at
@@ -45,12 +45,20 @@
 /* Font attributes for the "normal" fragment font. Used for the display of non-accentuated information. 
 Example: Normal Text */
 .portlet-font {
-
+	font-family: Arial,Helvetica,sans-serif;
+	font-style: normal;
+	font-weight: normal;
+	font-size: 10pt;
+	color:black;
 }
 
 /* Font attributes similar to the portlet-font but the color is lighter. Example: Dim Text */
 .portlet-font-dim {
-
+	font-family: Arial,Helvetica,sans-serif;
+	font-style: normal;
+	font-weight: normal;
+	font-size: 10pt;
+	color:lightgrey;
 }
 
 /*****************************************************************************************
@@ -60,43 +68,72 @@
 ******************************************************************************************/
 /* Status of the current operation. Example: Progress: 80% */
 .portlet-msg-status {
-
+	font-family: Arial,Helvetica,sans-serif;
+	font-style: normal;
+	font-weight: bold;
+	font-size:10pt;
+   	color:black;
 }
 
 /* Help messages, general additional information, etc. Example: Info about */
 .portlet-msg-info {
-
+	font-family: Arial,Helvetica,sans-serif;
+	font-style: normal;
+	font-weight: bold;
+	font-size:10pt;
+   	color:blue;
 }
 
 /* Error messages. 
 Example: Portlet not available*/
 .portlet-msg-error {
-
+	font-family: Arial,Helvetica,sans-serif;
+	font-style: normal;
+	font-weight: bold;
+	font-size:8pt;
+   	color:red;
 }
 
 /* Warning messages. 
 Example: Timeout occurred, try again later */
 .portlet-msg-alert {
-
+	font-family: Arial,Helvetica,sans-serif;
+	font-style: normal;
+	font-weight: bold;
+	font-size:10pt;
+   	color:yellow;
 }
 
 /* Verification of the successful completion of a task. Example: Operation completed successfully */
 .portlet-msg-success {
-
+	font-family: Arial,Helvetica,sans-serif;
+	font-style: normal;
+	font-weight: bold;
+	font-size:10pt;
+   	color:green;
 }
 
 /*****************************************************************************************
 PLT.C.4 Sections
-Section style definitions affect the rendering of markup sections such as table, div and 5 
+Section style definitions affect the rendering of markup sections such as table, div and  
 span (alignment, borders, background color, etc) as well as their text attributes.
 ******************************************************************************************/
 /* Table or section header */
 .portlet-section-header {
-
+	font-family: Arial,Helvetica,sans-serif;
+	font-style: normal;
+	font-weight: bold;
+	font-size: 16pt;
+	margin-top: 0; 
+	margin-bottom: 1em;
 }
 
 /* Normal text in a table cell */
 .portlet-section-body {
+	font-family: Arial,Helvetica,sans-serif;
+	font-style: normal;
+	font-weight: normal;
+	font-size: 12pt;
 
 }
 
@@ -112,7 +149,10 @@
 
 /* Text of a subheading */
 .portlet-section-subheader {
-
+	font-family: Arial,Helvetica,sans-serif;
+	font-style: normal;
+	font-weight: bold;
+	font-size: 12pt;
 }
 
 /* Table or section footnote */
@@ -133,17 +173,29 @@
 ******************************************************************************************/
 /* Text used for the descriptive label of the whole form (not the labels for fields). */
 .portlet-form-label {
-
+	font-family: Arial,Helvetica,sans-serif;
+	font-style: normal;
+	font-weight: bold;
+	font-size: 12pt;
+	color: black;
 }
 
 /* Text of the user-input in an input field. */
 .portlet-form-input-field {
-
+	font-family: Arial,Helvetica,sans-serif;
+	font-style: normal;
+	font-weight: normal;
+	font-size: 10pt;
+	color: black;
 }
 
 /* Text on a button */
 .portlet-form-button {
-
+	font-family: Arial,Helvetica,sans-serif;
+	font-style: normal;
+	font-weight: normal;
+	font-size: 12pt;
+	color: black;
 }
 
 /* Text that appears beside a context dependent action icon. */
@@ -158,7 +210,11 @@
 
 /* Text for a separator of fields (e.g. checkboxes, etc.) */
 .portlet-form-field-label {
-
+	font-family: Arial,Helvetica,sans-serif;
+	font-style: normal;
+	font-weight: bold;
+	font-size: 10pt;
+	color: black;
 }
 
 /* Text for a field (not input field, e.g. checkboxes, etc) */