001/* 002 * IzPack - Copyright 2001-2005 Julien Ponge, All Rights Reserved. 003 * 004 * http://www.izforge.com/izpack/ 005 * http://developer.berlios.de/projects/izpack/ 006 * 007 * Copyright 2003 Jonathan Halliday 008 * 009 * Licensed under the Apache License, Version 2.0 (the "License"); 010 * you may not use this file except in compliance with the License. 011 * You may obtain a copy of the License at 012 * 013 * http://www.apache.org/licenses/LICENSE-2.0 014 * 015 * Unless required by applicable law or agreed to in writing, software 016 * distributed under the License is distributed on an "AS IS" BASIS, 017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 018 * See the License for the specific language governing permissions and 019 * limitations under the License. 020 */ 021 022package com.izforge.izpack.panels; 023 024import net.n3.nanoxml.XMLElement; 025 026import com.izforge.izpack.installer.AutomatedInstallData; 027import com.izforge.izpack.installer.PanelAutomation; 028 029/** 030 * Functions to support automated usage of the TargetPanel 031 * 032 * @author Jonathan Halliday 033 * @author Julien Ponge 034 */ 035public class TargetPanelAutomationHelper implements PanelAutomation 036{ 037 038 /** 039 * Asks to make the XML panel data. 040 * 041 * @param idata The installation data. 042 * @param panelRoot The tree to put the data in. 043 */ 044 public void makeXMLData(AutomatedInstallData idata, XMLElement panelRoot) 045 { 046 // Installation path markup 047 XMLElement ipath = new XMLElement("installpath"); 048 // check this writes even if value is the default, 049 // because without the constructor, default does not get set. 050 ipath.setContent(idata.getInstallPath()); 051 052 // Checkings to fix bug #1864 053 XMLElement prev = panelRoot.getFirstChildNamed("installpath"); 054 if (prev != null) panelRoot.removeChild(prev); 055 056 panelRoot.addChild(ipath); 057 } 058 059 /** 060 * Asks to run in the automated mode. 061 * 062 * @param idata The installation data. 063 * @param panelRoot The XML tree to read the data from. 064 */ 065 public void runAutomated(AutomatedInstallData idata, XMLElement panelRoot) 066 { 067 // We set the installation path 068 XMLElement ipath = panelRoot.getFirstChildNamed("installpath"); 069 idata.setInstallPath(ipath.getContent()); 070 } 071}