blob: f8a91bd850786b699c3d2e7181ac50dc6ae515e9 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006 Sybase, Inc. and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Sybase, Inc. - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.pagedesigner.css2.marker;
import org.eclipse.jst.pagedesigner.css2.list.CSSHtmlListStyleData;
/**
* @author mengbo
*/
/*package*/ class RomanCounter extends EnumerableCounter {
RomanCounter()
{
// do nothing
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jst.pagedesigner.css2.list.EnumerableCounter#getString(int,
* boolean)
*/
public String getNextString(int index, int type) {
switch (type) {
case CSSHtmlListStyleData.LIST_T_LOWER_ROMAN:
return getString(index).toLowerCase();
case CSSHtmlListStyleData.LIST_T_UPPER_ROMAN:
return getString(index);
default:
return null;
}
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jst.pagedesigner.css2.list.NumberCounter#getString(int)
*/
/*package*/ String getString(int index) {
// FIXME: Need to enhance more.
StringBuffer roman = new StringBuffer();
int a, b, c, d;
a = (index / 1000) * 1000;
b = ((index / 100) % 10) * 100;
c = ((index / 10) % 10) * 10;
d = ((index / 1) % 10) * 1;
if (a == 1000)
roman.append("M"); //$NON-NLS-1$
else if (a == 2000)
roman.append("MM"); //$NON-NLS-1$
else if (a == 3000)
roman.append("MMM"); //$NON-NLS-1$
if (b == 100)
roman.append("C"); //$NON-NLS-1$
else if (b == 200)
roman.append("CC"); //$NON-NLS-1$
else if (b == 300)
roman.append("CCC"); //$NON-NLS-1$
else if (b == 400)
roman.append("CD"); //$NON-NLS-1$
else if (b == 500)
roman.append("D"); //$NON-NLS-1$
else if (b == 600)
roman.append("DC"); //$NON-NLS-1$
else if (b == 700)
roman.append("DCC"); //$NON-NLS-1$
else if (b == 800)
roman.append("DCCC"); //$NON-NLS-1$
else if (b == 900)
roman.append("CM"); //$NON-NLS-1$
if (c == 10)
roman.append("X"); //$NON-NLS-1$
else if (c == 20)
roman.append("XX"); //$NON-NLS-1$
else if (c == 30)
roman.append("XXX"); //$NON-NLS-1$
else if (c == 40)
roman.append("XL"); //$NON-NLS-1$
else if (c == 50)
roman.append("L"); //$NON-NLS-1$
else if (c == 60)
roman.append("LX"); //$NON-NLS-1$
else if (c == 70)
roman.append("LXX"); //$NON-NLS-1$
else if (c == 80)
roman.append("LXXX"); //$NON-NLS-1$
else if (c == 90)
roman.append("XC"); //$NON-NLS-1$
if (d == 1)
roman.append("I"); //$NON-NLS-1$
else if (d == 2)
roman.append("II"); //$NON-NLS-1$
else if (d == 3)
roman.append("III"); //$NON-NLS-1$
else if (d == 4)
roman.append("IV"); //$NON-NLS-1$
else if (d == 5)
roman.append("V"); //$NON-NLS-1$
else if (d == 6)
roman.append("VI"); //$NON-NLS-1$
else if (d == 7)
roman.append("VII"); //$NON-NLS-1$
else if (d == 8)
roman.append("VIII"); //$NON-NLS-1$
else if (d == 9)
roman.append("IX"); //$NON-NLS-1$
return roman.toString();
}
}