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() { private String getAdminEmail() {
return (String) get(m_adminEmail); 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() { private String getAdminIdentifier() {
return (String) get(m_adminIdent); 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. // This can nowbe done by overwriting the getTitleLabel() method.
// (jensp 2011-01-28) // (jensp 2011-01-28)
add(new Label(getTitleLabel())); add(new Label(getTitleLabel()));
TextField titleWidget = new TextField(new TrimmedStringParameter(TITLE)); final TextField titleWidget = new TextField(new TrimmedStringParameter(TITLE));
titleWidget.addValidationListener(new NotNullValidationListener()); titleWidget.addValidationListener(new NotNullValidationListener());
titleWidget.setOnFocus("if (this.form." + NAME + ".value == '') { " titleWidget.setOnFocus("if (this.form." + NAME + ".value == '') { "
+ " defaulting = true; this.form." + NAME + " defaulting = true; this.form." + NAME
@ -185,6 +185,7 @@ public abstract class BasicItemForm extends FormSection
titleWidget.setOnKeyUp( titleWidget.setOnKeyUp(
"if (defaulting) { this.form." + NAME "if (defaulting) { this.form." + NAME
+ ".value = urlize(this.value) }"); + ".value = urlize(this.value) }");
titleWidget.setLabel(getTitleLabel());
titleWidget.setHint(getTitleHint()); titleWidget.setHint(getTitleHint());
add(titleWidget); add(titleWidget);
@ -193,7 +194,7 @@ public abstract class BasicItemForm extends FormSection
// This can now be accomplished by overwriting the getNameLabel() method. // This can now be accomplished by overwriting the getNameLabel() method.
// (jensp 2011-01-28) // (jensp 2011-01-28)
add(new Label(getNameLabel())); add(new Label(getNameLabel()));
TextField nameWidget = new TextField(new TrimmedStringParameter(NAME)); final TextField nameWidget = new TextField(new TrimmedStringParameter(NAME));
nameWidget.addValidationListener(new NameValidationListener()); nameWidget.addValidationListener(new NameValidationListener());
nameWidget.setMaxLength(190); nameWidget.setMaxLength(190);
nameWidget.setOnFocus("defaulting = false"); 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. * how to use this widget.
* *
* This method can be overwritten to adjust the text for some content types. * This method can be overwritten to adjust the text for some content types.
* {@link getTitleLabel()} * {@link #getTitleLabel()}
* *
* @return * @return
*/ */
@ -459,7 +460,7 @@ public abstract class BasicItemForm extends FormSection
* how to use this widget. * how to use this widget.
* *
* This method can be overwritten to adjust the text for some content types. * This method can be overwritten to adjust the text for some content types.
* {@link getNameLabel()} * {@link #getNameLabel()}
* *
* @return * @return
*/ */

View File

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

View File

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

View File

@ -127,7 +127,6 @@ public class PooledConnectionSource implements ConnectionSource {
* cause problems (memory etc.) with PostgreSQL. * cause problems (memory etc.) with PostgreSQL.
*/ */
try { try {
result.setAutoCommit(false); result.setAutoCommit(false);
} catch (SQLException ex) { } catch (SQLException ex) {
s_log.warn("Failed to set autocommit to false"); 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 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* *
*/ */
package com.arsdigita.web; package com.arsdigita.web;
import com.arsdigita.runtime.CCMResourceManager; import com.arsdigita.runtime.CCMResourceManager;
@ -35,14 +34,13 @@ import org.apache.log4j.LogManager;
import org.apache.log4j.PropertyConfigurator; import org.apache.log4j.PropertyConfigurator;
/** /**
* Web application lifecycle listener, used to perform central initialization * Web application lifecycle listener, used to perform central initialisation tasks at CCM startup
* tasks at CCM startup in a servlet container / web application server, * in a Servlet container / web application server, expecially setting the runtime context (file
* expecially setting the runtime context (file locations) and (in the future) * locations) and (in the future) the database connection.
* the database connection.
* *
* The methods of this classes are by definition only invoked by the servlet * The methods of this classes are by definition only invoked by the Servlet container / web
* container / web application server, not by any servlet or java class of * application server, not by any Servlet or java class of the application itself! Invocation is
* the application itself! Invokation is managed by the deployment descriptor. * managed by the deployment descriptor.
* *
* Note! Don't forget to configure it in web.xml deployment descriptor! * Note! Don't forget to configure it in web.xml deployment descriptor!
* <listener> * <listener>
@ -50,13 +48,12 @@ import org.apache.log4j.PropertyConfigurator;
* com.arsdigita.runtime.CCMApplicationContextListener * com.arsdigita.runtime.CCMApplicationContextListener
* </listener-class> * </listener-class>
* </listener> * </listener>
* According to the 2.3 specification these tags must be placed after the filter * According to the 2.3 specification these tags must be placed after the filter tags and before the
* tags and before the servlet tags! * Servlet tags!
* *
* @author pboy * @author pboy
* @version $Id: $ * @version $Id: $
*/ */
public class CCMApplicationContextListener implements ServletContextListener { public class CCMApplicationContextListener implements ServletContextListener {
private static Logger s_log = Logger.getLogger(CCMApplicationContextListener.class); private static Logger s_log = Logger.getLogger(CCMApplicationContextListener.class);
@ -64,17 +61,17 @@ public class CCMApplicationContextListener implements ServletContextListener {
private static Runtime runtime; private static Runtime runtime;
/** /**
* Used to initialize classes at startup of the application, most of which * Used to initialise classes at startup of the application, most of which needs to be plain
* needs to be plain java objects (because they are also used by command * java objects (because they are also used by command line interface - installation,
* line interface - installation, configuration, maintenance). * configuration, maintenance).
* *
* Here we provide one of the two supported ways to bring up the CCM * Here we provide one of the two supported ways to bring up the CCM application. This handles
* application. This handles the startup inside a servlet container. The * the startup inside a Servlet container. The command line utilities handle the startup there.
* command line utilities handle the startup there. Both initialize the same * Both initialise the same set of classes needed for CCM operations
* set of classes needed for CCM operations
* *
* @param applicationStartEvent * @param applicationStartEvent
*/ */
@Override
public void contextInitialized(ServletContextEvent applicationStartEvent) { public void contextInitialized(ServletContextEvent applicationStartEvent) {
/** /**
@ -90,7 +87,6 @@ public class CCMApplicationContextListener implements ServletContextListener {
// s_log.setLevel( INFO ); // s_log.setLevel( INFO );
s_log.info("Starting CCM Application."); s_log.info("Starting CCM Application.");
ServletContext sc = applicationStartEvent.getServletContext(); ServletContext sc = applicationStartEvent.getServletContext();
m_appBase = sc.getRealPath("/"); m_appBase = sc.getRealPath("/");
@ -100,10 +96,8 @@ public class CCMApplicationContextListener implements ServletContextListener {
// if the log4j-init-file is not set, then no point in trying // if the log4j-init-file is not set, then no point in trying
if (m_log4j != null) { if (m_log4j != null) {
PropertyConfigurator.configure(m_appBase + m_log4j); PropertyConfigurator.configure(m_appBase + m_log4j);
} } else {
else { PropertyConfigurator.configure(m_appBase + "WEB-INF/conf/log4j.properties");
PropertyConfigurator.configure(m_appBase+
"WEB-INF/conf/log4j.properties");
} }
// The classes ResourceManager and CCMResourceManager handle a // The classes ResourceManager and CCMResourceManager handle a
@ -123,7 +117,6 @@ public class CCMApplicationContextListener implements ServletContextListener {
if (!runtime.hasRun()) { if (!runtime.hasRun()) {
runtime.startup(new ContextInitEvent(applicationStartEvent)); runtime.startup(new ContextInitEvent(applicationStartEvent));
} }
} }
/** /**
@ -144,4 +137,5 @@ public class CCMApplicationContextListener implements ServletContextListener {
s_log.info("CCM Application shut down."); s_log.info("CCM Application shut down.");
LogManager.shutdown(); LogManager.shutdown();
} }
} }

View File

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

View File

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

View File

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

View File

@ -2016,14 +2016,12 @@
description="Generates the combined API documentation"> description="Generates the combined API documentation">
<mkdir dir="${{javadoc.dir}}"/> <mkdir dir="${{javadoc.dir}}"/>
<javadoc <javadoc
maxmemory="384m" maxmemory="1024M"
author="true" author="true"
version="true" version="true"
use="true" use="true"
destdir="${{javadoc.dir}}" destdir="${{javadoc.dir}}"
bottom=" bottom="&lt;i&gt;Copyright (c) ${{YEAR}} All Rights Reserved.&lt;/i&gt;
&lt;i&gt;Copyright (c) ${{YEAR}} Red Hat, Inc.
Corporation. All Rights Reserved.&lt;/i&gt;
Generated at ${{TODAY}}:${{TSTAMP}} UTC" Generated at ${{TODAY}}:${{TSTAMP}} UTC"
windowtitle="${{app.prettyname}} API Documentation" windowtitle="${{app.prettyname}} API Documentation"
doctitle="&lt;h1&gt;${{app.prettyname}} API Documentation&lt;/h1&gt;" doctitle="&lt;h1&gt;${{app.prettyname}} API Documentation&lt;/h1&gt;"
@ -2032,7 +2030,7 @@
<classpath refid="server.build.classpath"/> <classpath refid="server.build.classpath"/>
<link href="http://java.sun.com/j2se/1.4/docs/api/"/> <link href="http://java.sun.com/j2se/1.4/docs/api/"/>
<link href="http://java.sun.com/j2ee/tutorial/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="-inferrel"/>
<param name="-inferdep"/> <param name="-inferdep"/>
<param name="-hide" value="java.*"/> <param name="-hide" value="java.*"/>
@ -2043,7 +2041,7 @@
<param name="-nodefontpackagesize" value="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.0/docs/guide/javadoc/doclet/spec"/>
<param name="-link" value="http://java.sun.com/j2se/1.5/docs/api"/> <param name="-link" value="http://java.sun.com/j2se/1.5/docs/api"/>
</doclet> </doclet>-->
</javadoc> </javadoc>
</target> </target>