From: <za...@us...> - 2010-07-09 08:58:23
|
Revision: 12487 http://pcgen.svn.sourceforge.net/pcgen/?rev=12487&view=rev Author: zaister Date: 2010-07-09 08:58:16 +0000 (Fri, 09 Jul 2010) Log Message: ----------- Backport INFOTEXT tag changes to 5.16.x branch Issue#: CODE-161 Modified Paths: -------------- branches/5.16.x/pcgen/code/src/java/pcgen/cdom/enumeration/ListKey.java branches/5.16.x/pcgen/code/src/java/pcgen/cdom/enumeration/StringKey.java branches/5.16.x/pcgen/code/src/java/pcgen/gui/GameModes.java branches/5.16.x/pcgen/code/src/java/pcgen/gui/editor/SourceBasePanel.java branches/5.16.x/pcgen/code/src/java/pcgen/gui/sources/MainSource.java branches/5.16.x/pcgen/code/src/java/plugin/lsttokens/campaign/InfotextToken.java branches/5.16.x/pcgen/code/src/test/pcgen/persistence/lst/InstallLoaderTest.java branches/5.16.x/pcgen/code/src/utest/plugin/lsttokens/campaign/InfotextTokenTest.java Modified: branches/5.16.x/pcgen/code/src/java/pcgen/cdom/enumeration/ListKey.java =================================================================== --- branches/5.16.x/pcgen/code/src/java/pcgen/cdom/enumeration/ListKey.java 2010-07-09 08:56:47 UTC (rev 12486) +++ branches/5.16.x/pcgen/code/src/java/pcgen/cdom/enumeration/ListKey.java 2010-07-09 08:58:16 UTC (rev 12487) @@ -155,6 +155,8 @@ public static final ListKey<String> SAVE = new ListKey<String>(); /** SECTION 15 - a ListKey */ public static final ListKey<String> SECTION_15 = new ListKey<String>(); + /** INFO_TEXT - a ListKey */ + public static final ListKey<String> INFO_TEXT = new ListKey<String>(); /** SELECTED_WEAPON_PROF_BONUS - a ListKey */ public static final ListKey<String> SELECTED_WEAPON_PROF_BONUS = new ListKey<String>(); /** SPECIAL_ABILITY - a ListKey */ Modified: branches/5.16.x/pcgen/code/src/java/pcgen/cdom/enumeration/StringKey.java =================================================================== --- branches/5.16.x/pcgen/code/src/java/pcgen/cdom/enumeration/StringKey.java 2010-07-09 08:56:47 UTC (rev 12486) +++ branches/5.16.x/pcgen/code/src/java/pcgen/cdom/enumeration/StringKey.java 2010-07-09 08:58:16 UTC (rev 12487) @@ -36,7 +36,7 @@ NAME, KEY_NAME, WORSHIPPERS, TITLE, HOLY_ITEM, MASTER_HP_FORMULA, MASTER_CHECK_FORMULA, MASTER_BAB_FORMULA, BIRTHPLACE, BIRTHDAY, BOOK_TYPE, CHOICE_STRING, DESTINATION, PAGE_USAGE, MINDEVVER, MINVER, BIO, DESCRIPTION, GENRE, HELP, APPEARANCE, CATCH_PHRASE, - OUTPUT_NAME, INFO_TEXT, PUB_NAME_LONG, COST, PUB_NAME_SHORT, + OUTPUT_NAME, PUB_NAME_LONG, COST, PUB_NAME_SHORT, CURRENT_EQUIP_SET_NAME, REGION, PUB_NAME_WEB, SETTING, TEMP_DESCRIPTION, TRAIT2, TRAIT1, SKIN_COLOR, HAIR_COLOR, SUB_REGION, SPEECH_TENDENCY, PHOBIAS, INTERESTS, RESIDENCE, SPELLBOOK_AUTO_ADD_KNOWN, PLAYERS_NAME, HANDED, HAIR_STYLE, PORTRAIT_PATH, EYE_COLOR, LOCATION, Modified: branches/5.16.x/pcgen/code/src/java/pcgen/gui/GameModes.java =================================================================== --- branches/5.16.x/pcgen/code/src/java/pcgen/gui/GameModes.java 2010-07-09 08:56:47 UTC (rev 12486) +++ branches/5.16.x/pcgen/code/src/java/pcgen/gui/GameModes.java 2010-07-09 08:58:16 UTC (rev 12487) @@ -223,7 +223,12 @@ JRadioButtonMenuItem campaignMenuItem = new JRadioButtonMenuItem(aCamp.getDisplayName()); gameModeGroup.add(firstSubMenu.add(campaignMenuItem)); - Utility.setDescription(campaignMenuItem, aCamp.getSafe(StringKey.INFO_TEXT)); + String description = ""; + for (String info : aCamp.getListFor(ListKey.INFO_TEXT)) + { + description += info + "\n"; + } + Utility.setDescription(campaignMenuItem, description); campaigns.add(aCamp); campaignMenuItems.add(campaignMenuItem); campaignMenuItem.addActionListener(checkBoxHandler); Modified: branches/5.16.x/pcgen/code/src/java/pcgen/gui/editor/SourceBasePanel.java =================================================================== --- branches/5.16.x/pcgen/code/src/java/pcgen/gui/editor/SourceBasePanel.java 2010-07-09 08:56:47 UTC (rev 12486) +++ branches/5.16.x/pcgen/code/src/java/pcgen/gui/editor/SourceBasePanel.java 2010-07-09 08:58:16 UTC (rev 12487) @@ -89,7 +89,6 @@ private JTextField destination; private String game; private JTextField genre; - private JTextField infoText; private JTextField pubNameLong; private JTextField pubNameShort; private JTextField pubNameWeb; @@ -140,7 +139,7 @@ theCampaign.put(ObjectKey.IS_D20, isD20.getSelectedObjects() != null); theCampaign.put(ObjectKey.SHOW_IN_MENU, showInMenu.getSelectedObjects() != null); theCampaign.put(ObjectKey.IS_LICENSED, isLicensed.getSelectedObjects() != null); - setStringValue(StringKey.INFO_TEXT, infoText.getText()); + theCampaign.removeListFor(ListKey.INFO_TEXT); setStringValue(StringKey.BOOK_TYPE, bookType.getSelectedItem().toString()); theCampaign.put(StringKey.DESTINATION, destination.getText().trim()); theCampaign.removeListFor(ListKey.LICENSE); @@ -160,6 +159,11 @@ theCampaign.addToListFor(ListKey.LICENSE, ((String) i.next())); } + for (Iterator i = sourceModel.getInfotextList().iterator(); i.hasNext();) + { + theCampaign.addToListFor(ListKey.INFO_TEXT, (String) i.next()); + } + for (Iterator i = sourceModel.getCopyrightList().iterator(); i.hasNext();) { theCampaign.addToListFor(ListKey.SECTION_15, (String) i.next()); @@ -195,7 +199,7 @@ theCampaign = (Campaign) thisPObject; sourceModel.setLists(buildOptionsList(theCampaign), theCampaign.getSafeListFor(ListKey.LICENSE), - theCampaign.getSafeListFor(ListKey.SECTION_15)); + theCampaign.getSafeListFor(ListKey.INFO_TEXT), theCampaign.getSafeListFor(ListKey.SECTION_15)); rank.setValue(Integer.valueOf(theCampaign.getSafe(IntegerKey.CAMPAIGN_RANK))); game = StringUtil.join(theCampaign.getSafeListFor(ListKey.GAME_MODE), ", "); @@ -227,8 +231,6 @@ isD20.setSelected(theCampaign.getSafe(ObjectKey.IS_D20)); isLicensed.setSelected(theCampaign.getSafe(ObjectKey.IS_LICENSED)); showInMenu.setSelected(theCampaign.getSafe(ObjectKey.SHOW_IN_MENU)); - infoText.setText(theCampaign.getSafe(StringKey.INFO_TEXT)); - infoText.setCaretPosition(0); //Scroll to beginning of inserted text bookType.setSelectedItem(theCampaign.getSafe(StringKey.BOOK_TYPE)); setting.setText(theCampaign.getSafe(StringKey.SETTING)); setting.setCaretPosition(0); //Scroll to beginning of inserted text @@ -279,6 +281,11 @@ return returnList; } + private void addInfotext() + { + sourceModel.addInfotext(); + } + private void addCopyright() { sourceModel.addCopyright(); @@ -313,10 +320,8 @@ gmxcrawl = new JCheckBox("XCrawl"); gmsidewinder = new JCheckBox("Sidewinder"); - infoText = new JTextField(); // SwingConstants.LEFT is equivalent to JTextField.LEFT but more // 'correct' in a Java coding context (it is a static reference) - infoText.setHorizontalAlignment(SwingConstants.LEFT); pubNameWeb = new JTextField(); pubNameWeb.setHorizontalAlignment(SwingConstants.LEFT); pubNameShort = new JTextField(); @@ -451,10 +456,6 @@ , GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); - aPanel.add(new JLabel("Info Text"), new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0 - , GridBagConstraints.EAST, - GridBagConstraints.NONE, - new Insets(5, 5, 5, 2), 0, 0)); aPanel.add(new JLabel("Game Mode"), new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0 , GridBagConstraints.EAST, GridBagConstraints.NONE, @@ -496,10 +497,6 @@ , GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 2, 5, 5), 0, 0)); - aPanel.add(infoText, new GridBagConstraints(1, 0, 8, 1, 1.0, 0.0 - , GridBagConstraints.WEST, - GridBagConstraints.HORIZONTAL, - new Insets(5, 2, 5, 5), 0, 0)); aPanel.add(pubNameWeb, new GridBagConstraints(1, 2, 2, 1, 0.8, 0.0 , GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, @@ -544,6 +541,7 @@ aPanel = new JPanel(); final JComboBoxEx legalCombo = new JComboBoxEx(); legalCombo.addItem("COPYRIGHT"); + legalCombo.addItem("INFOTEXT"); legalCombo.addItem("LICENSE"); legalCombo.addItem("OPTION"); legalCombo.setSelectedIndex(0); @@ -560,10 +558,13 @@ case 0 : //COPYRIGHT addCopyright(); break; - case 1 : //LICENSE + case 1 : //INFOTEXT + addInfotext(); + break; + case 2 : //LICENSE addLicense(); break; - case 2 : //OPTION + case 3 : //OPTION addOption(); break; } @@ -603,6 +604,7 @@ final class SourceTableModel extends AbstractTableModel { + List<String> infotextList = null; List<String> copyrightList = null; List<String> licenseList = null; List<String> optionList = null; @@ -640,6 +642,11 @@ return "Out Of Bounds"; } + public List<String> getInfotextList() + { + return infotextList; + } + public List<String> getCopyrightList() { return copyrightList; @@ -650,7 +657,8 @@ return licenseList; } - public void setLists(List<String> optList, List<String> licList, List<String> copyList) + public void setLists(List<String> optList, List<String> licList, List<String> infoList, + List<String> copyList) { optionList = (optList == null) ? new ArrayList<String>() : optList; optionValues = new ArrayList<String>(); @@ -666,6 +674,7 @@ } licenseList = (licList == null) ? new ArrayList<String>() : licList; + infotextList = (infoList == null) ? new ArrayList<String>() : infoList; copyrightList = (copyList == null) ? new ArrayList<String>() : copyList; } @@ -686,7 +695,7 @@ return 0; } - return optionList.size() + licenseList.size() + copyrightList.size(); + return optionList.size() + licenseList.size() + infotextList.size() + copyrightList.size(); } public void setValueAt(String aValue, int rowIndex, int columnIndex) @@ -723,6 +732,15 @@ rowIndex -= copyrightList.size(); + if (rowIndex < infotextList.size()) + { + infotextList.set(rowIndex, aValue); + + return; + } + + rowIndex -= infotextList.size(); + if (rowIndex < licenseList.size()) { licenseList.set(rowIndex, aValue); @@ -747,6 +765,18 @@ rowIndex -= optionList.size(); + if (rowIndex < infotextList.size()) + { + if (columnIndex == 0) + { + return "INFOTEXT:"; + } + + return infotextList.get(rowIndex); + } + + rowIndex -= infotextList.size(); + if (rowIndex < copyrightList.size()) { if (columnIndex == 0) @@ -772,6 +802,11 @@ return ""; } + public void addInfotext() + { + infotextList.add(""); + } + public void addCopyright() { copyrightList.add(""); @@ -805,6 +840,15 @@ row -= optionList.size(); + if (row < infotextList.size()) + { + infotextList.remove(row); + + return; + } + + row -= infotextList.size(); + if (row < copyrightList.size()) { copyrightList.remove(row); Modified: branches/5.16.x/pcgen/code/src/java/pcgen/gui/sources/MainSource.java =================================================================== --- branches/5.16.x/pcgen/code/src/java/pcgen/gui/sources/MainSource.java 2010-07-09 08:56:47 UTC (rev 12486) +++ branches/5.16.x/pcgen/code/src/java/pcgen/gui/sources/MainSource.java 2010-07-09 08:58:16 UTC (rev 12487) @@ -576,14 +576,19 @@ } boolean infoDisplayed = false; - bString = aCamp.getSafe(StringKey.INFO_TEXT); + List<String> info = aCamp.getListFor(ListKey.INFO_TEXT); + if (info != null) + { + if (!infoDisplayed) + { + sb.append("<br>"); + } - if (bString.length() > 0) - { - sb.append("<p><b>INFORMATION</b>:<br>") - .append(bString) - .append("</p>"); - infoDisplayed = true; + sb.append("<b>INFORMATION</b>:<br>"); + for (String infotext : info) + { + sb.append(infotext).append("<br>"); + } } List<String> copyright = aCamp.getListFor(ListKey.SECTION_15); Modified: branches/5.16.x/pcgen/code/src/java/plugin/lsttokens/campaign/InfotextToken.java =================================================================== --- branches/5.16.x/pcgen/code/src/java/plugin/lsttokens/campaign/InfotextToken.java 2010-07-09 08:56:47 UTC (rev 12486) +++ branches/5.16.x/pcgen/code/src/java/plugin/lsttokens/campaign/InfotextToken.java 2010-07-09 08:58:16 UTC (rev 12487) @@ -18,20 +18,29 @@ package plugin.lsttokens.campaign; import java.net.URI; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import pcgen.cdom.enumeration.ListKey; import pcgen.cdom.enumeration.StringKey; import pcgen.core.Campaign; +import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.InstallLstToken; +import pcgen.rules.context.Changes; import pcgen.rules.context.LoadContext; +import pcgen.rules.persistence.token.AbstractToken; import pcgen.rules.persistence.token.CDOMPrimaryToken; import pcgen.util.Logging; /** * Class deals with INFOTEXT Token */ -public class InfotextToken implements CDOMPrimaryToken<Campaign>, InstallLstToken +public class InfotextToken extends AbstractToken implements + CDOMPrimaryToken<Campaign>, InstallLstToken { + @Override public String getTokenName() { return "INFOTEXT"; @@ -39,30 +48,38 @@ public boolean parse(Campaign campaign, String value, URI sourceUri) { - campaign.put(StringKey.INFO_TEXT, value); + campaign.addToListFor(ListKey.INFO_TEXT, value); return true; } - public boolean parse(LoadContext context, Campaign camp, String value) + public boolean parse(LoadContext context, Campaign campaign, String value) + throws PersistenceLayerException { - if (value == null || value.length() == 0) + if (isEmpty(value)) { - Logging.log(Logging.LST_ERROR, getTokenName() + " arguments may not be empty"); return false; } - context.getObjectContext().put(camp, StringKey.INFO_TEXT, value); + context.obj.addToList(campaign, ListKey.INFO_TEXT, value); return true; } - public String[] unparse(LoadContext context, Campaign camp) + public String[] unparse(LoadContext context, Campaign campaign) { - String infotext = - context.getObjectContext().getString(camp, StringKey.INFO_TEXT); - if (infotext == null) + Changes<String> changes = + context.getObjectContext().getListChanges(campaign, + ListKey.INFO_TEXT); + List<String> set = new ArrayList<String>(); + Collection<String> added = changes.getAdded(); + if (added != null && !added.isEmpty()) { + set.addAll(added); + } + if (set.isEmpty()) + { + //Okay, no info text return null; } - return new String[]{infotext}; + return set.toArray(new String[set.size()]); } public Class<Campaign> getTokenClass() Modified: branches/5.16.x/pcgen/code/src/test/pcgen/persistence/lst/InstallLoaderTest.java =================================================================== --- branches/5.16.x/pcgen/code/src/test/pcgen/persistence/lst/InstallLoaderTest.java 2010-07-09 08:56:47 UTC (rev 12486) +++ branches/5.16.x/pcgen/code/src/test/pcgen/persistence/lst/InstallLoaderTest.java 2010-07-09 08:58:16 UTC (rev 12487) @@ -179,7 +179,8 @@ .get(1)); assertEquals("Checking copyright 3", COPYRIGHT_3, camp.getSafeListFor(ListKey.SECTION_15) .get(2)); - assertEquals("Checking info text", INFOTEXT, camp.getSafe(StringKey.INFO_TEXT)); + assertEquals("Checking info text", INFOTEXT, camp.getSafeListFor(ListKey.INFO_TEXT) + .get(0)); assertEquals("Checking pub name short", PUBNAMESHORT, camp.getSafe(StringKey.PUB_NAME_SHORT)); assertEquals("Checking pub name long", PUBNAMELONG, camp.getSafe(StringKey.PUB_NAME_LONG)); assertEquals("Checking pub name web", SOURCEWEB, camp.getSafe(StringKey.PUB_NAME_WEB)); Modified: branches/5.16.x/pcgen/code/src/utest/plugin/lsttokens/campaign/InfotextTokenTest.java =================================================================== --- branches/5.16.x/pcgen/code/src/utest/plugin/lsttokens/campaign/InfotextTokenTest.java 2010-07-09 08:56:47 UTC (rev 12486) +++ branches/5.16.x/pcgen/code/src/utest/plugin/lsttokens/campaign/InfotextTokenTest.java 2010-07-09 08:58:16 UTC (rev 12487) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007 Tom Parker <th...@us...> + * Infotext (c) 2007 Tom Parker <th...@us...> * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free @@ -17,14 +17,20 @@ */ package plugin.lsttokens.campaign; -import pcgen.cdom.enumeration.StringKey; +import java.util.List; + +import org.junit.Test; + +import pcgen.cdom.enumeration.ListKey; import pcgen.core.Campaign; +import pcgen.persistence.PersistenceLayerException; import pcgen.rules.persistence.CDOMLoader; import pcgen.rules.persistence.token.CDOMPrimaryToken; -import plugin.lsttokens.testsupport.AbstractStringTokenTestCase; +import plugin.lsttokens.testsupport.AbstractTokenTestCase; import plugin.lsttokens.testsupport.CDOMTokenLoader; +import plugin.lsttokens.testsupport.ConsolidationRule; -public class InfotextTokenTest extends AbstractStringTokenTestCase<Campaign> +public class InfotextTokenTest extends AbstractTokenTestCase<Campaign> { static InfotextToken token = new InfotextToken(); @@ -49,15 +55,203 @@ return token; } + public ListKey<?> getListKey() + { + return ListKey.INFO_TEXT; + } + + @Test + public void dummyTest() + { + // Just to get Eclipse to recognize this as a JUnit 4.0 Test Case + } + + @Test + public void testValidInputSimple() throws PersistenceLayerException + { + ListKey<?> listKey = getListKey(); + if (listKey != null) + { + List<?> coll; + assertTrue(parse("Rheinhessen")); + coll = primaryProf.getListFor(listKey); + assertEquals(1, coll.size()); + assertTrue(coll.contains((Object) "Rheinhessen")); + assertTrue(primaryContext.ref.validate(null)); + } + } + + @Test + public void testValidInputNonEnglish() throws PersistenceLayerException + { + ListKey<?> listKey = getListKey(); + if (listKey != null) + { + List<?> coll; + assertTrue(parse("Nieder�sterreich")); + coll = primaryProf.getListFor(listKey); + assertEquals(1, coll.size()); + assertTrue(coll.contains((Object) "Nieder�sterreich")); + assertTrue(primaryContext.ref.validate(null)); + } + } + + @Test + public void testValidInputSpace() throws PersistenceLayerException + { + ListKey<?> listKey = getListKey(); + if (listKey != null) + { + List<?> coll; + assertTrue(parse("Finger Lakes")); + coll = primaryProf.getListFor(listKey); + assertEquals(1, coll.size()); + assertTrue(coll.contains((Object) "Finger Lakes")); + assertTrue(primaryContext.ref.validate(null)); + } + } + + @Test + public void testValidInputHyphen() throws PersistenceLayerException + { + ListKey<?> listKey = getListKey(); + if (listKey != null) + { + List<?> coll; + assertTrue(parse("Languedoc-Roussillon")); + coll = primaryProf.getListFor(listKey); + assertEquals(1, coll.size()); + assertTrue(coll.contains((Object) "Languedoc-Roussillon")); + assertTrue(primaryContext.ref.validate(null)); + } + } + + @Test + public void testValidInputY() throws PersistenceLayerException + { + ListKey<?> listKey = getListKey(); + if (listKey != null) + { + List<?> coll; + assertTrue(parse("Yarra Valley")); + coll = primaryProf.getListFor(listKey); + assertEquals(1, coll.size()); + assertTrue(coll.contains((Object) "Yarra Valley")); + assertTrue(primaryContext.ref.validate(null)); + } + } + + @Test + public void testValidInputList() throws PersistenceLayerException + { + ListKey<?> listKey = getListKey(); + if (listKey != null) + { + List<?> coll; + assertTrue(parse("Nieder�sterreich")); + assertTrue(parse("Finger Lakes")); + coll = primaryProf.getListFor(listKey); + assertEquals(2, coll.size()); + assertTrue(coll.contains((Object) "Nieder�sterreich")); + assertTrue(coll.contains((Object) "Finger Lakes")); + assertTrue(primaryContext.ref.validate(null)); + } + } + + @Test + public void testValidInputMultList() throws PersistenceLayerException + { + ListKey<?> listKey = getListKey(); + if (listKey != null) + { + List<?> coll; + assertTrue(parse("Nieder�sterreich")); + assertTrue(parse("Finger Lakes")); + assertTrue(parse("Languedoc-Roussillon")); + assertTrue(parse("Rheinhessen")); + coll = primaryProf.getListFor(listKey); + assertEquals(4, coll.size()); + assertTrue(coll.contains((Object) "Nieder�sterreich")); + assertTrue(coll.contains((Object) "Finger Lakes")); + assertTrue(coll.contains((Object) "Languedoc-Roussillon")); + assertTrue(coll.contains((Object) "Rheinhessen")); + assertTrue(primaryContext.ref.validate(null)); + } + } + + @Test + public void testInvalidListEmpty() throws PersistenceLayerException + { + assertFalse(parse("")); + assertNull(primaryProf.getListFor(getListKey())); + assertNoSideEffects(); + } + + @Test + public void testInvalidEmpty() throws PersistenceLayerException + { + assertFalse(parse("")); + assertNull(primaryProf.getListFor(getListKey())); + assertNoSideEffects(); + } + + @Test + public void testRoundRobinBase() throws PersistenceLayerException + { + runRoundRobin("Rheinhessen"); + } + + @Test + public void testRoundRobinWithSpace() throws PersistenceLayerException + { + runRoundRobin("Finger Lakes"); + } + + @Test + public void testRoundRobinNonEnglishAndN() throws PersistenceLayerException + { + runRoundRobin("Nieder�sterreich"); + } + + @Test + public void testRoundRobinHyphen() throws PersistenceLayerException + { + runRoundRobin("Languedoc-Roussillon"); + } + + @Test + public void testRoundRobinY() throws PersistenceLayerException + { + runRoundRobin("Yarra Valley"); + } + + @Test + public void testRoundRobinThree() throws PersistenceLayerException + { + runRoundRobin("Languedoc-Roussillon", "Rheinhessen", "Yarra Valley"); + } + + @Test + public void testRoundRobinThreeDupe() throws PersistenceLayerException + { + runRoundRobin("Languedoc-Roussillon", "Rheinhessen", "Rheinhessen"); + } + @Override - protected boolean isClearLegal() + protected String getAlternateLegalValue() { - return false; + return "Languedoc-Roussillon"; } @Override - public StringKey getStringKey() + protected String getLegalValue() { - return StringKey.INFO_TEXT; + return "Yarra Valley"; } + + @Override + protected ConsolidationRule getConsolidationRule() + { + return ConsolidationRule.SEPARATE; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |