	private Integer[] getRows( String line, int indent ) {
		final FontMetrics METRICS = getFontMetrics(getFont());
		final int WIDTH = getWidth() - 2*PAD;
		final int indentsize = indent*METRICS.stringWidth(" ")*indent;
		List<Integer> rows = new util.LinkedList<Integer>();
		int row = 0;
		int remaining = WIDTH;
		if ( METRICS.stringWidth(" ")*indent > WIDTH )
			return new Integer[0];
		StringTokenizer st = new StringTokenizer(line, " ",true); 
		while (st.hasMoreTokens()) {
			String tok = st.nextToken();
			int width = METRICS.stringWidth(tok);
			if ( width <= remaining ) {
				row += tok.length();
				remaining -= width;
			} else if ( width > WIDTH-indentsize ) {
				for (int i = 0; i < tok.length(); ++i) {
					char chr = tok.charAt(i);
					width = METRICS.charWidth(chr);
					if  ( width <= remaining ) {
						remaining -= width;
						row += 1;
					} else {
						rows.add(row);
						row = 1;
						remaining = WIDTH - indentsize - width;
					}
				}
			} else {
				rows.add(row);
				row = tok.length();
				remaining = WIDTH - indentsize - width;
			}
		}
		if (row != 0)
			rows.add(row);
		return rows.toArray(new Integer[rows.size()]);
	}

	private Integer[] getRows( String line, int indent ) {
		final FontMetrics METRICS = getFontMetrics(getFont());
		final int WIDTH = getWidth() - 2*PAD;
		final int indentsize = METRICS.stringWidth(" ")*indent;
		List<Integer> rows = new util.LinkedList<Integer>();
		int row = 0;
		int remaining = WIDTH;
		if ( METRICS.stringWidth(" ")*indent > WIDTH )
			return new Integer[0];
		StringTokenizer st = new StringTokenizer(line, " ",true); 
		while (st.hasMoreTokens()) {
			String tok = st.nextToken();
			int width = METRICS.stringWidth(tok);
			if ( width <= remaining ) {
				row += tok.length();
				remaining -= width;
			} else if ( width > WIDTH-indentsize ) {
				for (int i = 0; i < tok.length(); ++i) {
					char chr = tok.charAt(i);
					width = METRICS.charWidth(chr);
					if  ( width <= remaining ) {
						remaining -= width;
						row += 1;
					} else {
						rows.add(row);
						row = 1;
						remaining = WIDTH - indentsize - width;
					}
				}
			} else {
				rows.add(row);
				row = tok.length();
				remaining = WIDTH - indentsize - width;
			}
		}
		if (row != 0)
			rows.add(row);
		return rows.toArray(new Integer[rows.size()]);
	}
