Revision 37598 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/execution/wizard/SelectPackagesWizard.java

View differences:

SelectPackagesWizard.java
50 50

  
51 51
public class SelectPackagesWizard implements OptionPanel {
52 52

  
53
    private static final long serialVersionUID = -4678172923039393643L;
53
	private static final long serialVersionUID = -4678172923039393643L;
54 54

  
55
    private static Logger LOG =
56
        LoggerFactory.getLogger(SelectPackagesWizard.class);
55
	private static Logger LOG = LoggerFactory
56
			.getLogger(SelectPackagesWizard.class);
57 57

  
58
    protected DefaultInstallPackageWizard installerExecutionWizard;
58
	protected DefaultInstallPackageWizard installerExecutionWizard;
59 59

  
60
    private SelectPackagesPanel selectPackagesPanel = null;
61
    private DefaultSwingInstallerManager swingInstallerManager = null;
60
	private SelectPackagesPanel selectPackagesPanel = null;
61
	private DefaultSwingInstallerManager swingInstallerManager = null;
62 62

  
63
    private int direccion = WizardPanelWithLogo.ACTION_NEXT;
63
	private int direccion = WizardPanelWithLogo.ACTION_NEXT;
64 64

  
65
    public SelectPackagesWizard(
66
        DefaultInstallPackageWizard installerExecutionWizard) {
67
        super();
68
        this.installerExecutionWizard = installerExecutionWizard;
69
        selectPackagesPanel = new SelectPackagesPanel(this);
65
	public SelectPackagesWizard(
66
			DefaultInstallPackageWizard installerExecutionWizard) {
67
		super();
68
		this.installerExecutionWizard = installerExecutionWizard;
69
		selectPackagesPanel = new SelectPackagesPanel(this);
70 70

  
71
        swingInstallerManager =
72
            (DefaultSwingInstallerManager) SwingInstallerLocator
73
                .getSwingInstallerManager();
74
    }
71
		swingInstallerManager = (DefaultSwingInstallerManager) SwingInstallerLocator
72
				.getSwingInstallerManager();
73
	}
75 74

  
76
    public JPanel getJPanel() {
77
        return selectPackagesPanel;
78
    }
75
	public JPanel getJPanel() {
76
		return selectPackagesPanel;
77
	}
79 78

  
80
    public String getPanelTitle() {
81
        return swingInstallerManager.getText("select_plugins");
82
    }
79
	public String getPanelTitle() {
80
		return swingInstallerManager.getText("_select_plugins");
81
	}
83 82

  
84
    public void lastPanel() {
85
        direccion = WizardPanelWithLogo.ACTION_NEXT;
86
        selectPackagesPanel.clearPanel();
87
    }
83
	public void lastPanel() {
84
		direccion = WizardPanelWithLogo.ACTION_NEXT;
85
		selectPackagesPanel.clearPanel();
86
	}
88 87

  
89
    public void nextPanel() throws NotContinueWizardException {
90
        checkDependencies();
91
        checkDevelAndUnoficialPackages();
92
        direccion = WizardPanelWithLogo.ACTION_PREVIOUS;
93
        installerExecutionWizard.setNextButtonEnabled(false);
94
    }
88
	public void nextPanel() throws NotContinueWizardException {
89
		checkDependencies();
90
		checkDevelAndUnoficialPackages();
91
		direccion = WizardPanelWithLogo.ACTION_PREVIOUS;
92
		installerExecutionWizard.setNextButtonEnabled(false);
93
	}
95 94

  
96
    private void checkDependencies() throws NotContinueWizardException {
97
        List<PackageInfo> requiredPackages = null;
98
        Dependencies unresolvedDependencies = null;
99
        try {
100
            // Creamos el calculador de dependencias
101
            DependenciesCalculator calculator =
102
                this.swingInstallerManager
103
                    .getInstallerManager()
104
                    .createDependenciesCalculator(
105
                        installerExecutionWizard.getInstallerExecutionService());
95
	private void checkDependencies() throws NotContinueWizardException {
96
		List<PackageInfo> requiredPackages = null;
97
		Dependencies unresolvedDependencies = null;
98
		try {
99
			// Creamos el calculador de dependencias
100
			DependenciesCalculator calculator = this.swingInstallerManager
101
					.getInstallerManager().createDependenciesCalculator(
102
							installerExecutionWizard
103
									.getInstallerExecutionService());
106 104

  
107
            // Le indicamos los paquetes que queremos instalar
108
            calculator.addPackageToInstall(this.installerExecutionWizard
109
                .getInstallersToInstall());
105
			// Le indicamos los paquetes que queremos instalar
106
			calculator.addPackageToInstall(this.installerExecutionWizard
107
					.getInstallersToInstall());
110 108

  
111
            // Le a?adimos los paquetes que ya hay instalados.
109
			// Le a?adimos los paquetes que ya hay instalados.
112 110

  
113
            PackageInfo[] pkgs =
114
                swingInstallerManager.getInstallerManager()
115
                    .getInstalledPackages(
116
                        installerExecutionWizard.getPluginsFolder());
117
            calculator.addInstalledPackage(pkgs);
111
			PackageInfo[] pkgs = swingInstallerManager.getInstallerManager()
112
					.getInstalledPackages(
113
							installerExecutionWizard.getPluginsFolder());
114
			calculator.addInstalledPackage(pkgs);
118 115

  
119
            // Calculamos las dependencias
120
            calculator.calculate();
116
			// Calculamos las dependencias
117
			calculator.calculate();
121 118

  
122
            requiredPackages = calculator.getRequiredPackages();
123
            unresolvedDependencies = calculator.getUnresolvedDependencies();
124
        } catch (Throwable e) {
125
            LOG
126
                .error(
127
                    "Se ha producido un error calculando las dependencias de los paquetes a instalar.",
128
                    e);
129
            int resp =
130
                JOptionPane
131
                    .showConfirmDialog(
132
                        null,
133
                        "Se ha producido un error calculando las dependencias de los paquetes seleccionados.\n"
134
                            + "No es posible verificar si precisa algun paquete adicional para instalar los paquetes que ha seleccionado.\n"
135
                            + "Si lo desea puede volver a seleccionar manualmente los paquetes que estime pueden ser necesarios."
136
                            + "? Desea continuar instalando los paquetes que ya ha seleccionado ?",
137
                        "Problema calculando las dependencias",
138
                        JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
139
            if (resp == JOptionPane.NO_OPTION) {
140
                throw new NotContinueWizardException("", null, false);
141
            }
142
        }
119
			requiredPackages = calculator.getRequiredPackages();
120
			unresolvedDependencies = calculator.getUnresolvedDependencies();
121
		} catch (Throwable e) {
122
			LOG
123
					.error(
124
							swingInstallerManager
125
									.getText("_an_error_has_occurred_when_calculating_the_dependecies_of_the_packages_to_install"),
126
							e);
127
			int resp = JOptionPane
128
					.showConfirmDialog(
129
							null,
130
							swingInstallerManager
131
									.getText("_an_error_has_occurred_when_calculating_the_dependecies_of_the_selected_packages")
132
									+ "\n"
133
									+ swingInstallerManager
134
											.getText("_it_is_not_possible_to_verify_if_any_additional_package_is_needed_to_install_the_selected_packages")
135
									+ "\n"
136
									+ swingInstallerManager
137
											.getText("_if_you_want_you_can_select_again_manually_the_packets_that_might_be_necessary")
138
									+ swingInstallerManager
139
											.getText("_do_you_want_to_continue_and_install_the_packages_you_already_have_selected"),
140
							swingInstallerManager
141
									.getText("_a_problem_has_occurred_when_calculating_the_dependencies"),
142
							JOptionPane.YES_NO_OPTION,
143
							JOptionPane.WARNING_MESSAGE);
144
			if (resp == JOptionPane.NO_OPTION) {
145
				throw new NotContinueWizardException("", null, false);
146
			}
147
		}
143 148

  
144
        if (requiredPackages != null && requiredPackages.size() > 0) {
145
            JShowRequiredPackagesAndAskContinuePanel dlg =
146
                this.swingInstallerManager
147
                    .createJShowRequiredPackagesAndAskContinuePanel(
148
                        requiredPackages,
149
                        "Los paquetes seleccionados requieren instalar o actualizar los siguientes paquetes\n?Desea Continuar?");
150
            if (dlg.needShow()) {
151
                WindowManager wm = ToolsSwingLocator.getWindowManager();
152
                wm.showWindow(dlg, "? Desea continuar ?",
153
                    WindowManager.MODE.DIALOG);
154
                if (dlg.cancelled()) {
155
                    throw new NotContinueWizardException("", null, false);
156
                }
157
            }
158
        }
149
		if (requiredPackages != null && requiredPackages.size() > 0) {
150
			JShowRequiredPackagesAndAskContinuePanel dlg = this.swingInstallerManager
151
					.createJShowRequiredPackagesAndAskContinuePanel(
152
							requiredPackages,
153
							swingInstallerManager
154
									.getText("_the_selected_packages_require_to_install_or_update_the_following_packages")
155
									+ "\n"
156
									+ swingInstallerManager
157
											.getText("_do_you_want_to_continue"));
158
			if (dlg.needShow()) {
159
				WindowManager wm = ToolsSwingLocator.getWindowManager();
160
				wm.showWindow(dlg, swingInstallerManager
161
						.getText("_do_you_want_to_continue"),
162
						WindowManager.MODE.DIALOG);
163
				if (dlg.cancelled()) {
164
					throw new NotContinueWizardException("", null, false);
165
				}
166
			}
167
		}
159 168

  
160
        if (unresolvedDependencies != null && unresolvedDependencies.size() > 0) {
161
            JShowUnresolvedDependenciesAndAskContinuePanel dlg =
162
                this.swingInstallerManager
163
                    .createJShowUnresolvedDependenciesAndAskContinuePanel(
164
                        unresolvedDependencies,
165
                        "Las siguientes dependencias no se han podido resolver\n?Desea Continuar de todas formas?");
166
            if (dlg.needShow()) {
167
                WindowManager wm = ToolsSwingLocator.getWindowManager();
168
                wm.showWindow(dlg, "? Desea continuar ?",
169
                    WindowManager.MODE.DIALOG);
170
                if (dlg.cancelled()) {
171
                    throw new NotContinueWizardException("", null, false);
172
                }
173
            }
174
        }
169
		if (unresolvedDependencies != null && unresolvedDependencies.size() > 0) {
170
			JShowUnresolvedDependenciesAndAskContinuePanel dlg = this.swingInstallerManager
171
					.createJShowUnresolvedDependenciesAndAskContinuePanel(
172
							unresolvedDependencies,
173
							swingInstallerManager
174
									.getText("_the_following_dependencies_have_not_been_possible_to_resolve")
175
									+ "\n" + "_do_you_want_to_continue_anyway");
176
			if (dlg.needShow()) {
177
				WindowManager wm = ToolsSwingLocator.getWindowManager();
178
				wm.showWindow(dlg, swingInstallerManager
179
						.getText("_do_you_want_to_continue"),
180
						WindowManager.MODE.DIALOG);
181
				if (dlg.cancelled()) {
182
					throw new NotContinueWizardException("", null, false);
183
				}
184
			}
185
		}
175 186

  
176
        Iterator<PackageInfo> it = requiredPackages.iterator();
177
        while (it.hasNext()) {
178
            selectPackagesPanel.getModel().selectPackage(it.next());
179
            // pluginsTableModel.selectPackage(it.next());
180
        }
181
    }
187
		Iterator<PackageInfo> it = requiredPackages.iterator();
188
		while (it.hasNext()) {
189
			selectPackagesPanel.getModel().selectPackage(it.next());
190
			// pluginsTableModel.selectPackage(it.next());
191
		}
192
	}
182 193

  
183
    private void checkDevelAndUnoficialPackages()
184
        throws NotContinueWizardException {
185
        List<PackageInfo> packagesToInstall =
186
            this.installerExecutionWizard.getInstallersToInstall();
194
	private void checkDevelAndUnoficialPackages()
195
			throws NotContinueWizardException {
196
		List<PackageInfo> packagesToInstall = this.installerExecutionWizard
197
				.getInstallersToInstall();
187 198

  
188
        JShowPackageStatusAndAskContinuePanel dlg =
189
            this.swingInstallerManager
190
                .createJShowPackageStatusAndAskContinuePanel(packagesToInstall,
191
                    "Ha seleccionado versiones de desarrollo o no oficiales\n?Desea Continuar?");
192
        if (dlg.needShow()) {
193
            WindowManager wm = ToolsSwingLocator.getWindowManager();
194
            wm
195
                .showWindow(dlg, "? Desea continuar ?",
196
                    WindowManager.MODE.DIALOG);
197
            if (dlg.cancelled()) {
198
                throw new NotContinueWizardException("", null, false);
199
            }
200
        }
201
    }
199
		JShowPackageStatusAndAskContinuePanel dlg = this.swingInstallerManager
200
				.createJShowPackageStatusAndAskContinuePanel(
201
						packagesToInstall,
202
						swingInstallerManager
203
								.getText("_you_have_selected_in_development_or_not_official_versions")
204
								+ "\n"
205
								+ swingInstallerManager
206
										.getText("_do_you_want_to_continue"));
207
		if (dlg.needShow()) {
208
			WindowManager wm = ToolsSwingLocator.getWindowManager();
209
			wm.showWindow(dlg, swingInstallerManager
210
					.getText("_do_you_want_to_continue"),
211
					WindowManager.MODE.DIALOG);
212
			if (dlg.cancelled()) {
213
				throw new NotContinueWizardException("", null, false);
214
			}
215
		}
216
	}
202 217

  
203
    public void updatePanel() {
218
	public void updatePanel() {
204 219

  
205
        InstallPackageService installerExecutionService =
206
            installerExecutionWizard.getInstallerExecutionService();
220
		InstallPackageService installerExecutionService = installerExecutionWizard
221
				.getInstallerExecutionService();
207 222

  
208
        selectPackagesPanel.updatePanel();
223
		selectPackagesPanel.updatePanel();
209 224

  
210
        // if default packages must be selected or not
211
        if (installerExecutionWizard.getSelectDefaultPackages()) {
212
            selectPackagesPanel.selectPackages();
213
        }
225
		// if default packages must be selected or not
226
		if (installerExecutionWizard.getSelectDefaultPackages()) {
227
			selectPackagesPanel.selectPackages();
228
		}
214 229

  
215
        // if this panel has not to be shown
216
        if (!installerExecutionWizard.showSelectPackagesPanel()) {
217
            saltaOno(installerExecutionService);
218
        }
230
		// if this panel has not to be shown
231
		if (!installerExecutionWizard.showSelectPackagesPanel()) {
232
			saltaOno(installerExecutionService);
233
		}
219 234

  
220
        checkIfPluginSelected();
221
    }
235
		checkIfPluginSelected();
236
	}
222 237

  
223
    public void checkIfPluginSelected() {
224
        if (installerExecutionWizard.showSelectPackagesPanel()) {
225
            installerExecutionWizard.setNextButtonEnabled(selectPackagesPanel
226
                .isPackageSelected());
227
        }
228
    }
238
	public void checkIfPluginSelected() {
239
		if (installerExecutionWizard.showSelectPackagesPanel()) {
240
			installerExecutionWizard.setNextButtonEnabled(selectPackagesPanel
241
					.isPackageSelected());
242
		}
243
	}
229 244

  
230
    public void saltaOno(InstallPackageService installerExecutionService) {
245
	public void saltaOno(InstallPackageService installerExecutionService) {
231 246

  
232
        List<String> defaultPackageIDs =
233
            installerExecutionService.getDefaultSelectedPackagesIDs();
247
		List<String> defaultPackageIDs = installerExecutionService
248
				.getDefaultSelectedPackagesIDs();
234 249

  
235
        boolean defaultPacketsExist = false;
250
		boolean defaultPacketsExist = false;
236 251

  
237
        // check if there is any default package
238
        if (defaultPackageIDs != null) {
239
            for (int i = 0; i < installerExecutionService.getPackageCount(); i++) {
240
                for (int j = 0; j < defaultPackageIDs.size(); j++) {
241
                    // if the package is in the default packages list
242
                    if (installerExecutionService.getPackageInfo(i).matchID(
243
                        defaultPackageIDs.get(j))) {
244
                        // if package is for all operating systems or the system
245
                        // operating system equals the project's one
246
                        if (installerExecutionService.getPackageInfo(i)
247
                            .getOperatingSystem().equals("all")
248
                            || installerExecutionService.getPackageInfo(i)
249
                                .getOperatingSystem().equals(
250
                                    this.swingInstallerManager
251
                                        .getInstallerManager()
252
                                        .getOperatingSystem())) {
253
                            defaultPacketsExist = true;
254
                            break;
255
                        }
256
                    }
257
                }
258
            }
259
        }
252
		// check if there is any default package
253
		if (defaultPackageIDs != null) {
254
			for (int i = 0; i < installerExecutionService.getPackageCount(); i++) {
255
				for (int j = 0; j < defaultPackageIDs.size(); j++) {
256
					// if the package is in the default packages list
257
					if (installerExecutionService.getPackageInfo(i).matchID(
258
							defaultPackageIDs.get(j))) {
259
						// if package is for all operating systems or the system
260
						// operating system equals the project's one
261
						if (installerExecutionService.getPackageInfo(i)
262
								.getOperatingSystem().equals("all")
263
								|| installerExecutionService.getPackageInfo(i)
264
										.getOperatingSystem().equals(
265
												this.swingInstallerManager
266
														.getInstallerManager()
267
														.getOperatingSystem())) {
268
							defaultPacketsExist = true;
269
							break;
270
						}
271
					}
272
				}
273
			}
274
		}
260 275

  
261
        if (defaultPacketsExist) {
262
            (installerExecutionWizard).doAction(direccion);
263
            // if there is not any package, show error and jump back.
264
        } else {
265
            (installerExecutionWizard)
266
                .doAction(WizardPanelWithLogo.ACTION_PREVIOUS);
267
            try {
268
                throw new Exception(
269
                    "_There_are_no_packages_in_typical_installation_to_select");
270
            } catch (Exception e) {
271
                // TODO Auto-generated catch block
272
                e.printStackTrace();
273
            }
276
		if (defaultPacketsExist) {
277
			(installerExecutionWizard).doAction(direccion);
278
			// if there is not any package, show error and jump back.
279
		} else {
280
			(installerExecutionWizard)
281
					.doAction(WizardPanelWithLogo.ACTION_PREVIOUS);
282
			try {
283
				throw new Exception(
284
						swingInstallerManager
285
								.getText("_There_are_no_packages_in_typical_installation_to_select"));
286
			} catch (Exception e) {
287
				// TODO Auto-generated catch block
288
				e.printStackTrace();
289
			}
274 290

  
275
        }
291
		}
276 292

  
277
    }
293
	}
278 294

  
279
    public List<PackageInfo> getPackagesToInstall() {
280
        return selectPackagesPanel.getPackagesToInstall();
281
    }
295
	public List<PackageInfo> getPackagesToInstall() {
296
		return selectPackagesPanel.getPackagesToInstall();
297
	}
282 298

  
283
    public File getPluginsFolder() {
284
        return installerExecutionWizard.getPluginsFolder();
285
    }
299
	public File getPluginsFolder() {
300
		return installerExecutionWizard.getPluginsFolder();
301
	}
286 302

  
287
    public DefaultInstallPackageWizard getDefaultInstallPackageWizard() {
288
        return this.installerExecutionWizard;
289
    }
290
    
291
    public Boolean isDefaultPackagesSelectionSet() {
292
        return installerExecutionWizard.getSelectDefaultPackages();
293
    }
303
	public DefaultInstallPackageWizard getDefaultInstallPackageWizard() {
304
		return this.installerExecutionWizard;
305
	}
294 306

  
307
	public Boolean isDefaultPackagesSelectionSet() {
308
		return installerExecutionWizard.getSelectDefaultPackages();
309
	}
310

  
295 311
}

Also available in: Unified diff