[izpack-changes] r1618 - in izpack-src/tags: . 3.9.0 3.9.0/src 3.9.0/src/dist-files 3.9.0/src/lib/com/izforge/izpack/panels
noreply at berlios.de
noreply at berlios.de
Mon Sep 25 06:19:44 CEST 2006
Author: jponge
Date: 2006-09-25 06:19:33 +0200 (Mon, 25 Sep 2006)
New Revision: 1618
Added:
izpack-src/tags/3.9.0/
izpack-src/tags/3.9.0/Versions.txt
izpack-src/tags/3.9.0/src/build.xml
izpack-src/tags/3.9.0/src/dist-files/IzPack-install.xml
izpack-src/tags/3.9.0/src/lib/com/izforge/izpack/panels/ShortcutPanel.java
Removed:
izpack-src/tags/3.9.0/Versions.txt
izpack-src/tags/3.9.0/src/build.xml
izpack-src/tags/3.9.0/src/dist-files/IzPack-install.xml
izpack-src/tags/3.9.0/src/lib/com/izforge/izpack/panels/ShortcutPanel.java
Log:
Tag for 3.9.0
Copied: izpack-src/tags/3.9.0 (from rev 1615, izpack-src/branches/branch-3.9)
Deleted: izpack-src/tags/3.9.0/Versions.txt
===================================================================
--- izpack-src/branches/branch-3.9/Versions.txt 2006-09-24 19:05:08 UTC (rev 1615)
+++ izpack-src/tags/3.9.0/Versions.txt 2006-09-25 04:19:33 UTC (rev 1618)
@@ -1,916 +0,0 @@
-[ The list of the different public versions of IzPack ]
-
- > 3.9.0 (build 2006.mm.dd)
-- Fix Accents In French Langpack (Fabrice Mirabile)
-- Update French Langpack (Julien Ponge)
-- New Indonesian Langpack (Hans Aikema, thanks to Thomas Edwin Santosa)
-- Updated Dutch Langpack (Hans Aikema)
-- Fix for ComboBox in SearchField of UserInputPanel returning
- java.lang.reflect.InvocationTargetException
- if no options added.(Fabrice Mirabile, thanks to Oliver Kiddle)
-- Fix for the header of the window runs the message into
- the filename (Fabrice Mirabile, thanks to Oliver Kiddle)
-- Added TroubleShooting for ShellLink.dll missing in help (DocBook and XHTML)
- (Fabrice Mirabile).
-- Swing threading fixes (Julien Ponge).
-- Some fixes adviced by IntelliJ IDEA 5.1 code inspector (Julien Ponge).
-- Spanish langpack update (Cesar Martinez Izquierdo).
-- New Polish langpack (Fabrice Mirabile, thanks to Radek)
-- Fixed the createPWD.sh (Fabrice Mirabile, thanks to Radek)
-- Workaround for crashes at end of installation with Java VM version
- 1.5 (also known as 5.0) (Klaus Bartz).
-- Updated russian langpack (Fabrice Mirabile)
-- Fixed indent of ShortcutPanels Headline (Marc Eppelmann)
-- Made available all IzPack Variable in the ShortCut Specs (Marc Eppelmann)
-- Configurable heading panel added to InstallerFrame (Klaus Bartz).
-- Panels counter (text or progressbar) useable in the heading or
- navigation panel (Klaus Bartz).
-- Fixed logfile for AntActions (Eric Rose).
-- PacksPanels: fixed disk space requirements (Ryan Shillington, via Julien
- Ponge).
-- Compiler fix (Ryan Shillington, via Julien Ponge).
-- fixed Shotcut(s)(Panel) for Administrators on Win32 (Marc Eppelmann)
-- Fixes on Launcher, handling stuff (Julien Ponge)
-- MAC OS: Launcher is built as universal (ie, i386/ppc) binary (Julien Ponge)
-- MAC OS: Qt is embedded in the application bundle (Julien Ponge)
-- Added a variable for install log, InstallerFrame.logfilePath (Klaus Bartz).
-- Added the docu for install log (Fabrice Mirabile).
-- TwoColumnLayout fix (Amit Bhayani @JBoss/RedHat).
-- New compiler (packager) comandline argument -h for IZPACK_HOME; try to
- automatic resolving of IZPACK_HOME if not specified (Klaus Bartz).
-- New layout manager (IzPanelLayout) for simplify layouting of IzPanels.
- Configurable anchor, gaps, stretch rules etc. (Klaus Bartz).
-- Documentation figures refreshment (Julien Ponge).
-- Throw an IllegalArgumentException in the compiler if the declared panel
- name differs in case from the founded class name (Klaus Bartz).
-- Re-Activated Shortcut Support for the Automated Installation (Marc Eppelmann).
-- Expanded Debug.log()'s possibility to log with Timestamp and or new Date()
- Default is now: with both. (Marc Eppelmann).
-- Suppress a NullPointerException in the RuleInputField (Dennis Reil, via Marc
- Eppelmann).
-- Merged normal installer and registry-enabled installers (Julien Ponge).
-- A potential null pointer exception has been discovered in Unpacker with a
- custom action. (Dennis Reil, via Julien Ponge).
-- Implemented the X-KDE subsitute user - shortcut attribute (see Unix_shortcutSpec.xml)
- (Marc Eppelmann).
-- Write Desktop shortcuts to all known local and ypbinded users "desktop" folders.
- (Marc Eppelmann)
-- Write common shortcuts and their icons to the new freedesktop.org common
- "/usr/share/applications" and "/usr/share/pixmaps" folders to display
- these in the commons [start].menu (Marc Eppelmann)
-- New InstallationGroupPanel for grouping packs together (Amit Bhayani, Scott Starks,
- Alex Pinkin @JBoss/RedHat, via Julien Ponge).
-- Variable substitution in the description-elements of the PacksPanel (Dennis Reil, via
- Julien Ponge).
-- Added a src.tar.gz target in the build.xml to create a IzPack.src.tar.gz (Marc Eppelmann)
-
- > 3.8.1 (build 2006.01.06)
-- Added Greek language support (Fabrice Mirabile, thanks to Panayotis
- Katsaloulis for the translation and flag).
-- New splashscreen artwork (Nicolas Deschaume).
-- Added IPAdress and ClassPath variable (Fabrice Mirabile).
-- Added HostName variable (Fabrice Mirabile, thanks to Oliver Kiddle).
-- Fixes for IPAdress (Fabrice Mirabile).
-- Patch for WebAccessor: indeterminate progress bar (Julian Payne).
-- Finish language support update (Ari Voutilainen).
-- Script parser fix when no application URL is given.
-- Fix for installer spanning screens with xinerama.
-- Fix for bug #4551 (Weiji Guo).
-- Subgrouping of shortcuts (Weiji Guo).
-- Added Korean language support (Fabrice Mirabile, thanks to Dongsu Jang).
-- Added new panel SelectedPrinterPanel which allows the user to chose any local
- printer installed and set it to the $SELECTED_PRINTER variable. (Hal Vaughan
- and Fabrice Mirabile).
-
- > 3.8.0 (build 2005.10.27)
-- Added 2 processor classes having the ability to fill a combobox
- with all available unix user and groups (Thorsten Kamann)
-- All default values for the InputPanel (the values of the set attribute)
- can conatins variables at now. All
- variables will be replaces by the VariableSubstitutor (Thorsten Kamann)
-- The resources of the target panel can contains variables at now. All
- variables will be replaces by the VariableSubstitutor (Thorsten Kamann)
-- Fixed chinese Flag.
-- Patch for InstallerFrame to support user confirmation after pressing
- windows "X" closing button.
-- Update the IzPackTask to support an embedded xml installation document that
- replaces @{x} property references with the corresponding ant property.
- (patch #442 - Scott Stark).
-- Compiler refactor into an xml parser and xml independent compiler + Pack
- group, installGroups (patch #439/440 - Scott Stark).
-- IzPack is now released under the terms of the Apache Software License 2.0.
-- Support for a jar attribute on the listener element (patch #432 - Scott Stark).
-- PacksPanels: translations loading fix (patch #446 - Stefan Heidrich).
-- Fixing bug with comboboxes. There was no text shown if you do not use a
- processor to generate the choices. At now you can us the id or txt attribute
- (Thorsten Kamann)
-- Uninstaller: use the system Look and Feel instead of the cross-platform one
- (feature request #470).
-- The uninstaller name can be changed (Thomas Girard).
-- Documentation on the panels creation updates (Elmar Grom).
-- New SummaryPanel (Klaus Bartz).
-- New SummaryLoggerInstallerListener which loggs the summary
- into a log file (Klaus Bartz).
-- Langpack up-to-date check script (Oscar Sierra | Klaus Bartz).
-- Custom langpacks (Klaus Bartz).
-- New variable APPLICATIONS_DEFAULT_ROOT (Klaus Bartz).
-- Bugfix in MultiLineLabel; now a line break will be performed also
- it is needed at the last word of the line (Klaus Bartz).
-- Bugfix in JDKPathPanel: now it is possible to select an out-of-version
- JDK (Klaus Bartz).
-- Properties can be substituted at compile time from the environment,
- command line, java properties, ant, or <property> tag (Chad McHenry
- and Scott Stark).
-- New Turkish langpack (Levent Bayindir).
-- Mac OS X: better Swing integration.
-- Configurable notation of language names in the language selection dialog
- (Christian Murphy | Klaus Bartz).
-- Fail message in SimpleFinishPanel (Klaus Bartz).
-- Interrupt handling changed (Klaus Bartz).
-- Fixed shortcuts for RedHat and Mandrake (Fabrice Mirabile, thanks to Vitor
- Rodrigues for the code).
-- New ConditionalUserInputPanel (Andreas Breiter, patches #407, #408).
-- ExecuteForPack, allow processing depending on the selected pack (Fabrice
- Mirabile, thanks to Johannes Gutleber for the code).
-- Ant file cleanup: requires ant 1.6. Incremental builds of jar files.
-- Macrodefs instead of antcalls (Chad McHenry).
-- createForUnselectedPack, show a userinputapanel if a pack is not selected
- (Fabrice Mirabile, thanks to Stefano Gamma)
-- Registry support on Windows (Klaus Bartz).
-- New CheckedHelloPanel which checks already installed products (Klaus Bartz).
-- Most IzPackTask output for ant is only dumped in VERBOSE mode (Chad McHenry).
-- Introduction of a JUnit test suite.
-- Scripts for easier built of password validation and encrytion addon classes (Fabrice Mirabile)
-- standalone-compiler.jar no longer has duplicate entries (bug #3928).
-- Building process: Java source and target compatibility enforced to 1.4.
-- IzPack installer: use JGoodies Looks on *nix as MlF is buggy on 1.5.
-- "Made with IzPack label": enforce a specific font for the label, making it
- look finally good with JGoodies Looks.
-- ImgPacksPanel: removed the useless/ugly border around the description area.
-- New compressor pack added to support different compression algorithm for the
- packs; initial supported are "raw", "deflate" and "bzip2" (Klaus Bartz).
-- New documentation in XHTML Strict 1.0 + CSS (Fabrice Mirabile).
-- New documentation in DocBook (Fabrice Mirabile).
-- Unicode port of shortcuts and registry stuff (Klaus Bartz).
-- New Mac OS X icon (.icns).
-- Added the American Locale XML and Flad (Fabrice Mirabile thanks to Joe Favero)
-
- > 3.7.2 (build 2005.04.22)
-
-- IoHelper.getPrimaryGroup: bugfix for SunOS (Klaus Bartz).
-- Russian langpack fixes (Alexey Makhmutov).
-- Swedish langpack update (Nils Nordman).
-- Spanish langpack update (Juan Alvarez).
-- UserInputPanel: made 'instanceNumber' a protected atribute (patch #406,
- Andreas Breiter).
-
- > 3.7.1 (build 2005.02.15)
-
-- The Danish langpack was empty by mistake in 3.7.0.
-- Silent installations fix (Oscar Sierra).
-- Free disk space bugfix on Solaris (Oscar Sierra).
-- Installation runable with VM versions < 1.4 again (Klaus Bartz)
- (implementation for bug #2268 changed).
-- Italian langpack fixes (Fabrice Mirabille).
-- UserInputPanel: bug fixes by Per Abich (bugs #3233 and #3283).
-- Russian langpack fixes (Alexey Makhmutov).
-- ProcessPanel log file creation fix on Win32 (Anthony Xin Chen).
-- IoHelper.getenv: on Windows keys are not case sensitive (Klaus Bartz).
-
- > 3.7.0 (build 2005.01.11)
-
-- Adding custom action stuff for packaging, installation and uninstallation
- (Klaus Bartz).
-- The packs files can now be located on disk if needed, for instance to install
- an application located on a live cd (Erik Artzmark).
-- The attributes "includes" and "excludes" now are supported for filesets
- (Klaus Bartz).
-- As many sensitive clean-ups as possible have been made after a FindBugs run.
-- Support of native libraries and additional jar files in the uninstaller (Klaus Bartz).
-- InfoPanel: variables substitution is now allowed (Borje Jonsson).
-- InstallPanel supports internationalized package names (Gaganis Giorgos).
-- Support for package dependencies (Gaganis Giorgos).
-- ShortcutPanel: can be optionally skipped on non-supported platforms.
-- PacksPanels: free disk space stuff (Klaus Bartz).
-- New Malaysian langpack (Redhuan Daniel Oon).
-- System properties can now be used as variables (Borje Jonsson).
-- New Norwegian langpack (Mohammed Sourouri).
-- New Chinese langpack (Xi Ping Wang).
-- The language selection box will now appear in the Windows tasks list (Harald
- Spfle).
-- Spanish langpack update (David Perez Carmona).
-- Fix that prevented the correct detection of OS X.
-- Custom actions for ant calls (Klaus Bartz).
-- IzPanel.setInitialFocus( Component ) stuff added (Klaus Bartz).
-- Configurable button and label icons (Klaus Bartz).
-- Configurable subpath for $INSTALL_PATH default (Klaus Bartz).
-- New base class PathInputPanle for TargetPanel; new JDKPathPanel (Klaus Bartz).
-- Common helper in IzPanel (Klaus Bartz).
-- JGoodies loading fix.
-- Unified OS detection in OsVersion (Hani Suleiman).
-- Default installation path on unix now checks for writable 'usr/local' instead
- of 'root' username (Hani Suleiman).
-- Removed incomplete and non-functional support for Mac OS9 (Hani Suleiman).
-- Fixed punctuation and some wording in English langpack (Hani Suleiman).
-- Logfile for ProcessPanel (Klaus Bartz).
-- Automatic scrolling of ProcessPanel output (Anthony Xin Chen).
-- Fixed bug parsing some brace enclosed variables (Chad McHenry) (bug #2451).
-- New Serbian translation (Filip Brcic).
-- Bug at loading Panels from other packages fixed (Klaus Bartz).
-- Unix (KDE/Gnome) shortcuts support (Marc Eppelmann).
-- ShortcutPanel: going to a previous panel could lead to strange situations
- (bug #2713).
-- Installers: avoid showing an empty JFrame behind the languages selection
- dialog (observed on X11).
-- UserInputPanel: the autodetect button is hidden if not needed
- (Michael Hagedorn).
-- A tutorial is now available.
-- New Czech langpack (Jan Pavlovic).
-- German langpack: the uninstaller checkbox string was confusing about the
- uninstaller performing a full deletion, including the files not unpacked
- by an IzPack installer.
-- Liquid LnF: version bump (0.2.9-alpha5).
-
- > 3.6.1 (build 2004.10.09)
-
-- Slovak translation updates (Milan Madzia).
-- Java class execution bug fix (Erik Artzmark).
-- ImgPacksPanel was not aware of i18n by using the packsLang.xml_xxx resource.
-- Portuguese langpack updates (Flavio Fonseca).
-- Blocking the GUI interaction (like in InstallPanel) was only working with the
- mouse events. It now works with the keyboard ones too (Eduard Jodas Samper).
-- TargetPanel: refuse selecting read-only directories.
-- Documentation fixes.
-- TargetPanel: more sanity checks (Andreas Vox).
-- InstallPanel: register errors as failures (Andreas Vox).
-- Polish translation updates (Bronek Truzkowski).
- > 3.6.0 (build 2004.07.28)
-- New Danish langpack (Frank Bille Jensen).
-- Web installers can now prompt for passwords and a proxy (Chad McHenry).
-- Fixed all javadoc warnings and errors (Chad McHenry).
-- ImgPacksPanel has been reworked to offer some features that only PacksPanel
- had (Volker Friedritz).
-- Panels can be from any package (Chad McHenry)
-- Uninstaller not included, if it is not to be written anyway (Chad McHenry).
-- Packager and Compiler refactored.
-- Changed the JFrame icon shown in the installers and uninstallers.
-- New SimpleFinishPanel that don't have the automated installers feature.
-- Heavy refactorings on the look and feels side. The Kunststoff packagers have
- been removed. The look and feels can now be specified on a per-OS basis. If
- no look and feel is specified for a particular OS, then the platform default
- one will be used.
-- The IzPack own installer uses the ImgPacksPanel again with some refreshed
- packages pictures.
-- UserInputPanel: more parameters and a regular expressions validator have been
- added (Mike Cunneen).
-- 3 new UserInputPanel validators (Thorsten Kamann):
- * PortValidator (checks whether a port on localhost is available)
- * IsPortValidator (checks whether the enterd value is a port in the range
- between 0 and 32000)
- * HostAddressValidator (checks whether the combination host:port is available)
-- 1 new UserInputPanel processor that checks checks whether the combination of
- host:port is available. If not the port will be arised until it is available.
- (Thorsten Kamann)
-- Web install location specified in xml, not resource. (Chad McHenry)
-- Web installer packs are in separate jars to minimize downloads. (Chad McHenry)
-- fix bug so <fileset> uses same default excludes as ant. (Chad McHenry)
-- added 'defaultexcludes' attribute to <fileset> (Chad McHenry)
-- More elements in dtd are optional, fixed bugs causing errors if certain
- optional elements were omitted. (Chad McHenry)
-- It is now possible to have a specific picture for a specific panel by using
- the Installer.image.n resources where n is the panel 0-based index.
- (Peter Mikula).
-- Adding support for i18n to the pack panel (Thorsten Kamann)
-- Removing limtation the going backward is disabled if a pack not selected and
- the pack using a panel (Thorsten Kamann)
-- Adding support for floating text in a langpack file (Thorsten Kamann).
-- At now you can specify a processor class to pre process the set value of a
- RuleInputField (Thorsten Kamann).
-- The choices of a combo box can be generated throug a processor class
- (Thorsten Kamann).
-- The message of a validator can be a i18n message (Thorsten Kamann).
-- If a translation string value cannot be found, then the key will be returned
- instead of null, avoiding null exceptions when new strings are added.
-- The finish panels are now setting the quit button text to 'Finish' instead of
- 'Quit', which could confuse some users (Dario Yuri).
-- Many Windows shortcuts code fixes and enhancements (Bill Wong).
-- UserInputPanel and PacksPanel i18n support (Gaganis Giorgos).
-- ProcessPanel can now execute Java classes (Alex Bradley).
-- TargetPanel: pressing enter in the target editor will move to the next panel
- (Gaganis Giorgos).
-- Polish langpack fix (Bronek Truszkowski).
-
- > 3.5.4 (build 2004.06.05)
-
-- German langpack fixes once again (Klaus Bartz).
-- Slovak langpack fix (pbe at whitestein.com).
-- The variable for the ISO3 language code was IS03_LANG instead of ISO3_LANG (a
- zero instead of a 'o'). This stupid bug is now fixed (bug report #1883).
-- Catalan langpack update (Oscar Aubareda Fernandez).
-- UserInputPanel: fix for the directory detection failure (bug #1849) + added
- the possibility to use a '*' in the choices
- (ex: <choice value="/opt/java/*"/>). Patch by Thorsten Kamann.
-
- > 3.5.3 (build 2004.05.15)
-
-- German langpack punctuation fixes (jonelo).
-- TargetPanel: the target path could be written several times in the automated
- install XML descriptor (bug #1864).
-- TargetPanel: the path is now always converted to absolute (could cause
- problems in variables substitutions). (bug #1866).
-- Target Panel: the path input field could be a bit short if a picture was used.
- Fixed by Klaus Bartz (bug #1875).
-- German langpack: spelling correction (Dustin Sacks)
-- Fixed probelems creating a web-kunststoff installer (bug #1904)
-- IzPack installer: simpler and refreshed readme text.
-
- > 3.5.2 (build 2004.05.01)
-
-- Fixed moving empty directory to root (pbe at whitestein.com).
-- UserInputPanel getResult() fix (bug #1769).
-- Slovak langpack fix (patch #88).
-- A new mailing-list izpack-changes at lists.berlios.de has been set up to receive
- various development-related notifications.
-- German langpack fix (bug #1828).
-- Web installer fix: wrong jar was getting izpack classes
-- RuleTextField input bug fix (bug #1618)
-
- > 3.5.1 (build 2004.03.16)
-
-- No custom look and feel will be applied on Mac platforms (Chad McHenry).
-- A message box is now raised when the installer detects that the Java version
- it is running on is lower than the one required by the package provider.
-- The Win32 documentation shortcuts are now back again.
-- If 'user.home' is set to something like 'C:' on Windows, it will be changed to
- 'C:\'.
-- German langpack: minor fix on 'LicencePanel.agree' translation.
-- UserInputPanel.getResult(): path construction fix (bug #1634).
-
- > 3.5.0 (build.2004.02.26)
-
-- The developer services have moved to BerliOS (http://developer.berlios.de/).
-- Uninstaller is now able to delete itself and the install directory
- (Chad McHenry)
-- Upate Checking: The installer is now able to "update" an already installed
- package, therefore removing superfluous files after installation
- (Tino Schwarze).
-- Dutch langpack update (Hans Aikema).
-- The compiler now emits some warnings when processing an incorrect installation
- file (Chad McHenry / Marcus Stursberg).
-- New SudoPanel (Jan Blok).
-- ShortcutPanel: the action is now performed when the 'next' button is pressed
- (Jan Blok).
-- Nasty bug in AutomatedInstallData variables setting fix.
-- Ant build: 'clean' target fix (Chad McHenry).
-- Language selection dialog: the 'ok' button gains the focus by default (Chad
- Mchenry).
-- Uninstaller: various fixes (Chad McHenry).
-- Installer: the 'next' button requests focus whenever it is available.
-- Switched to the Crystal icons from KDE 3.2.
-- Uninstaller: proper use of the ButtonFactory.
-- Packs can now be restricted to a certain OS list (Jan Blok).
-- Fixed a bug that caused the automated installers to produce broken installers
- (bug #1472).
-- Files with the same file source are never stored more than once anymore in the
- resulting installer jar (Jan Blok).
-- Various documentation refreshments. The PostScript[tm] version is not produced
- anymore (PDF + HTML are the 2 targets).
-- Language selection box: UI rendering fix (Chad McHenry).
-
- > 3.4.0 (build 2003.12.06)
-
-- The frontend which had been deprecated in 3.3.0 has been removed. There won't
- be another frontend until someone volunteers to make a new one.
-- The files executor has been fixed when dealing with classpath arguments
- passing.
-
- > 3.3.0 (build 2003.11.15)
-
-- Various bugs fixed (taken from the bugs database).
-- The current GUI frontend is deprecated. The project is looking for people to
- take over the development of a new one.
-- The compiler now returns a sensible exit code on error. This way, it can be
- used in scripts.
-- Italian localization updates by Cristian Ghezzi.
-- Win32: Rewrote the localization of "Program Files" and added support for all
- 24 localized versions of Windows 2000/XP (Dennis Lundberg).
-- Portuguese localization updates from Alex Carlos Braga Antao.
-- Swedish localization updates from Dennis Lundberg.
-- InstallPanel: the overall progress bar makes steps forward only after a pack
- has been fully processed. The previous behaviour was to step forward at the
- beginning of a pack extraction.
-- CompilePanel: disable Start button after successful compilation (T.Schwarze).
-- improve search field of the UserInputPanel: add checkfilename (T.Schwarze).
-- XInfoPanel: UI fix.
-
- > 3.2.1 (build 2003.09.19)
-
-- Added a new built-in variable ISO3_LANG that contains the selected language
- ISO3 code (Elmar's idea).
-- Added a new 'run.installer' target to the Ant build file.
-- Added an uninstall target to the documentation makefile.
-
- > 3.2.0 (build 2003.09.18)
-
-- Added 3 built-in variables that you can use with the variables substitutor:
- o APP_NAME for the application name
- o APP_URL for the application URL
- o APP_VER for the application version.
-- New ProcessPanel (Tino Schwarze).
-- The documentation is now licensed under a Commons Creative license.
-- The documentation now has a nicer cover page.
-- Jar file execution fix on the classpath arguments passing.
-- Win32: "Program Files" can now be localised (resolves problems with German
- Windows for instance).
-- com.izforge.izpack.util.OsConstraint was missing in uninstaller.jar .
-- Small documentation typing errors fixed.
-- Added an install target to the documentation Makefile.
-- Frontend: Jar files could be listed in the panels tab. Fixed.
-- The scripts execution flag is now set to every users on Unix-like systems
- (chmod a+x), regardless of who the user is (i.e. root or a single user).
-- Reformatting (imports, Ant build file).
-
- > 3.1.0b (build 2003.08.22)
-
-- Fix in the standalone compiler (Tino Schwarze).
-
- > 3.1.0a (build 2003.08.15)
-
-- Fixes a bug while generating a Kunststoff installer.
-
- > 3.1.0 (build 2003.08.11)
-
-- Added the possibility to use a standalone compiler (Tino Schwarze).
-- Added a new target to the Ant build system in order to fix the files CR/LF and
- encodings.
-- Includes the following enhancements from Jonathan Halliday and Tino Schwarze.
-- Added overall progress bar to InstallPanel
-- Added SearchField to the UserInputPanel which allows to search for
- files or directories at installation time
-- Added CompilePanel which allows Java classes to be compiled after
- installation
-- Add infrastructure for automated installation - after installation,
- the FinishPanel allows the user to save an XML file which can later be
- used for automated installation (simply pass it to the installer as an
- argument, for example:
- java -jar my_super_program.jar super_program_autoinstall.xml
- )
-- (internal) add infrastructure for GUI abstraction
-- Improved documentation:
- o build better PDF using pdflatex (with hyperlinks and bookmarks)
- o reorganize documentation for the <packs> section
-- Add <singlefile> tag which is useful if a file's name after
- installation is different from the source file name
-- Add support for os attribute and <os> tag to all pack entries
- (hopefully, the DTD is correct)
-- Allow files to be kept after execution
-- Allow packs to be preselected for installation or not
-- Allow packs to be OS dependent
-- Provide finer control when overwriting files:
- o ask for overwriting, default yes
- o ask for overwriting, default no
- o update (only considers mtime - no real update)
-- Allow absolute paths in source files (might already be in 3.0.9)
-- Finer error handling - report missing attributes
-- (internal) TwoColumnLayout now supports WESTONLY and EASTONLY
-- (internal) made the ResourceManager a singleton
-- Add new kind of script parsing: shell - used %{variable} syntax to
- avoid clashes within shell scripts
-
- > 3.0.9 (build 2003.06.29)
-
-- New Romanian language pack (Dani Orza).
-- Absolute paths problems patch (Tom Moore).
-- DTD, documentation fixes.
-
- > 3.0.8a (build 2003.05.02)
-
-- A bug had been introduced in 3.0.8 during the files extraction. Fixed.
-- Polish langpacks update.
-
- > 3.0.8 (build 2003.04.26)
-
-- Packs OS-targeting (Fran Taylor).
-- OS selection improved accuracy (Sanjay Linganna).
-- The standard installers can now use the native look and feel if the
- 'useNativeLAF' resource is specified (nice feature especially with the
- incoming JDK 1.4.2).
-- The standard installers get back the button icons and highlighting effects.
-- Russian langpack update (Igor Anikeev).
-- Directory creation patch (Jonathan Halliday).
-
- > 3.0.7 (build 2003.04.04)
-
-- Slovakian langpack thanks to Milan Madzia.
-- Japanese, Russian and Dutch langpacks updates.
-- The uninstallers can now run scripts thanks to a patch from Hani Suleiman.
-
- > 3.0.6 (build 2003.02.27)
-
-- Updated the French and German langpacks.
-- Fixed the building process to take care of all classes related to the InputPanel.
-- Made some fixes on the installers DTD.
-- Elmar Grom / UserInputPanel:
- o Fixed a bug with the drop down box that always return the value for the last
- option in it, regardless of what had been selected during installation.
- o Implemented the automated installer mode.
- o RuleInputTextField can now be validated and processed with custom code
- (documentation to come soon).
- o A password field is now available and can also be validated and processed
- with custom code (documentation to come soon).
-
- > 3.0.5 (build 2003.02.14)
-
-- This release becomes the new stable version, waiting for the 3.1 release which
- is not yet ready. The stable/unstable versions separation is suspended.
-- Fixed a TargetPanel inconsistency when the target directory is empty.
-- Fixed Ant filesets-related problems.
-- UI fonts fixes for Linux/Sun JDK-1.4.
-- Empty directories can now be included.
-- IzPack's own installer now makes uses of the Ant-style filesets.
-- Splitted the documentation pack into several ones.
-- MacOS X UI fixes (Hani Suleiman).
-
- > 3.1.0 pre5 (build 2003.01.12)
-
-- Included Elmar's new UserInputPanel documentation.
-- A panel can now be added several times in an installation. This is mostly
- useful for the new UserInputPanel.
-- Separated the installer generation from the 'dist' target in the Ant building
- process. The new target is 'generate.installer'.
-- Move the com.izforge.izpack.util.EtchedBorder class to com.izforge.izpack.gui.
- The class has also been rewritten because the original code was introduced
- with a proprietary license notice.
-
- > 3.1.0 pre4 (build 2002.12.08)
-
-- A lot of installer GUI improvements by Jan Blok :
- o an image can be shown in the installer left side
- o buttons will look great under OSX
- o HelloPanel : don't display authors if not present
- o InstallPanel : immediate installation launching (the silly install button
- has gone to heaven)
- o LicencePanel : better GUI
- o PackPanel : use table and display description, complete rewrite of this
- panel
- o IzPackMetalTheme : Tahoma is used if present on the target machine.
-- New UserInputPanel that allows to prompt the users for some values that can
- later be stored as variables that can be parsed for in files (Elmar Grom).
- Sorry but I did not have time to include the related documentation at the
- release time.
-
- > 3.1.0 pre3 (build 2002.11.24)
-
-- Restyled, cleaned, javadoc'ed the whole IzPack source code.
-- The full IzPack source code Javadocs are generated when making a release.
-- Wiped the Enroll* classes that were polluting IzPack.
-- Added the creation of shortcuts for the IzPack documentation and the
-uninstaller.
-
- > 3.1.0 pre2 (build 2002.10.19)
-
-- New (and clean) ResourceManager thanks to Marcus Stursberg.
-- Shorcut fixes by Elmar Grom.
-
- > 3.1.0 pre1 (build 2002.09.21)
-
-- When InstallPanel was the last panel, it unlocked the next button and this was
- of course not the desired behaviour.
-- ImgPacksPanel and PacksPanel can now display the total disk space required
- (Adam Barclay for this task).
-- MacOSX GUI fix thanks to Hani Suleiman.
-- GUI Frontend fixes by Andrew De Torres.
-- Support for files overriding behaviour (override or keep old version if
- present) by Adam Barclay.
-- New Italian langpack thanks to Franco Graziosi.
-
- > 3.0.0 (build 2002.08.13)
-
-- First stable release of the 3.x series ;-)
-- Ant task : the trailing '/' is appended on the IzPack directory when it is
- omitted (Gareth Cronin).
-- Many improvements on the documentation which should be quite fine - Elmar Grom
- helped a lot on this.
-- Updated ant.jar from the Ant 1.5 stable release.
-- German language pack fixes by Jonelo.
-
- > 3.0.0 rc3 (build 2002.07.28)
-
-- The Japanese langpack has been fixed by Akky Akimoto (now Windows shortcuts
- compliant).
-- Windows shortcuts counterpart is now fully working thanks to the big efforts
- of Elmar Grom with the additional help of Marcus Stursberg.
-- Documentation mispelling fixes and additions by Elmar Grom.
-
- > 3.0.0 rc2 (build 2002.07.06)
-
-- Added some documentation on the *LicencePanel and *InfoPanel panels.
-- Bugfix in HTMLLicencePanel.
-- The uninstaller is now able to take care of the jar new location (under the
- install path) and wipes everything cleanly.
-- The 'create shortcut' button in ShortcutPanel is now disabled after the
- shortcuts are created.
-
- > 3.0.0 rc1 (build 2002.07.03)
-
-- Fixes on the shortcuts sytem.
-- New Hungarian language pack thanks to Harsan Peter.
-- New Japanese language pack thanks to Hiroki Akimoto.
-- New documentation.
-- Fixed many source coding style errors.
-- Coding guidelines publication.
-- Some Javadoc text is now generated for those who need to make panels.
-
- > 3.0.0 pre4 (build 2002.06.15)
-
-- Polish language pack thanks to Piotr Bzdyl.
-- Shortcut system fixes.
-- The IzPack installer is now able to create shortcuts on Windows systems
- while not creating any problem on another Operating System.
-- Catalan language pack thanks to Oscar Aubareda Fernandez.
-- The uninstaller is now copied under $INSTALL_PATH/Uninstaller.
-- Closing the language selection box of an installer will (finally !) close
- the installer.
-- Removed the same named directories and files from the installers jars.
-- The ShortcutPanel now uses the IzPack highlighted buttons.
-- Many improvements from the e-xmlmedia.fr people including the Ant fileset
- support, all these features will be documented in the coming new
- documentation.
-
- > 3.0.0 pre3 (build 2002.05.19)
-
-- HTML licence panel agreement system fix by Jonelo.
-- Official inclusion of Elmar Grom's Windows library to create some shortcuts on
- this operating system.
-( following : Johannes Lehtinen )
-- Cleaned up the InstallData interface and added utility methods.
-- Made the special variables (such as $INSTALL_PATH) available to panels using
- the standard interface.
-- Made InstallData a singleton class.
-- Added InstallData properties for Panel interoptability.
-- Added a new variable : $FILE_SEPARATOR.
-
- > 3.0.0 pre2 (build 2002.04.27)
-
-- Fixes & enhancements in the executable files support (Olexij Tkatchenko).
-- 2 new splash screens by Nicolas Deschaume.
-- The launching scripts of the pre1 were corrupted.
-
- > 3.0.0 pre1 (build 2002.04.21)
-
-- Enhanced splash #5 by Nicolas Deschaume.
-- Improved uninstalling system giving an access to the panels.
-- Image support at the language selection dialog through an optionnal resource
- (installer.langsel.img).
-- Added executable element support (Olexij Tkatchenko).
-- /usr/local is now the default installation directory only for root user,
- normal users will have $HOME instead (Unix* - Olexij Tkatchenko).
-- New Ukrainian language support (Olexij Tkatchenko).
-- The uninstaller now deletes itself after the uninstallation job is done.
-- Modified the IzPack Ant building process to integrate IzPack itself in order
- to generate a ready-to-distribute installer.
-
- > 2.12.0 (build 2002.03.31)
-
-- Removed the JScrollPane for the panels container.
-- Improved panels sizing policy due to the JScrollPane removing.
-
- > 2.12.0 pre3 (build 2002.03.02)
-
-- Fixed a problem with the default compiler output file naming.
-- Added the Dutch language packs thanks to Fridjof Jansen.
-- Modified the Ant makefile so that any inner class of a panel can be
- copied too.
-
- > 2.12.0 pre2 (build 2002.02.22)
-
-- Changed the font sizes to 12 as it really looks better.
-- Removed the "All rights reserved" portions in the frontend languages
- packs as it is not really usefull and it now makes the About Box look
- better.
-- Fix in PacksPanel thanks to Marcus Wolschon.
-- Fixes in both Unix and Windows new startup scripts.
-- Paul Wilkinson added the integration with Ant.
-- Native libraries can now be specified to be added to the IzPack
- installers through a new optionnal tag.
-
- > 2.12.0 pre1 (build 2002.02.15)
-
-- Made some modifications to get the source code pass through the
- IBM Jikes compiler checkings successfully.
-- Updated the Readme.txt file (I forgot to make it reflect the fact that
- IzPack has a GUI frontend :-)
-- Updated the installer english langpack file so that 'installer.quit.message'
- is not wrong anymore.
-- Added a complete Javadoc comments set to com.izforge.izpack.installer.IzPanel
-.
-- Inclusion of the IzPack installer XML file in the source directory.
-- The compiler and the frontend can now be invoked outside of the bin/ directory
- without any problem. This provide a *noticeable* improvement ;-)
-
- > 2.11.1 (build 2002.02.09)
-
-- Inclusion of the Kunststoff Look And Feel version 2.
-
- > 2.11.0 (build 2002.01.18)
-
-- Pre-versions modifications have been validated.
-- Improved documentation HTML version.
-- IzPack's own installer : use the ImgPacksPanel instead of the classic
- PacksPanel.
-- 2 new frontend splash screens thanks to Nicolas Deschaume.
-- HelloPanel : displays the email adresses enclosed by '<' and '>'.
-- This version is compiled with IBM Jikes.
-
- > 2.11.0 pre2 (build 2001.12.17)
-
-- Frontend : added a toolbar.
-- Ant makefile : removed the 'clean' dependency for the 'all' target.
-- Installer : the next button will automatically lock if the last panel is
- reached but does not already lock it.
-
- > 2.11.0 pre1 (build 2001.12.09)
-
-- Installer : cached languages flags.
-- Installer : the languages flags are now grayed when not active (it creates
- a rollover-effect when choosing the language in the list).
-- Frontend : the about box can't be resized.
-- Errors : now reported on the error output stream (System.err) instead of
- the output stream (System.out).
-- Frontend : better GUI interaction.
-- ImgPacksPanel : fixed the bug that caused the snapshots not to switch as
- expected when using the keyboard.
-- Updated Brazilian and Russian flags to conform with the other flags.
-
- > 2.10.0 (build 2001.12.02)
-
-- Pre-versions modifications have been validated.
-- A panel can now specify some custom variables (Serge Sivkov).
-- New Brazilian-Portuguese translation thanks to Joao Marcelo Pereira Alves.
-- New Russian translation thanks to Serge Sivkov.
-
- > 2.10.0 pre 2 (build 2001.11.25)
-
-- TargetPanel : it is now possible to specify a specific default installation
- directory for a specific Operating System thanks to Michael Peterson.
-- Ant makefile : generation of the lib/ directory if not present (Michael
- Peterson).
-- Documentation : updated to reflect the TargetPanel enhancements.
-
- > 2.10.0 pre 1 (build 2001.11.11)
-
-- A CVS server is now available thanks to TuxFamily.org .
-- 2 New frontend splash screens pictures by Nicolas Deschaume.
-- Safer command-line compiler invocation.
-- New variable substitution backend by Johannes Lehtinen (backward compatible).
-- Better exceptions reporting system to the end-user.
-- Installer : centered labels at the language selection prompt.
-- LicencePanel : now locks the 'next' button if the 'yes' radio is not selected.
-- TargetPanel : now warns if the specified target is an empty string.
-- InstallPanel : now removes the last processed file path when the installation
- is over.
-
- > 2.9.0 (build 2001.10.26)
-
-- Faster and safer I/O thanks to Johannes Lehtinen.
-- Faster frontend splash screen.
-- Removed the finalizers in the code.
-- Windows icon file added.
-
- > 2.8.0 (build 2001.10.20)
-
-- New Frontend splash screen.
-- New file saving stupid bug fix in the Frontend.
-- FinishPanel : tooltip for the script button.
-- InstallPanel : new animated icon for the install button.
-- XInfoPanel : adaptative text panel.
-- Frontend : recent files list (support for the imported files also).
-- Fixed some size problems with the installer language selection dialog.
-- XML Frontend preferences file spec auto-upgrade.
-- New Finnish language pack thanks to Johannes Lehtinen.
-
- > 2.7.0 (build 2001.09.26)
-
-- Frontend localisation support.
-- The Frontend remembers the last opened directory.
-- Flags for the language selection for the installers.
-- Language pre-selection for the installers.
-- TargetPanel : warns when the selected directory exists.
-- InstallPanel : animated icon for the install button.
-- New spanish langpack thanks to Carlos Rueda.
-
- > 2.6.1 (build 2001.09.22)
-
-- Added an image to the frontend about box.
-- Fix in the Ant Makefile that caused it to fail in case of a first-time build.
-
- > 2.6.0 (build 2001.09.20)
-
-- Cleaner installer icons loading using an XML file.
-- Installation DTD mistake fix.
-- New GUI Frontend.
-- Sample installation XML comment fix.
-- German langpack small fixes.
-- Better internationalisation on Swing-specific strings.
-- Minor bug fixes.
-- Threaded compiling process.
-- Fix in the packs panel.
-- Better installer navigation buttons locking/unlocking.
-
- > 2.5.0 (build 2001.09.07)
-
-- New web installers support.
-
- > 2.4.0 (build 2001.09.05)
-
-- Automated installations support.
-- New XPM icons.
-- Improved build.xml.
-- MacOS and MacOSX installation paths support.
-- Minor bug fix in the TargetPanel path selection.
-
- > 2.3.0 (build 2001.08.29)
-
-- Uninstaller support.
-- Fix on InstallPanel : it does not change its size each time that a new
- file is processed.
-- Bug fix in the IzPack variables translation system.
-- German langpack thanks to Klaus Hartlage.
-- Made a real documentation (it was time to do it :-) .
-
- > 2.2.0 (build 2001.08.18)
-
-- New panels available : ImgPacksPanel, HTMLInfoPanel, HTMLLicencePanel.
-- Use of Kunststoff 1.1.1 instead of 1.0.
-- Jakarta Ant script thanks to Pierre Dittgen.
-- API changes to allow a panel to ask for being skipped.
-- Wheights for some panels components fixed.
-- Added a Thanks.txt file :-)
-
- > 2.1.0 (build 2001.08.14)
-
-- Fixed a problem with the base path and the installation xml file, they don't
- need to be in the same directory anymore.
-- 2 tips in the source code from Brad Cox have been included.
-- A new kind of installer is available : standard-kunststoff (same as standard
- but with the Kunststoff Look and Feel support).
-- Fix in TargetPanel : you can specify the installation path by typing it
- without having to validate it with the enter key.
-- Fixed the bottom components wheights in the installer frame : now it looks
- much better.
-
- > 2.0.1 (build 2001.08.11)
-
-- No more warnings when the user wants to quit the installer and the
- installation is done with the panel InstallPanel.
-
- > 2.0.0 (build 2001.08.10)
-
-- ... a brand new IzPack !
-- Now it is an XML-based compiler.
-- A more modular architecture (you can create your own panels for instance).
-- No GUI builder for the moment, it will come in the next versions.
-- More kinds of installers to come.
-_______________________________________________________________________________
-
- > 1.1.1 (build 2001.04.21)
-
-- Faster installer building / installation process.
-- String comparisons are now using the equalsIgnoreCase method instead of an
- objects equality test '==' (safest).
-- Modified the about box.
-- Clearly made a difference between images & icons in the jar files
- (restructuration).
-- Tested successfully on BlackDown Linux JVM.
-
- > 1.1 (build 2001.04.10)
-
-- Adds the extensions to the filenames in the builder if it was omited.
-- Adjusted the fonts in the Metal theme; now it should look right.
-- Adjusted the thread priority of the splash & progress windows, it should be
- faster.
-- The setup now recognizes the os so that the default installation path is
- appropriated.
-- Editors now place the caret at the beginning when a need (ex : a new text
- is loaded).
-- Enhanced the language packs selection in the builder.
-- Added the french language packs.
-- Parses the script files for special variables.
-- Now comes along with a documentation.
-
- > 1.0 (build 2001.03.18)
-
-- Adjusted the fonts in the Metal theme.
-- Fixed the very stupid bugs with the files in pack deletion.
-- Improved the behaviour of the packs tab functions.
-- Made some small optimizations on various gui code parts.
-- Changed the text editors from JEditorPane to JTextArea : no more lines
- wrappings problems.
-- Gained 5kb on Setup.jar.
-- Blocks user interaction in the builder during the installer creation.
-
- > 1.0 beta 1 (build 2001.03.11)
-
-- The first public release :-)
-- There are a lot of features to add and enhance in the next releases, of
- course.
Copied: izpack-src/tags/3.9.0/Versions.txt (from rev 1617, izpack-src/branches/branch-3.9/Versions.txt)
Deleted: izpack-src/tags/3.9.0/src/build.xml
===================================================================
--- izpack-src/branches/branch-3.9/src/build.xml 2006-09-24 19:05:08 UTC (rev 1615)
+++ izpack-src/tags/3.9.0/src/build.xml 2006-09-25 04:19:33 UTC (rev 1618)
@@ -1,1149 +0,0 @@
-<project name="IzPack" default="all" basedir="..">
- <!--
- $Id$
-
- build.xml first written by Pierre Dittgen (pierre.dittgen at criltelecom.com)
- This file is intended to be used with ant (http://jakarta.apache.org/ant),
- a java/xml makefile utility.
-
- 14.8.2001: (by Pierre Dittgen)
- Creation of the build.xml. It only compile all the src files.
-
- 16.8.2001: (by Pierre Dittgen)
- Added creation of compiler.jar, installer.jar and compilation of the
- panels.
-
- 28.8.2001: (by Pierre Dittgen)
- Added compile.uninstaller and build.uninstaller targets to create the
- uninstaller.jar jar file.
-
- 02.9.2001: (by Julien Ponge)
- Improved compilation options (optimizations, deprecation warnings) and
- changed the build dir to src/build. Fixed the compiling/building of the
- uninstaller.
-
- 12.9.2001: (by Julien Ponge)
- Added creation/compilation of the frontend and its associated jar file.
-
- 22.9.2001: (by Julien Ponge)
- Small fix in the all target that caused an error if the build dir was
- not yet created.
-
- 14.10.2001: (by Julien Ponge)
- Added the XPanel compilation call.
-
- 12.12.2001: (by Julien Ponge)
- Removed the 'clean' dependency for the 'all' target.
-
- 12.02.2002: (by Julien Ponge)
- Moved the 'build' directory out of the src/ scope (usefull for my CVS
- files moving scripts).
- Added a markup to specify IBM Jikes as the compiler (just comment out to
- use another one).
-
- 21.02.2002: (by Paul Wilkinson)
- Added tasks to compiler.compiler and build.compiler to build ant task class.
-
- 02.03.2002: (by Julien Ponge)
- Modified the building of the panels so that the inner classes can be copied
- too.
-
- 18.04.2002: (by Julien Ponge)
- Added the new com.izforge.izpack.util & com.izforge.izpack.util.os
- packages to the installer.jar build process.
-
- 19.04.2002: (by Olexij Tkatchenko & Julien Ponge)
- Added "dist" target for bootstrapped IzPack package creation.
-
- 01.06.2002: (by Julien Ponge)
- Changed the panels building process in order to enable the ShortcutData
- classes to be move in the same directory as the ShortcutPanel classes.
-
- 15.06.2002: (by Julien Ponge)
- Added the ant-generated manifests in the clean target scope.
-
- 03.07.2002: (by Julien Ponge)
- Added a target to generate some javadoc.
-
- 12.01.2003: (by Julien Ponge)
- Separated the installer generation from the dist target so that it is
- much cleaner.
-
- 13.01.2003: (by Julien Ponge)
- Enhanced the clean target.
-
- 27.02.2003: (by Julien Ponge)
- Fixed the UserInputPanel building process to include all the required
- files.
-
- 30.04.2003: (by Jonathan Halliday)
- Change to panel compilation target, for panel automation
- (silent install) support.
-
- 05.07.2003: (by Julien Ponge)
- Added a target to fix the files encoding and cr/lf (fix.crlf).
-
- 10.09.2003: (by Julien Ponge)
- Reformatting, 4 spaces tabs, got rid of residual hard tabs.
-
- 19.09.2003: (by Julien Ponge)
- Added a run.installer target to test an installer.
-
- 06.12.2003: (by Julien Ponge)
- Removed the frontend-related sections.
-
- 16.12.2003: (by Julien Ponge)
- Added the SudoPanel building call.
-
- 18.02.2004: (by Julien Ponge)
- New installer naming scheme (IzPack-install-{version}.jar).
-
- 29.05.2004: (by Julien Ponge)
- New SimpleFinishPanel.
-
- 30.07.2004: (by Klaus Bartz)
- Simple CustomAction stuff added.
-
- 09.09.2004: (by Klaus Bartz)
- Clean up of CustomActions added.
- New uninstaller-ext.jar with native helper stuff for native libs
- in uninstaller.
-
- 14.10.2004: (by Klaus Bartz)
- New izevent.jar with the base classes of the custom action stuff
- to support creation of custom action jars without IzPack source tree
-
- 25.10.2004: (by Klaus Bartz)
- "Standard" CustomActions AntActionInstallerListener and
- AntActionUninstallerListener added
-
- 03.05.2005: (by Klaus Bartz)
- Target generated.installer-reg added:
- Creates an installer for IzPack with registry support
-
- 09.05.2005: (by Marc Eppelman)
- Target dist+run added:
- convenient :) makes a complete dist an installer and run them
-
- 11.05.2005: (by Fabrice Mirabile)
- Target cleandistreg added:
- Clean, Regenerate installer and installer with reg support. Avoid use of bad jars during installation.
-
- 18.07.2005: (by Julien Ponge)
- Enforce source / target compatibility, now 1.4 / 1.4.
-
- 02.09.2005: (by Klaus Bartz)
- Unicode support of ShellLink.
-
- 09.09.2005: (Marc.Eppelmann)
- Added start.sh to the shipped files in bin-folder.
-
- 10.01.2006: (by Fabrice Mirabile)
- Added the splashscreen to the cleandistreg target
-
- 06.04.2006: (Marc Eppelmann)
- Inserted the fix.crlf target in the depends-list of target "all" to prevent encoding problems.
-
- 26.06.2006: (Marc Eppelmann)
- Extracted / Reordered some dist related targets to prevent double copy actions.
- Also fixed the fix.crlf basedir
-
- 27.08.2006: (Marc Eppelmann)
- Embedd ShortcutPanel*.java
-
- 14.09.2006: (Marc Eppelmann)
- Added target src.tar.gz and clean.src.tar.gz
-
- Mini-HowTo:
-
- To compile and package the compiler.jar jar file, type:
- ant build.compiler
-
- To compile and package the installer.jar jar file, type:
- ant build.installer
-
- To compile and package the uninstaller.jar jar file, type:
- ant build.uninstaller
-
- To compile the panels and put them in the bin/panels directory, type:
- ant build.panels
-
- To compile and package the frontend.jar jar file, type:
- ant build.frontend
-
- To make all, type:
- ant all
- or
- ant
- (this is the default target)
-
- To compile and create IzPack distribution package type:
- ant dist
-
- To delete the classes directory after packaging, just type:
- ant clean
- -->
-
- <!-- Compiler to use put your own here (jikes, modern, gcj, ...) -->
- <!--<property name="build.compiler" value="jikes" />-->
-
- <!-- Define directories -->
- <property name="cwd" value="${basedir}" />
-
- <property file="src/ant.properties" />
- <property name="ver" value="3.9" />
- <property name="rel" value="0-RC1" />
- <property name="build.number" value="${ver}.${rel}" />
-
- <property name="src.dir" value="${basedir}/src/lib" />
- <property name="img.dir" value="${basedir}/src/img" />
- <property name="bin.dir" value="${basedir}/bin" />
- <property name="doc.dir" value="${basedir}/doc" />
-
- <property name="langpacks.subdir" value="langpacks" />
- <property name="langpacks.dir" value="${basedir}/bin/${langpacks.subdir}" />
-
- <property name="build.subdir" value="_build" />
- <property name="build.dir" value="${basedir}/${build.subdir}" />
-
- <property name="dist.subdir" value="_dist" />
- <property name="dist.dir" value="${basedir}/${dist.subdir}" />
- <property name="dist-files.dir" value="${basedir}/src/dist-files" />
-
- <!-- Define Main-Classes -->
- <property name="compiler.class" value="com.izforge.izpack.compiler.Compiler" />
- <property name="installer.class" value="com.izforge.izpack.installer.Installer" />
- <property name="uninstaller.class" value="com.izforge.izpack.uninstaller.Uninstaller" />
-
- <!-- Define file paths -->
- <property name="compiler.jar" value="${basedir}/lib/compiler.jar" />
- <property name="standalone-compiler.jar" value="${basedir}/lib/standalone-compiler.jar" />
- <property name="installer.jar" value="${basedir}/lib/installer.jar" />
- <property name="uninstaller.jar" value="${basedir}/lib/uninstaller.jar" />
- <property name="uninstaller-ext.jar" value="${basedir}/lib/uninstaller-ext.jar" />
- <property name="izevent.jar" value="${basedir}/lib/izevent.jar" />
-
- <!-- Compilation parameters -->
- <property name="debug" value="true" />
- <property name="debuglevel" value="lines,vars,source" />
- <property name="compat.source" value="1.4" />
- <property name="compat.target" value="1.4" />
-
-
- <!-- paths -->
- <path id="classpath">
- <fileset id="ext.libs" dir="${basedir}/lib">
- <!-- older ant jar, which izpack distributes and uses for fileset behavior -->
- <include name="ant.jar" />
- <include name="jakarta-regexp-1.3.jar" />
- </fileset>
- <!-- current ant jar, for compiling IzPackTask which uses modern ant features -->
- <fileset dir="${ant.home}/lib" includes="ant.jar" />
- </path>
-
- <!-- Checking target -->
- <target name="check">
- <echo message="basedir=${basedir}" />
- <echo message="dist.dir=${dist.dir}" />
- <echo message="build.dir=${build.dir}" />
- <echo message="debug=${debug}" />
- </target>
-
- <!-- Creates the classes directory -->
- <target name="prepare" depends="time">
- <mkdir dir="${build.dir}" />
- <mkdir dir="${basedir}/lib" />
- <mkdir dir="${dist.dir}" />
- </target>
-
- <!-- Compiles the compiler src files -->
- <target name="compile.compiler" depends="prepare">
- <javac srcdir="${src.dir}"
- classpath="${basedir}/lib/jakarta-regexp-1.3.jar"
- destdir="${build.dir}"
- optimize="on"
- source="${compat.source}"
- target="${compat.target}"
- deprecation="on"
- debug="${debug}"
- debuglevel="${debuglevel}">
- <include name="com/izforge/izpack/*.java" />
- <include name="com/izforge/izpack/compiler/*.java" />
- <include name="com/izforge/izpack/compressor/*.java" />
- <include name="com/izforge/izpack/ant/*.java" />
- <include name="com/izforge/izpack/util/Debug.java" />
- <include name="com/izforge/izpack/util/OsConstraint.java" />
- <include name="com/izforge/izpack/util/JarOutputStream.java" />
- <include name="net/n3/nanoxml/*.java" />
- </javac>
- <copy todir="${build.dir}/com/izforge/izpack/ant/langpacks">
- <fileset dir="${src.dir}/com/izforge/izpack/ant/langpacks" />
- </copy>
- </target>
-
- <!-- Package compiler.jar -->
- <target name="build.compiler" depends="compile.compiler">
- <jar jarfile="${compiler.jar}">
- <manifest>
- <attribute name="Built-By" value="IzPack" />
- <attribute name="Class-Path" value="ant.jar" />
- <attribute name="Main-Class" value="${compiler.class}" />
- </manifest>
- <fileset dir="${build.dir}">
- <include name="com/izforge/izpack/*.class" />
- <include name="com/izforge/izpack/compiler/*.class" />
- <include name="com/izforge/izpack/compressor/*.class" />
- <include name="com/izforge/izpack/util/OsConstraint.class" />
- <include name="com/izforge/izpack/util/Debug.class" />
- <include name="com/izforge/izpack/util/*Validator.class" />
- <include name="com/izforge/izpack/util/*Processor.class" />
- <include name="com/izforge/izpack/util/VariableSubstitutor.class" />
- <include name="com/izforge/izpack/util/JarOutputStream.class" />
- <include name="com/izforge/izpack/ant/*.class" />
- <include name="com/izforge/izpack/ant/langpacks/*.properties" />
- <include name="com/izforge/izpack/event/CompilerListener.class" />
- <include name="com/izforge/izpack/event/SimpleCompilerListener.class" />
- <include name="net/n3/nanoxml/*.class" />
- </fileset>
- </jar>
- </target>
-
- <!-- Package standalone-compiler.jar -->
- <target name="build.standalone-compiler"
- depends="compile.compiler, build.installer, build.uninstaller, build.uninstaller-ext, build.panels, build.listeners">
- <jar jarfile="${standalone-compiler.jar}" duplicate="preserve">
- <manifest>
- <attribute name="Built-By" value="IzPack" />
- <attribute name="Class-Path" value="ant.jar" />
- <attribute name="Main-Class" value="${compiler.class}" />
- </manifest>
- <zipfileset src="${installer.jar}" />
- <zipfileset src="${compiler.jar}">
- <!-- skip files already included via installer.jar -->
- <exclude name="com/izforge/izpack/*.class" />
- <exclude name="com/izforge/izpack/installer/*.class" />
- <exclude name="com/izforge/izpack/util/*.class" />
- <exclude name="net/n3/nanoxml/*.class" />
- </zipfileset>
- <zipfileset src="lib/ant.jar" />
- <fileset dir="${basedir}">
- <include name="bin/langpacks/flags/*" />
- <include name="bin/langpacks/installer/*" />
- <include name="bin/native/izpack/*" />
- <include name="bin/native/3rdparty/*" />
- <include name="bin/panels/*Panel.jar" />
- <include name="bin/customActions/*.jar" />
- <include name="lib/uninstaller.jar" />
- <include name="lib/uninstaller-ext.jar" />
- <include name="lib/installer.jar" />
- <include name="lib/kunststoff.jar" />
- <include name="lib/liquidlnf.jar" />
- <include name="lib/metouia.jar" />
- <include name="lib/looks.jar" />
- <include name="lib/ant.jar" />
- <exclude name="**/CVS" />
- </fileset>
- </jar>
- </target>
-
- <!-- Compiles the installer src files -->
- <target name="compile.installer" depends="prepare">
- <javac srcdir="${src.dir}"
- classpath="${basedir}/lib/jakarta-regexp-1.3.jar"
- destdir="${build.dir}"
- optimize="on"
- source="${compat.source}"
- target="${compat.target}"
- deprecation="on"
- debug="${debug}"
- debuglevel="${debuglevel}">
- <include name="com/izforge/izpack/*.java" />
- <include name="com/izforge/izpack/gui/*.java" />
- <include name="com/izforge/izpack/installer/*.java" />
- <include name="com/izforge/izpack/util/*.java" />
- <include name="com/izforge/izpack/util/os/*.java" />
- <include name="net/n3/nanoxml/*.java" />
- </javac>
- </target>
-
- <!-- Package installer.jar -->
- <target name="build.installer" depends="compile.installer">
- <jar jarfile="${installer.jar}">
- <manifest>
- <attribute name="Built-By" value="IzPack" />
- <attribute name="Class-Path" value="" />
- <attribute name="Main-Class" value="${installer.class}" />
- </manifest>
- <fileset dir="${build.dir}">
- <include name="com/izforge/izpack/*.class" />
- <include name="com/izforge/izpack/gui/*.class" />
- <include name="com/izforge/izpack/installer/*.class" />
- <include name="com/izforge/izpack/util/*.class" />
- <include name="com/izforge/izpack/util/**/*.class" />
- <include name="net/n3/nanoxml/*.class" />
- </fileset>
- <zipfileset src="${basedir}/lib/jakarta-regexp-1.3.jar">
- <include name="org/apache/regexp/*.class" />
- </zipfileset>
- <fileset dir="${src.dir}">
- <include name="com/izforge/izpack/installer/*.xml" />
- <include name="com/izforge/izpack/installer/*.properties" />
- </fileset>
- <fileset dir="${img.dir}/installer" />
- </jar>
- </target>
-
- <!-- Compiles the uninstaller src files -->
- <target name="compile.uninstaller" depends="prepare">
- <javac srcdir="${src.dir}"
- destdir="${build.dir}"
- optimize="on"
- source="${compat.source}"
- target="${compat.target}"
- deprecation="on"
- debug="${debug}"
- debuglevel="${debuglevel}">
- <include name="com/izforge/izpack/LocaleDatabase.java" />
- <include name="com/izforge/izpack/gui/*.java" />
-
- <include name="com/izforge/izpack/util/*.java"/>
- <include name="com/izforge/izpack/util/os/*.java"/>
- <include name="com/izforge/izpack/util/os/unix/*.java"/>
-
- <include name="com/izforge/izpack/uninstaller/*.java" />
- <exclude name="com/izforge/izpack/gui/IzPackKMetalTheme.java" />
- <include name="net/n3/nanoxml/*.java" />
- </javac>
- </target>
-
- <!-- Package uninstaller.jar -->
- <target name="build.uninstaller" depends="compile.uninstaller">
- <jar jarfile="${uninstaller.jar}">
- <manifest>
- <attribute name="Built-By" value="IzPack" />
- <attribute name="Class-Path" value="" />
- <attribute name="Main-Class" value="${uninstaller.class}" />
- </manifest>
- <fileset dir="${build.dir}">
- <include name="com/izforge/izpack/LocaleDatabase.class" />
- <include name="com/izforge/izpack/gui/*.class" />
- <include name="com/izforge/izpack/uninstaller/*.class" />
- <include name="com/izforge/izpack/ExecutableFile.class" />
- <exclude name="com/izforge/izpack/gui/IzPackKMetalTheme.class" />
- <include name="net/n3/nanoxml/*.class" />
- </fileset>
- <fileset dir="${build.dir}">
- <include name="com/izforge/izpack/util/**/*.class"/>
- </fileset>
- <fileset dir="${img.dir}/uninstaller">
- <include name="**/*"/>
- </fileset>
- </jar>
- </target>
-
- <!-- Compiles the extended uninstaller src files -->
- <target name="compile.uninstaller-ext" depends="prepare">
- <javac srcdir="${src.dir}"
- destdir="${build.dir}"
- optimize="on"
- source="${compat.source}"
- target="${compat.target}"
- deprecation="on"
- debug="${debug}"
- debuglevel="${debuglevel}">
- <include name="com/izforge/izpack/util/*.java" />
- <include name="com/izforge/izpack/util/os/*.java"/>
- <include name="com/izforge/izpack/util/os/unix/*.java"/>
- <include name="com/izforge/izpack/util/xml/*.java"/>
-
- <exclude name="com/izforge/izpack/gui/IzPackKMetalTheme.java" />
- <include name="net/n3/nanoxml/*.java" />
- </javac>
- </target>
- <!-- Package extended uninstaller.jar used if one ore more native libs are
- declared for uninstallation -->
- <target name="build.uninstaller-ext" depends="compile.uninstaller-ext">
- <jar jarfile="${uninstaller-ext.jar}">
- <fileset dir="${build.dir}">
- <include name="com/izforge/izpack/util/**/*.class"/>
- </fileset>
- </jar>
- </target>
-
- <!--
- ======================================================================
- Create Panel Modules
- ======================================================================
- -->
-
- <!-- Macro to compile a panel's classes and create it's jar file -->
- <macrodef name="build-panel">
- <attribute name="name" description="The panels jar will get this name" />
- <attribute name="srcdir"
- default="${src.dir}"
- description="Source directory. Defaults to izpack src dir" />
- <element name="panel-fileset"
- implicit="yes"
- description="include and exclude elements indicating panel sources" />
- <sequential>
- <echo message="build-panel: @{name}" />
- <mkdir dir="${bin.dir}/panels/@{name}" />
- <!-- sourcepath is cleared so there's no mistaking what goes into the Panel -->
- <javac srcdir="@{srcdir}"
- destdir="${bin.dir}/panels/@{name}"
- classpath="${installer.jar}"
- sourcepath=""
- optimize="on"
- deprecation="on"
- debug="${debug}"
- source="${compat.source}"
- target="${compat.target}"
- debuglevel="${debuglevel}">
- <panel-fileset />
- </javac>
- <jar jarfile="${bin.dir}/panels/@{name}.jar" basedir="${bin.dir}/panels/@{name}" />
- </sequential>
- </macrodef>
-
- <!-- Compile all panels and put them at the right location -->
- <!--
- If you add a another, and the build fails because it can't find a class,
- be sure to explicitly include the .java file in the nested fileset.
- This also acts as a check to help limit dependancies.
- -->
- <target name="build.panels" depends="build.installer">
- <mkdir dir="${bin.dir}/panels" />
-
- <build-panel name="FinishPanel">
- <include name="com/izforge/izpack/panels/FinishPanel.java" />
- </build-panel>
- <build-panel name="HelloPanel">
- <include name="com/izforge/izpack/panels/HelloPanel.java" />
- </build-panel>
- <build-panel name="SelectPrinterPanel">
- <include name="com/izforge/izpack/panels/SelectPrinterPanel.java"/>
- </build-panel>
- <build-panel name="CheckedHelloPanel">
- <include name="com/izforge/izpack/panels/CheckedHelloPanel.java" />
- <include name="com/izforge/izpack/panels/HelloPanel.java" />
- <include name="com/izforge/izpack/util/os/*RegistryHandler.java" />
- <include name="com/izforge/izpack/util/OSClassHelper.java" />
- <include name="com/izforge/izpack/util/os/WrappedNativeLibException.java" />
- <include name="com/coi/tools/os/win/NativeLibException.java" />
- <include name="com/coi/tools/os/win/Reg*.java" />
- <include name="com/coi/tools/os/win/resources/NativeLibErr*.java" />
- <include name="com/coi/tools/os/izpack/Registry.java" />
- <include name="com/coi/tools/os/izpack/COIOSHelper.java" />
- </build-panel>
- <build-panel name="InfoPanel">
- <include name="com/izforge/izpack/panels/InfoPanel.java" />
- </build-panel>
- <build-panel name="InstallPanel">
- <include name="com/izforge/izpack/panels/InstallPanel.java" />
- <include name="com/izforge/izpack/panels/InstallPanelAutomationHelper.java" />
- </build-panel>
- <build-panel name="ExtendedInstallPanel">
- <include name="com/izforge/izpack/panels/ExtendedInstallPanel.java" />
- <include name="com/izforge/izpack/panels/ExtendedInstallPanelAutomationHelper.java" />
- <include name="com/izforge/izpack/panels/InstallPanel.java" />
- </build-panel>
- <build-panel name="LicencePanel">
- <include name="com/izforge/izpack/panels/LicencePanel.java" />
- </build-panel>
- <build-panel name="PacksPanel">
- <include name="com/izforge/izpack/panels/ImgPacksPanelAutomationHelper.java" />
- <include name="com/izforge/izpack/panels/ImgPacksPanelBase.java" />
- <include name="com/izforge/izpack/panels/PacksModel.java" />
- <include name="com/izforge/izpack/panels/PacksPanel.java" />
- <include name="com/izforge/izpack/panels/PacksPanelAutomationHelper.java" />
- <include name="com/izforge/izpack/panels/PacksPanelBase.java" />
- <include name="com/izforge/izpack/panels/PacksPanelInterface.java" />
- </build-panel>
- <build-panel name="ImgPacksPanel">
- <include name="com/izforge/izpack/panels/ImgPacksPanel.java" />
- <include name="com/izforge/izpack/panels/ImgPacksPanelAutomationHelper.java" />
- <include name="com/izforge/izpack/panels/PacksModel.java" />
- <include name="com/izforge/izpack/panels/PacksPanelBase.java" />
- <include name="com/izforge/izpack/panels/PacksPanelInterface.java" />
- <include name="com/izforge/izpack/panels/PacksPanelAutomationHelper.java" />
- </build-panel>
- <build-panel name="HTMLLicencePanel">
- <include name="com/izforge/izpack/panels/HTMLLicencePanel.java" />
- </build-panel>
- <build-panel name="HTMLInfoPanel">
- <include name="com/izforge/izpack/panels/HTMLInfoPanel.java" />
- </build-panel>
- <build-panel name="TargetPanel">
- <include name="com/izforge/izpack/panels/PathInputPanel.java" />
- <include name="com/izforge/izpack/panels/PathSelectionPanel.java" />
- <include name="com/izforge/izpack/panels/TargetPanel.java" />
- <include name="com/izforge/izpack/panels/TargetPanelAutomationHelper.java" />
- </build-panel>
- <build-panel name="JDKPathPanel">
- <include name="com/izforge/izpack/panels/JDKPathPanel.java" />
- <include name="com/izforge/izpack/panels/PathInputPanel.java" />
- <include name="com/izforge/izpack/panels/PathSelectionPanel.java" />
- </build-panel>
- <build-panel name="XInfoPanel">
- <include name="com/izforge/izpack/panels/XInfoPanel.java" />
- </build-panel>
- <build-panel name="ShortcutPanel">
- <include name="com/izforge/izpack/panels/ShortcutData.java" />
- <include name="com/izforge/izpack/panels/ShortcutPanel*.java" />
- <include name="com/izforge/izpack/util/xml/*.java" />
- </build-panel>
- <build-panel name="UserInputPanel">
- <include name="com/izforge/izpack/panels/PasswordGroup.java" />
- <include name="com/izforge/izpack/panels/ProcessingClient.java" />
- <include name="com/izforge/izpack/panels/Processor.java" />
- <include name="com/izforge/izpack/panels/RuleInputField.java" />
- <include name="com/izforge/izpack/panels/RuleTextField.java" />
- <include name="com/izforge/izpack/panels/UserInputPanel.java" />
- <include name="com/izforge/izpack/panels/UserInputPanelAutomationHelper.java" />
- <include name="com/izforge/izpack/panels/Validator.java" />
- </build-panel>
- <build-panel name="ConditionalUserInputPanel">
- <include name="com/izforge/izpack/panels/ConditionalUserInputPanel.java" />
- <include name="com/izforge/izpack/panels/PasswordGroup.java" />
- <include name="com/izforge/izpack/panels/ProcessingClient.java" />
- <include name="com/izforge/izpack/panels/Processor.java" />
- <include name="com/izforge/izpack/panels/RuleInputField.java" />
- <include name="com/izforge/izpack/panels/RuleTextField.java" />
- <include name="com/izforge/izpack/panels/UserInputPanel.java" />
- <include name="com/izforge/izpack/panels/UserInputPanelAutomationHelper.java" />
- <include name="com/izforge/izpack/panels/Validator.java" />
- </build-panel>
- <build-panel name="CompilePanel">
- <include name="com/izforge/izpack/panels/CompilePanel.java" />
- <include name="com/izforge/izpack/panels/CompilePanelAutomationHelper.java" />
- </build-panel>
- <build-panel name="ProcessPanel">
- <include name="com/izforge/izpack/panels/ProcessPanel.java" />
- <include name="com/izforge/izpack/panels/ProcessPanelAutomationHelper.java" />
- </build-panel>
- <build-panel name="SudoPanel">
- <include name="com/izforge/izpack/panels/SudoPanel.java" />
- </build-panel>
- <build-panel name="SimpleFinishPanel">
- <include name="com/izforge/izpack/panels/SimpleFinishPanel.java" />
- </build-panel>
- <build-panel name="SummaryPanel">
- <include name="com/izforge/izpack/panels/SummaryPanel.java" />
- </build-panel>
- <build-panel name="InstallationGroupPanel">
- <include name="com/izforge/izpack/panels/InstallationGroupPanel.java"/>
- <include name="com/izforge/izpack/panels/InstallationGroupPanelAutomationHelper.java"/>
- </build-panel>
- </target>
-
- <!--
- ======================================================================
- Create Listener Modules
- ======================================================================
- -->
-
- <!-- Compiles the base custom action classes which should placed into
- izevent.jar -->
- <target name="compile.listener-base">
- <javac srcdir="${src.dir}"
- destdir="${build.dir}"
- optimize="on"
- source="${compat.source}"
- target="${compat.target}"
- deprecation="on"
- debug="${debug}"
- debuglevel="${debuglevel}"
- classpath="${installer.jar};${compiler.jar}">
- <include name="com/izforge/izpack/event/ActionBase.java" />
- <include name="com/izforge/izpack/event/Simple*nstallerListener.java" />
- <include name="com/izforge/izpack/event/InstallerListener.java" />
- <include name="com/izforge/izpack/event/UninstallerListener.java" />
- <include name="com/izforge/izpack/util/IoHelper.java" />
- </javac>
- </target>
- <!-- Package izevent.jar -->
- <target name="build.listener-base" depends="compile.listener-base">
- <jar jarfile="${izevent.jar}">
- <fileset dir="${build.dir}">
- <include name="com/izforge/izpack/event/*.class" />
- <include name="com/izforge/izpack/util/IoHelper.class" />
- <exclude name="com/izforge/izpack/event/*Compiler*.class" />
- </fileset>
- </jar>
- </target>
-
-
- <!-- Macro to compile a listener's classes and create its jar file -->
- <macrodef name="build-listener">
- <attribute name="name" description="The listener jar will get this name" />
- <attribute name="srcdir"
- default="${src.dir}"
- description="Source directory. Defaults to izpack src dir" />
- <attribute name="izeventExcludes"
- description="excludes patter for files in the ${izevent.jar} file" />
- <element name="listener-fileset"
- implicit="yes"
- description="include and exclude elements indicating listener sources" />
- <sequential>
- <echo message="build-listener: @{name}" />
- <mkdir dir="${bin.dir}/customActions/@{name}" />
- <!-- sourcepath is cleared so there's no mistaking what goes into the Listener -->
- <javac srcdir="@{srcdir}"
- destdir="${bin.dir}/customActions/@{name}"
- classpath="${installer.jar};${compiler.jar};${izevent.jar}"
- sourcepath=""
- optimize="on"
- deprecation="on"
- debug="${debug}"
- source="${compat.source}"
- target="${compat.target}"
- debuglevel="${debuglevel}">
- <listener-fileset />
- </javac>
- <jar jarfile="${bin.dir}/customActions/@{name}.jar"
- basedir="${bin.dir}/customActions/@{name}">
- <!-- also include files from the previously built ${izevent.jar} -->
- <zipfileset src="${izevent.jar}" excludes="@{izeventExcludes}" />
- </jar>
- </sequential>
- </macrodef>
-
- <!-- Convenience macro to call build-listener for compiler listeners -->
- <macrodef name="build-compiler-listener">
- <attribute name="name" />
- <attribute name="srcdir" default="${src.dir}" />
- <element name="compiler-fileset"
- implicit="yes"
- description="include and exclude elements indicating listener sources" />
- <sequential>
- <build-listener name="@{name}"
- srcdir="@{srcdir}"
- izeventExcludes="**/*Installer*,**/*Uninstaller*">
- <compiler-fileset />
- </build-listener>
- </sequential>
- </macrodef>
-
- <!-- Convenience macro to call build-listener for installer listeners -->
- <macrodef name="build-installer-listener">
- <attribute name="name" />
- <attribute name="srcdir" default="${src.dir}" />
- <element name="installer-fileset"
- implicit="yes"
- description="include and exclude elements indicating listener sources" />
- <sequential>
- <build-listener name="@{name}" srcdir="@{srcdir}" izeventExcludes="**/*Uninstaller*">
- <installer-fileset />
- </build-listener>
- </sequential>
- </macrodef>
-
- <!-- Convenience macro to call build-listener for uninstaller listeners -->
- <macrodef name="build-uninstaller-listener">
- <attribute name="name" />
- <attribute name="srcdir" default="${src.dir}" />
- <element name="uninstaller-fileset"
- implicit="yes"
- description="include and exclude elements indicating listener sources" />
- <sequential>
- <build-listener name="@{name}" srcdir="@{srcdir}" izeventExcludes="**/*Installer*">
- <uninstaller-fileset />
- </build-listener>
- </sequential>
- </macrodef>
-
- <!-- Compile all custom actions (listener) and put them at the right location -->
- <!--
- If you add a another, and the build fails because it can't find a class,
- be sure to explicitly include the .java file in the nested fileset.
- This also acts as a check to help limit dependancies.
- -->
- <target name="build.listeners" depends="build.compiler,build.installer,build.listener-base">
- <build-installer-listener name="AntActionInstallerListener">
- <include name="com/izforge/izpack/event/AntActionInstallerListener.java" />
- <include name="com/izforge/izpack/event/AntAction.java" />
- </build-installer-listener>
-
- <build-uninstaller-listener name="AntActionUninstallerListener">
- <include name="com/izforge/izpack/event/AntActionUninstallerListener.java" />
- <include name="com/izforge/izpack/event/AntAction.java" />
- </build-uninstaller-listener>
-
- <build-installer-listener name="SummaryLoggerInstallerListener">
- <include name="com/izforge/izpack/event/SummaryLoggerInstallerListener.java" />
- </build-installer-listener>
-
- <build-installer-listener name="RegistryInstallerListener">
- <include name="com/izforge/izpack/event/RegistryInstallerListener.java" />
- <include name="com/izforge/izpack/event/NativeInstallerListener.java" />
- <include name="com/izforge/izpack/util/os/*RegistryHandler.java" />
- <include name="com/izforge/izpack/util/OSClassHelper.java" />
- <include name="com/izforge/izpack/util/os/WrappedNativeLibException.java" />
- <include name="com/coi/tools/os/win/NativeLibException.java" />
- <include name="com/coi/tools/os/win/Reg*.java" />
- <include name="com/coi/tools/os/win/resources/NativeLibErr*.java" />
- <include name="com/coi/tools/os/izpack/Registry.java" />
- <include name="com/coi/tools/os/izpack/COIOSHelper.java" />
- </build-installer-listener>
-
- <build-uninstaller-listener name="RegistryUninstallerListener">
- <include name="com/izforge/izpack/event/RegistryUninstallerListener.java" />
- <include name="com/izforge/izpack/event/NativeUninstallerListener.java" />
- <include name="com/izforge/izpack/util/os/*RegistryHandler.java" />
- <include name="com/izforge/izpack/util/OSClassHelper.java" />
- <include name="com/izforge/izpack/util/os/WrappedNativeLibException.java" />
- <include name="com/coi/tools/os/win/NativeLibException.java" />
- <include name="com/coi/tools/os/win/Reg*.java" />
- <include name="com/coi/tools/os/win/resources/NativeLibErr*.java" />
- <include name="com/coi/tools/os/izpack/Registry.java" />
- <include name="com/coi/tools/os/izpack/COIOSHelper.java" />
- </build-uninstaller-listener>
-
- <!-- CUSTOM ACTION test START
- <build-compiler-listener name="ChmodCompilerListener">
- <include name="com/myCompany/tools/install/listener/ChmodCompilerListener.java"/>
- </build-compiler-listener>
-
- <build-installer-listener name="ChmodInstallerListener">
- <include name="com/myCompany/tools/install/listener/ChmodInstallerListener.java"/>
- </build-installer-listener>
- COSTOM ACTION test END -->
- </target>
-
- <!-- ====================================================================== -->
-
- <!-- Performs some cleanups -->
- <target name="clean" description="cleans up the dist">
- <echo message="Cleaning-up" />
- <delete includeEmptyDirs="true" quiet="true">
- <fileset dir="${build.dir}" />
- <fileset dir="${dist.dir}" />
- <fileset dir="${basedir}/bin/panels/">
- <include name="**/*" />
- </fileset>
- <fileset dir="${basedir}/bin/customActions/">
- <include name="**/*" />
- </fileset>
- <fileset dir="${basedir}/lib/">
- <include name="compiler.jar" />
- <include name="izevent.jar" />
- <include name="standalone-compiler.jar" />
- <include name="frontend.jar" />
- <include name="installer.jar" />
- <include name="uninstaller.jar" />
- <include name="uninstaller-ext.jar" />
- </fileset>
- </delete>
- <delete file="bin/native/3rdparty/COIOSHelper.dll" />
- <delete dir="${basedir}/bin/native/izpack" />
- <delete includeEmptyDirs="true" dir="${basedir}/doc/izpack" />
- <delete dir="${basedir}/_src${dist.subdir}"/>
- </target>
-
- <!-- Builds all compilation targets -->
- <target name="all"
- depends="splashscreen, src.tar.gz, build.compiler, build.installer, build.uninstaller, build.uninstaller-ext, build.panels, build.listeners, build.standalone-compiler" description="base: compiles a developer version"/>
-
- <!-- Builds the Javadoc -->
- <target name="build.javadoc" depends="prepare" description="Builds the javadoc">
- <mkdir dir="${build.dir}/javadoc" />
- <javadoc destdir="${build.dir}/javadoc" access="private" classpathref="classpath">
- <packageset dir="${src.dir}">
- <exclude name="**/CVS" />
- </packageset>
- </javadoc>
- <copy todir="${doc.dir}/izpack/javadoc">
- <fileset dir="${build.dir}/javadoc">
- <include name="**/*" />
- </fileset>
- </copy>
- </target>
-
- <target name="build.docu" description="Builds the customer documentation">
- <mkdir dir="${doc.dir}/izpack/xhtml" />
- <copy todir="${doc.dir}/izpack/xhtml">
- <fileset dir="${basedir}/src/doc-ng/XHTML">
- <include name="**/*" />
- </fileset>
- </copy>
- </target>
-
- <target name="create.docu"
- depends="build.javadoc, build.docu"
- description="Creates the javadoc-api and customer documentation">
-
- </target>
-
-
- <!-- - - - - - - - - - - - - - - - - -
- target: taskdef
- - - - - - - - - - - - - - - - - - -->
- <target name="taskdef.dist">
- <!-- Allows us to use the IzPack Ant task -->
- <taskdef name="izpack"
- classpath="${basedir}/lib/compiler.jar"
- classname="com.izforge.izpack.ant.IzPackTask" />
- </target>
-
-
- <!-- - - - - - - - - - - - - - - - - -
- target: copy.natives
- - - - - - - - - - - - - - - - - - -->
- <target name="copy.dist.natives">
- <echo message="Copies the recent changed native files to the ${basedir}/bin directory" />
-
- <mkdir dir="${basedir}/bin/native/izpack" />
- <!-- If unicode support of ShellLink.dll will be not used, change between both copy blocks -->
- <!--
- <copy todir="${basedir}/bin/native/izpack" file="${basedir}/src/native/ShellLink/Release/ShellLink.dll" verbose="true" overwrite="yes"/>
- <copy todir="${basedir}/bin/native/3rdparty" file="${basedir}/src/native/win/COIOSHelper/Release/COIOSHelper.dll" verbose="true" overwrite="yes"/>
- -->
- <copy todir="${basedir}/bin/native/izpack"
- file="${basedir}/src/native/ShellLink/Release_Unicode/ShellLink.dll"
- verbose="true"
- overwrite="yes" />
- <copy todir="${basedir}/bin/native/3rdparty"
- file="${basedir}/src/native/win/COIOSHelper/Release_Unicode/COIOSHelper.dll"
- verbose="true"
- overwrite="yes" />
- </target>
-
-
- <!-- - - - - - - - - - - - - - - - - -
- target: copy.distfiles
- - - - - - - - - - - - - - - - - - -->
- <target name="copy.dist.files">
- <echo message="Copies the general files to the dist directory" />
- <copy todir="${dist.dir}" includeEmptyDirs="yes">
- <fileset dir="${basedir}">
- <include name="bin/**" />
- <include name="lib/*.jar" />
- <include name="doc/**" />
- <include name="legal/**" />
- <include name="src/**" />
- <include name="sample/**" />
- <include name="*.txt" />
- </fileset>
- </copy>
- <echo message="Copies the langpacks to the dist directory" />
- <copy todir="${dist.dir}/bin" includeEmptyDirs="yes">
- <fileset dir="${basedir}">
- <include name="langpacks/**" />
- </fileset>
- </copy>
- <echo message="Copies the license images and specs to the dist directory" />
- <copy todir="${dist.dir}" includeEmptyDirs="yes">
- <fileset dir="${dist-files.dir}">
- <include name="useNativeLAF" />
- <include name="*.jpg" />
- <include name="*.png" />
- <include name="*.html" />
- <include name="Licence.txt" />
- <include name="IzPack-install*.xml" />
- <include name="shortcutSpec.xml" />
- <include name="Unix_shortcutSpec.xml" />
- <include name="RegistrySpec.xml" />
- </fileset>
- </copy>
- <echo message="Copies the bin files to the dist directory" />
- <copy todir="${dist.dir}/bin" includeEmptyDirs="yes" overwrite="yes">
- <fileset dir="${dist-files.dir}">
- <include name="compile*" />
- <include name="lcp.bat" />
- <include name="start.sh"/>
- </fileset>
- </copy>
- </target>
-
-
- <!-- - - - - - - - - - - - - - - - - -
- target: replace.dist.buildnumber
- - - - - - - - - - - - - - - - - - -->
- <target name="replace.dist.buildnumber">
- <replace file="${dist.dir}/shortcutSpec.xml"
- token="@build.number@"
- value="${build.number}"
- summary="yes" />
- <replace file="${dist.dir}/shortcutSpec.xml" token="@ver@" value="${ver}" summary="yes" />
-
- <replace file="${dist.dir}/Unix_shortcutSpec.xml"
- token="@build.number@"
- value="${build.number}"
- summary="yes" />
- <replace file="${dist.dir}/Unix_shortcutSpec.xml"
- token="@ver@"
- value="${ver}"
- summary="yes" />
- </target>
-
- <!-- Creates an installer for IzPack -->
- <target name="exec.izpack.compiler">
-
- <!-- We call IzPack -->
- <echo message="Makes the installer using IzPack" level="verbose" />
- <izpack input="${dist.dir}/${installer.xmlfile}"
- output="${dist.dir}/${installer.name}${ver}.${rel}.jar"
- installerType="standard"
- basedir="${dist.dir}"
- izPackDir="${dist.dir}/"
- compression="deflate"
- compressionlevel="9" />
- <echo>
-sucessfully created:
-${dist.dir}/${installer.name}${ver}.${rel}.jar
- </echo>
- </target>
-
-
- <!-- - - - - - - - - - - - - - - - - -
- target: prepare.install.dist
- - - - - - - - - - - - - - - - - - -->
- <target name="prepare.install.dist" depends="taskdef.dist, copy.dist.natives, copy.dist.files, replace.dist.buildnumber, fix.crlf">
-
- </target>
-
- <!-- =================================
- Creates a normal installer for IzPack
- ================================= -->
- <target name="generate.installer" depends="prepare.install.dist">
- <antcall target="exec.izpack.compiler">
- <param name="installer.xmlfile" value="IzPack-install.xml" />
- <param name="installer.name" value="${product}-install-" />
- </antcall>
- </target>
-
- <!--
- Fixes CR/LF by applying the Unix convention (\n for endlines).
- It also fixes the encoding problems by moving it to UTF-8.
- -->
- <target name="fix.crlf">
- <property name="dist.src.dir" location="${dist.dir}/src"/>
- <property name="dist.bin.dir" location="${dist.dir}/bin"/>
- <echo>
-Fixing linefeeds for several files in:
- "${dist.src.dir}"
- and
- "${dist.bin.dir}"
- </echo>
- <fixcrlf srcDir="${dist.src.dir}" eol="lf" eof="remove" encoding="UTF-8">
- <include name="**/*.java" />
- <include name="**/*.xml" />
- <include name="**/*.properties" />
- </fixcrlf>
- <fixcrlf srcdir="${dist.dir}" eol="unix" eof="remove">
- <include name="**/*.sh"/>
- <include name="dist-files/compile"/>
- </fixcrlf>
- <fixcrlf srcdir="${dist.bin.dir}" eol="unix" eof="remove">
- <include name="**/*.sh"/>
- <include name="compile"/>
- </fixcrlf>
- </target>
-
- <!-- Runs a testing installer. -->
- <target name="run.installer">
- <java jar="${basedir}/_dist/IzPack-install-${build.number}.jar" fork="true" />
- </target>
-
- <!-- Makes everything, from compilation to generating an installer. -->
- <target name="quickdist"
- depends="all, generate.installer"
- description="makes a installer without docu" />
-
- <!-- Makes everything, from compilation, customer and javadoc to generating an installer. -->
- <target name="dist"
- depends="all, create.docu, generate.installer"
- description="makes a complete installer" />
-
- <!-- Makes everything, from Cleaning to generating both installers: normal and reg support. -->
- <target name="cleandistreg"
- depends="clean, splashscreen, dist, generate.installer"
- description="creates a full dist with Win32 uninstall registry support" />
-
- <!-- =================================
- target: clean.src.tar.gz
- ================================= -->
- <target name="clean.src.tar.gz" depends="clean, src.tar.gz" description="--> creates a src.tar.gz after clean up">
- </target>
-
-
- <!-- =================================
- target: src.tar.gz
- ================================= -->
- <target name="src.tar.gz" description="--> creates a src.tar.gz ">
- <mkdir dir="${basedir}/_src${dist.subdir}"/>
- <property name="src.tar.gz" value="${basedir}/_src${dist.subdir}/${product}.src.${ver}.${rel}.tar.gz"/>
- <tar compression="gzip" destfile="${src.tar.gz}" basedir="${basedir}" excludes="_src${dist.subdir}/**, _dist/**, _build/**, bin/panels/**, bin/customActions/**, doc/izpack/**, eclipse-bin/**, lib/standalone-compiler.jar, lib/izevent.jar, lib/uninstaller*, lib/installer.jar, lib/compiler.jar"/>
- </target>
-
-
- <!-- convenient :) makes a quick dist (w/o docu), an installer and run them. -->
- <target name="quickdist+run"
- depends="quickdist, run.installer"
- description="makes a quickdist installer and runs them" />
-
- <!-- convenient :) makes a complete dist an installer and run them. -->
- <target name="dist+run"
- depends="dist, run.installer"
- description="makes a complete installer and runs them" />
-
- <!-- ** splashscreen **
- shows some ANT specific- and JAVA-
- but Platform and Project-independed Properties.
- ================================================================ -->
- <target name="splashscreen"
- depends="time"
- description="shows the used environment and project settings">
-
- <property name="console_line" value="**************************************************" />
- <!-- Task splash/ ?? -->
- <echo message="${console_line}" />
- <echo message="* ${ant.version}" />
- <!-- N2H: Test if this is the right ANT-Version (implementation of an own JAVA-Class which compares BuildNumbers) -->
- <echo message="* Java JRE version ${ant.java.version} ${java.vm.vendor}" />
- <!-- 1.3 -->
- <exec executable="${java.home}/bin/java">
- <arg line="-version" />
- </exec>
- <echo message="${console_line}" />
- <echo message="* processing file ....... '${ant.file}'" />
- <!-- D:\ToDo\_2002-11\AntTest\build.xml -->
- <echo message="* in base-directory ..... '${basedir}'" />
- <!-- D:\ToDo\_2002-11\AntTest -->
- <echo message="* building project ...... '${ant.project.name}'" />
- <!-- CIS -->
- <echo message="* working in directory .. '${cwd}'" />
- <echo message="${console_line}" />
- </target>
-
-
- <!-- =================================
- target: ShellLink.Javah
- ================================= -->
- <target name="ShellLink.Javah"
- depends="compile.installer"
- description="--> rebuilds the shelllink jni *.h header file">
- <javah class="com.izforge.izpack.util.os.ShellLink"
- destdir="${basedir}/src/native/ShellLink">
- <classpath path="${build.dir}" />
- </javah>
- </target>
-
-
- <!-- =================================
- target: time - takes a timestamp
- ================================= -->
- <target name="time">
- <tstamp />
- </target>
-
-
- <!-- =================================
- target: dump.properties - dumps the curent properties into the $os_$timestamp.properties file
- ================================= -->
- <target name="dump.properties" depends="time" description="dump.environment (for debug)">
- <echoproperties destfile="${basedir}/ant_properties_at_${os.name}-${os.arch}-${os.version}_at_${DSTAMP}-${TSTAMP}.txt" />
- </target>
-
-
-</project>
Copied: izpack-src/tags/3.9.0/src/build.xml (from rev 1617, izpack-src/branches/branch-3.9/src/build.xml)
Deleted: izpack-src/tags/3.9.0/src/dist-files/IzPack-install.xml
===================================================================
--- izpack-src/branches/branch-3.9/src/dist-files/IzPack-install.xml 2006-09-24 19:05:08 UTC (rev 1615)
+++ izpack-src/tags/3.9.0/src/dist-files/IzPack-install.xml 2006-09-25 04:19:33 UTC (rev 1618)
@@ -1,228 +0,0 @@
-<!--
- $Id$
-
- IzPack installer XML file
-
- By Julien PONGE
-
- In order to build an installer for IzPack, let's create a directory
- named '_dist' in the IzPack root directory. Then copy the files from
- 'src/dist-files' into '_dist'. Copy your IzPack image, that is all
- the files present at the IzPack root directory. To make it clear,
- you'll get bin/, lib/, ... and text files like Versions.txt and so
- on. Now you can invoke the IzPack compiler and it will generate the
- installer.
-
- Alternatively, you can use the IzPack Ant makefile and run 'ant dist'. It's
- much simpler :-)
--->
-
- <!-- The installation -->
-<installation version="1.0">
-
- <!-- The info section -->
- <info>
- <appname>IzPack</appname>
- <appversion>3.9.0-RC1 (build 2006.09.19)</appversion>
- <authors>
- <author email="" name="Julien Ponge (maintainer and original developer)"/>
-
- <author email="" name="Klaus Bartz (developer)"/>
- <author email="" name="Fabrice Mirabile (developer)"/>
- <author email="" name="Marc Eppelmann (developer)" />
-
- <author email="" name="Oliver Kiddle (contributor)"/>
- <author email="" name="Cesar Martinez Izquierdo (contributor)"/>
- <author email="" name="Ryan Shillington (contributor)" />
- <author email="" name="Eric Rose (contributor)" />
- <author email="" name="Amit Bhayani @JBoss/RedHat (contributors)" />
- <author email="" name="Scott Starks @JBoss/RedHat (contributors)" />
- <author email="" name="Alex Pinkin @JBoss/RedHat (contributors)" />
- <author email="" name="Dennis Reil (contributor)" />
- <author email="" name="Thomas Edwin Santosa (contributor)" />
-
- <author email=""
- name="... the many other developers and contributors to the previous releases (see Thanks.txt)"/>
- </authors>
- <url>http://www.izforge.com/izpack/</url>
- <javaversion>1.4</javaversion>
- <summarylogfilepath>$INSTALL_PATH/installinfo/Summary.htm</summarylogfilepath>
- </info>
-
- <!-- Flexible and in the screen proportions -->
- <guiprefs height="600" resizable="yes" width="800">
- <laf name="looks">
- <os family="unix"/>
- </laf>
- <!-- GUI addaption for more informations see "Modifying the GUI" in the documentation -->
- <modifier key="layoutAnchor" value="CENTER"/>
- <modifier key="headingPanelCounter" value="progressbar"/>
- <modifier key="headingPanelCounterPos" value="inNavigationPanel"/>
- <modifier key="allYGap" value="3"/>
- <modifier key="paragraphYGap" value="10"/>
- <modifier key="filler1YGap" value="5"/>
- <modifier key="filler3XGap" value="10"/>
- </guiprefs>
-
- <variables>
- <variable name="DesktopShortcutCheckboxEnabled" value="true"/>
- </variables>
-
- <!-- We include every langpack -->
- <locale>
- <langpack iso3="eng"/>
- <langpack iso3="fra"/>
- <langpack iso3="deu"/>
- <langpack iso3="ita"/>
- <langpack iso3="jpn"/>
- <langpack iso3="spa"/>
- <langpack iso3="dan"/>
- <langpack iso3="ell"/>
- <langpack iso3="cat"/>
- <langpack iso3="ned"/>
- <langpack iso3="fin"/>
- <langpack iso3="swe"/>
- <langpack iso3="por"/>
- <langpack iso3="pol"/>
- <langpack iso3="rus"/>
- <langpack iso3="ukr"/>
- <langpack iso3="hun"/>
- <langpack iso3="svk"/>
- <langpack iso3="rom"/>
- <langpack iso3="mys"/>
- <langpack iso3="nor"/>
- <langpack iso3="chn"/>
- <langpack iso3="scg"/>
- <langpack iso3="cze"/>
- <langpack iso3="kor"/>
- </locale>
-
- <!-- The resources needed by the various panels -->
- <resources>
- <res src="install-readme.html" id="HTMLInfoPanel.info"/>
- <res src="Licence.txt" id="LicencePanel.licence"/>
- <res src="splash-3.9.png" id="installer.langsel.img"/>
- <res src="shortcutSpec.xml" id="shortcutSpec.xml"/>
- <res src="Unix_shortcutSpec.xml" id="Unix_shortcutSpec.xml"/>
- <res src="core.png" id="ImgPacksPanel.img.0"/>
- <res src="doc-html.png" id="ImgPacksPanel.img.1"/>
- <res src="javadocs.png" id="ImgPacksPanel.img.2"/>
- <res src="doc-nanoxml.png" id="ImgPacksPanel.img.3"/>
- <!--
- <res src="doc-pdf.png" id="ImgPacksPanel.img.2" />
- -->
- <res src="sample.png" id="ImgPacksPanel.img.4"/>
- <res src="src.png" id="ImgPacksPanel.img.5"/>
- <res src="border1.png" id="Installer.image.0"/>
- <res src="border2.png" id="Installer.image.1"/>
- <res src="border3.png" id="Installer.image.2"/>
- <res src="border4.png" id="Installer.image.3"/>
- <res src="border5.png" id="Installer.image.4"/>
- <res src="border5.png" id="Installer.image.5"/>
- <res src="border6.png" id="Installer.image.6"/>
- <res src="border7.png" id="Installer.image.7"/>
- <res src="border8.png" id="Installer.image.8"/>
- <res src="RegistrySpec.xml" id="RegistrySpec.xml"/>
- </resources>
-
- <!-- The panels in a classic order -->
- <panels>
- <panel classname="CheckedHelloPanel"/>
- <panel classname="HTMLInfoPanel"/>
- <panel classname="LicencePanel"/>
- <panel classname="TargetPanel"/>
- <panel classname="ImgPacksPanel"/>
- <panel classname="SummaryPanel"/>
- <panel classname="InstallPanel"/>
- <panel classname="ShortcutPanel"/>
- <!-- We use temporary the FinishPanel in the 3.9 Release
- to get Access to the [Generate an automatic installation script]-Button
- to get feedback so quick as possible from all of users,
- who wants to get back this feature ;-) -->
- <panel classname="FinishPanel"/>
- </panels>
-
- <!-- The listeners section for CustomActions -->
- <listeners>
- <listener installer="SummaryLoggerInstallerListener"/>
- <listener installer="RegistryInstallerListener" uninstaller="RegistryUninstallerListener">
- <os family="windows"/>
- </listener>
- </listeners>
-
- <!-- The packs section -->
- <packs>
-
- <!-- The core files -->
- <pack name="Core" required="yes">
- <description>The IzPack core files.</description>
- <fileset dir="" targetdir="$INSTALL_PATH">
- <include name="*.txt"/>
- <include name="bin/**/*"/>
- <include name="lib/**/*"/>
- <include name="legal/**/*"/>
- </fileset>
- <executable targetfile="$INSTALL_PATH/bin/compile" stage="never"/>
- <executable targetfile="$INSTALL_PATH/bin/start.sh" stage="never"/>
- </pack>
-
- <!-- The documentation -->
- <pack name="XHTML Documentation" required="no">
- <description>The IzPack documentation (XHTML version).</description>
- <fileset dir="" targetdir="$INSTALL_PATH">
- <include name="doc/izpack/xhtml/**/*"/>
- </fileset>
- </pack>
- <pack name="Java Documentation" required="no">
- <description>
- The IzPack Java documentation (Javadocs for IzPack developers).
- </description>
- <fileset dir="" targetdir="$INSTALL_PATH">
- <include name="doc/izpack/javadoc/**/*"/>
- </fileset>
- </pack>
- <!--
- Disabled while doc-ng not provides a pdf ...
-
- <pack name="PDF Documentation" required="no">
- <description>The IzPack documentation (PDF version).</description>
- <fileset dir="" targetdir="$INSTALL_PATH">
- <include name="doc/izpack/pdf/**/*" />
- </fileset>
- </pack>
- -->
- <pack name="NanoXML Documentation" required="no">
- <description>NanoXML documentation (for IzPack developers).</description>
- <fileset dir="" targetdir="$INSTALL_PATH">
- <include name="doc/nanoxml/**/*"/>
- </fileset>
- </pack>
-
-
- <!-- A trivial sample to get started -->
- <pack name="Sample" required="no">
- <description>A sample installation.</description>
- <fileset dir="" targetdir="$INSTALL_PATH">
- <include name="sample/**/*"/>
- </fileset>
- </pack>
-
- <!-- The source code of this version -->
- <pack name="Sources" required="no">
- <description>The full IzPack source code.</description>
- <fileset dir="" targetdir="$INSTALL_PATH">
- <include name="src/**/*"/>
- <exclude name="src/*.manifest"/>
- </fileset>
- </pack>
-
- </packs>
-
- <!-- The native libraries to add -->
- <native type="izpack" name="ShellLink.dll"/>
- <native type="3rdparty" name="COIOSHelper.dll" stage="both">
- <os family="windows"/>
- </native>
-
-
-</installation>
Copied: izpack-src/tags/3.9.0/src/dist-files/IzPack-install.xml (from rev 1617, izpack-src/branches/branch-3.9/src/dist-files/IzPack-install.xml)
Deleted: izpack-src/tags/3.9.0/src/lib/com/izforge/izpack/panels/ShortcutPanel.java
===================================================================
--- izpack-src/branches/branch-3.9/src/lib/com/izforge/izpack/panels/ShortcutPanel.java 2006-09-24 19:05:08 UTC (rev 1615)
+++ izpack-src/tags/3.9.0/src/lib/com/izforge/izpack/panels/ShortcutPanel.java 2006-09-25 04:19:33 UTC (rev 1618)
@@ -1,1999 +0,0 @@
-/*
- * IzPack - Copyright 2001-2005 Julien Ponge, All Rights Reserved.
- *
- * http://www.izforge.com/izpack/ http://developer.berlios.de/projects/izpack/
- *
- * Copyright 2002 Elmar Grom
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.izforge.izpack.panels;
-
-import java.awt.Dimension;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.GridLayout;
-import java.awt.Insets;
-import java.awt.LayoutManager2;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Vector;
-
-import javax.swing.ButtonGroup;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JFileChooser;
-import javax.swing.JLabel;
-import javax.swing.JList;
-import javax.swing.JPanel;
-import javax.swing.JRadioButton;
-import javax.swing.JScrollPane;
-import javax.swing.JTextField;
-import javax.swing.ListSelectionModel;
-import javax.swing.border.Border;
-import javax.swing.border.EmptyBorder;
-import javax.swing.border.TitledBorder;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-
-import net.n3.nanoxml.NonValidator;
-import net.n3.nanoxml.StdXMLBuilder;
-import net.n3.nanoxml.StdXMLParser;
-import net.n3.nanoxml.StdXMLReader;
-import net.n3.nanoxml.XMLElement;
-
-import com.izforge.izpack.ExecutableFile;
-import com.izforge.izpack.Pack;
-import com.izforge.izpack.gui.ButtonFactory;
-import com.izforge.izpack.gui.LabelFactory;
-import com.izforge.izpack.installer.AutomatedInstallData;
-import com.izforge.izpack.installer.InstallData;
-import com.izforge.izpack.installer.InstallerFrame;
-import com.izforge.izpack.installer.IzPanel;
-import com.izforge.izpack.installer.ResourceNotFoundException;
-import com.izforge.izpack.installer.UninstallData;
-import com.izforge.izpack.util.Debug;
-import com.izforge.izpack.util.FileExecutor;
-import com.izforge.izpack.util.MultiLineLabel;
-import com.izforge.izpack.util.OsConstraint;
-import com.izforge.izpack.util.OsVersion;
-import com.izforge.izpack.util.StringTool;
-import com.izforge.izpack.util.TargetFactory;
-import com.izforge.izpack.util.VariableSubstitutor;
-import com.izforge.izpack.util.os.Shortcut;
-import com.izforge.izpack.util.os.unix.UnixHelper;
-import com.izforge.izpack.util.xml.XMLHelper;
-
-//
-// import com.izforge.izpack.panels.ShortcutData;
-
-/*---------------------------------------------------------------------------*/
-
-/**
- * This class implements a panel for the creation of shortcuts. The panel prompts the user to select
- * a program group for shortcuts, accept the creation of desktop shortcuts and actually creates the
- * shortcuts.
- *
- * @version $Revision$
- */
-public class ShortcutPanel extends IzPanel implements ActionListener, ListSelectionListener // ,//
-// ShortcutConstants
-
-{
-
- // ~ Static fields/initializers *********************************************************
- /** serialVersionUID = 3256722870838112311L */
- private static final long serialVersionUID = 3256722870838112311L;
-
- // ~ Static fields/initializers *********************************************************
-
- /** SPEC_ATTRIBUTE_KDE_USERNAME ="KdeUsername" */
- public final static String SPEC_ATTRIBUTE_KDE_USERNAME ="KdeUsername";
-
- /** SPEC_ATTRIBUTE_KDE_SUBST_UID = "KdeSubstUID" */
- public final static String SPEC_ATTRIBUTE_KDE_SUBST_UID = "KdeSubstUID";
-
- /** SPEC_ATTRIBUTE_URL = "url" */
- public final static String SPEC_ATTRIBUTE_URL = "url";
-
- /** SPEC_ATTRIBUTE_TYPE = "type" */
- public final static String SPEC_ATTRIBUTE_TYPE = "type";
-
- /** SPEC_ATTRIBUTE_TERMINAL_OPTIONS = "terminalOptions" */
- public final static String SPEC_ATTRIBUTE_TERMINAL_OPTIONS = "terminalOptions";
-
- /** SPEC_ATTRIBUTE_TERMINAL = "terminal" */
- public final static String SPEC_ATTRIBUTE_TERMINAL = "terminal";
-
- /** SPEC_ATTRIBUTE_MIMETYPE = "mimetype" */
- public final static String SPEC_ATTRIBUTE_MIMETYPE = "mimetype";
-
- /** SPEC_ATTRIBUTE_ENCODING = "encoding" */
- public final static String SPEC_ATTRIBUTE_ENCODING = "encoding";
-
- /** LOCATION_APPLICATIONS=applications */
- private static final String LOCATION_APPLICATIONS = "applications";
-
- /** LOCATION_START_MENU = "startMenu" */
- private static final String LOCATION_START_MENU = "startMenu";
-
- /** SPEC_CATEGORIES = "categories" */
- public static final String SPEC_CATEGORIES = "categories";
-
- /** SPEC_TRYEXEC = "tryexec" */
- public static final String SPEC_TRYEXEC = "tryexec";
-
-
- /**
- * SEPARATOR_LINE =
- * "--------------------------------------------------------------------------------";
- */
- private static final String SEPARATOR_LINE = "--------------------------------------------------------------------------------";
-
- /**
- * The default file name for the text file in which the shortcut information should be stored,
- * in case shortcuts can not be created on a particular target system. TEXT_FILE_NAME =
- * "Shortcuts.txt"
- */
- private static final String TEXT_FILE_NAME = "Shortcuts.txt";
-
- /**
- * The name of the XML file that specifies the shortcuts SPEC_FILE_NAME = "shortcutSpec.xml";
- */
- private static final String SPEC_FILE_NAME = "shortcutSpec.xml";
-
- // ------------------------------------------------------
- // spec file section keys
- // -----------------------------------------------------
-
- /** SPEC_KEY_SKIP_IFNOT_SUPPORTED = "skipIfNotSupported" */
- private static final String SPEC_KEY_SKIP_IFNOT_SUPPORTED = "skipIfNotSupported";
-
- /** SPEC_KEY_NOT_SUPPORTED = "notSupported" */
- private static final String SPEC_KEY_NOT_SUPPORTED = "notSupported";
-
- /** SPEC_KEY_PROGRAM_GROUP = "programGroup" */
- private static final String SPEC_KEY_PROGRAM_GROUP = "programGroup";
-
- /** SPEC_KEY_SHORTCUT = "shortcut" */
- private static final String SPEC_KEY_SHORTCUT = "shortcut";
-
- /** SPEC_KEY_PACKS = "createForPack" */
- private static final String SPEC_KEY_PACKS = "createForPack";
-
- // ------------------------------------------------------
- // spec file key attributes
- // ------------------------------------------------------
- /** SPEC_ATTRIBUTE_DEFAULT_GROUP = "defaultName" */
- private static final String SPEC_ATTRIBUTE_DEFAULT_GROUP = "defaultName";
-
- /** SPEC_ATTRIBUTE_LOCATION = "location" */
- private static final String SPEC_ATTRIBUTE_LOCATION = "location";
-
- /** SPEC_ATTRIBUTE_NAME = "name" */
- private static final String SPEC_ATTRIBUTE_NAME = "name";
-
- /** SPEC_ATTRIBUTE_SUBGROUP = "subgroup" */
- private static final String SPEC_ATTRIBUTE_SUBGROUP = "subgroup";
-
- /** SPEC_ATTRIBUTE_DESCRIPTION = "description" */
- private static final String SPEC_ATTRIBUTE_DESCRIPTION = "description";
-
- /** SPEC_ATTRIBUTE_TARGET = "target" */
- private static final String SPEC_ATTRIBUTE_TARGET = "target";
-
- /** SPEC_ATTRIBUTE_COMMAND = "commandLine" */
- private static final String SPEC_ATTRIBUTE_COMMAND = "commandLine";
-
- /** SPEC_ATTRIBUTE_ICON "iconFile" */
- private static final String SPEC_ATTRIBUTE_ICON = "iconFile";
-
- /** SPEC_ATTRIBUTE_ICON_INDEX "iconIndex" */
- private static final String SPEC_ATTRIBUTE_ICON_INDEX = "iconIndex";
-
- /** SPEC_ATTRIBUTE_WORKING_DIR = "workingDirectory" */
- private static final String SPEC_ATTRIBUTE_WORKING_DIR = "workingDirectory";
-
- /** SPEC_ATTRIBUTE_INITIAL_STATE = "initialState" */
- private static final String SPEC_ATTRIBUTE_INITIAL_STATE = "initialState";
-
- /** SPEC_ATTRIBUTE_DESKTOP = "desktop" */
- private static final String SPEC_ATTRIBUTE_DESKTOP = "desktop";
-
- /** SPEC_ATTRIBUTE_APPLICATIONS = "applications" */
- private static final String SPEC_ATTRIBUTE_APPLICATIONS = "applications";
-
- /** SPEC_ATTRIBUTE_START_MENU = "startMenu" */
- private static final String SPEC_ATTRIBUTE_START_MENU = "startMenu";
-
- /** SPEC_ATTRIBUTE_STARTUP = "startup" */
- private static final String SPEC_ATTRIBUTE_STARTUP = "startup";
-
- /** SPEC_ATTRIBUTE_PROGRAM_GROUP = "programGroup" */
- private static final String SPEC_ATTRIBUTE_PROGRAM_GROUP = "programGroup";
-
- // ------------------------------------------------------
- // spec file attribute values
- // ------------------------------------------------------
-
- /** SPEC_VALUE_APPLICATIONS = "applications" */
- private static final String SPEC_VALUE_APPLICATIONS = "applications";
-
- /** SPEC_VALUE_START_MENU = "startMenu" */
- private static final String SPEC_VALUE_START_MENU = "startMenu";
-
- /** SPEC_VALUE_NO_SHOW = "noShow" */
- private static final String SPEC_VALUE_NO_SHOW = "noShow";
-
- /** SPEC_VALUE_NORMAL = "normal" */
- private static final String SPEC_VALUE_NORMAL = "normal";
-
- /** SPEC_VALUE_MAXIMIZED = "maximized" */
- private static final String SPEC_VALUE_MAXIMIZED = "maximized";
-
- /** SPEC_VALUE_MINIMIZED = "minimized" */
- private static final String SPEC_VALUE_MINIMIZED = "minimized";
-
- // ------------------------------------------------------
- // automatic script section keys
- // ------------------------------------------------------
-
- /** */
-
- /** AUTO_KEY_PROGRAM_GROUP = SPEC_KEY_PROGRAM_GROUP = "programGroup" */
- public static final String AUTO_KEY_PROGRAM_GROUP = SPEC_KEY_PROGRAM_GROUP;
-
- /** AUTO_KEY_SHORTCUT = SPEC_KEY_SHORTCUT = "shortcut" */
- public static final String AUTO_KEY_SHORTCUT = SPEC_KEY_SHORTCUT;
-
- // ------------------------------------------------------
- // automatic script keys attributes
- // ------------------------------------------------------
-
- /** AUTO_ATTRIBUTE_NAME = "name" */
- public static final String AUTO_ATTRIBUTE_NAME = "name";
-
- /** AUTO_ATTRIBUTE_GROUP = "group" */
- public static final String AUTO_ATTRIBUTE_GROUP = "group";
-
- /** AUTO_ATTRIBUTE_TYPE "type" */
- public static final String AUTO_ATTRIBUTE_TYPE = "type";
-
- /** AUTO_ATTRIBUTE_COMMAND = "commandLine" */
- public static final String AUTO_ATTRIBUTE_COMMAND = "commandLine";
-
- /** AUTO_ATTRIBUTE_DESCRIPTION = "description" */
- public static final String AUTO_ATTRIBUTE_DESCRIPTION = "description";
-
- /** AUTO_ATTRIBUTE_ICON = "icon" */
- public static final String AUTO_ATTRIBUTE_ICON = "icon";
-
- /** AUTO_ATTRIBUTE_ICON_INDEX = "iconIndex" */
- public static final String AUTO_ATTRIBUTE_ICON_INDEX = "iconIndex";
-
- /** AUTO_ATTRIBUTE_INITIAL_STATE = "initialState" */
- public static final String AUTO_ATTRIBUTE_INITIAL_STATE = "initialState";
-
- /** AUTO_ATTRIBUTE_TARGET = "target" */
- public static final String AUTO_ATTRIBUTE_TARGET = "target";
-
- /** AUTO_ATTRIBUTE_WORKING_DIR = "workingDirectory" */
- public static final String AUTO_ATTRIBUTE_WORKING_DIR = "workingDirectory";
-
- // permission flags
-
- /** CREATE_FOR_ALL = "createForAll" */
- public static final String CREATE_FOR_ALL = "createForAll";
-
- private static ShortcutPanel self = null;
-
- /** internal flag: create */
- static boolean create;
-
- /** internal flag isRootUser */
- private static boolean isRootUser;
-
- // ~ Instance fields ********************************************************************
-
- // ~ Instance fields ********************************************************************
-
- /** a VectorList of Files wich should be make executable */
- private Vector execFiles = new Vector();
-
- // ------------------------------------------------------------------------
- // Variable Declarations
- // ------------------------------------------------------------------------
-
- /** UI element to label the list of existing program groups */
- private JLabel listLabel;
-
- /** UI element to present the list of existing program groups for selection */
- private JList groupList;
-
- /** UI element for listing the intended shortcut targets */
- private JList targetList;
-
- /**
- * UI element to present the default name for the program group and to support editing of this
- * name.
- */
- private JTextField programGroup;
-
- /** UI element to allow the user to revert to the default name of the program group */
- private JButton defaultButton;
-
- /** UI element to allow the user to save a text file with the shortcut information */
- private JButton saveButton;
-
- /**
- * UI element to allow the user to decide if shortcuts should be placed on the desktop or not.
- */
- private JCheckBox allowDesktopShortcut;
-
- /** Checkbox to enable/disable to chreate ShortCuts */
- private JCheckBox createShortcuts;
-
- /** UI element instruct this panel to create shortcuts for the current user only */
- private JRadioButton currentUser;
-
- /** UI element instruct this panel to create shortcuts for all users */
- private JRadioButton allUsers;
-
- /** The layout for this panel */
- private GridBagLayout layout;
-
- /** The contraints object to use whan creating the layout */
- private GridBagConstraints constraints;
-
- /**
- * The default name to use for the program group. This comes from the XML specification.
- */
- private String suggestedProgramGroup;
-
- /** The name chosen by the user for the program group, */
- private String groupName;
-
- /**
- * The location for placign the program group. This is the same as the location (type) of a
- * shortcut, only that it applies to the program group. Note that there are only two locations
- * that make sense as location for a program group: <br>
- * applications start menu
- */
- private int groupLocation;
-
- /** The parsed result from reading the XML specification from the file */
- private XMLElement spec;
-
- /** Set to true by analyzeShortcutSpec() if there are any desktop shortcuts to create. */
- private boolean hasDesktopShortcuts = false;
-
- /** Tells wether to skip if the platform is not supported. */
- private boolean skipIfNotSupported = false;
-
- /** the one shortcut instance for reuse in many locations */
- private Shortcut shortcut;
-
- /**
- * A list of ShortcutData> objects. Each object is the complete specification for one shortcut
- * that must be created.
- */
- private Vector shortcuts = new Vector();
-
- /**
- * Holds a list of all the shortcut files that have been created. Note: this variable contains
- * valid data only after createShortcuts() has been called. This list is created so that the
- * files can be added to the uninstaller.
- */
- private Vector files = new Vector();
-
- /**
- * If true it indicates that there are shortcuts to create. The value is set by
- * analyzeShortcutSpec()
- */
- private boolean shortcutsToCreate = false;
-
- /** If true it indicates that the spec file is existing and could be read. */
- private boolean haveShortcutSpec = false;
-
- /**
- * This is set to true if the shortcut spec instructs to simulate running on an operating system
- * that is not supported.
- */
- private boolean simulteNotSupported = false;
-
- /** Avoids bogus behaviour when the user goes back then returns to this panel. */
-
- // private boolean firstTime = true;
- private File itsProgramFolder;
-
- /** itsUserType */
- private int itsUserType;
-
- /** USER_TYPE = "usertype" to store this information in the automated.xml */
- public final static String USER_TYPE = "usertype";
-
- /** shortCuts */
- private Vector shortCuts;
-
- /** internal line counter */
- int line;
-
- /** internal column counter */
- int col;
-
- // ~ Constructors ***********************************************************************
-
- // ~ Constructors ***********************************************************************
-
- /*
- * --------------------------------------------------------------------------
- */
-
- /**
- * Constructor.
- *
- * @param parent reference to the application frame
- * @param installData shared information about the installation
- */
-
- /*
- * --------------------------------------------------------------------------
- */
- public ShortcutPanel(InstallerFrame parent, InstallData installData)
- {
- super(parent, installData, "link16x16");
-
- layout = (GridBagLayout) super.getLayout();
- Object con = getLayoutHelper().getDefaultConstraints();
- if( con instanceof GridBagConstraints)
- constraints = (GridBagConstraints) con;
- else
- con = new GridBagConstraints();
- setLayout(super.getLayout());
-
- if( self != null )
- throw new RuntimeException( this.getClass().getName() + " is not allowed to instantiate more than once!" );
-
- self = this;
- }
-
- // ~ Methods ****************************************************************************
-
- // ~ Methods ****************************************************************************
- // **************************************************************************************************************************************************
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * This method represents the ActionListener interface, invoked when an action occurs.
- *
- * @param event the action event.
- */
-
- /*--------------------------------------------------------------------------*/
- public void actionPerformed(ActionEvent event)
- {
- Object eventSource = event.getSource();
-
- /*
- * if (eventSource != null) { System.out.println("Instance Of : " +
- * eventSource.getClass().getName()); }
- */
-
- // ----------------------------------------------------
- // create shortcut for the current user was selected
- // refresh the list of program groups accordingly and
- // reset the program group to the default setting.
- // ----------------------------------------------------
- if (eventSource.equals(currentUser))
- {
- groupList.setListData(shortcut.getProgramGroups(Shortcut.CURRENT_USER));
- programGroup.setText(suggestedProgramGroup);
- shortcut.setUserType(itsUserType = Shortcut.CURRENT_USER);
-
- return;
- }
-
- // ----------------------------------------------------
- // create shortcut for all users was selected
- // refresh the list of program groups accordingly and
- // reset the program group to the default setting.
- // ----------------------------------------------------
- else if (eventSource.equals(allUsers))
- {
- groupList.setListData(shortcut.getProgramGroups(Shortcut.ALL_USERS));
- programGroup.setText(suggestedProgramGroup);
- shortcut.setUserType(itsUserType = Shortcut.ALL_USERS);
-
- return;
- }
-
- // ----------------------------------------------------
- // The reset button was pressed.
- // - clear the selection in the list box, because the
- // selection is no longer valid
- // - refill the program group edit control with the
- // suggested program group name
- // ----------------------------------------------------
- else if (eventSource.equals(defaultButton))
- {
- groupList.getSelectionModel().clearSelection();
- programGroup.setText(suggestedProgramGroup);
-
- return;
- }
-
- // ----------------------------------------------------
- // the save button was pressed. This is a request to
- // save shortcut information to a text file.
- // ----------------------------------------------------
- else if (eventSource.equals(saveButton))
- {
- saveToFile();
-
- // add the file to the uninstaller
- addToUninstaller();
-
- return;
- }
- else if (eventSource.equals(createShortcuts))
- {
- create = createShortcuts.isSelected();
-
- if (groupList != null)
- {
- groupList.setEnabled(create);
- }
-
- programGroup.setEnabled(create);
- currentUser.setEnabled(create);
- defaultButton.setEnabled(create);
-
- // ** There where no Desktop Links or not allowed, this may be null: **//
- if (allowDesktopShortcut != null)
- {
- allowDesktopShortcut.setEnabled(create);
- }
-
- if (isRootUser)
- {
- allUsers.setEnabled(create);
- }
- }
- }
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * Returns true when all selections have valid settings. This indicates that it is legal to
- * procede to the next panel.
- *
- * @return true if it is legal to procede to the next panel, otherwise false.
- */
-
- /*--------------------------------------------------------------------------*/
- public boolean isValidated()
- {
- try
- {
- groupName = programGroup.getText();
- }
- catch (Throwable exception)
- {
- groupName = "";
- }
-
- create = createShortcuts.isSelected();
-
- createShortcuts();
-
- // add files and directories to the uninstaller
- addToUninstaller();
-
- return (true);
- }
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * Called when the panel is shown to the user.
- */
-
- /*--------------------------------------------------------------------------*/
- public void panelActivate()
- {
- try
- {
- readShortcutSpec();
- }
- catch (Throwable exception)
- {
- System.out.println("could not read shortcut spec!");
- exception.printStackTrace();
- }
-
- // Create the UI elements
- try
- {
- shortcut = (Shortcut) (TargetFactory.getInstance()
- .makeObject("com.izforge.izpack.util.os.Shortcut"));
- shortcut.initialize(Shortcut.APPLICATIONS, "-");
- }
- catch (Throwable exception)
- {
- System.out.println("could not create shortcut instance");
- exception.printStackTrace();
- }
-
- analyzeShortcutSpec();
-
- if (shortcutsToCreate && !OsVersion.IS_OSX)
- {
- if (shortcut.supported() && !simulteNotSupported)
- {
- File allUsersProgramsFolder = getProgramsFolder(Shortcut.ALL_USERS);
-
- Debug.log("All UsersProgramsFolder: '" + allUsersProgramsFolder + "'");
-
- File forceTest = new File(allUsersProgramsFolder + File.separator
- + System.getProperty("user.name") + System.currentTimeMillis());
-
- try
- {
- isRootUser = forceTest.createNewFile();
- }
- catch (Exception e)
- {
- isRootUser = false;
- Debug.log("IOException: " + "'" + e.getLocalizedMessage() + "'");
- Debug.log("You cannot create '" + forceTest + "'");
-
- }
-
- if (forceTest.exists())
- {
- Debug.log("Delete temporary File: '" + forceTest + "'");
- forceTest.delete();
- }
-
- String perm = isRootUser ? "can" : "cannot";
-
- Debug.log("You " + perm + " write into '" + allUsersProgramsFolder + "'");
-
- if (isRootUser)
- {
- itsUserType = Shortcut.ALL_USERS;
- }
- else
- {
- itsUserType = Shortcut.CURRENT_USER;
- }
-
- buildUI(getProgramsFolder(isRootUser ? Shortcut.ALL_USERS : Shortcut.CURRENT_USER));
-
- // addSelectionList();
- // add( shortCutsArea );
- // JList shortCutList = null;
- // addList( shortCuts, ListSelectionModel.SINGLE_SELECTION, shortCutList, col,
- // line+6, 1, 1, GridBagConstraints.BOTH );
- }
- else
- {
- // TODO MEP: Test
- buildAlternateUI();
-
- // parent.unlockNextButton();
- // parent.lockPrevButton();
- }
- }
- else
- {
- ; // parent.skipPanel ();
- }
- }
-
- /**
- * Returns the ProgramsFolder for the current User
- *
- * @param userType DOCUMENT ME!
- *
- * @return The Basedir
- */
- private File getProgramsFolder(int userType)
- {
- String path = shortcut.getProgramsFolder(userType);
-
- return (new File(path));
-
- // }
- // else
- // {
- // TODO
- // 0ptional: Test if KDE is installed.
- // boolean isKdeInstalled = UnixHelper.kdeIsInstalled();
- // 1. Test if User can write into
- // File kdeRootShareApplinkDir = getKDERootShareApplinkDir();
- // if so: return getKDERootShareApplinkDir()
- // else
- // return getKDEUsersShareApplinkDir() +
- // }
- // return(result);
- }
-
- /**
- * This method is called by the groupList when the user makes a selection. It updates the
- * content of the programGroup with the result of the selection.
- *
- * @param event the list selection event
- */
-
- /*--------------------------------------------------------------------------*/
- public void valueChanged(ListSelectionEvent event)
- {
- if (programGroup == null) { return; }
-
- String value = "";
-
- try
- {
- value = (String) groupList.getSelectedValue();
- }
- catch (ClassCastException exception)
- {}
-
- if (value == null)
- {
- value = "";
- }
-
- programGroup.setText(value + File.separator + suggestedProgramGroup);
- }
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * Reads the XML specification for the shortcuts to create. The result is stored in spec.
- *
- * @exception Exception for any problems in reading the specification
- */
-
- /*--------------------------------------------------------------------------*/
- private void readShortcutSpec() throws Exception
- {
- // open an input stream
- InputStream input = null;
-
- try
- {
- input = parent.getResource(TargetFactory.getCurrentOSPrefix() + SPEC_FILE_NAME);
- }
- catch (ResourceNotFoundException rnfE)
- {
- input = parent.getResource(SPEC_FILE_NAME);
- }
-
- if (input == null)
- {
- haveShortcutSpec = false;
-
- return;
- }
-
- // if( input == null )
- // {
- // haveShortcutSpec = false;
- // return;
- // }
- // initialize the parser
- VariableSubstitutor substitutor = new VariableSubstitutor(idata.getVariables());
-
- // input.
- String substitutedSpec = substitutor.substitute(input, "xml");
-
- /*
- * TODO: internal flag mapped if( idata.isDebug() ) { System.out.println( "SUBSTITUDED
- * SHORTCUT SPEC" ); System.out.println(
- * "==================================================================" );
- * System.out.println( "==================================================================" );
- * System.out.println( substitutedSpec ); System.out.println(
- * "==================================================================" );
- * System.out.println( "==================================================================" ); }
- */
- StdXMLParser parser = new StdXMLParser();
- parser.setBuilder(new StdXMLBuilder());
- parser.setValidator(new NonValidator());
- parser.setReader(StdXMLReader.stringReader(substitutedSpec));
-
- // get the data
- spec = (XMLElement) parser.parse();
-
- // close the stream
- input.close();
- haveShortcutSpec = true;
- }
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * This method analyzes the specifications for creating shortcuts and builds a list of all the
- * Shortcuts that need to be created.
- */
-
- /*--------------------------------------------------------------------------*/
- private void analyzeShortcutSpec()
- {
- if (!haveShortcutSpec)
- {
- shortcutsToCreate = false;
-
- return;
- }
-
- XMLElement skipper = spec.getFirstChildNamed(SPEC_KEY_SKIP_IFNOT_SUPPORTED);
- skipIfNotSupported = (skipper != null);
-
- // ----------------------------------------------------
- // find out if we should simulate a not supported
- // scenario
- // ----------------------------------------------------
- XMLElement support = spec.getFirstChildNamed(SPEC_KEY_NOT_SUPPORTED);
-
- if (support != null)
- {
- simulteNotSupported = true;
- }
-
- // ----------------------------------------------------
- // find out in which program group the shortcuts should
- // be placed and where this program group should be
- // located
- // ----------------------------------------------------
- XMLElement group = spec.getFirstChildNamed(SPEC_KEY_PROGRAM_GROUP);
- String location = null;
- hasDesktopShortcuts = false;
-
- if (group != null)
- {
- suggestedProgramGroup = group.getAttribute(SPEC_ATTRIBUTE_DEFAULT_GROUP, "");
- location = group.getAttribute(SPEC_ATTRIBUTE_LOCATION, SPEC_VALUE_APPLICATIONS);
- }
- else
- {
- suggestedProgramGroup = "";
- location = SPEC_VALUE_APPLICATIONS;
- }
-
- if (location.equals(SPEC_VALUE_APPLICATIONS))
- {
- groupLocation = Shortcut.APPLICATIONS;
- }
- else if (location.equals(SPEC_VALUE_START_MENU))
- {
- groupLocation = Shortcut.START_MENU;
- }
-
- // ----------------------------------------------------
- // create a list of all shortcuts that need to be
- // created, containing all details about each shortcut
- // ----------------------------------------------------
- // String temp;
- Vector shortcutSpecs = spec.getChildrenNamed(SPEC_KEY_SHORTCUT);
- XMLElement shortcutSpec;
- ShortcutData data;
-
- shortCuts = new Vector();
-
- for (int i = 0; i < shortcutSpecs.size(); i++)
- {
- // System.out.println( "Processing shortcut: " + i );
- shortcutSpec = (XMLElement) shortcutSpecs.elementAt(i);
-
- if (!OsConstraint.oneMatchesCurrentSystem(shortcutSpec))
- {
- continue;
- }
-
- // TODO: write log info INFO.info( "Checking Condition for " +
- // shortcutSpec.getAttribute( SPEC_ATTRIBUTE_NAME ) );
- if (!checkConditions(shortcutSpec))
- {
- continue;
- }
-
- // TODO write log info INFO.info( "Checked Condition for " +
- // shortcutSpec.getAttribute( SPEC_ATTRIBUTE_NAME ) );
- data = new ShortcutData();
-
- data.name = shortcutSpec.getAttribute(SPEC_ATTRIBUTE_NAME);
- data.subgroup = shortcutSpec.getAttribute(SPEC_ATTRIBUTE_SUBGROUP, "");
- data.description = shortcutSpec.getAttribute(SPEC_ATTRIBUTE_DESCRIPTION, "");
-
- // ** Linux **//
- data.deskTopEntryLinux_Encoding = shortcutSpec
- .getAttribute(SPEC_ATTRIBUTE_ENCODING, "");
- data.deskTopEntryLinux_MimeType = shortcutSpec
- .getAttribute(SPEC_ATTRIBUTE_MIMETYPE, "");
- data.deskTopEntryLinux_Terminal = shortcutSpec
- .getAttribute(SPEC_ATTRIBUTE_TERMINAL, "");
- data.deskTopEntryLinux_TerminalOptions = shortcutSpec.getAttribute(
- SPEC_ATTRIBUTE_TERMINAL_OPTIONS, "");
- data.deskTopEntryLinux_Type = shortcutSpec.getAttribute(SPEC_ATTRIBUTE_TYPE, "");
-
- data.deskTopEntryLinux_URL = shortcutSpec.getAttribute(SPEC_ATTRIBUTE_URL, "");
-
- data.deskTopEntryLinux_X_KDE_SubstituteUID = shortcutSpec.getAttribute(
- SPEC_ATTRIBUTE_KDE_SUBST_UID, "false");
-
- data.deskTopEntryLinux_X_KDE_UserName = shortcutSpec.getAttribute(
- SPEC_ATTRIBUTE_KDE_USERNAME, "root");
-
- data.Categories = shortcutSpec.getAttribute(
- SPEC_CATEGORIES, "Application;Development");
-
- data.TryExec = shortcutSpec.getAttribute(
- SPEC_TRYEXEC, "");
-
- data.createForAll = new Boolean(shortcutSpec.getAttribute(CREATE_FOR_ALL, "false"));
-
- // ** EndOf LINUX **//
- // temp =
- data.target = fixSeparatorChar(shortcutSpec.getAttribute(SPEC_ATTRIBUTE_TARGET, ""));
-
- // temp =
- data.commandLine = shortcutSpec.getAttribute(SPEC_ATTRIBUTE_COMMAND, "");
-
- // temp =
- data.iconFile = fixSeparatorChar(shortcutSpec.getAttribute(SPEC_ATTRIBUTE_ICON, ""));
- data.iconIndex = Integer.parseInt(shortcutSpec.getAttribute(SPEC_ATTRIBUTE_ICON_INDEX,
- "0"));
-
- // temp =
- data.workingDirectory = fixSeparatorChar(shortcutSpec.getAttribute(
- SPEC_ATTRIBUTE_WORKING_DIR, ""));
-
- String initialState = shortcutSpec.getAttribute(SPEC_ATTRIBUTE_INITIAL_STATE, "");
-
- if (initialState.equals(SPEC_VALUE_NO_SHOW))
- {
- data.initialState = Shortcut.HIDE;
- }
- else if (initialState.equals(SPEC_VALUE_NORMAL))
- {
- data.initialState = Shortcut.NORMAL;
- }
- else if (initialState.equals(SPEC_VALUE_MAXIMIZED))
- {
- data.initialState = Shortcut.MAXIMIZED;
- }
- else if (initialState.equals(SPEC_VALUE_MINIMIZED))
- {
- data.initialState = Shortcut.MINIMIZED;
- }
- else
- {
- data.initialState = Shortcut.NORMAL;
- }
-
- // LOG System.out.println("data.initialState: " + data.initialState);
-
- // --------------------------------------------------
- // if the minimal data requirements are met to create
- // the shortcut, create one entry each for each of
- // the requested types.
- // Eventually this will cause the creation of one
- // shortcut in each of the associated locations.
- // --------------------------------------------------
- // without a name we can not create a shortcut
- if (data.name == null)
- {
- continue;
- }
-
- // 1. Elmar: "Without a target we can not create a shortcut."
- // 2. Marc: "No, Even on Linux a Link can be an URL and has no target."
- if (data.target == null)
- {
- // TODO: write log info INFO.warn( "Shortcut: " + data + " has no target" );
- data.target = "";
- }
- // the shortcut is not actually required for any of the selected packs
-
- // the shortcut is not actually required for any of the selected packs // the shortcut
- // is not actually required for any of the selected packs
- Vector forPacks = shortcutSpec.getChildrenNamed(SPEC_KEY_PACKS);
-
- if (!shortcutRequiredFor(forPacks))
- {
- continue;
- }
- // --------------------------------------------------
- // This section is executed if we don't skip.
- // --------------------------------------------------
- // For each of the categories set the type and if
- // the link should be placed in the program group,
- // then clone the data set to obtain an independent
- // instance and add this to the list of shortcuts
- // to be created. In this way, we will set up an
- // identical copy for each of the locations at which
- // a shortcut should be placed. Therefore you must
- // not use 'else if' statements!
- // --------------------------------------------------
- {
- if (XMLHelper.attributeIsTrue(shortcutSpec, SPEC_ATTRIBUTE_DESKTOP))
- {
- hasDesktopShortcuts = true;
- data.addToGroup = false;
- data.type = Shortcut.DESKTOP;
- shortcuts.add(data.clone());
- }
-
- if (XMLHelper.attributeIsTrue(shortcutSpec, SPEC_ATTRIBUTE_APPLICATIONS))
- {
- data.addToGroup = false;
- data.type = Shortcut.APPLICATIONS;
- shortcuts.add(data.clone());
- }
-
- if (XMLHelper.attributeIsTrue(shortcutSpec, SPEC_ATTRIBUTE_START_MENU))
- {
- data.addToGroup = false;
- data.type = Shortcut.START_MENU;
- shortcuts.add(data.clone());
- }
-
- if (XMLHelper.attributeIsTrue(shortcutSpec, SPEC_ATTRIBUTE_STARTUP))
- {
- data.addToGroup = false;
- data.type = Shortcut.START_UP;
- shortcuts.add(data.clone());
- }
-
- if (XMLHelper.attributeIsTrue(shortcutSpec, SPEC_ATTRIBUTE_PROGRAM_GROUP))
- {
- data.addToGroup = true;
- data.type = Shortcut.APPLICATIONS;
- shortcuts.add(data.clone());
- }
-
- // / TODO: write log INFO.info( "data.name: " + data.name );
- shortCuts.add((data.name == null) ? "" : data.name); // + " -> " + data.target +
-
- // " Type: " + data.type );
- }
- }
-
- // ----------------------------------------------------
- // signal if there are any shortcuts to create
- // ----------------------------------------------------
- if (shortcuts.size() > 0)
- {
- shortcutsToCreate = true;
- }
- }
-
- /**
- * This returns true if a Shortcut should or can be created. Returns false to suppress Creation
- *
- * @param shortcutSpec
- *
- * @return true if condtion is resolved positive - currently unimplemented: returns always true.
- */
- private boolean checkConditions(XMLElement shortcutSpec)
- {
- /*
- * Vector conditions = shortcutSpec.getChildrenNamed( Condition.CONDITION );
- *
- * for( int i = 0; i < conditions.size(); i++ ) { Condition condition = new Condition(
- * conditions.elementAt( i ) );
- *
- * //System.out.println( "Readed: " + condition.toString( true ) ); boolean result =
- * condition.eval();
- *
- * if( result == false ) { System.out.println( "Unresolved Condition: " + condition );
- *
- * return result; } }
- */
- return true; // If there is no Condition defined, just create the shortcut.
- }
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * Creates all shortcuts based on the information in shortcuts.
- */
-
- /*--------------------------------------------------------------------------*/
- private void createShortcuts()
- {
- if (!create) { Debug.log( this.getClass().getName() + "::createShortcuts():create=" + create ); return; }
-
- ShortcutData data;
-
- for (int i = 0; i < shortcuts.size(); i++)
- {
- data = (ShortcutData) shortcuts.elementAt(i);
-
- try
- {
- groupName = groupName + data.subgroup;
- shortcut.setUserType(itsUserType);
- shortcut.setLinkName(data.name);
- shortcut.setLinkType(data.type);
- shortcut.setArguments(data.commandLine);
- shortcut.setDescription(data.description);
- shortcut.setIconLocation(data.iconFile, data.iconIndex);
-
- shortcut.setShowCommand(data.initialState);
- shortcut.setTargetPath(data.target);
- shortcut.setWorkingDirectory(data.workingDirectory);
- shortcut.setEncoding(data.deskTopEntryLinux_Encoding);
- shortcut.setMimetype(data.deskTopEntryLinux_MimeType);
-
- shortcut.setTerminal(data.deskTopEntryLinux_Terminal);
- shortcut.setTerminalOptions(data.deskTopEntryLinux_TerminalOptions);
- shortcut.setType(data.deskTopEntryLinux_Type);
- shortcut.setKdeSubstUID(data.deskTopEntryLinux_X_KDE_SubstituteUID);
- shortcut.setKdeUserName(data.deskTopEntryLinux_X_KDE_UserName);
- shortcut.setURL(data.deskTopEntryLinux_URL);
- shortcut.setTryExec(data.TryExec);
- shortcut.setCategories(data.Categories);
- shortcut.setCreateForAll(data.createForAll);
-
- shortcut.setUninstaller( UninstallData.getInstance() );
-
- if (data.addToGroup)
- {
- shortcut.setProgramGroup(groupName);
- }
- else
- {
- shortcut.setProgramGroup("");
- }
-
- try
- {
- // ----------------------------------------------
- // save the shortcut only if it is either not on
- // the desktop or if it is on the desktop and
- // the user has signalled that it is ok to place
- // shortcuts on the desktop.
- // ----------------------------------------------
- if ((data.type != Shortcut.DESKTOP)
- || ((data.type == Shortcut.DESKTOP) && allowDesktopShortcut
- .isSelected()))
- {
- // save the shortcut
- shortcut.save();
-
- // add the file and directory name to the file list
- String fileName = shortcut.getFileName();
- files.add(0, fileName);
-
- File file = new File(fileName);
- File base = new File(shortcut.getBasePath());
- Vector intermediates = new Vector();
-
- // String directoryName = shortcut.getDirectoryCreated ();
- execFiles.add(new ExecutableFile(fileName, ExecutableFile.UNINSTALL,
- ExecutableFile.IGNORE, new ArrayList(), false));
-
- files.add(fileName);
-
- while ((file = file.getParentFile()) != null)
- {
- if (file.equals(base))
- {
- break;
- }
-
- intermediates.add(file);
- }
-
- if (file != null)
- {
- Enumeration filesEnum = intermediates.elements();
-
- while (filesEnum.hasMoreElements())
- {
- files.add(0, filesEnum.nextElement().toString());
- }
- }
- }
- }
- catch (Exception exception)
- {}
- }
- catch (Throwable exception)
- {
- continue;
- }
- }
-
- shortcut.execPostAction();
-
- try
- {
- if (execFiles != null)
- {
- FileExecutor executor = new FileExecutor(execFiles);
-
- //
- // TODO: Hi Guys,
- // TODO The following commented-out line sometimes produces an uncatchable
- // nullpointer Exception!
- // TODO evaluate for what reason the files should exec.
- // TODO if there is a serious explanation, why to do that,
- // TODO the code must be more robust
- // evaluate executor.executeFiles( ExecutableFile.NEVER, null );
- }
- }
- catch (NullPointerException nep)
- {
- nep.printStackTrace();
- }
- catch (RuntimeException cannot)
- {
- cannot.printStackTrace();
- }
-
-
- shortcut.cleanUp();
- }
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * Verifies if the shortcut is required for any of the packs listed. The shortcut is required
- * for a pack in the list if that pack is actually selected for installation. Note: If the list
- * of selected packs is empty then true is always returnd. The same is true if the packs list is
- * empty.
- *
- * @param packs a Vector of Strings. Each of the strings denotes a pack for which the schortcut
- * should be created if the pack is actually installed.
- *
- * @return true if the shortcut is required for at least on pack in the list, otherwise returns
- * false.
- */
-
- /*--------------------------------------------------------------------------*/
- /*
- * $ @design
- *
- * The information about the installed packs comes from InstallData.selectedPacks. This assumes
- * that this panel is presented to the user AFTER the PacksPanel.
- * --------------------------------------------------------------------------
- */
- private boolean shortcutRequiredFor(Vector packs)
- {
- String selected;
- String required;
-
- if (packs.size() == 0) { return (true); }
-
- for (int i = 0; i < idata.selectedPacks.size(); i++)
- {
- selected = ((Pack) idata.selectedPacks.get(i)).name;
-
- for (int k = 0; k < packs.size(); k++)
- {
- required = (String) ((XMLElement) packs.elementAt(k)).getAttribute(
- SPEC_ATTRIBUTE_NAME, "");
-
- if (selected.equals(required)) { return (true); }
- }
- }
-
- return (false);
- }
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * Replaces any ocurrence of '/' or '\' in a path string with the correct version for the
- * operating system.
- *
- * @param path a system path
- *
- * @return a path string that uniformely uses the proper version of the separator character.
- */
-
- /*--------------------------------------------------------------------------*/
- private String fixSeparatorChar(String path)
- {
- String newPath = path.replace('/', File.separatorChar);
- newPath = newPath.replace('\\', File.separatorChar);
-
- return (newPath);
- }
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * This method creates the UI for this panel.
- *
- * @param groups A Vector that contains Strings with all the names of the existing program
- * groups. These will be placed in the groupList.
- */
-
- /*--------------------------------------------------------------------------*/
- private void buildUI(File groups)
- {
- constraints.insets = new Insets(10, 10, 0, 0);
-
- // Add a CheckBox which enables the user to entirely supress shortcut creation.
- String menuKind = parent.langpack.getString("ShortcutPanel.regular.StartMenu:Start-Menu");
-
- if (OsVersion.IS_UNIX && UnixHelper.kdeIsInstalled())
- {
- menuKind = parent.langpack.getString("ShortcutPanel.regular.StartMenu:K-Menu");
- }
-
- createShortcuts = new JCheckBox(StringTool.replace(parent.langpack
- .getString("ShortcutPanel.regular.create"), "StartMenu", menuKind), true);
- createShortcuts.addActionListener(this);
- constraints.gridx = col;
- constraints.gridy = line + 1;
- constraints.gridwidth = 1;
- constraints.gridheight = 1;
-
- // constraints.weightx = 0.1;
- // constraints.weighty = 0.2;
- constraints.fill = GridBagConstraints.HORIZONTAL;
- constraints.anchor = GridBagConstraints.NORTHWEST;
-
- layout.addLayoutComponent(createShortcuts, constraints);
- add(createShortcuts);
-
- constraints.insets = new Insets(0, 10, 0, 0);
-
- // ----------------------------------------------------
- // check box to allow the user to decide if a desktop
- // shortcut should be created.
- // this should only be created if needed and requested
- // in the definition file.
- // ----------------------------------------------------
- if (hasDesktopShortcuts)
- {
- String initialAllowedValue = idata.getVariable("DesktopShortcutCheckboxEnabled");
- boolean initialAllowedFlag = false;
-
- if (initialAllowedValue == null)
- {
- initialAllowedFlag = false;
- }
- else if (Boolean.TRUE.toString().equals(initialAllowedValue))
- {
- initialAllowedFlag = true;
- }
-
- allowDesktopShortcut = new JCheckBox(parent.langpack
- .getString("ShortcutPanel.regular.desktop"), initialAllowedFlag);
- constraints.gridx = col;
- constraints.gridy = line + 2;
- constraints.gridwidth = 1;
- constraints.gridheight = 1;
-
- // constraints.weighty = 0.2;
- // constraints.weighty = 1.0;
- // constraints.weighty = 0.5;
- layout.addLayoutComponent(allowDesktopShortcut, constraints);
- add(allowDesktopShortcut);
- }
-
- listLabel = LabelFactory.create(parent.langpack.getString("ShortcutPanel.regular.list"),
- JLabel.LEADING);
-
- constraints.gridx = col;
- constraints.gridy = line + 3;
- constraints.gridwidth = 1;
- constraints.gridheight = 1;
-
- constraints.insets = new Insets(10, 10, 0, 0);
-
- constraints.fill = GridBagConstraints.HORIZONTAL;
- constraints.anchor = GridBagConstraints.NORTHWEST;
-
- layout.addLayoutComponent(listLabel, constraints);
- add(listLabel);
-
- // ----------------------------------------------------
- // list box to list all of already existing folders as program groups
- // at the intended destination
- // ----------------------------------------------------
- Vector dirEntries = new Vector();
-
- File[] entries = groups.listFiles();
-
- // Quickfix prevent NullPointer on non default compliant Linux - KDEs
- // i.e Mandrake 2005 LE stores from now also in "applnk" instead in prior "applnk-mdk":
- if (entries != null)
- {
- for (int idx = 0; idx < entries.length; idx++)
- {
- if (entries[idx].isDirectory())
- {
- dirEntries.add(entries[idx].getName());
- }
- }
- }
-
- if (groupList == null)
- {
- groupList = new JList();
- }
-
- groupList = addList(dirEntries, ListSelectionModel.SINGLE_SELECTION, groupList, col,
- line + 4, 1, 1, GridBagConstraints.BOTH);
-
- // ----------------------------------------------------
- // radio buttons to select current user or all users.
- // ----------------------------------------------------
- if (shortcut.multipleUsers())
- {
- JPanel usersPanel = new JPanel(new GridLayout(2, 1));
- ButtonGroup usersGroup = new ButtonGroup();
- currentUser = new JRadioButton(parent.langpack
- .getString("ShortcutPanel.regular.currentUser"), !isRootUser);
- currentUser.addActionListener(this);
- usersGroup.add(currentUser);
- usersPanel.add(currentUser);
- allUsers = new JRadioButton(
- parent.langpack.getString("ShortcutPanel.regular.allUsers"), isRootUser);
-
- Debug.log("allUsers.setEnabled(), I'm Root: " + isRootUser);
-
- allUsers.setEnabled(isRootUser);
-
- allUsers.addActionListener(this);
- usersGroup.add(allUsers);
- usersPanel.add(allUsers);
-
- TitledBorder border = new TitledBorder(new EmptyBorder(2, 2, 2, 2), parent.langpack
- .getString("ShortcutPanel.regular.userIntro"));
- usersPanel.setBorder(border);
-
- constraints.gridx = col + 1;
- constraints.gridy = line + 4;
- constraints.gridwidth = 1;
- constraints.gridheight = 1;
-
- // constraints.weighty = 1.0;
- // constraints.weightx = 1.0;
- constraints.fill = GridBagConstraints.HORIZONTAL;
- layout.addLayoutComponent(usersPanel, constraints);
- add(usersPanel);
- }
-
- // ----------------------------------------------------
- // edit box that contains the suggested program group
- // name, which can be modfied or substituted from the
- // list by the user
- // ----------------------------------------------------
- programGroup = new JTextField(suggestedProgramGroup, 40); // 40?
-
- constraints.gridx = col;
- constraints.gridy = line + 5;
- constraints.gridwidth = 1;
- constraints.gridheight = 1;
-
- // constraints.weighty = 1.0;
- // constraints.weightx = 1.0;
- constraints.fill = GridBagConstraints.HORIZONTAL;
- layout.addLayoutComponent(programGroup, constraints);
- add(programGroup);
-
- // ----------------------------------------------------
- // reset button that allows the user to revert to the
- // original suggestion for the program group
- // ----------------------------------------------------
- defaultButton = ButtonFactory.createButton(parent.langpack
- .getString("ShortcutPanel.regular.default"), idata.buttonsHColor);
- defaultButton.addActionListener(this);
-
- constraints.gridx = col + 1;
- constraints.gridy = line + 5;
- constraints.gridwidth = 1;
- constraints.gridheight = 1;
- constraints.fill = GridBagConstraints.HORIZONTAL;
- layout.addLayoutComponent(defaultButton, constraints);
- add(defaultButton);
- }
-
- /**
- * Adds the grouplist to the panel
- *
- * @param Entries the entries to display
- * @param ListModel the model to use
- * @param aJList the JList to use
- * @param aGridx The X position in the gridbag layout.
- * @param aGridy The Y position in the gridbag layout.
- * @param aGridwidth the gridwith to use in the gridbag layout.
- * @param aGridheight the gridheight to use in the gridbag layout.
- * @param aFill the FILL to use in the gridbag layout.
- *
- * @return the filled JList
- */
- private JList addList(Vector Entries, int ListModel, JList aJList, int aGridx, int aGridy,
- int aGridwidth, int aGridheight, int aFill)
- {
- if (aJList == null)
- {
- aJList = new JList(Entries);
- }
- else
- {
- aJList.setListData(Entries);
- }
-
- aJList.setSelectionMode(ListModel);
- aJList.getSelectionModel().addListSelectionListener(this);
-
- JScrollPane scrollPane = new JScrollPane(aJList);
-
- constraints.gridx = aGridx;
- constraints.gridy = aGridy;
- constraints.gridwidth = aGridwidth;
- constraints.gridheight = aGridheight;
- constraints.weightx = 2.0;
- constraints.weighty = 1.5;
- constraints.insets = new Insets(5, 5, 5, 5);
- constraints.fill = aFill;
- layout.addLayoutComponent(scrollPane, constraints);
- add(scrollPane);
-
- return aJList;
- }
-
- /**
- * This method creates an alternative UI for this panel. This UI can be used when the creation
- * of shortcuts is not supported on the target system. It displays an apology for the inability
- * to create shortcuts on this system, along with information about the intended targets. In
- * addition, there is a button that allows the user to save more complete information in a text
- * file. Based on this information the user might be able to create the necessary shortcut him
- * or herself. At least there will be information about how to launch the application.
- */
-
- /*--------------------------------------------------------------------------*/
- private void buildAlternateUI()
- {
- layout = new GridBagLayout();
- constraints = new GridBagConstraints();
- setLayout(layout);
-
- // ----------------------------------------------------
- // static text a the top of the panel, that apologizes
- // about the fact that we can not create shortcuts on
- // this particular target OS.
- // ----------------------------------------------------
- MultiLineLabel apologyLabel = new MultiLineLabel(parent.langpack
- .getString("ShortcutPanel.alternate.apology"), 0, 0);
-
- constraints.gridx = 0;
- constraints.gridy = 0;
- constraints.gridwidth = 1;
- constraints.gridheight = 1;
- constraints.weightx = 1.0;
- constraints.weighty = 1.0;
- constraints.insets = new Insets(5, 5, 5, 5);
- constraints.fill = GridBagConstraints.HORIZONTAL;
- constraints.anchor = GridBagConstraints.WEST;
- layout.addLayoutComponent(apologyLabel, constraints);
- add(apologyLabel);
-
- // ----------------------------------------------------
- // label that explains the significance ot the list box
- // ----------------------------------------------------
- MultiLineLabel listLabel = new MultiLineLabel(parent.langpack
- .getString("ShortcutPanel.alternate.targetsLabel"), 0, 0);
-
- constraints.gridx = 0;
- constraints.gridy = 1;
- constraints.gridwidth = 1;
- constraints.gridheight = 1;
- constraints.weightx = 1.0;
- constraints.weighty = 1.0;
- layout.addLayoutComponent(listLabel, constraints);
- add(listLabel);
-
- // ----------------------------------------------------
- // list box to list all of the intended shortcut targets
- // ----------------------------------------------------
- Vector targets = new Vector();
-
- for (int i = 0; i < shortcuts.size(); i++)
- {
- targets.add(((ShortcutData) shortcuts.elementAt(i)).target);
- }
-
- targetList = new JList(targets);
-
- JScrollPane scrollPane = new JScrollPane(targetList);
-
- constraints.gridx = 0;
- constraints.gridy = 2;
- constraints.fill = GridBagConstraints.BOTH;
- layout.addLayoutComponent(scrollPane, constraints);
- add(scrollPane);
-
- // ----------------------------------------------------
- // static text that explains about the text file
- // ----------------------------------------------------
- MultiLineLabel fileExplanation = new MultiLineLabel(parent.langpack
- .getString("ShortcutPanel.alternate.textFileExplanation"), 0, 0);
-
- constraints.gridx = 0;
- constraints.gridy = 3;
- constraints.weightx = 1.0;
- constraints.weighty = 1.0;
- constraints.fill = GridBagConstraints.HORIZONTAL;
- layout.addLayoutComponent(fileExplanation, constraints);
- add(fileExplanation);
-
- // ----------------------------------------------------
- // button to save the text file
- // ----------------------------------------------------
- saveButton = ButtonFactory.createButton(parent.langpack
- .getString("ShortcutPanel.alternate.saveButton"), idata.buttonsHColor);
- saveButton.addActionListener(this);
-
- constraints.gridx = 0;
- constraints.gridy = 4;
- constraints.gridwidth = 1;
- constraints.gridheight = 1;
- constraints.fill = GridBagConstraints.NONE;
- constraints.anchor = GridBagConstraints.CENTER;
- layout.addLayoutComponent(saveButton, constraints);
- add(saveButton);
- }
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * Overriding the superclass implementation. This method returns the size of the container.
- *
- * @return the size of the container
- */
-
- /*--------------------------------------------------------------------------*/
- public Dimension getSize()
- {
- Dimension size = getParent().getSize();
- Insets insets = getInsets();
- Border border = getBorder();
- Insets borderInsets = new Insets(0, 0, 0, 0);
-
- if (border != null)
- {
- borderInsets = border.getBorderInsets(this);
- }
-
- size.height = size.height - insets.top - insets.bottom - borderInsets.top
- - borderInsets.bottom - 50;
- size.width = size.width - insets.left - insets.right - borderInsets.left
- - borderInsets.right - 50;
-
- return (size);
- }
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * This method saves all shortcut information to a text file.
- */
-
- /*--------------------------------------------------------------------------*/
- private void saveToFile()
- {
- File file = null;
-
- // ----------------------------------------------------
- // open a file chooser dialog to get a path / file name
- // ----------------------------------------------------
- JFileChooser fileDialog = new JFileChooser(idata.getInstallPath());
- fileDialog.setSelectedFile(new File(TEXT_FILE_NAME));
-
- if (fileDialog.showSaveDialog(this) == JFileChooser.APPROVE_OPTION)
- {
- file = fileDialog.getSelectedFile();
- }
- else
- {
- return;
- }
-
- // ----------------------------------------------------
- // save to the file
- // ----------------------------------------------------
- FileWriter output = null;
- StringBuffer buffer = new StringBuffer();
- String header = parent.langpack.getString("ShortcutPanel.textFile.header");
-
- String newline = System.getProperty("line.separator", "\n");
-
- try
- {
- output = new FileWriter(file);
- }
- catch (Throwable exception)
- {
- // !!! show an error dialog
- return;
- }
-
- // ----------------------------------------------------
- // break the header down into multiple lines based
- // on '\n' line breaks.
- // ----------------------------------------------------
- int nextIndex = 0;
- int currentIndex = 0;
-
- do
- {
- nextIndex = header.indexOf("\\n", currentIndex);
-
- if (nextIndex > -1)
- {
- buffer.append(header.substring(currentIndex, nextIndex));
- buffer.append(newline);
- currentIndex = nextIndex + 2;
- }
- else
- {
- buffer.append(header.substring(currentIndex, header.length()));
- buffer.append(newline);
- }
- }
- while (nextIndex > -1);
-
- buffer.append(SEPARATOR_LINE);
- buffer.append(newline);
- buffer.append(newline);
-
- for (int i = 0; i < shortcuts.size(); i++)
- {
- ShortcutData data = (ShortcutData) shortcuts.elementAt(i);
-
- buffer.append(parent.langpack.getString("ShortcutPanel.textFile.name"));
- buffer.append(data.name);
- buffer.append(newline);
-
- buffer.append(parent.langpack.getString("ShortcutPanel.textFile.location"));
-
- switch (data.type)
- {
- case Shortcut.DESKTOP: {
- buffer.append(parent.langpack.getString("ShortcutPanel.location.desktop"));
-
- break;
- }
-
- case Shortcut.APPLICATIONS: {
- buffer.append(parent.langpack.getString("ShortcutPanel.location.applications"));
-
- break;
- }
-
- case Shortcut.START_MENU: {
- buffer.append(parent.langpack.getString("ShortcutPanel.location.startMenu"));
-
- break;
- }
-
- case Shortcut.START_UP: {
- buffer.append(parent.langpack.getString("ShortcutPanel.location.startup"));
-
- break;
- }
- }
-
- buffer.append(newline);
-
- buffer.append(parent.langpack.getString("ShortcutPanel.textFile.description"));
- buffer.append(data.description);
- buffer.append(newline);
-
- buffer.append(parent.langpack.getString("ShortcutPanel.textFile.target"));
- buffer.append(data.target);
- buffer.append(newline);
-
- buffer.append(parent.langpack.getString("ShortcutPanel.textFile.command"));
- buffer.append(data.commandLine);
- buffer.append(newline);
-
- buffer.append(parent.langpack.getString("ShortcutPanel.textFile.iconName"));
- buffer.append(data.iconFile);
- buffer.append(newline);
-
- buffer.append(parent.langpack.getString("ShortcutPanel.textFile.iconIndex"));
- buffer.append(data.iconIndex);
- buffer.append(newline);
-
- buffer.append(parent.langpack.getString("ShortcutPanel.textFile.work"));
- buffer.append(data.workingDirectory);
- buffer.append(newline);
-
- buffer.append(newline);
- buffer.append(SEPARATOR_LINE);
- buffer.append(newline);
- buffer.append(newline);
- }
-
- try
- {
- output.write(buffer.toString());
- }
- catch (Throwable exception)
- {}
- finally
- {
- try
- {
- output.flush();
- output.close();
- files.add(file.getPath());
- }
- catch (Throwable exception)
- {
- // not really anything I can do here, maybe should show a dialog that
- // tells the user that data might not have been saved completely!?
- }
- }
- }
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * Adds all files and directories to the uninstaller.
- */
-
- /*--------------------------------------------------------------------------*/
- private void addToUninstaller()
- {
- UninstallData uninstallData = UninstallData.getInstance();
-
- for (int i = 0; i < files.size(); i++)
- {
- uninstallData.addFile((String) files.elementAt(i));
- }
- }
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * Returns Instance of themself
- */
- public static ShortcutPanel getInstance( )
- {
- return self;
- }
-
- /*--------------------------------------------------------------------------*/
- /*
- *
- *
- * The information needed to create shortcuts has been collected in the Vector 'shortcuts'. Take
- * the data from there and package it in XML form for storage by the installer. The group name
- * is only stored once in a separate XML element, since there is only one.
- * --------------------------------------------------------------------------
- */
- public void makeXMLData( XMLElement panelRoot )
- {
- // ----------------------------------------------------
- // if there are no shortcuts to create, shortcuts are
- // not supported, or we should simulate that they are
- // not supported, then we have nothing to add. Just
- // return
- // ----------------------------------------------------
- Debug.log( "entering makeXMLData" );
-
-
- if (!shortcutsToCreate || !shortcut.supported() || (groupName == null)
- || simulteNotSupported || ! create ) { Debug.log( "abort makeXMLData!" ); return; }
-
- ShortcutData data;
- XMLElement dataElement;
-
- // ----------------------------------------------------
- // add the item that defines the name of the program group
- // ----------------------------------------------------
- dataElement = new XMLElement(AUTO_KEY_PROGRAM_GROUP);
- dataElement.setAttribute(AUTO_ATTRIBUTE_NAME, groupName);
- panelRoot.addChild(dataElement);
-
- // ----------------------------------------------------
- // add the details for each of the shortcuts
- // ----------------------------------------------------
- for (int i = 0; i < shortcuts.size(); i++)
- {
- Debug.log( "entering makeXMLData" );
- data = (ShortcutData) shortcuts.elementAt(i);
- dataElement = new XMLElement(AUTO_KEY_SHORTCUT);
-
- dataElement.setAttribute(AUTO_ATTRIBUTE_NAME, data.name);
- dataElement.setAttribute(AUTO_ATTRIBUTE_GROUP, (data.addToGroup ? Boolean.TRUE
- : Boolean.FALSE).toString());
-
- // Boolean.valueOf(data.addToGroup)
- if(OsVersion.IS_WINDOWS)
-
- dataElement.setAttribute(AUTO_ATTRIBUTE_TYPE, Integer.toString(data.type));
- dataElement.setAttribute(AUTO_ATTRIBUTE_COMMAND, data.commandLine);
- dataElement.setAttribute(AUTO_ATTRIBUTE_DESCRIPTION, data.description);
- dataElement.setAttribute(AUTO_ATTRIBUTE_ICON, data.iconFile);
- dataElement.setAttribute(AUTO_ATTRIBUTE_ICON_INDEX, Integer.toString(data.iconIndex));
- dataElement.setAttribute(AUTO_ATTRIBUTE_INITIAL_STATE, Integer
- .toString(data.initialState));
- dataElement.setAttribute(AUTO_ATTRIBUTE_TARGET, data.target);
- dataElement.setAttribute(AUTO_ATTRIBUTE_WORKING_DIR, data.workingDirectory);
-
-
- dataElement.setAttribute( SPEC_ATTRIBUTE_ENCODING, data.deskTopEntryLinux_Encoding );
- dataElement.setAttribute( SPEC_ATTRIBUTE_MIMETYPE, data.deskTopEntryLinux_MimeType );
- dataElement.setAttribute( SPEC_ATTRIBUTE_TERMINAL, data.deskTopEntryLinux_Terminal );
- dataElement.setAttribute( SPEC_ATTRIBUTE_TERMINAL_OPTIONS, data.deskTopEntryLinux_TerminalOptions );
- if(! OsVersion.IS_WINDOWS )
- dataElement.setAttribute( SPEC_ATTRIBUTE_TYPE, data.deskTopEntryLinux_Type );
-
- dataElement.setAttribute( SPEC_ATTRIBUTE_URL, data.deskTopEntryLinux_URL );
-
- dataElement.setAttribute( SPEC_ATTRIBUTE_KDE_SUBST_UID, data.deskTopEntryLinux_X_KDE_SubstituteUID );
- dataElement.setAttribute( SPEC_CATEGORIES, data.Categories );
- dataElement.setAttribute( SPEC_TRYEXEC, data.TryExec );
-
- dataElement.setAttribute( CREATE_FOR_ALL, data.createForAll.toString() );// ? Boolean.TRUE : Boolean.FALSE).toString() );
- dataElement.setAttribute( USER_TYPE, Integer.toString( data.userType ) );
-
-
-
- //TODO: Add Linux.Attibutes
-
- // ----------------------------------------------
- // add the shortcut only if it is either not on
- // the desktop or if it is on the desktop and
- // the user has signalled that it is ok to place
- // shortcuts on the desktop.
- // ----------------------------------------------
- if ((data.type != Shortcut.DESKTOP)
- || ((data.type == Shortcut.DESKTOP) && allowDesktopShortcut.isSelected()))
- {
- panelRoot.addChild(dataElement);
- }
- }
- }
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * Creates shortcuts based on teh information in panelRoot without UI.
- *
- * @param panelRoot the root of the XML tree
- */
-
- /*--------------------------------------------------------------------------*/
- /*
- *
- *
- * Reconstitute the information needed to create shortcuts from XML data that was previously
- * stored by the installer through makeXMLData(). Create a new Vector containing this data and
- * stroe it in 'shortcuts' for use by createShortcuts(). Once this has been completed, call
- * createShortcuts() to complete the operation.
- * --------------------------------------------------------------------------
- */
-
-
-}
-
-/*---------------------------------------------------------------------------*/
Copied: izpack-src/tags/3.9.0/src/lib/com/izforge/izpack/panels/ShortcutPanel.java (from rev 1616, izpack-src/branches/branch-3.9/src/lib/com/izforge/izpack/panels/ShortcutPanel.java)
More information about the izpack-changes
mailing list