src.com.ibm.as400.util.html.HTMLTableCaption Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jt400 Show documentation
Show all versions of jt400 Show documentation
The Open Source version of the IBM Toolbox for Java
///////////////////////////////////////////////////////////////////////////////
//
// JTOpen (IBM Toolbox for Java - OSS version)
//
// Filename: HTMLTableCaption.java
//
// The source code contained herein is licensed under the IBM Public License
// Version 1.0, which has been approved by the Open Source Initiative.
// Copyright (C) 1997-2001 International Business Machines Corporation and
// others. All rights reserved.
//
///////////////////////////////////////////////////////////////////////////////
package com.ibm.as400.util.html;
import com.ibm.as400.access.ExtendedIllegalArgumentException;
import com.ibm.as400.access.ExtendedIllegalStateException;
import com.ibm.as400.access.Trace;
import java.beans.PropertyChangeSupport;
import java.beans.PropertyChangeListener;
import java.beans.PropertyVetoException;
import java.beans.VetoableChangeSupport;
import java.beans.VetoableChangeListener;
import java.io.Serializable;
/**
* The HTMLTableCaption class represents an HTML Caption tag.
*
* This example creates an HTMLTableCaption object with an HTMLText object for the caption element.
*
* // Create an HTMLText object for the caption text.
* HTMLText captionText = new HTMLText("MY TABLE");
* // Create the HTMLTableCaption object with the new HTMLText object.
* HTMLTableCaption caption = new HTMLTableCaption(captionText);
* // Display the tag.
* System.out.println(caption.getTag());
*
*
* Here is the output of the tag:
*
* <caption>MY TABLE</caption>
*
*
* The equivalent tag using XSL Formatting Objects is:
*
* <fo:block><fo:block>MY TABLE</fo:block>
* </fo:block>
*
*
* This example creates an HTMLTableCaption object with an HTMLHyperlink object for the caption element.
*
* // Create an HTMLHyperlink object for the caption text.
* HTMLHyperlink companyLink = new HTMLHyperlink("http://www.myCompany.com", "My Company");
* // Create the HTMLTableCaption object with the new HTMLHyperlink object.
* HTMLTableCaption caption = new HTMLTableCaption(companyLink);
* caption.setAlignment(HTMLConstants.BOTTOM);
* // Display the tag.
* System.out.println(caption.getTag());
*
*
* Here is the output of the tag:
*
* <caption align="bottom"><a href="http://www.myCompany.com>My Company"</a></caption>
*
*
* HTMLTableCaption objects generate the following events:
*
* - PropertyChangeEvent
*
- VetoableChangeEvent
*
**/
public class HTMLTableCaption extends HTMLTagAttributes implements HTMLConstants, Serializable
{
private static final String copyright = "Copyright (C) 1997-2001 International Business Machines Corporation and others.";
static final long serialVersionUID = 8692666542126042315L;
private HTMLTagElement element_; // The caption element.
private String align_; // The caption alignment.
private String lang_; // The primary language used to display the tags contents. //$B1A
private String dir_; // The direction of the text interpretation. //$B1A
private boolean useFO_ = false; // Indicates if XSL-FO tags are outputted. //@D1A
transient private VetoableChangeSupport vetos_; //@CRS
/**
* Constructs a default HTMLTableCaption object.
**/
public HTMLTableCaption()
{
}
/**
* Constructs an HTMLTableCaption object with the specified element.
* @param element An HTMLTagElement object.
**/
public HTMLTableCaption(HTMLTagElement element)
{
if (element == null)
throw new NullPointerException("element");
element_ = element;
}
/**
* Adds the VetoableChangeListener. The specified VetoableChangeListener's vetoableChange
* method is called each time the value of any constrained property is changed.
* @see #removeVetoableChangeListener
* @param listener The VetoableChangeListener.
**/
public void addVetoableChangeListener(VetoableChangeListener listener)
{
if (listener == null)
throw new NullPointerException("listener");
if (vetos_ == null) vetos_ = new VetoableChangeSupport(this); //@CRS
vetos_.addVetoableChangeListener(listener);
}
/**
* Returns the caption alignment relative to the table.
* @return The caption alignment. One of the following constants
* defined in HTMLConstants: BOTTOM, LEFT, RIGHT, or TOP.
* @see com.ibm.as400.util.html.HTMLConstants
**/
public String getAlignment()
{
return align_;
}
/**
* Returns the direction of the text interpretation.
* @return The direction of the text.
**/
public String getDirection() //$B1A
{
return dir_;
}
/**
* Returns the direction attribute tag.
* @return The direction tag.
**/
String getDirectionAttributeTag() //$B1A
{
if(useFO_) //@D1A
{ //@D1A
if((dir_ != null) && (dir_.length()>0)) //@D1A
{ //@D1A
if(dir_.equals(HTMLConstants.RTL)) //@D1A
return " writing-mode='rl'"; //@D1A
else //@D1A
return " writing-mode='lr'"; //@D1A
} //@D1A
else //@D1A
return ""; //@D1A
} //@D1A
else //@D1A
{ //@D1A
//@C1D
if ((dir_ != null) && (dir_.length() > 0))
{
StringBuffer buffer = new StringBuffer(" dir=\"");
buffer.append(dir_);
buffer.append("\"");
return buffer.toString();
}
else
return "";
} //@D1A
}
/**
* Returns the element for the caption.
* @return An HTMLTagElement.
**/
public HTMLTagElement getElement()
{
return element_;
}
/**
* Returns the language of the caption.
* @return The language of the caption.
**/
public String getLanguage() //$B1A
{
return lang_;
}
/**
* Returns the language attribute tag.
* @return The language tag.
**/
String getLanguageAttributeTag() //$B1A
{
//@C1D
if ((lang_ != null) && (lang_.length() > 0))
{
StringBuffer buffer = new StringBuffer(" lang=\"");
buffer.append(lang_);
buffer.append("\"");
return buffer.toString();
}
else
return "";
}
/**
* Returns the HTML caption tag.
* @return The caption tag.
**/
public String getTag()
{
//@C1D
if(useFO_) //@D1A
return getFOTag(); //@D1A
if (element_ == null)
{
Trace.log(Trace.ERROR, "Attempting to get tag before setting the 'element' parameter.");
throw new ExtendedIllegalStateException("element", ExtendedIllegalStateException.PROPERTY_NOT_SET);
}
StringBuffer tag = new StringBuffer("");
tag.append(element_.getTag());
tag.append(" \n");
return tag.toString(); //@D1C
}
/**
* Returns the XSL-FO caption tag.
* The language attribute is not supported in XSL-FO. The table caption will appear at the
* left of the page if align=left, right of the page if align=right, or at the center
* of the page for the rest of the alignments.
* @return The caption tag.
**/
public String getFOTag() //@D1A
{
//Save current state of useFO_
boolean useFO = useFO_;
//Indicate Formatting Object tags are used.
setUseFO(true);
if (element_ == null)
{
Trace.log(Trace.ERROR, "Attempting to get XSL-FO tag before setting the 'element' parameter.");
throw new ExtendedIllegalStateException("element", ExtendedIllegalStateException.PROPERTY_NOT_SET);
}
StringBuffer tag = new StringBuffer("");
tag.append("");
tag.append(element_.getFOTag());
tag.append(" \n");
//Set useFO_ to previous state
setUseFO(useFO);
return tag.toString();
}
/**
* Returns if Formatting Object tags are outputted.
* The default value is false.
* @return true if the output generated is an XSL formatting object, false if the output generated is HTML.
**/
public boolean isUseFO() //@D1A
{
return useFO_;
}
/**
* Deserializes and initializes transient data.
**/
private void readObject(java.io.ObjectInputStream in)
throws java.io.IOException, ClassNotFoundException
{
in.defaultReadObject();
//@CRS changes_ = new PropertyChangeSupport(this);
//@CRS vetos_ = new VetoableChangeSupport(this);
}
/**
* Removes the VetoableChangeListener from the internal list.
* If the VetoableChangeListener is not on the list, nothing is done.
* @see #addVetoableChangeListener
* @param listener The VetoableChangeListener.
**/
public void removeVetoableChangeListener(VetoableChangeListener listener)
{
if (listener == null)
throw new NullPointerException("listener");
if (vetos_ != null) vetos_.removeVetoableChangeListener(listener); //@CRS
}
/**
* Sets the caption alignment relative to the table.
* @param alignment The caption alignment. One of the following constants
* defined in HTMLConstants: BOTTOM, LEFT, RIGHT, or TOP.
* @exception PropertyVetoException If the change is vetoed.
* @see com.ibm.as400.util.html.HTMLConstants
**/
public void setAlignment(String alignment) throws PropertyVetoException
{
if (alignment == null)
{
throw new NullPointerException("alignment");
}
else if (alignment.equalsIgnoreCase(BOTTOM) ||
alignment.equalsIgnoreCase(TOP) ||
alignment.equalsIgnoreCase(LEFT) ||
alignment.equalsIgnoreCase(RIGHT))
{
String old = align_;
if (vetos_ != null) vetos_.fireVetoableChange("alignment", old, alignment ); //@CRS
align_ = alignment;
if (changes_ != null) changes_.firePropertyChange("alignment", old, alignment ); //@CRS
}
else
{
throw new ExtendedIllegalArgumentException("alignment", ExtendedIllegalArgumentException.PARAMETER_VALUE_NOT_VALID);
}
}
/**
* Sets the direction of the text interpretation.
* @param dir The direction. One of the following constants
* defined in HTMLConstants: LTR or RTL.
*
* @see com.ibm.as400.util.html.HTMLConstants
*
* @exception PropertyVetoException If a change is vetoed.
**/
public void setDirection(String dir) //$B1A
throws PropertyVetoException
{
if (dir == null)
throw new NullPointerException("dir");
// If direction is not one of the valid HTMLConstants, throw an exception.
if ( !(dir.equals(HTMLConstants.LTR)) && !(dir.equals(HTMLConstants.RTL)) )
{
throw new ExtendedIllegalArgumentException("dir", ExtendedIllegalArgumentException.PARAMETER_VALUE_NOT_VALID);
}
String old = dir_;
if (vetos_ != null) vetos_.fireVetoableChange("dir", old, dir ); //@CRS
dir_ = dir;
if (changes_ != null) changes_.firePropertyChange("dir", old, dir ); //@CRS
}
/**
* Sets the specified text for the caption.
* @param text The caption text.
* @exception PropertyVetoException If the change is vetoed.
**/
public void setElement(String text) throws PropertyVetoException
{
setElement(new HTMLText(text));
}
/**
* Sets the element for the caption.
* @param element An HTMLTagElement.
* @exception PropertyVetoException If the change is vetoed.
**/
public void setElement(HTMLTagElement element) throws PropertyVetoException
{
if (element == null)
throw new NullPointerException("element");
HTMLTagElement old = element_;
if (vetos_ != null) vetos_.fireVetoableChange("element", old, element ); //@CRS
element_ = element;
if (changes_ != null) changes_.firePropertyChange("element", old, element ); //@CRS
}
/**
* Sets the language of the caption.
* @param lang The language. Example language tags include:
* en and en-US.
*
* @exception PropertyVetoException If a change is vetoed.
**/
public void setLanguage(String lang) //$B1A
throws PropertyVetoException
{
if (lang == null)
throw new NullPointerException("lang");
String old = lang_;
if (vetos_ != null) vetos_.fireVetoableChange("lang", old, lang ); //@CRS
lang_ = lang;
if (changes_ != null) changes_.firePropertyChange("lang", old, lang ); //@CRS
}
/**
* Sets if Formatting Object tags should be used.
* The default value is false.
* @param useFO - true if output generated is an XSL formatting object, false if the output generated is HTML.
**/
public void setUseFO(boolean useFO) //@D1A
{
boolean old = useFO_;
useFO_ = useFO;
if (changes_ != null) changes_.firePropertyChange("useFO", old, useFO );
}
/**
* Returns the HTML caption tag.
* @return The caption tag.
**/
public String toString()
{
return getTag();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy