svn-gvsig-desktop / branches / v2_0_0_prep / extensions / org.gvsig.installer / org.gvsig.installer.swing / org.gvsig.installer.swing.impl / src / main / java / org / gvsig / installer / swing / impl / DefaultSwingInstallerManager.java @ 37588
History | View | Annotate | Download (8.56 KB)
1 | 32269 | jpiera | /* gvSIG. Geographic Information System of the Valencian Government
|
---|---|---|---|
2 | 33729 | cordinyana | *
|
3 | * Copyright (C) 2007-2008 Infrastructures and Transports Department
|
||
4 | * of the Valencian Government (CIT)
|
||
5 | *
|
||
6 | * This program is free software; you can redistribute it and/or
|
||
7 | * modify it under the terms of the GNU General Public License
|
||
8 | * as published by the Free Software Foundation; either version 2
|
||
9 | * of the License, or (at your option) any later version.
|
||
10 | *
|
||
11 | * This program is distributed in the hope that it will be useful,
|
||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
14 | * GNU General Public License for more details.
|
||
15 | *
|
||
16 | * You should have received a copy of the GNU General Public License
|
||
17 | * along with this program; if not, write to the Free Software
|
||
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||
19 | * MA 02110-1301, USA.
|
||
20 | *
|
||
21 | */
|
||
22 | 32269 | jpiera | |
23 | /*
|
||
24 | 33729 | cordinyana | * AUTHORS (In addition to CIT):
|
25 | * 2010 {Prodevelop} {Task}
|
||
26 | */
|
||
27 | |||
28 | 32269 | jpiera | package org.gvsig.installer.swing.impl; |
29 | |||
30 | 37498 | fdiaz | import java.io.BufferedReader; |
31 | 32565 | jpiera | import java.io.File; |
32 | 37498 | fdiaz | import java.io.FileInputStream; |
33 | import java.io.FileNotFoundException; |
||
34 | import java.io.IOException; |
||
35 | import java.io.InputStream; |
||
36 | import java.io.InputStreamReader; |
||
37 | 37417 | fdiaz | import java.net.MalformedURLException; |
38 | 34003 | cordinyana | import java.net.URL; |
39 | 37417 | fdiaz | import java.util.ArrayList; |
40 | 35767 | jjdelcerro | import java.util.List; |
41 | 32565 | jpiera | |
42 | 33119 | jpiera | import org.gvsig.i18n.Messages; |
43 | 37409 | fdiaz | import org.gvsig.installer.lib.api.Dependencies; |
44 | 34005 | cordinyana | import org.gvsig.installer.lib.api.InstallerLocator; |
45 | import org.gvsig.installer.lib.api.InstallerManager; |
||
46 | 35767 | jjdelcerro | import org.gvsig.installer.lib.api.PackageInfo; |
47 | 37169 | nfrancisco | import org.gvsig.installer.swing.api.JProgressPanel; |
48 | 32269 | jpiera | import org.gvsig.installer.swing.api.SwingInstallerManager; |
49 | 32565 | jpiera | import org.gvsig.installer.swing.api.creation.MakePluginPackageWizard; |
50 | import org.gvsig.installer.swing.api.creation.MakePluginPackageWizardException; |
||
51 | 37169 | nfrancisco | import org.gvsig.installer.swing.api.creation.JOutputPanel; |
52 | import org.gvsig.installer.swing.api.creation.JPackageInfoPanel; |
||
53 | 34925 | nfrancisco | import org.gvsig.installer.swing.api.execution.AbstractInstallPackageWizard; |
54 | 32565 | jpiera | import org.gvsig.installer.swing.api.execution.InstallPackageWizardException; |
55 | 35767 | jjdelcerro | import org.gvsig.installer.swing.api.execution.JShowPackageStatusAndAskContinuePanel; |
56 | 35979 | jjdelcerro | import org.gvsig.installer.swing.api.execution.JShowRequiredPackagesAndAskContinuePanel; |
57 | 37409 | fdiaz | import org.gvsig.installer.swing.api.execution.JShowUnresolvedDependenciesAndAskContinuePanel; |
58 | 37169 | nfrancisco | import org.gvsig.installer.swing.impl.creation.panel.DefaultOutputPanel; |
59 | import org.gvsig.installer.swing.impl.creation.panel.DefaultPackageInfoPanel; |
||
60 | import org.gvsig.installer.swing.impl.panel.DefaultProgressPanel; |
||
61 | 32269 | jpiera | import org.gvsig.tools.ToolsLocator; |
62 | import org.gvsig.tools.extensionpoint.ExtensionPoint; |
||
63 | import org.gvsig.tools.extensionpoint.ExtensionPointManager; |
||
64 | 37417 | fdiaz | import org.slf4j.Logger; |
65 | import org.slf4j.LoggerFactory; |
||
66 | 32269 | jpiera | |
67 | /**
|
||
68 | * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera Llodrá</a>
|
||
69 | */
|
||
70 | 33729 | cordinyana | public class DefaultSwingInstallerManager implements SwingInstallerManager { |
71 | |||
72 | 37417 | fdiaz | private static Logger logger = LoggerFactory.getLogger(DefaultSwingInstallerManager.class); |
73 | |||
74 | 33729 | cordinyana | private static final String SWING_INSTALLER_MANAGER_EXTENSION_POINT = |
75 | "SwingInstallerManagerExtensionPoint";
|
||
76 | private static final String CREATE_INSTALLER_WIZARD_NAME = |
||
77 | "CreateInstallerWizard";
|
||
78 | private static final String EXECUTE_INSTALLER_WIZARD_NAME = |
||
79 | "ExecuteInstallerWizard";
|
||
80 | 34925 | nfrancisco | private ExtensionPointManager extensionPoints =
|
81 | ToolsLocator.getExtensionPointManager(); |
||
82 | 33729 | cordinyana | |
83 | 33743 | cordinyana | private String applicationVersion = "1.0.0"; |
84 | 37417 | fdiaz | private List<URL> defaultDownloadURLs = new ArrayList<URL>(); |
85 | 33686 | cordinyana | |
86 | 33729 | cordinyana | public String getText(String key) { |
87 | return Messages.getText(key);
|
||
88 | } |
||
89 | 32269 | jpiera | |
90 | 33729 | cordinyana | public MakePluginPackageWizard createMakePluginPackageWizard(
|
91 | 33743 | cordinyana | File applicationFolder, File pluginsFolder, File installFolder) |
92 | throws MakePluginPackageWizardException {
|
||
93 | 34967 | nfrancisco | |
94 | 33729 | cordinyana | ExtensionPoint ep = |
95 | extensionPoints.add(SWING_INSTALLER_MANAGER_EXTENSION_POINT); |
||
96 | try {
|
||
97 | 33743 | cordinyana | Object[] args = new Object[3]; |
98 | args[0] = applicationFolder;
|
||
99 | args[1] = pluginsFolder;
|
||
100 | args[2] = installFolder;
|
||
101 | 33729 | cordinyana | return (MakePluginPackageWizard) ep.create(
|
102 | CREATE_INSTALLER_WIZARD_NAME, args); |
||
103 | } catch (Exception e) { |
||
104 | throw new MakePluginPackageWizardException( |
||
105 | "Error creating the wizard", e);
|
||
106 | } |
||
107 | } |
||
108 | 32269 | jpiera | |
109 | 34925 | nfrancisco | public AbstractInstallPackageWizard createInstallPackageWizard(
|
110 | 33743 | cordinyana | File applicationFolder, File pluginsFolder, File installFolder) |
111 | throws InstallPackageWizardException {
|
||
112 | 34967 | nfrancisco | |
113 | 33729 | cordinyana | ExtensionPoint ep = |
114 | extensionPoints.add(SWING_INSTALLER_MANAGER_EXTENSION_POINT); |
||
115 | try {
|
||
116 | 33743 | cordinyana | Object[] args = new Object[3]; |
117 | args[0] = applicationFolder;
|
||
118 | args[1] = pluginsFolder;
|
||
119 | args[2] = installFolder;
|
||
120 | 34925 | nfrancisco | return (AbstractInstallPackageWizard) ep.create(
|
121 | 33729 | cordinyana | EXECUTE_INSTALLER_WIZARD_NAME, args); |
122 | 34967 | nfrancisco | |
123 | 33729 | cordinyana | } catch (Exception e) { |
124 | throw new InstallPackageWizardException( |
||
125 | "Error creating the wizard", e);
|
||
126 | } |
||
127 | } |
||
128 | 32269 | jpiera | |
129 | 33729 | cordinyana | public void registerMakePluginPackageWizardInstallerCreationWizard( |
130 | 33736 | cordinyana | Class<? extends MakePluginPackageWizard> clazz) { |
131 | 33729 | cordinyana | ExtensionPoint extensionPoint = |
132 | extensionPoints.add(SWING_INSTALLER_MANAGER_EXTENSION_POINT, "");
|
||
133 | extensionPoint.append(CREATE_INSTALLER_WIZARD_NAME, "", clazz);
|
||
134 | } |
||
135 | 32269 | jpiera | |
136 | 33736 | cordinyana | public void registerInstallPackageWizard( |
137 | 34925 | nfrancisco | Class<? extends AbstractInstallPackageWizard> clazz) { |
138 | 33729 | cordinyana | ExtensionPoint extensionPoint = |
139 | extensionPoints.add(SWING_INSTALLER_MANAGER_EXTENSION_POINT, "");
|
||
140 | extensionPoint.append(EXECUTE_INSTALLER_WIZARD_NAME, "", clazz);
|
||
141 | } |
||
142 | 33686 | cordinyana | |
143 | 33743 | cordinyana | public String getApplicationVersion() { |
144 | return applicationVersion;
|
||
145 | 33686 | cordinyana | } |
146 | |||
147 | 33743 | cordinyana | public void setApplicationVersion(String gvSIGVersion) { |
148 | this.applicationVersion = gvSIGVersion;
|
||
149 | 33686 | cordinyana | } |
150 | |||
151 | 34003 | cordinyana | public URL getDefaultDownloadURL() { |
152 | 37417 | fdiaz | if (defaultDownloadURLs.size()<1){ |
153 | return null; |
||
154 | } |
||
155 | return defaultDownloadURLs.get(0); |
||
156 | 34003 | cordinyana | } |
157 | |||
158 | 37417 | fdiaz | public void setDefaultDownloadURL(String defaultDownloadURLs) { |
159 | String[] urls = defaultDownloadURLs.split(";"); |
||
160 | for (int i = 0; i < urls.length; i++) { |
||
161 | try {
|
||
162 | this.defaultDownloadURLs.add(new URL(urls[i])); |
||
163 | } catch (MalformedURLException e) { |
||
164 | logger.info("Malformed URL", e);
|
||
165 | } |
||
166 | } |
||
167 | } |
||
168 | |||
169 | 34003 | cordinyana | public void setDefaultDownloadURL(URL defaultDownloadURL) { |
170 | 37417 | fdiaz | this.defaultDownloadURLs.clear();
|
171 | this.defaultDownloadURLs.add(defaultDownloadURL);
|
||
172 | 34003 | cordinyana | } |
173 | 37417 | fdiaz | |
174 | 37498 | fdiaz | public void setDefaultDownloadURL(File defaultDownloadURLs) { |
175 | InputStream is;
|
||
176 | try {
|
||
177 | is = new FileInputStream(defaultDownloadURLs); |
||
178 | } catch (FileNotFoundException e1) { |
||
179 | logger.error("Can't open the file "+defaultDownloadURLs.getName(), e1);
|
||
180 | return;
|
||
181 | } |
||
182 | BufferedReader in = new BufferedReader(new InputStreamReader(is)); |
||
183 | String line = null; |
||
184 | try {
|
||
185 | for (line = in.readLine(); line != null; line = in.readLine()) { |
||
186 | try {
|
||
187 | this.addDefaultDownloadURL(new URL(line)); |
||
188 | } catch (MalformedURLException e) { |
||
189 | logger.error( |
||
190 | "Error creating the default packages download URL pointing to "
|
||
191 | + line, e); |
||
192 | } |
||
193 | } |
||
194 | } catch (IOException e) { |
||
195 | logger.error( |
||
196 | "Error reading the file "
|
||
197 | + defaultDownloadURLs.getName(), e); |
||
198 | } |
||
199 | } |
||
200 | |||
201 | 37417 | fdiaz | public void addDefaultDownloadURL(URL url) { |
202 | this.defaultDownloadURLs.add(url);
|
||
203 | } |
||
204 | 34003 | cordinyana | |
205 | 37417 | fdiaz | public List<URL> getDefaultDownloadURLs() { |
206 | return this.defaultDownloadURLs; |
||
207 | } |
||
208 | |||
209 | 34005 | cordinyana | public InstallerManager getInstallerManager() {
|
210 | return InstallerLocator.getInstallerManager();
|
||
211 | } |
||
212 | 35767 | jjdelcerro | |
213 | public JShowPackageStatusAndAskContinuePanel createJShowPackageStatusAndAskContinuePanel(
|
||
214 | List<PackageInfo> packages, String message) { |
||
215 | return new DefaultJShowPackageStatusAndAskContinuePanel(this, packages, message); |
||
216 | } |
||
217 | 35979 | jjdelcerro | |
218 | public JShowRequiredPackagesAndAskContinuePanel createJShowRequiredPackagesAndAskContinuePanel(
|
||
219 | List<PackageInfo> packages, String message) { |
||
220 | return new DefaultJShowRequiredPackagesAndAskContinuePanel(this, packages, message); |
||
221 | } |
||
222 | |||
223 | 37409 | fdiaz | public JShowUnresolvedDependenciesAndAskContinuePanel createJShowUnresolvedDependenciesAndAskContinuePanel(
|
224 | Dependencies dependencies, String message) {
|
||
225 | return new DefaultJShowUnresolvedDependenciesAndAskContinuePanel(this, dependencies, message); |
||
226 | } |
||
227 | |||
228 | 37169 | nfrancisco | public JPackageInfoPanel createPackageInfoPanel() {
|
229 | return new DefaultPackageInfoPanel(); |
||
230 | } |
||
231 | |||
232 | public JOutputPanel createOutputPanel() {
|
||
233 | return new DefaultOutputPanel(); |
||
234 | } |
||
235 | |||
236 | public JProgressPanel createProgressPanel() {
|
||
237 | return new DefaultProgressPanel(); |
||
238 | } |
||
239 | |||
240 | 32269 | jpiera | } |