1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 /***
19 * <p>Title: WSMO Studio</p>
20 * <p>Description: Semantic Web Service Editor</p>
21 * <p>Copyright: Copyright (c) 2004-2006</p>
22 * <p>Company: OntoText Lab. / SIRMA </p>
23 */
24
25 package org.wsmostudio.ui.views.navigator;
26
27 import java.util.*;
28
29 /***
30 * An extension class of <code>WSMOContentProvider</code> dedicated to the
31 * WSMO Navigator view. It collaborates with the ContentExtensionManager, responsible
32 * for extension point <code>org.wsmostudio.ui.navigator_content</code>.
33 *
34 * @author not attributable
35 * @version $Revision: 1.2 $ $Date: 2006/01/09 12:51:14 $
36 */
37
38 public class NavigatorContentProvider extends WSMOContentProvider {
39
40 private ContentExtensionManager extManager;
41
42 NavigatorContentProvider(ContentExtensionManager extManager) {
43 super(WSMOContentProvider.NO_FILTER);
44 this.extManager = extManager;
45 }
46
47 public Object[] getChildren(Object parentElement) {
48 Object[] allChildren = extManager.getChildrenFor(parentElement, this);
49 if (allChildren != null) {
50 return applyFilters(allChildren);
51 }
52 return null;
53 }
54
55 public boolean hasChildren(Object element) {
56 return extManager.hasChildrenFor(element, this);
57 }
58
59
60 public Object[] getDefaultChildren(Object parentElement) {
61 return super.getChildren(parentElement);
62 }
63
64 public boolean hasDefaultChildren(Object parentElement) {
65 return super.hasChildren(parentElement);
66 }
67
68 private Object[] applyFilters(Object[] all) {
69 List<Object> result = new LinkedList<Object>();
70 for(int i = 0; i < all.length; i++) {
71 if (false == extManager.isFiltered(all[i])) {
72 result.add(all[i]);
73 }
74 }
75 if (result.size() == 0) {
76 return null;
77 }
78 return result.toArray();
79 }
80 }
81
82
83
84
85
86
87
88
89
90