Revision 175

tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/ChartsEngine.java (revision 175)
122 122
	 */
123 123
	protected static int currentChartsEngineIndex;
124 124
	
125
	
126
	protected File workDirectory;
127
	/**
128
	 * Creates a charts engine.
129
	 */
130
	// FIXME : useless ?
131
//	protected ChartsEngine() {
132
//		this("abstract_charts_engine", "Abstract Charts Engine"); //$NON-NLS-1$
133
//	}
134 125

  
135
//	/**
136
//	 * Creates a charts engine with the specified name, description and output format.
137
//	 * @param name
138
//	 * @param description
139
//	 * @param outputFormat
140
//	 */
141
//	protected ChartsEngine(String name, String description, String outputFormat) {
142
//		this(name, description, outputFormat);
143
//		Log.warning("Starting Charts Engine: " + this);
144
//	}
145

  
146

  
147 126
	/**
148 127
	 * Creates a charts engine with the specified name, description and output format.
149 128
	 * @param name
......
155 134
		this.name = name;
156 135
		this.description = description;
157 136
		this.outputFormat = outputFormat;
158
		this.workDirectory = new File(BundleUtils.getBundleLocation("org.txm.chartengine.core"));
159
		//this.setOutputFormat(outputFormat);
160 137
		Log.warning("Starting Charts Engine: " + this);
161 138
	}
162 139

  
......
168 145
		this.chartCreators = new HashMap<Class, HashMap<String,ChartCreator>>();
169 146
	}
170 147
	
148
	
171 149
	/**
172 150
	 * Gets a chart creator for the specified result data type and chart type.
173 151
	 * @param resultDataType
......
178 156
		ChartCreator chartCreator = null;
179 157
		HashMap<String, ChartCreator> map = this.chartCreators.get(resultDataType);
180 158
		if(map != null)	{
181
			if(chartType == null)	{
182
				chartType = resultDataType.getName();
183
			}
184 159
			chartCreator = map.get(chartType);
185 160
		}
186 161
		
......
196 171
	 * @return A chart creator if it exists otherwise <code>null</code>
197 172
	 */
198 173
	public ChartCreator getChartCreator(Class resultDataType)	{
199
		return this.getChartCreator(resultDataType, resultDataType.getName());
174
		return this.getChartCreator(resultDataType, null);
200 175
	}
201 176

  
202 177
	/**
......
207 182
	 */
208 183
	public void addChartCreator(Class resultDataType, ChartCreator chartCreator, String chartType)	{
209 184
		
210
		if(chartType == null)	{
211
			chartType = resultDataType.getName();
212
		}
213
		
214 185
		if(!this.chartCreators.containsKey(resultDataType))	{
215 186
			HashMap<String, ChartCreator> m = new HashMap<String, ChartCreator>();
216 187
			m.put(chartType, chartCreator);
......
223 194
		
224 195
		chartCreator.setChartsEngine(this);		
225 196

  
226
		Log.warning(this.name + ": Chart creator " + chartCreator.getClass().getSimpleName() + " added for result: " + resultDataType + " and chart type: " + chartType);
197
		String log = this.name + ": Chart creator " + chartCreator.getClass().getSimpleName() + " added for result data type: " + resultDataType;
198
		
199
		if(chartType != null)	{
200
			log += " (chart type: " + chartType + ")";
201
		}
202
		
203
		log +=".";
204
		
205
		Log.warning(log);
206
		
227 207
	}
228 208
	
229 209

  
......
333 313
		return ChartsEngine.chartsEngines;
334 314
	}
335 315
	
336
	
337
	// FIXME: old method managing only one charts engine
338
	// FIXME: this method should create all possible charts engines from currently installed extensions and store them in a list then define a current charts engine.
339
	// It would permit to call some ChartCreator of another chart engine than the current if a chart creator for a specified result doesn't exist
340
	// for a specified type of chart
341
	// SWTChartsComponentsProvider should do the same thing, then in createChartEditor go through all the Providers? or through all the charts engine that match the provider input format?
342
//	public static ChartsEngine createChartsEngines(String name)	{
343
//		
344
//		ChartsEngine chartsEngine = null;
345
//		
346
//		String extensionPointId = "org.txm.tbx.chartsengine"; //$NON-NLS-1$
347
//		IConfigurationElement[] contributions = Platform.getExtensionRegistry().getConfigurationElementsFor(extensionPointId);
348
//		IConfigurationElement chartsEngineExtension = null;
349
//
350
//		Log.warning("Installed Chart Engine extensions: ");
351
//		
352
//		for(int i = 0; i < contributions.length; i++) {
353
//			Log.warning(contributions[i].getAttribute("name"));   //$NON-NLS-1$
354
//			if(contributions[i].getAttribute("name").equals(name))	{ //$NON-NLS-1$
355
//				chartsEngineExtension = contributions[i];
356
//	            //break;
357
//			}
358
//		}
359
//		if(chartsEngineExtension != null) {
360
//			try {
361
//				chartsEngine = (ChartsEngine)chartsEngineExtension.createExecutableExtension("class"); //$NON-NLS-1$
362
//			}
363
//			catch(CoreException e) {
364
//				// TODO Auto-generated catch block
365
//				e.printStackTrace();
366
//			} 
367
//		}
368
//		
369
//		chartsEngine.registerChartCreatorExtensions();
370
//		
371
//		Log.warning("Charts Engine initialized.");
372
//		
373
//		return chartsEngine;
374
//	}
375
//	
376 316

  
377 317
	/**
378 318
	 * Populates the chart creators from loaded extensions according to the specified chars engine name.
......
417 357
	public File createTmpFile(String prefix)	{
418 358
		File file = null;
419 359
		try {
420
			File resultsDir = new File(workDirectory, "results"); //$NON-NLS-1$
360
			File resultsDir = new File(BundleUtils.getBundleLocation("org.txm.chartengine.core"), "results"); //$NON-NLS-1$
421 361
			resultsDir.mkdirs();
422 362
			file = File.createTempFile(prefix, "." + this.outputFormat, resultsDir);
423 363
		}

Also available in: Unified diff