root / tags / v2_0_0_Build_2051 / extensions / org.gvsig.installer / org.gvsig.installer.swing / org.gvsig.installer.swing.impl / src / main / java / org / gvsig / installer / swing / impl / execution / panel / model / PackagesTableModel.java @ 38753
History | View | Annotate | Download (16.1 KB)
1 | 37538 | nfrancisco | /* gvSIG. Geographic Information System of the Valencian Government
|
---|---|---|---|
2 | *
|
||
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 | |||
23 | /*
|
||
24 | * AUTHORS (In addition to CIT):
|
||
25 | * 2010 {Prodevelop} {Task}
|
||
26 | */
|
||
27 | |||
28 | 37541 | nfrancisco | package org.gvsig.installer.swing.impl.execution.panel.model; |
29 | 37538 | nfrancisco | |
30 | import java.net.URL; |
||
31 | import java.util.ArrayList; |
||
32 | import java.util.Arrays; |
||
33 | import java.util.Comparator; |
||
34 | import java.util.HashMap; |
||
35 | 38410 | jldominguez | import java.util.HashSet; |
36 | import java.util.Iterator; |
||
37 | 37538 | nfrancisco | import java.util.List; |
38 | import java.util.Map; |
||
39 | 38410 | jldominguez | import java.util.Set; |
40 | 37538 | nfrancisco | |
41 | import javax.swing.table.AbstractTableModel; |
||
42 | |||
43 | import org.gvsig.installer.lib.api.InstallerLocator; |
||
44 | import org.gvsig.installer.lib.api.InstallerManager; |
||
45 | import org.gvsig.installer.lib.api.PackageInfo; |
||
46 | import org.gvsig.installer.lib.api.creation.MakePluginPackageServiceException; |
||
47 | import org.gvsig.installer.lib.api.execution.InstallPackageService; |
||
48 | import org.gvsig.installer.swing.api.SwingInstallerManager; |
||
49 | 37585 | nfrancisco | import org.gvsig.installer.swing.impl.execution.panel.filters.NameDescriptionOrCodeFilter; |
50 | 37541 | nfrancisco | import org.gvsig.installer.swing.impl.execution.panel.filters.PackageFilter; |
51 | 37538 | nfrancisco | |
52 | public class PackagesTableModel extends AbstractTableModel { |
||
53 | |||
54 | 37584 | nfrancisco | private static final long serialVersionUID = -454014676003979512L; |
55 | 37538 | nfrancisco | |
56 | 37584 | nfrancisco | public enum PackageStatus { |
57 | 37831 | nfrancisco | INSTALLED, NOT_INSTALLED, TO_REINSTALL, TO_INSTALL, INSTALLED_NOT_INSTALLABLE, BROKEN; |
58 | 37584 | nfrancisco | } |
59 | 37538 | nfrancisco | |
60 | 37584 | nfrancisco | public enum PackageOfficialRecommended { |
61 | OFFICIAL_NOT_RECOMMENDED, OFFICIAL_RECOMMENDED, NOT_OFFICIAL_RECOMMENDED, NOT_OFFICIAL_NOT_RECOMMENDED |
||
62 | } |
||
63 | 37538 | nfrancisco | |
64 | 37857 | jjdelcerro | public class PackageOsAndArchitecture { |
65 | public String os; |
||
66 | public String arch; |
||
67 | 37584 | nfrancisco | } |
68 | 37857 | jjdelcerro | |
69 | //
|
||
70 | // public enum PackageOsAndArchitecture {
|
||
71 | // WINDOLS_32, WINDOLS_64, LINUX_32, LINUX_64, ALL, OTHER
|
||
72 | // }
|
||
73 | 37538 | nfrancisco | |
74 | 38410 | jldominguez | private TablePackageInfo[] currentlyVisiblePackages = null; |
75 | 37538 | nfrancisco | |
76 | 37584 | nfrancisco | private final String[] columnNames; |
77 | 37538 | nfrancisco | |
78 | 37584 | nfrancisco | private InstallerManager installerManager = InstallerLocator
|
79 | .getInstallerManager(); |
||
80 | private InstallPackageService installerExecutionService;
|
||
81 | 37538 | nfrancisco | |
82 | 37584 | nfrancisco | boolean isOfficial;
|
83 | 37585 | nfrancisco | private NameDescriptionOrCodeFilter packageFastFilter = null; |
84 | 37584 | nfrancisco | private PackageFilter packageFilter = null; |
85 | 38410 | jldominguez | |
86 | private Set<PackageInfo> selectedPackages = new HashSet<PackageInfo>(); |
||
87 | private Map<String, TablePackageInfo> allPackages = null; |
||
88 | 37538 | nfrancisco | |
89 | 37584 | nfrancisco | public PackagesTableModel(SwingInstallerManager swingInstallerManager,
|
90 | 37822 | nfrancisco | InstallPackageService installerExecutionService, boolean isOfficial) {
|
91 | 37538 | nfrancisco | |
92 | 37584 | nfrancisco | this.installerExecutionService = installerExecutionService;
|
93 | this.isOfficial = isOfficial;
|
||
94 | 38410 | jldominguez | |
95 | 37584 | nfrancisco | Map<String, TablePackageInfo> infos = getDefaultPackages(); |
96 | 37538 | nfrancisco | |
97 | 38410 | jldominguez | currentlyVisiblePackages = infos.values().toArray( |
98 | 37584 | nfrancisco | new TablePackageInfo[infos.size()]);
|
99 | sortInstallerInfos(); |
||
100 | 37538 | nfrancisco | |
101 | 37584 | nfrancisco | columnNames = new String[] { |
102 | "", // Check column |
||
103 | 37585 | nfrancisco | "", "", swingInstallerManager.getText("_name"), |
104 | swingInstallerManager.getText("_version"),
|
||
105 | swingInstallerManager.getText("_type") };
|
||
106 | 37538 | nfrancisco | |
107 | 37584 | nfrancisco | } |
108 | 37538 | nfrancisco | |
109 | 37584 | nfrancisco | private void sortInstallerInfos() { |
110 | 38410 | jldominguez | Arrays.sort(currentlyVisiblePackages, new Comparator<TablePackageInfo>() { |
111 | 37538 | nfrancisco | |
112 | 37584 | nfrancisco | public int compare(TablePackageInfo o1, TablePackageInfo o2) { |
113 | return o1.getPackageInfo().getName().compareToIgnoreCase(
|
||
114 | o2.getPackageInfo().getName()); |
||
115 | } |
||
116 | }); |
||
117 | } |
||
118 | 37538 | nfrancisco | |
119 | 38410 | jldominguez | private Map<String, TablePackageInfo> getDefaultPackages() { |
120 | 37538 | nfrancisco | |
121 | 38410 | jldominguez | if (allPackages == null) { |
122 | 37538 | nfrancisco | |
123 | 38410 | jldominguez | List<String> defaultIDs = |
124 | installerExecutionService.getDefaultSelectedPackagesIDs(); |
||
125 | 37538 | nfrancisco | |
126 | 38410 | jldominguez | allPackages = |
127 | new HashMap<String, PackagesTableModel.TablePackageInfo>(); |
||
128 | 37538 | nfrancisco | |
129 | 38410 | jldominguez | // Add installable package infos
|
130 | for (int i = 0; i < installerExecutionService.getPackageCount(); i++) { |
||
131 | PackageInfo installerInfo = |
||
132 | installerExecutionService.getPackageInfo(i); |
||
133 | TablePackageInfo info = |
||
134 | new TablePackageInfo(installerInfo, false, true); |
||
135 | if (defaultIDs != null) { |
||
136 | for (int j = 0; j < defaultIDs.size(); j++) { |
||
137 | if (info.getPackageInfo().matchID(defaultIDs.get(j))) {
|
||
138 | if (info.getPackageInfo().getOperatingSystem()
|
||
139 | .equals(installerManager.getOperatingSystem()) |
||
140 | || info.getPackageInfo().getOperatingSystem() |
||
141 | .equals("all")) {
|
||
142 | info.setDefault(true);
|
||
143 | break;
|
||
144 | } |
||
145 | 37538 | nfrancisco | |
146 | 38410 | jldominguez | } |
147 | } |
||
148 | } |
||
149 | allPackages.put(info.getID(), info); |
||
150 | } |
||
151 | // Add already installed package infos
|
||
152 | try {
|
||
153 | PackageInfo[] installedPackages =
|
||
154 | installerManager.getInstalledPackages(); |
||
155 | 37538 | nfrancisco | |
156 | 38410 | jldominguez | for (int i = 0; i < installedPackages.length; i++) { |
157 | TablePackageInfo info = |
||
158 | new TablePackageInfo(installedPackages[i], true, false); |
||
159 | TablePackageInfo x = allPackages.get(info.getID()); |
||
160 | if (x == null) { |
||
161 | allPackages.put(info.getID(), info); |
||
162 | } else {
|
||
163 | x.setInstalled(true);
|
||
164 | } |
||
165 | } |
||
166 | } catch (MakePluginPackageServiceException e) {
|
||
167 | throw new RuntimeException(e); |
||
168 | } |
||
169 | |||
170 | // ==========================================
|
||
171 | // Set default
|
||
172 | |||
173 | TablePackageInfo tpi = null;
|
||
174 | String os = null; |
||
175 | List<String> idList = installerExecutionService |
||
176 | .getDefaultSelectedPackagesIDs(); |
||
177 | |||
178 | if (idList != null) { |
||
179 | for (int i=0; i<idList.size(); i++) { |
||
180 | |||
181 | tpi = getMatch(idList.get(i), allPackages); |
||
182 | if (tpi != null) { |
||
183 | os = tpi.getPackageInfo().getOperatingSystem(); |
||
184 | if (os.equals(installerManager.getOperatingSystem())
|
||
185 | || os.equals("all")) {
|
||
186 | |||
187 | tpi.setDefault(true);
|
||
188 | } |
||
189 | } |
||
190 | } |
||
191 | } |
||
192 | } |
||
193 | return allPackages;
|
||
194 | } |
||
195 | |||
196 | private TablePackageInfo getMatch(String id, Map<String, TablePackageInfo> map) { |
||
197 | |||
198 | Iterator<TablePackageInfo> iter = map.values().iterator();
|
||
199 | TablePackageInfo item = null;
|
||
200 | while (iter.hasNext()) {
|
||
201 | item = iter.next(); |
||
202 | if (item.getPackageInfo().matchID(id)) {
|
||
203 | return item;
|
||
204 | } |
||
205 | } |
||
206 | return null; |
||
207 | } |
||
208 | |||
209 | 37584 | nfrancisco | // get filtered packages
|
210 | private Map<String, TablePackageInfo> getFilteredPackages( |
||
211 | Map<String, TablePackageInfo> packageInfos) { |
||
212 | 37538 | nfrancisco | |
213 | 37584 | nfrancisco | Map<String, TablePackageInfo> infos = new HashMap<String, TablePackageInfo>(); |
214 | 37538 | nfrancisco | |
215 | 37584 | nfrancisco | TablePackageInfo[] packs = packageInfos.values().toArray(
|
216 | new TablePackageInfo[infos.size()]);
|
||
217 | 37538 | nfrancisco | |
218 | 37584 | nfrancisco | for (int i = 0; i < packs.length; i++) { |
219 | PackageInfo installerInfo = packs[i].getPackageInfo(); |
||
220 | 37538 | nfrancisco | |
221 | 37584 | nfrancisco | if (packageFilter.match(installerInfo)) {
|
222 | TablePackageInfo info = packs[i]; |
||
223 | infos.put(installerInfo.getID(), info); |
||
224 | } |
||
225 | } |
||
226 | return infos;
|
||
227 | } |
||
228 | 37538 | nfrancisco | |
229 | 37584 | nfrancisco | // get fast filtered packages (by name or description)
|
230 | private Map<String, TablePackageInfo> getFastFilteredPackages( |
||
231 | Map<String, TablePackageInfo> packageInfos) { |
||
232 | 37538 | nfrancisco | |
233 | 37584 | nfrancisco | Map<String, TablePackageInfo> infos = new HashMap<String, TablePackageInfo>(); |
234 | 37538 | nfrancisco | |
235 | 37584 | nfrancisco | TablePackageInfo[] packs = packageInfos.values().toArray(
|
236 | new TablePackageInfo[infos.size()]);
|
||
237 | 37538 | nfrancisco | |
238 | 37584 | nfrancisco | for (int i = 0; i < packs.length; i++) { |
239 | PackageInfo installerInfo = packs[i].getPackageInfo(); |
||
240 | 37538 | nfrancisco | |
241 | 37584 | nfrancisco | if (packageFastFilter.match(installerInfo)) {
|
242 | TablePackageInfo info = packs[i]; |
||
243 | infos.put(installerInfo.getID(), info); |
||
244 | } |
||
245 | } |
||
246 | return infos;
|
||
247 | } |
||
248 | 37538 | nfrancisco | |
249 | 37584 | nfrancisco | public void updatePackages() { |
250 | 37538 | nfrancisco | |
251 | 37584 | nfrancisco | Map<String, TablePackageInfo> infos = getDefaultPackages(); |
252 | 37538 | nfrancisco | |
253 | 37584 | nfrancisco | // check if there is a filter set (category, type, etc)
|
254 | if (isPackageFilterSet()) {
|
||
255 | infos = getFilteredPackages(infos); |
||
256 | } |
||
257 | 37538 | nfrancisco | |
258 | 37584 | nfrancisco | // check if there is any filter set (fastFilter)
|
259 | if (isFastFilterSet()) {
|
||
260 | infos = getFastFilteredPackages(infos); |
||
261 | } |
||
262 | 37538 | nfrancisco | |
263 | 38410 | jldominguez | currentlyVisiblePackages = infos.values().toArray( |
264 | 37584 | nfrancisco | new TablePackageInfo[infos.size()]);
|
265 | sortInstallerInfos(); |
||
266 | 38410 | jldominguez | } |
267 | 37538 | nfrancisco | |
268 | |||
269 | 37584 | nfrancisco | public void selectDefaultPackages() { |
270 | 38410 | jldominguez | |
271 | Iterator<String> iter = allPackages.keySet().iterator(); |
||
272 | TablePackageInfo tpi = null;
|
||
273 | while (iter.hasNext()) {
|
||
274 | |||
275 | tpi = allPackages.get(iter.next()); |
||
276 | if (tpi.isDefault()) {
|
||
277 | tpi.setSelected(true);
|
||
278 | } |
||
279 | } |
||
280 | 37584 | nfrancisco | } |
281 | 37538 | nfrancisco | |
282 | 37584 | nfrancisco | public void selectPackage(PackageInfo pkg) { |
283 | 38410 | jldominguez | |
284 | Iterator<String> iter = allPackages.keySet().iterator(); |
||
285 | TablePackageInfo tpi = null;
|
||
286 | while (iter.hasNext()) {
|
||
287 | |||
288 | tpi = allPackages.get(iter.next()); |
||
289 | if (pkg.equals(tpi.getPackageInfo())) {
|
||
290 | tpi.setSelected(true);
|
||
291 | return;
|
||
292 | } |
||
293 | } |
||
294 | 37584 | nfrancisco | } |
295 | 37538 | nfrancisco | |
296 | 37593 | nfrancisco | @Override
|
297 | 37584 | nfrancisco | public Class<?> getColumnClass(int columnIndex) { |
298 | switch (columnIndex) {
|
||
299 | case 0: |
||
300 | return PackageStatus.class;
|
||
301 | case 1: |
||
302 | return PackageOfficialRecommended.class;
|
||
303 | case 2: |
||
304 | return PackageOsAndArchitecture.class;
|
||
305 | default:
|
||
306 | return String.class; |
||
307 | } |
||
308 | } |
||
309 | 37538 | nfrancisco | |
310 | 37584 | nfrancisco | public int getColumnCount() { |
311 | return columnNames.length;
|
||
312 | } |
||
313 | 37538 | nfrancisco | |
314 | 37593 | nfrancisco | @Override
|
315 | 37584 | nfrancisco | public String getColumnName(int columnIndex) { |
316 | return columnIndex >= columnNames.length ? "" |
||
317 | : columnNames[columnIndex]; |
||
318 | } |
||
319 | 37538 | nfrancisco | |
320 | 37584 | nfrancisco | public int getRowCount() { |
321 | 38410 | jldominguez | return currentlyVisiblePackages.length;
|
322 | 37584 | nfrancisco | } |
323 | 37538 | nfrancisco | |
324 | 37584 | nfrancisco | public Object getValueAt(int rowIndex, int columnIndex) { |
325 | 38410 | jldominguez | TablePackageInfo tableInfo = currentlyVisiblePackages[rowIndex]; |
326 | 37584 | nfrancisco | PackageInfo installerInfo = tableInfo.getPackageInfo(); |
327 | 37538 | nfrancisco | |
328 | 37584 | nfrancisco | switch (columnIndex) {
|
329 | case 0: |
||
330 | PackageStatus installStatus = checkStatus(rowIndex); |
||
331 | return installStatus;
|
||
332 | case 1: |
||
333 | PackageOfficialRecommended officialRecommended = checkOfficialRecommended(rowIndex); |
||
334 | return officialRecommended;
|
||
335 | case 2: |
||
336 | PackageOsAndArchitecture packageSystem = checkPackageSystem(rowIndex); |
||
337 | return packageSystem;
|
||
338 | case 3: |
||
339 | return installerInfo.getName();
|
||
340 | case 4: |
||
341 | return installerInfo.getVersion();
|
||
342 | case 5: |
||
343 | return installerInfo.getType();
|
||
344 | default:
|
||
345 | return ""; |
||
346 | 37538 | nfrancisco | |
347 | 37584 | nfrancisco | } |
348 | } |
||
349 | 37538 | nfrancisco | |
350 | 37584 | nfrancisco | /**
|
351 | * @param rowIndex
|
||
352 | * @return
|
||
353 | */
|
||
354 | private PackageOsAndArchitecture checkPackageSystem(int rowIndex) { |
||
355 | 37857 | jjdelcerro | PackageOsAndArchitecture oSArch = new PackageOsAndArchitecture();
|
356 | 38410 | jldominguez | TablePackageInfo tableInfo = currentlyVisiblePackages[rowIndex]; |
357 | 37584 | nfrancisco | PackageInfo installerInfo = tableInfo.getPackageInfo(); |
358 | 37857 | jjdelcerro | oSArch.os = installerInfo.getOperatingSystem(); |
359 | oSArch.arch = installerInfo.getArchitecture(); |
||
360 | 37584 | nfrancisco | return oSArch;
|
361 | } |
||
362 | 37538 | nfrancisco | |
363 | 37584 | nfrancisco | /**
|
364 | * @return
|
||
365 | */
|
||
366 | private PackageStatus checkStatus(int rowIndex) { |
||
367 | 38410 | jldominguez | TablePackageInfo tableInfo = currentlyVisiblePackages[rowIndex]; |
368 | 37538 | nfrancisco | |
369 | 37831 | nfrancisco | // TODO: checkboxes when a package is broken dont work correctly
|
370 | if (tableInfo.getPackageInfo().isBroken()) {
|
||
371 | return PackageStatus.BROKEN;
|
||
372 | } |
||
373 | |||
374 | 37584 | nfrancisco | if (tableInfo.isInstalled()) {
|
375 | if (tableInfo.isInstallable()) {
|
||
376 | if (tableInfo.isSelected()) {
|
||
377 | return PackageStatus.TO_REINSTALL;
|
||
378 | } else {
|
||
379 | return PackageStatus.INSTALLED;
|
||
380 | } |
||
381 | } else {
|
||
382 | return PackageStatus.INSTALLED_NOT_INSTALLABLE;
|
||
383 | } |
||
384 | 37538 | nfrancisco | |
385 | 37584 | nfrancisco | } else {
|
386 | if (tableInfo.isSelected()) {
|
||
387 | return PackageStatus.TO_INSTALL;
|
||
388 | } else {
|
||
389 | return PackageStatus.NOT_INSTALLED;
|
||
390 | } |
||
391 | } |
||
392 | } |
||
393 | 37538 | nfrancisco | |
394 | 37584 | nfrancisco | private PackageOfficialRecommended checkOfficialRecommended(int rowIndex) { |
395 | 38410 | jldominguez | TablePackageInfo tableInfo = currentlyVisiblePackages[rowIndex]; |
396 | 37584 | nfrancisco | PackageInfo packageInfo = tableInfo.getPackageInfo(); |
397 | 37538 | nfrancisco | |
398 | 37584 | nfrancisco | if (packageInfo.isOfficial()) {
|
399 | 38410 | jldominguez | if (currentlyVisiblePackages[rowIndex].isDefault()) {
|
400 | 37584 | nfrancisco | return PackageOfficialRecommended.OFFICIAL_RECOMMENDED;
|
401 | } else {
|
||
402 | return PackageOfficialRecommended.OFFICIAL_NOT_RECOMMENDED;
|
||
403 | } |
||
404 | } else {
|
||
405 | 38410 | jldominguez | if (currentlyVisiblePackages[rowIndex].isDefault()) {
|
406 | 37584 | nfrancisco | return PackageOfficialRecommended.NOT_OFFICIAL_RECOMMENDED;
|
407 | } else {
|
||
408 | return PackageOfficialRecommended.NOT_OFFICIAL_NOT_RECOMMENDED;
|
||
409 | } |
||
410 | } |
||
411 | } |
||
412 | 37538 | nfrancisco | |
413 | 37584 | nfrancisco | public PackageInfo getPackageInfoAt(int rowIndex) { |
414 | 38410 | jldominguez | return currentlyVisiblePackages[rowIndex].getPackageInfo();
|
415 | 37584 | nfrancisco | } |
416 | 37538 | nfrancisco | |
417 | 37584 | nfrancisco | public String getDescriptionAt(int rowIndex) { |
418 | return getPackageInfoAt(rowIndex).getDescription();
|
||
419 | } |
||
420 | 37538 | nfrancisco | |
421 | 37584 | nfrancisco | public URL getSourcesAt(int rowIndex) { |
422 | return getPackageInfoAt(rowIndex).getSourcesURL();
|
||
423 | } |
||
424 | 37822 | nfrancisco | |
425 | 37601 | nfrancisco | public URL getOwnerUrlAt(int rowIndex) { |
426 | return getPackageInfoAt(rowIndex).getOwnerURL();
|
||
427 | } |
||
428 | 37538 | nfrancisco | |
429 | 37584 | nfrancisco | public String getOwnerAt(int rowIndex) { |
430 | return getPackageInfoAt(rowIndex).getOwner();
|
||
431 | } |
||
432 | 37538 | nfrancisco | |
433 | 37593 | nfrancisco | @Override
|
434 | 37584 | nfrancisco | public boolean isCellEditable(int rowIndex, int columnIndex) { |
435 | 38410 | jldominguez | return (columnIndex == 0) && currentlyVisiblePackages[rowIndex].isInstallable(); |
436 | 37584 | nfrancisco | } |
437 | 37538 | nfrancisco | |
438 | 37593 | nfrancisco | @Override
|
439 | 37584 | nfrancisco | public void setValueAt(Object aValue, int rowIndex, int columnIndex) { |
440 | 37538 | nfrancisco | |
441 | 37584 | nfrancisco | if (columnIndex == 0) { |
442 | PackageStatus status = (PackageStatus) aValue; |
||
443 | 38410 | jldominguez | TablePackageInfo tableInfo = currentlyVisiblePackages[rowIndex]; |
444 | 37584 | nfrancisco | switch (status) {
|
445 | case INSTALLED:
|
||
446 | case NOT_INSTALLED:
|
||
447 | tableInfo.setSelected(false);
|
||
448 | break;
|
||
449 | 37538 | nfrancisco | |
450 | 37584 | nfrancisco | case TO_REINSTALL:
|
451 | case TO_INSTALL:
|
||
452 | tableInfo.setSelected(true);
|
||
453 | break;
|
||
454 | } |
||
455 | } |
||
456 | } |
||
457 | 37538 | nfrancisco | |
458 | 37584 | nfrancisco | public List<PackageInfo> getPackagesToInstall() { |
459 | 38410 | jldominguez | |
460 | List<PackageInfo> packageInfosToInstall = new ArrayList<PackageInfo>(); |
||
461 | packageInfosToInstall.addAll(selectedPackages); |
||
462 | return packageInfosToInstall;
|
||
463 | 37584 | nfrancisco | } |
464 | 37538 | nfrancisco | |
465 | 37584 | nfrancisco | public boolean hasAnyPackageSelected() { |
466 | 38410 | jldominguez | return (selectedPackages.size() > 0); |
467 | 37584 | nfrancisco | } |
468 | 37538 | nfrancisco | |
469 | 38410 | jldominguez | public final class TablePackageInfo { |
470 | 37538 | nfrancisco | |
471 | 37584 | nfrancisco | private final PackageInfo packageInfo; |
472 | private boolean isInstalled; |
||
473 | private final boolean isInstallable; |
||
474 | 38410 | jldominguez | // private boolean isSelected;
|
475 | 37584 | nfrancisco | private boolean isDefault; |
476 | 37538 | nfrancisco | |
477 | 37584 | nfrancisco | public TablePackageInfo(PackageInfo packageInfo, boolean isInstalled, |
478 | boolean isInstallable) {
|
||
479 | 38410 | jldominguez | this(packageInfo, isInstalled, isInstallable, false); |
480 | 37584 | nfrancisco | } |
481 | 37538 | nfrancisco | |
482 | 37584 | nfrancisco | public void setInstalled(boolean installed) { |
483 | this.isInstalled = installed;
|
||
484 | } |
||
485 | 37538 | nfrancisco | |
486 | 37584 | nfrancisco | public TablePackageInfo(PackageInfo packageInfo, boolean isInstalled, |
487 | 38410 | jldominguez | boolean isInstallable, boolean isDefault) { |
488 | 37584 | nfrancisco | this.packageInfo = packageInfo;
|
489 | this.isInstalled = isInstalled;
|
||
490 | this.isInstallable = isInstallable;
|
||
491 | this.isDefault = isDefault;
|
||
492 | } |
||
493 | 37538 | nfrancisco | |
494 | 37584 | nfrancisco | public String getID() { |
495 | PackageInfo pkg = this.getPackageInfo();
|
||
496 | return pkg.getID();
|
||
497 | } |
||
498 | 37538 | nfrancisco | |
499 | 37584 | nfrancisco | public PackageInfo getPackageInfo() {
|
500 | return packageInfo;
|
||
501 | } |
||
502 | 37538 | nfrancisco | |
503 | 37584 | nfrancisco | public boolean isInstalled() { |
504 | return isInstalled;
|
||
505 | } |
||
506 | 37538 | nfrancisco | |
507 | 37584 | nfrancisco | public boolean isInstallable() { |
508 | return isInstallable;
|
||
509 | } |
||
510 | 37538 | nfrancisco | |
511 | 37584 | nfrancisco | public boolean isSelected() { |
512 | 38410 | jldominguez | return selectedPackages.contains(packageInfo);
|
513 | 37584 | nfrancisco | } |
514 | 37538 | nfrancisco | |
515 | 37584 | nfrancisco | public void setSelected(boolean isSelected) { |
516 | 38410 | jldominguez | if (isSelected) {
|
517 | selectedPackages.add(packageInfo); |
||
518 | } else {
|
||
519 | selectedPackages.remove(packageInfo); |
||
520 | } |
||
521 | 37584 | nfrancisco | } |
522 | 37538 | nfrancisco | |
523 | 37584 | nfrancisco | public void setDefault(boolean isDefault) { |
524 | this.isDefault = isDefault;
|
||
525 | } |
||
526 | 37538 | nfrancisco | |
527 | 37584 | nfrancisco | public boolean isDefault() { |
528 | return isDefault;
|
||
529 | } |
||
530 | 37550 | nfrancisco | |
531 | 37584 | nfrancisco | } |
532 | |||
533 | /**
|
||
534 | * Returns the TablePackageInfo located in the given row.
|
||
535 | *
|
||
536 | * @param row
|
||
537 | * the TablePackageInfo located in the given row
|
||
538 | */
|
||
539 | public TablePackageInfo getPackageInfo(int row) { |
||
540 | 38410 | jldominguez | return currentlyVisiblePackages[row];
|
541 | 37584 | nfrancisco | } |
542 | |||
543 | public void setFilter(PackageFilter filter) { |
||
544 | this.packageFilter = filter;
|
||
545 | } |
||
546 | |||
547 | 37585 | nfrancisco | public void setFilter(NameDescriptionOrCodeFilter filter) { |
548 | 37584 | nfrancisco | this.packageFastFilter = filter;
|
549 | } |
||
550 | |||
551 | private Boolean isFastFilterSet() { |
||
552 | return this.packageFastFilter != null; |
||
553 | } |
||
554 | |||
555 | private Boolean isPackageFilterSet() { |
||
556 | return this.packageFilter != null; |
||
557 | } |
||
558 | |||
559 | public PackageFilter getFilter() {
|
||
560 | return this.packageFastFilter; |
||
561 | } |
||
562 | |||
563 | public InstallPackageService getInstallPackageService() {
|
||
564 | return this.installerExecutionService; |
||
565 | } |
||
566 | 37538 | nfrancisco | } |