Révision 2413
tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/ChartsEnginesManager.java (revision 2413) | ||
---|---|---|
7 | 7 |
|
8 | 8 |
import org.apache.commons.lang.ArrayUtils; |
9 | 9 |
import org.eclipse.core.runtime.IProgressMonitor; |
10 |
import org.eclipse.osgi.util.NLS; |
|
10 | 11 |
import org.txm.Toolbox; |
11 | 12 |
import org.txm.chartsengine.core.preferences.ChartsEnginePreferences; |
12 | 13 |
import org.txm.core.engines.EngineType; |
... | ... | |
21 | 22 |
* |
22 | 23 |
*/ |
23 | 24 |
public class ChartsEnginesManager extends EnginesManager<ChartsEngine> { |
24 |
|
|
25 |
|
|
25 | 26 |
@Override |
26 | 27 |
public boolean fetchEngines() { |
27 | 28 |
return this.fetchEngines(ChartsEngine.EXTENSION_POINT_ID); |
28 | 29 |
} |
29 |
|
|
30 |
|
|
30 | 31 |
@Override |
31 | 32 |
public boolean startEngines(IProgressMonitor monitor) { |
32 | 33 |
|
33 |
// FIXME: temporary solution to not break the charts engines but later need to stop to use
|
|
34 |
// FIXME: temporary solution to not break the charts engines but later need to stop to use |
|
34 | 35 |
// ChartsEngine.chartsEngines, ChartsEngine.currentChartsEngineIndex, getCurrent() etc. |
35 | 36 |
// and directly manage that in the Manager |
36 |
ChartsEngine.chartsEngines = new ArrayList<ChartsEngine>();
|
|
37 |
// ChartsEngine.currentChartsEngineIndex = 0;
|
|
38 |
// |
|
39 |
|
|
37 |
ChartsEngine.chartsEngines = new ArrayList<>(); |
|
38 |
// ChartsEngine.currentChartsEngineIndex = 0;
|
|
39 |
//
|
|
40 |
|
|
40 | 41 |
for (ChartsEngine engine : this.values()) { |
41 | 42 |
ChartsEngine.chartsEngines.add(engine); |
42 | 43 |
} |
43 |
|
|
44 |
|
|
44 | 45 |
// add the engines sorted by order defined in preferences |
45 | 46 |
this.sortEngines(); |
46 | 47 |
|
47 | 48 |
|
48 |
// String[] orderedEnginesNames = ((ChartsEnginePreferences) ChartsEnginePreferences.getInstance()).getEnginesOrder();
|
|
49 |
// ChartsEngine[] engines = new ChartsEngine[this.size()];
|
|
50 |
//
|
|
51 |
// for (ChartsEngine engine : this.values()) {
|
|
52 |
// //ChartsEngine.chartsEngines.add(engine);
|
|
53 |
// engines[ArrayUtils.indexOf(orderedEnginesNames, engine.getName())] = engine;
|
|
54 |
//
|
|
55 |
// }
|
|
56 |
// for (int i = 0; i < engines.length; i++) {
|
|
57 |
// ChartsEngine.chartsEngines.add(engines[i]);
|
|
58 |
// }
|
|
49 |
// String[] orderedEnginesNames = ((ChartsEnginePreferences) ChartsEnginePreferences.getInstance()).getEnginesOrder();
|
|
50 |
// ChartsEngine[] engines = new ChartsEngine[this.size()];
|
|
51 |
//
|
|
52 |
// for (ChartsEngine engine : this.values()) {
|
|
53 |
// //ChartsEngine.chartsEngines.add(engine);
|
|
54 |
// engines[ArrayUtils.indexOf(orderedEnginesNames, engine.getName())] = engine;
|
|
55 |
//
|
|
56 |
// }
|
|
57 |
// for (int i = 0; i < engines.length; i++) {
|
|
58 |
// ChartsEngine.chartsEngines.add(engines[i]);
|
|
59 |
// }
|
|
59 | 60 |
|
60 | 61 |
|
61 |
//ChartsEngine.setCurrrentChartsEngine(this.getEngine(ChartsEnginePreferences.getInstance().getString(ChartsEnginePreferences.CURRENT_NAME))); |
|
62 |
// ChartsEngine.setCurrrentChartsEngine(this.getEngine(ChartsEnginePreferences.getInstance().getString(ChartsEnginePreferences.CURRENT_NAME)));
|
|
62 | 63 |
|
63 | 64 |
this.setCurrentEngine(ChartsEnginePreferences.getInstance().getString(ChartsEnginePreferences.CURRENT_NAME)); |
64 |
|
|
65 |
|
|
66 | 65 |
|
67 |
//TXMPreferences.alternativeNodesQualifiers.add(ChartsEnginePreferences.getInstance().getPreferencesNodeQualifier()); |
|
68 |
|
|
69 |
|
|
66 |
|
|
67 |
|
|
68 |
// TXMPreferences.alternativeNodesQualifiers.add(ChartsEnginePreferences.getInstance().getPreferencesNodeQualifier()); |
|
69 |
|
|
70 |
|
|
70 | 71 |
return super.startEngines(monitor); |
71 | 72 |
} |
72 | 73 |
|
... | ... | |
78 | 79 |
String[] orderedEnginesNames = ((ChartsEnginePreferences) ChartsEnginePreferences.getInstance()).getEnginesOrder(); |
79 | 80 |
|
80 | 81 |
// existing preference |
81 |
if(orderedEnginesNames != null) {
|
|
82 |
if (orderedEnginesNames != null) {
|
|
82 | 83 |
ChartsEngine[] engines = new ChartsEngine[this.size()]; |
83 | 84 |
ChartsEngine.chartsEngines.clear(); |
84 | 85 |
|
85 | 86 |
for (ChartsEngine engine : this.values()) { |
86 |
//ChartsEngine.chartsEngines.add(engine); |
|
87 |
// ChartsEngine.chartsEngines.add(engine);
|
|
87 | 88 |
int index = ArrayUtils.indexOf(orderedEnginesNames, engine.getName()); |
88 | 89 |
if (index >= 0) { |
89 | 90 |
engines[index] = engine; |
90 |
} else { |
|
91 |
Log.warning("Chart engine='"+engine.getName()+"' not found in engines ordered list: "+Arrays.toString(orderedEnginesNames)); |
|
92 | 91 |
} |
92 |
else { |
|
93 |
Log.warning(NLS.bind("Chart engine {0} not found in engines ordered list: {1}.", engine.getName(), Arrays.toString(orderedEnginesNames))); |
|
94 |
} |
|
93 | 95 |
} |
94 | 96 |
for (int i = 0; i < engines.length; i++) { |
95 |
ChartsEngine.chartsEngines.add(engines[i]);
|
|
97 |
ChartsEngine.chartsEngines.add(engines[i]); |
|
96 | 98 |
} |
97 | 99 |
} |
98 | 100 |
// non existing preference |
99 |
else {
|
|
101 |
else {
|
|
100 | 102 |
ChartsEnginePreferences.getInstance().put(ChartsEnginePreferences.CHARTS_ENGINES_ORDER, this.createEnginesOrder()); |
101 | 103 |
} |
102 | 104 |
} |
... | ... | |
106 | 108 |
public ChartsEngine getCurrentEngine() { |
107 | 109 |
return this.currentEngine; |
108 | 110 |
// FIXME: SJ: test to retrieve the first engine of the map |
109 |
// return ChartsEngine.chartsEngines.get(0);
|
|
111 |
// return ChartsEngine.chartsEngines.get(0);
|
|
110 | 112 |
} |
111 |
|
|
113 |
|
|
112 | 114 |
@Override |
113 | 115 |
public void setCurrentEngine(ChartsEngine engine) { |
114 | 116 |
super.setCurrentEngine(engine); |
115 |
|
|
117 |
|
|
116 | 118 |
this.sortEngines(); |
117 |
//ChartsEngine.chartsEngines. |
|
119 |
// ChartsEngine.chartsEngines.
|
|
118 | 120 |
|
119 |
//String[] enginesNames = this.getEnginesOrder(); |
|
121 |
// String[] enginesNames = this.getEnginesOrder();
|
|
120 | 122 |
} |
121 | 123 |
|
122 | 124 |
/** |
... | ... | |
152 | 154 |
|
153 | 155 |
/** |
154 | 156 |
* Creates the charts engine order string with | separator from the specified engines list. |
157 |
* |
|
155 | 158 |
* @param chartsEngineNames |
156 | 159 |
* @return |
157 | 160 |
*/ |
... | ... | |
167 | 170 |
String[] engineNames = new String[this.size()]; |
168 | 171 |
int i = 0; |
169 | 172 |
for (Map.Entry<String, ChartsEngine> entry : this.entrySet()) { |
170 |
engineNames[i] = entry.getValue().getName();
|
|
173 |
engineNames[i] = entry.getValue().getName(); |
|
171 | 174 |
i++; |
172 | 175 |
} |
173 | 176 |
return engineNames; |
... | ... | |
178 | 181 |
* |
179 | 182 |
* @return the instance stored in the Toolbox |
180 | 183 |
*/ |
181 |
public static ChartsEnginesManager getInstance() {
|
|
184 |
public static ChartsEnginesManager getInstance() {
|
|
182 | 185 |
return (ChartsEnginesManager) Toolbox.getEngineManager(EngineType.CHARTS); |
183 | 186 |
} |
184 | 187 |
|
185 | 188 |
|
186 | 189 |
/** |
187 | 190 |
* Gets the entry names and values of the supported export formats of the specified charts engine. |
191 |
* |
|
188 | 192 |
* @param engine |
189 | 193 |
* @return the entry names and values of the supported export formats of the specified charts engine |
190 | 194 |
*/ |
191 |
public static String[][] getExportFormatsEntryNamesAndValues(ChartsEngine engine) {
|
|
192 |
ArrayList<String> supportedExportFormats = new ArrayList<String>();
|
|
195 |
public static String[][] getExportFormatsEntryNamesAndValues(ChartsEngine engine) {
|
|
196 |
ArrayList<String> supportedExportFormats = new ArrayList<>(); |
|
193 | 197 |
supportedExportFormats.addAll(engine.getSupportedOutputFileFormats()); |
194 | 198 |
|
195 | 199 |
// Sort the set |
196 |
TreeSet<String> formatsSet = new TreeSet <String>(supportedExportFormats);
|
|
200 |
TreeSet<String> formatsSet = new TreeSet<>(supportedExportFormats);
|
|
197 | 201 |
String[] formats = formatsSet.toArray(new String[formatsSet.size()]); |
198 | 202 |
|
199 | 203 |
String[][] exportFormats = new String[formats.length][2]; |
200 |
for(int j = 0; j < formats.length; j++) { |
|
204 |
for (int j = 0; j < formats.length; j++) {
|
|
201 | 205 |
exportFormats[j][0] = formats[j]; |
202 | 206 |
exportFormats[j][1] = formats[j]; |
203 | 207 |
} |
204 | 208 |
return exportFormats; |
205 | 209 |
} |
206 |
|
|
207 | 210 |
|
211 |
|
|
208 | 212 |
@Override |
209 | 213 |
public EngineType getEnginesType() { |
210 | 214 |
return EngineType.CHARTS; |
211 | 215 |
} |
212 |
|
|
216 |
|
|
213 | 217 |
} |
Formats disponibles : Unified diff