Révision 783

tmp/org.txm.searchengine.core/src/org/txm/searchengine/core/SearchEngines.java (revision 783)
1
package org.txm.searchengine.core;
2

  
3
import org.eclipse.core.runtime.IConfigurationElement;
4
import org.eclipse.core.runtime.IProgressMonitor;
5
import org.eclipse.core.runtime.Platform;
6
import org.txm.Engine;
7
import org.txm.EngineType;
8
import org.txm.EnginesManager;
9
import org.txm.Toolbox;
10

  
11
/**
12
 * 
13
 * @author mdecorde
14
 *
15
 */
16
public class SearchEngines extends EnginesManager<SearchEngine> {
17

  
18
	/**
19
	 * 
20
	 * @return
21
	 */
22
	public static SearchEngine getCQPEngine() {
23
		return (SearchEngine) Toolbox.getEngineManager(EngineType.SEARCH).getEngine("CQP");
24
	}
25

  
26
	/**
27
	 * 
28
	 * @return
29
	 */
30
	public static SearchEngine getTIGERSearchEngine() {
31
		return (SearchEngine) Toolbox.getEngineManager(EngineType.SEARCH).getEngine("TIGERSearch");
32
	}
33

  
34
	@Override
35
	protected boolean fetchEngines() {
36

  
37
		IConfigurationElement[] contributions = Platform.getExtensionRegistry().getConfigurationElementsFor(SearchEngine.EXTENSION_POINT_ID);
38
		//System.out.println("search engine contributions: "+SearchEngine.EXTENSION_POINT_ID);
39
		for (int i = 0; i < contributions.length; i++) {
40
			try {
41
				SearchEngine e = (SearchEngine)contributions[i].createExecutableExtension("class"); //$NON-NLS-1$
42
				if (e.initialize()) {
43
					engines.put(e.getName(), e);
44
				}
45
				else {
46
					System.out.println("Fail to initialize " + e.getName() + " search engine.");
47
				}
48
			} catch(Exception e) {
49
				System.err.println("Error: fail to instanciate " + contributions[i].getName() + ": " + e.getLocalizedMessage());
50
				e.printStackTrace();
51
			}
52
		}
53

  
54
		return engines.size() > 0;
55
	}
56

  
57
	@Override
58
	public EngineType getEnginesType() {
59
		return EngineType.SEARCH;
60
	}
61

  
62
	@Override
63
	public boolean startEngines(IProgressMonitor monitor) {
64

  
65
		for (Engine e : engines.values()) {
66
			SearchEngine se = (SearchEngine)e;
67
			//System.out.println("Starting "+ se.getName()+" searchengine.");
68
			if (monitor != null) {
69
				monitor.subTask("Starting " + se.getName() + " searchengine.");
70
			}
71
			try {
72
				se.start(monitor);
73
			} catch (Exception e2) {
74
				System.err.println("Error: fail to start SearchEngine: " + se.getName() + ": " + e2.getLocalizedMessage());
75
				e2.printStackTrace();
76
			}
77
		}
78
		return true;
79
	}
80

  
81
	@Override
82
	public boolean stopEngines() {
83
		
84
		for (Engine e : engines.values()) {
85
			
86
			SearchEngine se = (SearchEngine)e;
87
			System.out.println("Stopping "+ se.getName()+" searchengine.");
88
			try {
89
				se.stop();
90
			} catch (Exception e2) {
91
				System.err.println("Error: fail to stop SearchEngine: " + se.getName() + ": " + e2.getLocalizedMessage());
92
				e2.printStackTrace();
93
			}
94
		}
95
		return true;
96
	}
97
}
tmp/org.txm.searchengine.core/src/org/txm/searchengine/core/SearchEnginesManager.java (revision 783)
1
package org.txm.searchengine.core;
2

  
3
import org.eclipse.core.runtime.IConfigurationElement;
4
import org.eclipse.core.runtime.IProgressMonitor;
5
import org.eclipse.core.runtime.Platform;
6
import org.txm.Engine;
7
import org.txm.EngineType;
8
import org.txm.EnginesManager;
9
import org.txm.Toolbox;
10

  
11
/**
12
 * 
13
 * @author mdecorde
14
 *
15
 */
16
public class SearchEnginesManager extends EnginesManager<SearchEngine> {
17

  
18
	/**
19
	 * 
20
	 * @return
21
	 */
22
	public static SearchEngine getCQPEngine() {
23
		return (SearchEngine) Toolbox.getEngineManager(EngineType.SEARCH).getEngine("CQP");
24
	}
25

  
26
	/**
27
	 * 
28
	 * @return
29
	 */
30
	public static SearchEngine getTIGERSearchEngine() {
31
		return (SearchEngine) Toolbox.getEngineManager(EngineType.SEARCH).getEngine("TIGERSearch");
32
	}
33

  
34
	@Override
35
	protected boolean fetchEngines() {
36

  
37
		IConfigurationElement[] contributions = Platform.getExtensionRegistry().getConfigurationElementsFor(SearchEngine.EXTENSION_POINT_ID);
38
		//System.out.println("search engine contributions: "+SearchEngine.EXTENSION_POINT_ID);
39
		for (int i = 0; i < contributions.length; i++) {
40
			try {
41
				SearchEngine e = (SearchEngine)contributions[i].createExecutableExtension("class"); //$NON-NLS-1$
42
				
43
				System.out.println("Initializing engine: " + e);
44
				
45
				if (e.initialize()) {
46
					engines.put(e.getName(), e);
47
				}
48
				else {
49
					System.err.println("Failed to initialize " + e.getName() + " search engine.");
50
				}
51
			} catch(Exception e) {
52
				System.err.println("Error: failed to instantiate " + contributions[i].getName() + ": " + e.getLocalizedMessage());
53
				e.printStackTrace();
54
			}
55
		}
56

  
57
		return engines.size() > 0;
58
	}
59

  
60
	@Override
61
	public EngineType getEnginesType() {
62
		return EngineType.SEARCH;
63
	}
64

  
65
	@Override
66
	public boolean startEngines(IProgressMonitor monitor) {
67

  
68
		for (Engine e : engines.values()) {
69
			SearchEngine se = (SearchEngine)e;
70
			//System.out.println("Starting "+ se.getName()+" searchengine.");
71
			if (monitor != null) {
72
				monitor.subTask("Starting " + se.getName() + " searchengine.");
73
			}
74
			try {
75
				se.start(monitor);
76
			} catch (Exception e2) {
77
				System.err.println("Error: failed to start SearchEngine: " + se.getName() + ": " + e2.getLocalizedMessage());
78
				e2.printStackTrace();
79
			}
80
		}
81
		return true;
82
	}
83

  
84
	@Override
85
	public boolean stopEngines() {
86
		
87
		for (Engine e : engines.values()) {
88
			
89
			SearchEngine se = (SearchEngine)e;
90
			System.out.println("Stopping "+ se.getName()+" searchengine.");
91
			try {
92
				se.stop();
93
			} catch (Exception e2) {
94
				System.err.println("Error: failed to stop SearchEngine: " + se.getName() + ": " + e2.getLocalizedMessage());
95
				e2.printStackTrace();
96
			}
97
		}
98
		return true;
99
	}
100
}
0 101

  
tmp/org.txm.searchengine.core/plugin.xml (revision 783)
5 5
   <extension
6 6
         point="org.txm.EnginesManager">
7 7
      <EngineManager
8
            class="org.txm.searchengine.core.SearchEngines"
8
            class="org.txm.searchengine.core.SearchEnginesManager"
9 9
            description="Manage the search engines"
10 10
            name="org.txm.searchengine.core.SearchEngines">
11 11
      </EngineManager>
tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/editors/ProgressionEditor.java (revision 783)
180 180

  
181 181
		try {
182 182
			// Query:
183
			getMinimalParametersComposite().getLayout().numColumns = 2;
183
			getMainParametersComposite().getLayout().numColumns = 2;
184 184
			// make
185
			getMinimalParametersComposite().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
185
			getMainParametersComposite().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
186 186
			
187
			Label queryLabel = new Label(getMinimalParametersComposite(), SWT.NONE);
187
			Label queryLabel = new Label(getMainParametersComposite(), SWT.NONE);
188 188
			queryLabel.setText("Add query");
189 189
			queryLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
190 190

  
191 191
			// [ (v)]
192 192
			// queryWidget = new QueryWidget(queryArea, SWT.DROP_DOWN);
193
			queryWidget = new AssistedQueryWidget(getMinimalParametersComposite(), SWT.DROP_DOWN, getResult().getCorpus());
193
			queryWidget = new AssistedQueryWidget(getMainParametersComposite(), SWT.DROP_DOWN, getResult().getCorpus());
194 194
			queryWidget.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
195 195
			queryWidget.addKeyListener(new ComputeKeyListener(this) {
196 196
				@Override
......
204 204
			});
205 205
			
206 206
			// System.out.println(parent.getLayout());
207
			Composite mainPanel = this.getCommandParametersGroup();
207
			Composite mainPanel = this.getExtendedParametersComposite();
208 208
			GridData gridData = new GridData(GridData.FILL, GridData.FILL, true, true);
209 209
			mainPanel.setLayoutData(gridData);
210 210
			GridLayout glayout = new GridLayout(2, false);
tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java (revision 783)
349 349
	@Override
350 350
	public void _createPartControl(Composite parent) {
351 351

  
352
		Composite controlArea = getCommandParametersGroup();
352
		Composite controlArea = getExtendedParametersComposite();
353 353

  
354 354
		try {
355 355
			composeControlArea(controlArea);
......
954 954
		// | Query: [ (v)] [Search] |
955 955

  
956 956
		// Query:
957
		getMinimalParametersComposite().getLayout().numColumns = 2;
957
		getMainParametersComposite().getLayout().numColumns = 2;
958 958
		// make
959
		getMinimalParametersComposite().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
959
		getMainParametersComposite().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
960 960
		
961
		queryLabel = new Label(getMinimalParametersComposite(), SWT.NONE);
961
		queryLabel = new Label(getMainParametersComposite(), SWT.NONE);
962 962
		queryLabel.setText(TXMUIMessages.CreateSubcorpusDialog_10);
963 963
		queryLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
964 964

  
965 965
		// [ (v)]
966 966
		// queryWidget = new QueryWidget(queryArea, SWT.DROP_DOWN);
967
		queryWidget = new AssistedQueryWidget(getMinimalParametersComposite(), SWT.DROP_DOWN, concordance.getCorpus());
967
		queryWidget = new AssistedQueryWidget(getMainParametersComposite(), SWT.DROP_DOWN, concordance.getCorpus());
968 968
		queryWidget.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
969 969
		queryWidget.addKeyListener(new ComputeKeyListener(this));
970 970

  
tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/editors/SpecificitiesEditor.java (revision 783)
102 102

  
103 103
		try {
104 104

  
105
			// Main parameters
106
			GLComposite mainParametersArea = this.getMainParametersComposite();
107
			mainParametersArea.getLayout().numColumns = 2;
105 108
			
106 109
			// unit property
107
			GLComposite minimalParametersArea = this.getMinimalParametersComposite();
108
			minimalParametersArea.getLayout().numColumns = 2;
109

  
110
			new Label(minimalParametersArea, SWT.NONE).setText(TXMCoreMessages.common_property);
111
			this.unitPropertyComboViewer = new PropertiesComboViewer(minimalParametersArea, this, true,
110
			new Label(mainParametersArea, SWT.NONE).setText(TXMCoreMessages.common_property);
111
			this.unitPropertyComboViewer = new PropertiesComboViewer(mainParametersArea, this, true,
112 112
					Corpus.getFirstParentCorpus(this.getResult()).getOrderedProperties(),
113 113
					this.getResult().getUnitProperty(), true);
114 114

  
115 115
			
116
			// Extended parameters
117
			Composite extendedParametersArea = this.getExtendedParametersComposite();
118
			
116 119
			// max score
117
			Composite parametersArea = this.getCommandParametersGroup();
118
			new Label(parametersArea, SWT.NONE).setText("Maximum score");
119
			this.maxScore = new Spinner(parametersArea, SWT.BORDER);
120
			new Label(extendedParametersArea, SWT.NONE).setText("Maximum score");
121
			this.maxScore = new Spinner(extendedParametersArea, SWT.BORDER);
120 122
			this.maxScore.setToolTipText("The maximum score to display");
121 123
			this.maxScore.setMinimum(0);
122 124

  
......
156 158
			specificitesTable = viewer.getTable();
157 159
			specificitesTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 2));
158 160

  
159
			// create 1st column
161
			// create 1st column: Unit
160 162
			TableColumn typeNameColumn = new TableColumn(specificitesTable, SWT.NONE);
161 163
			typeNameColumn.setText(TXMCoreMessages.common_units);
162 164
			typeNameColumn.setToolTipText(TXMCoreMessages.common_units);
......
166 168
			viewerComparator.addSelectionAdapter(viewer, typeNameColumn, 0);
167 169
			
168 170
			
169
			// create 2nd column
171
			// create 2nd column: Frequency
170 172
			this.typeFrequencyColumn = new TableColumn(viewer.getTable(), SWT.NONE);
173
			this.typeFrequencyColumn.setAlignment(SWT.RIGHT);
174
			this.typeFrequencyColumn.setText(TXMCoreMessages.common_frequency);
175
			
171 176
			viewerComparator.addSelectionAdapter(viewer, typeFrequencyColumn, 1);
172 177
			
173 178
			
174
			// add a separator column
179
			// add a separator empty column
175 180
			TableColumn separatorColumn = new TableColumn(specificitesTable, SWT.NONE);
176 181
			separatorColumn.setResizable(false);
177 182

  
......
205 210
	@Override
206 211
	public void updateEditorFromResult(boolean update) {
207 212
		try {
213

  
214
			
208 215
			if(!update)	{
209
				typeFrequencyColumn.setText(TXMCoreMessages.common_frequency + " " + SpecificitiesUIMessages.SpecificitiesTableEditor_11 + " " + this.getResult().getCorpusSize()); //$NON-NLS-1$ //$NON-NLS-2$
210
				typeFrequencyColumn.setToolTipText(typeFrequencyColumn.getText()); 
211
				typeFrequencyColumn.setAlignment(SWT.RIGHT);
212
				typeFrequencyColumn.pack();
213
				
214 216
				String[] partNames = null;
215 217
				int[] partSize = null;
216 218
				try {
217 219
					partNames = this.getResult().getPartShortNames();
218 220
					partSize = this.getResult().getPartSizes();
219
				} catch (StatException e) {
221
				} catch (Exception e) {
220 222
					System.err.println(NLS.bind(RCoreMessages.error_unexpectedErrorInRStatisticsEngine, e));
221 223
					Log.printStackTrace(e);
222 224
					return;
223 225
				}
226

  
224 227
				// System.out.println("partnames: "+Arrays.toString(partNames));
225 228
				for (int i = 0, columnIndex = 2; i < partNames.length ; i++) { // for each part
226 229

  
......
248 251
			}
249 252

  
250 253
			
251
			// units
252
			String[] typeNames = this.getResult().getTypeNames();
253
			// units' total freq
254
			int[] typeFreq = this.getResult().getFormFrequencies();
255
			// units' index fr each part
256
			double[][] specIndex = this.getResult().getSpecificitesIndex();
257
			int[][] specFreqs = this.getResult().getFrequency();
254

  
258 255
			
259
			// units' total in parts
260
			//final int[] sortedPartIndexes = specificitesResult.getSortedPartIndexes();
256
			if(this.getResult().canCompute())	{
257
				
258
				typeFrequencyColumn.setText(TXMCoreMessages.common_frequency + " " + SpecificitiesUIMessages.SpecificitiesTableEditor_11 + " " + this.getResult().getCorpusSize()); //$NON-NLS-1$ //$NON-NLS-2$
259
				typeFrequencyColumn.setToolTipText(typeFrequencyColumn.getText()); 
260
				typeFrequencyColumn.pack();
261 261

  
262
			// Create an array of lines to fill the tables
263
			//		System.out.println("len types: "+typeNames.length);
264
			//		System.out.println("len freq: "+typeFreq.length);
265
			//		System.out.println("len spec: "+specFreqs.length);
266
			//		System.out.println("len specidx: "+specIndex.length);
267
			 Object[] tableLines = new Object[typeNames.length];
268
			for (int j = 0; j < tableLines.length; j++) {
269
				tableLines[j] = new Object[] { typeNames[j], new Integer(typeFreq[j]), specFreqs[j], specIndex[j] };
262
				// units
263
				String[] typeNames = this.getResult().getTypeNames();
264
				// units' total freq
265
				int[] typeFreq = this.getResult().getFormFrequencies();
266
				// units' index fr each part
267
				double[][] specIndex = this.getResult().getSpecificitesIndex();
268
				int[][] specFreqs = this.getResult().getFrequency();
269
				
270
				// units' total in parts
271
				//final int[] sortedPartIndexes = specificitesResult.getSortedPartIndexes();
272
	
273
				// Create an array of lines to fill the tables
274
				//		System.out.println("len types: "+typeNames.length);
275
				//		System.out.println("len freq: "+typeFreq.length);
276
				//		System.out.println("len spec: "+specFreqs.length);
277
				//		System.out.println("len specidx: "+specIndex.length);
278
				 Object[] tableLines = new Object[typeNames.length];
279
				for (int j = 0; j < tableLines.length; j++) {
280
					tableLines[j] = new Object[] { typeNames[j], new Integer(typeFreq[j]), specFreqs[j], specIndex[j] };
281
				}
282
				viewer.setInput(tableLines);
270 283
			}
271
			viewer.setInput(tableLines);
272 284

  
273 285
			// Pack the columns so the label of the sort column is not truncated due of the sorting order arrow display			
274 286
			TXMEditor.packColumns(viewer);
tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/editors/SpecificitiesSelectionEditor.java (revision 783)
47 47
		
48 48
		
49 49
		// Banality
50
        Label label = new Label(this.getCommandParametersGroup(), SWT.NONE);
50
        Label label = new Label(this.getExtendedParametersComposite(), SWT.NONE);
51 51
        label.setText("Banality:");
52 52
		
53
		banality = new FloatSpinner(this.getCommandParametersGroup(), SWT.BORDER);
53
		banality = new FloatSpinner(this.getExtendedParametersComposite(), SWT.BORDER);
54 54
		banality.setToolTipText("Banality threshold");
55 55
		banality.setMaximumAsFloat(2);
56 56
		banality.addSelectionListener(new ComputeSelectionListener(this));
tmp/org.txm.information.rcp/src/org/txm/information/rcp/editors/InformationEditor.java (revision 783)
44 44
	@Override
45 45
	public void _createPartControl(Composite parent) {
46 46
		
47
		Composite parametersArea = this.getCommandParametersGroup();
47
		Composite parametersArea = this.getExtendedParametersComposite();
48 48
		
49 49
		// label
50 50
		new Label(parametersArea, SWT.NONE).setText("V max");
tmp/org.txm.ca.core/src/org/txm/ca/core/functions/CA.java (revision 783)
140 140
	@Override
141 141
	protected boolean _compute() throws Exception {
142 142
		try {
143
			// clear cache
144
			this.colnames = null;
145
			this.coltitles = null;
146
			this.coltabledata = null;
147
			this.rownames = null;
148
			this.rowtitles = null;
149
			this.rowtabledata = null;
150
			
151
			
143 152
			if (this.useFactoMineR) {
144 153
				this.r_ca = new FactoMineRCA(this.getLexicalTable().getData());
145 154
			}
......
149 158

  
150 159
			this.r_ca.compute();
151 160

  
152
			// in case the lexical table changes
153
			this.getColNames();
154
			// in case the lexical table changes
155
			this.getRowNames();
156

  
157 161
			return true;
158 162
		} catch(Exception e) {
159
			System.out.println("Error: CA not computed: "+e);
163
			Log.severe("Failed to compute CA.");
160 164
			Log.printStackTrace(e);
161 165
			return false;
162 166
		}
......
687 691

  
688 692
	@Override
689 693
	public String getSimpleName() {
690
		return getParent().getSimpleName() + " (" + this.firstDimension + "," + this.secondDimension + ")";
694
		return this.getParent().getSimpleName() + " (" + this.firstDimension + "," + this.secondDimension + ")";
691 695
	}
692 696

  
693 697
	@Override
......
697 701

  
698 702
	@Override
699 703
	public String getName() {
700
		return this.getParent().getSimpleName() + ": " + this.getSimpleName();
704
		return this.getSimpleName();
701 705
	}
702 706

  
703 707

  
704

  
705 708
	/**
706 709
	 * Get the singular values as array.
707 710
	 *
tmp/org.txm.specificities.core/src/org/txm/specificities/core/functions/Specificities.java (revision 783)
45 45
import org.txm.lexicaltable.core.functions.LexicalTable;
46 46
import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
47 47
import org.txm.searchengine.cqp.corpus.Corpus;
48
import org.txm.searchengine.cqp.corpus.Partition;
48 49
import org.txm.searchengine.cqp.corpus.Property;
49 50
import org.txm.specificities.core.messages.SpecificitiesCoreMessages;
50 51
import org.txm.specificities.core.preferences.SpecificitiesPreferences;
......
185 186
	@Override
186 187
	protected boolean _compute() throws Exception {
187 188
		
188

  
189 189
		// recompute the lexical table
190 190
		if(this.hasParameterChanged(SpecificitiesPreferences.UNIT_PROPERTY))	{
191 191
			this.lexicalTable.setUnitProperty(this.unitProperty);
192
			this.lexicalTable.compute();
192
			this.lexicalTable.compute(this, false);
193 193
		}
194 194

  
195
		SpecificitiesR rSpecificities = new SpecificitiesR(this.lexicalTable.getData());
196
		double[][] specIndex = rSpecificities.getScores();
197

  
195
		// essentially for cascade computing from the parent lexical table
196
		this.unitProperty = this.lexicalTable.getProperty();
198 197
		
199
		if (lexicalTable.getPartition() != null) {
200
			init(symbol, specIndex, this.unitProperty.getName()); 
198
		if(this.lexicalTable.hasBeenComputedOnce())	{
199
			SpecificitiesR rSpecificities = new SpecificitiesR(this.lexicalTable.getData());
200
			double[][] specIndex = rSpecificities.getScores();
201
	
202
			
203
			if (this.lexicalTable.getPartition() != null) {
204
				init(symbol, specIndex, this.unitProperty.getName()); 
205
			}
206
			else {
207
				init(rSpecificities.getSymbol(), specIndex, "TLNONAME: " + this.unitProperty.getName()); //$NON-NLS-1$
208
			}
201 209
		}
202
		else {
203
			init(rSpecificities.getSymbol(), specIndex, "TLNONAME: " + this.unitProperty.getName()); //$NON-NLS-1$
204
		}
205 210
		return true;
206 211
	}
207 212
	
......
378 383
			 * partShortNames.length; i++) { partShortNames[i] =
379 384
			 * parts.get(i).getShortName(); }
380 385
			 */
381
			return lexicalTable.getColNames().asStringsArray();
386
			try {
387
				return lexicalTable.getColNames().asStringsArray();
388
			}
389
			catch (Exception e) {
390
				return ((Partition)this.lexicalTable.getParent()).getPartShortNames().toArray(new String[0]);
391
			}
382 392
		} else if (this.subCorpus != null) {
383 393
			return new String[] { this.subCorpus.getName(), this.corpus.getName() + " \\ " + this.subCorpus.getName() }; //$NON-NLS-1$
384 394
		}
......
448 458
	 *
449 459
	 * @return the part size
450 460
	 * @throws StatException the stat exception
461
	 * @throws CqiClientException 
451 462
	 */
452
	public int[] getPartSizes() throws StatException {
463
	public int[] getPartSizes() throws StatException, CqiClientException {
453 464
		if (lexicalTable != null) {
454
			Vector partsize = lexicalTable.getColMarginsVector();
455
			if (colindex != null) {
456
				partsize = partsize.get(colindex);
465
			
466
			try {
467
				Vector partsize = lexicalTable.getColMarginsVector();
468
				if (colindex != null) {
469
					partsize = partsize.get(colindex);
470
				}
471
				return partsize.asIntArray();
457 472
			}
458
			return partsize.asIntArray();
473
			catch (Exception e) {
474
				return ((Partition)this.lexicalTable.getParent()).getPartSizes();
475
			}
476
			
477
			
459 478
		} else {
460 479
			return new int[] { subLexicon.nbrOfToken(),
461 480
					lexicon.nbrOfToken() - subLexicon.nbrOfToken() };
......
608 627
//		} else {
609 628
//			setPartName(specificitiesResult.getName());
610 629
//		}
611
		return name;
630
		// FIXME: to define
631
		if(name != null)	{
632
			return name;	
633
		}
634
		else	{
635
			return this.getEmptyName();
636
		}
637

  
638
		
612 639
	}
613 640

  
614 641

  
......
629 656
	public boolean canCompute() {
630 657
		
631 658
		if (this.lexicalTable == null) {
632
			Log.severe("Specificities.canCompute(): Can not compute without a lexical table.");
659
			Log.severe("Specificities.canCompute(): can not compute without a lexical table.");
633 660
			return false;
634 661
		}
662
		else if(this.unitProperty == null)	{
663
			Log.severe("Specificities.canCompute(): can not compute with no unit property."); //$NON-NLS-1$
664
			return false;
665
		}
635 666
		
636 667
//		if (this.lexicalTable.getNColumns() < 2) {
637 668
//			Log.severe(SpecificitiesCoreMessages.ComputeError_NEED_AT_LEAST_2_PARTS);
tmp/org.txm.statsengine.core/schema/org.txm.statengine.exsd (revision 783)
1
<?xml version='1.0' encoding='UTF-8'?>
2
<!-- Schema file written by PDE -->
3
<schema targetNamespace="org.txm.statsengine.core" xmlns="http://www.w3.org/2001/XMLSchema">
4
<annotation>
5
      <appinfo>
6
         <meta.schema plugin="org.txm.statsengine.core" id="org.txm.statsengine.core.StatEngine" name="Stat Engine"/>
7
      </appinfo>
8
      <documentation>
9
         A stat engine allow to call statistical R methods 
10
      </documentation>
11
   </annotation>
12

  
13
   <element name="extension">
14
      <annotation>
15
         <appinfo>
16
            <meta.element />
17
         </appinfo>
18
      </annotation>
19
      <complexType>
20
         <choice minOccurs="1" maxOccurs="unbounded">
21
            <element ref="StatEngine"/>
22
         </choice>
23
         <attribute name="point" type="string" use="required">
24
            <annotation>
25
               <documentation>
26
                  
27
               </documentation>
28
            </annotation>
29
         </attribute>
30
         <attribute name="id" type="string">
31
            <annotation>
32
               <documentation>
33
                  
34
               </documentation>
35
            </annotation>
36
         </attribute>
37
         <attribute name="name" type="string">
38
            <annotation>
39
               <documentation>
40
                  
41
               </documentation>
42
               <appinfo>
43
                  <meta.attribute translatable="true"/>
44
               </appinfo>
45
            </annotation>
46
         </attribute>
47
      </complexType>
48
   </element>
49

  
50
   <element name="StatEngine">
51
      <complexType>
52
         <attribute name="class" type="string">
53
            <annotation>
54
               <documentation>
55
                  
56
               </documentation>
57
               <appinfo>
58
                  <meta.attribute kind="java" basedOn="org.txm.statsengine.core.StatEngine:"/>
59
               </appinfo>
60
            </annotation>
61
         </attribute>
62
      </complexType>
63
   </element>
64

  
65
   <annotation>
66
      <appinfo>
67
         <meta.section type="since"/>
68
      </appinfo>
69
      <documentation>
70
         [Enter the first release in which this extension point appears.]
71
      </documentation>
72
   </annotation>
73

  
74
   <annotation>
75
      <appinfo>
76
         <meta.section type="examples"/>
77
      </appinfo>
78
      <documentation>
79
         [Enter extension point usage example here.]
80
      </documentation>
81
   </annotation>
82

  
83
   <annotation>
84
      <appinfo>
85
         <meta.section type="apiinfo"/>
86
      </appinfo>
87
      <documentation>
88
         [Enter API information here.]
89
      </documentation>
90
   </annotation>
91

  
92
   <annotation>
93
      <appinfo>
94
         <meta.section type="implementation"/>
95
      </appinfo>
96
      <documentation>
97
         [Enter information about supplied implementation of this extension point.]
98
      </documentation>
99
   </annotation>
100

  
101

  
102
</schema>
tmp/org.txm.statsengine.core/schema/org.txm.statsengine.exsd (revision 783)
1
<?xml version='1.0' encoding='UTF-8'?>
2
<!-- Schema file written by PDE -->
3
<schema targetNamespace="org.txm.statsengine.core" xmlns="http://www.w3.org/2001/XMLSchema">
4
<annotation>
5
      <appinfo>
6
         <meta.schema plugin="org.txm.statsengine.core" id="org.txm.statsengine.core.StatsEngine" name="Stats Engine"/>
7
      </appinfo>
8
      <documentation>
9
         A stats engine allow to call statistical commands.
10
      </documentation>
11
   </annotation>
12

  
13
   <element name="extension">
14
      <annotation>
15
         <appinfo>
16
            <meta.element />
17
         </appinfo>
18
      </annotation>
19
      <complexType>
20
         <choice minOccurs="1" maxOccurs="unbounded">
21
            <element ref="StatsEngine"/>
22
         </choice>
23
         <attribute name="point" type="string" use="required">
24
            <annotation>
25
               <documentation>
26
                  
27
               </documentation>
28
            </annotation>
29
         </attribute>
30
         <attribute name="id" type="string">
31
            <annotation>
32
               <documentation>
33
                  
34
               </documentation>
35
            </annotation>
36
         </attribute>
37
         <attribute name="name" type="string">
38
            <annotation>
39
               <documentation>
40
                  
41
               </documentation>
42
               <appinfo>
43
                  <meta.attribute translatable="true"/>
44
               </appinfo>
45
            </annotation>
46
         </attribute>
47
      </complexType>
48
   </element>
49

  
50
   <element name="StatsEngine">
51
      <complexType>
52
         <attribute name="class" type="string">
53
            <annotation>
54
               <documentation>
55
                  
56
               </documentation>
57
               <appinfo>
58
                  <meta.attribute kind="java" basedOn="org.txm.statsengine.core.StatsEngine:"/>
59
               </appinfo>
60
            </annotation>
61
         </attribute>
62
      </complexType>
63
   </element>
64

  
65
   <annotation>
66
      <appinfo>
67
         <meta.section type="since"/>
68
      </appinfo>
69
      <documentation>
70
         [Enter the first release in which this extension point appears.]
71
      </documentation>
72
   </annotation>
73

  
74
   <annotation>
75
      <appinfo>
76
         <meta.section type="examples"/>
77
      </appinfo>
78
      <documentation>
79
         [Enter extension point usage example here.]
80
      </documentation>
81
   </annotation>
82

  
83
   <annotation>
84
      <appinfo>
85
         <meta.section type="apiinfo"/>
86
      </appinfo>
87
      <documentation>
88
         [Enter API information here.]
89
      </documentation>
90
   </annotation>
91

  
92
   <annotation>
93
      <appinfo>
94
         <meta.section type="implementation"/>
95
      </appinfo>
96
      <documentation>
97
         [Enter information about supplied implementation of this extension point.]
98
      </documentation>
99
   </annotation>
100

  
101

  
102
</schema>
0 103

  
tmp/org.txm.statsengine.core/src/org/txm/statsengine/core/StatEngine.java (revision 783)
1
package org.txm.statsengine.core;
2

  
3
import org.txm.Engine;
4

  
5
public abstract class StatEngine implements Engine {
6

  
7
	public static final String EXTENSION_POINT_ID = StatEngine.class.getCanonicalName();
8

  
9
	@Override
10
	public abstract String getName();
11
}
tmp/org.txm.statsengine.core/src/org/txm/statsengine/core/StatEngines.java (revision 783)
1
package org.txm.statsengine.core;
2

  
3
import org.eclipse.core.runtime.CoreException;
4
import org.eclipse.core.runtime.IConfigurationElement;
5
import org.eclipse.core.runtime.IProgressMonitor;
6
import org.eclipse.core.runtime.Platform;
7
import org.txm.Engine;
8
import org.txm.EngineType;
9
import org.txm.EnginesManager;
10
import org.txm.Toolbox;
11

  
12
public class StatEngines extends EnginesManager<StatEngine> {
13

  
14
	public static StatEngine getREngine() {
15
		return (StatEngine) Toolbox.getEngineManager(EngineType.STAT).getEngine("R");
16
	}
17

  
18
	@Override
19
	protected boolean fetchEngines() {
20

  
21
		IConfigurationElement[] contributions = Platform.getExtensionRegistry().getConfigurationElementsFor(StatEngine.EXTENSION_POINT_ID);
22

  
23
		for (int i = 0; i < contributions.length; i++) {
24
			try {
25
				StatEngine e = (StatEngine)contributions[i].createExecutableExtension("class"); //$NON-NLS-1$
26
				// register something with the SearchEngine ?
27
				engines.put(e.getName(), e);
28
			} catch(CoreException e) {
29
				e.printStackTrace();
30
			} 
31
		}
32

  
33
		return engines.size() > 0;
34
	}
35

  
36
	@Override
37
	public EngineType getEnginesType() {
38
		return EngineType.STAT;
39
	}
40

  
41
	@Override
42
	public boolean startEngines(IProgressMonitor monitor) {
43
		//System.out.println("StatEngines.startEngines: "+engines);
44
		for (Engine e : engines.values()) {
45

  
46
			StatEngine se = (StatEngine)e;
47
			if (monitor != null) monitor.subTask("Starting "+se.getName()+" statengine...");
48
			try {
49
				se.start(monitor);
50
			} catch (Exception e2) {
51
				System.err.println("Error: fail to start StatEngine: "+se.getName()+": "+e2.getLocalizedMessage());
52
				e2.printStackTrace();
53
			}
54

  
55
		}
56
		return true;
57
	}
58

  
59
	@Override
60
	public boolean stopEngines() {
61

  
62
		for (Engine e : engines.values()) {
63

  
64
			StatEngine se = (StatEngine)e;
65
			System.out.println("Stoping "+se.getName()+" statengine...");
66
			try {
67
				se.stop();
68
			} catch (Exception e2) {
69
				System.err.println("Error: fail to stop StatEngine: "+se.getName()+": "+e2.getLocalizedMessage());
70
				e2.printStackTrace();
71
			}
72
		}
73
		return true;
74
	}
75
}
tmp/org.txm.statsengine.core/src/org/txm/statsengine/core/StatsEnginesManager.java (revision 783)
1
package org.txm.statsengine.core;
2

  
3
import org.eclipse.core.runtime.CoreException;
4
import org.eclipse.core.runtime.IConfigurationElement;
5
import org.eclipse.core.runtime.IProgressMonitor;
6
import org.eclipse.core.runtime.Platform;
7
import org.txm.Engine;
8
import org.txm.EngineType;
9
import org.txm.EnginesManager;
10
import org.txm.Toolbox;
11
import org.txm.utils.logger.Log;
12

  
13
public class StatsEnginesManager extends EnginesManager<StatsEngine> {
14

  
15
	public static StatsEngine getREngine() {
16
		return (StatsEngine) Toolbox.getEngineManager(EngineType.STATS).getEngine("R");
17
	}
18

  
19
	@Override
20
	protected boolean fetchEngines() {
21

  
22
		IConfigurationElement[] contributions = Platform.getExtensionRegistry().getConfigurationElementsFor(StatsEngine.EXTENSION_POINT_ID);
23

  
24
		Log.finest("Looking for stats engines contributions with extension point id " + StatsEngine.EXTENSION_POINT_ID + ".");
25
		
26
		Log.finest(contributions.length + " stats engines found.");
27
		
28
		for (int i = 0; i < contributions.length; i++) {
29
			try {
30
				StatsEngine e = (StatsEngine)contributions[i].createExecutableExtension("class"); //$NON-NLS-1$
31
				// register something with the SearchEngine ?
32
				engines.put(e.getName(), e);
33
			} catch(CoreException e) {
34
				e.printStackTrace();
35
			} 
36
		}
37

  
38
		return engines.size() > 0;
39
	}
40

  
41
	@Override
42
	public EngineType getEnginesType() {
43
		return EngineType.STATS;
44
	}
45

  
46
	@Override
47
	public boolean startEngines(IProgressMonitor monitor) {
48
		//System.out.println("StatEngines.startEngines: "+engines);
49
		for (Engine e : engines.values()) {
50

  
51
			StatsEngine se = (StatsEngine)e;
52
			if (monitor != null) monitor.subTask("Starting " + se.getName() + " statengine...");
53
			try {
54
				se.start(monitor);
55
			} catch (Exception e2) {
56
				System.err.println("Error: fail to start stats engine: "+se.getName()+": "+e2.getLocalizedMessage());
57
				e2.printStackTrace();
58
			}
59

  
60
		}
61
		return true;
62
	}
63

  
64
	@Override
65
	public boolean stopEngines() {
66

  
67
		for (Engine e : engines.values()) {
68

  
69
			StatsEngine se = (StatsEngine)e;
70
			System.out.println("Stopping " + se.getName() + " stats engine...");
71
			try {
72
				se.stop();
73
			} catch (Exception e2) {
74
				System.err.println("Error: failed to stop stats engine: " + se.getName() + ": " + e2.getLocalizedMessage());
75
				e2.printStackTrace();
76
			}
77
		}
78
		return true;
79
	}
80
}
0 81

  
tmp/org.txm.statsengine.core/src/org/txm/statsengine/core/StatsEngine.java (revision 783)
1
package org.txm.statsengine.core;
2

  
3
import org.txm.Engine;
4

  
5
public abstract class StatsEngine implements Engine {
6

  
7
	public static final String EXTENSION_POINT_ID = "org.txm.statsengine.core.StatsEngine"; //$NON-NLS-1$
8

  
9
	@Override
10
	public abstract String getName();
11
}
0 12

  
tmp/org.txm.statsengine.core/plugin.xml (revision 783)
1 1
<?xml version="1.0" encoding="UTF-8"?>
2 2
<?eclipse version="3.4"?>
3 3
<plugin>
4
   <extension-point id="org.txm.statsengine.core.StatEngine" name="Stat Engine" schema="schema/org.txm.statengine.exsd"/>
4
   <extension-point id="org.txm.statsengine.core.StatsEngine" name="Stats Engine" schema="schema/org.txm.statsengine.exsd"/>
5 5
   <extension
6 6
         point="org.txm.EnginesManager">
7 7
      <EngineManager
8
            class="org.txm.statsengine.core.StatEngines"
9
            description="Stat engines manager"
8
            class="org.txm.statsengine.core.StatsEnginesManager"
9
            description="Stats engines manager"
10 10
            name="org.txm.statsengine.core.StatEngines">
11 11
      </EngineManager>
12 12
   </extension>
tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/editors/LexicalTableEditor.java (revision 783)
63 63
import org.txm.rcp.editors.TXMEditor;
64 64
import org.txm.rcp.editors.TableKeyListener;
65 65
import org.txm.rcp.messages.TXMUIMessages;
66
import org.txm.rcp.swt.GLComposite;
66 67
import org.txm.rcp.swt.widget.structures.PropertiesComboViewer;
67 68
import org.txm.rcp.views.QueriesView;
68 69
import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
......
114 115
	boolean reverse = DEFAULTREVERSE;
115 116

  
116 117

  
118
	private Label infoLine;
119

  
120

  
117 121
	
122
	
118 123
	/**
119 124
	 * Unit property.
120 125
	 */
......
130 135
//	@Parameter(key=LexicalTablePreferences.V_MAX)
131 136
	protected Spinner vMax;
132 137

  
133
	private Label infoLine;
134 138

  
135

  
136 139
	
137 140
	
138 141
	
......
148 151
		try {
149 152
			lexicalTable = (LexicalTable) this.getResult();
150 153
			
151
			Composite parametersArea = this.getCommandParametersGroup();
152 154
			
155
			// Main parameters
156
			GLComposite mainParametersArea = this.getMainParametersComposite();
157
			mainParametersArea.getLayout().numColumns = 2;
158

  
159
			// unit property
160
			new Label(mainParametersArea, SWT.NONE).setText(TXMCoreMessages.common_property);
161
			this.unitPropertyComboViewer = new PropertiesComboViewer(mainParametersArea, this, true,
162
					Corpus.getFirstParentCorpus(this.getResult()).getOrderedProperties(),
163
					this.getResult().getProperty(), false);
164

  
165
			
166

  
167
			// Extended parameters
168
			Composite extendedParametersArea = this.getExtendedParametersComposite();
169
			
153 170
			// Apply button
154
			Button keepTop = new Button(parametersArea, SWT.PUSH);
171
			Button keepTop = new Button(extendedParametersArea, SWT.PUSH);
155 172
			keepTop.setText(LexicalTableUIMessages.LexicalTableEditor_4);
156 173
			keepTop.addSelectionListener(new SelectionListener() {
157 174
				@Override
......
182 199
			});
183 200
			
184 201
			// Number of lines
185
			Label nLines = new Label(parametersArea, SWT.NONE);
202
			Label nLines = new Label(extendedParametersArea, SWT.NONE);
186 203
			nLines.setText(TXMCoreMessages.common_numberOfLines);
187
			vMax = new Spinner(parametersArea, SWT.BORDER);
204
			vMax = new Spinner(extendedParametersArea, SWT.BORDER);
188 205

  
189 206
			// Fmin
190
			Label fmin = new Label(parametersArea, SWT.NONE);
207
			Label fmin = new Label(extendedParametersArea, SWT.NONE);
191 208
			fmin.setText(TXMCoreMessages.common_fMin);
192
			fMin = new Spinner(parametersArea, SWT.BORDER);
209
			fMin = new Spinner(extendedParametersArea, SWT.BORDER);
193 210

  
194
			// unit property
195
			new Label(parametersArea, SWT.NONE).setText(TXMCoreMessages.common_property);
196
			this.unitPropertyComboViewer = new PropertiesComboViewer(parametersArea, this, true,
197
					Corpus.getFirstParentCorpus(this.getResult()).getOrderedProperties(),
198
					this.getResult().getProperty(), false);
199

  
200 211
			
201
			
202 212
			// Merge or delete columns button
203
			Button fusionCol = new Button(parametersArea, SWT.PUSH);
213
			Button fusionCol = new Button(extendedParametersArea, SWT.PUSH);
204 214
			fusionCol.setText(LexicalTableUIMessages.LexicalTableEditor_10);
205 215
			fusionCol.addSelectionListener(new SelectionListener() {
206 216
				@Override
......
293 303
			});
294 304

  
295 305
			// Merge or delete lines button
296
			Button mergeDeleteRows = new Button(parametersArea, SWT.PUSH);
306
			Button mergeDeleteRows = new Button(extendedParametersArea, SWT.PUSH);
297 307
			mergeDeleteRows.setText(LexicalTableUIMessages.LexicalTableEditor_13);
298 308
			mergeDeleteRows.addSelectionListener(new SelectionListener() {
299 309
				@Override
......
440 450
	 */
441 451
	public void refreshTable(boolean update) {
442 452

  
443
//		if(!update)	{
453
		if(this.lexicalTable.hasBeenComputedOnce())	{
444 454
			
445
			formColumn.getColumn().setText(this.lexicalTable.getProperty().getName()); 
455
			formColumn.getColumn().setText(this.lexicalTable.getProperty().getName());
446 456

  
447 457
			collist = new ArrayList<Object>();
448 458
			Vector colnames = lexicalTable.getColNames();
......
466 476
				org.txm.rcp.utils.Logger.printStackTrace(e1);
467 477
				return;
468 478
			}
469
//		}
470 479

  
471 480
		
472
		LineLabelProvider labelprovider = new LineLabelProvider(this.lexicalTable);
473
		this.viewer.setLabelProvider(labelprovider);
474
		this.cols = labelprovider.getCols();
475
		this.rows = labelprovider.getRows();
476
		//this.freqs = labelprovider.getFreqs();
481
			LineLabelProvider labelprovider = new LineLabelProvider(this.lexicalTable);
482
			this.viewer.setLabelProvider(labelprovider);
483
			this.cols = labelprovider.getCols();
484
			this.rows = labelprovider.getRows();
485
			//this.freqs = labelprovider.getFreqs();
486
	
477 487

  
478

  
488
		}
489
		
479 490
		// Refresh and pack the columns
480 491
		TXMEditor.packColumns(this.viewer);
481 492
		
482 493
		this.viewer.getTable().deselectAll();
483 494
		this.viewer.getTable().setFocus();
495
		
496
		
484 497
	}
485 498
		
486 499
	
......
631 644
	 @Override
632 645
	public void updateEditorFromResult(boolean update) {
633 646
		vMax.setMinimum(1);
634
		vMax.setMaximum(lexicalTable.getData().getNRows());
635
		vMax.setSelection(lexicalTable.getData().getNRows());
636
		fMin.setMinimum(lexicalTable.getData().getFMin());
637
		fMin.setMaximum(lexicalTable.getData().getFMax());
647
		if(lexicalTable.getData() != null)	{
648
			vMax.setMaximum(lexicalTable.getData().getNRows());
649
			vMax.setSelection(lexicalTable.getData().getNRows());
650
			fMin.setMinimum(lexicalTable.getData().getFMin());
651
			fMin.setMaximum(lexicalTable.getData().getFMax());
652
			
653
			this.refreshTable(update);
654
			this.refreshInfos();
655
		}
638 656
		
639
		this.refreshTable(update);
640
		this.refreshInfos();
641 657
		
642 658
		QueriesView.refresh();
643 659
		RVariablesView.refresh();
tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java (revision 783)
77 77
	 */
78 78
	public final static String TOP_TOOLBAR_ID = "TXMEditorTopToolBar"; //$NON-NLS-1$
79 79
	public final static String BOTTOM_TOOLBAR_ID = "TXMEditorBottomToolBar"; //$NON-NLS-1$
80
	public final static String COMPUTING_PARAMETERS_GROUP_ID = "Parameters";
80
	public final static String COMPUTING_PARAMETERS_GROUP_ID = "Parameters"; //$NON-NLS-1$
81 81

  
82 82
	/**
83 83
	 * The editor main tool bar, positioned at the top of the editor.
......
97 97
	/**
98 98
	 * the parameters groups are added to this composite. contains the sub widgets of the default Top toolbar
99 99
	 */
100
	private GLComposite parametersGroupsComposite;
100
	private GLComposite extendedParametersGroupsComposite;
101 101

  
102

  
102 103
	/**
103
	 * The command parameters composite that can be hidden. To add main parameters.
104
	 * Command main parameters that are always visible in the toolbar. 
104 105
	 */
105
	protected Composite computingParametersGroup;
106
	protected GLComposite mainParametersComposite;
106 107

  
108
	
107 109
	/**
110
	 * Command extended parameters composite that can be hidden.
111
	 */
112
	protected Composite extendedParametersComposite;
113

  
114
	/**
108 115
	 * 
109 116
	 */
110 117
	Composite parent;
......
126 133
	 * contains bottom toolbar subwidgets (installed grouped, etc.)
127 134
	 */
128 135
	private GLComposite bottomSubWidgetsComposite;
129
	private GLComposite minimalParametersComposite;
130 136
	private GLComposite firstLineComposite;
131 137
	private boolean createPartControlDoneSucessfully = true; // for now... muahahaha
132 138

  
......
147 153
	 *  
148 154
	 * @return the composite displayed before the toptoolbar, containing the minimal parameters widgets
149 155
	 */
150
	public GLComposite getMinimalParametersComposite() {
151
		return minimalParametersComposite;
156
	public GLComposite getMainParametersComposite() {
157
		return mainParametersComposite;
152 158
	}
153 159

  
154 160
	/**
......
161 167
		try {
162 168
			this.parent = parent;
163 169

  
164
			// to hide and display the command parameters composite
170
			// to hide and display the extended parameters composite
165 171
			this.initParentLayout(parent, 1);
166 172

  
167 173
			// contains the minimal panels and top toolbars
......
169 175
			this.firstLineComposite.getLayout().numColumns = 2;
170 176
			this.firstLineComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
171 177

  
172
			this.minimalParametersComposite = new GLComposite(firstLineComposite, SWT.NONE);
173
			this.minimalParametersComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
174
			this.minimalParametersComposite.getLayout().horizontalSpacing = 5;
178
			this.mainParametersComposite = new GLComposite(firstLineComposite, SWT.NONE);
179
			this.mainParametersComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
180
			this.mainParametersComposite.getLayout().horizontalSpacing = 5;
175 181

  
176

  
177 182
			// create the top tool bar
178 183
			this.topToolBarContainer = new Composite(firstLineComposite, SWT.NONE);
179 184
			this.topToolBarContainer.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
......
183 188
			rl.center = true;
184 189
			this.topToolBarContainer.setLayout(rl);
185 190

  
186
			this.parametersGroupsComposite = new GLComposite(parent, SWT.NONE);
191
			this.extendedParametersGroupsComposite = new GLComposite(parent, SWT.NONE);
187 192
			if (parent.getLayout() instanceof GridLayout)	{
188
				this.parametersGroupsComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
193
				this.extendedParametersGroupsComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
189 194
			}
190 195

  
191
			this.topToolBar = new TXMEditorToolBar(this, this.topToolBarContainer, this.parametersGroupsComposite, SWT.FLAT | SWT.RIGHT, TOP_TOOLBAR_ID);
196
			this.topToolBar = new TXMEditorToolBar(this, this.topToolBarContainer, this.extendedParametersGroupsComposite, SWT.FLAT | SWT.RIGHT, TOP_TOOLBAR_ID);
192 197
			// FIXME: debug tests for see why there is an empty area at bottom of the toolbar
193 198
			//this.topToolBar.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_RED));
194 199

  
200
			
201
			
195 202
			// computing parameters components
196
			boolean showComputingParameters = false;
203
			boolean showExtendedParameters = false;
197 204
			// only show the area if the result can not compute and is dirty
198
			if(!this.getResult().canCompute() && this.getResult().isDirty())	{
199
				showComputingParameters = true;
200
			}
201
			this.computingParametersGroup = this.topToolBar.installGroup(COMPUTING_PARAMETERS_GROUP_ID, "Show/Hide command parameters", 
205
			// FIXME: to discuss if when hiding or showing the extended parameters 
206
//			if(!this.getResult().canCompute() && this.getResult().isDirty())	{
207
//				showExtendedParameters = true;
208
//			}
209
			this.extendedParametersComposite = this.topToolBar.installGroup(COMPUTING_PARAMETERS_GROUP_ID, "Show/Hide command parameters", 
202 210
					"icons/show_computing_parameters.png", 
203 211
					"icons/hide_computing_parameters.png", 
204
					showComputingParameters);
212
					showExtendedParameters);
205 213

  
214
			//extendedParametersComposite.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_RED));
206 215

  
216
			
217
			
207 218
			// display main area
208 219
			this.resultArea = new Composite(parent, SWT.NONE);
209 220
			this.resultArea.setLayoutData(new GridData(GridData.FILL_BOTH));
......
217 228
			//rl.justify = true;
218 229
			this.bottomToolBarContainer.setLayout(rl);
219 230

  
231
			
220 232
			this.bottomSubWidgetsComposite = new GLComposite(parent, SWT.NONE);
221 233
			if (parent.getLayout() instanceof GridLayout)	{
222 234
				this.bottomSubWidgetsComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
223 235
			}
224 236

  
237
			
225 238
			this.bottomToolBar = new TXMEditorToolBar(this, this.bottomToolBarContainer, this.bottomSubWidgetsComposite, SWT.FLAT, "bottom");
226 239

  
240
			
241

  
242

  
243
			
227 244
			this._createPartControl(parent); // child editor create its parameters and display widgets
228 245

  
229 246

  
......
240 257
			}
241 258

  
242 259
			// uninstall parameters group if not used
243
			if (computingParametersGroup.getChildren().length == 0) {
260
			if (extendedParametersComposite.getChildren().length == 0) {
244 261
				this.topToolBar.unInstallGroup(COMPUTING_PARAMETERS_GROUP_ID);
245 262
			}
246 263
		}
247 264
		catch(Throwable e) {
248
			System.err.println("TXMEditor.createPartControl(): can not create the editor.");
265
			System.err.println("TXMEditor.createPartControl(): can not create the editor for result " + this.getResult() + ".");
249 266
			e.printStackTrace();
250
			createPartControlDoneSucessfully  = false;
267
			createPartControlDoneSucessfully = false;
251 268
		}
252 269
	}
253 270

  
......
319 336
	/**
320 337
	 * @return the commandParametersComposite. Put here you main parameter widgets
321 338
	 */
322
	public Composite getCommandParametersGroup() {
323
		return this.computingParametersGroup;
339
	public Composite getExtendedParametersComposite() {
340
		return this.extendedParametersComposite;
324 341
	}
325 342

  
326 343
	@Override
......
340 357
	public boolean isDirty() {
341 358
		if (this.getResult() != null) {
342 359
			// if the result has never been computed, the editor is not dirty ->  no * shown
343
			return this.getResult().isDirty() && this.getResult().getHasBeenComputedOnce();
360
			return this.getResult().isDirty() && this.getResult().hasBeenComputedOnce();
344 361
		}
345 362

  
346 363
		return false;
......
440 457
	 */
441 458
	public JobHandler compute(final boolean update)	{
442 459

  
443

  
444 460
		StatusLine.setMessage("Computing " + this.getResult().getName());
445 461

  
446 462
		JobHandler job = new JobHandler("Computing " + this.getResult().getName()) {
......
958 974
	 * @return the composite that contains the <b>default Top</b> TXMEditorToolBar parameters panels
959 975
	 */
960 976
	public GLComposite getParametersGroupsComposite() {
961
		return parametersGroupsComposite;
977
		return extendedParametersGroupsComposite;
962 978
	}
963 979

  
964 980
	/**
tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditorToolBar.java (revision 783)
45 45
	private HashMap<String, Composite> groups = new HashMap<String, Composite>();
46 46

  
47 47
	private GLComposite subWidgetComposite;
48
	
48 49
	/**
49 50
	 * Contains references to installed groups to ToolItem.
50 51
	 */
tmp/org.txm.rcp/src/main/java/org/txm/rcp/ApplicationWorkbenchAdvisor.java (revision 783)
101 101
import org.txm.rcp.swt.dialog.CGUMessageDialog;
102 102
import org.txm.rcp.utils.JobHandler;
103 103
import org.txm.rcp.views.corpora.CorporaView;
104
import org.txm.searchengine.core.SearchEngines;
104
import org.txm.searchengine.core.SearchEnginesManager;
105 105
import org.txm.searchengine.cqp.CQPEngine;
106 106
import org.txm.utils.BundleUtils;
107 107
import org.txm.utils.DeleteDir;
......
266 266
								@Override
267 267
								public void run() {
268 268
									try {
269
										SearchEngines.getCQPEngine().stop();
270
										SearchEngines.getCQPEngine().start(monitor);
... Ce différentiel a été tronqué car il excède la taille maximale pouvant être affichée.

Formats disponibles : Unified diff