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