Revision 37893
branches/v2_0_0_prep/extensions/org.gvsig.installer/org.gvsig.installer.lib/org.gvsig.installer.lib.impl/src/main/java/org/gvsig/installer/lib/impl/execution/DefaultInstallPackageService.java | ||
---|---|---|
37 | 37 |
import java.net.MalformedURLException; |
38 | 38 |
import java.net.URL; |
39 | 39 |
import java.util.ArrayList; |
40 |
import java.util.Collections; |
|
40 | 41 |
import java.util.HashMap; |
41 | 42 |
import java.util.HashSet; |
42 | 43 |
import java.util.List; |
... | ... | |
48 | 49 |
|
49 | 50 |
import org.gvsig.installer.lib.api.InstallerManager; |
50 | 51 |
import org.gvsig.installer.lib.api.PackageInfo; |
52 |
import org.gvsig.installer.lib.api.creation.MakePluginPackageServiceException; |
|
51 | 53 |
import org.gvsig.installer.lib.api.execution.InstallPackageService; |
52 | 54 |
import org.gvsig.installer.lib.api.execution.InstallPackageServiceException; |
53 | 55 |
import org.gvsig.installer.lib.impl.DefaultInstallerManager; |
... | ... | |
526 | 528 |
public List<String> getCategories() { |
527 | 529 |
Set<String> categories = new HashSet<String>(); |
528 | 530 |
|
529 |
for (int i = 0; i < getPackageCount(); i++) { |
|
530 |
categories.addAll(packageInfos.get(i).getCategories()); |
|
531 |
for (int i = 0; i < packageInfos.size(); i++) { |
|
532 |
PackageInfo pkginfo = packageInfos.get(i); |
|
533 |
List<String> pkgcategories = pkginfo.getCategories(); |
|
534 |
categories.addAll(pkgcategories); |
|
531 | 535 |
} |
532 |
|
|
533 |
return new ArrayList<String>(categories); |
|
536 |
try { |
|
537 |
PackageInfo[] pkgs = manager.getInstalledPackages(); |
|
538 |
for (int i = 0; i < pkgs.length; i++) { |
|
539 |
PackageInfo pkginfo = pkgs[i]; |
|
540 |
List<String> pkgcategories = pkginfo.getCategories(); |
|
541 |
categories.addAll(pkgcategories); |
|
542 |
} |
|
543 |
|
|
544 |
} catch (MakePluginPackageServiceException e) { |
|
545 |
// Ignore exceptions |
|
546 |
} |
|
547 |
ArrayList<String> l = new ArrayList<String>(categories); |
|
548 |
Collections.sort(l); |
|
549 |
return l; |
|
534 | 550 |
} |
535 | 551 |
|
536 | 552 |
public List<String> getTypes() { |
537 | 553 |
Set<String> types = new HashSet<String>(); |
538 | 554 |
|
539 |
for (int i = 0; i < getPackageCount(); i++) { |
|
540 |
types.add(packageInfos.get(i).getType()); |
|
555 |
for (int i = 0; i < packageInfos.size(); i++) { |
|
556 |
PackageInfo pkginfo = packageInfos.get(i); |
|
557 |
types.add(pkginfo.getType()); |
|
541 | 558 |
} |
542 |
|
|
543 |
return new ArrayList<String>(types); |
|
559 |
try { |
|
560 |
PackageInfo[] pkgs = manager.getInstalledPackages(); |
|
561 |
for (int i = 0; i < pkgs.length; i++) { |
|
562 |
PackageInfo pkginfo = pkgs[i]; |
|
563 |
types.add(pkginfo.getType()); |
|
564 |
} |
|
565 |
|
|
566 |
} catch (MakePluginPackageServiceException e) { |
|
567 |
// Ignore exceptions |
|
568 |
} |
|
569 |
ArrayList<String> l = new ArrayList<String>(types); |
|
570 |
Collections.sort(l); |
|
571 |
return l; |
|
544 | 572 |
} |
545 | 573 |
|
546 | 574 |
} |
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/panel/FastFilterButtonsPanel.java | ||
---|---|---|
95 | 95 |
public void actionPerformed(ActionEvent e) { |
96 | 96 |
if ("search".equals(e.getActionCommand())) { |
97 | 97 |
searchAction(); |
98 |
} else { |
|
99 |
if ("reset".equals(e.getActionCommand())) { |
|
100 |
resetAction(); |
|
101 |
} |
|
98 |
} else if ("reset".equals(e.getActionCommand())) { |
|
99 |
resetAction(); |
|
102 | 100 |
} |
103 | 101 |
} |
104 | 102 |
|
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/panel/PackagesTablePanel.java | ||
---|---|---|
44 | 44 |
import javax.swing.event.ListSelectionListener; |
45 | 45 |
import javax.swing.table.TableColumnModel; |
46 | 46 |
|
47 |
import org.gvsig.installer.lib.api.Dependencies; |
|
48 | 47 |
import org.gvsig.installer.lib.api.PackageInfo; |
49 | 48 |
import org.gvsig.installer.swing.api.SwingInstallerLocator; |
50 | 49 |
import org.gvsig.installer.swing.api.SwingInstallerManager; |
... | ... | |
96 | 95 |
new OsAndArchitectureCellRenderer()); |
97 | 96 |
pluginsTable.setDefaultRenderer(String.class, ipcr); |
98 | 97 |
pluginsTable.setDefaultRenderer(Number.class, ipcr); |
99 |
pluginsTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
|
|
98 |
pluginsTable.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
|
|
100 | 99 |
} |
101 | 100 |
|
102 | 101 |
private void initComponents() { |
... | ... | |
165 | 164 |
add(descriptionScrollPane, gridBagConstraints); |
166 | 165 |
} |
167 | 166 |
|
167 |
public void resetFilter() { |
|
168 |
filterPanel.resetPanel(); |
|
169 |
valueChanged(); |
|
170 |
} |
|
171 |
|
|
168 | 172 |
public void selectPackages() { |
169 | 173 |
PackagesTableModel pluginsTableModel = (PackagesTableModel) pluginsTable |
170 | 174 |
.getModel(); |
... | ... | |
194 | 198 |
.hasAnyPackageSelected(); |
195 | 199 |
} |
196 | 200 |
|
197 |
// shows the package info in the wizard |
|
198 |
public void valueChanged(ListSelectionEvent e) { |
|
199 |
int row = pluginsTable.getSelectedRow(); |
|
200 |
if (row != -1) { |
|
201 |
|
|
202 |
String code = ((PackagesTableModel) pluginsTable.getModel()) |
|
203 |
.getPackageInfoAt(row).getCode(); |
|
204 |
if (code == null || code.equals("")) { |
|
205 |
code = ""; |
|
206 |
} else { |
|
207 |
code = "<li type='circle'>Code: " + code + "</li>"; |
|
201 |
private class HTMLCoder { |
|
202 |
private StringBuffer buffer = new StringBuffer(); |
|
203 |
|
|
204 |
public String toString() { |
|
205 |
return buffer.toString(); |
|
206 |
} |
|
207 |
|
|
208 |
public void addTitle(String title) { |
|
209 |
if( title == null ) { |
|
210 |
return; |
|
208 | 211 |
} |
209 |
|
|
210 |
String name = ((PackagesTableModel) pluginsTable.getModel()) |
|
211 |
.getPackageInfoAt(row).getName(); |
|
212 |
if (name == null || name.equals("")) { |
|
213 |
name = ""; |
|
214 |
} else { |
|
215 |
name = name + "<br>"; |
|
212 |
buffer.append("<h1>"); |
|
213 |
buffer.append(title); |
|
214 |
buffer.append("</h1>"); |
|
215 |
} |
|
216 |
|
|
217 |
public void addParagraph(Object text) { |
|
218 |
if( text == null ) { |
|
219 |
return; |
|
216 | 220 |
} |
217 |
|
|
218 |
String owner = ((PackagesTableModel) pluginsTable.getModel()) |
|
219 |
.getOwnerAt(row).trim(); |
|
220 |
if (owner == null || owner.equals("")) { |
|
221 |
owner = ""; |
|
222 |
} else { |
|
223 |
owner = "<li type='circle'>Owner: " + owner + "</li>"; |
|
221 |
String t = text.toString().replaceAll("\\n", "<br>\n"); |
|
222 |
buffer.append("<p>"); |
|
223 |
buffer.append(t); |
|
224 |
buffer.append("</p>"); |
|
225 |
} |
|
226 |
|
|
227 |
public void addBeginList() { |
|
228 |
buffer.append("<ul>"); |
|
229 |
} |
|
230 |
|
|
231 |
public void addEndList() { |
|
232 |
buffer.append("</ul>"); |
|
233 |
} |
|
234 |
|
|
235 |
public void addListItem(String label, Object value) { |
|
236 |
if( value == null ) { |
|
237 |
return; |
|
224 | 238 |
} |
225 |
|
|
226 |
String ownerUrlStr; |
|
227 |
URL ownerURL = ((PackagesTableModel) pluginsTable.getModel()) |
|
228 |
.getOwnerUrlAt(row); |
|
229 |
if (ownerURL == null) { |
|
230 |
ownerUrlStr = ""; |
|
231 |
} else { |
|
232 |
ownerUrlStr = "<li type='circle'>Owner URL:" |
|
233 |
+ ownerURL.toString() + "</li>"; |
|
239 |
buffer.append("<li>"); |
|
240 |
buffer.append(label); |
|
241 |
buffer.append(": <i>"); |
|
242 |
buffer.append(value.toString()); |
|
243 |
buffer.append("</i></li>"); |
|
244 |
} |
|
245 |
|
|
246 |
public void addListItem(String label, URL value) { |
|
247 |
if( value == null ) { |
|
248 |
return; |
|
234 | 249 |
} |
250 |
buffer.append("<li>"); |
|
251 |
buffer.append(label); |
|
252 |
buffer.append(": <a href=\""); |
|
253 |
buffer.append(value.toString()); |
|
254 |
buffer.append("\">"); |
|
255 |
buffer.append(value.toString()); |
|
256 |
buffer.append("</a></li>"); |
|
257 |
} |
|
258 |
|
|
259 |
} |
|
260 |
public void valueChanged(ListSelectionEvent e) { |
|
261 |
valueChanged(); |
|
262 |
} |
|
235 | 263 |
|
236 |
String sources; |
|
237 |
URL sourcesURL = ((PackagesTableModel) pluginsTable.getModel()) |
|
238 |
.getSourcesAt(row); |
|
239 |
if (sourcesURL == null) { |
|
240 |
sources = ""; |
|
241 |
} else { |
|
242 |
String sourcesb = "Sources:" + sourcesURL.toString(); |
|
243 |
sources = "<li type='circle'>" + sourcesb + "</li>"; |
|
244 |
} |
|
264 |
public void valueChanged() { |
|
265 |
int row = pluginsTable.getSelectedRow(); |
|
266 |
if (row < 0) { |
|
267 |
descriptionTextEditor.setText("<p></p>"); |
|
268 |
return; |
|
269 |
} |
|
245 | 270 |
|
246 |
String description = ((PackagesTableModel) pluginsTable.getModel()) |
|
247 |
.getDescriptionAt(row); |
|
248 |
if (description == null) { |
|
249 |
description = ""; |
|
250 |
} else { |
|
251 |
description = description + "<br>"; |
|
252 |
} |
|
271 |
PackageInfo pkginfo = ((PackagesTableModel) pluginsTable.getModel()) |
|
272 |
.getPackageInfoAt(row); |
|
253 | 273 |
|
254 |
String depends = ""; |
|
255 |
Dependencies dependencies = ((PackagesTableModel) pluginsTable |
|
256 |
.getModel()).getPackageInfoAt(row).getDependencies(); |
|
257 |
if (dependencies != null && !dependencies.isEmpty()) { |
|
258 |
depends = "<li type='circle'>Dependencies: " |
|
259 |
+ dependencies.toString() + "</li>"; |
|
260 |
} |
|
274 |
HTMLCoder html = new HTMLCoder(); |
|
275 |
html.addTitle(pkginfo.getName()); |
|
276 |
html.addParagraph(pkginfo.getDescription()); |
|
277 |
html.addBeginList(); |
|
278 |
html.addListItem("code", pkginfo.getCode()); |
|
279 |
html.addListItem("Organization", pkginfo.getOwner()); |
|
280 |
html.addListItem("Organization URL", pkginfo.getOwnerURL()); |
|
281 |
html.addListItem("Sources", pkginfo.getSourcesURL()); |
|
282 |
html.addListItem("Dependencies", pkginfo.getDependencies()); |
|
283 |
html.addListItem("Categories", pkginfo.getCategoriesAsString()); |
|
284 |
html.addListItem("Official", pkginfo.isOfficial()); |
|
285 |
html.addListItem("Signed", pkginfo.isSigned()); |
|
286 |
html.addEndList(); |
|
261 | 287 |
|
262 |
String categories = ((PackagesTableModel) pluginsTable.getModel()) |
|
263 |
.getPackageInfoAt(row).getCategoriesAsString(); |
|
264 |
if (categories == null || categories.equals("")) { |
|
265 |
categories = ""; |
|
266 |
} else { |
|
267 |
categories = "<li type='circle'>Categories: " + categories |
|
268 |
+ "</li>"; |
|
269 |
} |
|
288 |
descriptionTextEditor.setText(html.toString()); |
|
270 | 289 |
|
271 |
// sets the html format |
|
272 |
String descriptionTextHtml = "<b>" + name + "</b>" |
|
273 |
+ "<br><font size='-1'>" + description |
|
274 |
+ "<br></font><hr /><font size='-1'>" + code + owner |
|
275 |
+ ownerUrlStr + sources + depends + categories + "</font>"; |
|
290 |
// get the view area to the top-left corner |
|
291 |
descriptionTextEditor.setCaretPosition(0); |
|
276 | 292 |
|
277 |
descriptionTextEditor.setText(descriptionTextHtml); |
|
278 |
|
|
279 |
// get the view area to the top-left corner |
|
280 |
descriptionTextEditor.setCaretPosition(0); |
|
281 |
|
|
282 |
} |
|
283 | 293 |
} |
284 | 294 |
|
285 | 295 |
public void setFilter(PackageFilter filter) { |
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/panel/filters/AllFilter.java | ||
---|---|---|
1 |
package org.gvsig.installer.swing.impl.execution.panel.filters; |
|
2 |
|
|
3 |
import org.gvsig.installer.lib.api.PackageInfo; |
|
4 |
import org.gvsig.installer.swing.api.SwingInstallerLocator; |
|
5 |
import org.gvsig.installer.swing.api.SwingInstallerManager; |
|
6 |
|
|
7 |
public class AllFilter implements PackageFilter { |
|
8 |
|
|
9 |
public AllFilter() { |
|
10 |
|
|
11 |
} |
|
12 |
|
|
13 |
public String toString() { |
|
14 |
SwingInstallerManager manager = SwingInstallerLocator.getSwingInstallerManager(); |
|
15 |
return manager.getText("_All"); |
|
16 |
} |
|
17 |
|
|
18 |
public boolean match(PackageInfo pkg) { |
|
19 |
return true; |
|
20 |
} |
|
21 |
|
|
22 |
} |
|
0 | 23 |
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/panel/PackagePropertiesFilterPanel.java | ||
---|---|---|
40 | 40 |
import org.gvsig.installer.lib.api.execution.InstallPackageService; |
41 | 41 |
import org.gvsig.installer.swing.api.SwingInstallerLocator; |
42 | 42 |
import org.gvsig.installer.swing.impl.DefaultSwingInstallerManager; |
43 |
import org.gvsig.installer.swing.impl.execution.panel.filters.AllFilter; |
|
43 | 44 |
import org.gvsig.installer.swing.impl.execution.panel.filters.CategoryFilter; |
44 | 45 |
import org.gvsig.installer.swing.impl.execution.panel.filters.PackageFilter; |
45 | 46 |
import org.gvsig.installer.swing.impl.execution.panel.filters.TypeFilter; |
... | ... | |
62 | 63 |
|
63 | 64 |
private JScrollPane filterScrollPane; |
64 | 65 |
private JList jList; |
65 |
private PropertiesFilter optionFilter = null; |
|
66 |
// private PropertiesFilter optionFilter = null;
|
|
66 | 67 |
private DefaultListModel model = null; |
67 | 68 |
|
68 | 69 |
private DefaultSwingInstallerManager manager; |
... | ... | |
128 | 129 |
|
129 | 130 |
public void resetPanel() { |
130 | 131 |
model.removeAllElements(); |
131 |
optionFilter = null; |
|
132 |
// optionFilter = null;
|
|
132 | 133 |
PackageFilter filter = null; |
133 | 134 |
packagesTablePanel.setFilter(filter); |
134 | 135 |
} |
... | ... | |
139 | 140 |
.getSelectPackagesPanel().getModel().getInstallPackageService(); |
140 | 141 |
|
141 | 142 |
if ("categories".equals(e.getActionCommand())) { |
142 |
this.optionFilter = PropertiesFilter.CATEGORIES; |
|
143 |
// this.optionFilter = PropertiesFilter.CATEGORIES;
|
|
143 | 144 |
model.removeAllElements(); |
145 |
packagesTablePanel.resetPanel(); |
|
144 | 146 |
|
145 | 147 |
List<String> categories = service.getCategories(); |
146 | 148 |
|
149 |
model.add(0,new AllFilter()); |
|
147 | 150 |
if (categories != null) { |
148 |
String[] items = categories.toArray((new String[0])); |
|
149 |
for (int i = 0; i < items.length; i++) { |
|
150 |
model.add(i, items[i]); |
|
151 |
for (int i = 0; i < categories.size(); i++) { |
|
152 |
model.add(i+1, new CategoryFilter(categories.get(i))); |
|
151 | 153 |
} |
152 | 154 |
} |
153 |
|
|
155 |
|
|
154 | 156 |
} else { |
155 | 157 |
if ("types".equals(e.getActionCommand())) { |
156 |
this.optionFilter = PropertiesFilter.TYPES; |
|
158 |
// this.optionFilter = PropertiesFilter.TYPES;
|
|
157 | 159 |
model.removeAllElements(); |
160 |
packagesTablePanel.resetPanel(); |
|
158 | 161 |
|
159 | 162 |
List<String> types = service.getTypes(); |
160 | 163 |
|
164 |
model.add(0,new AllFilter()); |
|
161 | 165 |
if (types != null) { |
162 |
String[] items = types.toArray((new String[0])); |
|
163 |
for (int i = 0; i < items.length; i++) { |
|
164 |
model.add(i, items[i]); |
|
166 |
for (int i = 0; i < types.size(); i++) { |
|
167 |
model.add(i+1, new TypeFilter(types.get(i))); |
|
165 | 168 |
} |
166 | 169 |
} |
167 | 170 |
} |
... | ... | |
174 | 177 |
int i = jList.getSelectedIndex(); |
175 | 178 |
if (i >= 0) { |
176 | 179 |
ListModel listModel = jList.getModel(); |
177 |
String element = listModel.getElementAt(i).toString(); |
|
180 |
PackageFilter filter = (PackageFilter) listModel.getElementAt(i); |
|
181 |
packagesTablePanel.setFilter(filter); |
|
182 |
|
|
183 |
// |
|
184 |
// // update packets list to filter |
|
185 |
// if (optionFilter == PropertiesFilter.TYPES) { |
|
186 |
// TypeFilter typeFilter = new TypeFilter(element); |
|
187 |
// packagesTablePanel.setFilter(typeFilter); |
|
188 |
// } else if (optionFilter == PropertiesFilter.CATEGORIES) { |
|
189 |
// CategoryFilter categoryFilter = new CategoryFilter(element); |
|
190 |
// packagesTablePanel.setFilter(categoryFilter); |
|
191 |
// } |
|
178 | 192 |
|
179 |
// update packets list to filter |
|
180 |
if (optionFilter == PropertiesFilter.TYPES) { |
|
181 |
TypeFilter typeFilter = new TypeFilter(element); |
|
182 |
packagesTablePanel.setFilter(typeFilter); |
|
183 |
} else if (optionFilter == PropertiesFilter.CATEGORIES) { |
|
184 |
CategoryFilter categoryFilter = new CategoryFilter(element); |
|
185 |
packagesTablePanel.setFilter(categoryFilter); |
|
186 |
} |
|
187 |
|
|
188 | 193 |
} |
189 | 194 |
} |
190 | 195 |
|
Also available in: Unified diff