Révision 652
| tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/handlers/ExportChart.java (revision 652) | ||
|---|---|---|
| 98 | 98 |
// Select default chart export file format |
| 99 | 99 |
dialog.setFilterIndex(defaultChartFormatIndex); |
| 100 | 100 |
|
| 101 |
// FIXME: how to define a default name here from Object s ? We may need to add a getName() method in TXMResult and check that every results in TXM. |
|
| 102 |
// It could be useful for other purposes too |
|
| 103 |
// dialog.setFileName(ChartsEngine.cleanFileName(chartEditorPart.getPartName())); |
|
| 104 | 101 |
dialog.setOverwrite(true); |
| 105 | 102 |
|
| 106 | 103 |
if (LastOpened.getFile(ID) != null) {
|
| tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/handlers/ExportChartEditorView.java (revision 652) | ||
|---|---|---|
| 83 | 83 |
@Override |
| 84 | 84 |
public Object execute(ExecutionEvent event) throws ExecutionException {
|
| 85 | 85 |
|
| 86 |
final ChartEditor chartEditorPart = SWTChartsComponentsProvider.getActiveChartEditor(event);
|
|
| 86 |
final ChartEditor chartEditor = SWTChartsComponentsProvider.getActiveChartEditor(event); |
|
| 87 | 87 |
|
| 88 | 88 |
Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); |
| 89 | 89 |
final FileDialog dialog = new FileDialog(shell, SWT.SAVE); |
| ... | ... | |
| 103 | 103 |
dialog.setFilterExtensions(extensions); |
| 104 | 104 |
// Select default chart export file format |
| 105 | 105 |
dialog.setFilterIndex(defaultChartFormatIndex); |
| 106 |
dialog.setFileName(ChartsEngine.cleanFileName(chartEditorPart.getPartName())); |
|
| 106 |
|
|
| 107 |
dialog.setFileName(chartEditor.getResult().getValidFileName()); |
|
| 108 |
|
|
| 107 | 109 |
dialog.setOverwrite(true); |
| 108 | 110 |
|
| 109 | 111 |
|
| ... | ... | |
| 142 | 144 |
this.runInit(monitor); |
| 143 | 145 |
monitor.beginTask(RCPMessages.ExportResult_1, 100); |
| 144 | 146 |
|
| 145 |
String outputFormat = chartEditorPart.getSWTChartsComponentsProvider().getEditorSupportedExportFileFormats().get(dialog.getFilterIndex());
|
|
| 146 |
chartEditorPart.exportView(file, outputFormat);
|
|
| 147 |
String outputFormat = chartEditor.getSWTChartsComponentsProvider().getEditorSupportedExportFileFormats().get(dialog.getFilterIndex()); |
|
| 148 |
chartEditor.exportView(file, outputFormat); |
|
| 147 | 149 |
|
| 148 | 150 |
if(file.exists()) {
|
| 149 | 151 |
|
| tmp/org.txm.partition.core/src/org/txm/partition/core/chartsengine/r/RPartitionDimensionsBarChartCreator.java (revision 652) | ||
|---|---|---|
| 82 | 82 |
cmd += "barplot(" + ssizes + ", col=colors, names.arg=" + snames + //$NON-NLS-1$ //$NON-NLS-2$
|
| 83 | 83 |
", main=\"" + title + "\", horiz=F, las=2, ylab=\"" + ylab + "\");\n"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ |
| 84 | 84 |
|
| 85 |
if(result.getBooleanParameterValue(ChartsEnginePreferences.SHOW_GRID)) {
|
|
| 85 |
if(result.isGridVisible()) {
|
|
| 86 | 86 |
cmd += this.getChartsEngine().getGridPlotCmd(); |
| 87 | 87 |
} |
| 88 | 88 |
|
| tmp/org.txm.ca.core/src/org/txm/ca/core/preferences/CAPreferences.java (revision 652) | ||
|---|---|---|
| 80 | 80 |
|
| 81 | 81 |
// shared charts rendering preferences |
| 82 | 82 |
ChartsEnginePreferences.initializeChartsEngineSharedPreferences(preferences); |
| 83 |
|
|
| 84 |
// disable unavailable functionality |
|
| 85 |
TXMPreferences.setEmpty(PREFERENCES_NODE, ChartsEnginePreferences.RENDERING_COLORS_MODE); |
|
| 86 |
|
|
| 83 | 87 |
} |
| 84 | 88 |
|
| 85 | 89 |
} |
| tmp/org.txm.ca.core/src/org/txm/ca/core/chartsengine/r/RCAChartCreator.java (revision 652) | ||
|---|---|---|
| 8 | 8 |
import org.txm.ca.core.chartsengine.base.Utils; |
| 9 | 9 |
import org.txm.ca.core.functions.CA; |
| 10 | 10 |
import org.txm.ca.core.messages.CACoreMessages; |
| 11 |
import org.txm.ca.core.preferences.CAPreferences; |
|
| 12 | 11 |
import org.txm.ca.core.statsengine.r.functions.FactoMineRCA; |
| 13 | 12 |
import org.txm.chartsengine.core.results.ChartResult; |
| 14 | 13 |
import org.txm.chartsengine.r.core.RChartCreator; |
| ... | ... | |
| 118 | 117 |
return destFile; |
| 119 | 118 |
} |
| 120 | 119 |
|
| 121 |
@Override |
|
| 122 |
public Object createChart(ChartResult result) {
|
|
| 123 |
// TODO Auto-generated method stub |
|
| 124 |
return null; |
|
| 125 |
} |
|
| 126 | 120 |
|
| 121 |
|
|
| 127 | 122 |
@Override |
| 128 | 123 |
public File createChartFile(ChartResult result, File file) {
|
| 129 | 124 |
|
| 130 | 125 |
CA ca = (CA) result; |
| 131 |
|
|
| 132 |
// parameters |
|
| 133 |
boolean showIndividual = result.getBooleanParameterValue(CAPreferences.SHOW_INDIVIDUALS); |
|
| 134 |
boolean showVariables = result.getBooleanParameterValue(CAPreferences.SHOW_VARIABLES); |
|
| 135 |
|
|
| 136 | 126 |
|
| 137 | 127 |
// FactoMineR R package |
| 138 | 128 |
if(ca.useFactoMineR()) {
|
| 139 |
return this.createFactorialMapChart((FactoMineRCA) ca.getCA(), file, showIndividual, showVariables, ca.getFirstDimension(), ca.getSecondDimension(), Utils.createCAFactorialMapChartTitle(ca));
|
|
| 129 |
return this.createFactorialMapChart((FactoMineRCA) ca.getCA(), file, ca.isShowIndividuals(), ca.isShowVariables(), ca.getFirstDimension(), ca.getSecondDimension(), Utils.createCAFactorialMapChartTitle(ca));
|
|
| 140 | 130 |
} |
| 141 | 131 |
// CA R package |
| 142 | 132 |
else {
|
| 143 |
return this.createFactorialMapChart((org.txm.ca.core.statsengine.r.functions.CA) ca.getCA(), file, showIndividual, showVariables, ca.getFirstDimension(), ca.getSecondDimension());
|
|
| 133 |
return this.createFactorialMapChart((org.txm.ca.core.statsengine.r.functions.CA) ca.getCA(), file, ca.isShowIndividuals(), ca.isShowVariables(), ca.getFirstDimension(), ca.getSecondDimension());
|
|
| 144 | 134 |
} |
| 145 | 135 |
} |
| 146 | 136 |
|
| tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java (revision 652) | ||
|---|---|---|
| 153 | 153 |
if (parent.getLayout() instanceof GridLayout) {
|
| 154 | 154 |
this.parametersGroupsComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false)); |
| 155 | 155 |
} |
| 156 |
|
|
| 156 |
|
|
| 157 |
|
|
| 157 | 158 |
// computing parameters components |
| 158 | 159 |
boolean showComputingParameters = false; |
| 159 | 160 |
// only show the area if the result can not compute and is dirty |
| ... | ... | |
| 603 | 604 |
// FIXME: debug |
| 604 | 605 |
System.err.println("TXMEditor.refresh(): manually updating editor from result.");
|
| 605 | 606 |
this.updateEditorFromResult(update); // subclasses manual settings |
| 606 |
|
|
| 607 |
this.__updateEditorFromResult(update); |
|
| 608 | 607 |
} |
| 609 | 608 |
|
| 609 |
this.__updateEditorFromResult(update); // essentially for ChartEditor |
|
| 610 |
|
|
| 611 |
|
|
| 610 | 612 |
topToolBar.redraw(); |
| 611 | 613 |
CorporaView.refreshObject(this); |
| 612 | 614 |
TXMResultDebugView.refreshView(); |
| tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java (revision 652) | ||
|---|---|---|
| 37 | 37 |
// null when calling getChildren(), see if that's what we want |
| 38 | 38 |
public abstract class TXMResult implements Cloneable, IProgressMonitor {
|
| 39 | 39 |
|
| 40 |
|
|
| 41 |
public static final DateFormat ID_TIME_FORMAT = new SimpleDateFormat("YYYYMMDD");
|
|
| 42 |
public static final Pattern FILE_NAME_PATTERN = Pattern.compile("[^a-zA-Z0-9\\.-]+"); //$NON-NLS-1$
|
|
| 43 |
public static final String UNDERSCORE = "_"; |
|
| 44 |
|
|
| 45 |
|
|
| 40 | 46 |
/** |
| 41 | 47 |
* Unique ID of the object built with : class + date + number |
| 42 | 48 |
*/ |
| 43 | 49 |
protected String uniqueID; |
| 44 |
//protected String path; |
|
| 45 |
public static final DateFormat ID_TIME_FORMAT = new SimpleDateFormat("YYYYMMDD");
|
|
| 46 |
/** Editor can use this to test if the result need to be saved */ |
|
| 50 |
|
|
| 51 |
/** |
|
| 52 |
* Editor can use this to test if the result has been computed once. |
|
| 53 |
*/ |
|
| 47 | 54 |
protected boolean hasBeenComputedOnce = false; |
| 48 |
|
|
| 49 |
public static final Pattern fileNamePattern = Pattern.compile("[^a-zA-Z0-9\\.-]+"); //$NON-NLS-1$
|
|
| 50 |
public static final String UNDERSCORE = "_"; |
|
| 51 |
|
|
| 52 | 55 |
|
| 53 | 56 |
/** |
| 54 | 57 |
* The weight, essentially used for sorting purpose. |
| ... | ... | |
| 1125 | 1128 |
public abstract String getSimpleName(); |
| 1126 | 1129 |
|
| 1127 | 1130 |
/** |
| 1128 |
* Gets some details about how the result has been computed (eg. additional |
|
| 1129 |
* parameters, etc.). Shown in large UI area |
|
| 1131 |
* Gets some details about how the result has been computed (eg. additional parameters, etc.). Shown in large UI area. |
|
| 1130 | 1132 |
* |
| 1131 | 1133 |
* @return |
| 1132 | 1134 |
*/ |
| ... | ... | |
| 1158 | 1160 |
// FIXME: to discuss and/or to move in export layer |
| 1159 | 1161 |
public String getValidFileName() {
|
| 1160 | 1162 |
try {
|
| 1161 |
fileNamePattern.matcher(this.getName()).replaceAll(UNDERSCORE); //$NON-NLS-1$
|
|
| 1163 |
return FILE_NAME_PATTERN.matcher(this.getName()).replaceAll(UNDERSCORE); //$NON-NLS-1$
|
|
| 1162 | 1164 |
} catch (Exception e) {
|
| 1165 |
Log.printStackTrace(e); |
|
| 1163 | 1166 |
} |
| 1164 | 1167 |
return ""; |
| 1165 | 1168 |
} |
| ... | ... | |
| 1192 | 1195 |
return b.toString(); |
| 1193 | 1196 |
} |
| 1194 | 1197 |
|
| 1195 |
// @Override |
|
| 1196 |
// public String toString() {
|
|
| 1197 |
// StringBuilder b = new StringBuilder(super.toString()); |
|
| 1198 |
// b.append(": " + this.getName()); //$NON-NLS-1$
|
|
| 1199 |
// return b.toString(); |
|
| 1200 |
// } |
|
| 1201 |
|
|
| 1202 | 1198 |
/** |
| 1203 | 1199 |
* Gets the weight of the node. Essentially used for sorting purpose. |
| 1204 | 1200 |
* |
Formats disponibles : Unified diff