Revision 40937
trunk/org.gvsig.desktop/org.gvsig.desktop.library/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 | ||
---|---|---|
50 | 50 |
import org.gvsig.installer.swing.impl.execution.panel.filters.NameDescriptionOrCodeFilter; |
51 | 51 |
import org.gvsig.installer.swing.impl.execution.panel.filters.PackageFilter; |
52 | 52 |
import org.gvsig.tools.packageutils.PackageManager; |
53 |
import org.slf4j.Logger; |
|
54 |
import org.slf4j.LoggerFactory; |
|
53 | 55 |
|
54 | 56 |
public class PackagesTableModel extends AbstractTableModel { |
55 | 57 |
|
56 | 58 |
private static final long serialVersionUID = -454014676003979512L; |
59 |
private Logger logger = LoggerFactory.getLogger(PackagesTableModel.class); |
|
57 | 60 |
|
58 | 61 |
public enum PackageStatus { |
59 | 62 |
INSTALLED, NOT_INSTALLED, TO_REINSTALL, TO_INSTALL, INSTALLED_NOT_INSTALLABLE, BROKEN, INSTALLATION_NOT_AVAILABLE; |
... | ... | |
112 | 115 |
Arrays.sort(currentlyVisiblePackages, new Comparator<TablePackageInfo>() { |
113 | 116 |
|
114 | 117 |
public int compare(TablePackageInfo o1, TablePackageInfo o2) { |
115 |
return o1.getPackageInfo().getName().compareToIgnoreCase( |
|
116 |
o2.getPackageInfo().getName()); |
|
118 |
PackageInfo p1 = o1.getPackageInfo(); |
|
119 |
PackageInfo p2 = o2.getPackageInfo(); |
|
120 |
String s1 = p1.getName() + "/" + p1.getVersion().fullFormat() + "/" + p1.getOperatingSystem() + "/" + p1.getArchitecture(); |
|
121 |
String s2 = p2.getName() + "/" + p2.getVersion().fullFormat() + "/" + p2.getOperatingSystem() + "/" + p2.getArchitecture(); |
|
122 |
return s1.compareToIgnoreCase(s2); |
|
117 | 123 |
} |
118 | 124 |
}); |
119 | 125 |
} |
120 | 126 |
|
127 |
private boolean canSetAsDefault(List<String> defaultIDs, PackageInfo pkg) { |
|
128 |
String system_os = installerManager.getOperatingSystem(); |
|
129 |
String pkg_os = pkg.getOperatingSystem(); |
|
130 |
String pkg_arch = pkg.getArchitecture(); |
|
131 |
if (defaultIDs != null) { |
|
132 |
for (int j = 0; j < defaultIDs.size(); j++) { |
|
133 |
String code = defaultIDs.get(j); |
|
134 |
if (pkg.matchID(code)) { |
|
135 |
if (pkg_os.equals(system_os) || pkg_os.equals(PackageManager.OS.ALL)) { |
|
136 |
// De momento solo marcamos paquetes de arquitectura x86, 32bits |
|
137 |
if( PackageManager.ARCH.ALL.equalsIgnoreCase(pkg_arch) ) { |
|
138 |
return true; |
|
139 |
} else if( PackageManager.ARCH.X86.equalsIgnoreCase(pkg_arch) ) { |
|
140 |
return true; |
|
141 |
} |
|
142 |
} |
|
143 |
} |
|
144 |
} |
|
145 |
} |
|
146 |
logger.info("package '"+pkg.getCode()+"/"+pkg_os+"/"+pkg_arch+"' don't install as default."); |
|
147 |
return false; |
|
148 |
} |
|
149 |
|
|
121 | 150 |
private Map<String, TablePackageInfo> getDefaultPackages() { |
122 | 151 |
|
123 | 152 |
if (allPackages == null) { |
124 |
|
|
125 | 153 |
List<String> defaultIDs = |
126 | 154 |
installerExecutionService.getDefaultSelectedPackagesIDs(); |
127 |
|
|
128 | 155 |
allPackages = |
129 | 156 |
new HashMap<String, PackagesTableModel.TablePackageInfo>(); |
130 |
|
|
131 | 157 |
// Add installable package infos |
132 | 158 |
for (int i = 0; i < installerExecutionService.getPackageCount(); i++) { |
133 | 159 |
PackageInfo installerInfo = |
134 | 160 |
installerExecutionService.getPackageInfo(i); |
135 | 161 |
TablePackageInfo info = |
136 | 162 |
new TablePackageInfo(installerInfo, false, true); |
137 |
if (defaultIDs != null) { |
|
138 |
for (int j = 0; j < defaultIDs.size(); j++) { |
|
139 |
PackageInfo pkg = info.getPackageInfo(); |
|
140 |
if (pkg.matchID(defaultIDs.get(j))) { |
|
141 |
if (pkg.getOperatingSystem().equals(installerManager.getOperatingSystem()) |
|
142 |
|| pkg.getOperatingSystem().equals("all")) { |
|
143 |
// De momento solo marcamos paquetes de arquitectura x86, 32bits |
|
144 |
if( PackageManager.ARCH.X86.equalsIgnoreCase(pkg.getArchitecture()) ) { |
|
145 |
info.setDefault(true); |
|
146 |
break; |
|
147 |
} |
|
148 |
} |
|
149 |
|
|
150 |
} |
|
151 |
} |
|
152 |
} |
|
163 |
PackageInfo pkg = info.getPackageInfo(); |
|
164 |
if( canSetAsDefault(defaultIDs, pkg) ) { |
|
165 |
info.setDefault(true); |
|
166 |
} |
|
153 | 167 |
allPackages.put(info.getID(), info); |
154 | 168 |
} |
155 | 169 |
// Add already installed package infos |
Also available in: Unified diff