Révision 553

tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java (revision 553)
1998 1998
	}
1999 1999

  
2000 2000
	@Override
2001
	public boolean isResultUsingParent(TXMResult parent) {
2002
		return this.concordance.getParent().getName().equals(parent.getName());
2003
	}
2004

  
2005
	@Override
2006 2001
	public Concordance getResultData() {
2007 2002
		return concordance;
2008 2003
	}
tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/editors/SpecificitiesEditor.java (revision 553)
401 401
		this.fillDisplay();
402 402
		super.refresh(update);
403 403
	}
404
	
405 404

  
406

  
407 405
	
408 406
	/**
409 407
	 * Fills display.
......
471 469
	
472 470
	
473 471

  
474
	@Override
475
	public boolean isResultUsingParent(TXMResult parent) {
476
		if (this.getResultData() == null) {
477
			return false;
478
		}
479
		if (this.getResultData().getCorpus() == null) {
480
			return false;
481
		}
482
		return this.getResultData().getCorpus().getName().equals(parent.getName());
483
	}
484

  
485 472
	
486
	
487
	
488 473
	// FIXME: old method
489 474
//	@Override
490 475
//	public void computeResult() {
tmp/org.txm.ca.core/src/org/txm/ca/core/functions/CA.java (revision 553)
834 834
				&& this.getLexicalTable().getNColumns() > 3
835 835
				;
836 836
	}
837

  
837
	
838 838
	@Override
839 839
	public boolean saveParameters() {
840
		// TODO Auto-generated method stub
841
		System.err.println("CA.saveParameters(): not yet implemented.");
840 842
		return true;
841 843
	}
844

  
845
	@Override
846
	public boolean setParameters(TXMParameters parameters) {
847
		// TODO Auto-generated method stub
848
		System.err.println("CA.setParameters(): not yet implemented.");
849
		return true;
850
	}
842 851
}
tmp/org.txm.ca.core/src/org/txm/ca/core/functions/Eigenvalues.java (revision 553)
6 6
import java.io.File;
7 7

  
8 8
import org.txm.chartsengine.core.results.ChartResult;
9
import org.txm.core.results.TXMParameters;
9 10
import org.txm.core.results.TXMResult;
10 11

  
11 12
/**
......
73 74
	public boolean canCompute() throws Exception {
74 75
		return this.parent != null;
75 76
	}
77
	
78
	@Override
79
	public boolean saveParameters() {
80
		// TODO Auto-generated method stub
81
		System.err.println("Eigenvalues.saveParameters(): not yet implemented.");
82
		return true;
83
	}
76 84

  
85
	@Override
86
	public boolean setParameters(TXMParameters parameters) {
87
		// TODO Auto-generated method stub
88
		System.err.println("Eigenvalues.setParameters(): not yet implemented.");
89
		return true;
90
	}
91

  
92
	
93

  
77 94
	/* (non-Javadoc)
78 95
	 * @see org.txm.core.results.TXMResult#_compute(boolean)
79 96
	 */
tmp/org.txm.specificities.core/src/org/txm/specificities/core/functions/Specificities.java (revision 553)
37 37
import java.util.Arrays;
38 38
import java.util.List;
39 39

  
40
import org.txm.core.results.TXMParameters;
40 41
import org.txm.core.results.TXMResult;
41 42
import org.txm.lexicaltable.core.functions.LexicalTable;
42 43
import org.txm.lexicon.core.corpusengine.cqp.Lexicon;
......
614 615
	public void setMaxScore(int maxScore) {
615 616
		this.pMaxScore = maxScore;
616 617
	}
618
	
619
	
620
	@Override
621
	public boolean saveParameters() {
622
		// TODO Auto-generated method stub
623
		System.err.println("Specificities.saveParameters(): not yet implemented.");
624
		return true;
625
	}
617 626

  
627
	@Override
628
	public boolean setParameters(TXMParameters parameters) {
629
		// TODO Auto-generated method stub
630
		System.err.println("Specificities.setParameters(): not yet implemented.");
631
		return true;
632
	}
633

  
634
	
635

  
636
	
637

  
618 638
}
tmp/org.txm.specificities.core/src/org/txm/specificities/core/functions/SpecificitiesSelection.java (revision 553)
6 6
import java.io.File;
7 7

  
8 8
import org.txm.chartsengine.core.results.ChartResult;
9
import org.txm.core.results.TXMParameters;
9 10

  
10 11
/**
11 12
 * A selection from a Specificities result dedicated to export or chart creation.
......
138 139
	 */
139 140
	@Override
140 141
	protected boolean _compute(boolean update) throws Exception {
142
		// does nothing
143
		return true;
144
	}
145

  
146
	
147
	@Override
148
	public boolean saveParameters() {
141 149
		// TODO Auto-generated method stub
150
		System.err.println("SpecificitiesSelection.saveParameters(): not yet implemented.");
142 151
		return true;
143 152
	}
144 153

  
154
	@Override
155
	public boolean setParameters(TXMParameters parameters) {
156
		// TODO Auto-generated method stub
157
		System.err.println("SpecificitiesSelection.setParameters(): not yet implemented.");
158
		return true;
159
	}
160

  
161
	
162

  
163
	
145 164
	/* (non-Javadoc)
146 165
	 * @see org.txm.core.results.TXMResult#toTxt(java.io.File, java.lang.String, java.lang.String, java.lang.String)
147 166
	 */
tmp/org.txm.specificities.core/src/org/txm/functions/contrasts/Chi2.java (revision 553)
57 57
		return itable != null;
58 58
	}
59 59

  
60
	@Override
61
	public boolean saveParameters() {
62
		// TODO Auto-generated method stub
63
		System.err.println("Chi2.saveParameters(): not yet implemented.");
64
		return true;
65
	}
66

  
67
	@Override
68
	public boolean setParameters(TXMParameters parameters) {
69
		// TODO Auto-generated method stub
70
		System.err.println("Chi2.setParameters(): not yet implemented.");
71
		return true;
72
	}
73

  
60 74
}
tmp/org.txm.specificities.core/src/org/txm/functions/contrasts/Specificites2.java (revision 553)
53 53
	public boolean canCompute() {
54 54
		return itable != null;
55 55
	}
56
	
57
	@Override
58
	public boolean saveParameters() {
59
		// TODO Auto-generated method stub
60
		System.err.println("Specificites2.saveParameters(): not yet implemented.");
61
		return true;
62
	}
56 63

  
64
	@Override
65
	public boolean setParameters(TXMParameters parameters) {
66
		// TODO Auto-generated method stub
67
		System.err.println("Specificites2.setParameters(): not yet implemented.");
68
		return true;
69
	}
70

  
71

  
57 72
}
tmp/org.txm.specificities.core/src/org/txm/functions/contrasts/RelativeFrequency.java (revision 553)
1 1
package org.txm.functions.contrasts;
2 2

  
3
import org.eclipse.core.runtime.IProgressMonitor;
4 3
import org.txm.core.messages.TXMCoreMessages;
5 4
import org.txm.core.results.TXMParameters;
6 5
import org.txm.lexicaltable.core.functions.LexicalTable;
7 6
import org.txm.lexicaltable.core.statsengine.data.ILexicalTable;
8
import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
9
import org.txm.searchengine.cqp.corpus.Corpus;
10
import org.txm.searchengine.cqp.corpus.Partition;
11
import org.txm.searchengine.cqp.corpus.Property;
12
import org.txm.searchengine.cqp.corpus.Subcorpus;
13
import org.txm.statsengine.core.StatException;
14 7
import org.txm.statsengine.r.core.RWorkspace;
15 8

  
16 9
public class RelativeFrequency extends Contrast {
......
63 56
		return itable != null;
64 57
	}
65 58

  
59
	@Override
60
	public boolean saveParameters() {
61
		// TODO Auto-generated method stub
62
		System.err.println("RelativeFrequency.saveParameters(): not yet implemented.");
63
		return true;
64
	}
65

  
66
	@Override
67
	public boolean setParameters(TXMParameters parameters) {
68
		// TODO Auto-generated method stub
69
		System.err.println("RelativeFrequency.setParameters(): not yet implemented.");
70
		return true;
71
	}
72

  
73
	
66 74
}
tmp/org.txm.specificities.core/src/org/txm/functions/contrasts/AbsoluteFrequency.java (revision 553)
16 16
		super(table);
17 17
	}
18 18
	
19
	public boolean setParameters(TXMParameters parameters) {
20
		return false;
21
	}
22

  
23 19
	@Override
24 20
	protected boolean _compute(boolean update) throws StatException {
25 21
		itable = table.getData();
......
58 54
		return itable != null;
59 55
	}
60 56

  
57
	@Override
58
	public boolean saveParameters() {
59
		// TODO Auto-generated method stub
60
		System.err.println("AbsoluteFrequency.saveParameters(): not yet implemented.");
61
		return true;
62
	}
63

  
64
	@Override
65
	public boolean setParameters(TXMParameters parameters) {
66
		// TODO Auto-generated method stub
67
		System.err.println("AbsoluteFrequency.setParameters(): not yet implemented.");
68
		return true;
69
	}
70

  
61 71
}
tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/handlers/DeleteLines.java (revision 553)
36 36
import org.eclipse.swt.widgets.Shell;
37 37
import org.eclipse.ui.IWorkbenchPart;
38 38
import org.eclipse.ui.handlers.HandlerUtil;
39
import org.txm.lexicaltable.rcp.editors.LexicalTableEditor2;
39
import org.txm.lexicaltable.rcp.editors.LexicalTableEditor;
40 40
import org.txm.rcp.RCPMessages;
41 41
/**
42 42
 * Allow the user to delete lines in a Lexical Table.
......
58 58

  
59 59
		IWorkbenchPart editor = HandlerUtil.getActiveWorkbenchWindow(event)
60 60
				.getActivePage().getActivePart();
61
		if (editor instanceof LexicalTableEditor2) {
62
			LexicalTableEditor2 LTeditor = (LexicalTableEditor2) editor;
61
		if (editor instanceof LexicalTableEditor) {
62
			LexicalTableEditor LTeditor = (LexicalTableEditor) editor;
63 63
			deleteLexicalTableLines(LTeditor);
64 64
		}
65 65
		return null;
66 66
	}
67 67

  
68
	public static void deleteLexicalTableLines(LexicalTableEditor2 LTeditor) {
68
	public static void deleteLexicalTableLines(LexicalTableEditor LTeditor) {
69 69
		int[] selection = LTeditor.getlineTableViewer().getTable()
70 70
				.getSelectionIndices();
71 71
		if (selection.length == 0)
tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/handlers/___MergeCols.java (revision 553)
40 40
import org.eclipse.ui.IWorkbenchPart;
41 41
import org.eclipse.ui.handlers.HandlerUtil;
42 42
import org.txm.lexicaltable.core.functions.LexicalTable;
43
import org.txm.lexicaltable.rcp.editors.LexicalTableEditor2;
43
import org.txm.lexicaltable.rcp.editors.LexicalTableEditor;
44 44
import org.txm.rcp.RCPMessages;
45 45
import org.txm.statsengine.core.StatException;
46 46
/**
......
59 59

  
60 60
		IWorkbenchPart editor = HandlerUtil.getActiveWorkbenchWindow(event)
61 61
				.getActivePage().getActivePart();
62
		if (editor instanceof LexicalTableEditor2) {
63
			LexicalTableEditor2 LTeditor = (LexicalTableEditor2) editor;
62
		if (editor instanceof LexicalTableEditor) {
63
			LexicalTableEditor LTeditor = (LexicalTableEditor) editor;
64 64
			int[] selection = LTeditor.getlineTableViewer().getTable()
65 65
					.getSelectionIndices();
66 66
			if (selection.length == 0)
tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/handlers/ImportTable.java (revision 553)
37 37
import org.eclipse.swt.widgets.Shell;
38 38
import org.eclipse.ui.IWorkbenchPart;
39 39
import org.eclipse.ui.handlers.HandlerUtil;
40
import org.txm.lexicaltable.rcp.editors.LexicalTableEditor2;
40
import org.txm.lexicaltable.rcp.editors.LexicalTableEditor;
41 41
import org.txm.rcp.swt.dialog.LastOpened;
42 42

  
43 43
// TODO: Auto-generated Javadoc
......
54 54
	public Object execute(ExecutionEvent event) throws ExecutionException {
55 55
		IWorkbenchPart editor = HandlerUtil.getActiveWorkbenchWindow(event)
56 56
				.getActivePage().getActivePart();
57
		if (editor instanceof LexicalTableEditor2) {
58
			LexicalTableEditor2 LTeditor = (LexicalTableEditor2) editor;
57
		if (editor instanceof LexicalTableEditor) {
58
			LexicalTableEditor LTeditor = (LexicalTableEditor) editor;
59 59
			Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
60 60
					.getShell();
61 61
			FileDialog d = new FileDialog(shell, SWT.OPEN);
tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/handlers/ComputeLexicalTable.java (revision 553)
41 41
import org.eclipse.jface.viewers.LabelProvider;
42 42
import org.eclipse.jface.window.Window;
43 43
import org.eclipse.osgi.util.NLS;
44
import org.eclipse.swt.widgets.Display;
44 45
import org.eclipse.ui.IWorkbenchPage;
45 46
import org.eclipse.ui.IWorkbenchWindow;
46 47
import org.eclipse.ui.PartInitException;
......
54 55
import org.txm.lexicaltable.core.preferences.LexicalTablePreferences;
55 56
import org.txm.lexicaltable.core.statsengine.r.data.LexicalTableImpl;
56 57
import org.txm.lexicaltable.rcp.editors.LexicalTableDialog;
57
import org.txm.lexicaltable.rcp.editors.LexicalTableEditor2;
58
import org.txm.lexicaltable.rcp.editors.LexicalTableEditorInput;
58
import org.txm.lexicaltable.rcp.editors.LexicalTableEditor;
59
import org.txm.lexicaltable.rcp.editors.___LexicalTableEditorInput;
59 60
import org.txm.rcp.JobsTimer;
60 61
import org.txm.rcp.RCPMessages;
61 62
import org.txm.rcp.StatusLine;
63
import org.txm.rcp.editors.TXMEditorPart;
62 64
import org.txm.rcp.handlers.BaseAbstractHandler;
63 65
import org.txm.rcp.utils.JobHandler;
64 66
import org.txm.rcp.views.QueriesView;
65 67
import org.txm.rcp.views.corpora.CorporaView;
66 68
import org.txm.searchengine.cqp.corpus.Partition;
67 69
import org.txm.searchengine.cqp.corpus.Property;
68
import org.txm.statsengine.r.core.data.QuantitativeDataStructureImpl;
69 70
import org.txm.statsengine.r.rcp.views.RVariablesView;
70
import org.txm.utils.logger.Log;
71 71
// TODO: Auto-generated Javadoc
72 72
/**
73 73
 * if the selection is a Partition : creates a lexical table already filled if
......
108 108
			return null;
109 109
		}
110 110

  
111
		window = HandlerUtil.getActiveWorkbenchWindow(event);
112
		selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
113

  
114
		Object s = selection.getFirstElement();
115

  
116
		if (s instanceof Index) {
117
			List<Index> vocabularies = selection.toList();
118

  
111
		Object selection = this.getSelection(event);
112
		LexicalTable lexicalTable = null;
113
		
114
		// Creating from Index
115
		if (selection instanceof Index) {
116
			List<Index> vocabularies = ((IStructuredSelection) HandlerUtil.getCurrentSelection(event)).toList();
117
			
119 118
			System.out.println(RCPMessages.ComputeLexicalTable_3);
120 119
			ArrayList<String> choices = new ArrayList<String>();
121 120
			choices.add(RCPMessages.ComputeLexicalTable_16);
......
131 130
			//System.out.println("ret= "+ret);
132 131
			if (ret == Dialog.OK_OPTION) {
133 132
				//System.out.println("ok");
134
				if(dialog.getResult().length == 0)
133
				if(dialog.getResult().length == 0) {
135 134
					return null;
135
				}
136 136
				String sel = (String) dialog.getResult()[0];
137
				if(sel.equals(RCPMessages.ComputeLexicalTable_16))
137
				if(sel.equals(RCPMessages.ComputeLexicalTable_16)) {
138 138
					useAllOccurrences = true;
139
				}
139 140
			} else {
140 141
				//System.out.println("cancel");
141 142
				return false;
142 143
			}
143 144

  
144
			computeWithVocabularies(vocabularies, useAllOccurrences);
145
			return null;
145
			//computeWithVocabularies(vocabularies, useAllOccurrences);
146
			//return null;
146 147
			//		} else if (s instanceof QueryIndex) {
147 148
			//			List<QueryIndex> qindexes = selection.toList();
148 149
			//			computeWithQueryIndexes(qindexes);
149 150
			//			return null;
150
		} else if (s instanceof Partition) {
151
			computeWithPartition((Partition) s);
152
			return null;
153
		} else if (s instanceof LexicalTable) {
154
			computeWithLexicalTableAble((LexicalTable) s);
155
			return null;
156
		} else
157
			return null;
158
	}
159

  
160
	/**
161
	 * Compute with partition.
162
	 *
163
	 * @param partition the partition
164
	 */
165
	private void computeWithLexicalTableAble(final LexicalTable lexicalTableAble) {
166

  
167
		JobHandler jobhandler = new JobHandler(
168
				RCPMessages.ComputeLexicalTable_0) {
169
			@Override
170
			protected IStatus run(IProgressMonitor monitor) {
171
				this.runInit(monitor);
172
				try {
173
					JobsTimer.start();
174
					monitor.beginTask(NLS.bind(RCPMessages.ComputeLexicalTable_1, lexicalTableAble.getName(), "none"), 100);
175

  
176
					this.acquireSemaphore();
177
					//table = lexicalTableAble.toLexicalTable();
178
					table = lexicalTableAble;
179
					this.releaseSemaphore();
180

  
181
					monitor.worked(45);
182

  
183
					lexicalTableAble.getParent().addChild(table);
184

  
185
					monitor.worked(5);
186

  
187
					//monitor.subTask(Messages.ComputeSpecifities_10);
188
					syncExec(new Runnable() {
189
						@Override
190
						public void run() {
191
							IWorkbenchPage page = window.getActivePage();
192
							LexicalTableEditorInput editorInput = new LexicalTableEditorInput(table);
193
							try {
194
								StatusLine.setMessage(RCPMessages.ComputeLexicalTable_10);
195
								page.openEditor(editorInput, LexicalTableEditor2.ID);
196
							} catch (PartInitException e) {
197
								org.txm.rcp.utils.Logger.printStackTrace(e);
198
							} 
199
						}
200
					});
201

  
202
					monitor.worked(50);
203
					if (monitor.isCanceled())
204
						return Status.CANCEL_STATUS;
205

  
206
					//monitor.subTask(Messages.ComputeSpecifities_2);
207
					syncExec(new Runnable() {
208
						@Override
209
						public void run() {
210
							CorporaView.refresh();
211
							CorporaView.expand(table.getParent());
212
							QueriesView.refresh();
213
							RVariablesView.refresh();
214
						}
215
					});
216

  
217
					monitor.worked(100);
218
				} catch (ThreadDeath td) {
219
					return Status.CANCEL_STATUS;
220
				} catch (Exception e) {
221
					org.txm.rcp.utils.Logger.printStackTrace(e);
222
				} finally {
223
					monitor.done();
224
					JobsTimer.stopAndPrint();
225
				}
226
				return Status.OK_STATUS;
151
		}
152
		// Creating from Partition
153
		else if (selection instanceof Partition) {
154
			final Property property;
155
			final int Fmin;
156
			final int vmax;
157
			
158
			final Partition partition = (Partition) selection;
159
			
160
			String title = RCPMessages.bind(RCPMessages.ComputeLexicalTable_0, partition.getName());
161
			
162
			LexicalTableDialog d = new LexicalTableDialog(Display.getDefault().getActiveShell(), partition.getCorpus(), title);
163
			d.setFminAndVMax(TXMPreferences.getInt(LexicalTablePreferences.F_MIN, LexicalTablePreferences.PREFERENCES_NODE), 
164
							TXMPreferences.getInt(LexicalTablePreferences.V_MAX, LexicalTablePreferences.PREFERENCES_NODE));
165
			
166
			if (d.open() == Window.OK) {
167
				property = d.getProperty();
168
				Fmin = d.getFmin();
169
				vmax = d.getMaxLines();
170
				
171
				lexicalTable = new LexicalTable(partition, property, Fmin);
172
				lexicalTable.setVMax(vmax);
173
				
174
				
175
				// PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(CorporaView.ID);
176
//				JobHandler jobhandler = new JobHandler(RCPMessages.bind(RCPMessages.ComputeLexicalTable_0, partition.getName())) {
177
//					@Override
178
//					protected IStatus run(IProgressMonitor monitor) {
179
//						this.runInit(monitor);
180
//						try {
181
//							JobsTimer.start();
182
//							monitor.beginTask(NLS.bind(RCPMessages.ComputeLexicalTable_1, partition.getName(), property), 100);
183
//
184
//							this.acquireSemaphore();
185
//							table = LexicalTableFactory.getLexicalTable(partition, property, Fmin);
186
//							this.releaseSemaphore();
187
//							
188
//							this.acquireSemaphore();
189
//							table.getData().cut(vmax);
190
//							this.releaseSemaphore();
191
//
192
//							monitor.worked(45);
193
//							if (monitor.isCanceled() || table == null) {
194
//								return Status.CANCEL_STATUS;
195
//							}
196
//
197
//							partition.addChild(table);
198
//
199
//							monitor.worked(5);
200
//
201
//							//monitor.subTask(Messages.ComputeSpecifities_10);
202
//							syncExec(new Runnable() {
203
//								@Override
204
//								public void run() {
205
//									IWorkbenchPage page = window.getActivePage();
206
//									LexicalTableEditorInput editorInput = new LexicalTableEditorInput(table);
207
//									try {
208
//										StatusLine.setMessage(RCPMessages.ComputeLexicalTable_10);
209
//										page.openEditor(editorInput, LexicalTableEditor.ID); //$NON-NLS-1$
210
//									} catch (PartInitException e) {
211
//										org.txm.rcp.utils.Logger.printStackTrace(e);
212
//									} 
213
//								}
214
//							});
215
//
216
//							monitor.worked(50);
217
//							if (monitor.isCanceled())
218
//								return Status.CANCEL_STATUS;
219
//
220
//							//monitor.subTask(Messages.ComputeSpecifities_2);
221
//							syncExec(new Runnable() {
222
//								@Override
223
//								public void run() {
224
//									QueriesView.refresh();
225
//									RVariablesView.refresh();
226
//								}
227
//							});
228
//
229
//							monitor.worked(100);
230
//						} catch (ThreadDeath td) {
231
//							return Status.CANCEL_STATUS;
232
//						} catch (Exception e) {
233
//							org.txm.rcp.utils.Logger.printStackTrace(e);
234
//						} finally {
235
//							monitor.done();
236
//							JobsTimer.stopAndPrint();
237
//						}
238
//						return Status.OK_STATUS;
239
//					}
240
//				};
241
//				jobhandler.startJob();
227 242
			}
228
		};
229
		jobhandler.startJob();
230

  
231
		return;
232
	}
233

  
234
	/**
235
	 * Compute with partition.
236
	 *
237
	 * @param partition the partition
238
	 */
239
	private void computeWithPartition(final Partition partition) {
240

  
241
		final Property property;
242
		final int Fmin;
243
		final int vmax;
243
		}
244
		// Reopening from existing result
245
		else if (selection instanceof LexicalTable) {
246
			lexicalTable = (LexicalTable) selection;
247
		}
244 248
		
245
		String title = RCPMessages.bind(RCPMessages.ComputeLexicalTable_0, partition.getName());
246
		LexicalTableDialog d = new LexicalTableDialog(window.getShell(), partition.getCorpus(), title);
249
		TXMEditorPart.openEditor(lexicalTable, LexicalTableEditor.ID);
247 250
		
248
		d.setFminAndVMax(TXMPreferences.getInt(LexicalTablePreferences.F_MIN, LexicalTablePreferences.PREFERENCES_NODE), 
249
						TXMPreferences.getInt(LexicalTablePreferences.V_MAX, LexicalTablePreferences.PREFERENCES_NODE));
250
		
251
		if (d.open() == Window.OK) {
252
			property = d.getProperty();
253
			Fmin = d.getFmin();
254
			vmax = d.getMaxLines();
255
			// PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(CorporaView.ID);
256
			JobHandler jobhandler = new JobHandler(
257
					RCPMessages.bind(RCPMessages.ComputeLexicalTable_0, partition.getName())) {
258
				@Override
259
				protected IStatus run(IProgressMonitor monitor) {
260
					this.runInit(monitor);
261
					try {
262
						JobsTimer.start();
263
						monitor.beginTask(NLS.bind(RCPMessages.ComputeLexicalTable_1, partition.getName(), property), 100);
251
		return true;
252
	}
264 253

  
265
						this.acquireSemaphore();
266
						table = LexicalTableFactory.getLexicalTable(partition, property, Fmin);
267
						this.releaseSemaphore();
268
						
269
						this.acquireSemaphore();
270
						table.getData().cut(vmax);
271
						this.releaseSemaphore();
254
//	/**
255
//	 * Compute with partition.
256
//	 *
257
//	 * @param partition the partition
258
//	 */
259
//	private void computeWithLexicalTableAble(final LexicalTable lexicalTableAble) {
260
//
261
//		JobHandler jobhandler = new JobHandler(
262
//				RCPMessages.ComputeLexicalTable_0) {
263
//			@Override
264
//			protected IStatus run(IProgressMonitor monitor) {
265
//				this.runInit(monitor);
266
//				try {
267
//					JobsTimer.start();
268
//					monitor.beginTask(NLS.bind(RCPMessages.ComputeLexicalTable_1, lexicalTableAble.getName(), "none"), 100);
269
//
270
//					this.acquireSemaphore();
271
//					//table = lexicalTableAble.toLexicalTable();
272
//					table = lexicalTableAble;
273
//					this.releaseSemaphore();
274
//
275
//					monitor.worked(45);
276
//
277
//					lexicalTableAble.getParent().addChild(table);
278
//
279
//					monitor.worked(5);
280
//
281
//					//monitor.subTask(Messages.ComputeSpecifities_10);
282
//					syncExec(new Runnable() {
283
//						@Override
284
//						public void run() {
285
//							IWorkbenchPage page = window.getActivePage();
286
//							LexicalTableEditorInput editorInput = new LexicalTableEditorInput(table);
287
//							try {
288
//								StatusLine.setMessage(RCPMessages.ComputeLexicalTable_10);
289
//								page.openEditor(editorInput, LexicalTableEditor.ID);
290
//							} catch (PartInitException e) {
291
//								org.txm.rcp.utils.Logger.printStackTrace(e);
292
//							} 
293
//						}
294
//					});
295
//
296
//					monitor.worked(50);
297
//					if (monitor.isCanceled())
298
//						return Status.CANCEL_STATUS;
299
//
300
//					//monitor.subTask(Messages.ComputeSpecifities_2);
301
//					syncExec(new Runnable() {
302
//						@Override
303
//						public void run() {
304
//							CorporaView.refresh();
305
//							CorporaView.expand(table.getParent());
306
//							QueriesView.refresh();
307
//							RVariablesView.refresh();
308
//						}
309
//					});
310
//
311
//					monitor.worked(100);
312
//				} catch (ThreadDeath td) {
313
//					return Status.CANCEL_STATUS;
314
//				} catch (Exception e) {
315
//					org.txm.rcp.utils.Logger.printStackTrace(e);
316
//				} finally {
317
//					monitor.done();
318
//					JobsTimer.stopAndPrint();
319
//				}
320
//				return Status.OK_STATUS;
321
//			}
322
//		};
323
//		jobhandler.startJob();
324
//
325
//		return;
326
//	}
272 327

  
273
						monitor.worked(45);
274
						if (monitor.isCanceled() || table == null) {
275
							return Status.CANCEL_STATUS;
276
						}
277 328

  
278
						partition.addChild(table);
279 329

  
280
						monitor.worked(5);
281

  
282
						//monitor.subTask(Messages.ComputeSpecifities_10);
283
						syncExec(new Runnable() {
284
							@Override
285
							public void run() {
286
								IWorkbenchPage page = window.getActivePage();
287
								LexicalTableEditorInput editorInput = new LexicalTableEditorInput(table);
288
								try {
289
									StatusLine.setMessage(RCPMessages.ComputeLexicalTable_10);
290
									page.openEditor(editorInput, LexicalTableEditor2.ID); //$NON-NLS-1$
291
								} catch (PartInitException e) {
292
									org.txm.rcp.utils.Logger.printStackTrace(e);
293
								} 
294
							}
295
						});
296

  
297
						monitor.worked(50);
298
						if (monitor.isCanceled())
299
							return Status.CANCEL_STATUS;
300

  
301
						//monitor.subTask(Messages.ComputeSpecifities_2);
302
						syncExec(new Runnable() {
303
							@Override
304
							public void run() {
305
								QueriesView.refresh();
306
								RVariablesView.refresh();
307
							}
308
						});
309

  
310
						monitor.worked(100);
311
					} catch (ThreadDeath td) {
312
						return Status.CANCEL_STATUS;
313
					} catch (Exception e) {
314
						org.txm.rcp.utils.Logger.printStackTrace(e);
315
					} finally {
316
						monitor.done();
317
						JobsTimer.stopAndPrint();
318
					}
319
					return Status.OK_STATUS;
320
				}
321
			};
322
			jobhandler.startJob();
323
		}
324
		return;
325
	}
326

  
327 330
	//	/**
328 331
	//	 * Compute with query index.
329 332
	//	 *
......
421 424
	//		return true;
422 425
	//	}
423 426

  
424
	/**
425
	 * Compute with vocabularies.
426
	 *
427
	 * @param fullvocabularies the fullvocabularies
428
	 * @return true, if successful
429
	 */
430
	private boolean computeWithVocabularies(List<Index> fullvocabularies, final boolean useAllOccurrences) {
431
		if (fullvocabularies.size() == 0) {
432
			return false;
433
		}
434

  
435
		final List<Index> vocabularies = fullvocabularies.subList(0, 1);
436
		for (Index voc : vocabularies) {
437
			if (!voc.isComputedWithPartition()) {
438
				System.out.println(RCPMessages.ComputeLexicalTable_5);
439
				StatusLine.setMessage(RCPMessages.ComputeLexicalTable_5);
440
				return false;
441
			}
442
		}
443
		
444
		List<Property> properties = vocabularies.get(0).getProperties();
445
		for (Index voc : vocabularies) {
446
			if (!properties.equals(voc.getProperties())) {
447
				Log.warning(NLS.bind(RCPMessages.ComputeLexicalTable_6, properties));
448
				return false;
449
			}
450
		}
451
		
452
		final Index firstIndex = vocabularies.get(0);
453
		Partition firstPartition = firstIndex.getPartition();
454
		for (Index voc : vocabularies) {
455
			if (!firstPartition.equals(voc.getPartition())) {
456
				Log.warning(NLS.bind(RCPMessages.ComputeLexicalTable_7, firstPartition));
457
				return false;
458
			}
459
		}
460
		
461
		final Property property = properties.get(0);
462

  
463
		JobHandler jobhandler = new JobHandler(RCPMessages.bind(RCPMessages.ComputeLexicalTable_0, firstIndex.getName())) {
464
			@Override
465
			protected IStatus run(IProgressMonitor monitor) {
466
				this.runInit(monitor);
467
				try {
468
					monitor.beginTask("Computing Lexical table with Index: "+firstIndex+" property: "+property, 100);
469
					this.acquireSemaphore();
470
					table = new LexicalTable(firstIndex);
471
					table.setParameters(null, null, null, useAllOccurrences);
472
					table.compute(true, monitor);
473
					monitor.worked(45);
474
					this.releaseSemaphore();
475
					if (monitor.isCanceled() || table == null)
476
						return Status.CANCEL_STATUS;
477

  
478
					firstIndex.addChild(table);
479
					monitor.worked(5);
480

  
481
					monitor.subTask(RCPMessages.ComputeLexicalTable_10);
482
					syncExec(new Runnable() {
483
						@Override
484
						public void run() {
485
							IWorkbenchPage page = window.getActivePage();
486
							LexicalTableEditorInput editorInput = new LexicalTableEditorInput(table);
487
							try {
488
								StatusLine.setMessage(RCPMessages.ComputeLexicalTable_10);
489
								page.openEditor(editorInput,
490
										"org.txm.rcp.editors.lexicaltable.LexicalTableEditor"); //$NON-NLS-1$
491
							} catch (PartInitException e) {
492
								org.txm.rcp.utils.Logger.printStackTrace(e);
493
							} 
494
						}
495
					});
496

  
497
					monitor.worked(50);
498
					if (monitor.isCanceled())
499
						return Status.CANCEL_STATUS;
500

  
501
					monitor.subTask(RCPMessages.ComputeSpecifities_2);
502
					syncExec(new Runnable() {
503
						@Override
504
						public void run() {
505
							CorporaView.refresh();
506
							CorporaView.expand(table.getParent());
507
							QueriesView.refresh();
508
							RVariablesView.refresh();
509
						}
510
					});
511

  
512
					monitor.worked(100);
513
				} catch (ThreadDeath td) { 
514
					return Status.CANCEL_STATUS;
515
				} catch (Exception e) {
516
					org.txm.rcp.utils.Logger.printStackTrace(e);
517
				} finally {
518
					monitor.done();
519
				}
520
				return Status.OK_STATUS;
521
			}
522
		};
523
		jobhandler.startJob();
524

  
525
		return true;
526
	}
427
//	/**
428
//	 * Compute with vocabularies.
429
//	 *
430
//	 * @param fullvocabularies the fullvocabularies
431
//	 * @return true, if successful
432
//	 */
433
//	private boolean computeWithVocabularies(List<Index> fullvocabularies, final boolean useAllOccurrences) {
434
//		if (fullvocabularies.size() == 0) {
435
//			return false;
436
//		}
437
//
438
//		final List<Index> vocabularies = fullvocabularies.subList(0, 1);
439
//		for (Index voc : vocabularies) {
440
//			if (!voc.isComputedWithPartition()) {
441
//				System.out.println(RCPMessages.ComputeLexicalTable_5);
442
//				StatusLine.setMessage(RCPMessages.ComputeLexicalTable_5);
443
//				return false;
444
//			}
445
//		}
446
//		
447
//		List<Property> properties = vocabularies.get(0).getProperties();
448
//		for (Index voc : vocabularies) {
449
//			if (!properties.equals(voc.getProperties())) {
450
//				Log.warning(NLS.bind(RCPMessages.ComputeLexicalTable_6, properties));
451
//				return false;
452
//			}
453
//		}
454
//		
455
//		final Index firstIndex = vocabularies.get(0);
456
//		Partition firstPartition = firstIndex.getPartition();
457
//		for (Index voc : vocabularies) {
458
//			if (!firstPartition.equals(voc.getPartition())) {
459
//				Log.warning(NLS.bind(RCPMessages.ComputeLexicalTable_7, firstPartition));
460
//				return false;
461
//			}
462
//		}
463
//		
464
//		final Property property = properties.get(0);
465
//
466
//		JobHandler jobhandler = new JobHandler(RCPMessages.bind(RCPMessages.ComputeLexicalTable_0, firstIndex.getName())) {
467
//			@Override
468
//			protected IStatus run(IProgressMonitor monitor) {
469
//				this.runInit(monitor);
470
//				try {
471
//					monitor.beginTask("Computing Lexical table with Index: "+firstIndex+" property: "+property, 100);
472
//					this.acquireSemaphore();
473
//					table = new LexicalTable(firstIndex);
474
//					table.setParameters(null, null, null, useAllOccurrences);
475
//					table.compute(true, monitor);
476
//					monitor.worked(45);
477
//					this.releaseSemaphore();
478
//					if (monitor.isCanceled() || table == null)
479
//						return Status.CANCEL_STATUS;
480
//
481
//					firstIndex.addChild(table);
482
//					monitor.worked(5);
483
//
484
//					monitor.subTask(RCPMessages.ComputeLexicalTable_10);
485
//					syncExec(new Runnable() {
486
//						@Override
487
//						public void run() {
488
//							IWorkbenchPage page = window.getActivePage();
489
//							LexicalTableEditorInput editorInput = new LexicalTableEditorInput(table);
490
//							try {
491
//								StatusLine.setMessage(RCPMessages.ComputeLexicalTable_10);
492
//								page.openEditor(editorInput,
493
//										"org.txm.rcp.editors.lexicaltable.LexicalTableEditor"); //$NON-NLS-1$
494
//							} catch (PartInitException e) {
495
//								org.txm.rcp.utils.Logger.printStackTrace(e);
496
//							} 
497
//						}
498
//					});
499
//
500
//					monitor.worked(50);
501
//					if (monitor.isCanceled())
502
//						return Status.CANCEL_STATUS;
503
//
504
//					monitor.subTask(RCPMessages.ComputeSpecifities_2);
505
//					syncExec(new Runnable() {
506
//						@Override
507
//						public void run() {
508
//							CorporaView.refresh();
509
//							CorporaView.expand(table.getParent());
510
//							QueriesView.refresh();
511
//							RVariablesView.refresh();
512
//						}
513
//					});
514
//
515
//					monitor.worked(100);
516
//				} catch (ThreadDeath td) { 
517
//					return Status.CANCEL_STATUS;
518
//				} catch (Exception e) {
519
//					org.txm.rcp.utils.Logger.printStackTrace(e);
520
//				} finally {
521
//					monitor.done();
522
//				}
523
//				return Status.OK_STATUS;
524
//			}
525
//		};
526
//		jobhandler.startJob();
527
//
528
//		return true;
529
//	}
530
	
531
	
532
	
533
	
527 534
}
tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/handlers/MergeLines.java (revision 553)
39 39
import org.eclipse.ui.IWorkbenchPart;
40 40
import org.eclipse.ui.handlers.HandlerUtil;
41 41
import org.txm.lexicaltable.core.functions.LexicalTable;
42
import org.txm.lexicaltable.rcp.editors.LexicalTableEditor2;
42
import org.txm.lexicaltable.rcp.editors.LexicalTableEditor;
43 43
import org.txm.lexicaltable.rcp.messages.LexicalTableUIMessages;
44 44
import org.txm.rcp.RCPMessages;
45 45
import org.txm.rcp.StatusLine;
......
60 60

  
61 61
		IWorkbenchPart editor = HandlerUtil.getActiveWorkbenchWindow(event)
62 62
				.getActivePage().getActivePart();
63
		if (editor instanceof LexicalTableEditor2) {
64
			LexicalTableEditor2 LTeditor = (LexicalTableEditor2) editor;
63
		if (editor instanceof LexicalTableEditor) {
64
			LexicalTableEditor LTeditor = (LexicalTableEditor) editor;
65 65
			int[] selection = LTeditor.getlineTableViewer().getTable()
66 66
					.getSelectionIndices();
67 67
			if (selection.length == 0)
......
90 90
	 * @param newname the newname
91 91
	 * @param selection the selection
92 92
	 */
93
	static public void mergeLines(LexicalTableEditor2 LTeditor, String newname,
93
	static public void mergeLines(LexicalTableEditor LTeditor, String newname,
94 94
			int[] selection) {
95 95
		// sum the lines
96 96
		StatusLine.setMessage(LexicalTableUIMessages.LexicalTableEditor_18);
tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/handlers/ExportLexicalTable.java (revision 553)
37 37
import org.eclipse.swt.widgets.Shell;
38 38
import org.eclipse.ui.IWorkbenchPart;
39 39
import org.eclipse.ui.handlers.HandlerUtil;
40
import org.txm.lexicaltable.rcp.editors.LexicalTableEditor2;
40
import org.txm.lexicaltable.rcp.editors.LexicalTableEditor;
41 41
import org.txm.rcp.commands.EditFile;
42 42
import org.txm.rcp.swt.dialog.LastOpened;
43 43

  
......
55 55
	public Object execute(ExecutionEvent event) throws ExecutionException {
56 56
		IWorkbenchPart editor = HandlerUtil.getActiveWorkbenchWindow(event)
57 57
				.getActivePage().getActivePart();
58
		if (editor instanceof LexicalTableEditor2) {
59
			LexicalTableEditor2 LTeditor = (LexicalTableEditor2) editor;
58
		if (editor instanceof LexicalTableEditor) {
59
			LexicalTableEditor LTeditor = (LexicalTableEditor) editor;
60 60
			Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
61 61
					.getShell();
62 62
			FileDialog dialog = new FileDialog(shell, SWT.SAVE);
tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/editors/LexicalTableEditorInput.java (revision 553)
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.lexicaltable.rcp.editors;
29

  
30
import java.util.ArrayList;
31
import java.util.List;
32

  
33
import org.eclipse.jface.viewers.IStructuredContentProvider;
34
import org.eclipse.jface.viewers.ITableLabelProvider;
35
import org.eclipse.jface.viewers.LabelProvider;
36
import org.eclipse.jface.viewers.Viewer;
37
import org.eclipse.osgi.util.NLS;
38
import org.eclipse.swt.graphics.Image;
39
import org.eclipse.ui.IEditorInput;
40
import org.eclipse.ui.part.EditorPart;
41
import org.txm.lexicaltable.core.functions.LexicalTable;
42
import org.txm.rcp.editors.TXMResultEditorInput;
43
import org.txm.rcp.RCPMessages;
44
import org.txm.rcp.editors.Tablable;
45
import org.txm.rcp.editors.input.AbstractTablable;
46
import org.txm.searchengine.cqp.corpus.Property;
47
import org.txm.statsengine.core.StatException;
48
// TODO: Auto-generated Javadoc
49
/**
50
 * The Class LexicalTableEditorInput.
51
 *
52
 * @author sloiseau
53
 */
54
public class LexicalTableEditorInput extends TXMResultEditorInput {
55

  
56
	/** The editors. */
57
	private List<EditorPart> editors;
58
	
59
	/** The inputs. */
60
	private List<IEditorInput> inputs;
61

  
62
	/**
63
	 * Instantiates a new lexical table editor input.
64
	 *
65
	 * @param table the table
66
	 * @param partition the partition
67
	 * @param property the property
68
	 */
69
	public LexicalTableEditorInput(final LexicalTable table) {
70
		super(table);
71
		
72
		editors = new ArrayList<EditorPart>();
73
		editors.add(new TableEditor());
74

  
75
		inputs = new ArrayList<IEditorInput>();
76

  
77
		class LexicalTableLabelProvider extends LabelProvider implements
78
				ITableLabelProvider {
79

  
80
			@Override
81
			public Image getColumnImage(Object element, int columnIndex) {
82
				return null;
83
			}
84

  
85
			@Override
86
			public String getColumnText(Object element, int columnIndex) {
87
				int[] val = (int[]) element;
88
				return String.valueOf(val[columnIndex]);
89
			}
90

  
91
		}
92

  
93
		Tablable asTable = new AbstractTablable() {
94

  
95
			@Override
96
			public String[] getColumnTitles() {
97
				return new String[] { RCPMessages.FrequencyListEditorInput_3,
98
						RCPMessages.FrequencyListEditorInput_4 };
99
			}
100

  
101
			@Override
102
			public String[] getColumnTypes() {
103
				return new String[] { RCPMessages.FrequencyListEditorInput_5,
104
						RCPMessages.FrequencyListEditorInput_6 };
105
			}
106

  
107
			@Override
108
			public IStructuredContentProvider getContentProvider() {
109
				return new IStructuredContentProvider() {
110
					@Override
111
					public Object[] getElements(Object inputElement) {
112
						LexicalTable res = (LexicalTable) inputElement;
113
						List<int[]> row = new ArrayList<int[]>();
114
						for (int i = 0; i < res.getNRows(); i++) {
115
							int[] v = null;
116
							try {
117
								v = res.getRow(i).asIntArray();
118
							} catch (StatException e) {
119
								System.err.println(NLS.bind(
120
										RCPMessages.GraphicalLogger_0, e));
121
							}
122
							row.add(v);
123
						}
124
						return row.toArray();
125
					}
126

  
127
					@Override
128
					public void dispose() {
129
						// TODO Auto-generated method stub
130
					}
131

  
132
					@Override
133
					public void inputChanged(Viewer viewer, Object oldInput,
134
							Object newInput) {
135
						// TODO Auto-generated method stub
136
					}
137

  
138
				};
139
			}
140

  
141
			@Override
142
			public Object getInput() {
143
				return table;
144
			}
145

  
146
			@Override
147
			public LabelProvider getLabelProvider() {
148
				return new LexicalTableLabelProvider();
149
			}
150

  
151
		};
152
		inputs.add(asTable);
153

  
154
	}
155

  
156

  
157
	/**
158
	 * Gets the lexical table.
159
	 *
160
	 * @return the lexicon
161
	 */
162
	public LexicalTable getLexicalTable() {
163
		return (LexicalTable) this.result;
164
	}
165

  
166
	/**
167
	 * Gets the property.
168
	 *
169
	 * @return the property
170
	 */
171
	public Property getProperty() {
172
		return this.getLexicalTable().getProperty();
173
	}
174

  
175
}
tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/editors/LexicalTableEditor2.java (revision 553)
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.lexicaltable.rcp.editors;
29

  
30
import java.io.File;
31
import java.util.ArrayList;
32
import java.util.Arrays;
33
import java.util.Collections;
34
import java.util.Comparator;
35
import java.util.List;
36

  
37
import org.eclipse.core.runtime.IProgressMonitor;
38
import org.eclipse.jface.action.MenuManager;
39
import org.eclipse.jface.viewers.CellLabelProvider;
40
import org.eclipse.jface.viewers.TableViewer;
41
import org.eclipse.jface.viewers.TableViewerColumn;
42
import org.eclipse.jface.viewers.ViewerCell;
43
import org.eclipse.jface.window.Window;
44
import org.eclipse.osgi.util.NLS;
45
import org.eclipse.swt.SWT;
46
import org.eclipse.swt.events.SelectionEvent;
47
import org.eclipse.swt.events.SelectionListener;
48
import org.eclipse.swt.layout.FormAttachment;
49
import org.eclipse.swt.layout.FormData;
50
import org.eclipse.swt.layout.FormLayout;
51
import org.eclipse.swt.layout.GridData;
52
import org.eclipse.swt.layout.GridLayout;
53
import org.eclipse.swt.widgets.Button;
54
import org.eclipse.swt.widgets.Composite;
55
import org.eclipse.swt.widgets.Label;
56
import org.eclipse.swt.widgets.Menu;
57
import org.eclipse.swt.widgets.MessageBox;
58
import org.eclipse.swt.widgets.Spinner;
59
import org.eclipse.swt.widgets.TableColumn;
60
import org.eclipse.ui.IEditorInput;
61
import org.eclipse.ui.IEditorSite;
62
import org.eclipse.ui.PartInitException;
63
import org.txm.core.messages.TXMCoreMessages;
64
import org.txm.core.results.TXMResult;
65
import org.txm.lexicaltable.core.functions.LexicalTable;
66
import org.txm.lexicaltable.core.statsengine.data.ILexicalTable;
67
import org.txm.lexicaltable.rcp.handlers.MergeLines;
68
import org.txm.lexicaltable.rcp.messages.LexicalTableUIMessages;
69
import org.txm.rcp.RCPMessages;
70
import org.txm.rcp.StatusLine;
71
import org.txm.rcp.editors.TXMEditorPart;
72
import org.txm.rcp.editors.TableKeyListener;
73
import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
74
import org.txm.searchengine.cqp.corpus.Corpus;
75
import org.txm.statsengine.core.StatException;
76
import org.txm.statsengine.core.data.Vector;
77
/**
78
 * display the lexical table tools to merge/delete lines or columns and display
79
 * the lexical table too
80
 * 
81
 * @author mdecorde
82
 */
83
public class LexicalTableEditor2 extends TXMEditorPart	{
84

  
85
	
86
	public static final String ID = LexicalTableEditor2.class.getName();
87
	
88
	/** The table. */
89
	LexicalTable table;
90
	ILexicalTable itable;
91
	
92
	// params
93
	/** The line table viewer. */
94
	TableViewer viewer;
95

  
96
	/** The form column. */
97
	TableViewerColumn formColumn;
98

  
99
	/** The freq column. */
100
	TableViewerColumn freqColumn;
101
	// org.eclipse.swt.widgets.List colCombo;
102

  
103
	/** The minfreqspinner. */
104
	Spinner minfreqspinner;
105

  
106
	/** The top spinner. */
107
	Spinner nLinesSpinner;
108

  
109
	/** The cols. */
110
	private List<double[]> cols;
111

  
112
	/** The rows. */
113
	private List<String> rows;
114

  
115
	/** The collist. */
116
	List<Object> collist;
117

  
118
	/** The freqs. */
119
	//private List<Integer> freqs;
120

  
121
	/** The previous sorted col. */
122
	private int previousSortedCol;
123
	boolean DEFAULTREVERSE = false;
124
	boolean reverse = DEFAULTREVERSE;
125

  
126
	/**
127
	 * Inits the.
128
	 *
129
	 * @param site the site
130
	 * @param input the input
131
	 * @throws PartInitException the part init exception
132
	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite,
133
	 * org.eclipse.ui.IEditorInput)
134
	 */
135
	@Override
136
	public void init(IEditorSite site, IEditorInput input) throws PartInitException {
137
		super.init(site, input);
138
		
139
		table = ((LexicalTableEditorInput) input).getLexicalTable();
140
		itable = table.getData();
141
	}
142

  
143
	
144

  
145
	/**
146
	 * Sort.
147
	 *
148
	 * @param col the col
149
	 * @param index the index
150
	 */
151
	public void sort(TableViewerColumn col, int index) {
152

  
153
		if (index == previousSortedCol) {
154
			reverse = !reverse;
155
		} else {
156
			reverse = DEFAULTREVERSE;
157
		}
158

  
159
		if (index == -2) {// rownames
160
			itable.sortRowNames(reverse);
161
		} else if (index == -1) { // freqs
162
			try {
163
				itable.sortByFreqs(reverse);
164
				StatusLine.setMessage(RCPMessages.SORT_DONE);
165
			} catch (Exception e2) {
166
				org.txm.rcp.utils.Logger.printStackTrace(e2);
167
			}
168
		} else if (index >= 0) {
169
			itable.sort(index, reverse);
170
		}
171

  
172
		previousSortedCol = index;
173
		refreshTable();
174

  
175
		viewer.getTable().setSortColumn(col.getColumn());
176
		if (reverse)
177
			viewer.getTable().setSortDirection(SWT.DOWN);
178
		else
179
			viewer.getTable().setSortDirection(SWT.UP);
180
	}
181

  
182
	/**
183
	 * Creates the part control.
184
	 *
185
	 * @param parent the parent
186
	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
187
	 */
188
	@Override
189
	public void createPartControl(final Composite parent) {
190
		
191
		super.createPartControl(parent);
192
		
193
		Composite paramArea = new Composite(this.getCommandParametersGroup(), SWT.NONE);
194

  
195
		GridLayout paramLayout = new GridLayout(5, false);
196
		paramArea.setLayout(paramLayout);
197

  
198
		// Apply button
199
		Button keepTop = new Button(paramArea, SWT.PUSH);
200
		keepTop.setText(LexicalTableUIMessages.LexicalTableEditor_4);
201
		keepTop.addSelectionListener(new SelectionListener() {
202
			@Override
203
			public void widgetSelected(SelectionEvent e) {
204
				StatusLine.setMessage(LexicalTableUIMessages.LexicalTableEditor_16);
205
				System.out.println(NLS.bind(LexicalTableUIMessages.LexicalTableEditor_5, nLinesSpinner.getSelection(), minfreqspinner.getSelection()));
206

  
207
				MessageBox messageBox = new MessageBox(e.display.getActiveShell(), SWT.ICON_QUESTION | SWT.YES | SWT.NO);
208
				messageBox.setMessage(RCPMessages.DeleteLines_1);
209
				int response = messageBox.open();
210
				if (response != SWT.YES)
211
					return;
212

  
213
				try {
214
					itable.filter(nLinesSpinner.getSelection(), minfreqspinner.getSelection());
215
					refresh();
216
					StatusLine.setMessage(""); //$NON-NLS-1$
217
				} catch (Exception e1) {
... Ce différentiel a été tronqué car il excède la taille maximale pouvant être affichée.

Formats disponibles : Unified diff