[izpack-users] Problems with search field in UserInputPanel

Bartz, Klaus Klaus.Bartz at coi.de
Tue Oct 10 14:27:56 CEST 2006


Hi Philip,
for the UserInputPanel I can say nothing.
For things you need I use the PathInputPanel (or an
derived class of it). Some times ago I have written
a panel to select a JRE. See above.

You can set a version range in the install.xml using
the IzPack variables "JREPathPanel.minVersion" and
"JREPathPanel.maxVersion". If the VM which is used by the
installation has a version in the range, it will be the default.
The question is,where should the VM be? On my box the 1.3 is on
c:\jdk1.3, the 1.4 is on f:\j2sdk1.4.2_06, the 1.5 is on
F:\Programme\Java\jdk1.5.0_06 and so on. Not so easy to create
a search rule.
You can add to scan the registry on windows. but this need extended
knowledge of java and IzPack.
If a wrong version will be selected, a warning will be placed.
If no VM will be selected, an error will be placed.
I think that is what you need.
Only that this need to handle creation of custom panels can be
a barricade.

Cheers

Klaus

----------------------------------------------------------------------------------------
package com.izforge.izpack.panels;

import java.io.File;

import com.izforge.izpack.installer.InstallData;
import com.izforge.izpack.installer.InstallerFrame;
import com.izforge.izpack.panels.JDKPathPanel;
import com.izforge.izpack.util.OsVersion;

/**
 * Panel which asks for the JRE path.
 * 
 */
public class JREPathPanel extends JDKPathPanel
{

    private static final String[] testFiles2 = new String[] { "bin" + File.separator + "java"};

    private static final String[] testFiles2W = new String[] { "bin" + File.separator + "java.exe"};

    /**
     * The constructor.
     * 
     * @param parent The parent window.
     * @param idata The installation data.
     */
    public JREPathPanel(InstallerFrame parent, InstallData idata)
    {
        super(parent, idata);
        if (OsVersion.IS_WINDOWS)
            setExistFiles(JREPathPanel.testFiles2W);
        else
            setExistFiles(JREPathPanel.testFiles2);
        setMinVersion(idata.getVariable("JREPathPanel.minVersion"));
        setMaxVersion(idata.getVariable("JREPathPanel.maxVersion"));
        setVariableName("JREPath");
    }
}

--------------------------------------------------------------------------------------------


>-----Original Message-----
>From: izpack-users-bounces at lists.berlios.de
>[mailto:izpack-users-bounces at lists.berlios.de]On Behalf Of 
>Philip Reimer
>Sent: Tuesday, October 10, 2006 1:08 PM
>To: IzPack users
>Subject: [izpack-users] Problems with search field in UserInputPanel
>
>
>Hello.
>
>I'm having difficulties with the Search Field in UserInputPanel. I'd
>like to let the user specify the directory of a JRE in the 
>UserInputPanel.
>
>My first question is: how do I get automatic detection working under
>Windows XP? As far as I understood, the <choice value>s specify where
>the installer should have a look for the desired directory? 
>But although
>I have a JRE installed under "C:\Programme\Java" the installer cannot
>find it.
>
>My second question would be: how do I prevent the user from clicking
>"next" without having specified a JRE directory. As for now, 
>if the user
>leaves the search field empty he can click "next" without any problems.
>Is there some kind of validation mechanism available? Can I somehow
>specifiy the search field as mandatory?
>
>Thanks in advance.
>Philip
>
>PS: Below is my code from userInputSpec.xml:
>
><field type="search" variable="JAVAHOME">
>			<spec 	id="javahome.input"
>					checkfilename="lib/rt.jar"
>					type="directory" 
>result="directory">
>				<choice value="/usr/lib/java/" 
>os="unix" />
>				<choice value="/opt/java" os="unix" />
>				<choice 
>value="C:\Programme\Java" os="windows" />
>				<choice value="C:\Program 
>Files\Java" os="windows" />
>				<choice value="C:\Java" os="windows" />
>			</spec>
>		</field>
>
>_______________________________________________
>izpack-users mailing list
>izpack-users at lists.berlios.de
>https://lists.berlios.de/mailman/listinfo/izpack-users
>



More information about the izpack-users mailing list