Révision 1740
| tmp/org.txm.chartsengine.r.core/src/org/txm/chartsengine/r/core/RChartCreator.java (revision 1740) | ||
|---|---|---|
| 29 | 29 |
public void updateChart(ChartResult result) {
|
| 30 | 30 |
|
| 31 | 31 |
Object chart = result.getChart(); |
| 32 |
// creates a new chart using a new file |
|
| 32 |
|
|
| 33 |
// creates a new chart but using the same file |
|
| 33 | 34 |
// FIXME: SJ to MD: this case should never happen, if it happens then a bug must fixed at another location |
| 34 |
// TODO: find the bug then just keep: this.createChartFile(result); |
|
| 35 |
// TODO: find the bug then just keep: this.createChartFile(result, (File)chart);
|
|
| 35 | 36 |
if (chart != null && chart instanceof File) {
|
| 36 | 37 |
this.createChartFile(result, (File)chart); |
| 37 | 38 |
} |
| 38 |
// creates a new chart but using the same file
|
|
| 39 |
// creates a new chart using a new file
|
|
| 39 | 40 |
else {
|
| 40 | 41 |
this.createChartFile(result); |
| 41 | 42 |
} |
| 42 |
|
|
| 43 |
// FIXME: using new file |
|
| 44 |
//this.createChartFile(resultData, preferencesNode); |
|
| 45 |
|
|
| 46 | 43 |
} |
| 47 | 44 |
|
| 48 | 45 |
@Override |
| tmp/org.txm.chartsengine.r.core/src/org/txm/chartsengine/r/core/RChartsEngine.java (revision 1740) | ||
|---|---|---|
| 5 | 5 |
import org.eclipse.core.runtime.IProgressMonitor; |
| 6 | 6 |
import org.rosuda.REngine.REXPMismatchException; |
| 7 | 7 |
import org.txm.chartsengine.core.ChartsEngine; |
| 8 |
import org.txm.chartsengine.core.results.ChartResult; |
|
| 8 | 9 |
import org.txm.chartsengine.r.core.preferences.RChartsEnginePreferences; |
| 9 |
import org.txm.core.preferences.TXMPreferences; |
|
| 10 | 10 |
import org.txm.stat.engine.r.RDevice; |
| 11 | 11 |
import org.txm.stat.engine.r.RWorkspaceRenderer; |
| 12 | 12 |
import org.txm.statsengine.core.StatException; |
| ... | ... | |
| 77 | 77 |
/** |
| 78 | 78 |
* Plots the specified expression using R workspace instance and current charts engine output format. |
| 79 | 79 |
* @param file |
| 80 |
* @param expression |
|
| 81 |
* @param device |
|
| 80 |
* @param cmd |
|
| 82 | 81 |
*/ |
| 83 |
public void plot(File file, String expression) {
|
|
| 82 |
public void plot(File file, String cmd) {
|
|
| 83 |
this.plot(file, cmd, null, null, null); |
|
| 84 |
} |
|
| 85 |
|
|
| 86 |
/** |
|
| 87 |
* Plots the specified expression using R workspace instance and current charts engine output format. |
|
| 88 |
* @param file |
|
| 89 |
* @param cmd |
|
| 90 |
* @param result |
|
| 91 |
*/ |
|
| 92 |
public void plot(File file, String cmd, ChartResult result, String title, String subtitle) {
|
|
| 84 | 93 |
try {
|
| 85 |
RWorkspaceRenderer.getInstance().plot(file, expression, this.rDevice); |
|
| 94 |
if(result != null) {
|
|
| 95 |
// draw grid |
|
| 96 |
if(result.isGridVisible()) {
|
|
| 97 |
cmd += this.getGridPlotCmd(); |
|
| 98 |
} |
|
| 99 |
// draw title |
|
| 100 |
if(result.isTitleVisible()) {
|
|
| 101 |
cmd += this.getTitlePlotCmd(title); |
|
| 102 |
cmd += this.getSubtitlePlotCmd(subtitle); |
|
| 103 |
} |
|
| 104 |
} |
|
| 105 |
RWorkspaceRenderer.getInstance().plot(file, cmd, this.rDevice); |
|
| 86 | 106 |
} |
| 87 | 107 |
catch(RWorkspaceException e) {
|
| 88 | 108 |
// TODO Auto-generated catch block |
| ... | ... | |
| 98 | 118 |
} |
| 99 | 119 |
} |
| 100 | 120 |
|
| 121 |
|
|
| 101 | 122 |
/** |
| 102 | 123 |
* Returns a string that represents the R command to draw a title. |
| 103 | 124 |
* @param title |
| tmp/org.txm.partition.core/src/org/txm/partition/core/messages/messages_fr.properties (revision 1740) | ||
|---|---|---|
| 1 |
#TXM messages generated by the PluginMessagesManager class |
|
| 2 |
#Tue Dec 18 10:24:08 CET 2018 |
|
| 3 |
cantCreateDimensionsPartitionChartFileChartsEngineColonP0=** Impossible de créer le fichier du graphique de dimensions de partition (moteur de graphiques {0})
|
|
| 4 |
dimensionsColonP0=Dimensions \: {0}
|
|
| 5 |
dimensionsOfTheP0PartitionInTheP1Corpus=Dimensions de la partition {0} dans le corpus {1}
|
|
| 6 |
numberOfWords=Nombre de mots |
|
| 7 |
part=Partie |
|
| 8 |
parts=Partie(s) |
|
| 9 |
RESULT_TYPE=Propriétés |
|
| 10 |
sortedBySize=trié par taille |
|
| 11 |
t=t |
|
| 1 |
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/) |
|
| 2 |
#TXM messages generated by the PluginMessagesManager class |
|
| 3 |
#Tue Dec 18 10:24:08 CET 2018 |
|
| 4 |
|
|
| 5 |
RESULT_TYPE = Propriétés |
|
| 6 |
|
|
| 7 |
cantCreateDimensionsPartitionChartFileChartsEngineColonP0 = ** Impossible de créer le fichier du graphique de dimensions de partition (moteur de graphiques {0})
|
|
| 8 |
|
|
| 9 |
dimensionsColonP0 = Dimensions : {0}
|
|
| 10 |
|
|
| 11 |
dimensionsOfTheP0PartitionInTheP1Corpus = Dimensions de la partition {0} dans le corpus {1}
|
|
| 12 |
|
|
| 13 |
numberOfWords = Nombre de mots |
|
| 14 |
|
|
| 15 |
part = Partie |
|
| 16 |
|
|
| 17 |
parts = Partie(s) |
|
| 18 |
|
|
| 19 |
sortedBySize = triées par taille |
|
| 20 |
|
|
| 21 |
t = t |
|
| tmp/org.txm.partition.core/src/org/txm/partition/core/chartsengine/base/Utils.java (revision 1740) | ||
|---|---|---|
| 22 | 22 |
* @param displayPartsCountInTitle display or not the parts count in chart title |
| 23 | 23 |
* @return the title string |
| 24 | 24 |
*/ |
| 25 |
public static String createPartitionDimensionsChartTitle(PartitionDimensions partitionDimensions, boolean sortPartsBySize, boolean displayPartsCountInTitle) {
|
|
| 26 |
|
|
| 27 |
String title = PartitionCoreMessages.bind(PartitionCoreMessages.dimensionsOfTheP0PartitionInTheP1Corpus, partitionDimensions.getParent().getSimpleName(), partitionDimensions.getCorpus().getSimpleName()); |
|
| 28 |
|
|
| 29 |
// FIXME |
|
| 30 |
// if(displayPartsCountInTitle) {
|
|
| 31 |
// title += "\n(" + partitionDimensions.getPartsCount() + " " + PartitionCoreMessages.parts + ")"; //$NON-NLS-1$ //$NON-NLS-3$
|
|
| 32 |
// } |
|
| 33 |
// |
|
| 34 |
// if(sortPartsBySize) {
|
|
| 35 |
// title += PartitionCoreMessages.sortedBySize; |
|
| 36 |
// } |
|
| 37 |
|
|
| 38 |
return title; |
|
| 25 |
public static String createPartitionDimensionsChartTitle(PartitionDimensions partitionDimensions) {
|
|
| 26 |
return PartitionCoreMessages.bind(PartitionCoreMessages.dimensionsOfTheP0PartitionInTheP1Corpus, partitionDimensions.getParent().getSimpleName(), partitionDimensions.getCorpus().getSimpleName()); |
|
| 39 | 27 |
} |
| 40 | 28 |
|
| 41 | 29 |
|
| tmp/org.txm.partition.core/src/org/txm/partition/core/chartsengine/jfreechart/JFCPartitionDimensionsBarChartCreator.java (revision 1740) | ||
|---|---|---|
| 23 | 23 |
import org.txm.searchengine.cqp.corpus.Part; |
| 24 | 24 |
|
| 25 | 25 |
/** |
| 26 |
* Creates a partition dimensions bar chart from the specified <code>Partition</code> result. |
|
| 26 |
* Creates a partition dimensions bar chart from the specified <code>PartitionDimensions</code> result.
|
|
| 27 | 27 |
* @author sjacquot |
| 28 | 28 |
* |
| 29 | 29 |
*/ |
| ... | ... | |
| 94 | 94 |
|
| 95 | 95 |
|
| 96 | 96 |
// Create chart title |
| 97 |
chart.setTitle(Utils.createPartitionDimensionsChartTitle(partitionDimensions, sortPartsBySize, displayPartsCountInTitle));
|
|
| 97 |
chart.setTitle(Utils.createPartitionDimensionsChartTitle(partitionDimensions)); |
|
| 98 | 98 |
|
| 99 | 99 |
|
| 100 | 100 |
|
| tmp/org.txm.partition.core/src/org/txm/partition/core/chartsengine/jfreechart/JFCPartitionDimensionsPieChartCreator.java (revision 1740) | ||
|---|---|---|
| 18 | 18 |
import org.txm.searchengine.cqp.corpus.Part; |
| 19 | 19 |
|
| 20 | 20 |
/** |
| 21 |
* Creates a partition dimensions pie chart from the specified <code>Partition</code> result. |
|
| 21 |
* Creates a partition dimensions pie chart from the specified <code>PartitionDimensions</code> result. |
|
| 22 |
* |
|
| 22 | 23 |
* @author sjacquot |
| 23 | 24 |
* |
| 24 | 25 |
*/ |
| 25 |
|
|
| 26 | 26 |
public class JFCPartitionDimensionsPieChartCreator extends JFCChartCreator {
|
| 27 | 27 |
|
| 28 | 28 |
|
| ... | ... | |
| 85 | 85 |
} |
| 86 | 86 |
|
| 87 | 87 |
// Create chart title |
| 88 |
chart.setTitle(Utils.createPartitionDimensionsChartTitle(partitionDimensions, sortPartsBySize, displayPartsCountInTitle));
|
|
| 88 |
chart.setTitle(Utils.createPartitionDimensionsChartTitle(partitionDimensions)); |
|
| 89 | 89 |
|
| 90 | 90 |
super.updateChart(result); |
| 91 | 91 |
|
| tmp/org.txm.partition.core/src/org/txm/partition/core/chartsengine/r/RPartitionDimensionsBarChartCreator.java (revision 1740) | ||
|---|---|---|
| 14 | 14 |
import org.txm.utils.logger.Log; |
| 15 | 15 |
|
| 16 | 16 |
/** |
| 17 |
* Creates a partition dimensions bar chart from the specified <code>Partition</code> result. |
|
| 17 |
* Creates a partition dimensions bar chart from the specified <code>PartitionDimensions</code> result.
|
|
| 18 | 18 |
* @author sjacquot |
| 19 | 19 |
* |
| 20 | 20 |
*/ |
| ... | ... | |
| 69 | 69 |
|
| 70 | 70 |
String ylab = PartitionCoreMessages.numberOfWords; |
| 71 | 71 |
|
| 72 |
String cmd = ""; |
|
| 73 |
|
|
| 74 | 72 |
// FIXME: margin |
| 75 | 73 |
//cmd += "par(mar=c(5.5,5,5,5));\n"; //$NON-NLS-1$ |
| 76 | 74 |
|
| ... | ... | |
| 79 | 77 |
|
| 80 | 78 |
|
| 81 | 79 |
|
| 82 |
// cmd += "barplot(" + ssizes + ", col=colors, names.arg=" + snames + //$NON-NLS-1$ //$NON-NLS-2$
|
|
| 80 |
// String cmd += "barplot(" + ssizes + ", col=colors, names.arg=" + snames + //$NON-NLS-1$ //$NON-NLS-2$
|
|
| 83 | 81 |
// ", main=\"" + title + "\", horiz=F, las=2, ylab=\"" + ylab + "\");\n"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ |
| 84 | 82 |
|
| 85 |
cmd += "barplot(" + ssizes + ", col=colors, names.arg=" + snames + //$NON-NLS-1$ //$NON-NLS-2$
|
|
| 83 |
String cmd = "barplot(" + ssizes + ", col=colors, names.arg=" + snames + //$NON-NLS-1$ //$NON-NLS-2$
|
|
| 86 | 84 |
", horiz=F, las=2, ylab=\"" + ylab + "\");\n"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ |
| 87 | 85 |
|
| 88 |
// draw grid |
|
| 89 |
if(result.isGridVisible()) {
|
|
| 90 |
cmd += this.getChartsEngine().getGridPlotCmd(); |
|
| 91 |
} |
|
| 92 | 86 |
|
| 93 |
// draw title |
|
| 94 |
if(result.isTitleVisible()) {
|
|
| 95 |
cmd += this.getChartsEngine().getTitlePlotCmd(Utils.createPartitionDimensionsChartTitle(partitionDimensions, sortPartsBySize, displayPartsCountInTitle)); |
|
| 96 |
} |
|
| 97 |
|
|
| 98 | 87 |
// plot the chart |
| 99 |
this.getChartsEngine().plot(file, cmd); |
|
| 88 |
this.getChartsEngine().plot(file, cmd, result, Utils.createPartitionDimensionsChartTitle(partitionDimensions), Utils.createPartitionDimensionsChartSubtitle(partitionDimensions, sortPartsBySize, displayPartsCountInTitle));
|
|
| 100 | 89 |
|
| 101 |
|
|
| 102 | 90 |
} |
| 103 | 91 |
catch(Exception e) {
|
| 104 | 92 |
Log.severe(PartitionCoreMessages.bind(PartitionCoreMessages.cantCreateDimensionsPartitionChartFileChartsEngineColonP0, RChartsEngine.DESCRIPTION) + e); |
| tmp/org.txm.partition.core/src/org/txm/partition/core/chartsengine/r/RPartitionDimensionsPieChartCreator.java (revision 1740) | ||
|---|---|---|
| 3 | 3 |
import java.io.File; |
| 4 | 4 |
import java.util.List; |
| 5 | 5 |
|
| 6 |
import org.txm.chartsengine.core.preferences.ChartsEnginePreferences; |
|
| 7 | 6 |
import org.txm.chartsengine.core.results.ChartResult; |
| 8 | 7 |
import org.txm.chartsengine.r.core.RChartCreator; |
| 9 | 8 |
import org.txm.chartsengine.r.core.RChartsEngine; |
| ... | ... | |
| 14 | 13 |
import org.txm.utils.logger.Log; |
| 15 | 14 |
|
| 16 | 15 |
/** |
| 17 |
* Creates a partition dimensions pie chart from the specified <code>Partition</code> result. |
|
| 16 |
* Creates a partition dimensions pie chart from the specified <code>PartitionDimensions</code> result. |
|
| 17 |
* |
|
| 18 | 18 |
* @author sjacquot |
| 19 | 19 |
* |
| 20 | 20 |
*/ |
| ... | ... | |
| 56 | 56 |
} |
| 57 | 57 |
ssizes += ")"; //$NON-NLS-1$ |
| 58 | 58 |
|
| 59 |
String title = ""; |
|
| 60 |
if(result.getBooleanParameterValue(ChartsEnginePreferences.SHOW_TITLE)) {
|
|
| 61 |
title = Utils.createPartitionDimensionsChartTitle(partitionDimensions, sortPartsBySize, displayPartsCountInTitle); |
|
| 62 |
} |
|
| 63 |
|
|
| 64 | 59 |
// colors |
| 65 | 60 |
//this.getChartsEngine().setColors(result.getRenderingColorsMode(), 1); |
| 66 | 61 |
// FIXME: one color by part |
| ... | ... | |
| 70 | 65 |
String ylab = PartitionCoreMessages.numberOfWords; |
| 71 | 66 |
|
| 72 | 67 |
String cmd = "pie(" + ssizes + ", col=colors, labels=" + snames + //$NON-NLS-1$ //$NON-NLS-2$
|
| 73 |
", main=\"" + title + "\", horiz=F, las=2, ylab=\"" + ylab + "\")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
|
| 68 |
", horiz=F, las=2, ylab=\"" + ylab + "\")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ |
|
| 74 | 69 |
|
| 75 |
|
|
| 76 |
((RChartsEngine) this.chartsEngine).plot(file, cmd); |
|
| 70 |
// plot the chart |
|
| 71 |
this.getChartsEngine().plot(file, cmd, result, Utils.createPartitionDimensionsChartTitle(partitionDimensions), Utils.createPartitionDimensionsChartSubtitle(partitionDimensions, sortPartsBySize, displayPartsCountInTitle)); |
|
| 72 |
|
|
| 77 | 73 |
} |
| 78 | 74 |
catch(Exception e) {
|
| 79 | 75 |
Log.severe(PartitionCoreMessages.bind(PartitionCoreMessages.cantCreateDimensionsPartitionChartFileChartsEngineColonP0, RChartsEngine.DESCRIPTION) + e); |
| tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/editors/ChartEditor.java (revision 1740) | ||
|---|---|---|
| 127 | 127 |
// Toolbar |
| 128 | 128 |
this.chartToolBar = new ChartEditorToolBar(this, this.getFirstLineComposite(), null, SWT.FLAT | SWT.RIGHT); |
| 129 | 129 |
this.getFirstLineComposite().getLayout().numColumns += 1; |
| 130 |
//this.chartToolBar.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_RED)); |
|
| 131 | 130 |
|
| 132 | 131 |
this.exportChartEditorViewButton = this.chartToolBar.getItemByContributionId("exportChartEditorView"); //$NON-NLS-1$
|
| 133 | 132 |
this.copyChartViewToClipboardButton = this.chartToolBar.getItemByContributionId("copyChartViewToClipboard"); //$NON-NLS-1$
|
| 134 | 133 |
|
| 135 | 134 |
|
| 136 | 135 |
// Advanced tool bar |
| 137 |
//this.advancedToolBarComposite = new Composite(parent, SWT.NONE); |
|
| 138 | 136 |
Group group = this.topToolBar.installGroup(ChartsUIMessages.rendering, ChartsUIMessages.showHideRenderingParameters, |
| 139 | 137 |
"platform:/plugin/org.txm.chartsengine.rcp/icons/show_rendering_parameters.png", //$NON-NLS-1$ |
| 140 | 138 |
"platform:/plugin/org.txm.chartsengine.rcp/icons/hide_rendering_parameters.png", //$NON-NLS-1$ |
| 141 | 139 |
false); |
| 142 | 140 |
this.advancedChartToolBar = new AdvancedChartEditorToolBar(this, group, this.getParametersGroupsComposite(), SWT.FLAT); |
| 143 |
//this.advancedChartToolBar.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE)); |
|
| 144 |
// this.advancedToolBarComposite.pack(true); |
|
| 145 | 141 |
|
| 146 |
// Remove parent composites |
|
| 147 |
//TODO MD: hack ? |
|
| 148 |
//this.resultArea.dispose(); |
|
| 149 |
|
|
| 150 | 142 |
// Chart composite |
| 151 | 143 |
this.chartComposite = SWTChartsComponentsProvider.getComponentsProvider(this.getResult().getChartsEngine()).createComposite(this, this.getResultArea()); |
| 152 | 144 |
|
| 153 | 145 |
GridData gd = new GridData(GridData.FILL_BOTH); |
| 154 |
//// gd.grabExcessVerticalSpace = true; |
|
| 155 |
//// gd.grabExcessHorizontalSpace = true; |
|
| 156 |
// //gd.horizontalSpan = 2; // 2 for match the command parameters toolbar AND the chart toolbar |
|
| 157 | 146 |
this.chartComposite.setLayoutData(gd); |
| 158 | 147 |
|
| 159 |
//this.chartComposite.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_RED)); |
|
| 160 |
|
|
| 161 |
//this.getResultArea().setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_YELLOW)); |
|
| 162 |
|
|
| 163 |
//this.parent.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_RED)); |
|
| 164 |
|
|
| 165 |
// Re-add the bottom toolbar |
|
| 166 |
//TODO MD: hack ? |
|
| 167 |
//this.bottomToolBar = new TXMEditorToolBar(this, SWT.FLAT, "bottom"); |
|
| 168 |
|
|
| 169 | 148 |
// FIXME: open dialog box message if the composite doesn't contain any chart (typically when the charts engine doesn't contain chart creator for the specified result data type) |
| 170 | 149 |
// if(composite.getChart() == null) {
|
| 171 | 150 |
// MessageDialog.openWarning(parent.getShell(), "Warning", "Current charts engine can not create chart for " + this.getResultData().getClass().getSimpleName() + " result type. You can set another charts engine in the preferences."); |
| ... | ... | |
| 175 | 154 |
//this.composite.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE)); |
| 176 | 155 |
//parent.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE)); |
| 177 | 156 |
|
| 178 |
//this.refresh(false); |
|
| 179 |
// |
|
| 180 |
// } |
|
| 181 | 157 |
|
| 182 | 158 |
// subclasses manual creation |
| 183 | 159 |
this.__createPartControl(); |
Formats disponibles : Unified diff