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

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

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

import java.beans.PropertyChangeSupport;


/**
*  The OrderedList class represents an HTML ordered list, <ol>.
*  

* This example creates a OrderedList tag: *

*  // Create an OrderedList.
*  OrderedList list = new OrderedList();
*  
*  // Use large roman numerals when displaying the list items.
*  list.setType(HTMLConstants.LARGE_ROMAN);
*  
*  // Create an OrderedListItem.
*  OrderedListItem listItem = new OrderedListItem();
*  
*  // Set the data in the list item.
*  listItem.setItemData(new HTMLText("my list item"));
*  
*  // Add the list item to the OrderedList.
*  list.addListItem(listItem);
*  System.out.println(list.toString());
*  
*

* Here is the output of the OrderedList tag:
*

*  <ol type="I">
*  <li>my list item</li>
*  </ol>
*  
*

Here is the output of the OrderedList tag using XSL Formatting Objects: *

*  <fo:block-container>
*  <fo:list-block>
*  <fo:list-item>
*  <fo:list-item-label>I.</fo:list-item-label>
*  <fo:list-item-body><fo:block-container><fo:block>my list item</fo:block>
*  </fo:block-container>
*  </fo:list-item-body>
*  </fo:list-item>
*  </fo:list-block>
*  </fo:block-container>
*  
* *

OrderedList objects generate the following events: *

    *
  • PropertyChangeEvent *
**/ public class OrderedList extends HTMLList { private static final String copyright = "Copyright (C) 1997-2001 International Business Machines Corporation and others."; static final long serialVersionUID = -1082870000306640180L; private String type_; //The labeling scheme used to display the list
    . private int start_ = -1; //Indicate a number other than "1" to use in incrementing the list structure. /** * Constructs a default OrderedList object. **/ public OrderedList() { super(); } /** * Constructs a OrderedList object with the specified order labeling type. * @param type The order labeling used to display the ordered list. One of the following * constants defined in HTMLConstants: NUMBERS, CAPITALS, LOWER_CASE, LARGE_ROMAN, or SMALL_ROMAN. **/ public OrderedList(String type) { super(); setType(type); } /** * Returns the starting number in the order labeling. * @return The starting number. **/ public int getStartingSequenceNumber() { return start_; } /** * Returns the tag for the ordered list. * @return The tag. **/ public String getTag() { //@C1D if(isUseFO()) //@D1A return getFOTag(); //@D1A if (getItems().isEmpty()) { Trace.log(Trace.ERROR, "Attempting to get tag before setting items in list."); throw new ExtendedIllegalStateException( "items", ExtendedIllegalStateException.PROPERTY_NOT_SET ); } StringBuffer s = new StringBuffer(" 0) { s.append(" start=\""); s.append(Integer.toString(start_)); s.append("\""); } if (isCompact()) s.append(" compact=\"compact\""); s.append(getLanguageAttributeTag()); //$B1A s.append(getDirectionAttributeTag()); //$B1A s.append(getAttributeString()); // @Z1A s.append(">\n"); s.append(getItemAttributeTag()); s.append("
\n"); return s.toString(); } /** * Returns the XSL-FO tag for the ordered list. * @return The tag. **/ public String getFOTag() //@D1A { //Save current state of useFO_ boolean useFO = isUseFO(); setUseFO(true); if (getItems().isEmpty()) { Trace.log(Trace.ERROR, "Attempting to get XSL-FO tag before setting items in list."); throw new ExtendedIllegalStateException( "items", ExtendedIllegalStateException.PROPERTY_NOT_SET ); } if(type_ == null) type_ = HTMLConstants.NUMBERS; StringBuffer s = new StringBuffer("\n"); s.append("\n"); s.append(getItemAttributeFOTag(type_)); s.append("\n"); s.append("\n"); //Set useFO_ to previous state setUseFO(useFO); return s.toString(); } /** * Returns the type of the order labeling. * @return The type. **/ public String getType() { return type_; } /** * Returns the type attributes. * @return The type attributes. **/ private String getTypeAttributeTag() { //@C1D StringBuffer s = new StringBuffer(""); if (type_ != null) { if (type_.equals(HTMLConstants.NUMBERS)) s.append(" type=\"1\""); else if (type_.equals(HTMLConstants.CAPITALS)) s.append(" type=\"A\""); else if (type_.equals(HTMLConstants.LOWER_CASE)) s.append(" type=\"a\""); else if (type_.equals(HTMLConstants.LARGE_ROMAN)) s.append(" type=\"I\""); else if (type_.equals(HTMLConstants.SMALL_ROMAN)) s.append(" type=\"i\""); return s.toString(); } else return ""; } /** * Sets the order labeling to be used. The default order is by number, (1, 2, 3, etc.). * * @param type The order labeling scheme. One of the following constants * defined in HTMLConstants: NUMBERS, CAPITALS, LOWER_CASE, LARGE_ROMAN, or SMALL_ROMAN. * * @see com.ibm.as400.util.html.HTMLConstants **/ public void setType(String type) { if (type == null) throw new NullPointerException("type"); // If type is not one of the valid HTMLConstants, throw an exception. if ( !(type.equals(HTMLConstants.NUMBERS)) && !(type.equals(HTMLConstants.CAPITALS)) && !(type.equals(HTMLConstants.LOWER_CASE)) && !(type.equals(HTMLConstants.LARGE_ROMAN)) && !(type.equals(HTMLConstants.SMALL_ROMAN)) ) { throw new ExtendedIllegalArgumentException("type", ExtendedIllegalArgumentException.PARAMETER_VALUE_NOT_VALID); } if (Trace.isTraceOn()) Trace.log(Trace.INFORMATION, " Setting order labeling type for
    ."); String old = type_; type_ = type; if (changes_ != null) changes_.firePropertyChange("type", old, type ); //@CRS } /** * Deserializes and initializes transient data. **/ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { in.defaultReadObject(); //@CRS changes_ = new PropertyChangeSupport(this); } /** * Sets the starting number to something other than "1" to use in incrementing the list structure. * Values are automatically converted to the TYPE attribute, if present. The starting number must * be a positive integer. * * @param start The ordered list starting number. * **/ public void setStartingSequenceNumber(int start) { if (start < 0) throw new ExtendedIllegalArgumentException("start", ExtendedIllegalArgumentException.RANGE_NOT_VALID); if (Trace.isTraceOn()) Trace.log(Trace.INFORMATION, " Setting starting number for
      ."); int old = start_; start_ = start; if (changes_ != null) changes_.firePropertyChange("start", new Integer(old), new Integer(start) ); //@CRS } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy