[izpack-devel] patch: use intance number to customize strings

Bartz, Klaus Klaus.Bartz at coi.de
Thu Nov 16 18:33:10 CET 2006

Hi Stefan,
I do not use multiple instances of one panel class (else I 
had seen the problem at impl the feature) but it hear good.
Unfortunately I have nearly no time...
Please send us your changes as a diff -u (comments as java 
comments in the files). Simplest you checkout the SVN
IzPack project and make the diff with SVN.



>-----Original Message-----
>From: izpack-devel-bounces at lists.berlios.de
>[mailto:izpack-devel-bounces at lists.berlios.de]On Behalf Of Stefan
>Sent: Thursday, November 16, 2006 2:53 PM
>To: izpack-devel at lists.berlios.de
>Subject: [izpack-devel] patch: use intance number to customize strings
>Hi all,
>I have several UserInputPanels that should have different 
>headlines. I looked into the code and 
>recognized that only a single headline can be configured that 
>is used for all UserInputPanels. 
>Therefore I patched the getI18nStringForClass(String subkey) 
>method in the IzPanel class to consider 
>instance numbers and added the method getInstanceNumber() with 
>a default implementation that returns -1:
>// start code
>public String getI18nStringForClass(String subkey)
>     String retval = null;
>     Class clazz = this.getClass();
>     while (retval == null && !clazz.getName().endsWith(".IzPanel"))
>     {
>         int instanceNumber = getInstanceNumber();
>         if (instanceNumber != -1) {
>             retval = getI18nStringForClass(clazz.getName(), 
>subkey + "." + instanceNumber, null);
>             if (retval != null) return retval;
>         }
>         retval = getI18nStringForClass(clazz.getName(), subkey, null);
>         clazz = clazz.getSuperclass();
>     }
>     return (retval);
>protected int getInstanceNumber() { return -1; }
>// end code
>In order to make use of this new flexibility, I overloaded the 
>getInstanceNumber() method in the 
>UserInputPanel class returning the instance number of the 
>// start code
>protected int getInstanceNumber() { return instanceNumber; }
>// end code
>Now different headlines can be configured for the various 
>UserInputPanels. For example:
>   <str id="UserInputPanel.headline.0" txt="Rechnername und Port"/>
>   <str id="UserInputPanel.headline.1" txt="Shortcuts"/>
>   <str id="UserInputPanel.headline.2" txt="PolFHa-Server starten"/>
>Is this code of public interest? Will someone integrate it into IzPack?
>izpack-devel mailing list
>izpack-devel at lists.berlios.de

More information about the izpack-devel mailing list