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