Revision 2324

tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/ChartsEnginesManager.java (revision 2324)
1 1
package org.txm.chartsengine.core;
2 2

  
3 3
import java.util.ArrayList;
4
import java.util.Arrays;
4 5
import java.util.Map;
5 6
import java.util.TreeSet;
6 7

  
......
12 13
import org.txm.core.engines.EnginesManager;
13 14
import org.txm.utils.logger.Log;
14 15

  
15
import cern.colt.Arrays;
16

  
17 16
/**
18 17
 * Charts engines manager.
19 18
 * 
......
36 35
		// and directly manage that in the Manager
37 36
		ChartsEngine.chartsEngines = new ArrayList<ChartsEngine>();
38 37
//		ChartsEngine.currentChartsEngineIndex = 0;
38
//
39 39

  
40

  
41 40
		for (ChartsEngine engine : this.values()) {
42 41
			ChartsEngine.chartsEngines.add(engine);
43 42
		}
......
45 44
		// add the engines sorted by order defined in preferences
46 45
		this.sortEngines();
47 46
		
48
			
47
		
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
//		}
59
		
60
		
49 61
		//ChartsEngine.setCurrrentChartsEngine(this.getEngine(ChartsEnginePreferences.getInstance().getString(ChartsEnginePreferences.CURRENT_NAME)));
50 62
		
51 63
		this.setCurrentEngine(ChartsEnginePreferences.getInstance().getString(ChartsEnginePreferences.CURRENT_NAME));
52 64

  
65

  
53 66
		
54 67
		//TXMPreferences.alternativeNodesQualifiers.add(ChartsEnginePreferences.getInstance().getPreferencesNodeQualifier());
55 68

  
......
71 84
			
72 85
			for (ChartsEngine engine : this.values()) {
73 86
				//ChartsEngine.chartsEngines.add(engine);
74
				int idx = ArrayUtils.indexOf(orderedEnginesNames, engine.getName());
75
				if (idx >= 0) {
76
					engines[idx] = engine;
87
				int index = ArrayUtils.indexOf(orderedEnginesNames, engine.getName());
88
				if (index >= 0) {
89
					engines[index] = engine;
77 90
				} else {
78 91
					Log.warning("Chart engine='"+engine.getName()+"' not found in engines ordered list: "+Arrays.toString(orderedEnginesNames));
79 92
				}
......
108 121
	
109 122
	/**
110 123
	 * Gets an installed charts engine that supports the specified output format.
124
	 * Looking for display formats and file formats support.
125
	 * 
111 126
	 * @param outputFormat
112
	 * @return
127
	 * @return the first suitable ChartsEngine if exists otherwise null
113 128
	 */
114
	public ChartsEngine getChartsEngine(String outputFormat)	{
129
	public ChartsEngine getChartsEngine(String outputFormat) {
130
		
115 131
		ChartsEngine chartsEngine = null;
116
		for(int i = 0; i < ChartsEngine.chartsEngines.size(); i++) {
117
			ChartsEngine ce = ChartsEngine.chartsEngines.get(i);
118
			if (ce == null) continue;
132
		for (int i = 0; i < ChartsEngine.chartsEngines.size(); i++) {
119 133
			
120
			ArrayList<String> formats = ce.getSupportedOutputDisplayFormats();
121
			if(formats != null && formats.contains(outputFormat) || formats.contains(outputFormat))	{
122
				chartsEngine = ce;
134
			ChartsEngine tmpChartsEngine = ChartsEngine.chartsEngines.get(i);
135
			
136
			// checking display formats
137
			ArrayList<String> displayFormats = tmpChartsEngine.getSupportedOutputDisplayFormats();
138
			if (displayFormats != null && displayFormats.contains(outputFormat)) {
139
				chartsEngine = tmpChartsEngine;
123 140
				break;
124 141
			}
142
			
143
			// checking file formats
144
			ArrayList<String> fileFormats = tmpChartsEngine.getSupportedOutputFileFormats();
145
			if (fileFormats != null && fileFormats.contains(outputFormat)) {
146
				chartsEngine = tmpChartsEngine;
147
				break;
148
			}
125 149
		}
126 150
		return chartsEngine;
127 151
	}

Also available in: Unified diff