|
1 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
2 // All rights reserved. |
|
3 // This component and the accompanying materials are made available |
|
4 // under the terms of "Eclipse Public License v1.0" |
|
5 // which accompanies this distribution, and is available |
|
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
7 // |
|
8 // Initial Contributors: |
|
9 // Nokia Corporation - initial contribution. |
|
10 // |
|
11 // Contributors: |
|
12 // |
|
13 // Description: |
|
14 // ResourcesWidgetHelper |
|
15 // |
|
16 |
|
17 |
|
18 |
|
19 package com.symbian.smt.gui.smtwidgets.resources; |
|
20 |
|
21 import java.util.ArrayList; |
|
22 import java.util.HashMap; |
|
23 import java.util.Iterator; |
|
24 |
|
25 import org.eclipse.jface.viewers.ListViewer; |
|
26 import org.eclipse.jface.viewers.StructuredSelection; |
|
27 |
|
28 import com.symbian.smt.gui.Helper; |
|
29 import com.symbian.smt.gui.ResourcesEnums; |
|
30 |
|
31 /** |
|
32 * @author barbararosi-schwartz |
|
33 * |
|
34 */ |
|
35 public class ResourcesWidgetHelper { |
|
36 |
|
37 static boolean contains( |
|
38 java.util.List<CheckableResourceFilename> checkableFilenames, |
|
39 String filename) { |
|
40 if (checkableFilenames == null || filename == null) { |
|
41 throw new IllegalArgumentException("Arguments cannot be null."); |
|
42 } |
|
43 |
|
44 java.util.List<String> filenames = new ArrayList<String>(); |
|
45 |
|
46 for (CheckableResourceFilename checkableFilename : checkableFilenames) { |
|
47 filenames.add(checkableFilename.getFilename()); |
|
48 } |
|
49 |
|
50 return filenames.contains(filename); |
|
51 } |
|
52 |
|
53 static CheckableResourceFilename filename2checkableFilename( |
|
54 String name, |
|
55 ResourcesEnums resourceType, |
|
56 HashMap<ResourcesEnums, java.util.List<CheckableResourceFilename>> resourceFilesMap) { |
|
57 java.util.List<CheckableResourceFilename> checkableFilenames = resourceFilesMap |
|
58 .get(resourceType); |
|
59 |
|
60 if (checkableFilenames == null) { |
|
61 throw new IllegalArgumentException( |
|
62 "Could not find any elements of type [" + resourceType |
|
63 + "] in resourceFilesMap."); |
|
64 } |
|
65 |
|
66 CheckableResourceFilename checkableFilename = null; |
|
67 |
|
68 Iterator<CheckableResourceFilename> iter = checkableFilenames |
|
69 .iterator(); |
|
70 |
|
71 while (iter.hasNext()) { |
|
72 CheckableResourceFilename crf = iter.next(); |
|
73 |
|
74 if (crf.getFilename().equals(name)) { |
|
75 checkableFilename = crf; |
|
76 break; |
|
77 } |
|
78 |
|
79 } |
|
80 |
|
81 if (checkableFilename == null) { |
|
82 throw new IllegalArgumentException( |
|
83 "Could not find any file with name [" + name |
|
84 + "] in resourceFilesMap."); |
|
85 } |
|
86 |
|
87 return checkableFilename; |
|
88 } |
|
89 |
|
90 static java.util.List<CheckableResourceFilename> getCheckableResourceFilenames( |
|
91 ResourcesEnums resourceType, |
|
92 HashMap<ResourcesEnums, java.util.List<CheckableResourceFilename>> resourceFilesMap) { |
|
93 return resourceFilesMap.get(resourceType); |
|
94 } |
|
95 |
|
96 static String[] getCheckedFilenames( |
|
97 ResourcesEnums resourceType, |
|
98 HashMap<ResourcesEnums, java.util.List<CheckableResourceFilename>> resourceFilesMap) { |
|
99 java.util.List<CheckableResourceFilename> checkableFilenames = getCheckableResourceFilenames( |
|
100 resourceType, resourceFilesMap); |
|
101 java.util.List<String> checkedNames = new ArrayList<String>(); |
|
102 |
|
103 for (CheckableResourceFilename checkableFilename : checkableFilenames) { |
|
104 if (checkableFilename.isChecked()) { |
|
105 checkedNames.add(checkableFilename.getFilename()); |
|
106 } |
|
107 } |
|
108 |
|
109 return Helper.toArrayOfStrings(checkedNames); |
|
110 } |
|
111 |
|
112 static CheckableResourceFilename[] getCheckedResourceFilenames( |
|
113 ResourcesEnums resourceType, |
|
114 HashMap<ResourcesEnums, java.util.List<CheckableResourceFilename>> resourceFilesMap) { |
|
115 java.util.List<CheckableResourceFilename> checkableFilenames = getCheckableResourceFilenames( |
|
116 resourceType, resourceFilesMap); |
|
117 java.util.List<CheckableResourceFilename> checkedResourceFilenames = new ArrayList<CheckableResourceFilename>(); |
|
118 |
|
119 for (CheckableResourceFilename checkableFilename : checkableFilenames) { |
|
120 if (checkableFilename.isChecked()) { |
|
121 checkedResourceFilenames.add(checkableFilename); |
|
122 } |
|
123 } |
|
124 |
|
125 return toArrayOfCheckableResourceFilenames(checkedResourceFilenames); |
|
126 } |
|
127 |
|
128 static String[] getFilenames( |
|
129 ResourcesEnums resourceType, |
|
130 HashMap<ResourcesEnums, java.util.List<CheckableResourceFilename>> resourceFilesMap) { |
|
131 java.util.List<CheckableResourceFilename> checkableFilenames = resourceFilesMap |
|
132 .get(resourceType); |
|
133 String[] filenames = new String[checkableFilenames.size()]; |
|
134 int i = 0; |
|
135 |
|
136 for (CheckableResourceFilename checkableFilename : checkableFilenames) { |
|
137 filenames[i] = checkableFilename.getFilename(); |
|
138 i++; |
|
139 } |
|
140 |
|
141 return filenames; |
|
142 } |
|
143 |
|
144 static ResourcesEnums getSelectedResourceType(ListViewer resourceTypesViewer) { |
|
145 return (ResourcesEnums) ((StructuredSelection) resourceTypesViewer |
|
146 .getSelection()).getFirstElement(); |
|
147 } |
|
148 |
|
149 /** |
|
150 * Converts the List of CheckableResourceFilename objects into a |
|
151 * CheckableResourceFilename array. The opposite conversion is also provided |
|
152 * by this class with method |
|
153 * toListofCheckableResourceFilenames(CheckableResourceFilename []). |
|
154 * |
|
155 * @param list |
|
156 * the java.util.List of CheckableResourceFilename objects to be |
|
157 * converted (may be empty but cannot be null) |
|
158 * @return the corresponding CheckableResourceFilename array or an empty |
|
159 * array if list is empty. |
|
160 * @see #toListofCheckableResourceFilenames(CheckableResourceFilename []) |
|
161 */ |
|
162 static final CheckableResourceFilename[] toArrayOfCheckableResourceFilenames( |
|
163 java.util.List<CheckableResourceFilename> list) { |
|
164 if (list == null) { |
|
165 throw new IllegalArgumentException("Parameter list cannot be null."); |
|
166 } |
|
167 |
|
168 CheckableResourceFilename[] array = new CheckableResourceFilename[list |
|
169 .size()]; |
|
170 |
|
171 return list.toArray(array); |
|
172 } |
|
173 |
|
174 } |