120 lines
4.4 KiB
Java
Executable File
120 lines
4.4 KiB
Java
Executable File
/*
|
|
* Copyright (C) 2001-2004 Red Hat Inc. All Rights Reserved.
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public License
|
|
* as published by the Free Software Foundation; either version 2.1 of
|
|
* the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*
|
|
*/
|
|
package com.arsdigita.bebop;
|
|
|
|
import com.arsdigita.bebop.util.GlobalizationUtil;
|
|
import com.arsdigita.globalization.GlobalizedMessage;
|
|
import com.arsdigita.xml.Element;
|
|
|
|
import org.apache.log4j.Logger;
|
|
|
|
|
|
/**
|
|
* A (Simple) Component with various descriptive information, specifically 'hints'
|
|
* with explanations about it's proper usage. These hints provide a kind of
|
|
* online manual.
|
|
*
|
|
* @author Peter Boy (pb@zes.uni-bremen.de)
|
|
* @version $Id: TextStylable.java 287 2005-02-22 00:29:02Z sskracic $
|
|
*/
|
|
abstract public class DescriptiveComponent extends SimpleComponent {
|
|
|
|
/** Internal logger instance to faciliate debugging. Enable logging output
|
|
* by editing /WEB-INF/conf/log4j.properties int the runtime environment
|
|
* and set com.arsdigita.bebop.DescriptiveComponent=DEBUG
|
|
* by uncommenting or adding the line. */
|
|
private static final Logger s_log = Logger.getLogger(DescriptiveComponent.class);
|
|
|
|
/** Property to store informational text for the user about the Link, e.g.
|
|
* how to use it, or when to use it (or not to use it). */
|
|
private GlobalizedMessage m_hint = GlobalizationUtil
|
|
.globalize("bebop.hint.no_entry_yet");
|
|
|
|
/** Property to store a (localized) label (or title) of this widget. A
|
|
* label is the text (name) displayed for the user to identify and
|
|
* distinguish the various elements on the screem. */
|
|
private GlobalizedMessage m_label;
|
|
|
|
/**
|
|
* Sets a popup hint for the component. It usually contains some explanation
|
|
* for the user about the component, how to use, why it is there, etc.
|
|
*
|
|
* @param hint GlobalizedMessage object with the information text.
|
|
*/
|
|
public void setHint(GlobalizedMessage hint) {
|
|
m_hint = hint;
|
|
}
|
|
|
|
/**
|
|
* Retrieve the popup hint for the component. It is specifically meant for
|
|
* client classes which have to generate the xml on their own and can not
|
|
* use the generateDescriptionXML method provided.
|
|
*
|
|
* @return popup hint message for the component
|
|
*/
|
|
public GlobalizedMessage getHint() {
|
|
return m_hint;
|
|
}
|
|
|
|
/**
|
|
* Sets a popup hint for the Link. It usually contains some explanation for
|
|
* the user about the link, how to use, why it is there, etc.
|
|
*
|
|
* @param label GlobalizedMessage object with the text to identify and
|
|
* distinguish the component.
|
|
*/
|
|
public void setLabel(GlobalizedMessage label) {
|
|
m_label = label;
|
|
}
|
|
|
|
/**
|
|
* Retrieve the label for the component. It is specifically meant for
|
|
* client classes which have to generate the XML on their own and can not
|
|
* use the generateDescriptionXML method provided.
|
|
*
|
|
* @return popup hint message for the component
|
|
*/
|
|
public GlobalizedMessage getLabel() {
|
|
return m_label;
|
|
}
|
|
|
|
/**
|
|
* Generates a (J)DOM fragment for clients to include into their generated
|
|
* XML.
|
|
*
|
|
* @param state
|
|
* @param parent the XML Element instance to add the attributes managed by
|
|
* by this class
|
|
*/
|
|
protected void generateDescriptionXML(final PageState state,
|
|
final Element parent) {
|
|
|
|
if (m_label != null) {
|
|
parent.addAttribute("label", (String) m_label.localize());
|
|
}
|
|
if (m_hint != null) {
|
|
parent.addAttribute("hint", (String) m_hint.localize());
|
|
}
|
|
// Do we need this?
|
|
//exportAttributes(parent);
|
|
}
|
|
|
|
|
|
}
|