void install() { Vector components = new Vector(); Vector indicies = new Vector(); int size = 0; JPanel comp = selectComponents.comp; Vector ids = selectComponents.filesets; for (int i = 0; i < comp.getComponentCount(); i++) { if (((JCheckBox) comp.getComponent(i)).getModel().isSelected()) { size += installer.getIntegerProperty("comp." + ids.elementAt(i) + ".real-size"); components.addElement(installer.getProperty("comp." + ids.elementAt(i) + ".fileset")); indicies.addElement(new Integer(i)); } } String installDir = chooseDirectory.installDir.getText(); Map osTaskDirs = chooseDirectory.osTaskDirs; Iterator keys = osTaskDirs.keySet().iterator(); while (keys.hasNext()) { OperatingSystem.OSTask osTask = (OperatingSystem.OSTask) keys.next(); String dir = ((JTextField) osTaskDirs.get(osTask)).getText(); if (dir != null && dir.length() != 0) { osTask.setEnabled(true); osTask.setDirectory(dir); } else osTask.setEnabled(false); } InstallThread thread = new InstallThread(installer, progress, installDir, osTasks, size, components, indicies); progress.setThread(thread); thread.start(); }
ChooseDirectory() { super(new BorderLayout()); osTaskDirs = new HashMap(); JPanel directoryPanel = new JPanel(new VariableGridLayout(VariableGridLayout.FIXED_NUM_COLUMNS, 3, 12, 12)); installDir = addField( directoryPanel, "Install program in:", OperatingSystem.getOperatingSystem().getInstallDirectory(appName)); for (int i = 0; i < osTasks.length; i++) { OperatingSystem.OSTask osTask = osTasks[i]; String label = osTask.getLabel(); if (label != null) { JTextField field = addField(directoryPanel, label, osTask.getDirectory()); osTaskDirs.put(osTask, field); } } ChooseDirectory.this.add(BorderLayout.NORTH, directoryPanel); }