Revision 37893

View differences:

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