Some ajustments for the admin.css.

git-svn-id: https://svn.libreccm.org/ccm/trunk@2515 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2014-02-11 11:00:44 +00:00
parent e87d1fb2dc
commit 7d84a5dbfe
16 changed files with 312 additions and 281 deletions

45
1 100644
View File

@ -0,0 +1,45 @@
Buildfile: /home/jensp/pwi/openccm/ccm/trunk/build.xml
[echo] Project base directory is /home/jensp/pwi/openccm/ccm/trunk
[echo] web.xml file requested: web-sci.xml
start:
[java] Listening for transport dt_socket at address: 8000
[java] 02.02.2013 19:32:21 org.apache.catalina.core.AprLifecycleListener init
[java] INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /opt/sun-jdk-1.6.0.38/jre/lib/amd64/server:/opt/sun-jdk-1.6.0.38/jre/lib/amd64:/opt/sun-jdk-1.6.0.38/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
[java] 02.02.2013 19:32:21 org.apache.coyote.http11.Http11Protocol init
[java] INFO: Initializing Coyote HTTP/1.1 on http-8080
[java] 02.02.2013 19:32:21 org.apache.catalina.startup.Catalina load
[java] INFO: Initialization processed in 424 ms
[java] 02.02.2013 19:32:21 org.apache.catalina.core.StandardService start
[java] INFO: Starting service Catalina
[java] 02.02.2013 19:32:21 org.apache.catalina.core.StandardEngine start
[java] INFO: Starting Servlet Engine: Apache Tomcat/6.0.32
[java] 02.02.2013 19:32:21 org.apache.catalina.startup.HostConfig deployDescriptor
[java] INFO: Deploying configuration descriptor manager.xml
[java] 02.02.2013 19:32:21 org.apache.catalina.startup.HostConfig deployDescriptor
[java] INFO: Deploying configuration descriptor host-manager.xml
[java] 02.02.2013 19:32:21 org.apache.catalina.startup.HostConfig deployDirectory
[java] INFO: Deploying web application directory docs
[java] 02.02.2013 19:32:21 org.apache.catalina.startup.HostConfig deployDirectory
[java] INFO: Deploying web application directory examples
[java] 02.02.2013 19:32:21 org.apache.catalina.core.ApplicationContext log
[java] INFO: ContextListener: contextInitialized()
[java] 02.02.2013 19:32:21 org.apache.catalina.core.ApplicationContext log
[java] INFO: SessionListener: contextInitialized()
[java] 02.02.2013 19:32:21 org.apache.catalina.startup.HostConfig deployDirectory
[java] INFO: Deploying web application directory ROOT
[java] 2013-02-02 19:32:21,965 [ main] INFO web.CCMApplicationContextListener - Starting CCM Application.
[java] 2013-02-02 19:32:21,965 [ main] INFO web.CCMApplicationContextListener - Logging context parameter is: WEB-INF/conf/log4j.properties
[java] 2013-02-02 19:32:21,967 [ main] INFO web.CCMApplicationContextListener - BaseDir set to: /home/jensp/pwi/openccm/ccm/trunk/runtime/apache-tomcat-6.0.32/webapps/ROOT/
[java] com/arsdigita/content-section/ContentSection.pdl: line 117, column 37 [warning]: table already has primary key: com/arsdigita/content-section/ContentSection.pdl: line 43, column 38
[java] com/arsdigita/notification/Notification.pdl: line 37, column 10 [warning]: table already has primary key: com/arsdigita/notification/Notification.pdl: line 35, column 4
[java] com/arsdigita/notification/Notification.pdl: line 38, column 10 [warning]: table already has primary key: com/arsdigita/notification/Notification.pdl: line 35, column 4
[java]
[java] 02.02.2013 19:32:26 org.apache.coyote.http11.Http11Protocol start
[java] INFO: Starting Coyote HTTP/1.1 on http-8080
[java] 02.02.2013 19:32:26 org.apache.jk.common.ChannelSocket init
[java] INFO: JK: ajp13 listening on /0.0.0.0:8009
[java] 02.02.2013 19:32:26 org.apache.jk.server.JkMain start
[java] INFO: Jk running ID=0 time=0/12 config=null
[java] 02.02.2013 19:32:26 org.apache.catalina.startup.Catalina start
[java] INFO: Server startup in 5266 ms

View File

@ -138,7 +138,8 @@ public class Loader extends PackageLoader {
/**
*
* @return
* @return The email address of the administrator, as configured by
* {@link #setupAdministrator()}.
*/
private String getAdminEmail() {
return (String) get(m_adminEmail);
@ -146,7 +147,7 @@ public class Loader extends PackageLoader {
/**
*
* @return
* @return The identifier of the administrator as configured by {@link #setupAdministrator()}.
*/
private String getAdminIdentifier() {
return (String) get(m_adminIdent);

View File

@ -177,7 +177,7 @@ public abstract class BasicItemForm extends FormSection
// This can nowbe done by overwriting the getTitleLabel() method.
// (jensp 2011-01-28)
add(new Label(getTitleLabel()));
TextField titleWidget = new TextField(new TrimmedStringParameter(TITLE));
final TextField titleWidget = new TextField(new TrimmedStringParameter(TITLE));
titleWidget.addValidationListener(new NotNullValidationListener());
titleWidget.setOnFocus("if (this.form." + NAME + ".value == '') { "
+ " defaulting = true; this.form." + NAME
@ -185,6 +185,7 @@ public abstract class BasicItemForm extends FormSection
titleWidget.setOnKeyUp(
"if (defaulting) { this.form." + NAME
+ ".value = urlize(this.value) }");
titleWidget.setLabel(getTitleLabel());
titleWidget.setHint(getTitleHint());
add(titleWidget);
@ -193,7 +194,7 @@ public abstract class BasicItemForm extends FormSection
// This can now be accomplished by overwriting the getNameLabel() method.
// (jensp 2011-01-28)
add(new Label(getNameLabel()));
TextField nameWidget = new TextField(new TrimmedStringParameter(NAME));
final TextField nameWidget = new TextField(new TrimmedStringParameter(NAME));
nameWidget.addValidationListener(new NameValidationListener());
nameWidget.setMaxLength(190);
nameWidget.setOnFocus("defaulting = false");
@ -431,11 +432,11 @@ public abstract class BasicItemForm extends FormSection
}
/**
* Provides the text for the unser hint providing some detailed information
* Provides the text for the user hint providing some detailed information
* how to use this widget.
*
* This method can be overwritten to adjust the text for some content types.
* {@link getTitleLabel()}
* {@link #getTitleLabel()}
*
* @return
*/
@ -459,7 +460,7 @@ public abstract class BasicItemForm extends FormSection
* how to use this widget.
*
* This method can be overwritten to adjust the text for some content types.
* {@link getNameLabel()}
* {@link #getNameLabel()}
*
* @return
*/

View File

@ -19,22 +19,21 @@
package com.arsdigita.bebop;
import com.arsdigita.xml.Element;
import com.arsdigita.bebop.util.BebopConstants;
// This interface contains the XML element name of this class
// in a constant which is used when generating XML
import com.arsdigita.bebop.util.BebopConstants;
/**
* An abstract implementation of {@link Portlet} that captures
* default behavior for portlets defined by users of the {@link
* An abstract implementation of {@link Portlet} that captures default behavior for portlets defined
* by users of the {@link
* com.arsdigita.bebop.portal.Portal} component.
*
* <p>The {@link #generateXML} method in this class provides a default
* XML dressing around a Portlet. This dressing is used by Portal's
* stylesheet rules to generate a title and frame around each Portlet.
* Programmers looking to implement a Portlet should extend this class
* and override {@link #generateBodyXML}.</p>
* <p>
* The {@link #generateXML} method in this class provides a default XML dressing around a Portlet.
* This dressing is used by Portal's stylesheet rules to generate a title and frame around each
* Portlet. Programmers looking to implement a Portlet should extend this class and override
* {@link #generateBodyXML}.</p>
*
* @see com.arsdigita.bebop.portal.Portal
* @see com.arsdigita.bebop.portal.PortalModel
@ -62,11 +61,10 @@ public abstract class AbstractPortlet implements Portlet, BebopConstants {
public static final String NARROW_PROFILE = "narrow";
/**
* An implementation of {@link Portlet#generateXML} that provides
* a default Portlet mini-schema. Portlet implementers
* <em>cannot</em> override this method, as it is meant to give
* the Portal stylesheet something to grab on to. If you really
* want to go your own way, implement Portlet instead of extending
* An implementation of {@link Portlet#generateXML} that provides a default Portlet mini-schema.
* Portlet implementers
* <em>cannot</em> override this method, as it is meant to give the Portal stylesheet something
* to grab on to. If you really want to go your own way, implement Portlet instead of extending
* AbstractPortlet.
*
* <blockquote><pre>
@ -75,17 +73,18 @@ public abstract class AbstractPortlet implements Portlet, BebopConstants {
* &lt;/bebop:portlet&gt;
* </pre></blockquote>
*
* @param pageState the PageState representing the current
* request
* @param parentElement the Element to which to attach the XML
* that this method produces
* @pre pageState != null
* @pre parentElement != null
* @param pageState The PageState representing the current request. Must not be
* <code>null</code>.
* @param parentElement The Element to which to attach the XML that this method produces. Must
* not be <code>null</code>.
*
*
*/
public final void generateXML(PageState pageState,
Element parentElement) {
Element portletElement = parentElement.newChildElement(BEBOP_PORTLET,
Component.BEBOP_XML_NS);
@Override
public final void generateXML(final PageState pageState,
final Element parentElement) {
final Element portletElement = parentElement.newChildElement(BEBOP_PORTLET,
Component.BEBOP_XML_NS);
portletElement.addAttribute("title", getTitle());
portletElement.addAttribute("cellNumber",
Integer.toString(getCellNumber()));
@ -97,43 +96,40 @@ public abstract class AbstractPortlet implements Portlet, BebopConstants {
}
/**
* Generates XML for the body (not the frame) of this Portlet. It's
* the primary intention of this class that programmers override
* this particular method.
* Generates XML for the body (not the frame) of this Portlet. It's the primary intention of
* this class that programmers override this particular method.
*
* @param pageState the PageState representing the current request
* @param parentElement the Element to which to attach the XML
* that this method produces
* @pre pageState != null
* @pre parentElement != null
* @param pageState The PageState representing the current request. Must not be
* <code>null</code>.
* @param parentElement The Element to which to attach the XML that this method produces. Must
* not be <code>null</code>.
*/
protected abstract void generateBodyXML(PageState pageState,
Element parentElement);
/**
* Gets the cell number of this portlet. A cell is one of several
* distinct regions, often columns, in a portal's layout.
* Gets the cell number of this portlet. A cell is one of several distinct regions, often
* columns, in a portal's layout.
*
* @return the cell number of this portlet, or 1 if
* the cell number is not set.
* @return The cell number of this portlet, or 1 if the cell number is not set.
*/
public final int getCellNumber() {
return m_cellNumber;
}
/**
* Sets the cell number of this portlet. A cell is one of several
* distinct regions, often columns, in a portal's layout.
* Sets the cell number of this portlet. A cell is one of several distinct regions, often
* columns, in a portal's layout.
*
* @param cellNumber the cell number of this portlet
* @param cellNumber The cell number of this portlet
*/
public final void setCellNumber(int cellNumber) {
public final void setCellNumber(final int cellNumber) {
m_cellNumber = cellNumber;
}
/**
* Gets the sort key of this portlet. The sort key is used to
* order the portlets in a given cell.
* Gets the sort key of this portlet. The sort key is used to order the portlets in a given
* cell.
*
* @return the sort key of this portlet, or 0 if the sort key is not set.
*/
@ -142,22 +138,21 @@ public abstract class AbstractPortlet implements Portlet, BebopConstants {
}
/**
* Sets the sort key of this portlet. The sort key is used to
* order the portlets in a given cell.
* Sets the sort key of this portlet. The sort key is used to order the portlets in a given
* cell.
*
* @param sortKey the sort key of this portlet
*/
public final void setSortKey(int sortKey) {
public final void setSortKey(final int sortKey) {
m_sortKey = sortKey;
}
/**
* Gets the profile of this portlet, which describes the form
* factor of this portlet. There are two profiles, wide
* and narrow.
* Gets the profile of this portlet, which describes the form factor of this portlet. There are
* two profiles, wide and narrow.
*
* @return the profile of this portlet, or an empty string if the profile is not set.
*
* @return the profile of this portlet, or an empty string if the
* profile is not set.
* @post return != null
*/
public final String getProfile() {
@ -165,24 +160,23 @@ public abstract class AbstractPortlet implements Portlet, BebopConstants {
}
/**
* Sets the profile of this portlet. Profile describes the form
* factor of this portlet. There are two profiles, wide
* and narrow. Use {@link #WIDE_PROFILE} or {@link
* Sets the profile of this portlet. Profile describes the form factor of this portlet. There
* are two profiles, wide and narrow. Use {@link #WIDE_PROFILE} or {@link
* #NARROW_PROFILE} to specify the profile type.
*
* @param profile the profile of this portlet
* @pre profile != null
* @param profile The profile of this portlet. Must not be <code>null</code>.
*
*/
public final void setProfile(String profile) {
public final void setProfile(final String profile) {
m_profile = profile;
}
/**
* Gets the title of this portlet.
*
* @return the title of this portlet, or an empty string
* if the title is not set.
* @post return != null
* @return The title of this portlet, or an empty string if the title is not set. This method
* never returns <code>null</code>.
*
*/
public final String getTitle() {
return m_title;
@ -191,10 +185,10 @@ public abstract class AbstractPortlet implements Portlet, BebopConstants {
/**
* Sets the title of this portlet.
*
* @return the title of this portlet.
* @post return != null
* @param title The (new) title of this portlet.
*/
public final void setTitle(String title) {
public final void setTitle(final String title) {
m_title = title;
}
}

View File

@ -99,7 +99,7 @@ public abstract class BaseLink extends TextStylable
* @param child label component, text, image, etc.
* @param url
*/
public BaseLink(Component child, String url) {
public BaseLink(final Component child, final String url) {
super();
m_url = url;
m_child = child;
@ -111,7 +111,7 @@ public abstract class BaseLink extends TextStylable
* @param label as text
* @param url
*/
public BaseLink(String label, String url) {
public BaseLink(final String label, final String url) {
this(new Label(label), url);
}
@ -119,12 +119,12 @@ public abstract class BaseLink extends TextStylable
* Constructor.
*
* @param child
* @param l
* @param listener
*/
public BaseLink(Component child, PrintListener l) {
public BaseLink(final Component child, final PrintListener listener) {
this(child, "");
try {
addPrintListener(l);
addPrintListener(listener);
} catch (TooManyListenersException e) {
// Can't happen
throw new UncheckedWrapperException("Too many listeners: " + e.getMessage(), e);
@ -135,24 +135,24 @@ public abstract class BaseLink extends TextStylable
* Constructor.
*
* @param label
* @param l
* @param listener
*/
public BaseLink(String label, PrintListener l) {
this(new Label(label), l);
public BaseLink(final String label, final PrintListener listener) {
this(new Label(label), listener);
}
/**
* Constructor.
*
* @param l
* @param listener
*/
public BaseLink(PrintListener l) {
this("", l);
public BaseLink(final PrintListener listener) {
this("", listener);
}
@Override
public Object clone() throws CloneNotSupportedException {
BaseLink result = (BaseLink) super.clone();
final BaseLink result = (BaseLink) super.clone();
result.m_printListener = null;
return result;
}
@ -162,12 +162,12 @@ public abstract class BaseLink extends TextStylable
* Since the <code>PrintListener</code> is expected to modify the
* target of the <code>PrintEvent</code>, only one print listener can be
* set for a link.
* @param listener the print listener
* @param listener The print listener. Must not <code>null</code>.
* @throws IllegalArgumentException if <code>listener</code> is null.
* @throws TooManyListenersException if a print listener has previously been
* added.
* @pre listener != null */
public void addPrintListener(PrintListener listener)
*/
public void addPrintListener(final PrintListener listener)
throws IllegalStateException, TooManyListenersException {
if (listener == null) {
throw new IllegalArgumentException("Argument listener can not be null");
@ -183,14 +183,12 @@ public abstract class BaseLink extends TextStylable
* <code>listener</code> is not the listener that was added with {@link #addPrintListener
* addPrintListener}, an IllegalArgumentException will be thrown.
*
* @param listener the listener that was previously added with
* <code>addPrintListener</code>
* @throws IllegalArgumentException if
* <code>listener</code> is not the currently registered print listener or
* is
* <code>null</code>. @pre listener != null
* @param listener The listener that was previously added with <code>addPrintListener</code>.
* Must not be <code>null</code>.
* @throws IllegalArgumentException if <code>listener</code> is not the currently registered
* print listener or is <code>null</code>.
*/
public void removePrintListener(PrintListener listener)
public void removePrintListener(final PrintListener listener)
throws IllegalArgumentException {
if (listener == null) {
throw new IllegalArgumentException("listener can not be null");
@ -201,7 +199,7 @@ public abstract class BaseLink extends TextStylable
m_printListener = null;
}
protected BaseLink firePrintEvent(PageState state) {
protected BaseLink firePrintEvent(final PageState state) {
BaseLink l = this;
if (m_printListener != null) {
try {
@ -219,7 +217,7 @@ public abstract class BaseLink extends TextStylable
return m_child;
}
public void setChild(Component child) {
public void setChild(final Component child) {
Assert.isUnlocked(this);
m_child = child;
}
@ -228,7 +226,7 @@ public abstract class BaseLink extends TextStylable
return m_url;
}
public final void setTarget(String url) {
public final void setTarget(final String url) {
Assert.isUnlocked(this);
m_url = url;
@ -237,14 +235,14 @@ public abstract class BaseLink extends TextStylable
/**
* Sets the type of link this link represents.
*
* @param t the type of link
* @param type the type of link
*/
protected void setTypeAttr(String t) {
protected void setTypeAttr(final String type) {
Assert.isUnlocked(this);
setAttribute(TYPE_ATTR, t);
setAttribute(TYPE_ATTR, type);
}
protected abstract void generateURL(PageState state, Element parent);
protected abstract void generateURL(final PageState state, final Element parent);
/**
* <p>Generates a DOM fragment:
@ -253,17 +251,21 @@ public abstract class BaseLink extends TextStylable
* </pre>
* The <code>href</code> attribute contains the target the link
* should point to. The <code>type</code> attribute is used to
* give more finegrained control over which kind of link this element
* give more fine grained control over which kind of link this element
* represents. The types are <code>link</code> for a
* <code>Link</code>, <code>control</code> for a {@link ControlLink},
* and <code>toggle</code> for a {@link ToggleLink}. There may be
* additional attributes depending on what type of link this link
* represents.
*
* @param state The current {@link PageState}.
* @param parent The XML element to attach the XML to.
*
* @see ControlLink#generateXML
* @see ToggleLink#generateXML
*/
@Override
public void generateXML(PageState state, Element parent) {
public void generateXML(final PageState state, final Element parent) {
if (isVisible(state)) {
BaseLink target = firePrintEvent(state);
Element link = parent.newChildElement("bebop:link", BEBOP_XML_NS);
@ -278,7 +280,7 @@ public abstract class BaseLink extends TextStylable
}
}
private String getAbsoluteUrl(PageState ps, String sUrl) {
private String getAbsoluteUrl(final PageState state, final String sUrl) {
String sReturn = "";
if ((sUrl.indexOf(":") != -1) || sUrl.indexOf("/") == 0) {
@ -290,7 +292,7 @@ public abstract class BaseLink extends TextStylable
//get the current URL
String sThisURL = "";
try {
sThisURL = ps.stateAsURL();
sThisURL = state.stateAsURL();
} catch (java.io.IOException ioe) {
//ignore
}
@ -308,18 +310,23 @@ public abstract class BaseLink extends TextStylable
return sReturn;
}
//sets up no-JavaScript fallback HTML
protected void setupNoJavascriptURL(PageState ps, Element link) {
/**
* Sets up no-JavaScript fallback HTML
*
* @param state The current {@link PageState}.
* @param link The link element.
*/
protected void setupNoJavascriptURL(final PageState state, final Element link) {
String sURL = null;
if (m_sConfirmMsg.length() > 0
|| (m_confirmMsg != null && m_confirmMsg.localize().toString().length() > 0)) {
//if we want the confirm link, create the link
String sOkUrl = getAbsoluteUrl(ps, link.getAttribute(HREF));
String sOkUrl = getAbsoluteUrl(state, link.getAttribute(HREF));
String sCancelUrl = null;
try {
sCancelUrl = ps.stateAsURL();
sCancelUrl = state.stateAsURL();
} catch (java.io.IOException e) {
Assert.fail("Could not get current page state as URL");
}
@ -349,10 +356,10 @@ public abstract class BaseLink extends TextStylable
* more attributes than the ones {@link #generateXML generateXML}
* produces by default.
*
* @param state the current request
* @param link the XML element representing this link
* @param state The current request
* @param link The XML element representing this link
*/
protected void generateExtraXMLAttributes(PageState state, Element link) {
protected void generateExtraXMLAttributes(final PageState state, final Element link) {
}
/**
@ -360,12 +367,12 @@ public abstract class BaseLink extends TextStylable
* protection for this link</em>. Not for confirmation messages; Should call
* setConfirmation for that.
*
* @param value
* @pre value.toLowerCase().startsWith("return confirm(") == false
* @param value The confirmation link. To not use the value {@code return confirm(} with this
* method.
*
* @see #setConfirmation
*/
public void setOnClick(String value) {
public void setOnClick(final String value) {
//should not use this method to set confirmation messages--should
//use setConfirmation() instead, or else the javascript will break
if (value != null) {
@ -389,12 +396,10 @@ public abstract class BaseLink extends TextStylable
* Subsequent calls to setOnClick will undo the effect of this method.
*
* @param message the confirmation message presented to the user. This
* message cannot have an apostrophe or back slash
*
* @pre message.indexOf("'") == -1 && message.indexOf("\\") == -1
* message cannot have an apostrophe or back slash.
*
*/
public void setConfirmation(String message) {
public void setConfirmation(final String message) {
//make sure that the message doesn't have any apostrophe's
//or back slashes
@ -411,7 +416,7 @@ public abstract class BaseLink extends TextStylable
* Set a GlobalizedMessage as confirmation message
* @param msg
*/
public void setConfirmation(GlobalizedMessage msg) {
public void setConfirmation(final GlobalizedMessage msg) {
m_confirmMsg = msg;
}
@ -421,7 +426,7 @@ public abstract class BaseLink extends TextStylable
* @param state PageState
* @param link Parent element
*/
private void exportConfirmAttributes(PageState state, Element link) {
private void exportConfirmAttributes(final PageState state, final Element link) {
// If a confirmation message is set
if (m_sConfirmMsg.length() > 0 || m_confirmMsg != null) {
@ -445,7 +450,7 @@ public abstract class BaseLink extends TextStylable
}
}
public final void setNoJavascriptTarget(String sURL) {
public final void setNoJavascriptTarget(final String sURL) {
Assert.isUnlocked(this);
m_noJavascriptURL = sURL;
}

View File

@ -127,7 +127,6 @@ public class PooledConnectionSource implements ConnectionSource {
* cause problems (memory etc.) with PostgreSQL.
*/
try {
result.setAutoCommit(false);
} catch (SQLException ex) {
s_log.warn("Failed to set autocommit to false");

View File

@ -16,7 +16,6 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package com.arsdigita.web;
import com.arsdigita.runtime.CCMResourceManager;
@ -35,62 +34,59 @@ import org.apache.log4j.LogManager;
import org.apache.log4j.PropertyConfigurator;
/**
* Web application lifecycle listener, used to perform central initialization
* tasks at CCM startup in a servlet container / web application server,
* expecially setting the runtime context (file locations) and (in the future)
* the database connection.
* Web application lifecycle listener, used to perform central initialisation tasks at CCM startup
* in a Servlet container / web application server, expecially setting the runtime context (file
* locations) and (in the future) the database connection.
*
* The methods of this classes are by definition only invoked by the servlet
* container / web application server, not by any servlet or java class of
* the application itself! Invokation is managed by the deployment descriptor.
* The methods of this classes are by definition only invoked by the Servlet container / web
* application server, not by any Servlet or java class of the application itself! Invocation is
* managed by the deployment descriptor.
*
* Note! Don't forget to configure it in web.xml deployment descriptor!
* <listener>
* <listener-class>
* com.arsdigita.runtime.CCMApplicationContextListener
* </listener-class>
* </listener>
* According to the 2.3 specification these tags must be placed after the filter
* tags and before the servlet tags!
* <listener>
* <listener-class>
* com.arsdigita.runtime.CCMApplicationContextListener
* </listener-class>
* </listener>
* According to the 2.3 specification these tags must be placed after the filter tags and before the
* Servlet tags!
*
* @author pboy
* @version $Id: $
* @version $Id: $
*/
public class CCMApplicationContextListener implements ServletContextListener {
private static Logger s_log = Logger.getLogger(CCMApplicationContextListener.class);
private static Runtime runtime ;
private static Runtime runtime;
/**
* Used to initialize classes at startup of the application, most of which
* needs to be plain java objects (because they are also used by command
* line interface - installation, configuration, maintenance).
* Used to initialise classes at startup of the application, most of which needs to be plain
* java objects (because they are also used by command line interface - installation,
* configuration, maintenance).
*
* Here we provide one of the two supported ways to bring up the CCM
* application. This handles the startup inside a servlet container. The
* command line utilities handle the startup there. Both initialize the same
* set of classes needed for CCM operations
* Here we provide one of the two supported ways to bring up the CCM application. This handles
* the startup inside a Servlet container. The command line utilities handle the startup there.
* Both initialise the same set of classes needed for CCM operations
*
* @param applicationStartEvent
*/
@Override
public void contextInitialized(ServletContextEvent applicationStartEvent) {
/**
* Fully qualified path name to application base in the servers file system
*/
String m_appBase ;
String m_appBase;
/**
* Log4J config file name including path relative to application base
*/
String m_log4j ;
String m_log4j;
// s_log.setLevel( INFO );
s_log.info("Starting CCM Application.");
ServletContext sc = applicationStartEvent.getServletContext();
m_appBase = sc.getRealPath("/");
@ -98,12 +94,10 @@ public class CCMApplicationContextListener implements ServletContextListener {
m_log4j = sc.getInitParameter("log4j-conf-file");
s_log.info("Logging context parameter is: " + m_log4j);
// if the log4j-init-file is not set, then no point in trying
if(m_log4j != null) {
PropertyConfigurator.configure(m_appBase+m_log4j);
}
else {
PropertyConfigurator.configure(m_appBase+
"WEB-INF/conf/log4j.properties");
if (m_log4j != null) {
PropertyConfigurator.configure(m_appBase + m_log4j);
} else {
PropertyConfigurator.configure(m_appBase + "WEB-INF/conf/log4j.properties");
}
// The classes ResourceManager and CCMResourceManager handle a
@ -111,7 +105,7 @@ public class CCMApplicationContextListener implements ServletContextListener {
// ToDo: integrate both into a single class, e.g. CCMResourceManager
// to simplify and clean-up of the code!
CCMResourceManager.setBaseDirectory(m_appBase);
s_log.info("BaseDir set to: " + m_appBase );
s_log.info("BaseDir set to: " + m_appBase);
// Setup the XML factory configuration
FactoriesSetup.setupFactories();
@ -120,10 +114,9 @@ public class CCMApplicationContextListener implements ServletContextListener {
// domain coupling machinary
// Runtime runtime = new Runtime();
runtime = new Runtime();
if ( !runtime.hasRun() ) {
runtime.startup( new ContextInitEvent(applicationStartEvent));
if (!runtime.hasRun()) {
runtime.startup(new ContextInitEvent(applicationStartEvent));
}
}
/**
@ -136,12 +129,13 @@ public class CCMApplicationContextListener implements ServletContextListener {
// Central shutdown procedure, used to clean up any runtime resources.
// Runtime runtime = new Runtime();
if ( runtime.hasRun() ) {
if (runtime.hasRun()) {
s_log.info("hasRun() returned true, shutdown procedure started.");
runtime.shutdown( new ContextCloseEvent(applicationEndEvent));
runtime.shutdown(new ContextCloseEvent(applicationEndEvent));
}
s_log.info("CCM Application shut down.");
LogManager.shutdown();
}
}

View File

@ -213,99 +213,99 @@ div#bebopTabbedPane span:before {
}
div#bebopTabbedPane span.browse:before {
content: url('../../../images/cms/browse.png');
content: url('../../images/cms/browse.png');
}
div#bebopTabbedPane span.browse.current:before {
content: url('../../../images/cms/browse-current.png');
content: url('../../images/cms/browse-current.png');
}
div#bebopTabbedPane span.search:before {
content: url('../../../images/cms/search.png');
content: url('../../images/cms/search.png');
}
div#bebopTabbedPane span.search.current:before {
content: url('../../../images/cms/search-current.png');
content: url('../../images/cms/search-current.png');
}
div#bebopTabbedPane span.images:before {
content: url('../../../images/cms/images.png');
content: url('../../images/cms/images.png');
}
div#bebopTabbedPane span.images.current:before {
content: url('../../../images/cms/images-current.png');
content: url('../../images/cms/images-current.png');
}
div#bebopTabbedPane span.roles:before {
content: url('../../../images/cms/roles.png');
content: url('../../images/cms/roles.png');
}
div#bebopTabbedPane span.roles.current:before {
content: url('../../../images/cms/roles-current.png');
content: url('../../images/cms/roles-current.png');
}
div#bebopTabbedPane span.workflows:before {
content: url('../../../images/cms/workflows.png');
content: url('../../images/cms/workflows.png');
}
div#bebopTabbedPane span.workflows.current:before {
content: url('../../../images/cms/workflows-current.png');
content: url('../../images/cms/workflows-current.png');
}
div#bebopTabbedPane span.lifecycles:before {
content: url('../../../images/cms/lifecycles.png');
content: url('../../images/cms/lifecycles.png');
}
div#bebopTabbedPane span.lifecycles.current:before {
content: url('../../../images/cms/lifecycles-current.png');
content: url('../../images/cms/lifecycles-current.png');
}
div#bebopTabbedPane span.categories:before {
content: url('../../../images/cms/categories.png');
content: url('../../images/cms/categories.png');
}
div#bebopTabbedPane span.categories.current:before {
content: url('../../../images/cms/categories-current.png');
content: url('../../images/cms/categories-current.png');
}
div#bebopTabbedPane span.content_types:before {
content: url('../../../images/cms/contenttypes.png');
content: url('../../images/cms/contenttypes.png');
}
div#bebopTabbedPane span.content_types.current:before {
content: url('../../../images/cms/contenttypes-current.png');
content: url('../../images/cms/contenttypes-current.png');
}
div#bebopTabbedPane span.user_admin:before {
content: url('../../../images/cms/admin.png');
content: url('../../images/cms/admin.png');
}
div#bebopTabbedPane span.user_admin.current:before {
content: url('../../../images/cms/admin-current.png');
content: url('../../images/cms/admin-current.png');
}
div#bebopTabbedPane span.cse:before {
content: url('../../../images/cms/cse.png');
content: url('../../images/cms/cse.png');
}
div#bebopTabbedPane span.cse.current:before {
content: url('../../../images/cms/cse-current.png');
content: url('../../images/cms/cse-current.png');
}
div#bebopTabbedPane span.reports:before {
content: url('../../../images/cms/reports.png');
content: url('../../images/cms/reports.png');
}
div#bebopTabbedPane span.reports.current:before {
content: url('../../../images/cms/reports-current.png');
content: url('../../images/cms/reports-current.png');
}
div#bebopTabbedPane span.taskssections:before {
content: url('../../../images/cms/taskssections.png');
content: url('../../images/cms/taskssections.png');
}
div#bebopTabbedPane span.taskssections.current:before {
content: url('../../../images/cms/taskssections-current.png');
content: url('../../images/cms/taskssections-current.png');
}
/*------Bebop ContextBar----- */
@ -341,7 +341,7 @@ div.bebopContextBar span.bebopContextBarSeperator {
margin-left: 5px;
border-left: 1px solid #a4a4a4;
color: transparent;
background-image:url('../../../images/scrumb.png');
background-image:url('../../images/scrumb.png');
background-repeat:no-repeat;
background-position: center;
}
@ -841,23 +841,23 @@ div.cmsGlobalNavigation > span :before {
}
span.cmsGlobalNavigationContentCenter :before {
content:url('../../../images/cms/contentcenter.png');
content:url('../../images/cms/contentcenter.png');
}
span.cmsGlobalNavigationWorkspace :before {
content:url('../../../images/cms/home.png');
content:url('../../images/cms/home.png');
}
span.cmsGlobalNavigationSignOut :before, span.logout :before {
content:url('../../../images/cms/lock.png');
content:url('../../images/cms/lock.png');
}
span.cmsGlobalNavigationHelp :before {
content:url('../../../images/cms/help.png');
content:url('../../images/cms/help.png');
}
span.cmsPreview :before {
content:url('../../../images/cms/preview.png');
content:url('../../images/cms/preview.png');
}
@ -972,7 +972,7 @@ div .bebopBody ul li{
}
h3.bebopSegmentHeader{
margin-bottom:0em;
margin-bottom:0.15em;
margin-top: 15px;
}
@ -1020,37 +1020,37 @@ div.actionGroupSubject tr{
}
span.action:before {
content:url('../../../images/bebop/action.png');
content:url('../../images/bebop/action.png');
padding-right: 0.3em;
}
span.action.add:before {
content:url('../../../images/bebop/action-add.png');
content:url('../../images/bebop/action-add.png');
padding-right: 0.3em;
}
span.action.delete:before {
content:url('../../../images/bebop/action-delete.png');
content:url('../../images/bebop/action-delete.png');
padding-right: 0.3em;
}
span.action.edit:before {
content:url('../../../images/bebop/action-edit.png');
content:url('../../images/bebop/action-edit.png');
padding-right: 0.3em;
}
span.action.return:before {
content:url('../../../images/bebop/action-return.png');
content:url('../../images/bebop/action-return.png');
padding-right: 0.3em;
}
span.action.up:before {
content:url('../../../images/bebop/action-up.png');
content:url('../../images/bebop/action-up.png');
padding-right: 0.3em;
}
span.action.down:before {
content:url('../../../images/bebop/action-down.png');
content:url('../../images/bebop/action-down.png');
padding-right: 0.3em;
}
@ -1084,10 +1084,6 @@ div.cmsSummaryBody {
border-bottom: 1px solid rgba(102, 102, 102, 0.5);
}
div.cmsSummarySection ul {
text-indent: -2.5em;
}
span.cmsCurrentRevision {
font-style:italic;
font-weight:bold;
@ -1317,6 +1313,10 @@ input#draft_search:active {
background-color: #ffffff;
}
#left li span:before{
content: '\2794';
}
#center {
margin: 0.3em;
overflow: hidden;
@ -1344,10 +1344,6 @@ input#draft_search:active {
font-family: Verdana, Helvetica, Arial, sans-serif;
}
#content #contentInner {
margin: 1em;
}
/*momentan für die Inhalt von Content*/
#content br{
margin-top: 10px;

View File

@ -29,70 +29,70 @@
-->
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:bebop="http://www.arsdigita.com/bebop/1.0"
xmlns:cms="http://www.arsdigita.com/cms/1.0"
xmlns:nav="http://ccm.redhat.com/navigation"
xmlns:mandalay="http://mandalay.quasiweb.de"
exclude-result-prefixes="xsl bebop cms nav mandalay"
version="1.0">
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:bebop="http://www.arsdigita.com/bebop/1.0"
xmlns:cms="http://www.arsdigita.com/cms/1.0"
xmlns:nav="http://ccm.redhat.com/navigation"
xmlns:mandalay="http://mandalay.quasiweb.de"
exclude-result-prefixes="xsl bebop cms nav mandalay"
version="1.0">
<!-- DE Eine verticale Liste als UL, wenn es keine item-path-Liste ist -->
<!-- EN A vertical list as ul, if it is not an item-path type list -->
<xsl:template match="bebop:list[@layout = 'vertical']">
<xsl:call-template name="mandalay:processAttributes"/>
<!-- DE Eine verticale Liste als UL, wenn es keine item-path-Liste ist -->
<!-- EN A vertical list as ul, if it is not an item-path type list -->
<xsl:template match="bebop:list[@layout = 'vertical']">
<xsl:call-template name="mandalay:processAttributes"/>
<xsl:choose>
<xsl:when test="@type = 'item-path'">
<xsl:apply-templates mode="itemPath"/>
</xsl:when>
<xsl:when test="bebop:cell/bebop:link[@class='actionLink']">
<div class="actionLink">
<xsl:apply-templates mode="span"/>
<xsl:choose>
<xsl:when test="@type = 'item-path'">
<xsl:apply-templates mode="itemPath"/>
</xsl:when>
<xsl:when test="bebop:cell/bebop:link[@class='actionLink']">
<div class="actionLink">
<xsl:apply-templates mode="span"/>
</div>
</xsl:when>
<xsl:otherwise>
<ul class="bebopList">
<xsl:call-template name="mandalay:processAttributes"/>
<xsl:apply-templates mode="list"/>
</ul>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- DE Eine horizontale Liste als spans -->
<!-- EN a horizontal list with spans -->
<xsl:template match="bebop:list[@layout = 'horizontal']">
<div>
<xsl:call-template name="mandalay:processAttributes"/>
<xsl:apply-templates mode="span"/>
</div>
</xsl:when>
<xsl:otherwise>
<ul class="bebopList">
<xsl:call-template name="mandalay:processAttributes"/>
<xsl:apply-templates mode="list"/>
</ul>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:template>
<!-- DE Hier werden lis hinzugefügt -->
<!-- EN Inserting li's -->
<xsl:template match="bebop:cell" mode="list">
<li>
<xsl:apply-templates select="."/>
</li>
</xsl:template>
<!-- DE Eine horizontale Liste als spans -->
<!-- EN a horizontal list with spans -->
<xsl:template match="bebop:list[@layout = 'horizontal']">
<div>
<xsl:call-template name="mandalay:processAttributes"/>
<xsl:apply-templates mode="span"/>
</div>
</xsl:template>
<!-- DE Hier werden die spans hinzugefügt -->
<!-- EN Inserting span's -->
<xsl:template match="bebop:cell" mode="span">
<span>
<xsl:apply-templates select="."/>
</span>
</xsl:template>
<!-- DE Hier werden lis hinzugefügt -->
<!-- EN Inserting li's -->
<xsl:template match="bebop:cell" mode="list">
<li>
<xsl:apply-templates select="."/>
</li>
</xsl:template>
<!-- DE Hier werden die spans hinzugefügt -->
<!-- EN Inserting span's -->
<xsl:template match="bebop:cell" mode="span">
<span>
<xsl:apply-templates select="."/>
</span>
</xsl:template>
<!-- DE Inhalte verarbeiten -->
<!-- EN Processing content -->
<xsl:template match="bebop:cell" mode="itemPath">
<xsl:apply-templates select="." mode="span"/>
<xsl:if test="position() != last()">
<!-- DE Inhalte verarbeiten -->
<!-- EN Processing content -->
<xsl:template match="bebop:cell" mode="itemPath">
<xsl:apply-templates select="." mode="span"/>
<xsl:if test="position() != last()">
&gt;
</xsl:if>
</xsl:template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

View File

@ -90,9 +90,7 @@
</div>
</div>
<div id="content" class="columnContent">
<div id="contentInner">
<showBodyColumn/>
</div>
</div>
</div>
<div class="endFloat"/>

View File

@ -24,11 +24,11 @@
-->
<css-files>
<default>
<css-file media="screen">style.css</css-file>
<css-file media="print">style.css</css-file>
<css-file media="screen">public.css</css-file>
<css-file media="print">public.css</css-file>
<!--<css-file>wysiwyg.css</css-file>-->
<iehacks media="screen">ie-hacks.css</iehacks>
<iehacks media="print">ie-hacks.css</iehacks>
<iehacks media="screen">public-ie-hacks.css</iehacks>
<iehacks media="print">public-ie-hacks.css</iehacks>
</default>
<application name="admin">

View File

@ -2016,23 +2016,21 @@
description="Generates the combined API documentation">
<mkdir dir="${{javadoc.dir}}"/>
<javadoc
maxmemory="384m"
maxmemory="1024M"
author="true"
version="true"
use="true"
destdir="${{javadoc.dir}}"
bottom="
&lt;i&gt;Copyright (c) ${{YEAR}} Red Hat, Inc.
Corporation. All Rights Reserved.&lt;/i&gt;
bottom="&lt;i&gt;Copyright (c) ${{YEAR}} All Rights Reserved.&lt;/i&gt;
Generated at ${{TODAY}}:${{TSTAMP}} UTC"
windowtitle="${{app.prettyname}} API Documentation"
doctitle="&lt;h1&gt;${{app.prettyname}} API Documentation&lt;/h1&gt;"
access="private">
access="private">
<packageset dir="${{build.src.dir}}"/>
<classpath refid="server.build.classpath"/>
<link href="http://java.sun.com/j2se/1.4/docs/api/"/>
<link href="http://java.sun.com/j2ee/tutorial/api/"/>
<doclet name="org.umlgraph.doclet.UmlGraphDoc" path="tools-ng/devel/lib/UmlGraph.jar">
<!--<doclet name="org.umlgraph.doclet.UmlGraphDoc" path="tools-ng/devel/lib/UmlGraph.jar">
<param name="-inferrel"/>
<param name="-inferdep"/>
<param name="-hide" value="java.*"/>
@ -2043,7 +2041,7 @@
<param name="-nodefontpackagesize" value="7"/>
<param name="-link" value="http://java.sun.com/j2se/1.5.0/docs/guide/javadoc/doclet/spec"/>
<param name="-link" value="http://java.sun.com/j2se/1.5/docs/api"/>
</doclet>
</doclet>-->
</javadoc>
</target>