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

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

There is a newer version: 11.1
Show newest version
///////////////////////////////////////////////////////////////////////////////
//                                                                             
// JTOpen (IBM Toolbox for Java - OSS version)                                 
//                                                                             
// Filename: HTMLHyperlink.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.ExtendedIllegalStateException;
import com.ibm.as400.access.ExtendedIllegalArgumentException;
import com.ibm.as400.access.Trace;
import com.ibm.as400.util.servlet.ServletHyperlink;

import java.util.Enumeration;
import java.util.Properties;
import java.beans.PropertyChangeSupport;
import java.beans.PropertyChangeListener;
import java.beans.PropertyVetoException;
import java.beans.VetoableChangeSupport;
import java.beans.VetoableChangeListener;

/**
*  The HTMLHyperlink class represents an HTML hyperlink tag.
*  
*  

This example creates an HTMLHyperlink and displays the HTML tag. *

*  HTMLHyperlink link = new HTMLHyperlink("http://www.myCompany.com", "myCompany Home Page");
*  System.out.println(link.getTag());
*  
* *

Here is the output of the HTMLHyperlink: *

*  <a href="http://www.myCompany.com">myCompany Home Page</a>
*  
* *

This example creates an HTMLHyperlink and sets two properties. *

*  HTMLHyperlink link = new HTMLHyperlink("http://www.myCompany.com", "myCompany Home Page");
*  Properties properties = new Properties();
*  properties.put("userID", "fred");
*  properties.put("employeeID", "01234567");
*  link.setProperties(properties);
*  System.out.println(link.getTag());
*  
* *

Here is the output of the HTMLHyperlink: *

*  <a href="http://www.myCompany.com?userid=fred&employeeID=01234567">myCompany Home Page</a>
*  
* *

HTMLHyperlink objects generate the following events: *

    *
  • PropertyChangeEvent *
  • VetoableChangeEvent *
**/ public class HTMLHyperlink extends HTMLTagAttributes implements HTMLConstants, java.io.Serializable // @Z1C { private static final String copyright = "Copyright (C) 1997-2001 International Business Machines Corporation and others."; static final long serialVersionUID = 83601853360783566L; private String bookmarkName_; // The bookmark name. private String link_; // The network address for the link resource. private Properties properties_; // Properties associated with the hyperlink. (ie. parameters for URL rewriting) private String target_; // The target frame for the link resource. private String text_; // The text to be used to represent the link. private String title_; // The title for the link resource. private String location_; // The bookmark location (ie - #location) for the link resource. // $B4A private String lang_; // The primary language used to display the tags contents. //$B1A private String dir_; // The direction of the text interpretation. //$B1A transient VetoableChangeSupport vetos_; //@CRS /** * Creates a default HTMLHyperlink object. **/ public HTMLHyperlink() { } /** * Creates an HTMLHyperlink object with the specified resource link. * @param link The Uniform Resource Identifier (URI). **/ public HTMLHyperlink(String link) { if (link == null) throw new NullPointerException("link"); link_ = link; } /** * Creates an HTMLHyperlink object with the specified resource link * represented by the specified text. * @param link The Uniform Resource Identifier (URI). * @param text The text representation for the resource. **/ public HTMLHyperlink(String link, String text) { this(link); if (text == null) throw new NullPointerException("text"); text_ = text; } /** * Creates an HTMLHyperlink object with the specified resource link * and target frame represented by the specified text. * @param link The Uniform Resource Identifier (URI). * @param text The text representation for the resource. * @param target The target frame. **/ public HTMLHyperlink(String link, String text, String target) { this(link,text); if (target == null) throw new NullPointerException("target"); target_ = target; } /** 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 a copy of the HTMLHyperlink. * * @return An HTMLHyperlink. **/ public Object clone() //$B3A { HTMLHyperlink l = new HTMLHyperlink(); try { if (location_ != null) //$B4A l.setLocation(location_); //$B4A if (properties_ != null) // @B5A l.setProperties(properties_); // @B5A if (getAttributes() != null) // @B5A l.setAttributes(getAttributes()); // @B5A if (link_ != null) l.setLink(link_); if (target_ != null) l.setTarget(target_); if (text_ != null) l.setText(text_); if (title_ != null) l.setTitle(title_); if (dir_ != null) l.setDirection(dir_); if (lang_ != null) l.setLanguage(lang_); if (bookmarkName_ != null) l.setName(bookmarkName_); } catch (PropertyVetoException e) { /* Ignore */ } return l; } /** * 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 { //@C1D if ((dir_ != null) && (dir_.length() > 0)) return " dir=\"" + dir_ + "\""; else return ""; } /** * Returns the language of the input element. * @return The language of the input element. **/ 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)) return " lang=\"" + lang_ + "\""; else return ""; } /** * Returns the Uniform Resource Identifier (URI) for the resource link. * @return The Uniform Resource Identifier. **/ public String getLink() { return link_; } /** * Returns the bookmark locatoin of the resource link. * @return The location. **/ public String getLocation() { return location_; } /** * Returns the bookmark name. * @return The name. **/ public String getName() { return bookmarkName_; } /** * Returns the properties associated with the link resource. * @return The properties. **/ public Properties getProperties() { return properties_; } /** * Returns the target frame for the resource link. * @return The target frame. a user-defined frame or one * of the following constants defined in HTMLConstants: * TARGET_BLANK, TARGET_PARENT, TARGET_SELF, or TARGET_TOP. * @see com.ibm.as400.util.html.HTMLConstants **/ public String getTarget() { return target_; } /** * Returns the text that represents the resource link. * This the text that is shown in the HTML document. * @return The text. **/ public String getText() { return text_; } /** * Returns the title for the resource link. * @return The title. **/ public String getTitle() { return title_; } /** * Returns a comment tag. * This method should not be called. There is no XSL-FO support for this class. * @return The comment tag. **/ public String getFOTag() //@D1A { Trace.log(Trace.ERROR, "Attempting to getFOTag() for an object that doesn't support it."); return ""; } /** * Returns the HTML tag that represents the resource link. * @return The HTML tag. **/ public String getTag() { return getTag(text_, properties_); } /** * Returns the HTML tag that represents the resource link * with the specified text and properties. The original HTMLHyperlink object text * and properties are not changed/updated. * @param text The text. * @param properties The Properties. * @return The HTML tag. **/ public String getTag(String text, Properties properties) { return getTag(text, bookmarkName_, link_, properties); //$B2C } /** * Returns the HTML tag that represents the resource link * with the specified text, bookmark name, resource link, and properties. * The original HTMLHyperlink object text, bookmark name, resource link, and properties * are not changed/updated. * @param text The text. * @param name The bookmark name. * @param link The Uniform Resource Identifier (URI). * @param properties The Properties. * @return The HTML tag. **/ public String getTag(String text, String name, String link, Properties properties) //$B2A { //@C1D // Verify that the link has been set. if (link == null) { Trace.log(Trace.ERROR, "Attempting to get tag before setting the link."); throw new ExtendedIllegalStateException("link", ExtendedIllegalStateException.PROPERTY_NOT_SET); } // Validate the text parameter. if (text == null) throw new NullPointerException("text"); // create the tag. StringBuffer buffer = new StringBuffer(); buffer.append(""); buffer.append(text); buffer.append(""); return new String(buffer); } /** * 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 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 language of the input tag. * @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 the bookmark location of the resource link within a document. The location * is denoted with the # symbol at the end of the * link followed by a location. (ie - http://myPage.html#myBookmarkLocation) * @param location The location. **/ public void setLocation(String location) //$B4A { if (location == null) throw new NullPointerException("location"); String old = location_; location_ = location; if (changes_ != null) changes_.firePropertyChange("location", old, location); //@CRS } /** * Sets the Uniform Resource Identifier (URI) for the resource link. * @param link The Uniform Resource Identifier. * @exception PropertyVetoException If the change is vetoed. **/ public void setLink(String link) throws PropertyVetoException { if (link == null) throw new NullPointerException("link"); String old = link_; if (vetos_ != null) vetos_.fireVetoableChange("link", old, link ); //@CRS link_ = link; if (changes_ != null) changes_.firePropertyChange("link", old, link ); //@CRS } /** * Sets the bookmark name. * @param name The bookmark name. * @exception PropertyVetoException If the change is vetoed. **/ public void setName(String name) throws PropertyVetoException { if (name == null) throw new NullPointerException("name"); String old = bookmarkName_; if (vetos_ != null) vetos_.fireVetoableChange("name", old, name); //@CRS bookmarkName_ = name; if (changes_ != null) changes_.firePropertyChange("name", old, name); //@CRS } /** * Sets the properties associated with the resource link. * The properties are the attributes associated with the * Uniform Resource Identifier. * @param properties The properties. * @exception PropertyVetoException If the change is vetoed. **/ public void setProperties(Properties properties) throws PropertyVetoException { if (properties == null) throw new NullPointerException("properties"); Properties old = properties_; if (vetos_ != null) vetos_.fireVetoableChange("properties", old, properties); //@CRS properties_ = properties; if (changes_ != null) changes_.firePropertyChange("properties", old, properties); //@CRS } /** * Sets the target frame for the resource link. * @param target The target frame. A user-defined frame or * one of the following constants defined in HTMLConstants: * TARGET_BLANK, TARGET_PARENT, TARGET_SELF, or TARGET_TOP. * @exception PropertyVetoException If the change is vetoed. * @see com.ibm.as400.util.html.HTMLConstants **/ public void setTarget(String target) throws PropertyVetoException { if (target == null) throw new NullPointerException("target"); String old = target_; if (vetos_ != null) vetos_.fireVetoableChange("target", old, target); //@CRS target_ = target; if (changes_ != null) changes_.firePropertyChange("target", old, target); //@CRS } /** * Sets the text representation for the resource link. * This is the text that is shown in the HTML document. * @param text The text. * @exception PropertyVetoException If the change is vetoed. **/ public void setText(String text) throws PropertyVetoException { if (text == null) throw new NullPointerException("text"); String old = text_; if (vetos_ != null) vetos_.fireVetoableChange("text", old, text); //@CRS text_ = text; if (changes_ != null) changes_.firePropertyChange("text", old, text); //@CRS } /** * Sets the title for the resource link. * @param title The title. * @exception PropertyVetoException If the change is vetoed. **/ public void setTitle(String title) throws PropertyVetoException { if (title == null) throw new NullPointerException("title"); String old = title_; if (vetos_ != null) vetos_.fireVetoableChange("title", old, title); //@CRS title_ = title; if (changes_ != null) changes_.firePropertyChange("title", old, title); //@CRS } /** * Returns the HTML tag that represents the resource link. * @return The HTML tag. **/ public String toString() { return getTag(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy