FileDocCategorySizeDatePackage
TabSet.javaAPI DocJava SE 5 API5731Fri Aug 26 14:58:16 BST 2005javax.swing.text

TabSet

public class TabSet extends Object implements Serializable
A TabSet is comprised of many TabStops. It offers methods for locating the closest TabStop to a given position and finding all the potential TabStops. It is also immutable.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see {@link java.beans.XMLEncoder}.

author
Scott Violet
version
1.15 12/19/03

Fields Summary
private TabStop[]
tabs
TabStops this TabSet contains.
private int
hashCode
Since this class is immutable the hash code could be calculated once. MAX_VALUE means that it was not initialized yet. Hash code shouldn't has MAX_VALUE value.
Constructors Summary
public TabSet(TabStop[] tabs)
Creates and returns an instance of TabSet. The array of Tabs passed in must be sorted in ascending order.

 

                            
       
	// PENDING(sky): If this becomes a problem, make it sort.
	if(tabs != null) {
	    int          tabCount = tabs.length;

	    this.tabs = new TabStop[tabCount];
	    System.arraycopy(tabs, 0, this.tabs, 0, tabCount);
	}
	else
	    this.tabs = null;
    
Methods Summary
public booleanequals(java.lang.Object o)
Indicates whether this TabSet is equal to another one.

param
o the TabSet instance which this instance should be compared to.
return
true if o is the instance of TabSet, has the same number of TabStops and they are all equal, false otherwise.
since
1.5

        if (o == this) {
            return true;
        }
        if (o instanceof TabSet) {
            TabSet ts = (TabSet) o;
            int count = getTabCount();
            if (ts.getTabCount() != count) {
                return false;
            }
            for (int i=0; i < count; i++) {
                TabStop ts1 = getTab(i); 
                TabStop ts2 = ts.getTab(i); 
                if ((ts1 == null && ts2 != null) ||
                        (ts1 != null && !getTab(i).equals(ts.getTab(i)))) {
                    return false;
                }
            }
            return true;
        }
        return false;
    
public javax.swing.text.TabStopgetTab(int index)
Returns the TabStop at index index. This will throw an IllegalArgumentException if index is outside the range of tabs.

	int          numTabs = getTabCount();

	if(index < 0 || index >= numTabs)
	    throw new IllegalArgumentException(index +
					      " is outside the range of tabs");
	return tabs[index];
    
public javax.swing.text.TabStopgetTabAfter(float location)
Returns the Tab instance after location. This will return null if there are no tabs after location.

	int     index = getTabIndexAfter(location);

	return (index == -1) ? null : tabs[index];
    
public intgetTabCount()
Returns the number of Tab instances the receiver contains.

	return (tabs == null) ? 0 : tabs.length;
    
public intgetTabIndex(javax.swing.text.TabStop tab)

return
the index of the TabStop tab, or -1 if tab is not contained in the receiver.

	for(int counter = getTabCount() - 1; counter >= 0; counter--)
	    // should this use .equals?
	    if(getTab(counter) == tab)
		return counter;
	return -1;
    
public intgetTabIndexAfter(float location)
Returns the index of the Tab to be used after location. This will return -1 if there are no tabs after location.

	int     current, min, max;

	min = 0;
	max = getTabCount();
	while(min != max) {
	    current = (max - min) / 2 + min;
	    if(location > tabs[current].getPosition()) {
		if(min == current)
		    min = max;
		else
		    min = current;
	    }
	    else {
		if(current == 0 || location > tabs[current - 1].getPosition())
		    return current;
		max = current;
	    }
	}
	// no tabs after the passed in location.
	return -1;
    
public inthashCode()
Returns a hashcode for this set of TabStops.

return
a hashcode value for this set of TabStops.
since
1.5

        if (hashCode == Integer.MAX_VALUE) {
            hashCode = 0;
            int len = getTabCount();
            for (int i = 0; i < len; i++) {
                TabStop ts = getTab(i);
                hashCode ^= ts != null ? getTab(i).hashCode() : 0;
            }
            if (hashCode == Integer.MAX_VALUE) {
                hashCode -= 1;
            }
        }
        return hashCode;
    
public java.lang.StringtoString()
Returns the string representation of the set of tabs.

	int            tabCount = getTabCount();
	StringBuffer   buffer = new StringBuffer("[ ");

	for(int counter = 0; counter < tabCount; counter++) {
	    if(counter > 0)
		buffer.append(" - ");
	    buffer.append(getTab(counter).toString());
	}
	buffer.append(" ]");
	return buffer.toString();