Révision 225
| tmp/org.txm.cah.rcp/.project (revision 225) | ||
|---|---|---|
| 1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
| 2 |
<projectDescription> |
|
| 3 |
<name>org.txm.cah.rcp</name> |
|
| 4 |
<comment></comment> |
|
| 5 |
<projects> |
|
| 6 |
</projects> |
|
| 7 |
<buildSpec> |
|
| 8 |
<buildCommand> |
|
| 9 |
<name>org.eclipse.jdt.core.javabuilder</name> |
|
| 10 |
<arguments> |
|
| 11 |
</arguments> |
|
| 12 |
</buildCommand> |
|
| 13 |
<buildCommand> |
|
| 14 |
<name>org.eclipse.pde.ManifestBuilder</name> |
|
| 15 |
<arguments> |
|
| 16 |
</arguments> |
|
| 17 |
</buildCommand> |
|
| 18 |
<buildCommand> |
|
| 19 |
<name>org.eclipse.pde.SchemaBuilder</name> |
|
| 20 |
<arguments> |
|
| 21 |
</arguments> |
|
| 22 |
</buildCommand> |
|
| 23 |
</buildSpec> |
|
| 24 |
<natures> |
|
| 25 |
<nature>org.eclipse.pde.PluginNature</nature> |
|
| 26 |
<nature>org.eclipse.jdt.core.javanature</nature> |
|
| 27 |
</natures> |
|
| 28 |
</projectDescription> |
|
| 0 | 29 | |
| tmp/org.txm.cah.rcp/src/org/txm/cah/rcp/messages/CAUIPMessages.java (revision 225) | ||
|---|---|---|
| 1 |
package org.txm.cah.rcp.messages; |
|
| 2 |
|
|
| 3 |
import org.eclipse.osgi.util.NLS; |
|
| 4 |
import org.txm.core.messages.TXMCoreMessages; |
|
| 5 |
|
|
| 6 |
public class CAUIPMessages extends NLS {
|
|
| 7 |
|
|
| 8 |
// FIXME: use the same properties file than the bundle |
|
| 9 |
//private static final String BUNDLE_NAME = "l10n.bundle"; //$NON-NLS-1$ |
|
| 10 |
private static final String BUNDLE_NAME = "org.txm.cah.rcp.messages.messages"; //$NON-NLS-1$ |
|
| 11 |
|
|
| 12 |
|
|
| 13 |
public static String CAHPreferencePage_0; |
|
| 14 |
public static String CAHPreferencePage_2; |
|
| 15 |
public static String CAHPreferencePage_3; |
|
| 16 |
public static String CAHPreferencePage_4; |
|
| 17 |
|
|
| 18 |
public static String CAHEditor_0; |
|
| 19 |
|
|
| 20 |
public static String ComputeCAH_0; |
|
| 21 |
public static String ComputeCAH_1; |
|
| 22 |
public static String ComputeCAH_2; |
|
| 23 |
public static String ComputeCAH_3; |
|
| 24 |
public static String ComputeCAH_4; |
|
| 25 |
public static String ComputeCAH_5; |
|
| 26 |
public static String ComputeCAH_6; |
|
| 27 |
|
|
| 28 |
public static String ComputeClassification_5; |
|
| 29 |
public static String ComputeClassification_6; |
|
| 30 |
|
|
| 31 |
public static String CAHEditorTitle; |
|
| 32 |
|
|
| 33 |
static {
|
|
| 34 |
// initializes resource bundle |
|
| 35 |
TXMCoreMessages.initializeMessages(BUNDLE_NAME, CAUIPMessages.class); |
|
| 36 |
} |
|
| 37 |
|
|
| 38 |
private CAUIPMessages() {
|
|
| 39 |
} |
|
| 40 |
} |
|
| 0 | 41 | |
| tmp/org.txm.cah.rcp/src/org/txm/cah/rcp/messages/messages_fr.properties (revision 225) | ||
|---|---|---|
| 1 |
CAHPreferencePage_0=Afficher les graphiques en 2D |
|
| 2 |
CAHPreferencePage_1=Classification |
|
| 3 |
CAHPreferencePage_2=Nombre de clusters |
|
| 4 |
CAHPreferencePage_3=Méthode |
|
| 5 |
CAHPreferencePage_4=Métrique |
|
| 6 |
ComputeCAH_0=Calcul de la Classification avec {0}
|
|
| 7 |
ComputeCAH_1=Afficher le graphique |
|
| 8 |
ComputeCAH_2=** Impossible d'écrire dans le fichier temporaire |
|
| 9 |
ComputeCAH_3=Calcul de la classification avec |
|
| 10 |
ComputeCAH_5=Ouverture de la fenêtre de Classification |
|
| 11 |
ComputeCAH_6=Erreur lors de l'ouverture de l'éditeur de Classification \: {0}
|
|
| 12 |
ComputeClassification_5=Classer les colonnes |
|
| 13 |
ComputeClassification_6=Classer les lignes |
|
| 0 | 14 | |
| tmp/org.txm.cah.rcp/src/org/txm/cah/rcp/messages/messages_ru_utf8.properties (revision 225) | ||
|---|---|---|
| 1 |
ComputeCAH_0=Расчет Классификации {0}
|
|
| 2 |
ComputeCAH_1=Показать график |
|
| 3 |
ComputeCAH_2=** Не удается записать данные во временный файл |
|
| 4 |
ComputeCAH_3=Расчет классификации с |
|
| 5 |
ComputeClassification_5=Колонки |
|
| 6 |
ComputeClassification_6=Строчки |
|
| 7 |
CAHPreferencePage_0=Показывать графики в 2D |
|
| 8 |
CAHPreferencePage_1=Классификация |
|
| 9 |
CAHPreferencePage_2=Число кластеров |
|
| 10 |
CAHPreferencePage_3=Метод |
|
| 11 |
CAHPreferencePage_4=Метрика |
|
| 0 | 12 | |
| tmp/org.txm.cah.rcp/src/org/txm/cah/rcp/messages/messages.properties (revision 225) | ||
|---|---|---|
| 1 |
CAHPreferencePage_0=Display graphics in |
|
| 2 |
CAHPreferencePage_1=Classification |
|
| 3 |
CAHPreferencePage_2=Number of clusters |
|
| 4 |
CAHPreferencePage_3=Method |
|
| 5 |
CAHPreferencePage_4=Metric |
|
| 6 |
ComputeCAH_0=Compute Classification with {0}
|
|
| 7 |
ComputeCAH_1=Show graphic |
|
| 8 |
ComputeCAH_2=Error\: temporary file created cannot be written\: |
|
| 9 |
ComputeCAH_3=Computing CAH with |
|
| 10 |
ComputeCAH_4=Statistics Engine is not ready. Canceling command. |
|
| 11 |
ComputeCAH_5=Opening the Classification result |
|
| 12 |
ComputeCAH_6=Error while computing Classification\: {0}
|
|
| 13 |
ComputeClassification_5=Compute columns |
|
| 14 |
ComputeClassification_6=Compute rows |
|
| 0 | 15 | |
| tmp/org.txm.cah.rcp/src/org/txm/cah/rcp/editors/CAHChartEditor.java (revision 225) | ||
|---|---|---|
| 1 |
package org.txm.cah.rcp.editors; |
|
| 2 |
|
|
| 3 |
import org.eclipse.swt.SWT; |
|
| 4 |
import org.eclipse.swt.custom.CLabel; |
|
| 5 |
import org.eclipse.swt.events.SelectionEvent; |
|
| 6 |
import org.eclipse.swt.events.SelectionListener; |
|
| 7 |
import org.eclipse.swt.graphics.Image; |
|
| 8 |
import org.eclipse.swt.widgets.Composite; |
|
| 9 |
import org.eclipse.swt.widgets.Spinner; |
|
| 10 |
import org.eclipse.swt.widgets.ToolItem; |
|
| 11 |
import org.txm.cah.core.functions.CAH; |
|
| 12 |
import org.txm.cah.core.preferences.CAHPreferences; |
|
| 13 |
import org.txm.cah.rcp.commands.ComputeCAH; |
|
| 14 |
import org.txm.cah.rcp.messages.CAUIPMessages; |
|
| 15 |
import org.txm.chartsengine.rcp.editors.ChartEditorPart; |
|
| 16 |
import org.txm.chartsengine.rcp.messages.SWTComponentsProviderMessages; |
|
| 17 |
import org.txm.functions.TXMResult; |
|
| 18 |
import org.txm.rcpapplication.IImageKeys; |
|
| 19 |
import org.txm.rcpapplication.TxmPreferences; |
|
| 20 |
import org.txm.rcpapplication.commands.editor.CustomizableEditor; |
|
| 21 |
import org.txm.searchengine.cqp.corpus.Corpus; |
|
| 22 |
import org.txm.stat.engine.r.RWorkspaceException; |
|
| 23 |
|
|
| 24 |
/** |
|
| 25 |
* CAH chart editor. |
|
| 26 |
* |
|
| 27 |
* @author mdecorde |
|
| 28 |
* @author sjacquot |
|
| 29 |
* |
|
| 30 |
*/ |
|
| 31 |
public class CAHChartEditor extends ChartEditorPart implements CustomizableEditor {
|
|
| 32 |
|
|
| 33 |
|
|
| 34 |
|
|
| 35 |
/** |
|
| 36 |
* Numbers of clusters. |
|
| 37 |
*/ |
|
| 38 |
protected Spinner numbersOfClusters; |
|
| 39 |
|
|
| 40 |
|
|
| 41 |
|
|
| 42 |
@Override |
|
| 43 |
public void createPartControl(Composite parent) {
|
|
| 44 |
|
|
| 45 |
super.createPartControl(parent); |
|
| 46 |
|
|
| 47 |
|
|
| 48 |
// Extend the chart editor tool bar |
|
| 49 |
ToolItem separator = new ToolItem(this.toolBar, SWT.SEPARATOR); |
|
| 50 |
|
|
| 51 |
// Number of clusters |
|
| 52 |
ToolItem itemSeparator = new ToolItem(this.toolBar, SWT.SEPARATOR); |
|
| 53 |
CLabel clustersLabel = new CLabel(this.toolBar, SWT.CENTER); |
|
| 54 |
clustersLabel.setText(SWTComponentsProviderMessages.SWTChartsComponentProvider_CAH_TOOLBAR_BUTTON_NUMBER_OF_CLUSTERS); |
|
| 55 |
clustersLabel.pack(); |
|
| 56 |
itemSeparator.setWidth(clustersLabel.getBounds().width); |
|
| 57 |
itemSeparator.setControl(clustersLabel); |
|
| 58 |
|
|
| 59 |
itemSeparator = new ToolItem(this.toolBar, SWT.SEPARATOR); |
|
| 60 |
this.numbersOfClusters = new Spinner(this.toolBar, SWT.BORDER); |
|
| 61 |
this.numbersOfClusters.setMinimum(2); |
|
| 62 |
this.numbersOfClusters.setIncrement(1); |
|
| 63 |
this.updateNumbersOfClustersCurrentValue(); |
|
| 64 |
this.updateNumbersOfClustersMaxValue(); |
|
| 65 |
|
|
| 66 |
itemSeparator.setControl(this.numbersOfClusters); |
|
| 67 |
this.numbersOfClusters.pack(); |
|
| 68 |
itemSeparator.setWidth(this.numbersOfClusters.getBounds().width); |
|
| 69 |
|
|
| 70 |
|
|
| 71 |
// Columns |
|
| 72 |
final ToolItem computeColumns = new ToolItem(this.toolBar, SWT.RADIO); |
|
| 73 |
computeColumns.setToolTipText(CAUIPMessages.ComputeClassification_5); |
|
| 74 |
computeColumns.setImage(IImageKeys.getImage(this, "icons/compute_columns.png")); |
|
| 75 |
// FIXME: keep this for offering an option "large icons" with text in buttons ? |
|
| 76 |
//computeColumns.setText(CAUIPMessages.ComputeClassification_5); |
|
| 77 |
computeColumns.setSelection(this.getResultData().isColumnsComputing()); |
|
| 78 |
|
|
| 79 |
// Rows |
|
| 80 |
final ToolItem computeRows = new ToolItem(this.toolBar, SWT.RADIO); |
|
| 81 |
computeRows.setToolTipText(CAUIPMessages.ComputeClassification_6); |
|
| 82 |
computeRows.setImage(IImageKeys.getImage(this, "icons/compute_rows.png")); |
|
| 83 |
// FIXME: keep this for offering an option "large icons" with text in buttons ? |
|
| 84 |
//computeRows.setText(CAUIPMessages.ComputeClassification_6); |
|
| 85 |
computeRows.setSelection(!this.getResultData().isColumnsComputing()); |
|
| 86 |
|
|
| 87 |
|
|
| 88 |
|
|
| 89 |
// Listeners |
|
| 90 |
final ChartEditorPart self = this; |
|
| 91 |
|
|
| 92 |
SelectionListener listener = new SelectionListener() {
|
|
| 93 |
|
|
| 94 |
@Override |
|
| 95 |
public void widgetSelected(SelectionEvent e) {
|
|
| 96 |
try {
|
|
| 97 |
CAH cah = getResultData(); |
|
| 98 |
|
|
| 99 |
// Numbers of clusters |
|
| 100 |
if(e.getSource() == numbersOfClusters) {
|
|
| 101 |
cah.setNCluster(((Spinner)e.getSource()).getSelection()); |
|
| 102 |
} |
|
| 103 |
// Compute columns or rows |
|
| 104 |
else if(e.getSource() == computeColumns || e.getSource() == computeRows) {
|
|
| 105 |
cah.setColumnsComputing(((ToolItem)e.getSource()).getSelection()); |
|
| 106 |
cah.setNCluster(TxmPreferences.getInt(CAHPreferences.NCLUSTER)); |
|
| 107 |
updateNumbersOfClustersCurrentValue(); |
|
| 108 |
} |
|
| 109 |
|
|
| 110 |
// Update the maximum value of the number of clusters spinner according to the new CAH configuration |
|
| 111 |
updateNumbersOfClustersMaxValue(); |
|
| 112 |
|
|
| 113 |
// Recompute the CAH |
|
| 114 |
ComputeCAH.compute(cah, self); |
|
| 115 |
|
|
| 116 |
} |
|
| 117 |
catch(RWorkspaceException e1) {
|
|
| 118 |
// TODO Auto-generated catch block |
|
| 119 |
e1.printStackTrace(); |
|
| 120 |
} |
|
| 121 |
} |
|
| 122 |
|
|
| 123 |
@Override |
|
| 124 |
public void widgetDefaultSelected(SelectionEvent e) {
|
|
| 125 |
// TODO Auto-generated method stub |
|
| 126 |
|
|
| 127 |
} |
|
| 128 |
}; |
|
| 129 |
|
|
| 130 |
this.numbersOfClusters.addSelectionListener(listener); |
|
| 131 |
computeColumns.addSelectionListener(listener); |
|
| 132 |
computeRows.addSelectionListener(listener); |
|
| 133 |
|
|
| 134 |
} |
|
| 135 |
|
|
| 136 |
|
|
| 137 |
/** |
|
| 138 |
* Updates the maximum value of the number of clusters spinner according to the CAH configuration. |
|
| 139 |
*/ |
|
| 140 |
public void updateNumbersOfClustersMaxValue() {
|
|
| 141 |
this.numbersOfClusters.setMaximum(this.getResultData().getMaxClustersCount()); |
|
| 142 |
} |
|
| 143 |
|
|
| 144 |
/** |
|
| 145 |
* Updates the current value of the number of clusters spinner. |
|
| 146 |
*/ |
|
| 147 |
public void updateNumbersOfClustersCurrentValue() {
|
|
| 148 |
this.numbersOfClusters.setSelection(this.getResultData().getNCluster()); |
|
| 149 |
} |
|
| 150 |
|
|
| 151 |
|
|
| 152 |
@Override |
|
| 153 |
public void setName(String name) {
|
|
| 154 |
this.setPartName(name); |
|
| 155 |
} |
|
| 156 |
|
|
| 157 |
@Override |
|
| 158 |
public void setIcon(Image titleImage) {
|
|
| 159 |
this.setTitleImage(titleImage); |
|
| 160 |
} |
|
| 161 |
|
|
| 162 |
@Override |
|
| 163 |
public void setSource(Object source) {
|
|
| 164 |
if (source instanceof CAH) |
|
| 165 |
getEditorInput().setResultData((TXMResult) source); |
|
| 166 |
} |
|
| 167 |
|
|
| 168 |
@Override |
|
| 169 |
public Object getSource() {
|
|
| 170 |
return getResultData(); |
|
| 171 |
} |
|
| 172 |
|
|
| 173 |
@Override |
|
| 174 |
public Object toConcordance() {
|
|
| 175 |
// TODO Auto-generated method stub |
|
| 176 |
return null; |
|
| 177 |
} |
|
| 178 |
@Override |
|
| 179 |
public Object toIndex() {
|
|
| 180 |
// TODO Auto-generated method stub |
|
| 181 |
return null; |
|
| 182 |
} |
|
| 183 |
@Override |
|
| 184 |
public Object toProgression() {
|
|
| 185 |
// TODO Auto-generated method stub |
|
| 186 |
return null; |
|
| 187 |
} |
|
| 188 |
|
|
| 189 |
|
|
| 190 |
|
|
| 191 |
@Override |
|
| 192 |
public CAH getResultData() {
|
|
| 193 |
return (CAH) super.getResultData(); |
|
| 194 |
} |
|
| 195 |
|
|
| 196 |
|
|
| 197 |
|
|
| 198 |
@Override |
|
| 199 |
public boolean usingCorpus(Corpus corpus) {
|
|
| 200 |
CAH cah = getResultData(); |
|
| 201 |
if (cah != null && cah.getCorpus() != null) |
|
| 202 |
return cah.getCorpus().getName().equals(corpus.getName()); |
|
| 203 |
return false; |
|
| 204 |
} |
|
| 205 |
|
|
| 206 |
|
|
| 207 |
@Override |
|
| 208 |
public boolean updateCorpus(Corpus corpus) {
|
|
| 209 |
// TODO Auto-generated method stub |
|
| 210 |
return false; |
|
| 211 |
} |
|
| 212 |
} |
|
| 0 | 213 | |
| tmp/org.txm.cah.rcp/src/org/txm/cah/rcp/commands/package.html (revision 225) | ||
|---|---|---|
| 1 |
<html> |
|
| 2 |
<body> |
|
| 3 |
<p>Commands which call textometry functions</p> |
|
| 4 |
</body> |
|
| 5 |
</html> |
|
| 0 | 6 | |
| tmp/org.txm.cah.rcp/src/org/txm/cah/rcp/commands/ComputeCAH.java (revision 225) | ||
|---|---|---|
| 1 |
// Copyright © 2010-2013 ENS de Lyon. |
|
| 2 |
// Copyright © 2007-2010 ENS de Lyon, CNRS, INRP, University of |
|
| 3 |
// Lyon 2, University of Franche-Comté, University of Nice |
|
| 4 |
// Sophia Antipolis, University of Paris 3. |
|
| 5 |
// |
|
| 6 |
// The TXM platform is free software: you can redistribute it |
|
| 7 |
// and/or modify it under the terms of the GNU General Public |
|
| 8 |
// License as published by the Free Software Foundation, |
|
| 9 |
// either version 2 of the License, or (at your option) any |
|
| 10 |
// later version. |
|
| 11 |
// |
|
| 12 |
// The TXM platform is distributed in the hope that it will be |
|
| 13 |
// useful, but WITHOUT ANY WARRANTY; without even the implied |
|
| 14 |
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
|
| 15 |
// PURPOSE. See the GNU General Public License for more |
|
| 16 |
// details. |
|
| 17 |
// |
|
| 18 |
// You should have received a copy of the GNU General |
|
| 19 |
// Public License along with the TXM platform. If not, see |
|
| 20 |
// http://www.gnu.org/licenses. |
|
| 21 |
// |
|
| 22 |
// |
|
| 23 |
// |
|
| 24 |
// $LastChangedDate:$ |
|
| 25 |
// $LastChangedRevision:$ |
|
| 26 |
// $LastChangedBy:$ |
|
| 27 |
// |
|
| 28 |
package org.txm.cah.rcp.commands; |
|
| 29 |
|
|
| 30 |
import org.eclipse.core.commands.AbstractHandler; |
|
| 31 |
import org.eclipse.core.commands.ExecutionEvent; |
|
| 32 |
import org.eclipse.core.commands.ExecutionException; |
|
| 33 |
import org.eclipse.core.runtime.IProgressMonitor; |
|
| 34 |
import org.eclipse.core.runtime.IStatus; |
|
| 35 |
import org.eclipse.core.runtime.Status; |
|
| 36 |
import org.eclipse.jface.dialogs.Dialog; |
|
| 37 |
import org.eclipse.jface.viewers.IStructuredSelection; |
|
| 38 |
import org.eclipse.jface.window.Window; |
|
| 39 |
import org.eclipse.swt.SWT; |
|
| 40 |
import org.eclipse.swt.layout.GridLayout; |
|
| 41 |
import org.eclipse.swt.widgets.Button; |
|
| 42 |
import org.eclipse.swt.widgets.Composite; |
|
| 43 |
import org.eclipse.swt.widgets.Control; |
|
| 44 |
import org.eclipse.swt.widgets.Display; |
|
| 45 |
import org.eclipse.swt.widgets.Label; |
|
| 46 |
import org.eclipse.swt.widgets.Shell; |
|
| 47 |
import org.eclipse.swt.widgets.Spinner; |
|
| 48 |
import org.eclipse.ui.handlers.HandlerUtil; |
|
| 49 |
import org.txm.Toolbox; |
|
| 50 |
import org.txm.ca.core.functions.CA; |
|
| 51 |
import org.txm.ca.core.preferences.CAPreferences; |
|
| 52 |
import org.txm.cah.core.functions.CAH; |
|
| 53 |
import org.txm.cah.core.preferences.CAHPreferences; |
|
| 54 |
import org.txm.cah.rcp.messages.CAUIPMessages; |
|
| 55 |
import org.txm.chartsengine.rcp.SWTChartsComponentsProvider; |
|
| 56 |
import org.txm.chartsengine.rcp.editors.ChartEditorPart; |
|
| 57 |
import org.txm.core.preferences.TXMPreferences; |
|
| 58 |
import org.txm.lexicaltable.functions.LexicalTableFactory; |
|
| 59 |
import org.txm.rcpapplication.JobsTimer; |
|
| 60 |
import org.txm.rcpapplication.TxmPreferences; |
|
| 61 |
import org.txm.rcpapplication.actions.LexicalTableDialog; |
|
| 62 |
import org.txm.rcpapplication.utils.JobHandler; |
|
| 63 |
import org.txm.rcpapplication.views.CorporaView; |
|
| 64 |
import org.txm.rcpapplication.views.QueriesView; |
|
| 65 |
import org.txm.rcpapplication.views.RVariablesView; |
|
| 66 |
import org.txm.searchengine.cqp.corpus.Partition; |
|
| 67 |
import org.txm.searchengine.cqp.corpus.Property; |
|
| 68 |
import org.txm.stat.StatException; |
|
| 69 |
import org.txm.stat.data.LexicalTable; |
|
| 70 |
import org.txm.stat.engine.r.RWorkspaceException; |
|
| 71 |
import org.txm.utils.logger.Log; |
|
| 72 |
|
|
| 73 |
/** |
|
| 74 |
* If the selection is a CA or a Lexical Table result computes the CAH. |
|
| 75 |
* |
|
| 76 |
* @author mdecorde |
|
| 77 |
* @author sjacquot |
|
| 78 |
*/ |
|
| 79 |
public class ComputeCAH extends AbstractHandler {
|
|
| 80 |
|
|
| 81 |
|
|
| 82 |
// FIXME: should be put in an Activator? or better in an extension point loaded by the corpora view? or in a method called here as initTreeDoubleClickListener(Class resultDataType, String commandId)? |
|
| 83 |
// adds a double click listener to the Corpus View |
|
| 84 |
static {
|
|
| 85 |
CorporaView.addDoubleClickListener(CAH.class, "ComputeCAH"); //$NON-NLS-1$ |
|
| 86 |
} |
|
| 87 |
|
|
| 88 |
|
|
| 89 |
/* (non-Javadoc) |
|
| 90 |
* @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent) |
|
| 91 |
*/ |
|
| 92 |
@Override |
|
| 93 |
public Object execute(ExecutionEvent event) throws ExecutionException {
|
|
| 94 |
|
|
| 95 |
|
|
| 96 |
if (!Toolbox.isStatEngineInitialized()) {
|
|
| 97 |
System.out.println(CAUIPMessages.ComputeCAH_4); |
|
| 98 |
return null; |
|
| 99 |
} |
|
| 100 |
|
|
| 101 |
CAH cah = null; |
|
| 102 |
CA ca = null; |
|
| 103 |
LexicalTable lexicaltable = null; |
|
| 104 |
Partition partition = null; |
|
| 105 |
IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event); |
|
| 106 |
|
|
| 107 |
|
|
| 108 |
// Build the CA or not depending on the selection |
|
| 109 |
if (selection.getFirstElement() instanceof CAH) {
|
|
| 110 |
cah = (CAH) selection.getFirstElement(); |
|
| 111 |
} else if (selection.getFirstElement() instanceof CA) {
|
|
| 112 |
//System.out.println("Compute CAH with CA : "+((CA)selection.getFirstElement()).getName());
|
|
| 113 |
ca = (CA) selection.getFirstElement(); |
|
| 114 |
} else if (selection.getFirstElement() instanceof LexicalTable) {
|
|
| 115 |
//System.out.println("Compute CAH with LT : "+((LexicalTable)selection.getFirstElement()).getName());
|
|
| 116 |
lexicaltable = (LexicalTable) selection.getFirstElement(); |
|
| 117 |
|
|
| 118 |
try {
|
|
| 119 |
ca = new CA(lexicaltable); |
|
| 120 |
} catch (StatException e) {
|
|
| 121 |
System.out.println("Failed to build the CA with lexical table " + lexicaltable + ": " + e);
|
|
| 122 |
Log.printStackTrace(e); |
|
| 123 |
} |
|
| 124 |
lexicaltable.storeResult(ca); |
|
| 125 |
|
|
| 126 |
// if (lexicaltable.getPartition() != null) |
|
| 127 |
// lexicaltable.getPartition().storeResult(ca); |
|
| 128 |
// else if (lexicaltable.getCorpus() != null) |
|
| 129 |
// lexicaltable.getCorpus().storeResult(ca); |
|
| 130 |
} else if (selection.getFirstElement() instanceof Partition) {
|
|
| 131 |
//System.out.println("Compute CAH with Partition : "+((Partition)selection.getFirstElement()).getName());
|
|
| 132 |
partition = (Partition)selection.getFirstElement(); |
|
| 133 |
try {
|
|
| 134 |
String title = CAUIPMessages.bind(CAUIPMessages.ComputeCAH_0, partition.getName()); |
|
| 135 |
int vmax = TXMPreferences.getInt(CAPreferences.PREFERENCES_NODE, CAPreferences.V_MAX); |
|
| 136 |
int fmin = TXMPreferences.getInt(CAPreferences.PREFERENCES_NODE, CAPreferences.F_MIN); |
|
| 137 |
Shell shell = Display.getCurrent().getActiveShell(); |
|
| 138 |
LexicalTableDialog d = new LexicalTableDialog(shell, partition.getCorpus(), title); |
|
| 139 |
d.setFminAndVMax(fmin, vmax); |
|
| 140 |
|
|
| 141 |
if (d.open() == Window.OK) {
|
|
| 142 |
Property property = d.getProperty(); |
|
| 143 |
fmin = d.getFmin(); |
|
| 144 |
vmax = d.getMaxLines(); |
|
| 145 |
|
|
| 146 |
lexicaltable = LexicalTableFactory.getLexicalTable(partition, property, fmin); // use the CAPreferencePage Fmin |
|
| 147 |
lexicaltable.cut(vmax); |
|
| 148 |
partition.storeResult(lexicaltable); |
|
| 149 |
|
|
| 150 |
ca = new CA(lexicaltable); |
|
| 151 |
lexicaltable.storeResult(ca); |
|
| 152 |
} else {
|
|
| 153 |
// canceled |
|
| 154 |
return null; |
|
| 155 |
} |
|
| 156 |
} catch (Exception e) {
|
|
| 157 |
System.out.println("Failed to build the lexical table of " + partition + ": " + e);
|
|
| 158 |
Log.printStackTrace(e); |
|
| 159 |
return null; |
|
| 160 |
} |
|
| 161 |
} |
|
| 162 |
|
|
| 163 |
final boolean computeColumns = true; |
|
| 164 |
|
|
| 165 |
// Use existent CAH (used when reopening an editor from a CAH result node) |
|
| 166 |
if (cah != null) {
|
|
| 167 |
if (cah.getParent() != null) {
|
|
| 168 |
cah.getParent().removeResult(cah); |
|
| 169 |
} |
|
| 170 |
} else {
|
|
| 171 |
// if (ca == null) cah = new CAH(lexicaltable, computeColumns, method, metric, ncluster, display2D); |
|
| 172 |
// else |
|
| 173 |
cah = new CAH(ca, computeColumns, |
|
| 174 |
TXMPreferences.getString(CAHPreferences.PREFERENCES_NODE, CAHPreferences.METHOD), |
|
| 175 |
TXMPreferences.getString(CAHPreferences.PREFERENCES_NODE, CAHPreferences.METRIC), |
|
| 176 |
TXMPreferences.getInt(CAHPreferences.PREFERENCES_NODE, CAHPreferences.NCLUSTER) |
|
| 177 |
); |
|
| 178 |
} |
|
| 179 |
|
|
| 180 |
try {
|
|
| 181 |
compute(cah, null); |
|
| 182 |
} |
|
| 183 |
catch(RWorkspaceException e) {
|
|
| 184 |
System.out.println("Failed to compute CAH: "+e);
|
|
| 185 |
Log.printStackTrace(e); |
|
| 186 |
} |
|
| 187 |
|
|
| 188 |
return null; |
|
| 189 |
} |
|
| 190 |
|
|
| 191 |
/** |
|
| 192 |
* Computes the CAH. Also creates the chart. Opens a chart editor if <code>chartEditor</code> is null otherwise refreshes the existing chart editor. |
|
| 193 |
* @param newResult |
|
| 194 |
* @throws RWorkspaceException |
|
| 195 |
*/ |
|
| 196 |
public static void compute(final CAH cah, final ChartEditorPart chartEditor) throws RWorkspaceException {
|
|
| 197 |
|
|
| 198 |
JobHandler jobhandler = new JobHandler(CAUIPMessages.CAHEditor_0) {
|
|
| 199 |
@Override |
|
| 200 |
protected IStatus run(IProgressMonitor monitor) {
|
|
| 201 |
this.runInit(monitor); |
|
| 202 |
try {
|
|
| 203 |
|
|
| 204 |
this.acquireSemaphore(); |
|
| 205 |
cah.stepCompute(); |
|
| 206 |
this.releaseSemaphore(); |
|
| 207 |
|
|
| 208 |
// Store result |
|
| 209 |
if(chartEditor == null) {
|
|
| 210 |
// if (cah.getPartition() != null) {
|
|
| 211 |
// cah.getPartition().storeResult(cah); |
|
| 212 |
// } |
|
| 213 |
// else if (cah.getCorpus() != null) {
|
|
| 214 |
// cah.getCorpus().storeResult(cah); |
|
| 215 |
// } |
|
| 216 |
cah.getCA().storeResult(cah); |
|
| 217 |
} |
|
| 218 |
|
|
| 219 |
// Refresh views |
|
| 220 |
this.syncExec(new Runnable() {
|
|
| 221 |
@Override |
|
| 222 |
public void run() {
|
|
| 223 |
|
|
| 224 |
// Create a new chart editor |
|
| 225 |
if(chartEditor == null) {
|
|
| 226 |
SWTChartsComponentsProvider.getCurrent().openEditor(cah.getName(), cah, CAHPreferences.PREFERENCES_NODE); |
|
| 227 |
|
|
| 228 |
// FIXME: temporary force R/SVG version because the CAH charts are not yet implemented in JFC mode |
|
| 229 |
// RChartsEngine tmpChartsEngine = new RChartsEngine(ChartsEngine.OUTPUT_FORMAT_SVG); |
|
| 230 |
// SVGSWTChartsComponentsProvider tmpSWTComponentsProvider = (SVGSWTChartsComponentsProvider) SWTChartsComponentsProvider.getComponentsProvider(tmpChartsEngine); |
|
| 231 |
// // FIXME: charts creator is not yet implemented |
|
| 232 |
// //ChartEditorPart chartEditor = tmpSWTComponentsProvider.createCAHChartEditorPart(IImageKeys.getImage(IImageKeys.ACTION_CAH), cah); |
|
| 233 |
// // Create and open the chart editor |
|
| 234 |
// tmpSWTComponentsProvider.openEditor(chartEditor); |
|
| 235 |
} |
|
| 236 |
// Refresh the existing chart editor |
|
| 237 |
else {
|
|
| 238 |
// FIXME: charts creator is not yet implemented |
|
| 239 |
// Create and load the new chart |
|
| 240 |
//chartEditor.getComposite().loadChart(tmpChartsEngine.createCAHChart(((CAHChartEditor) chartEditor).getResultData(), ((CAHChartEditor) chartEditor).getResultData().isDisplay2D())); |
|
| 241 |
chartEditor.forceFocus(); |
|
| 242 |
} |
|
| 243 |
|
|
| 244 |
|
|
| 245 |
// Refresh UI |
|
| 246 |
CorporaView.refresh(); |
|
| 247 |
CorporaView.expand(cah.getParent()); |
|
| 248 |
QueriesView.refresh(); |
|
| 249 |
RVariablesView.refresh(); |
|
| 250 |
} |
|
| 251 |
}); |
|
| 252 |
|
|
| 253 |
|
|
| 254 |
} |
|
| 255 |
catch (ThreadDeath td) {
|
|
| 256 |
return Status.CANCEL_STATUS; |
|
| 257 |
} |
|
| 258 |
catch (Exception e) {
|
|
| 259 |
System.out.println(e.getLocalizedMessage()); |
|
| 260 |
org.txm.rcpapplication.utils.Logger.printStackTrace(e); |
|
| 261 |
Log.severe("Error while computing CAH: "+e.getLocalizedMessage());
|
|
| 262 |
} |
|
| 263 |
finally {
|
|
| 264 |
monitor.done(); |
|
| 265 |
JobsTimer.stopAndPrint(); |
|
| 266 |
} |
|
| 267 |
return Status.OK_STATUS; |
|
| 268 |
} |
|
| 269 |
}; |
|
| 270 |
jobhandler.startJob(); |
|
| 271 |
|
|
| 272 |
} |
|
| 273 |
|
|
| 274 |
|
|
| 275 |
|
|
| 276 |
|
|
| 277 |
|
|
| 278 |
|
|
| 279 |
|
|
| 280 |
|
|
| 281 |
// FIXME: to remove when charts engine will be validated, be careful this method contains some old code to open a dialog bog, do we need to keep it ? |
|
| 282 |
// public Object execute1(ExecutionEvent event) throws ExecutionException {
|
|
| 283 |
// |
|
| 284 |
// if (!Toolbox.isStatEngineInitialized()) {
|
|
| 285 |
// System.out.println("StatEngine is not ready. Canceling command.");
|
|
| 286 |
// return null; |
|
| 287 |
// } |
|
| 288 |
// |
|
| 289 |
// HandlerUtil.getActiveWorkbenchWindow(event); |
|
| 290 |
// IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event); |
|
| 291 |
// |
|
| 292 |
// if (selection.getFirstElement() instanceof CA) {
|
|
| 293 |
// //System.out.println("Compute CAH with CA : "+((CA)selection.getFirstElement()).getName());
|
|
| 294 |
// ca = (CA) selection.getFirstElement(); |
|
| 295 |
// } else if (selection.getFirstElement() instanceof LexicalTable) {
|
|
| 296 |
// //System.out.println("Compute CAH with LT : "+((LexicalTable)selection.getFirstElement()).getName());
|
|
| 297 |
// lexicaltable = (LexicalTable) selection.getFirstElement(); |
|
| 298 |
// } |
|
| 299 |
// |
|
| 300 |
// openEditor1(ca, lexicaltable); |
|
| 301 |
// |
|
| 302 |
//// //Open CAH parameters dialog |
|
| 303 |
//// CAHParamDialog d = new CAHParamDialog(window.getShell()); |
|
| 304 |
//// |
|
| 305 |
//// if (d.open() == Window.OK) {
|
|
| 306 |
//// final int ncluster = d.getNcluster(); |
|
| 307 |
//// final String metric = TxmPreferences.getString(CAHPreferences.METRIC, CAH.getDefaultMetric()); |
|
| 308 |
//// final String method = TxmPreferences.getString(CAHPreferences.METHOD, CAH.getDefaultMethod()); |
|
| 309 |
//// final Boolean displayMode = TxmPreferences.getBoolean(CAHPreferences.DISPLAY, false); |
|
| 310 |
//// final boolean docol = d.isDoculumns(); |
|
| 311 |
//// |
|
| 312 |
//// JobHandler jobhandler = new JobHandler(RCPCAHMessages.ComputeCAH_3+ca.getName()) {
|
|
| 313 |
//// @Override |
|
| 314 |
//// protected IStatus run(IProgressMonitor monitor) {
|
|
| 315 |
//// try {
|
|
| 316 |
//// JobsTimer.start(); |
|
| 317 |
//// monitor.beginTask("", 100); //$NON-NLS-1$
|
|
| 318 |
//// |
|
| 319 |
//// monitor.subTask(RCPCAHMessages.ComputeCAH_0); |
|
| 320 |
//// |
|
| 321 |
//// final CAH cah; |
|
| 322 |
//// if (ca != null) {
|
|
| 323 |
//// cah = new CAH(ca, docol, method, metric, ncluster, displayMode); |
|
| 324 |
//// cah.stepCompute(); |
|
| 325 |
//// ca.getPartition().storeResult(cah); |
|
| 326 |
//// } else {
|
|
| 327 |
//// cah = new CAH(lexicaltable, docol, method, metric, ncluster, displayMode); |
|
| 328 |
//// cah.stepCompute(); |
|
| 329 |
//// lexicaltable.getPartition().storeResult(cah); |
|
| 330 |
//// } |
|
| 331 |
//// if (monitor.isCanceled()) |
|
| 332 |
//// return Status.CANCEL_STATUS; |
|
| 333 |
//// |
|
| 334 |
//// monitor.worked(20); |
|
| 335 |
//// |
|
| 336 |
//// monitor.subTask(RCPCAHMessages.ComputeCAH_1); |
|
| 337 |
//// |
|
| 338 |
//// syncExec(new Runnable() {
|
|
| 339 |
//// @Override |
|
| 340 |
//// public void run() {
|
|
| 341 |
//// |
|
| 342 |
//// RDevice device = RDevice.valueOf(TxmPreferences.getString(ExportPreferencePage.RDEVICE, RDevice.SVG.toString())); |
|
| 343 |
//// String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME); |
|
| 344 |
//// File resultDir = new File(txmhome, "results"); //$NON-NLS-1$ |
|
| 345 |
//// resultDir.mkdirs(); |
|
| 346 |
//// File outfile; |
|
| 347 |
//// try {
|
|
| 348 |
//// outfile = File.createTempFile("cah", device.getExt(), resultDir); //$NON-NLS-1$
|
|
| 349 |
//// if (!outfile.canWrite()) {
|
|
| 350 |
//// System.out.println(NLS.bind(RCPCAHMessages.ComputeCAH_2, outfile)); |
|
| 351 |
//// } |
|
| 352 |
//// } catch (IOException e1) {
|
|
| 353 |
//// // TODO Auto-generated catch block |
|
| 354 |
//// org.txm.rcpapplication.utils.Logger.printStackTrace(e1); |
|
| 355 |
//// return; |
|
| 356 |
//// } |
|
| 357 |
//// |
|
| 358 |
//// try {
|
|
| 359 |
//// //System.out.println("CAH file : "+outfile);
|
|
| 360 |
//// cah.toSVG(outfile, device); |
|
| 361 |
//// OpenGraph.OpenFile(outfile, device, cah.getPartition().getName()+": "+cah.getName(), IImageKeys.ACTION_CAH); //$NON-NLS-1$ |
|
| 362 |
//// } catch (REXPMismatchException e) {
|
|
| 363 |
//// // TODO Auto-generated catch block |
|
| 364 |
//// org.txm.rcpapplication.utils.Logger.printStackTrace(e); |
|
| 365 |
//// } catch (StatException e) {
|
|
| 366 |
//// // TODO Auto-generated catch block |
|
| 367 |
//// org.txm.rcpapplication.utils.Logger.printStackTrace(e); |
|
| 368 |
//// } |
|
| 369 |
//// } |
|
| 370 |
//// }); |
|
| 371 |
//// monitor.worked(50); |
|
| 372 |
//// |
|
| 373 |
//// syncExec(new Runnable() {
|
|
| 374 |
//// @Override |
|
| 375 |
//// public void run() {
|
|
| 376 |
//// CorporaView.refresh(); |
|
| 377 |
//// CorporaView.expand(cah.getPartition()); |
|
| 378 |
//// } |
|
| 379 |
//// }); |
|
| 380 |
//// |
|
| 381 |
//// monitor.worked(100); |
|
| 382 |
//// } catch (Exception e) {
|
|
| 383 |
//// org.txm.rcpapplication.utils.Logger.printStackTrace(e); |
|
| 384 |
//// } finally {
|
|
| 385 |
//// monitor.done(); |
|
| 386 |
//// } |
|
| 387 |
//// JobsTimer.stopAndPrint(); |
|
| 388 |
//// return Status.OK_STATUS; |
|
| 389 |
//// } |
|
| 390 |
//// }; |
|
| 391 |
//// jobhandler.startJob(); |
|
| 392 |
//// } |
|
| 393 |
// return null; |
|
| 394 |
// } |
|
| 395 |
|
|
| 396 |
|
|
| 397 |
|
|
| 398 |
|
|
| 399 |
/** |
|
| 400 |
* The Class CAHParamDialog. |
|
| 401 |
*/ |
|
| 402 |
public class CAHParamDialog extends Dialog {
|
|
| 403 |
|
|
| 404 |
//protected Combo methodsCombo; |
|
| 405 |
//protected Combo metricsCombo; |
|
| 406 |
/** The ncluster spinner. */ |
|
| 407 |
protected Spinner nclusterSpinner; |
|
| 408 |
|
|
| 409 |
/** The docolumns button. */ |
|
| 410 |
protected Button docolumnsButton; |
|
| 411 |
|
|
| 412 |
/** The title. */ |
|
| 413 |
protected String title; |
|
| 414 |
|
|
| 415 |
/** |
|
| 416 |
* Instantiates a new cAH param dialog. |
|
| 417 |
* |
|
| 418 |
* @param parentShell the parent shell |
|
| 419 |
*/ |
|
| 420 |
public CAHParamDialog(Shell parentShell) {
|
|
| 421 |
super(parentShell); |
|
| 422 |
this.title = CAUIPMessages.CAHEditorTitle; |
|
| 423 |
} |
|
| 424 |
|
|
| 425 |
/* (non-Javadoc) |
|
| 426 |
* @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell) |
|
| 427 |
*/ |
|
| 428 |
@Override |
|
| 429 |
protected void configureShell(Shell newShell) {
|
|
| 430 |
super.configureShell(newShell); |
|
| 431 |
|
|
| 432 |
if (title != null) |
|
| 433 |
newShell.setText(title); |
|
| 434 |
else |
|
| 435 |
newShell.setText(CAUIPMessages.CAHEditorTitle); |
|
| 436 |
} |
|
| 437 |
|
|
| 438 |
/** The composite. */ |
|
| 439 |
protected Composite composite; |
|
| 440 |
|
|
| 441 |
/** The method. */ |
|
| 442 |
private String method; |
|
| 443 |
|
|
| 444 |
/** The metric. */ |
|
| 445 |
private String metric; |
|
| 446 |
|
|
| 447 |
/** The Ncluster. */ |
|
| 448 |
private int Ncluster; |
|
| 449 |
|
|
| 450 |
/** The doculumns. */ |
|
| 451 |
private boolean doculumns; |
|
| 452 |
|
|
| 453 |
/* (non-Javadoc) |
|
| 454 |
* @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite) |
|
| 455 |
*/ |
|
| 456 |
@Override |
|
| 457 |
protected Control createDialogArea(Composite parent) {
|
|
| 458 |
composite = new Composite(parent, SWT.NONE); |
|
| 459 |
GridLayout layout = new GridLayout(2, false); |
|
| 460 |
composite.setLayout(layout); |
|
| 461 |
|
|
| 462 |
// N CLUSTERS |
|
| 463 |
Label label = new Label(composite, SWT.NONE); |
|
| 464 |
label.setText(CAUIPMessages.CAHPreferencePage_2); |
|
| 465 |
|
|
| 466 |
nclusterSpinner = new Spinner(composite, SWT.BORDER); |
|
| 467 |
nclusterSpinner.setMinimum(2); |
|
| 468 |
nclusterSpinner.setIncrement(1); |
|
| 469 |
nclusterSpinner.setSelection(TxmPreferences.getInt(CAHPreferences.NCLUSTER, 2)); |
|
| 470 |
nclusterSpinner.setMaximum(50); |
|
| 471 |
|
|
| 472 |
// ROWS OR COLS |
|
| 473 |
docolumnsButton = new Button(composite, SWT.RADIO); |
|
| 474 |
docolumnsButton.setText(CAUIPMessages.ComputeClassification_5); |
|
| 475 |
docolumnsButton.setSelection(true); |
|
| 476 |
|
|
| 477 |
Button dorowsButton = new Button(composite, SWT.RADIO); |
|
| 478 |
dorowsButton.setText(CAUIPMessages.ComputeClassification_6); |
|
| 479 |
|
|
| 480 |
/* |
|
| 481 |
// METHODS |
|
| 482 |
Label methodLabel = new Label(composite, SWT.NONE); |
|
| 483 |
methodLabel.setText("Methods");
|
|
| 484 |
|
|
| 485 |
methodLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER, |
|
| 486 |
false, false)); |
|
| 487 |
|
|
| 488 |
methodsCombo = new Combo(composite, SWT.READ_ONLY); |
|
| 489 |
methodsCombo.setLayoutData(new GridData(GridData.FILL, GridData.FILL, |
|
| 490 |
true, false)); |
|
| 491 |
methodsCombo.select(methodsCombo.indexOf(CAH.getDefaultMethod())); |
|
| 492 |
for(String method : CAH.getMethods()) |
|
| 493 |
methodsCombo.add(method); |
|
| 494 |
|
|
| 495 |
// METRICS |
|
| 496 |
Label metricsLabel = new Label(composite, SWT.NONE); |
|
| 497 |
metricsLabel.setText("Methods");
|
|
| 498 |
|
|
| 499 |
metricsLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER, |
|
| 500 |
false, false)); |
|
| 501 |
|
|
| 502 |
metricsCombo = new Combo(composite, SWT.READ_ONLY); |
|
| 503 |
metricsCombo.setLayoutData(new GridData(GridData.FILL, GridData.FILL, |
|
| 504 |
true, false)); |
|
| 505 |
metricsCombo.select(metricsCombo.indexOf(CAH.getDefaultMetric())); |
|
| 506 |
for(String method : CAH.getMetrics()) |
|
| 507 |
metricsCombo.add(method); |
|
| 508 |
*/ |
|
| 509 |
|
|
| 510 |
return composite; |
|
| 511 |
} |
|
| 512 |
|
|
| 513 |
/* (non-Javadoc) |
|
| 514 |
* @see org.eclipse.jface.dialogs.Dialog#okPressed() |
|
| 515 |
*/ |
|
| 516 |
@Override |
|
| 517 |
protected void okPressed() {
|
|
| 518 |
/*int idx = methodsCombo.getSelectionIndex(); |
|
| 519 |
method = methodsCombo.getItem(idx); |
|
| 520 |
|
|
| 521 |
idx = metricsCombo.getSelectionIndex(); |
|
| 522 |
metric = metricsCombo.getItem(idx); |
|
| 523 |
*/ |
|
| 524 |
Ncluster = this.nclusterSpinner.getSelection(); |
|
| 525 |
|
|
| 526 |
doculumns = this.docolumnsButton.getSelection(); |
|
| 527 |
|
|
| 528 |
super.okPressed(); |
|
| 529 |
} |
|
| 530 |
|
|
| 531 |
/** |
|
| 532 |
* Gets the method. |
|
| 533 |
* |
|
| 534 |
* @return the method |
|
| 535 |
*/ |
|
| 536 |
public String getMethod() {
|
|
| 537 |
return method; |
|
| 538 |
} |
|
| 539 |
|
|
| 540 |
/** |
|
| 541 |
* Gets the metric. |
|
| 542 |
* |
|
| 543 |
* @return the metric |
|
| 544 |
*/ |
|
| 545 |
public String getMetric() {
|
|
| 546 |
return metric; |
|
| 547 |
} |
|
| 548 |
|
|
| 549 |
/** |
|
| 550 |
* Gets the ncluster. |
|
| 551 |
* |
|
| 552 |
* @return the ncluster |
|
| 553 |
*/ |
|
| 554 |
public int getNcluster() {
|
|
| 555 |
return Ncluster; |
|
| 556 |
} |
|
| 557 |
|
|
| 558 |
/** |
|
| 559 |
* Checks if is doculumns. |
|
| 560 |
* |
|
| 561 |
* @return true, if is doculumns |
|
| 562 |
*/ |
|
| 563 |
public boolean isDoculumns() {
|
|
| 564 |
return doculumns; |
|
| 565 |
} |
|
| 566 |
} |
|
| 567 |
|
|
| 568 |
|
|
| 569 |
} |
|
| 0 | 570 | |
| tmp/org.txm.cah.rcp/src/org/txm/cah/rcp/preferences/CAHPreferencePage.java (revision 225) | ||
|---|---|---|
| 1 |
// Copyright © 2010-2013 ENS de Lyon. |
|
| 2 |
// Copyright © 2007-2010 ENS de Lyon, CNRS, INRP, University of |
|
| 3 |
// Lyon 2, University of Franche-Comté, University of Nice |
|
| 4 |
// Sophia Antipolis, University of Paris 3. |
|
| 5 |
// |
|
| 6 |
// The TXM platform is free software: you can redistribute it |
|
| 7 |
// and/or modify it under the terms of the GNU General Public |
|
| 8 |
// License as published by the Free Software Foundation, |
|
| 9 |
// either version 2 of the License, or (at your option) any |
|
| 10 |
// later version. |
|
| 11 |
// |
|
| 12 |
// The TXM platform is distributed in the hope that it will be |
|
| 13 |
// useful, but WITHOUT ANY WARRANTY; without even the implied |
|
| 14 |
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
|
| 15 |
// PURPOSE. See the GNU General Public License for more |
|
| 16 |
// details. |
|
| 17 |
// |
|
| 18 |
// You should have received a copy of the GNU General |
|
| 19 |
// Public License along with the TXM platform. If not, see |
|
| 20 |
// http://www.gnu.org/licenses. |
|
| 21 |
// |
|
| 22 |
// |
|
| 23 |
// |
|
| 24 |
// $LastChangedDate:$ |
|
| 25 |
// $LastChangedRevision:$ |
|
| 26 |
// $LastChangedBy:$ |
|
| 27 |
// |
|
| 28 |
package org.txm.cah.rcp.preferences; |
|
| 29 |
|
|
| 30 |
import org.eclipse.jface.preference.ComboFieldEditor; |
|
| 31 |
import org.eclipse.jface.preference.IntegerFieldEditor; |
|
| 32 |
import org.eclipse.jface.preference.RadioGroupFieldEditor; |
|
| 33 |
import org.eclipse.swt.widgets.Group; |
|
| 34 |
import org.eclipse.ui.IWorkbench; |
|
| 35 |
import org.txm.cah.core.functions.CAH; |
|
| 36 |
import org.txm.cah.core.preferences.CAHPreferences; |
|
| 37 |
import org.txm.cah.rcp.adapters.CAHAdapterFactory; |
|
| 38 |
import org.txm.cah.rcp.messages.CAUIPMessages; |
|
| 39 |
import org.txm.chartsengine.rcp.SWTChartsComponentsProvider; |
|
| 40 |
import org.txm.rcp.preferences.TXMPreferencePage; |
|
| 41 |
import org.txm.rcp.preferences.TXMPreferenceStore; |
|
| 42 |
// TODO: Auto-generated Javadoc |
|
| 43 |
/** |
|
| 44 |
* This class represents a preference page that is contributed to the |
|
| 45 |
* Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>, we |
|
| 46 |
* can use the field support built into JFace that allows us to create a page |
|
| 47 |
* that is small and knows how to save, restore and apply itself. |
|
| 48 |
* <p> |
|
| 49 |
* This page is used to modif y preferences only. They are stored in the |
|
| 50 |
* preference store that belongs to the main plug-in class. That way, |
|
| 51 |
* preferences can be accessed directly via the preference store. |
|
| 52 |
* |
|
| 53 |
* @author mdecorde |
|
| 54 |
* @author sjacquot |
|
| 55 |
*/ |
|
| 56 |
public class CAHPreferencePage extends TXMPreferencePage {
|
|
| 57 |
|
|
| 58 |
|
|
| 59 |
/** |
|
| 60 |
* Instantiates a new cah preference page. |
|
| 61 |
*/ |
|
| 62 |
public CAHPreferencePage() {
|
|
| 63 |
super(); |
|
| 64 |
} |
|
| 65 |
|
|
| 66 |
|
|
| 67 |
/** |
|
| 68 |
* |
|
| 69 |
* @return |
|
| 70 |
*/ |
|
| 71 |
public static TXMPreferenceStore getNewPreferenceStore() {
|
|
| 72 |
return new TXMPreferenceStore(CAHPreferences.PREFERENCES_NODE); |
|
| 73 |
} |
|
| 74 |
|
|
| 75 |
|
|
| 76 |
/** |
|
| 77 |
* Creates the field editors. Field editors are abstractions of the common |
|
| 78 |
* GUI blocks needed to manipulate various types of preferences. Each field |
|
| 79 |
* editor knows how to save and restore itself. |
|
| 80 |
*/ |
|
| 81 |
@Override |
|
| 82 |
public void createFieldEditors() {
|
|
| 83 |
|
|
| 84 |
|
|
| 85 |
IntegerFieldEditor defaultncluster = new IntegerFieldEditor(CAHPreferences.NCLUSTER, CAUIPMessages.CAHPreferencePage_2, getFieldEditorParent()); |
|
| 86 |
addField(defaultncluster); |
|
| 87 |
|
|
| 88 |
String list[] = CAH.getMethods(); |
|
| 89 |
String methods[][] = new String[list.length][2]; |
|
| 90 |
for(int i = 0 ; i < list.length ; i++) |
|
| 91 |
methods[i][0] = methods[i][1] = list[i]; |
|
| 92 |
|
|
| 93 |
ComboFieldEditor defaultmethod = new ComboFieldEditor(CAHPreferences.METHOD, CAUIPMessages.CAHPreferencePage_3, methods, getFieldEditorParent()); |
|
| 94 |
addField(defaultmethod); |
|
| 95 |
|
|
| 96 |
list = CAH.getMetrics(); |
|
| 97 |
String metrics[][] = new String[list.length][2]; |
|
| 98 |
for(int i = 0 ; i < list.length ; i++) |
|
| 99 |
metrics[i][0] = metrics[i][1] = list[i]; |
|
| 100 |
|
|
| 101 |
ComboFieldEditor defaultmetric = new ComboFieldEditor(CAHPreferences.METRIC, CAUIPMessages.CAHPreferencePage_4, metrics, getFieldEditorParent()); |
|
| 102 |
addField(defaultmetric); |
|
| 103 |
|
|
| 104 |
|
|
| 105 |
// Charts |
|
| 106 |
Group chartsGroup = SWTChartsComponentsProvider.createChartsRenderingPreferencesGroup(getFieldEditorParent()); |
|
| 107 |
|
|
| 108 |
String[][] labelAndValues = {{"2D", "true"}, {"3D", "false"}}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
|
|
| 109 |
RadioGroupFieldEditor default2D3Ddisplay = new RadioGroupFieldEditor(CAHPreferences.DISPLAY_2D, CAUIPMessages.CAHPreferencePage_0, 2, labelAndValues, chartsGroup); |
|
| 110 |
addField(default2D3Ddisplay); |
|
| 111 |
|
|
| 112 |
|
|
| 113 |
|
|
| 114 |
|
|
| 115 |
} |
|
| 116 |
|
|
| 117 |
@Override |
|
| 118 |
public void init(IWorkbench workbench) {
|
|
| 119 |
this.setPreferenceStore(getNewPreferenceStore()); |
|
| 120 |
//setDescription("CAH");
|
|
| 121 |
this.setTitle(CAUIPMessages.CAHPreferencePage_2); |
|
| 122 |
this.setImageDescriptor(CAHAdapterFactory.ICON); |
|
| 123 |
} |
|
| 124 |
|
|
| 125 |
} |
|
| 0 | 126 | |
| tmp/org.txm.cah.rcp/src/org/txm/cah/rcp/adapters/CAHAdapterFactory.java (revision 225) | ||
|---|---|---|
| 1 |
// Copyright © 2010-2013 ENS de Lyon. |
|
| 2 |
package org.txm.cah.rcp.adapters; |
|
| 3 |
|
|
| 4 |
import org.eclipse.jface.resource.ImageDescriptor; |
|
| 5 |
import org.eclipse.ui.model.IWorkbenchAdapter; |
|
| 6 |
import org.eclipse.ui.plugin.AbstractUIPlugin; |
|
| 7 |
import org.osgi.framework.FrameworkUtil; |
|
| 8 |
import org.txm.cah.core.functions.CAH; |
|
| 9 |
import org.txm.rcp.adapters.BaseAdapterFactory; |
|
| 10 |
|
|
| 11 |
/** |
|
| 12 |
* A factory for creating Adapter objects. |
|
| 13 |
* |
|
| 14 |
* @author mdecorde |
|
| 15 |
* @author sjacquot |
|
| 16 |
*/ |
|
| 17 |
public class CAHAdapterFactory extends BaseAdapterFactory {
|
|
| 18 |
|
|
| 19 |
|
|
| 20 |
public static final ImageDescriptor ICON = |
|
| 21 |
AbstractUIPlugin.imageDescriptorFromPlugin(FrameworkUtil.getBundle(CAHAdapterFactory.class).getSymbolicName(), |
|
| 22 |
"platform:/plugin/"+ FrameworkUtil.getBundle(CAHAdapterFactory.class).getSymbolicName() + "/icons/cah.png"); //$NON-NLS-1$ |
|
| 23 |
|
|
| 24 |
/** |
|
| 25 |
* Gets the adapter. |
|
| 26 |
* |
|
| 27 |
* @param adaptableObject the adaptable object |
|
| 28 |
* @param adapterType the adapter type |
|
| 29 |
* @return the adapter |
|
| 30 |
* @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class) |
|
| 31 |
*/ |
|
| 32 |
@Override |
|
| 33 |
public Object getAdapter(Object adaptableObject, Class adapterType) {
|
|
| 34 |
|
|
| 35 |
if(adapterType == IWorkbenchAdapter.class) {
|
|
| 36 |
if(adaptableObject instanceof CAH) {
|
|
| 37 |
return new IWorkbenchAdapter() {
|
|
| 38 |
@Override |
|
| 39 |
public Object[] getChildren(Object resultData) {
|
|
| 40 |
return new Object[0]; |
|
| 41 |
} |
|
| 42 |
|
|
| 43 |
@Override |
|
| 44 |
public ImageDescriptor getImageDescriptor(Object object) {
|
|
| 45 |
return ICON; |
|
| 46 |
} |
|
| 47 |
|
|
| 48 |
@Override |
|
| 49 |
public String getLabel(Object resultData) {
|
|
| 50 |
return ((CAH) resultData).getName(); |
|
| 51 |
} |
|
| 52 |
|
|
| 53 |
@Override |
|
| 54 |
public Object getParent(Object resultData) {
|
|
| 55 |
return ((CAH) resultData).getCorpus(); |
|
| 56 |
} |
|
| 57 |
}; |
|
| 58 |
} |
|
| 59 |
} |
|
| 60 |
return null; |
|
| 61 |
} |
|
| 62 |
|
|
| 63 |
|
|
| 64 |
} |
|
| 0 | 65 | |
| tmp/org.txm.cah.rcp/build.properties (revision 225) | ||
|---|---|---|
| 1 |
source.. = src/ |
|
| 2 |
output.. = bin/ |
|
| 3 |
bin.includes = META-INF/,\ |
|
| 4 |
.,\ |
|
| 5 |
plugin.xml |
|
| 0 | 6 | |
| tmp/org.txm.cah.rcp/OSGI-INF/l10n/bundle.properties (revision 225) | ||
|---|---|---|
| 1 |
command.name=Classification |
|
| 2 |
command.tooltip=Classification |
|
| 3 |
editor.name=Classification |
|
| 0 | 4 | |
| tmp/org.txm.cah.rcp/OSGI-INF/l10n/bundle_fr.properties (revision 225) | ||
|---|---|---|
| 1 |
command.name=Classification |
|
| 2 |
command.tooltip=Calculer la classification |
|
| 0 | 3 | |
| tmp/org.txm.cah.rcp/OSGI-INF/l10n/bundle_ru_utf-8.properties (revision 225) | ||
|---|---|---|
| 1 |
command.name=Классификация |
|
| 2 |
command.tooltip=Классификация |
|
| 0 | 3 | |
| tmp/org.txm.cah.rcp/plugin.xml (revision 225) | ||
|---|---|---|
| 1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
| 2 |
<?eclipse version="3.4"?> |
|
| 3 |
<plugin> |
|
| 4 |
<extension |
|
| 5 |
point="org.eclipse.ui.commands"> |
|
| 6 |
<command |
|
| 7 |
categoryId="org.txm.rcpapplication.category.txm" |
|
| 8 |
defaultHandler="org.txm.cah.rcp.commands.ComputeCAH" |
|
| 9 |
id="ComputeCAH" |
|
| 10 |
name="%command.name"> |
|
| 11 |
</command> |
|
| 12 |
</extension> |
|
| 13 |
<extension |
|
| 14 |
point="org.eclipse.ui.menus"> |
|
| 15 |
<menuContribution |
|
| 16 |
allPopups="false" |
|
| 17 |
locationURI="toolbar:org.txm.rcpapplication.toolbartools"> |
|
| 18 |
<command |
|
| 19 |
commandId="ComputeCAH" |
|
| 20 |
icon="icons/cah.png" |
|
| 21 |
style="push" |
|
| 22 |
tooltip="%command.tooltip"> |
|
| 23 |
<visibleWhen |
|
| 24 |
checkEnabled="false"> |
|
| 25 |
<or> |
|
| 26 |
<reference |
|
| 27 |
definitionId="OneCASelected"> |
|
| 28 |
</reference> |
|
| 29 |
<reference |
|
| 30 |
definitionId="OneLexicalTableSelected"> |
|
| 31 |
</reference> |
|
| 32 |
<reference |
|
| 33 |
definitionId="OnePartitionSelected"> |
|
| 34 |
</reference> |
|
| 35 |
</or> |
|
| 36 |
</visibleWhen> |
|
| 37 |
</command> |
|
| 38 |
</menuContribution> |
|
| 39 |
<menuContribution |
|
| 40 |
allPopups="false" |
|
| 41 |
locationURI="popup:org.txm.rcpapplication.views.CorporaView"> |
|
| 42 |
<command |
|
| 43 |
commandId="ComputeCAH" |
|
| 44 |
icon="icons/cah.png" |
|
| 45 |
style="push"> |
|
| 46 |
<visibleWhen |
|
| 47 |
checkEnabled="false"> |
|
| 48 |
<or> |
|
| 49 |
<reference |
|
| 50 |
definitionId="OneCASelected"> |
|
| 51 |
</reference> |
|
| 52 |
<reference |
|
| 53 |
definitionId="OneLexicalTableSelected"> |
|
| 54 |
</reference> |
|
| 55 |
<reference |
|
| 56 |
definitionId="OnePartitionSelected"> |
|
| 57 |
</reference> |
|
| 58 |
</or> |
|
| 59 |
</visibleWhen> |
|
| 60 |
</command> |
|
| 61 |
</menuContribution> |
|
| 62 |
<menuContribution |
|
| 63 |
locationURI="menu:menu.tools"> |
|
| 64 |
<command |
|
| 65 |
commandId="ComputeCAH" |
|
| 66 |
icon="icons/cah.png" |
|
| 67 |
style="push"> |
|
| 68 |
<visibleWhen |
|
| 69 |
checkEnabled="false"> |
|
| 70 |
<or> |
|
| 71 |
<reference |
|
| 72 |
definitionId="OneCASelected"> |
|
| 73 |
</reference> |
|
| 74 |
<reference |
|
| 75 |
definitionId="OneLexicalTableSelected"> |
|
| 76 |
</reference> |
|
| 77 |
<reference |
|
| 78 |
definitionId="OnePartitionSelected"> |
|
| 79 |
</reference> |
|
| 80 |
</or> |
|
| 81 |
</visibleWhen> |
|
| 82 |
</command> |
|
| 83 |
</menuContribution> |
|
| 84 |
</extension> |
|
| 85 |
<extension |
|
| 86 |
point="org.eclipse.ui.editors"> |
|
| 87 |
<editor |
|
| 88 |
default="false" |
|
| 89 |
icon="icons/cah.png" |
|
| 90 |
id="org.txm.cah.core.functions.CAH" |
|
| 91 |
name="%editor.name"> |
|
| 92 |
</editor> |
|
| 93 |
</extension> |
|
| 94 |
<extension |
|
| 95 |
point="org.eclipse.core.runtime.adapters"> |
|
| 96 |
<factory |
|
| 97 |
adaptableType="org.txm.cah.core.functions.CAH" |
|
| 98 |
class="org.txm.cah.rcp.adapters.CAHAdapterFactory"> |
|
| 99 |
<adapter |
|
| 100 |
type="org.eclipse.ui.model.IWorkbenchAdapter"> |
|
| 101 |
</adapter> |
|
| 102 |
</factory> |
|
| 103 |
</extension> |
|
| 104 |
|
|
| 105 |
</plugin> |
|
| 0 | 106 | |
| tmp/org.txm.cah.rcp/.settings/org.eclipse.core.resources.prefs (revision 225) | ||
|---|---|---|
| 1 |
eclipse.preferences.version=1 |
|
| 2 |
encoding//src/org/txm/cah/rcp/messages/messages_ru_utf8.properties=UTF-8 |
|
| 0 | 3 | |
| tmp/org.txm.cah.rcp/.settings/org.eclipse.jdt.core.prefs (revision 225) | ||
|---|---|---|
| 1 |
eclipse.preferences.version=1 |
|
| 2 |
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled |
|
| 3 |
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 |
|
| 4 |
org.eclipse.jdt.core.compiler.compliance=1.6 |
|
| 5 |
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error |
|
| 6 |
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error |
|
| 7 |
org.eclipse.jdt.core.compiler.source=1.6 |
|
| 0 | 8 | |
| tmp/org.txm.cah.rcp/.classpath (revision 225) | ||
|---|---|---|
| 1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
| 2 |
<classpath> |
|
| 3 |
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> |
|
| 4 |
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> |
|
| 5 |
<classpathentry kind="src" path="src"/> |
|
| 6 |
<classpathentry kind="output" path="bin"/> |
|
| 7 |
</classpath> |
|
| 0 | 8 | |
| tmp/org.txm.cah.rcp/META-INF/MANIFEST.MF (revision 225) | ||
|---|---|---|
| 1 |
Manifest-Version: 1.0 |
|
| 2 |
Bundle-ManifestVersion: 2 |
|
| 3 |
Bundle-Name: CAH RCP |
|
| 4 |
Bundle-SymbolicName: org.txm.cah.rcp;singleton:=true |
|
| 5 |
Bundle-Version: 1.0.0.qualifier |
|
| 6 |
Bundle-RequiredExecutionEnvironment: JavaSE-1.6 |
|
| 7 |
Export-Package: org.txm.cah.rcp.adapters, |
|
| 8 |
org.txm.cah.rcp.commands, |
|
| 9 |
org.txm.cah.rcp.editors, |
|
| 10 |
org.txm.cah.rcp.messages, |
|
| 11 |
org.txm.cah.rcp.preferences |
|
| 12 |
Require-Bundle: org.txm.chartsengine.rcp;bundle-version="1.0.0", |
|
| 13 |
org.txm.lexicaltable.core;bundle-version="1.0.0", |
|
| 14 |
org.txm.ca.core, |
|
| 15 |
org.eclipse.core.runtime;bundle-version="3.10.0", |
|
| 16 |
org.txm.r;bundle-version="1.0.0", |
|
| 17 |
org.eclipse.ui;bundle-version="3.106.1", |
|
| 18 |
org.txm.core;bundle-version="0.7.0", |
|
| 19 |
org.txm.cah.core;bundle-version="1.0.0", |
|
| 20 |
org.txm.rcp;bundle-version="0.7.8" |
|
| 0 | 21 | |
Formats disponibles : Unified diff