Révision 1522
| tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/editors/LexicalTableEditor.java (revision 1522) | ||
|---|---|---|
| 54 | 54 |
import org.txm.Toolbox; |
| 55 | 55 |
import org.txm.core.messages.TXMCoreMessages; |
| 56 | 56 |
import org.txm.core.preferences.TBXPreferences; |
| 57 |
import org.txm.core.preferences.TXMPreferences; |
|
| 57 | 58 |
import org.txm.core.results.Parameter; |
| 58 | 59 |
import org.txm.index.core.functions.PartitionIndex; |
| 59 | 60 |
import org.txm.lexicaltable.core.functions.LexicalTable; |
| 60 | 61 |
import org.txm.lexicaltable.core.preferences.LexicalTablePreferences; |
| 61 | 62 |
import org.txm.lexicaltable.rcp.handlers.MergeLines; |
| 62 | 63 |
import org.txm.lexicaltable.rcp.messages.LexicalTableUIMessages; |
| 64 |
import org.txm.objects.CorpusBuild; |
|
| 63 | 65 |
import org.txm.rcp.StatusLine; |
| 64 | 66 |
import org.txm.rcp.editors.TXMEditor; |
| 65 | 67 |
import org.txm.rcp.editors.TableKeyListener; |
| ... | ... | |
| 185 | 187 |
this.getResult().getProperty(), |
| 186 | 188 |
false); |
| 187 | 189 |
|
| 188 |
if (getResult().getParent() instanceof PartitionIndex) {
|
|
| 190 |
// disable the property selection on Lexical table created from partition index |
|
| 191 |
if (this.getResult().getParent() instanceof PartitionIndex) {
|
|
| 189 | 192 |
this.unitPropertyComboViewer.getCombo().setEnabled(false); |
| 190 | 193 |
} |
| 191 | 194 |
|
| ... | ... | |
| 193 | 196 |
// Extended parameters |
| 194 | 197 |
Composite extendedParametersArea = this.getExtendedParametersGroup(); |
| 195 | 198 |
|
| 196 |
// FIXME: Apply button |
|
| 199 |
// FIXME: SJ: became useless? Apply button
|
|
| 197 | 200 |
// Button keepTop = new Button(extendedParametersArea, SWT.PUSH); |
| 198 | 201 |
// keepTop.setText(LexicalTableUIMessages.LexicalTableEditor_4); |
| 199 | 202 |
// keepTop.addSelectionListener(new SelectionListener() {
|
| ... | ... | |
| 264 | 267 |
} |
| 265 | 268 |
String newname = d.getMergeName(); |
| 266 | 269 |
|
| 267 |
System.out.println(NLS.bind(LexicalTableUIMessages.mergeColsColonP0, colindices)); |
|
| 270 |
Log.info(NLS.bind(LexicalTableUIMessages.mergeColsColonP0, colindices)); |
|
| 271 |
|
|
| 268 | 272 |
double[] firstcol = cols.get(colindices.get(0)); |
| 269 | 273 |
|
| 270 | 274 |
// merge selected cols into the first one |
| ... | ... | |
| 304 | 308 |
// form, freq |
| 305 | 309 |
} |
| 306 | 310 |
viewer.getTable().getColumns()[colindices.get(0) + 3].setText(newname); |
| 307 |
refreshTable(true); |
|
| 308 |
} else// delete |
|
| 309 |
{
|
|
| 310 |
System.out.println(NLS.bind(LexicalTableUIMessages.deleteColsColonP0, colindices)); |
|
| 311 |
compute(false); |
|
| 312 |
} |
|
| 313 |
// delete |
|
| 314 |
else {
|
|
| 315 |
Log.info(NLS.bind(LexicalTableUIMessages.deleteColsColonP0, colindices)); |
|
| 316 |
|
|
| 311 | 317 |
lexicalTable.getData().removeCols(colindices); |
| 312 |
|
|
| 318 |
lexicalTable.setAltered(); |
|
| 319 |
|
|
| 313 | 320 |
collist = new ArrayList<Object>(); |
| 314 | 321 |
Vector colnames = lexicalTable.getColNames(); |
| 315 | 322 |
try {
|
| ... | ... | |
| 323 | 330 |
|
| 324 | 331 |
Collections.sort(colindices); |
| 325 | 332 |
for (int i = colindices.size() - 1; i >= 0; i--) {
|
| 326 |
viewer.getTable().getColumns()[colindices |
|
| 327 |
.get(i) + 3].dispose(); |
|
| 333 |
viewer.getTable().getColumns()[colindices.get(i) + 3].dispose(); |
|
| 328 | 334 |
} |
| 329 |
refreshTable(true);
|
|
| 335 |
compute(false);
|
|
| 330 | 336 |
} |
| 331 | 337 |
} |
| 332 | 338 |
StatusLine.setMessage(""); //$NON-NLS-1$
|
| ... | ... | |
| 362 | 368 |
MergeLines.mergeLines(LexicalTableEditor.this, d.getMergeName(), rowindices); |
| 363 | 369 |
} else {
|
| 364 | 370 |
lexicalTable.getData().removeRows(rowindices); |
| 365 |
refreshTable(true);
|
|
| 366 |
viewer.getTable().deselectAll();
|
|
| 371 |
lexicalTable.setAltered();
|
|
| 372 |
compute(false);
|
|
| 367 | 373 |
} |
| 368 | 374 |
} |
| 369 | 375 |
} |
| ... | ... | |
| 475 | 481 |
/** |
| 476 | 482 |
* Refreshes table. |
| 477 | 483 |
*/ |
| 478 |
// FIXME: not optimized, need to mix the update/not update code and do not remove column each computing, only when needed |
|
| 479 |
// FIXME: + usine à gaz... virer la variable "collist" |
|
| 484 |
// FIXME: SJ: not optimized, need to mix the update/not update code and do not remove column each computing, only when needed
|
|
| 485 |
// FIXME: SJ: + usine à gaz... virer la variable "collist"
|
|
| 480 | 486 |
public void refreshTable(boolean update) {
|
| 481 | 487 |
|
| 482 | 488 |
|
| ... | ... | |
| 619 | 625 |
*/ |
| 620 | 626 |
@Deprecated |
| 621 | 627 |
public void exportData(File file) {
|
| 622 |
lexicalTable.getData().toTxt(file, "UTF-8", "\t", ""); //$NON-NLS-1$ //$NON-NLS-2$
|
|
| 628 |
lexicalTable.getData().toTxt(file, TXMPreferences.DEFAULT_ENCODING, "\t", ""); //$NON-NLS-1$
|
|
| 623 | 629 |
} |
| 624 | 630 |
|
| 625 | 631 |
/** |
| ... | ... | |
| 672 | 678 |
* @param col the col |
| 673 | 679 |
* @param index the index |
| 674 | 680 |
*/ |
| 675 |
// FIXME: try to use a ViewerSorter instead of this but also manage the result sorting for export |
|
| 681 |
// FIXME: SJ: try to use a ViewerSorter instead of this but also manage the result sorting for export
|
|
| 676 | 682 |
public void sort(TableViewerColumn col, int index) {
|
| 677 | 683 |
|
| 678 | 684 |
if (index == previousSortedCol) {
|
| ... | ... | |
| 716 | 722 |
|
| 717 | 723 |
@Override |
| 718 | 724 |
public void updateEditorFromResult(boolean update) {
|
| 719 |
if(this.lexicalTable.getData() != null) {
|
|
| 725 |
|
|
| 726 |
// enable/disable the edition buttons according to the computed state |
|
| 727 |
if (this.lexicalTable.getData() != null) {
|
|
| 720 | 728 |
this.mergeDeleteColumnsButton.setEnabled(true); |
| 721 | 729 |
this.mergeDeleteRowsButton.setEnabled(true); |
| 722 |
|
|
| 730 |
|
|
| 723 | 731 |
this.refreshInfos(); |
| 724 | 732 |
} |
| 725 |
else {
|
|
| 733 |
else {
|
|
| 726 | 734 |
this.mergeDeleteColumnsButton.setEnabled(false); |
| 727 | 735 |
this.mergeDeleteRowsButton.setEnabled(false); |
| 728 | 736 |
} |
| 729 | 737 |
|
| 730 | 738 |
this.refreshTable(update); |
| 731 |
|
|
| 739 |
|
|
| 732 | 740 |
QueriesView.refresh(); |
| 733 | 741 |
RVariablesView.refresh(); |
| 734 | 742 |
} |
| tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/handlers/MergeLines.java (revision 1522) | ||
|---|---|---|
| 43 | 43 |
import org.txm.lexicaltable.rcp.messages.LexicalTableUIMessages; |
| 44 | 44 |
import org.txm.rcp.StatusLine; |
| 45 | 45 |
import org.txm.rcp.messages.TXMUIMessages; |
| 46 |
// TODO: Auto-generated Javadoc |
|
| 47 | 46 |
/** |
| 48 |
* Allow the user to merge Lexical Table lines columns values are added to the |
|
| 49 |
* first and the others lines are deleted @ author mdecorde. |
|
| 47 |
* Allows the user to merge Lexical Table lines columns values are added to the first and the others lines are deleted. |
|
| 48 |
* |
|
| 49 |
* @author mdecorde |
|
| 50 | 50 |
*/ |
| 51 | 51 |
public class MergeLines extends AbstractHandler {
|
| 52 | 52 |
|
| 53 |
/* (non-Javadoc) |
|
| 54 |
* @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent) |
|
| 55 |
*/ |
|
| 53 |
|
|
| 56 | 54 |
@Override |
| 57 | 55 |
public Object execute(ExecutionEvent event) throws ExecutionException {
|
| 58 | 56 |
Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event) |
| ... | ... | |
| 84 | 82 |
} |
| 85 | 83 |
|
| 86 | 84 |
/** |
| 87 |
* Merge lines.
|
|
| 85 |
* Merges lines of the table.
|
|
| 88 | 86 |
* |
| 89 | 87 |
* @param LTeditor the l teditor |
| 90 | 88 |
* @param newname the newname |
| 91 | 89 |
* @param selection the selection |
| 92 | 90 |
*/ |
| 93 |
static public void mergeLines(LexicalTableEditor LTeditor, String newname, |
|
| 94 |
int[] selection) {
|
|
| 91 |
static public void mergeLines(LexicalTableEditor LTeditor, String newname, int[] selection) {
|
|
| 95 | 92 |
// sum the lines |
| 96 | 93 |
StatusLine.setMessage(LexicalTableUIMessages.mergingLines); |
| 97 | 94 |
List<double[]> cols = LTeditor.getCols(); |
| ... | ... | |
| 117 | 114 |
// reset line name |
| 118 | 115 |
try {
|
| 119 | 116 |
table.getRowNames().setString(selection[0], newname); |
| 120 |
|
|
| 121 |
LTeditor.refreshTable(); |
|
| 122 |
lineTableViewer.getTable().deselectAll(); |
|
| 123 |
|
|
| 124 |
LTeditor.refresh(false); |
|
| 117 |
LTeditor.compute(false); |
|
| 118 |
|
|
| 125 | 119 |
} catch (Exception e) {
|
| 126 | 120 |
// TODO Auto-generated catch block |
| 127 | 121 |
e.printStackTrace(); |
| tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/handlers/DeleteLines.java (revision 1522) | ||
|---|---|---|
| 94 | 94 |
|
| 95 | 95 |
LTeditor.getLexicalTable().getData().removeRows(selection); |
| 96 | 96 |
LTeditor.getLexicalTable().setAltered(); |
| 97 |
LTeditor.refreshTable(); |
|
| 98 |
LTeditor.getlineTableViewer().getTable().deselectAll(); |
|
| 99 |
try {
|
|
| 100 |
LTeditor.refresh(false); |
|
| 101 |
} catch (Exception e) {
|
|
| 102 |
// TODO Auto-generated catch block |
|
| 103 |
e.printStackTrace(); |
|
| 104 |
} |
|
| 97 |
LTeditor.compute(false); |
|
| 105 | 98 |
} |
| 106 | 99 |
|
| 107 | 100 |
} |
| tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/handlers/___MergeCols.java (revision 1522) | ||
|---|---|---|
| 54 | 54 |
*/ |
| 55 | 55 |
@Override |
| 56 | 56 |
public Object execute(ExecutionEvent event) throws ExecutionException {
|
| 57 |
Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event) |
|
| 58 |
.getShell(); |
|
| 57 |
Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell(); |
|
| 59 | 58 |
|
| 60 | 59 |
IWorkbenchPart editor = HandlerUtil.getActiveWorkbenchWindow(event) |
| 61 | 60 |
.getActivePage().getActivePart(); |
| ... | ... | |
| 67 | 66 |
return null; |
| 68 | 67 |
|
| 69 | 68 |
String newname = ""; //$NON-NLS-1$ |
| 70 |
InputDialog d = new InputDialog(shell, TXMUIMessages.newName, |
|
| 71 |
TXMUIMessages.editTheNameOfTheNewColumnCreatedByTheMergedColumns, "", null); //$NON-NLS-1$ |
|
| 69 |
InputDialog d = new InputDialog(shell, TXMUIMessages.newName, TXMUIMessages.editTheNameOfTheNewColumnCreatedByTheMergedColumns, "", null); //$NON-NLS-1$ |
|
| 72 | 70 |
if (d.open() == Window.OK) |
| 73 | 71 |
newname = d.getValue(); |
| 74 | 72 |
else |
| tmp/org.txm.ca.core/src/org/txm/ca/core/chartsengine/r/RSingularValuesChartCreator.java (revision 1522) | ||
|---|---|---|
| 1 |
package org.txm.ca.core.chartsengine.r; |
|
| 2 |
|
|
| 3 |
import java.io.File; |
|
| 4 |
|
|
| 5 |
import org.txm.ca.core.functions.CA; |
|
| 6 |
import org.txm.ca.core.functions.Eigenvalues; |
|
| 7 |
import org.txm.ca.core.messages.CACoreMessages; |
|
| 8 |
import org.txm.ca.core.statsengine.r.functions.FactoMineRCA; |
|
| 9 |
import org.txm.chartsengine.core.results.ChartResult; |
|
| 10 |
import org.txm.chartsengine.r.core.RChartCreator; |
|
| 11 |
|
|
| 12 |
/** |
|
| 13 |
* R CA Eigenvalues chart creator. |
|
| 14 |
* @author mdecorde |
|
| 15 |
* @author sjacquot |
|
| 16 |
* |
|
| 17 |
*/ |
|
| 18 |
public class RSingularValuesChartCreator extends RChartCreator {
|
|
| 19 |
|
|
| 20 |
@Override |
|
| 21 |
public File createChartFile(ChartResult result, File file) {
|
|
| 22 |
|
|
| 23 |
CA ca = (CA) ((Eigenvalues) result).getCA(); |
|
| 24 |
|
|
| 25 |
// FactoMineR R package |
|
| 26 |
if(ca.useFactoMineR()) {
|
|
| 27 |
return this.createSingularValuesBarPlot((FactoMineRCA) ca.getCA(), file); |
|
| 28 |
} |
|
| 29 |
// CA R package |
|
| 30 |
else {
|
|
| 31 |
return this.createSingularValuesBarPlot((org.txm.ca.core.statsengine.r.functions.CA) ca.getCA(), file); |
|
| 32 |
} |
|
| 33 |
|
|
| 34 |
} |
|
| 35 |
|
|
| 36 |
|
|
| 37 |
/** |
|
| 38 |
* Creates a bar plot with singular values of the specified CA result from "FactoMineR" R package. |
|
| 39 |
* @param ca |
|
| 40 |
* @param file |
|
| 41 |
* @return the singular values bar plot object |
|
| 42 |
*/ |
|
| 43 |
public File createSingularValuesBarPlot(FactoMineRCA ca, File file) {
|
|
| 44 |
|
|
| 45 |
// Create the X axis labels with custom prefix |
|
| 46 |
StringBuilder xLabels = new StringBuilder(30); |
|
| 47 |
xLabels.append("c("); //$NON-NLS-1$
|
|
| 48 |
for(int i = 0, c = ca.getColumnsCount() - 1; i < c; i++) {
|
|
| 49 |
if(i > 0) {
|
|
| 50 |
xLabels.append(", "); //$NON-NLS-1$
|
|
| 51 |
} |
|
| 52 |
xLabels.append("\"" + (i + 1) + "\""); //$NON-NLS-1$ //$NON-NLS-2$
|
|
| 53 |
} |
|
| 54 |
xLabels.append(")"); //$NON-NLS-1$
|
|
| 55 |
|
|
| 56 |
String cmd = "tmpY <- " + ca.getSymbol() + "$eig$eigenvalue[1:length(" + ca.getSymbol() + "$eig$eigenvalue) - 1];\n"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
|
| 57 |
cmd += "barplot(tmpY, main=\"" //$NON-NLS-1$ |
|
| 58 |
+ CACoreMessages.eigenvalues + "\", ylab=\"" + //$NON-NLS-1$ |
|
| 59 |
CACoreMessages.eigenvalue + "\", xlab=\"" + //$NON-NLS-1$ |
|
| 60 |
CACoreMessages.axis + "\", names.arg=" + xLabels + ");\n"; //$NON-NLS-1$ //$NON-NLS-2$ |
|
| 61 |
|
|
| 62 |
this.getChartsEngine().plot(file, cmd); |
|
| 63 |
|
|
| 64 |
return file; |
|
| 65 |
} |
|
| 66 |
|
|
| 67 |
|
|
| 68 |
/** |
|
| 69 |
* Creates a bar plot with singular values of the specified CA result from "CA" R package. |
|
| 70 |
* @param ca |
|
| 71 |
* @param file |
|
| 72 |
* @return the singular values bar plot object |
|
| 73 |
*/ |
|
| 74 |
public File createSingularValuesBarPlot(org.txm.ca.core.statsengine.r.functions.CA ca, File file) {
|
|
| 75 |
this.getChartsEngine().plot(file, "barplot(" + ca.getSymbol() + "$sv)"); //$NON-NLS-1$ //$NON-NLS-2$
|
|
| 76 |
return file; |
|
| 77 |
} |
|
| 78 |
|
|
| 79 |
|
|
| 80 |
|
|
| 81 |
@Override |
|
| 82 |
public Class getResultDataClass() {
|
|
| 83 |
return Eigenvalues.class; |
|
| 84 |
} |
|
| 85 |
|
|
| 86 |
|
|
| 87 |
|
|
| 88 |
|
|
| 89 |
} |
|
| tmp/org.txm.ca.core/src/org/txm/ca/core/chartsengine/r/REigenvaluesChartCreator.java (revision 1522) | ||
|---|---|---|
| 1 |
package org.txm.ca.core.chartsengine.r; |
|
| 2 |
|
|
| 3 |
import java.io.File; |
|
| 4 |
|
|
| 5 |
import org.txm.ca.core.functions.CA; |
|
| 6 |
import org.txm.ca.core.functions.Eigenvalues; |
|
| 7 |
import org.txm.ca.core.messages.CACoreMessages; |
|
| 8 |
import org.txm.ca.core.statsengine.r.functions.FactoMineRCA; |
|
| 9 |
import org.txm.chartsengine.core.results.ChartResult; |
|
| 10 |
import org.txm.chartsengine.r.core.RChartCreator; |
|
| 11 |
|
|
| 12 |
/** |
|
| 13 |
* R CA Eigenvalues chart creator. |
|
| 14 |
* |
|
| 15 |
* @author mdecorde |
|
| 16 |
* @author sjacquot |
|
| 17 |
* |
|
| 18 |
*/ |
|
| 19 |
public class REigenvaluesChartCreator extends RChartCreator {
|
|
| 20 |
|
|
| 21 |
@Override |
|
| 22 |
public File createChartFile(ChartResult result, File file) {
|
|
| 23 |
|
|
| 24 |
CA ca = (CA) ((Eigenvalues) result).getCA(); |
|
| 25 |
|
|
| 26 |
// FactoMineR R package |
|
| 27 |
if(ca.useFactoMineR()) {
|
|
| 28 |
return this.createSingularValuesBarPlot((FactoMineRCA) ca.getCA(), file); |
|
| 29 |
} |
|
| 30 |
// CA R package |
|
| 31 |
else {
|
|
| 32 |
return this.createSingularValuesBarPlot((org.txm.ca.core.statsengine.r.functions.CA) ca.getCA(), file); |
|
| 33 |
} |
|
| 34 |
|
|
| 35 |
} |
|
| 36 |
|
|
| 37 |
|
|
| 38 |
/** |
|
| 39 |
* Creates a bar plot with eigenvalues of the specified CA result from "FactoMineR" R package. |
|
| 40 |
* @param ca |
|
| 41 |
* @param file |
|
| 42 |
* @return the singular values bar plot object |
|
| 43 |
*/ |
|
| 44 |
public File createSingularValuesBarPlot(FactoMineRCA ca, File file) {
|
|
| 45 |
|
|
| 46 |
// Create the X axis labels with custom prefix |
|
| 47 |
StringBuilder xLabels = new StringBuilder(30); |
|
| 48 |
xLabels.append("c("); //$NON-NLS-1$
|
|
| 49 |
for(int i = 0, c = ca.getColumnsCount() - 1; i < c; i++) {
|
|
| 50 |
if(i > 0) {
|
|
| 51 |
xLabels.append(", "); //$NON-NLS-1$
|
|
| 52 |
} |
|
| 53 |
xLabels.append("\"" + (i + 1) + "\""); //$NON-NLS-1$ //$NON-NLS-2$
|
|
| 54 |
} |
|
| 55 |
xLabels.append(")"); //$NON-NLS-1$
|
|
| 56 |
|
|
| 57 |
String cmd = "tmpY <- " + ca.getSymbol() + "$eig$eigenvalue[1:length(" + ca.getSymbol() + "$eig$eigenvalue) - 1];\n"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
|
| 58 |
cmd += "barplot(tmpY, main=\"" //$NON-NLS-1$ |
|
| 59 |
+ CACoreMessages.eigenvalues + "\", ylab=\"" + //$NON-NLS-1$ |
|
| 60 |
CACoreMessages.eigenvalue + "\", xlab=\"" + //$NON-NLS-1$ |
|
| 61 |
CACoreMessages.axis + "\", names.arg=" + xLabels + ");\n"; //$NON-NLS-1$ //$NON-NLS-2$ |
|
| 62 |
|
|
| 63 |
this.getChartsEngine().plot(file, cmd); |
|
| 64 |
|
|
| 65 |
return file; |
|
| 66 |
} |
|
| 67 |
|
|
| 68 |
|
|
| 69 |
/** |
|
| 70 |
* Creates a bar plot with eigenvalues of the specified CA result from "CA" R package. |
|
| 71 |
* @param ca |
|
| 72 |
* @param file |
|
| 73 |
* @return the singular values bar plot object |
|
| 74 |
*/ |
|
| 75 |
public File createSingularValuesBarPlot(org.txm.ca.core.statsengine.r.functions.CA ca, File file) {
|
|
| 76 |
this.getChartsEngine().plot(file, "barplot(" + ca.getSymbol() + "$sv)"); //$NON-NLS-1$ //$NON-NLS-2$
|
|
| 77 |
return file; |
|
| 78 |
} |
|
| 79 |
|
|
| 80 |
|
|
| 81 |
|
|
| 82 |
@Override |
|
| 83 |
public Class<Eigenvalues> getResultDataClass() {
|
|
| 84 |
return Eigenvalues.class; |
|
| 85 |
} |
|
| 86 |
|
|
| 87 |
|
|
| 88 |
|
|
| 89 |
|
|
| 90 |
} |
|
| 0 | 91 | |
| tmp/org.txm.ca.core/src/org/txm/ca/core/chartsengine/jfreechart/themes/highcharts/chartcreators/JFCSingularValueChartCreator.java (revision 1522) | ||
|---|---|---|
| 1 |
package org.txm.ca.core.chartsengine.jfreechart.themes.highcharts.chartcreators; |
|
| 2 |
|
|
| 3 |
import org.eclipse.osgi.util.NLS; |
|
| 4 |
import org.jfree.chart.JFreeChart; |
|
| 5 |
import org.jfree.chart.axis.NumberAxis; |
|
| 6 |
import org.jfree.data.category.DefaultCategoryDataset; |
|
| 7 |
import org.jfree.data.general.DatasetUtilities; |
|
| 8 |
import org.jfree.data.xy.XYSeriesCollection; |
|
| 9 |
import org.txm.ca.core.chartsengine.jfreechart.themes.highcharts.renderers.CASingularValuesItemSelectionRenderer; |
|
| 10 |
import org.txm.ca.core.functions.CA; |
|
| 11 |
import org.txm.ca.core.functions.Eigenvalues; |
|
| 12 |
import org.txm.ca.core.messages.CACoreMessages; |
|
| 13 |
import org.txm.chartsengine.core.results.ChartResult; |
|
| 14 |
import org.txm.chartsengine.jfreechart.core.JFCChartCreator; |
|
| 15 |
import org.txm.chartsengine.jfreechart.core.themes.base.ExtendedNumberAxis; |
|
| 16 |
import org.txm.statsengine.core.StatException; |
|
| 17 |
import org.txm.utils.logger.Log; |
|
| 18 |
|
|
| 19 |
/** |
|
| 20 |
* JFC Eigenvalues chart creator. |
|
| 21 |
* |
|
| 22 |
* @author sjacquot |
|
| 23 |
* |
|
| 24 |
*/ |
|
| 25 |
public class JFCSingularValueChartCreator extends JFCChartCreator {
|
|
| 26 |
|
|
| 27 |
|
|
| 28 |
@Override |
|
| 29 |
public Object createChart(ChartResult result) {
|
|
| 30 |
|
|
| 31 |
|
|
| 32 |
CA ca = (CA) ((Eigenvalues) result).getCA(); |
|
| 33 |
|
|
| 34 |
JFreeChart chart = null; |
|
| 35 |
|
|
| 36 |
|
|
| 37 |
// Creates the empty dataset |
|
| 38 |
DefaultCategoryDataset dataset = new DefaultCategoryDataset(); |
|
| 39 |
// Create the chart |
|
| 40 |
chart = this.getChartsEngine().createCategoryBarChart(dataset, CACoreMessages.eigenvalues, CACoreMessages.axis, CACoreMessages.eigenvalue, false, false, false); |
|
| 41 |
|
|
| 42 |
// Custom renderer |
|
| 43 |
chart.getCategoryPlot().setRenderer(new CASingularValuesItemSelectionRenderer(ca)); |
|
| 44 |
|
|
| 45 |
|
|
| 46 |
|
|
| 47 |
|
|
| 48 |
return chart; |
|
| 49 |
} |
|
| 50 |
|
|
| 51 |
|
|
| 52 |
@Override |
|
| 53 |
public void updateChart(ChartResult result) {
|
|
| 54 |
|
|
| 55 |
CA ca = (CA) ((Eigenvalues) result).getCA(); |
|
| 56 |
JFreeChart chart = (JFreeChart) result.getChart(); |
|
| 57 |
|
|
| 58 |
|
|
| 59 |
// freeze rendering while computing |
|
| 60 |
chart.setNotify(false); |
|
| 61 |
|
|
| 62 |
// update the dataset |
|
| 63 |
try {
|
|
| 64 |
|
|
| 65 |
DefaultCategoryDataset dataset = (DefaultCategoryDataset) chart.getCategoryPlot().getDataset(); |
|
| 66 |
dataset.clear(); |
|
| 67 |
|
|
| 68 |
|
|
| 69 |
double[] singularValues = ca.getValeursPropres(); |
|
| 70 |
|
|
| 71 |
for(int i = 0; i < singularValues.length; i++) {
|
|
| 72 |
dataset.setValue(singularValues[i], CACoreMessages.eigenvalue, String.valueOf(i + 1)); |
|
| 73 |
} |
|
| 74 |
|
|
| 75 |
} |
|
| 76 |
catch(StatException e) {
|
|
| 77 |
Log.severe(NLS.bind(CACoreMessages.cantCreateBarChartOfTheCASingularValuesP0, e)); |
|
| 78 |
Log.printStackTrace(e); |
|
| 79 |
} |
|
| 80 |
|
|
| 81 |
// Custom range axis for ticks drawing options |
|
| 82 |
chart.getCategoryPlot().setRangeAxis(new ExtendedNumberAxis((NumberAxis) chart.getCategoryPlot().getRangeAxis(), false, true, 0, DatasetUtilities.findMaximumRangeValue(chart.getCategoryPlot().getDataset()).doubleValue())); |
|
| 83 |
|
|
| 84 |
|
|
| 85 |
super.updateChart(result); |
|
| 86 |
|
|
| 87 |
} |
|
| 88 |
|
|
| 89 |
|
|
| 90 |
@Override |
|
| 91 |
public Class getResultDataClass() {
|
|
| 92 |
return Eigenvalues.class; |
|
| 93 |
} |
|
| 94 |
|
|
| 95 |
|
|
| 96 |
|
|
| 97 |
|
|
| 98 |
} |
|
| tmp/org.txm.ca.core/src/org/txm/ca/core/chartsengine/jfreechart/themes/highcharts/chartcreators/JFCCAChartCreator.java (revision 1522) | ||
|---|---|---|
| 44 | 44 |
JFreeChart chart = null; |
| 45 | 45 |
|
| 46 | 46 |
try {
|
| 47 |
CAXYDataset dataset = new CAXYDataset(ca); |
|
| 47 |
//CAXYDataset dataset = new CAXYDataset(ca);
|
|
| 48 | 48 |
|
| 49 | 49 |
chart = ChartFactory.createScatterPlot(Utils.createCAFactorialMapChartTitle(ca), |
| 50 |
"", "", dataset, PlotOrientation.VERTICAL,
|
|
| 50 |
"", "", null, PlotOrientation.VERTICAL,
|
|
| 51 | 51 |
CAPreferences.getInstance().getBoolean(ChartsEnginePreferences.SHOW_LEGEND), false, false); |
| 52 | 52 |
|
| 53 | 53 |
// Custom renderer |
| ... | ... | |
| 73 | 73 |
// freeze rendering while computing |
| 74 | 74 |
chart.setNotify(false); |
| 75 | 75 |
|
| 76 |
try {
|
|
| 77 |
chart.getXYPlot().setDataset(new CAXYDataset(ca)); |
|
| 78 |
} |
|
| 79 |
catch (Exception e) {
|
|
| 80 |
// TODO Auto-generated catch block |
|
| 81 |
e.printStackTrace(); |
|
| 82 |
} |
|
| 83 |
|
|
| 76 | 84 |
CAItemSelectionRenderer renderer = (CAItemSelectionRenderer) chart.getXYPlot().getRenderer(); |
| 77 | 85 |
|
| 78 | 86 |
renderer.setSeriesVisible(0, ca.isShowVariables()); |
| tmp/org.txm.ca.core/src/org/txm/ca/core/chartsengine/jfreechart/themes/highcharts/chartcreators/JFCEigenvaluesChartCreator.java (revision 1522) | ||
|---|---|---|
| 1 |
package org.txm.ca.core.chartsengine.jfreechart.themes.highcharts.chartcreators; |
|
| 2 |
|
|
| 3 |
import org.eclipse.osgi.util.NLS; |
|
| 4 |
import org.jfree.chart.JFreeChart; |
|
| 5 |
import org.jfree.chart.axis.NumberAxis; |
|
| 6 |
import org.jfree.data.category.DefaultCategoryDataset; |
|
| 7 |
import org.jfree.data.general.DatasetUtilities; |
|
| 8 |
import org.jfree.data.xy.XYSeriesCollection; |
|
| 9 |
import org.txm.ca.core.chartsengine.jfreechart.themes.highcharts.renderers.CAEigenvaluesItemSelectionRenderer; |
|
| 10 |
import org.txm.ca.core.functions.CA; |
|
| 11 |
import org.txm.ca.core.functions.Eigenvalues; |
|
| 12 |
import org.txm.ca.core.messages.CACoreMessages; |
|
| 13 |
import org.txm.chartsengine.core.results.ChartResult; |
|
| 14 |
import org.txm.chartsengine.jfreechart.core.JFCChartCreator; |
|
| 15 |
import org.txm.chartsengine.jfreechart.core.themes.base.ExtendedNumberAxis; |
|
| 16 |
import org.txm.statsengine.core.StatException; |
|
| 17 |
import org.txm.utils.logger.Log; |
|
| 18 |
|
|
| 19 |
/** |
|
| 20 |
* JFC Eigenvalues chart creator. |
|
| 21 |
* |
|
| 22 |
* @author sjacquot |
|
| 23 |
* |
|
| 24 |
*/ |
|
| 25 |
public class JFCEigenvaluesChartCreator extends JFCChartCreator {
|
|
| 26 |
|
|
| 27 |
|
|
| 28 |
@Override |
|
| 29 |
public Object createChart(ChartResult result) {
|
|
| 30 |
|
|
| 31 |
CA ca = (CA) ((Eigenvalues) result).getCA(); |
|
| 32 |
JFreeChart chart = null; |
|
| 33 |
|
|
| 34 |
// Creates the empty dataset |
|
| 35 |
DefaultCategoryDataset dataset = new DefaultCategoryDataset(); |
|
| 36 |
// Create the chart |
|
| 37 |
chart = this.getChartsEngine().createCategoryBarChart(dataset, CACoreMessages.eigenvalues, CACoreMessages.axis, CACoreMessages.eigenvalue, false, false, false); |
|
| 38 |
|
|
| 39 |
// Custom renderer |
|
| 40 |
chart.getCategoryPlot().setRenderer(new CAEigenvaluesItemSelectionRenderer(ca)); |
|
| 41 |
|
|
| 42 |
return chart; |
|
| 43 |
} |
|
| 44 |
|
|
| 45 |
|
|
| 46 |
@Override |
|
| 47 |
public void updateChart(ChartResult result) {
|
|
| 48 |
|
|
| 49 |
CA ca = (CA) ((Eigenvalues) result).getCA(); |
|
| 50 |
JFreeChart chart = (JFreeChart) result.getChart(); |
|
| 51 |
|
|
| 52 |
// freeze rendering while computing |
|
| 53 |
chart.setNotify(false); |
|
| 54 |
|
|
| 55 |
// update the dataset |
|
| 56 |
try {
|
|
| 57 |
|
|
| 58 |
DefaultCategoryDataset dataset = (DefaultCategoryDataset) chart.getCategoryPlot().getDataset(); |
|
| 59 |
dataset.clear(); |
|
| 60 |
|
|
| 61 |
|
|
| 62 |
double[] singularValues = ca.getValeursPropres(); |
|
| 63 |
|
|
| 64 |
for(int i = 0; i < singularValues.length; i++) {
|
|
| 65 |
dataset.setValue(singularValues[i], CACoreMessages.eigenvalue, String.valueOf(i + 1)); |
|
| 66 |
} |
|
| 67 |
|
|
| 68 |
} |
|
| 69 |
catch(StatException e) {
|
|
| 70 |
Log.severe(NLS.bind(CACoreMessages.cantCreateBarChartOfTheCASingularValuesP0, e)); |
|
| 71 |
Log.printStackTrace(e); |
|
| 72 |
} |
|
| 73 |
|
|
| 74 |
// Custom range axis for ticks drawing options |
|
| 75 |
chart.getCategoryPlot().setRangeAxis(new ExtendedNumberAxis((NumberAxis) chart.getCategoryPlot().getRangeAxis(), false, true, 0, DatasetUtilities.findMaximumRangeValue(chart.getCategoryPlot().getDataset()).doubleValue())); |
|
| 76 |
|
|
| 77 |
super.updateChart(result); |
|
| 78 |
} |
|
| 79 |
|
|
| 80 |
|
|
| 81 |
@Override |
|
| 82 |
public Class getResultDataClass() {
|
|
| 83 |
return Eigenvalues.class; |
|
| 84 |
} |
|
| 85 |
|
|
| 86 |
|
|
| 87 |
|
|
| 88 |
|
|
| 89 |
} |
|
| 0 | 90 | |
| tmp/org.txm.ca.core/src/org/txm/ca/core/chartsengine/jfreechart/themes/highcharts/renderers/CASingularValuesItemSelectionRenderer.java (revision 1522) | ||
|---|---|---|
| 1 |
package org.txm.ca.core.chartsengine.jfreechart.themes.highcharts.renderers; |
|
| 2 |
|
|
| 3 |
import java.awt.Color; |
|
| 4 |
import java.text.DecimalFormat; |
|
| 5 |
import java.util.List; |
|
| 6 |
|
|
| 7 |
import org.jfree.chart.labels.CategoryToolTipGenerator; |
|
| 8 |
import org.jfree.data.category.CategoryDataset; |
|
| 9 |
import org.jfree.data.category.DefaultCategoryDataset; |
|
| 10 |
import org.txm.ca.core.functions.CA; |
|
| 11 |
import org.txm.ca.core.messages.CACoreMessages; |
|
| 12 |
import org.txm.chartsengine.core.ChartsEngine; |
|
| 13 |
import org.txm.chartsengine.core.messages.ChartsEngineCoreMessages; |
|
| 14 |
import org.txm.chartsengine.jfreechart.core.renderers.interfaces.IRendererWithItemSelection; |
|
| 15 |
import org.txm.chartsengine.jfreechart.core.themes.highcharts.defaulttheme.renderers.ItemSelectionCategoryBarRenderer; |
|
| 16 |
import org.txm.chartsengine.jfreechart.core.themes.highcharts.defaulttheme.swing.CustomHTMLToolTip; |
|
| 17 |
|
|
| 18 |
|
|
| 19 |
/** |
|
| 20 |
* Renderer providing item selection system and drawing features for selected item and custom rendering for CA singular values bar charts. |
|
| 21 |
* @author sjacquot |
|
| 22 |
* |
|
| 23 |
*/ |
|
| 24 |
public class CASingularValuesItemSelectionRenderer extends ItemSelectionCategoryBarRenderer {
|
|
| 25 |
|
|
| 26 |
|
|
| 27 |
/** |
|
| 28 |
* Percent values number format. |
|
| 29 |
*/ |
|
| 30 |
protected DecimalFormat percentValuesNumberFormat; |
|
| 31 |
|
|
| 32 |
|
|
| 33 |
/** |
|
| 34 |
* Creates a renderer dedicated to CA charts. |
|
| 35 |
*/ |
|
| 36 |
public CASingularValuesItemSelectionRenderer(CA ca) {
|
|
| 37 |
super(); |
|
| 38 |
this.mouseOverItemSelector.setResult(ca); |
|
| 39 |
this.percentValuesNumberFormat = new DecimalFormat("#.00");
|
|
| 40 |
} |
|
| 41 |
|
|
| 42 |
|
|
| 43 |
|
|
| 44 |
@Override |
|
| 45 |
public void initToolTipGenerator(final IRendererWithItemSelection renderer) {
|
|
| 46 |
this.setBaseToolTipGenerator(new CategoryToolTipGenerator() {
|
|
| 47 |
|
|
| 48 |
@Override |
|
| 49 |
public String generateToolTip(CategoryDataset dataset, int row, int column) {
|
|
| 50 |
|
|
| 51 |
// Hexadecimal color |
|
| 52 |
Color color = (Color) getSeriesPaint(row); |
|
| 53 |
String hex = "#" + Integer.toHexString(color.getRGB()).substring(2); |
|
| 54 |
|
|
| 55 |
DefaultCategoryDataset catDataset = (DefaultCategoryDataset) dataset; |
|
| 56 |
Number value = catDataset.getValue(row, column); |
|
| 57 |
|
|
| 58 |
|
|
| 59 |
CA ca = (CA) getItemsSelector().getResult(); |
|
| 60 |
List<List<Object>> singularValuesData = ca.getSingularValuesInfos(); |
|
| 61 |
|
|
| 62 |
return CustomHTMLToolTip.getDefaultHTMLBody(renderer, hex) + "<p>#" + catDataset.getColumnKey(column) + "</p>" |
|
| 63 |
+ "<p><span style=\"color: " + hex + ";\">" + catDataset.getRowKey(row) + ChartsEngineCoreMessages.EMPTY |
|
| 64 |
+ " </span><b>" + valuesNumberFormat.format(value) + "</b></p>" |
|
| 65 |
+ "<p><span style=\"color: " + hex + ";\">" + CACoreMessages.percent + ChartsEngineCoreMessages.EMPTY |
|
| 66 |
+ " </span><b>" + percentValuesNumberFormat.format(singularValuesData.get(column).get(2)) + "</b></p>" |
|
| 67 |
+ "<p><span style=\"color: " + hex + ";\">" + CACoreMessages.charts_singularValues_tooltipSum + CACoreMessages.percent |
|
| 68 |
+ ChartsEngineCoreMessages.EMPTY |
|
| 69 |
+ " </span><b>" + percentValuesNumberFormat.format(singularValuesData.get(column).get(3)) + "</b></p>" |
|
| 70 |
+ "</body><html>"; |
|
| 71 |
} |
|
| 72 |
}); |
|
| 73 |
} |
|
| 74 |
|
|
| 75 |
|
|
| 76 |
|
|
| 77 |
} |
|
| tmp/org.txm.ca.core/src/org/txm/ca/core/chartsengine/jfreechart/themes/highcharts/renderers/CAEigenvaluesItemSelectionRenderer.java (revision 1522) | ||
|---|---|---|
| 1 |
package org.txm.ca.core.chartsengine.jfreechart.themes.highcharts.renderers; |
|
| 2 |
|
|
| 3 |
import java.awt.Color; |
|
| 4 |
import java.text.DecimalFormat; |
|
| 5 |
import java.util.List; |
|
| 6 |
|
|
| 7 |
import org.jfree.chart.labels.CategoryToolTipGenerator; |
|
| 8 |
import org.jfree.data.category.CategoryDataset; |
|
| 9 |
import org.jfree.data.category.DefaultCategoryDataset; |
|
| 10 |
import org.txm.ca.core.functions.CA; |
|
| 11 |
import org.txm.ca.core.messages.CACoreMessages; |
|
| 12 |
import org.txm.chartsengine.core.ChartsEngine; |
|
| 13 |
import org.txm.chartsengine.core.messages.ChartsEngineCoreMessages; |
|
| 14 |
import org.txm.chartsengine.jfreechart.core.renderers.interfaces.IRendererWithItemSelection; |
|
| 15 |
import org.txm.chartsengine.jfreechart.core.themes.highcharts.defaulttheme.renderers.ItemSelectionCategoryBarRenderer; |
|
| 16 |
import org.txm.chartsengine.jfreechart.core.themes.highcharts.defaulttheme.swing.CustomHTMLToolTip; |
|
| 17 |
|
|
| 18 |
|
|
| 19 |
/** |
|
| 20 |
* Renderer providing item selection system and drawing features for selected item and custom rendering for CA eigenvalues bar charts. |
|
| 21 |
* @author sjacquot |
|
| 22 |
* |
|
| 23 |
*/ |
|
| 24 |
public class CAEigenvaluesItemSelectionRenderer extends ItemSelectionCategoryBarRenderer {
|
|
| 25 |
|
|
| 26 |
|
|
| 27 |
/** |
|
| 28 |
* Percent values number format. |
|
| 29 |
*/ |
|
| 30 |
protected DecimalFormat percentValuesNumberFormat; |
|
| 31 |
|
|
| 32 |
|
|
| 33 |
/** |
|
| 34 |
* Creates a renderer dedicated to CA charts. |
|
| 35 |
*/ |
|
| 36 |
public CAEigenvaluesItemSelectionRenderer(CA ca) {
|
|
| 37 |
super(); |
|
| 38 |
this.mouseOverItemSelector.setResult(ca); |
|
| 39 |
this.percentValuesNumberFormat = new DecimalFormat("#.00");
|
|
| 40 |
} |
|
| 41 |
|
|
| 42 |
|
|
| 43 |
|
|
| 44 |
@Override |
|
| 45 |
public void initToolTipGenerator(final IRendererWithItemSelection renderer) {
|
|
| 46 |
this.setBaseToolTipGenerator(new CategoryToolTipGenerator() {
|
|
| 47 |
|
|
| 48 |
@Override |
|
| 49 |
public String generateToolTip(CategoryDataset dataset, int row, int column) {
|
|
| 50 |
|
|
| 51 |
// Hexadecimal color |
|
| 52 |
Color color = (Color) getSeriesPaint(row); |
|
| 53 |
String hex = "#" + Integer.toHexString(color.getRGB()).substring(2); |
|
| 54 |
|
|
| 55 |
DefaultCategoryDataset catDataset = (DefaultCategoryDataset) dataset; |
|
| 56 |
Number value = catDataset.getValue(row, column); |
|
| 57 |
|
|
| 58 |
|
|
| 59 |
CA ca = (CA) getItemsSelector().getResult(); |
|
| 60 |
List<List<Object>> singularValuesData = ca.getSingularValuesInfos(); |
|
| 61 |
|
|
| 62 |
return CustomHTMLToolTip.getDefaultHTMLBody(renderer, hex) + "<p>#" + catDataset.getColumnKey(column) + "</p>" |
|
| 63 |
+ "<p><span style=\"color: " + hex + ";\">" + catDataset.getRowKey(row) + ChartsEngineCoreMessages.EMPTY |
|
| 64 |
+ " </span><b>" + valuesNumberFormat.format(value) + "</b></p>" |
|
| 65 |
+ "<p><span style=\"color: " + hex + ";\">" + CACoreMessages.percent + ChartsEngineCoreMessages.EMPTY |
|
| 66 |
+ " </span><b>" + percentValuesNumberFormat.format(singularValuesData.get(column).get(2)) + "</b></p>" |
|
| 67 |
+ "<p><span style=\"color: " + hex + ";\">" + CACoreMessages.charts_singularValues_tooltipSum + CACoreMessages.percent |
|
| 68 |
+ ChartsEngineCoreMessages.EMPTY |
|
| 69 |
+ " </span><b>" + percentValuesNumberFormat.format(singularValuesData.get(column).get(3)) + "</b></p>" |
|
| 70 |
+ "</body><html>"; |
|
| 71 |
} |
|
| 72 |
}); |
|
| 73 |
} |
|
| 74 |
|
|
| 75 |
|
|
| 76 |
|
|
| 77 |
} |
|
| 0 | 78 | |
| tmp/org.txm.ca.core/plugin.xml (revision 1522) | ||
|---|---|---|
| 14 | 14 |
fileNamePrefix="ca"> |
| 15 | 15 |
</ChartCreator> |
| 16 | 16 |
<ChartCreator |
| 17 |
class="org.txm.ca.core.chartsengine.jfreechart.themes.highcharts.chartcreators.JFCSingularValueChartCreator"
|
|
| 17 |
class="org.txm.ca.core.chartsengine.jfreechart.themes.highcharts.chartcreators.JFCEigenvaluesChartCreator"
|
|
| 18 | 18 |
fileNamePrefix="singular_values"> |
| 19 | 19 |
</ChartCreator> |
| 20 | 20 |
<ChartCreator |
| ... | ... | |
| 22 | 22 |
fileNamePrefix="ca"> |
| 23 | 23 |
</ChartCreator> |
| 24 | 24 |
<ChartCreator |
| 25 |
class="org.txm.ca.core.chartsengine.r.RSingularValuesChartCreator"
|
|
| 25 |
class="org.txm.ca.core.chartsengine.r.REigenvaluesChartCreator"
|
|
| 26 | 26 |
fileNamePrefix="singular_values"> |
| 27 | 27 |
</ChartCreator> |
| 28 | 28 |
</extension> |
| tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java (revision 1522) | ||
|---|---|---|
| 801 | 801 |
|
| 802 | 802 |
this.runInit(monitor); |
| 803 | 803 |
|
| 804 |
if (isLocked()) return Status.CANCEL_STATUS; |
|
| 804 |
if (isLocked()) {
|
|
| 805 |
return Status.CANCEL_STATUS; |
|
| 806 |
} |
|
| 805 | 807 |
|
| 806 | 808 |
try {
|
| 807 | 809 |
JobsTimer.start(); |
| ... | ... | |
| 954 | 956 |
*/ |
| 955 | 957 |
public final void refresh(boolean update) throws Exception {
|
| 956 | 958 |
|
| 959 |
// skip refresh if the part creation has failed |
|
| 957 | 960 |
if (!createPartControlDoneSucessfully) {
|
| 958 |
return; // no refresh
|
|
| 961 |
return; |
|
| 959 | 962 |
} |
| 960 |
notifyExtensions("notifyStartOfRefresh"); //$NON-NLS-1$
|
|
| 963 |
|
|
| 964 |
this.notifyExtensions("notifyStartOfRefresh"); //$NON-NLS-1$
|
|
| 961 | 965 |
|
| 962 | 966 |
TXMResult result = this.getResult(); |
| 963 | 967 |
|
| ... | ... | |
| 1010 | 1014 |
//&& txmEditor.isDirty() |
| 1011 | 1015 |
) {
|
| 1012 | 1016 |
//txmEditor.synchronizeResultFromEditor(); |
| 1017 |
|
|
| 1018 |
// FIXME: SJ: need to prove/test this code |
|
| 1019 |
// recreate all if the parent result is altered |
|
| 1020 |
//txmEditor.refresh(!this.getResult().isAltered()); |
|
| 1013 | 1021 |
txmEditor.refresh(true); |
| 1014 | 1022 |
} |
| 1015 | 1023 |
} |
| 1016 | 1024 |
} |
| 1017 | 1025 |
|
| 1018 |
notifyExtensions("notifyEndOfRefresh"); //$NON-NLS-1$
|
|
| 1026 |
this.notifyExtensions("notifyEndOfRefresh"); //$NON-NLS-1$
|
|
| 1019 | 1027 |
} |
| 1020 | 1028 |
|
| 1021 | 1029 |
/** |
| 1022 |
* Synchronizes the result with editor parameters.
|
|
| 1030 |
* Synchronizes the result parameters with editor widgets.
|
|
| 1023 | 1031 |
* <p> |
| 1024 | 1032 |
* It should be called or called itself in the UI thread when accessing Widget parameters. |
| 1025 | 1033 |
*/ |
| 1026 | 1034 |
public abstract void updateResultFromEditor(); |
| 1027 | 1035 |
|
| 1028 |
/** |
|
| 1029 |
* UI safe |
|
| 1030 |
* |
|
| 1031 |
* Synchronizes the editor with the result. |
|
| 1032 |
* Dedicated to dynamically change the editor components from the stored result. |
|
| 1033 |
* <p> |
|
| 1034 |
* Use this method if you need to save parameter with Type not managed by the autoUpdateEditorFieldsFromResult method |
|
| 1035 |
* @throws Exception |
|
| 1036 |
*/ |
|
| 1037 |
public final void updateFromResult(final boolean update) throws Exception {
|
|
| 1038 |
if (this.parent != null && !this.parent.isDisposed()) {
|
|
| 1039 |
this.parent.getDisplay().syncExec(new Runnable() {
|
|
| 1036 |
// FIXME: became useless? |
|
| 1037 |
// /** |
|
| 1038 |
// * UI safe |
|
| 1039 |
// * |
|
| 1040 |
// * Synchronizes the editor with the result. |
|
| 1041 |
// * Dedicated to dynamically change the editor components from the stored result. |
|
| 1042 |
// * <p> |
|
| 1043 |
// * Use this method if you need to save parameter with Type not managed by the autoUpdateEditorFieldsFromResult method |
|
| 1044 |
// * @throws Exception |
|
| 1045 |
// */ |
|
| 1046 |
// public final void updateFromResult(final boolean update) throws Exception {
|
|
| 1047 |
// if (this.parent != null && !this.parent.isDisposed()) {
|
|
| 1048 |
// this.parent.getDisplay().syncExec(new Runnable() {
|
|
| 1049 |
// |
|
| 1050 |
// @Override |
|
| 1051 |
// public void run() {
|
|
| 1052 |
// try {
|
|
| 1053 |
// refresh(update); |
|
| 1054 |
// } catch (Exception e) {
|
|
| 1055 |
// // TODO Auto-generated catch block |
|
| 1056 |
// e.printStackTrace(); |
|
| 1057 |
// } |
|
| 1058 |
// } |
|
| 1059 |
// }); |
|
| 1060 |
// } |
|
| 1061 |
// } |
|
| 1040 | 1062 |
|
| 1041 |
@Override |
|
| 1042 |
public void run() {
|
|
| 1043 |
try {
|
|
| 1044 |
refresh(update); |
|
| 1045 |
} catch (Exception e) {
|
|
| 1046 |
// TODO Auto-generated catch block |
|
| 1047 |
e.printStackTrace(); |
|
| 1048 |
} |
|
| 1049 |
} |
|
| 1050 |
}); |
|
| 1051 |
} |
|
| 1052 |
} |
|
| 1053 |
|
|
| 1054 | 1063 |
/** |
| 1055 |
* Synchronizes the editor with the result.
|
|
| 1064 |
* Synchronizes the editor widgets with the result parameters.
|
|
| 1056 | 1065 |
* Dedicated to dynamically change the editor components from the stored result. |
| 1057 |
* <p>
|
|
| 1058 |
* Use this method if you need to save parameter with Type not managed by the autoUpdateEditorFieldsFromResult method |
|
| 1066 |
* |
|
| 1067 |
* Use this method if you need to save parameter with Type not managed by the autoUpdateEditorFieldsFromResult method.
|
|
| 1059 | 1068 |
* @throws Exception |
| 1060 | 1069 |
*/ |
| 1061 | 1070 |
public abstract void updateEditorFromResult(boolean update) throws Exception; |
| tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/messages/messages_ru.properties (revision 1522) | ||
|---|---|---|
| 1 |
#TXM messages generated by the PluginMessagesManager class |
|
| 2 |
#Thu Dec 06 15:02:43 CET 2018 |
|
| 3 |
coordColumnFormat=Формат колонки Coord |
|
| 4 |
eigenvalues=Собственные значения |
|
| 5 |
contributionColumnFormat=Формат колонки Вклад |
|
| 6 |
openingTheCorrespondenceAnalysisResults=Открытие результатов факторного анализа соответствий |
|
| 7 |
cosColumnFormat=Формат колонки Cos² |
|
| 8 |
showTheColumns=Показать колонки в графике факторного плана |
|
| 9 |
canNotComputeFactorialAnalysisWithOnlyP0PartsTheMinimumIs4Parts=** Невозможно провести факторный анализ соответствий при наличии только |
|
| 10 |
showTheRows=Показать строчки в графике факторного плана |
|
| 11 |
distanceColumnFormat=Формат колонки Дистанция |
|
| 12 |
factPlan=Факт. план |
|
| 13 |
loadingCorrespondenceAnalysisResults=Загрузка результатов факторного анализа |
|
| 14 |
computingCorrespondenceAnalysisOnP0WithPropertyP1=Расчет факторного анализа соответствий |
|
| 15 |
CorrespondanceAnalysisEditorInput_11=∑% |
|
| 16 |
eigenvalue=Собственные значения |
|
| 17 |
canNotComputeCAOnLexicalTableWithLessThan4Columns=** Невозможно провести факторный анализ соответствий при наличии менее 4-х колонок |
|
| 18 |
chi=χ² |
|
| 19 |
CorrespondanceAnalysisEditorInput_4=Фактор |
|
| 20 |
q=Qual |
|
| 21 |
infosColonP0=Информация\: {0}
|
|
| 22 |
wrongInput=Ошибочный ввод |
|
| 23 |
creatingCA=Создание окна ФАС |
|
| 24 |
eigenvaluesHistogram=Гистограмма собственных значений |
|
| 25 |
canNotComputeCAWithLessThan4RowsInTheTable=** Невозможно провести факторный анализ соответствий при наличии менее 4-х колонок в таблице |
|
| 26 |
massColumnFormat=Формат колонки Масса |
|
| 27 |
rowsInfos=Инф Строчки |
|
| 28 |
qualityColumnFormat=Формат колонки Качество |
|
| 29 |
colsInfos=Инф Колонки |
|
| 1 |
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/) |
|
| 2 |
#TXM messages generated by the PluginMessagesManager class |
|
| 3 |
#Thu Dec 06 15:02:43 CET 2018 |
|
| 4 |
|
|
| 5 |
CorrespondanceAnalysisEditorInput_11 = ∑% |
|
| 6 |
CorrespondanceAnalysisEditorInput_4 = Фактор |
|
| 7 |
|
|
| 8 |
canNotComputeCAOnLexicalTableWithLessThan4Columns = ** Невозможно провести факторный анализ соответствий при наличии менее 4-х колонок |
|
| 9 |
|
|
| 10 |
canNotComputeCAWithLessThan4RowsInTheTable = ** Невозможно провести факторный анализ соответствий при наличии менее 4-х колонок в таблице |
|
| 11 |
|
|
| 12 |
canNotComputeFactorialAnalysisWithOnlyP0PartsTheMinimumIs4Parts = ** Невозможно провести факторный анализ соответствий при наличии только |
|
| 13 |
|
|
| 14 |
chi = χ² |
|
| 15 |
|
|
| 16 |
colsInfos = Инф Колонки |
|
| 17 |
|
|
| 18 |
computingCorrespondenceAnalysisOnP0WithPropertyP1 = Расчет факторного анализа соответствий |
|
| 19 |
|
|
| 20 |
contributionColumnFormat = Формат колонки Вклад |
|
| 21 |
|
|
| 22 |
coordColumnFormat = Формат колонки Coord |
|
| 23 |
|
|
| 24 |
cosColumnFormat = Формат колонки Cos² |
|
| 25 |
|
|
| 26 |
creatingCA = Создание окна ФАС |
|
| 27 |
|
|
| 28 |
distanceColumnFormat = Формат колонки Дистанция |
|
| 29 |
|
|
| 30 |
eigenvalue = Собственные значения |
|
| 31 |
|
|
| 32 |
eigenvalues = Собственные значения |
|
| 33 |
|
|
| 34 |
eigenvaluesBarChat = Гистограмма собственных значений |
|
| 35 |
|
|
| 36 |
factPlan = Факт. план |
|
| 37 |
|
|
| 38 |
infosColonP0 = Информация: {0}
|
|
| 39 |
|
|
| 40 |
loadingCorrespondenceAnalysisResults = Загрузка результатов факторного анализа |
|
| 41 |
|
|
| 42 |
massColumnFormat = Формат колонки Масса |
|
| 43 |
|
|
| 44 |
openingTheCorrespondenceAnalysisResults = Открытие результатов факторного анализа соответствий |
|
| 45 |
|
|
| 46 |
q = |
|
| 47 |
|
|
| 48 |
qualityColumnFormat = Формат колонки Качество |
|
| 49 |
|
|
| 50 |
rowsInfos = Инф Строчки |
|
| 51 |
|
|
| 52 |
showTheColumns = Показать колонки в графике факторного плана |
|
| 53 |
|
|
| 54 |
showTheRows = Показать строчки в графике факторного плана |
|
| 55 |
|
|
| 56 |
wrongInput = Ошибочный ввод |
|
| tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/messages/CAUIMessages.java (revision 1522) | ||
|---|---|---|
| 41 | 41 |
public static String eigenvalues; |
| 42 | 42 |
public static String CorrespondanceAnalysisEditorInput_11; |
| 43 | 43 |
public static String factPlan; |
| 44 |
public static String eigenvaluesHistogram;
|
|
| 44 |
public static String eigenvaluesBarChat;
|
|
| 45 | 45 |
public static String CorrespondanceAnalysisEditorInput_4; |
| 46 | 46 |
public static String eigenvalue; |
| 47 | 47 |
public static String rowsInfos; |
| ... | ... | |
| 58 | 58 |
|
| 59 | 59 |
|
| 60 | 60 |
public static String error_cannot_compute_with; |
| 61 |
|
|
| 62 | 61 |
public static String error_cannot_compute_with_selection; |
| 63 |
|
|
| 64 | 62 |
public static String error_opening; |
| 65 | 63 |
|
| 66 | 64 |
|
| tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/messages/messages_fr.properties (revision 1522) | ||
|---|---|---|
| 1 |
#TXM messages generated by the PluginMessagesManager class |
|
| 2 |
#Thu Dec 06 15:02:43 CET 2018 |
|
| 3 |
coordColumnFormat=Format de la colonne Coord |
|
| 4 |
eigenvalues=Valeurs propres |
|
| 5 |
showhidePointShapes=Afficher/Masquer les points |
|
| 6 |
showhideTheRowPoints=Afficher/Masquer les lignes |
|
| 7 |
contributionColumnFormat=Format de la colonne Contribution |
|
| 8 |
axesColon=Axes \: |
|
| 9 |
cosColumnFormat=Format de la colonne Cos² |
|
| 10 |
openingTheCorrespondenceAnalysisResults=Ouverture des résultats de l'analyse factorielle des correspondances |
|
| 11 |
showTheColumns=Afficher les colonnes |
|
| 12 |
canNotComputeFactorialAnalysisWithOnlyP0PartsTheMinimumIs4Parts=** Impossible de calculer l''analyse factorielle avec seulement {0} parties (le minimum est de 4 parties).
|
|
| 13 |
showTheRows=Afficher les lignes |
|
| 14 |
distanceColumnFormat=Format de la colonne Distance |
|
| 15 |
errorWhileOpeningCAEditorColonP0=** Erreur lors de l'ouverture de la fenêtre de résultats de l'AFC \: |
|
| 16 |
loadingCorrespondenceAnalysisResults=Chargement des résultats de l'analyse factorielle... |
|
| 17 |
factPlan=Plan fact. |
|
| 18 |
computingCorrespondenceAnalysisOnP0WithPropertyP1=Calcul de l''analyse factorielle des correspondances de {0} avec la propriété {1}
|
|
| 19 |
error_opening=** Erreur \: impossible d'ouvrir la fenêtre des résultats de l'AFC de {0}
|
|
| 20 |
showhideTheColumnPoints=Afficher/Masquer les colonnes |
|
| 21 |
CorrespondanceAnalysisEditorInput_11=∑% |
|
| 22 |
eigenvalue=Valeur propre |
|
| 23 |
canNotComputeCAOnLexicalTableWithLessThan4Columns=** Impossible de calculer l'analyse factorielle des correspondances avec moins de 4 colonnes ans la table |
|
| 24 |
chi=χ² |
|
| 25 |
showPointShapes=Afficher les points |
|
| 26 |
CorrespondanceAnalysisEditorInput_4=\# |
|
| 27 |
q=Q |
|
| 28 |
infosColonP0=Informations \: {0}
|
|
| 29 |
error_cannot_compute_with_selection=** Erreur \: impossible de calculer l'AFC avec {0}
|
|
| 30 |
wrongInput=Entrée erronée |
|
| 31 |
creatingCA=Création de la fenêtre de l'AFC |
|
| 32 |
eigenvaluesHistogram=Diagramme à barres des valeurs propres |
|
| 33 |
canNotComputeCAWithLessThan4RowsInTheTable=** Impossible de calculer l'analyse factorielle des correspondances avec moins de 4 lignes dans la table |
|
| 34 |
massColumnFormat=Format de la colonne Masse |
|
| 35 |
rowsInfos=Informations lignes |
|
| 36 |
qualityColumnFormat=Format de la colonne Qualité |
|
| 37 |
error_cannot_compute_with=** Erreur \: impossible de calculer l'AFC avec {0}
|
|
| 38 |
colsInfos=Informations sur les colonnes |
|
| 39 |
lexicalTableCreatedWhenCalledFromAPartition=Table lexicale (créée quand appelée depuis une partition) |
|
| 1 |
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/) |
|
| 2 |
#TXM messages generated by the PluginMessagesManager class |
|
| 3 |
#Thu Dec 06 15:02:43 CET 2018 |
|
| 4 |
|
|
| 5 |
CorrespondanceAnalysisEditorInput_11 = ∑% |
|
| 6 |
CorrespondanceAnalysisEditorInput_4 = # |
|
| 7 |
|
|
| 8 |
axesColon = Axes : |
|
| 9 |
|
|
| 10 |
canNotComputeCAOnLexicalTableWithLessThan4Columns = ** Impossible de calculer l'analyse factorielle des correspondances avec moins de 4 colonnes ans la table |
|
| 11 |
|
|
| 12 |
canNotComputeCAWithLessThan4RowsInTheTable = ** Impossible de calculer l'analyse factorielle des correspondances avec moins de 4 lignes dans la table |
|
| 13 |
|
|
| 14 |
canNotComputeFactorialAnalysisWithOnlyP0PartsTheMinimumIs4Parts = ** Impossible de calculer l''analyse factorielle avec seulement {0} parties (le minimum est de 4 parties).
|
|
| 15 |
|
|
| 16 |
chi = χ² |
|
| 17 |
|
|
| 18 |
colsInfos = Informations sur les colonnes |
|
| 19 |
|
|
| 20 |
computingCorrespondenceAnalysisOnP0WithPropertyP1 = Calcul de l''analyse factorielle des correspondances de {0} avec la propriété {1}
|
|
| 21 |
|
|
| 22 |
contributionColumnFormat = Format de la colonne Contribution |
|
| 23 |
|
|
| 24 |
coordColumnFormat = Format de la colonne Coord |
|
| 25 |
|
|
| 26 |
cosColumnFormat = Format de la colonne Cos² |
|
| 27 |
|
|
| 28 |
creatingCA = Création de la fenêtre de l'AFC |
|
| 29 |
|
|
| 30 |
distanceColumnFormat = Format de la colonne Distance |
|
| 31 |
|
|
| 32 |
eigenvalue = Valeur propre |
|
| 33 |
|
|
| 34 |
eigenvalues = Valeurs propres |
|
| 35 |
|
|
| 36 |
eigenvaluesBarChat = Diagramme à barres des valeurs propres |
|
| 37 |
|
|
| 38 |
errorWhileOpeningCAEditorColonP0 = ** Erreur lors de l'ouverture de la fenêtre de résultats de l'AFC : |
|
| 39 |
|
|
| 40 |
error_cannot_compute_with = ** Erreur : impossible de calculer l'AFC avec {0}
|
|
| 41 |
error_cannot_compute_with_selection = ** Erreur : impossible de calculer l'AFC avec {0}
|
|
| 42 |
error_opening = ** Erreur : impossible d'ouvrir la fenêtre des résultats de l'AFC de {0}
|
|
| 43 |
|
|
| 44 |
factPlan = Plan fact. |
|
| 45 |
|
|
| 46 |
infosColonP0 = Informations : {0}
|
|
| 47 |
|
|
| 48 |
lexicalTableCreatedWhenCalledFromAPartition = Table lexicale (créée quand appelée depuis une partition) |
|
| 49 |
|
|
| 50 |
loadingCorrespondenceAnalysisResults = Chargement des résultats de l'analyse factorielle... |
|
| 51 |
|
|
| 52 |
massColumnFormat = Format de la colonne Masse |
|
| 53 |
|
|
| 54 |
openingTheCorrespondenceAnalysisResults = Ouverture des résultats de l'analyse factorielle des correspondances |
|
| 55 |
|
|
| 56 |
q = Q |
|
| 57 |
|
|
| 58 |
qualityColumnFormat = Format de la colonne Qualité |
|
| 59 |
|
|
| 60 |
rowsInfos = Informations lignes |
|
| 61 |
|
|
| 62 |
showPointShapes = Afficher les points |
|
| 63 |
|
|
| 64 |
showTheColumns = Afficher les colonnes |
|
| 65 |
|
|
| 66 |
showTheRows = Afficher les lignes |
|
| 67 |
|
|
| 68 |
showhidePointShapes = Afficher/Masquer les points |
|
| 69 |
|
|
| 70 |
showhideTheColumnPoints = Afficher/Masquer les colonnes |
|
| 71 |
|
|
| 72 |
showhideTheRowPoints = Afficher/Masquer les lignes |
|
| 73 |
|
|
| 74 |
wrongInput = Entrée erronée |
|
| tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/messages/messages.properties (revision 1522) | ||
|---|---|---|
| 1 |
#TXM messages generated by the PluginMessagesManager class |
|
| 2 |
#Thu Dec 06 15:02:43 CET 2018 |
|
| 3 |
coordColumnFormat=Coord column format |
|
| 4 |
eigenvalues=Eigenvalues |
|
| 5 |
showhidePointShapes=Show/Hide points |
|
| 6 |
showhideTheRowPoints=Show/Hide row |
|
| 7 |
contributionColumnFormat=Contribution column format |
|
| 8 |
axesColon=Axes\: |
|
| 9 |
cosColumnFormat=Cos² column format |
|
| 10 |
openingTheCorrespondenceAnalysisResults=Opening the correspondence analysis results |
|
| 11 |
showTheColumns=Show columns |
|
| 12 |
canNotComputeFactorialAnalysisWithOnlyP0PartsTheMinimumIs4Parts=** Can not compute factorial analysis with only {0} parts (the minimum is 4 parts).
|
|
| 13 |
showTheRows=Show rows |
|
| 14 |
distanceColumnFormat=Distance column format |
|
| 15 |
errorWhileOpeningCAEditorColonP0=** Error while opening the CA result window\: |
|
| 16 |
factPlan=Fact. plane |
|
| 17 |
loadingCorrespondenceAnalysisResults=Loading correspondence analysis results… |
|
| 18 |
computingCorrespondenceAnalysisOnP0WithPropertyP1=Computing Correspondence analysis of {0} with property {1}
|
|
| 19 |
error_opening=** Error\: can not open the CA result window with {0}
|
|
| 20 |
showhideTheColumnPoints=Show/Hide column |
|
| 21 |
CorrespondanceAnalysisEditorInput_11=∑% |
|
| 22 |
eigenvalue=Eigenvalue |
|
| 23 |
canNotComputeCAOnLexicalTableWithLessThan4Columns=** Can not compute CA on lexical table with less than 4 columns in the table |
|
| 24 |
chi=χ² |
|
| 25 |
showPointShapes=Show points |
|
| 26 |
CorrespondanceAnalysisEditorInput_4=\# |
|
| 27 |
q=Q |
|
| 28 |
error_cannot_compute_with_selection=** Error\: can not compute CA with current selection\={0}
|
|
| 29 |
infosColonP0=Informations\: {0}
|
|
| 30 |
wrongInput=Wrong input |
|
| 31 |
creatingCA=Creating the CA window |
|
| 32 |
eigenvaluesHistogram=Eigenvalues bar chart |
|
| 33 |
canNotComputeCAWithLessThan4RowsInTheTable=** Can not compute CA with less than 4 rows in the table |
|
| 34 |
massColumnFormat=Mass column format |
|
| 35 |
rowsInfos=Rows informations |
|
| 36 |
error_cannot_compute_with=** Error\: can not compute CA with {0}
|
|
| 37 |
qualityColumnFormat=Quality column format |
|
| 38 |
colsInfos=Columns information |
|
| 39 |
lexicalTableCreatedWhenCalledFromAPartition=Lexical table (created when called from a partition) |
|
| 1 |
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/) |
|
| 2 |
#TXM messages generated by the PluginMessagesManager class |
|
| 3 |
#Thu Dec 06 15:02:43 CET 2018 |
|
| 4 |
|
|
| 5 |
CorrespondanceAnalysisEditorInput_11 = ∑% |
|
| 6 |
CorrespondanceAnalysisEditorInput_4 = # |
|
| 7 |
|
|
| 8 |
axesColon = Axes: |
|
| 9 |
|
|
| 10 |
canNotComputeCAOnLexicalTableWithLessThan4Columns = ** Can not compute CA on lexical table with less than 4 columns in the table |
|
| 11 |
|
|
| 12 |
canNotComputeCAWithLessThan4RowsInTheTable = ** Can not compute CA with less than 4 rows in the table |
|
| 13 |
|
|
| 14 |
canNotComputeFactorialAnalysisWithOnlyP0PartsTheMinimumIs4Parts = ** Can not compute factorial analysis with only {0} parts (the minimum is 4 parts).
|
|
| 15 |
|
|
| 16 |
chi = χ² |
|
| 17 |
|
|
| 18 |
colsInfos = Columns information |
|
| 19 |
|
|
| 20 |
computingCorrespondenceAnalysisOnP0WithPropertyP1 = Computing Correspondence analysis of {0} with property {1}
|
|
| 21 |
|
|
| 22 |
contributionColumnFormat = Contribution column format |
|
| 23 |
|
|
| 24 |
coordColumnFormat = Coord column format |
|
| 25 |
|
|
| 26 |
cosColumnFormat = Cos² column format |
|
| 27 |
|
|
| 28 |
creatingCA = Creating the CA window |
|
| 29 |
|
|
| 30 |
distanceColumnFormat = Distance column format |
|
| 31 |
|
|
| 32 |
eigenvalue = Eigenvalue |
|
| 33 |
|
|
| 34 |
eigenvalues = Eigenvalues |
|
| 35 |
|
|
| 36 |
eigenvaluesBarChat = Eigenvalues bar chart |
|
| 37 |
|
|
| 38 |
errorWhileOpeningCAEditorColonP0 = ** Error while opening the CA result window: |
|
| 39 |
|
|
| 40 |
error_cannot_compute_with = ** Error: can not compute CA with {0}
|
|
| 41 |
error_cannot_compute_with_selection = ** Error: can not compute CA with current selection={0}
|
|
| 42 |
error_opening = ** Error: can not open the CA result window with {0}
|
|
| 43 |
|
|
| 44 |
factPlan = Fact. plane |
|
| 45 |
|
|
| 46 |
infosColonP0 = Informations: {0}
|
|
| 47 |
|
|
| 48 |
lexicalTableCreatedWhenCalledFromAPartition = Lexical table (created when called from a partition) |
|
| 49 |
|
|
| 50 |
loadingCorrespondenceAnalysisResults = Loading correspondence analysis results… |
|
| 51 |
|
|
| 52 |
massColumnFormat = Mass column format |
|
| 53 |
|
|
| 54 |
openingTheCorrespondenceAnalysisResults = Opening the correspondence analysis results |
|
| 55 |
|
|
| 56 |
q = Q |
|
| 57 |
|
|
| 58 |
qualityColumnFormat = Quality column format |
|
| 59 |
|
|
| 60 |
rowsInfos = Rows informations |
|
| 61 |
|
|
| 62 |
showPointShapes = Show points |
|
| 63 |
|
|
| 64 |
showTheColumns = Show columns |
|
| 65 |
|
|
| 66 |
showTheRows = Show rows |
|
| 67 |
|
|
| 68 |
showhidePointShapes = Show/Hide points |
|
| 69 |
|
|
| 70 |
showhideTheColumnPoints = Show/Hide column |
|
| 71 |
|
|
| 72 |
showhideTheRowPoints = Show/Hide row |
|
| 73 |
|
|
| 74 |
wrongInput = Wrong input |
|
| tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/CAEditor.java (revision 1522) | ||
|---|---|---|
| 27 | 27 |
// |
| 28 | 28 |
package org.txm.ca.rcp.editors; |
| 29 | 29 |
|
| 30 |
import java.awt.Component; |
|
| 31 |
import java.awt.event.ComponentEvent; |
|
| 32 |
import java.awt.event.ComponentListener; |
|
| 33 | 30 |
import java.util.ArrayList; |
| 34 | 31 |
import java.util.Arrays; |
| 35 |
import java.util.List; |
|
| 36 | 32 |
|
| 37 | 33 |
import org.eclipse.jface.viewers.ISelectionChangedListener; |
| 38 | 34 |
import org.eclipse.jface.viewers.SelectionChangedEvent; |
| ... | ... | |
| 62 | 58 |
import org.txm.ca.rcp.messages.CAUIMessages; |
| 63 | 59 |
import org.txm.chartsengine.rcp.editors.ChartEditor; |
| 64 | 60 |
import org.txm.chartsengine.rcp.editors.ChartEditorInput; |
| 65 |
import org.txm.core.results.TXMResult; |
|
| 66 | 61 |
import org.txm.rcp.editors.SplitedGenericMultiPageEditor; |
| 67 | 62 |
import org.txm.rcp.editors.TXMMultiPageEditor; |
| 68 | 63 |
import org.txm.rcp.editors.TXMResultEditorInput; |
| 69 | 64 |
import org.txm.rcp.messages.TXMUIMessages; |
| 70 | 65 |
|
| 71 |
// TODO: Auto-generated Javadoc |
|
| 72 | 66 |
/** |
| 73 |
* extends the GenericMultipage editor, and put the first tab next to the left
|
|
| 74 |
* of the TabFolder
|
|
| 67 |
* CA editor with a factorial map chart in the left area and a tabbed area on the right side with eigenvalues, rows and columns information.
|
|
| 68 |
* |
|
| 75 | 69 |
* @author mdecorde |
| 76 | 70 |
* @author sjacquot |
| 77 | 71 |
*/ |
| ... | ... | |
| 83 | 77 |
*/ |
| 84 | 78 |
private CA ca; |
| 85 | 79 |
|
| 86 |
//public static String SEPARATOR = "SEPARATOR"; //$NON-NLS-1$ |
|
| 87 | 80 |
public static String SEPARATOR = ""; //$NON-NLS-1$ |
| 88 | 81 |
|
| 89 | 82 |
public static String COL_TYPE = "Double"; //$NON-NLS-1$ |
| 90 | 83 |
|
| 91 | 84 |
|
| 92 | 85 |
|
| 93 |
/* (non-Javadoc) |
|
| 94 |
* @see org.txm.rcp.editors.GenericMultiPageEditor#createPages() |
|
| 95 |
*/ |
|
| 96 | 86 |
@Override |
| 97 | 87 |
protected void createPages() {
|
| 98 | 88 |
|
| 89 |
// Tabs titles |
|
| 90 |
this.names = Arrays.asList(new String[] {CAUIMessages.factPlan, CAUIMessages.rowsInfos, CAUIMessages.colsInfos, CAUIMessages.eigenvaluesBarChat, CAUIMessages.eigenvalues});
|
|
| 99 | 91 |
|
| 100 |
/** The names. */ |
|
| 101 |
this.names = Arrays.asList(new String[] {CAUIMessages.factPlan, CAUIMessages.eigenvalues, CAUIMessages.rowsInfos, CAUIMessages.colsInfos, CAUIMessages.eigenvaluesHistogram });
|
|
| 102 |
|
|
| 103 |
|
|
| 104 | 92 |
Composite container = this.getContainer(); |
| 105 | 93 |
final Composite parentContainer = container.getParent(); |
| 106 | 94 |
|
| 107 |
// System.out.println("parent container layout : "+parentContainer.getLayout());
|
|
| 108 |
|
|
| 109 | 95 |
parentContainer.setLayout(new FormLayout());// change layout |
| 110 | 96 |
final Sash sash = new Sash(parentContainer, SWT.VERTICAL); |
| 111 | 97 |
|
| ... | ... | |
| 144 | 130 |
CAFactorialMapChartFormData.bottom = new FormAttachment(100, 0); |
| 145 | 131 |
mainEditorComposite.setLayoutData(CAFactorialMapChartFormData);// set new layout data |
| 146 | 132 |
mainEditorComposite.setLayout(new FillLayout()); |
| 147 |
// ///////////////////// |
|
| 148 | 133 |
|
| 149 | 134 |
|
| 150 | 135 |
editors = new ArrayList<EditorPart>(); |
| ... | ... | |
| 155 | 140 |
|
| 156 | 141 |
// Initialize the editor parts and editor inputs |
| 157 | 142 |
this.initCAFactorialMapEditor(); |
| 158 |
this.initCASingularValuesTableEditor(); |
|
| 159 | 143 |
this.initRowsTableEditor(); |
| 160 | 144 |
this.initColumnsTableEditor(); |
| 161 | 145 |
this.initCASingularValuesBarChartEditor(); |
| 146 |
this.initCASingularValuesTableEditor(); |
|
| 162 | 147 |
|
| 163 | 148 |
|
| 164 | 149 |
if (editors.size() != inputs.size()) {
|
| ... | ... | |
| 195 | 180 |
|
| 196 | 181 |
caFactorialMapEditorPart.compute(false); |
| 197 | 182 |
|
| 198 |
// to force the creation of the chart component and then add some listeners to it |
|
| 199 |
// FIXME: this code may be moved in CaFactorialMapChartEditor class |
|
| 200 |
// caFactorialMapEditorPart.refresh(false); |
|
| 201 |
|
|
| 202 |
// Axis unit square ratio constraint |
|
| 203 |
// caFactorialMapEditorPart.getComposite().getChartComponent().setSquareOffEnabled(true); |
|
| 204 |
// caFactorialMapEditorPart.getComposite().getChartComponent().squareOff(); |
|
| 205 |
// Component chartComponent = (Component) caFactorialMapEditorPart.getComposite().getChartComponent(); |
|
| 206 |
// // Axis unit square ratio constraint on resize |
|
| 207 |
// chartComponent.addComponentListener(new ComponentListener() {
|
|
| 208 |
// |
|
| 209 |
// @Override |
|
| 210 |
// public void componentShown(ComponentEvent arg0) {
|
|
| 211 |
// // TODO Auto-generated method stub |
|
| 212 |
// } |
|
| 213 |
// |
|
| 214 |
// @Override |
|
| 215 |
// public void componentResized(ComponentEvent e) {
|
|
| 216 |
// caFactorialMapEditorPart.getComposite().getChartComponent().squareOff(); |
|
| 217 |
// } |
|
| 218 |
// |
|
| 219 |
// @Override |
|
| 220 |
// public void componentMoved(ComponentEvent arg0) {
|
|
| 221 |
// // TODO Auto-generated method stub |
|
| 222 |
// } |
|
| 223 |
// |
|
| 224 |
// @Override |
|
| 225 |
// public void componentHidden(ComponentEvent arg0) {
|
|
| 226 |
// // TODO Auto-generated method stub |
|
| 227 |
// } |
|
| 228 |
// }); |
|
| 229 |
|
|
| 230 |
|
|
| 231 |
|
|
| 232 |
|
|
| 233 | 183 |
} |
| 234 | 184 |
catch (Exception e1) {
|
| 235 | 185 |
org.txm.rcp.utils.Logger.printStackTrace(e1); |
| ... | ... | |
| 291 | 241 |
|
| 292 | 242 |
|
| 293 | 243 |
// Sets the parent multi pages editor of the singular values barplot to activate it from the child editor |
| 294 |
((ChartEditor)editors.get(4)).setParentMultiPagesEditor(this);
|
|
| 244 |
((ChartEditor)editors.get(3)).setParentMultiPagesEditor(this);
|
|
| 295 | 245 |
|
| 296 | 246 |
|
| 247 |
// set the eigenvalues chart visible by default |
|
| 248 |
if(LAST_EDITOR_USED == 0) {
|
|
| 249 |
LAST_EDITOR_USED = 3; |
|
| 250 |
} |
|
| 297 | 251 |
this.setActivePage(LAST_EDITOR_USED); |
| 298 | 252 |
|
| 299 | 253 |
this.setPartName(this.getEditorInput().getName()); |
| ... | ... | |
| 303 | 257 |
* Initializes CA factorial map editor. |
| 304 | 258 |
*/ |
| 305 | 259 |
public void initCAFactorialMapEditor() {
|
| 306 |
|
|
| 307 |
// Editor part |
|
| 308 | 260 |
ChartEditor caFactorialMapEditorPart = new CAFactorialMapChartEditor(new ChartEditorInput<CA>(this.ca)); |
| 309 |
//caFactorialMapEditorPart.compute(false); |
|
| 310 | 261 |
editors.add(caFactorialMapEditorPart); |
| 311 |
|
|
| 312 |
// Editor input |
|
| 313 | 262 |
inputs.add(caFactorialMapEditorPart.getEditorInput()); |
Formats disponibles : Unified diff