All Downloads are FREE. Search and download functionalities are using the official Maven repository.

src.com.ibm.as400.util.html.HTMLTableCaption Maven / Gradle / Ivy

There is a newer version: 20.0.7
Show newest version
///////////////////////////////////////////////////////////////////////////////
//                                                                             
// 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 - 2024 Weber Informatics LLC | Privacy Policy