3 Replies Latest reply on Jul 29, 2005 3:43 AM by acoliver

    Chance to contribute, fairly simple problem (GUI guys especi

    acoliver

      Hi all,

      I'm working on converting the install to izPack (http://www.izforge.com/izpack/) instead of our own effort, Cheese. In order to do this, I need a rather annoying limitation eliminated. Presently, the UserInputPanel requires a resource which can only be named userInputPanel.xml. This means there can only be one UserInputPanel. That is pretty much a non-starter for us. Someone posted some ideas here (http://openfacts.berlios.de/index-en.phtml?title=IzPack/Panels) and the code (I looked at it) seems straight forward. Likely, this will involve discussion and collaboration with the izPack guys.

      I have other work to do in order to get us there, but if no one steps up in a few days I'll do it myself.

      Next, we'll need ways to dynamically disable form controls (at least) or skip panels in the event a user doesn't ask for something (like SSL). That could be a bit more work (and is more GUI).

      Thanks,

      Andy

        • 1. Re: Chance to contribute, fairly simple problem (GUI guys es
          starksm64

          I'm not sure what you mean by a single UserInputPanel. The userInputSpec.xml resource can point to whatever you want as this is just a resource mapping. From the jbossas installer:

          <res id="userInputSpec.xml" src="@{jboss.build}/install/userInputSpec.xml"/>
          


          The userInputSpec.xml can have any number of panels defined. The jbossas install version currently defines 3:
          <userInput>
           <!-- Server configuration name panel -->
           <panel order="0">
           <field type="title" align="right"
           txt=" Configuration Name" bold="true" size="2"
           id="configName"
           icon="/images/search.png"
           />
           <field type="text" variable="SERVER_CONFIG">
           <description align="left" txt="The jboss server/xxx configuration name, e.g., default, all"
           id="serverConfigName.text"/>
           <spec txt="Name:" id="text.label" size="32" set="default"/>
           </field>
           <field type="divider" align="center"/>
           <field type="staticText" align="left"
           txt="Note: Using a configuration name other than 'default' will require use of -c name to select the configuration" />
           </panel>
          
           <!-- JMX Security Panel -->
           <panel order="1">
           <field type="title" align="right"
           txt=" JMX Security" bold="true" size="2"
           id="jmxSecurity"
           icon="/images/lock.png"
           />
          
           <!-- JMX interface security -->
           <field type="staticText" align="left"
           txt="This section allows you to control whether the JMX interfaces are secured"
           id="jmxSecurityText"/>
           <field type="check" variable="secureJmxConsole">
           <!--
           <description align="left" txt="Should the jmx-console.war be secured?"
           id="secureJmxConsole"/>
           -->
           <spec txt="Secure jmx-console.war" id="secureJmxConsole" true="true" false="false"
           set="false"/>
           </field>
           <field type="check" variable="secureWebConsole">
           <spec txt="Secure web-console.war" id="secureWebConsole" true="true" false="false"
           set="false"/>
           </field>
           <field type="check" variable="secureJmxConnector">
           <spec txt="Secure jmx-invoker-service" id="secureJmxConnector" true="true" false="false"
           set="false"/>
           </field>
          
           <!-- The JAAS security domain names (without the java:/jaas prefix) -->
           <field type="divider" align="center"/>
           <field type="text" variable="jmxConsoleDomain">
           <description align="left" txt="The JAAS security domain name for the jmx-console.war"
           id="jmxConsoleDomain.text"/>
           <spec txt="Enter security-domain:" id="text.label" size="32" set="jmx-console"/>
           </field>
           <field type="text" variable="webConsoleDomain">
           <description align="left" txt="The JAAS security domain name for the web-console.war"
           id="webConsoleDomain.text"/>
           <spec txt="Enter security-domain:" id="text.label" size="32" set="web-console"/>
           </field>
           </panel>
          
           <!-- Keystore password -->
           <panel order="2">
           <!-- url encryption key-->
           <field type="staticText" align="left"
           txt="This key can be some arbitrary text. It will be used to encrypt the parameters sent on the url."
           id="staticText.text"/>
          
           <field type="rule" variable="urlEncryptionKey">
           <description align="left"
           txt="Alphanumeric key used to encrypt the url (max 10) e.g ebiKey007"
           id="description.rule.1"/>
           <spec txt="Key to encrypt url:" layout="AN:12:10"/>
           <validator class="com.izforge.izpack.util.NotEmptyValidator"
           txt="The encryption key can only be alphanumeric chars upto length 10"/>
           </field>
           </panel>
          </userInput>
          


          only 2 of which are included in the install.xml configuration:
           <!--
           The panels section.
           We indicate here which panels we want to use. The order will be respected.
           -->
           <panels>
           <panel classname="HelloPanel"/>
           <!-- Display the release readme panel -->
           <panel classname="HTMLInfoPanel"/>
           <!-- Display the LGPL panel -->
           <panel classname="LicencePanel"/>
           <!-- Display an installation location panel -->
           <panel classname="TargetPanel"/>
           <!-- Display an installation group selection panel -->
           <panel classname="InstallationGroupPanel"/>
           <!-- Display a pack selection panel -->
           <panel classname="PacksPanel"/>
           <!-- UserInputPanel#0 - server config name -->
           <panel classname="UserInputPanel"/>
           <!-- UserInputPanel#1 - jmx security -->
           <panel classname="UserInputPanel"/>
           <!-- Display a summary of the packs to install -->
           <panel classname="SummaryPanel"/>
           <!-- Do the install -->
           <panel classname="InstallPanel"/>
           <panel classname="SimpleFinishPanel"/>
           </panels>
          



          • 2. Re: Chance to contribute, fairly simple problem (GUI guys es
            jeff87

            I've been looking through the archives of the izpack mailing list and it seems like we will have to extend the panel and write code to enable/disable fields conditionally. http://lists.berlios.de/pipermail/izpack-users/2005-July/001395.html

            The same for conditionally skipping panels. This person talks about how they accomplished that.

            http://lists.berlios.de/pipermail/izpack-users/2005-January/000805.html

            Hope that helps a little,
            Jeff

            • 3. Re: Chance to contribute, fairly simple problem (GUI guys es
              acoliver

              Yes. check out the jboss-izpack module from our cvs. There are some enhancements already but not for this unfortunately. skipping panels would indeed be helpful.