package org.ripla.rap.demo.widgets.data; import java.text.DecimalFormat; import java.text.NumberFormat; import org.ripla.interfaces.IMessages; import org.ripla.rap.demo.widgets.Activator; /** * The model for country data. * * @author Luthiger */ public final class CountryBean { // NOPMD by Luthiger on 06.09.12 23:53 private static final NumberFormat FORMAT = new DecimalFormat("#,##0"); //$NON-NLS-1$ // NOPMD by Luthiger on 06.09.12 23:55 private static final String SEPARATOR = ";"; //$NON-NLS-1$ private final String[] values; private CountryBean(final String inLine) { final String[] lData = inLine.split(SEPARATOR); values = new String[lData.length]; values[0] = lData[0]; values[1] = lData[1].trim(); values[2] = lData[2]; values[3] = lData[3]; values[4] = format(lData[4]); values[5] = format(lData[5]); values[6] = format(lData[6]); values[7] = format(lData[7]); values[8] = format(lData[8]); values[9] = format(lData[9]); values[10] = format(lData[10]); values[11] = format(lData[11]); values[12] = format(lData[12]); values[13] = format(lData[13]); values[14] = format(lData[14]); values[15] = format(lData[15]); values[16] = format(lData[16]); values[17] = format(lData[17]); values[18] = format(lData[18]); values[19] = format(lData[19]); values[20] = format(lData[20]); values[21] = format(lData[21]); values[22] = format(lData[22]); values[23] = format(lData[23]); values[24] = format(lData[24]); values[25] = format(lData[25]); values[26] = format(lData[26]); } private String format(final String inValue) { final long lValue = Long.parseLong(inValue); return FORMAT.format(lValue); } /** * Factory method * * @param inLine * String the input data, ';' separated * @return {@link CountryBean} */ public static CountryBean createItem(final String inLine) { return new CountryBean(inLine); } /** * @return the pop2100 */ public String getPop2100() { return values[26]; } /** * @return the pop2095 */ public String getPop2095() { return values[25]; } /** * @return the pop2090 */ public String getPop2090() { return values[24]; } /** * @return the pop2085 */ public String getPop2085() { return values[23]; } /** * @return the pop2080 */ public String getPop2080() { return values[22]; } /** * @return the pop2075 */ public String getPop2075() { return values[21]; } /** * @return the pop2070 */ public String getPop2070() { return values[20]; } /** * @return the pop2065 */ public String getPop2065() { return values[19]; } /** * @return the pop2060 */ public String getPop2060() { return values[18]; } /** * @return the pop2055 */ public String getPop2055() { return values[17]; } /** * @return the pop2050 */ public String getPop2050() { return values[16]; } /** * @return the pop2045 */ public String getPop2045() { return values[15]; } /** * @return the pop2040 */ public String getPop2040() { return values[14]; } /** * @return the pop2035 */ public String getPop2035() { return values[13]; } /** * @return the pop2030 */ public String getPop2030() { return values[12]; } /** * @return the pop2025 */ public String getPop2025() { return values[11]; } /** * @return the pop2020 */ public String getPop2020() { return values[10]; } /** * @return the pop2015 */ public String getPop2015() { return values[9]; } /** * @return the pop2010 */ public String getPop2010() { return values[8]; } /** * @return the pop2005 */ public String getPop2005() { return values[7]; } /** * @return the pop2000 */ public String getPop2000() { return values[6]; } /** * @return the pop1995 */ public String getPop1995() { return values[5]; } /** * @return the pop1990 */ public String getPop1990() { return values[4]; } /** * @return the sresRegion */ public String getSresRegion() { return values[3]; } /** * @return the unRegion11 */ public String getUnRegion11() { return values[2]; } /** * @return the name */ public String getName() { return values[1]; } /** * @return the unCode */ public String getUnCode() { return values[0]; } @Override public String toString() { return String.format("%s (%s)", getName(), getSresRegion()); //$NON-NLS-1$ } /** * @param inColumnIndex * int * @return String the bean's value in the specified column */ public String getValue(final int inColumnIndex) { return values[inColumnIndex]; } /** * @return String the country information formatted as html */ public String toHtml() { final IMessages lMessages = Activator.getMessages(); final StringBuilder out = new StringBuilder(); out.append("<h2>").append(getName()).append("</h2>"); out.append("<table>"); appendRow(out, lMessages.getMessage("widgets.view.code.un"), getUnCode()); appendRow(out, lMessages.getMessage("widgets.view.region.un11"), getUnRegion11()); appendRow(out, lMessages.getMessage("widgets.view.region.sres4"), getSresRegion()); out.append("<td colspan=2>") .append(lMessages.getMessage("widgets.view.label")) .append("</td>"); appendRow(out, "1990", getPop1990()); appendRow(out, "1995", getPop1995()); appendRow(out, "2000", getPop2000()); appendRow(out, "2005", getPop2005()); appendRow(out, "2010", getPop2010()); appendRow(out, "2015", getPop2015()); appendRow(out, "2020", getPop2020()); appendRow(out, "2025", getPop2025()); appendRow(out, "2030", getPop2030()); appendRow(out, "2035", getPop2035()); appendRow(out, "2040", getPop2040()); appendRow(out, "2045", getPop2045()); appendRow(out, "2050", getPop2050()); appendRow(out, "2055", getPop2055()); appendRow(out, "2060", getPop2060()); appendRow(out, "2065", getPop2065()); appendRow(out, "2070", getPop2070()); appendRow(out, "2075", getPop2075()); appendRow(out, "2080", getPop2080()); appendRow(out, "2085", getPop2085()); appendRow(out, "2090", getPop2090()); appendRow(out, "2095", getPop2095()); appendRow(out, "2100", getPop2100()); out.append("</table>"); return new String(out); } private StringBuilder appendRow(final StringBuilder inAppend, final String inVal1, final String inVal2) { inAppend.append("<tr>"); inAppend.append("<td><em>").append(inVal1).append("</em></td>"); inAppend.append("<td><strong>").append(inVal2).append("</strong></td>"); inAppend.append("</tr>"); return inAppend; } }