Révision 2275
tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java (revision 2275) | ||
---|---|---|
141 | 141 |
* @author mdecorde. |
142 | 142 |
*/ |
143 | 143 |
public class ConcordanceEditor extends TXMEditor<Concordance> { |
144 |
|
|
144 |
|
|
145 | 145 |
public static final String ID = ConcordanceEditor.class.getName(); |
146 |
|
|
147 |
String locale = Locale.getDefault().getLanguage();//RCPPreferences.getInstance().getString(RCPPreferences.CONFIG_LOCALE); |
|
148 |
|
|
146 |
|
|
147 |
String locale = Locale.getDefault().getLanguage();// RCPPreferences.getInstance().getString(RCPPreferences.CONFIG_LOCALE);
|
|
148 |
|
|
149 | 149 |
private static final String BACKTOTEXT_COMMAND_ID = "org.txm.rcp.extensionpoint.backtotext"; //$NON-NLS-1$ |
150 |
|
|
150 |
|
|
151 | 151 |
/** The lineids. */ |
152 | 152 |
List<String> lineids; |
153 |
|
|
153 |
|
|
154 | 154 |
/** The standard comparators. */ |
155 | 155 |
private List<LineComparator> standardComparators; |
156 |
|
|
156 |
|
|
157 | 157 |
/** The user defined comparators. */ |
158 | 158 |
private List<LineComparator> userDefinedComparators; |
159 |
|
|
159 |
|
|
160 | 160 |
/** The complexsorter. */ |
161 | 161 |
ComplexSortSelector complexsorter; |
162 |
|
|
162 | 163 |
org.eclipse.swt.widgets.Text cqlSeparator; |
163 |
|
|
164 |
|
|
164 | 165 |
private Concordance concordance; |
165 |
|
|
166 |
|
|
166 | 167 |
/** The standard comparator class name. */ |
167 | 168 |
private LineComparator[] standardComparatorClassName = { |
168 | 169 |
new NullComparator(), new LexicographicKeywordComparator(), |
169 | 170 |
new LexicographicLeftContextComparator(), |
170 | 171 |
new LexicographicRightContextComparator(), |
171 | 172 |
new PropertiesReferenceComparator() }; |
172 |
|
|
173 |
// /** The n line per page. */
|
|
174 |
// private int concordance.getNLinePerPage();
|
|
173 |
|
|
174 |
// /** The n line per page. */
|
|
175 |
// private int concordance.getNLinePerPage();
|
|
175 | 176 |
// |
176 |
// /** The top line. */
|
|
177 |
// private int topLine;
|
|
177 |
// /** The top line. */
|
|
178 |
// private int topLine;
|
|
178 | 179 |
// |
179 |
// /** The bottom line. */
|
|
180 |
// private int bottomLine;
|
|
181 |
|
|
180 |
// /** The bottom line. */
|
|
181 |
// private int bottomLine;
|
|
182 |
|
|
182 | 183 |
/** The current comparator. */ |
183 | 184 |
protected LineComparator currentComparator; |
184 |
|
|
185 |
// /** The left context size. */
|
|
186 |
// private int leftContextSize;
|
|
185 |
|
|
186 |
// /** The left context size. */
|
|
187 |
// private int leftContextSize;
|
|
187 | 188 |
// |
188 |
// /** The right context size. */
|
|
189 |
// private int rightContextSize;
|
|
190 |
|
|
189 |
// /** The right context size. */
|
|
190 |
// private int rightContextSize;
|
|
191 |
|
|
191 | 192 |
/** The mouseposition. */ |
192 | 193 |
private Point mouseposition; |
193 |
|
|
194 |
|
|
194 | 195 |
/** The line table viewer. */ |
195 | 196 |
protected TableViewer viewerRight, viewerLeft; |
196 |
|
|
197 |
|
|
197 | 198 |
/** The reference column. */ |
198 | 199 |
private TableColumn referenceColumn; |
199 |
|
|
200 |
|
|
200 | 201 |
/** The first column. */ |
201 | 202 |
private TableColumn firstColumn; // due to a restriction on some platforms |
202 | 203 |
// (actually, MS Windows), the first |
203 | 204 |
// column is always left aligned. The |
204 | 205 |
// work around is to have a 0 width |
205 | 206 |
// first column |
207 |
|
|
206 | 208 |
/** The left context column. */ |
207 | 209 |
private TableColumn leftContextColumn; |
210 |
|
|
208 | 211 |
/** The keyword column. */ |
209 | 212 |
private TableColumn keywordColumn; |
213 |
|
|
210 | 214 |
/** The right context column. */ |
211 | 215 |
private TableColumn rightContextColumn; |
212 |
|
|
213 |
// /** The view properties label. */
|
|
214 |
// private Label viewPropertiesLabel;
|
|
215 |
|
|
216 |
|
|
217 |
// /** The view properties label. */
|
|
218 |
// private Label viewPropertiesLabel;
|
|
219 |
|
|
216 | 220 |
/** The set sort property action. */ |
217 | 221 |
private Action setSortPropertyAction; |
218 |
|
|
222 |
|
|
219 | 223 |
/** The set context size action. */ |
220 | 224 |
private Action setContextSizeAction; |
221 |
|
|
225 |
|
|
222 | 226 |
/** The set line number action. */ |
223 | 227 |
private Action setLineNumberAction; |
224 |
|
|
228 |
|
|
225 | 229 |
/** The define view reference pattern action. */ |
226 | 230 |
protected Action defineViewReferencePatternAction; |
227 |
|
|
231 |
|
|
228 | 232 |
/** The define sort reference pattern action. */ |
229 |
protected Action defineSortReferencePatternAction;
|
|
230 |
|
|
233 |
protected Action defineSortReferencePatternAction; |
|
234 |
|
|
231 | 235 |
/** The set view property action. */ |
232 | 236 |
protected Action setViewPropertyAction; |
233 |
|
|
237 |
|
|
234 | 238 |
/** The attached browser editor. */ |
235 | 239 |
protected TXMBrowser attachedBrowserEditor; |
236 |
|
|
240 |
|
|
237 | 241 |
/** The progresslistener. */ |
238 | 242 |
protected ProgressListener progresslistener; |
239 |
|
|
243 |
|
|
240 | 244 |
/** The textid. */ |
241 | 245 |
protected String textid; |
242 |
|
|
246 |
|
|
243 | 247 |
/** The opened page. */ |
244 | 248 |
Page openedPage; |
245 |
|
|
249 |
|
|
246 | 250 |
/** The query area. */ |
247 | 251 |
private Composite queryArea; |
248 |
|
|
252 |
|
|
249 | 253 |
/** The navigation area. */ |
250 | 254 |
private NavigationWidget navigationWidget; |
251 |
|
|
252 |
|
|
253 |
/** The hide btn: hides the form |
|
254 |
* TODO: remove the button when the TXMEditorToolbar is fully functionnal. */ |
|
255 |
|
|
256 |
|
|
257 |
/** |
|
258 |
* The hide btn: hides the form |
|
259 |
* TODO: remove the button when the TXMEditorToolbar is fully functionnal. |
|
260 |
*/ |
|
255 | 261 |
private Button deleteLineButton; |
256 |
|
|
262 |
|
|
257 | 263 |
/** The query size. */ |
258 | 264 |
protected Point querySize; |
259 |
|
|
260 |
|
|
265 |
|
|
261 | 266 |
private Sash sash; |
262 |
|
|
267 |
|
|
263 | 268 |
private Listener tableResizeListener; |
264 |
|
|
269 |
|
|
265 | 270 |
private Table leftTable; |
266 |
|
|
271 |
|
|
267 | 272 |
private Table rightTable; |
268 |
|
|
273 |
|
|
269 | 274 |
private ScrollBar vBarLeft; |
270 |
|
|
275 |
|
|
271 | 276 |
private ScrollBar vBarRight; |
272 |
|
|
277 |
|
|
273 | 278 |
private Label queryLabel; |
274 |
|
|
279 |
|
|
275 | 280 |
private Composite navigationArea; |
276 |
|
|
277 |
|
|
281 |
|
|
282 |
|
|
278 | 283 |
/** The query widget. */ |
279 |
@Parameter(key=ConcordancePreferences.QUERY)
|
|
284 |
@Parameter(key = ConcordancePreferences.QUERY)
|
|
280 | 285 |
protected AssistedChoiceQueryWidget queryWidget; |
281 |
|
|
282 |
@Parameter(key=ConcordancePreferences.LEFT_ANALYSIS_PROPERTIES)
|
|
286 |
|
|
287 |
@Parameter(key = ConcordancePreferences.LEFT_ANALYSIS_PROPERTIES)
|
|
283 | 288 |
private PropertiesSelector<WordProperty> leftSortProperties; |
284 |
@Parameter(key=ConcordancePreferences.ANALYSIS_REFERENCE_PATTERN) |
|
289 |
|
|
290 |
@Parameter(key = ConcordancePreferences.ANALYSIS_REFERENCE_PATTERN) |
|
285 | 291 |
private PropertiesSelector<Property> refSortProperties; |
286 |
@Parameter(key=ConcordancePreferences.KEYWORD_ANALYSIS_PROPERTIES) |
|
292 |
|
|
293 |
@Parameter(key = ConcordancePreferences.KEYWORD_ANALYSIS_PROPERTIES) |
|
287 | 294 |
private PropertiesSelector<WordProperty> keywordSortProperties; |
288 |
@Parameter(key=ConcordancePreferences.RIGHT_VIEW_PROPERTIES) |
|
295 |
|
|
296 |
@Parameter(key = ConcordancePreferences.RIGHT_VIEW_PROPERTIES) |
|
289 | 297 |
private PropertiesSelector<WordProperty> rightViewProperties; |
290 |
@Parameter(key=ConcordancePreferences.KEYWORD_VIEW_PROPERTIES) |
|
298 |
|
|
299 |
@Parameter(key = ConcordancePreferences.KEYWORD_VIEW_PROPERTIES) |
|
291 | 300 |
private PropertiesSelector<WordProperty> keywordViewProperties; |
292 |
@Parameter(key=ConcordancePreferences.LEFT_VIEW_PROPERTIES) |
|
301 |
|
|
302 |
@Parameter(key = ConcordancePreferences.LEFT_VIEW_PROPERTIES) |
|
293 | 303 |
private PropertiesSelector<WordProperty> leftViewProperties; |
294 |
@Parameter(key=ConcordancePreferences.VIEW_REFERENCE_PATTERN) |
|
304 |
|
|
305 |
@Parameter(key = ConcordancePreferences.VIEW_REFERENCE_PATTERN) |
|
295 | 306 |
private PropertiesSelector<Property> refViewProperties; |
296 |
@Parameter(key=ConcordancePreferences.RIGHT_ANALYSIS_PROPERTIES) |
|
307 |
|
|
308 |
@Parameter(key = ConcordancePreferences.RIGHT_ANALYSIS_PROPERTIES) |
|
297 | 309 |
private PropertiesSelector<WordProperty> rightSortProperties; |
298 |
@Parameter(key=ConcordancePreferences.LEFT_CONTEXT_SIZE) |
|
310 |
|
|
311 |
@Parameter(key = ConcordancePreferences.LEFT_CONTEXT_SIZE) |
|
299 | 312 |
private Spinner leftSizeSpinner; |
300 |
@Parameter(key=ConcordancePreferences.RIGHT_CONTEXT_SIZE) |
|
313 |
|
|
314 |
@Parameter(key = ConcordancePreferences.RIGHT_CONTEXT_SIZE) |
|
301 | 315 |
private Spinner rightSizeSpinner; |
302 |
|
|
303 |
// private PropertiesSelector<Property> propsArea;
|
|
304 |
|
|
305 |
|
|
306 |
|
|
307 |
|
|
308 |
|
|
316 |
|
|
317 |
// private PropertiesSelector<Property> propsArea;
|
|
318 |
|
|
319 |
|
|
320 |
|
|
321 |
|
|
322 |
|
|
309 | 323 |
@Override |
310 | 324 |
public void init(IEditorSite site, IEditorInput input) throws PartInitException { |
325 |
|
|
311 | 326 |
super.init(site, input); |
312 |
|
|
313 |
if (!(this.result instanceof Concordance)) { |
|
314 |
throw new PartInitException(ConcordanceUIMessages.bind(ConcordanceUIMessages.canNotOpenConcordanceEditorWithP0, result)); |
|
315 |
} |
|
316 |
this.concordance = (Concordance)this.result; |
|
317 |
|
|
327 |
|
|
328 |
if (!(this.result instanceof Concordance)) { throw new PartInitException(ConcordanceUIMessages.bind(ConcordanceUIMessages.canNotOpenConcordanceEditorWithP0, result)); } |
|
329 |
this.concordance = (Concordance) this.result; |
|
330 |
|
|
318 | 331 |
this.standardComparators = new ArrayList<LineComparator>(); |
319 | 332 |
this.userDefinedComparators = new ArrayList<LineComparator>(); |
320 | 333 |
this.setStandardComparators(); |
321 | 334 |
concordance.setNLinePerPage(ConcordancePreferences.getInstance().getInt(ConcordancePreferences.N_LINES_PER_PAGE)); |
322 | 335 |
} |
323 |
|
|
324 |
|
|
336 |
|
|
325 | 337 |
@Override |
326 | 338 |
public void _createPartControl() { |
327 |
|
|
339 |
|
|
328 | 340 |
Composite controlArea = getExtendedParametersGroup(); |
329 |
|
|
341 |
|
|
330 | 342 |
try { |
331 | 343 |
composeControlArea(controlArea); |
332 | 344 |
Composite d = new Composite(getResultArea(), SWT.NONE); |
... | ... | |
336 | 348 |
if (complexsorter != null) { |
337 | 349 |
complexsorter.setComparators(this); |
338 | 350 |
} |
339 |
} catch(Exception e) { |
|
351 |
} |
|
352 |
catch (Exception e) { |
|
340 | 353 |
System.out.println(ConcordanceUIMessages.bind(ConcordanceUIMessages.errorWhileBuildingInterfaceColonP0, e.getLocalizedMessage())); |
341 | 354 |
Log.printStackTrace(e); |
342 | 355 |
} |
343 | 356 |
} |
344 |
|
|
357 |
|
|
345 | 358 |
/** |
346 | 359 |
* Compose display area. |
347 | 360 |
* |
348 | 361 |
* @param displayArea the display area |
349 | 362 |
*/ |
350 | 363 |
private void composeDisplayArea(final Composite displayArea) throws Exception { |
351 |
// tableLayout = new TableColumnLayout(); |
|
364 |
|
|
365 |
// tableLayout = new TableColumnLayout(); |
|
352 | 366 |
displayArea.setLayout(new FormLayout()); |
353 |
|
|
367 |
|
|
354 | 368 |
viewerLeft = new TableViewer(displayArea, SWT.MULTI | SWT.BORDER | SWT.VIRTUAL); |
355 | 369 |
|
356 | 370 |
viewerLeft.setLabelProvider(new LineLabelProvider(this) { |
371 |
|
|
357 | 372 |
@Override |
358 | 373 |
public String getColumnText(Object element, int columnIndex) { |
374 |
|
|
359 | 375 |
Line line = (Line) element; |
360 | 376 |
return line.getViewRef().toString(); |
361 | 377 |
} |
... | ... | |
363 | 379 |
viewerLeft.setContentProvider(new ConcordancesProvider()); |
364 | 380 |
viewerLeft.getTable().setLinesVisible(true); |
365 | 381 |
viewerLeft.getTable().setHeaderVisible(true); |
366 |
|
|
367 |
// firstColumn = new TableColumn(viewer2.getTable(), SWT.LEFT);
|
|
368 |
// firstColumn.setWidth(10);
|
|
369 |
|
|
370 |
referenceColumn = new TableColumn(viewerLeft.getTable(), SWT.LEFT|SWT.H_SCROLL);
|
|
382 |
|
|
383 |
// firstColumn = new TableColumn(viewer2.getTable(), SWT.LEFT);
|
|
384 |
// firstColumn.setWidth(10);
|
|
385 |
|
|
386 |
referenceColumn = new TableColumn(viewerLeft.getTable(), SWT.LEFT | SWT.H_SCROLL);
|
|
371 | 387 |
refreshReferenceColumnTitle(); |
372 | 388 |
referenceColumn.setToolTipText(ConcordanceUIMessages.reference); |
373 | 389 |
referenceColumn.addSelectionListener(new SelectionListener() { |
390 |
|
|
374 | 391 |
@Override |
375 | 392 |
public void widgetSelected(SelectionEvent e) { |
393 |
|
|
376 | 394 |
StatusLine.setMessage(ConcordanceUIMessages.sortingReferenceColumn); |
377 | 395 |
LineComparator comparator = new PropertiesReferenceComparator(); |
378 | 396 |
if (viewerLeft.getTable().getSortColumn() != referenceColumn) { |
379 | 397 |
viewerLeft.getTable().setSortColumn(null); |
380 | 398 |
viewerLeft.getTable().setSortColumn(referenceColumn); |
381 | 399 |
viewerLeft.getTable().setSortDirection(SWT.UP); |
382 |
} else if (viewerLeft.getTable().getSortDirection() == SWT.UP) { |
|
400 |
} |
|
401 |
else if (viewerLeft.getTable().getSortDirection() == SWT.UP) { |
|
383 | 402 |
viewerLeft.getTable().setSortDirection(SWT.DOWN); |
384 | 403 |
comparator = new ReverseComparator(comparator); |
385 |
} else { |
|
404 |
} |
|
405 |
else { |
|
386 | 406 |
viewerLeft.getTable().setSortDirection(SWT.UP); |
387 | 407 |
} |
388 | 408 |
comparator.initialize(concordance.getCorpus()); |
389 | 409 |
currentComparator = comparator; |
390 |
complexsorter.setKey(4);//set ref key |
|
410 |
complexsorter.setKey(4);// set ref key
|
|
391 | 411 |
sort(); |
392 | 412 |
StatusLine.setMessage(""); //$NON-NLS-1$ |
393 | 413 |
} |
394 |
|
|
414 |
|
|
395 | 415 |
@Override |
396 |
public void widgetDefaultSelected(SelectionEvent e) { |
|
397 |
} |
|
416 |
public void widgetDefaultSelected(SelectionEvent e) {} |
|
398 | 417 |
}); |
399 | 418 |
referenceColumn.setWidth(100); |
400 |
|
|
419 |
|
|
401 | 420 |
sash = new Sash(displayArea, SWT.VERTICAL); |
402 | 421 |
sash.addSelectionListener(new SelectionAdapter() { |
422 |
|
|
403 | 423 |
public void widgetSelected(SelectionEvent event) { |
424 |
|
|
404 | 425 |
((FormData) sash.getLayoutData()).left = new FormAttachment(0, event.x); |
405 | 426 |
sash.getParent().layout(); |
406 | 427 |
} |
407 | 428 |
}); |
408 | 429 |
viewerRight = new TableViewer(displayArea, SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER |
409 |
// | SWT.VIRTUAL
|
|
430 |
// | SWT.VIRTUAL
|
|
410 | 431 |
); |
411 |
|
|
412 |
//viewer.setLabelProvider(new LineLabelProvider(this)); |
|
432 |
|
|
433 |
// viewer.setLabelProvider(new LineLabelProvider(this));
|
|
413 | 434 |
viewerRight.setContentProvider(new ConcordancesProvider()); |
414 | 435 |
viewerRight.getTable().setLinesVisible(true); |
415 | 436 |
viewerRight.getTable().setHeaderVisible(true); |
416 |
|
|
437 |
|
|
417 | 438 |
String f = concordance.getCorpus().getFont(); |
418 | 439 |
if (f != null && f.length() > 0) { |
419 | 440 |
Font old = viewerRight.getTable().getFont(); |
420 | 441 |
FontData fD = old.getFontData()[0]; |
421 |
Font font = new Font(Display.getCurrent(), f, fD.getHeight(), fD.getStyle());
|
|
442 |
Font font = new Font(Display.getCurrent(), f, fD.getHeight(), fD.getStyle()); |
|
422 | 443 |
viewerRight.getTable().setFont(font); |
423 | 444 |
viewerLeft.getTable().setFont(font); |
424 | 445 |
} |
425 |
|
|
446 |
|
|
426 | 447 |
tableResizeListener = new Listener() { |
448 |
|
|
427 | 449 |
@Override |
428 | 450 |
public void handleEvent(Event event) { |
451 |
|
|
429 | 452 |
ScrollBar bar = viewerRight.getTable().getHorizontalBar(); |
430 |
float l=leftContextColumn.getWidth();
|
|
431 |
float k=keywordColumn.getWidth();
|
|
432 |
float r=rightContextColumn.getWidth();
|
|
433 |
float t=viewerRight.getTable().getClientArea().width;//the width of the visible part of the table; l+k+r>=t
|
|
434 |
float x=l+k/2-t/2; //the abcisse the visible rectangle must have for the keyword column to be centered
|
|
435 |
float M=bar.getMaximum();
|
|
436 |
float T=bar.getThumb();
|
|
437 |
bar.setSelection(Math.round(x*(M-T)/(l+k+r-t)));//this is how x translate in terms of bar selection
|
|
453 |
float l = leftContextColumn.getWidth();
|
|
454 |
float k = keywordColumn.getWidth();
|
|
455 |
float r = rightContextColumn.getWidth();
|
|
456 |
float t = viewerRight.getTable().getClientArea().width;// the width of the visible part of the table; l+k+r>=t
|
|
457 |
float x = l + k / 2 - t / 2; // the abcisse the visible rectangle must have for the keyword column to be centered
|
|
458 |
float M = bar.getMaximum();
|
|
459 |
float T = bar.getThumb();
|
|
460 |
bar.setSelection(Math.round(x * (M - T) / (l + k + r - t)));// this is how x translate in terms of bar selection
|
|
438 | 461 |
} |
439 | 462 |
}; |
440 |
|
|
463 |
|
|
441 | 464 |
// try to center on keyword column |
442 | 465 |
viewerRight.getTable().addListener(SWT.Resize, tableResizeListener); |
443 |
|
|
444 |
//TODO: to enable line deletion, Concordance code must updated -> replace with key binding |
|
466 |
|
|
467 |
// TODO: to enable line deletion, Concordance code must updated -> replace with key binding
|
|
445 | 468 |
KeyListener kldelete = new KeyListener() { |
469 |
|
|
446 | 470 |
@Override |
447 |
public void keyReleased(KeyEvent e) { } |
|
471 |
public void keyReleased(KeyEvent e) {} |
|
472 |
|
|
448 | 473 |
@Override |
449 | 474 |
public void keyPressed(KeyEvent e) { |
450 |
if (e.keyCode != SWT.DEL ) { return; } |
|
475 |
|
|
476 |
if (e.keyCode != SWT.DEL) { return; } |
|
451 | 477 |
DeleteLines.deleteConcordanceLines(ConcordanceEditor.this); |
452 | 478 |
} |
453 | 479 |
}; |
454 | 480 |
viewerRight.getTable().addKeyListener(kldelete); |
455 | 481 |
viewerLeft.getTable().addKeyListener(kldelete); |
456 |
|
|
482 |
|
|
457 | 483 |
TableKeyListener tlistener = new TableKeyListener(viewerLeft, viewerRight); |
458 | 484 |
viewerRight.getTable().addKeyListener(tlistener); |
459 | 485 |
viewerLeft.getTable().addKeyListener(tlistener); |
... | ... | |
461 | 487 |
firstColumn = new TableColumn(viewerRight.getTable(), SWT.LEFT); |
462 | 488 |
firstColumn.setWidth(0); |
463 | 489 |
firstColumn.setResizable(false); |
464 |
|
|
490 |
|
|
465 | 491 |
TableViewerColumn leftColumnViewer = new TableViewerColumn(viewerRight, SWT.RIGHT); |
466 | 492 |
leftContextColumn = leftColumnViewer.getColumn(); |
467 | 493 |
leftContextColumn.setText(ConcordanceUIMessages.leftContext); |
468 | 494 |
leftContextColumn.setToolTipText(ConcordanceUIMessages.leftContext); |
469 | 495 |
leftContextColumn.setAlignment(SWT.RIGHT); |
470 | 496 |
leftColumnViewer.setLabelProvider(new ColumnLabelProvider() { |
497 |
|
|
471 | 498 |
@Override |
472 | 499 |
public String getText(Object element) { |
500 |
|
|
473 | 501 |
Line line = (Line) element; |
474 | 502 |
return line.leftContextToString(); |
475 | 503 |
} |
476 | 504 |
}); |
505 |
|
|
477 | 506 |
leftContextColumn.addSelectionListener(new SelectionListener() { |
507 |
|
|
478 | 508 |
@Override |
479 | 509 |
public void widgetSelected(SelectionEvent e) { |
510 |
|
|
480 | 511 |
StatusLine.setMessage(ConcordanceUIMessages.sortingLeftContextColumn); |
481 | 512 |
LineComparator comparator = new LexicographicLeftContextComparator(); |
482 | 513 |
if (viewerRight.getTable().getSortColumn() != leftContextColumn) { |
483 | 514 |
viewerRight.getTable().setSortColumn(leftContextColumn); |
484 | 515 |
viewerRight.getTable().setSortDirection(SWT.UP); |
485 |
} else if (viewerRight.getTable().getSortDirection() == SWT.UP) { |
|
516 |
} |
|
517 |
else if (viewerRight.getTable().getSortDirection() == SWT.UP) { |
|
486 | 518 |
viewerRight.getTable().setSortDirection(SWT.DOWN); |
487 | 519 |
comparator = new ReverseComparator(comparator); |
488 |
} else |
|
520 |
} |
|
521 |
else |
|
489 | 522 |
viewerRight.getTable().setSortDirection(SWT.UP); |
490 | 523 |
comparator.initialize(concordance.getCorpus()); |
491 | 524 |
currentComparator = comparator; |
492 |
complexsorter.setKey(2);//set ref key |
|
525 |
complexsorter.setKey(2);// set ref key
|
|
493 | 526 |
sort(); |
494 | 527 |
StatusLine.setMessage(""); //$NON-NLS-1$ |
495 | 528 |
} |
496 |
|
|
529 |
|
|
497 | 530 |
@Override |
498 |
public void widgetDefaultSelected(SelectionEvent e) { |
|
499 |
} |
|
531 |
public void widgetDefaultSelected(SelectionEvent e) {} |
|
500 | 532 |
}); |
501 |
|
|
533 |
|
|
502 | 534 |
TableViewerColumn keywordColumnViewer = new TableViewerColumn(viewerRight, SWT.CENTER); |
503 | 535 |
keywordColumn = keywordColumnViewer.getColumn(); |
504 | 536 |
keywordColumn.setText(ConcordanceUIMessages.keyword); |
505 | 537 |
keywordColumn.setToolTipText(ConcordanceUIMessages.keyword); |
506 | 538 |
keywordColumn.setAlignment(SWT.CENTER); |
507 | 539 |
keywordColumnViewer.setLabelProvider(new ColumnLabelProvider() { |
540 |
|
|
508 | 541 |
@Override |
509 | 542 |
public String getText(Object element) { |
543 |
|
|
510 | 544 |
Line line = (Line) element; |
511 | 545 |
return line.keywordToString(); |
512 | 546 |
} |
513 | 547 |
}); |
548 |
|
|
514 | 549 |
keywordColumn.addSelectionListener(new SelectionListener() { |
550 |
|
|
515 | 551 |
@Override |
516 | 552 |
public void widgetSelected(SelectionEvent e) { |
553 |
|
|
517 | 554 |
StatusLine.setMessage(ConcordanceUIMessages.sortingKeywordColumn); |
518 | 555 |
LineComparator comparator = new LexicographicKeywordComparator(); |
519 | 556 |
if (viewerRight.getTable().getSortColumn() != keywordColumn) { |
... | ... | |
529 | 566 |
} |
530 | 567 |
comparator.initialize(concordance.getCorpus()); |
531 | 568 |
currentComparator = comparator; |
532 |
complexsorter.setKey(1);//set ref key |
|
569 |
complexsorter.setKey(1);// set ref key
|
|
533 | 570 |
sort(); |
534 | 571 |
StatusLine.setMessage(""); //$NON-NLS-1$ |
535 | 572 |
} |
536 |
|
|
573 |
|
|
537 | 574 |
@Override |
538 |
public void widgetDefaultSelected(SelectionEvent e) { |
|
539 |
} |
|
575 |
public void widgetDefaultSelected(SelectionEvent e) {} |
|
540 | 576 |
}); |
541 |
|
|
542 |
|
|
577 |
|
|
543 | 578 |
TableViewerColumn rightContextColumnViewer = new TableViewerColumn(viewerRight, SWT.LEFT); |
544 | 579 |
rightContextColumn = rightContextColumnViewer.getColumn(); |
545 | 580 |
rightContextColumn.setText(ConcordanceUIMessages.rightContext); |
546 | 581 |
rightContextColumn.setToolTipText(ConcordanceUIMessages.rightContext); |
547 | 582 |
rightContextColumn.setAlignment(SWT.LEFT); |
548 | 583 |
rightContextColumnViewer.setLabelProvider(new ColumnLabelProvider() { |
584 |
|
|
549 | 585 |
@Override |
550 | 586 |
public String getText(Object element) { |
587 |
|
|
551 | 588 |
Line line = (Line) element; |
552 | 589 |
return line.rightContextToString(); |
553 | 590 |
} |
554 | 591 |
}); |
555 | 592 |
rightContextColumn.addSelectionListener(new SelectionListener() { |
593 |
|
|
556 | 594 |
@Override |
557 | 595 |
public void widgetSelected(SelectionEvent e) { |
596 |
|
|
558 | 597 |
StatusLine.setMessage(ConcordanceUIMessages.sortingRightContextColumn); |
559 | 598 |
LineComparator comparator = new LexicographicRightContextComparator(); |
560 |
|
|
599 |
|
|
561 | 600 |
if (viewerRight.getTable().getSortColumn() != rightContextColumn) { |
562 | 601 |
viewerRight.getTable().setSortColumn(rightContextColumn); |
563 | 602 |
} |
... | ... | |
570 | 609 |
} |
571 | 610 |
comparator.initialize(concordance.getCorpus()); |
572 | 611 |
currentComparator = comparator; |
573 |
complexsorter.setKey(3); //set ref key |
|
612 |
complexsorter.setKey(3); // set ref key
|
|
574 | 613 |
sort(); |
575 | 614 |
StatusLine.setMessage(""); //$NON-NLS-1$ |
576 | 615 |
} |
577 |
|
|
616 |
|
|
578 | 617 |
@Override |
579 |
public void widgetDefaultSelected(SelectionEvent e) { |
|
580 |
} |
|
618 |
public void widgetDefaultSelected(SelectionEvent e) {} |
|
581 | 619 |
}); |
582 |
|
|
583 |
// firstColumn = new TableColumn(viewer.getTable(), SWT.LEFT);
|
|
584 |
// firstColumn.setWidth(0);
|
|
585 |
// firstColumn.setResizable(false);
|
|
586 |
|
|
620 |
|
|
621 |
// firstColumn = new TableColumn(viewer.getTable(), SWT.LEFT);
|
|
622 |
// firstColumn.setWidth(0);
|
|
623 |
// firstColumn.setResizable(false);
|
|
624 |
|
|
587 | 625 |
leftContextColumn.setWidth(200); |
588 | 626 |
keywordColumn.setWidth(100); |
589 | 627 |
rightContextColumn.setWidth(200); |
590 |
|
|
591 |
//resetColumnWidths(); // set column widths |
|
592 |
|
|
593 |
|
|
594 |
// // And now, a sweet piece of code :)
|
|
595 |
// // When the window is resized, the scrollbar is adjusted so that the
|
|
596 |
// // keywords remain centered
|
|
597 |
// viewer.getTable().addListener(SWT.Resize, new Listener() {
|
|
598 |
// @Override
|
|
599 |
// public void handleEvent(Event event) {
|
|
600 |
// ScrollBar bar = viewer.getTable().getHorizontalBar();
|
|
601 |
// //float l = leftContextColumn.getWidth();
|
|
602 |
// //float k = keywordColumn.getWidth();
|
|
603 |
// rightContextColumn.getWidth();
|
|
604 |
// //float t = lineTableViewer.getTable().getClientArea().width;
|
|
605 |
// bar.getMaximum();
|
|
606 |
// bar.getThumb();
|
|
607 |
// }
|
|
608 |
// });
|
|
609 |
|
|
628 |
|
|
629 |
// resetColumnWidths(); // set column widths
|
|
630 |
|
|
631 |
|
|
632 |
// // And now, a sweet piece of code :)
|
|
633 |
// // When the window is resized, the scrollbar is adjusted so that the
|
|
634 |
// // keywords remain centered
|
|
635 |
// viewer.getTable().addListener(SWT.Resize, new Listener() {
|
|
636 |
// @Override
|
|
637 |
// public void handleEvent(Event event) {
|
|
638 |
// ScrollBar bar = viewer.getTable().getHorizontalBar();
|
|
639 |
// //float l = leftContextColumn.getWidth();
|
|
640 |
// //float k = keywordColumn.getWidth();
|
|
641 |
// rightContextColumn.getWidth();
|
|
642 |
// //float t = lineTableViewer.getTable().getClientArea().width;
|
|
643 |
// bar.getMaximum();
|
|
644 |
// bar.getThumb();
|
|
645 |
// }
|
|
646 |
// });
|
|
647 |
|
|
610 | 648 |
// back to text mouse listener |
611 | 649 |
MouseListener ms = new MouseListener() { |
650 |
|
|
612 | 651 |
int c = 0; |
652 |
|
|
613 | 653 |
@Override |
614 | 654 |
public synchronized void mouseDoubleClick(MouseEvent e) { |
655 |
|
|
615 | 656 |
if (e.count == 2 && c == 0) { |
616 | 657 |
c++; |
617 | 658 |
|
... | ... | |
621 | 662 |
c--; |
622 | 663 |
} |
623 | 664 |
} |
624 |
|
|
665 |
|
|
625 | 666 |
@Override |
626 |
public void mouseDown(MouseEvent e) { } |
|
667 |
public void mouseDown(MouseEvent e) {} |
|
668 |
|
|
627 | 669 |
@Override |
628 |
public void mouseUp(MouseEvent e) { }
|
|
670 |
public void mouseUp(MouseEvent e) {} |
|
629 | 671 |
}; |
630 | 672 |
viewerRight.getTable().addMouseListener(ms); |
631 | 673 |
viewerLeft.getTable().addMouseListener(ms); |
632 |
|
|
674 |
|
|
633 | 675 |
// On Windows, the selection is gray if the table does not have focus. |
634 | 676 |
// To make both tables appear in focus, draw the selection background |
635 | 677 |
// here. |
636 | 678 |
// This part only works on version 3.2 or later. |
637 | 679 |
Listener eraseListener = new Listener() { |
680 |
|
|
638 | 681 |
@Override |
639 | 682 |
public void handleEvent(Event event) { |
683 |
|
|
640 | 684 |
event.detail &= ~SWT.HOT; |
641 | 685 |
if ((event.detail & SWT.SELECTED) != 0) { |
642 | 686 |
GC gc = event.gc; |
... | ... | |
650 | 694 |
} |
651 | 695 |
} |
652 | 696 |
}; |
653 |
|
|
697 |
|
|
654 | 698 |
// Listeners to avoid 0 width columns |
655 | 699 |
referenceColumn.addControlListener(new ConcordanceColumnSizeControlListener(referenceColumn)); |
656 | 700 |
leftContextColumn.addControlListener(new ConcordanceColumnSizeControlListener(leftContextColumn)); |
657 | 701 |
keywordColumn.addControlListener(new ConcordanceColumnSizeControlListener(keywordColumn)); |
658 | 702 |
rightContextColumn.addControlListener(new ConcordanceColumnSizeControlListener(rightContextColumn)); |
659 |
|
|
703 |
|
|
660 | 704 |
viewerRight.getTable().addListener(SWT.EraseItem, eraseListener); |
661 |
|
|
705 |
|
|
662 | 706 |
leftTable = viewerLeft.getTable(); |
663 | 707 |
rightTable = viewerRight.getTable(); |
664 | 708 |
viewerLeft.getTable().addSelectionListener(new SelectionListener() { |
709 |
|
|
665 | 710 |
@Override |
666 | 711 |
public void widgetSelected(SelectionEvent e) { |
712 |
|
|
667 | 713 |
rightTable.deselectAll(); |
668 | 714 |
rightTable.select(leftTable.getSelectionIndices()); |
669 | 715 |
} |
716 |
|
|
670 | 717 |
@Override |
671 |
public void widgetDefaultSelected(SelectionEvent e) { }
|
|
718 |
public void widgetDefaultSelected(SelectionEvent e) {} |
|
672 | 719 |
}); |
720 |
|
|
673 | 721 |
vBarLeft = viewerLeft.getTable().getVerticalBar(); |
674 | 722 |
vBarLeft.addListener(SWT.Selection, new Listener() { |
723 |
|
|
675 | 724 |
@Override |
676 | 725 |
public void handleEvent(Event event) { |
726 |
|
|
677 | 727 |
if (Util.isLinux()) { |
678 | 728 |
vBarRight.setSelection(vBarLeft.getSelection()); |
679 |
} else { |
|
729 |
} |
|
730 |
else { |
|
680 | 731 |
viewerRight.getTable().setTopIndex(viewerLeft.getTable().getTopIndex()); |
681 | 732 |
} |
682 | 733 |
} |
683 | 734 |
}); |
735 |
|
|
684 | 736 |
viewerRight.getTable().addSelectionListener(new SelectionListener() { |
737 |
|
|
685 | 738 |
@Override |
686 | 739 |
public void widgetSelected(SelectionEvent e) { |
740 |
|
|
687 | 741 |
leftTable.deselectAll(); |
688 | 742 |
leftTable.select(rightTable.getSelectionIndices()); |
689 | 743 |
} |
744 |
|
|
690 | 745 |
@Override |
691 |
public void widgetDefaultSelected(SelectionEvent e) { }
|
|
746 |
public void widgetDefaultSelected(SelectionEvent e) {} |
|
692 | 747 |
}); |
748 |
|
|
693 | 749 |
vBarRight = viewerRight.getTable().getVerticalBar(); |
694 | 750 |
vBarRight.addListener(SWT.Selection, new Listener() { |
751 |
|
|
695 | 752 |
@Override |
696 | 753 |
public void handleEvent(Event event) { |
754 |
|
|
697 | 755 |
if (Util.isLinux()) { |
698 | 756 |
vBarLeft.setSelection(vBarRight.getSelection()); |
699 |
} else { |
|
700 |
viewerLeft.getTable().setTopIndex(viewerRight.getTable().getTopIndex()); |
|
701 | 757 |
} |
758 |
else { |
|
759 |
viewerLeft.getTable().setTopIndex(viewerRight.getTable().getTopIndex()); |
|
760 |
} |
|
702 | 761 |
} |
703 | 762 |
}); |
704 |
|
|
763 |
|
|
705 | 764 |
// set Layout datas |
706 | 765 |
FormData data = new FormData(); |
707 |
data.top = new FormAttachment(0);
|
|
708 |
data.bottom = new FormAttachment(100);
|
|
766 |
data.top = new FormAttachment(0); |
|
767 |
data.bottom = new FormAttachment(100); |
|
709 | 768 |
data.left = new FormAttachment(0); |
710 |
data.right = new FormAttachment(sash,0); |
|
769 |
data.right = new FormAttachment(sash, 0);
|
|
711 | 770 |
viewerLeft.getTable().setLayoutData(data); |
712 |
|
|
771 |
|
|
713 | 772 |
FormData data2 = new FormData(); |
714 |
data2.top = new FormAttachment(0, 0);
|
|
715 |
data2.bottom = new FormAttachment(100, 0);
|
|
773 |
data2.top = new FormAttachment(0, 0); |
|
774 |
data2.bottom = new FormAttachment(100, 0); |
|
716 | 775 |
data2.left = new FormAttachment(10); |
717 | 776 |
sash.setLayoutData(data2); |
718 |
|
|
777 |
|
|
719 | 778 |
FormData data3 = new FormData(); |
720 |
data3.top = new FormAttachment(0);
|
|
721 |
data3.bottom = new FormAttachment(100);
|
|
722 |
data3.left = new FormAttachment(sash,0); |
|
779 |
data3.top = new FormAttachment(0); |
|
780 |
data3.bottom = new FormAttachment(100); |
|
781 |
data3.left = new FormAttachment(sash, 0);
|
|
723 | 782 |
data3.right = new FormAttachment(100); |
724 | 783 |
viewerRight.getTable().setLayoutData(data3); |
725 |
|
|
784 |
|
|
726 | 785 |
createContextMenu(); |
727 | 786 |
} |
728 |
|
|
787 |
|
|
729 | 788 |
/** |
730 | 789 |
* Sort. |
731 | 790 |
*/ |
732 | 791 |
public void sort() { |
792 |
|
|
733 | 793 |
if (concordance != null && currentComparator != null) { |
734 |
|
|
735 |
//System.out.println("concordance sort props: "+concordance.getLeftCAnalysisProperty()+", "+concordance.getKeywordAnalysisProperty()+", "+concordance.getRightCAnalysisProperty()); |
|
794 |
|
|
795 |
// System.out.println("concordance sort props: "+concordance.getLeftCAnalysisProperty()+", "+concordance.getKeywordAnalysisProperty()+", "+concordance.getRightCAnalysisProperty());
|
|
736 | 796 |
concordance.resetLines(); |
737 |
|
|
797 |
|
|
738 | 798 |
try { |
739 | 799 |
Log.fine(NLS.bind(ConcordanceUIMessages.sortingWithP0, currentComparator.getName())); |
740 | 800 |
if (currentComparator instanceof CompositeComparator) { |
741 | 801 |
Log.fine(((CompositeComparator) currentComparator).getComparators().toString()); |
742 | 802 |
} |
743 | 803 |
JobHandler jobhandler = new JobHandler("Sorting...") { //$NON-NLS-1$ |
804 |
|
|
744 | 805 |
@Override |
745 | 806 |
protected IStatus run(IProgressMonitor monitor) { |
807 |
|
|
746 | 808 |
this.runInit(monitor); |
747 | 809 |
JobsTimer.start(); |
748 | 810 |
try { |
... | ... | |
752 | 814 |
concordance.setTopIndex(0); |
753 | 815 |
concordance.setCurrentMonitor(null); |
754 | 816 |
syncExec(new Runnable() { |
817 |
|
|
755 | 818 |
@Override |
756 | 819 |
public void run() { |
820 |
|
|
757 | 821 |
StatusLine.setMessage(TXMUIMessages.sortDone); |
758 | 822 |
try { |
759 | 823 |
refresh(true); |
760 |
} catch (Exception e1) { |
|
824 |
} |
|
825 |
catch (Exception e1) { |
|
761 | 826 |
// TODO Auto-generated catch block |
762 | 827 |
e1.printStackTrace(); |
763 | 828 |
} |
764 | 829 |
} |
765 | 830 |
}); |
766 |
|
|
767 |
} catch (ThreadDeath td) { |
|
831 |
|
|
832 |
} |
|
833 |
catch (ThreadDeath td) { |
|
768 | 834 |
return Status.CANCEL_STATUS; |
769 |
} catch (Exception e) { |
|
835 |
} |
|
836 |
catch (Exception e) { |
|
770 | 837 |
System.err.println(NLS.bind(ConcordanceUIMessages.anErrorOccurredWhileRetrievingTheConcordanceLinesColonP0, e)); |
771 | 838 |
org.txm.utils.logger.Log.printStackTrace(e); |
772 |
} catch (Error e) { |
|
773 |
System.err.println(ConcordanceUIMessages.bind(ConcordanceUIMessages.fatalErrorColonP0,e)); |
|
839 |
} |
|
840 |
catch (Error e) { |
|
841 |
System.err.println(ConcordanceUIMessages.bind(ConcordanceUIMessages.fatalErrorColonP0, e)); |
|
774 | 842 |
e.printStackTrace(); |
775 |
} finally { |
|
843 |
} |
|
844 |
finally { |
|
776 | 845 |
monitor.done(); |
777 | 846 |
JobsTimer.stopAndPrint(); |
778 | 847 |
} |
779 | 848 |
return Status.OK_STATUS; |
780 | 849 |
} |
781 | 850 |
}; |
782 |
|
|
851 |
|
|
783 | 852 |
jobhandler.startJob(); |
784 |
} catch (Exception e) { |
|
853 |
} |
|
854 |
catch (Exception e) { |
|
785 | 855 |
System.err.println(NLS.bind(ConcordanceUIMessages.anErrorOccurredWhileRetrievingTheConcordanceLinesColonP0, e)); |
786 | 856 |
org.txm.utils.logger.Log.printStackTrace(e); |
787 | 857 |
} |
788 | 858 |
} |
789 | 859 |
} |
790 |
|
|
860 |
|
|
791 | 861 |
/** |
792 | 862 |
* Lazy loads the concordance lines range and fills the display area. |
793 | 863 |
* |
... | ... | |
795 | 865 |
* @param to the to |
796 | 866 |
*/ |
797 | 867 |
public void fillDisplayArea(boolean update) { |
798 |
if (viewerRight == null) { |
|
799 |
return; |
|
800 |
} |
|
801 |
|
|
868 |
|
|
869 |
if (viewerRight == null) { return; } |
|
870 |
|
|
802 | 871 |
int from = concordance.getTopIndex(); |
803 | 872 |
from = Math.max(from, 0); |
804 |
|
|
873 |
|
|
805 | 874 |
int to = from + concordance.getNLinePerPage(); |
806 | 875 |
to = Math.min(to, concordance.getNLines()) - 1; |
807 |
|
|
876 |
|
|
808 | 877 |
viewerRight.getControl().setRedraw(false); |
809 | 878 |
viewerLeft.getControl().setRedraw(false); |
810 |
|
|
879 |
|
|
811 | 880 |
List<Line> lines = null; |
812 | 881 |
if (concordance.getNLines() > 0) { |
813 | 882 |
try { |
814 | 883 |
lines = concordance.getLines(from, to); |
815 |
} catch (Exception e) { |
|
884 |
} |
|
885 |
catch (Exception e) { |
|
816 | 886 |
System.err.println(NLS.bind(ConcordanceUIMessages.anErrorOccurredWhileRetrievingTheConcordanceLinesColonP0, e)); |
817 | 887 |
org.txm.utils.logger.Log.printStackTrace(e); |
818 | 888 |
} |
... | ... | |
820 | 890 |
else { |
821 | 891 |
lines = new ArrayList<Line>(); |
822 | 892 |
} |
823 |
|
|
893 |
|
|
824 | 894 |
viewerRight.setInput(lines); |
825 | 895 |
viewerLeft.setInput(lines); |
826 |
|
|
827 |
navigationWidget.setInfoLineText("" + (from+1), " - " + (to+1) + " / " + concordance.getNLines()); //$NON-NLS-1$ //$NON-NLS-2$ $NON-NLS-3$
|
|
828 |
|
|
896 |
|
|
897 |
navigationWidget.setInfoLineText("" + (from + 1), " - " + (to + 1) + " / " + concordance.getNLines()); //$NON-NLS-1$ //$NON-NLS-2$ $NON-NLS-3$
|
|
898 |
|
|
829 | 899 |
navigationWidget.setPreviousEnabled(concordance.getTopIndex() > 0); |
830 | 900 |
navigationWidget.setFirstEnabled(concordance.getTopIndex() > 0); |
831 | 901 |
navigationWidget.setNextEnabled((concordance.getTopIndex() + concordance.getNLinePerPage()) < concordance.getNLines() - 1); |
832 | 902 |
navigationWidget.setLastEnabled((concordance.getTopIndex() + concordance.getNLinePerPage()) < concordance.getNLines() - 1); |
833 | 903 |
navigationWidget.layout(); |
834 | 904 |
navigationWidget.getParent().layout(); |
835 |
|
|
905 |
|
|
836 | 906 |
refreshReferenceColumnTitle(); |
837 | 907 |
viewerRight.getControl().setRedraw(true); |
838 | 908 |
viewerLeft.getControl().setRedraw(true); |
839 | 909 |
} |
840 |
|
|
910 |
|
|
841 | 911 |
/** |
842 | 912 |
* Get the Composite that contains the query and sort forms |
843 | 913 |
* |
... | ... | |
846 | 916 |
* @return |
847 | 917 |
*/ |
848 | 918 |
public Composite getQueryArea() { |
919 |
|
|
849 | 920 |
return queryArea; |
850 | 921 |
} |
851 |
|
|
922 |
|
|
852 | 923 |
/** |
853 | 924 |
* Get the Composite that contains the navigation buttons |
854 | 925 |
* |
... | ... | |
857 | 928 |
* @return |
858 | 929 |
*/ |
859 | 930 |
public Composite getNavigationArea() { |
931 |
|
|
860 | 932 |
return queryArea; |
861 | 933 |
} |
862 |
|
|
934 |
|
|
863 | 935 |
/** |
864 | 936 |
* Compose control area. |
865 | 937 |
* |
866 | 938 |
* @param controlArea the control area |
867 | 939 |
*/ |
868 | 940 |
private void composeControlArea(final Composite controlArea) { |
869 |
|
|
870 |
|
|
941 |
|
|
871 | 942 |
// Modified computing listeners to manage multi lines query widgets |
872 | 943 |
ComputeKeyListener computeKeyListener = new ComputeKeyListener(this) { |
944 |
|
|
873 | 945 |
@Override |
874 | 946 |
public void keyPressed(KeyEvent e) { |
947 |
|
|
875 | 948 |
if (queryWidget.getQuery() == null) return; |
876 | 949 |
if (!queryWidget.getQuery().getSearchEngine().hasMultiLineQueries()) super.keyPressed(e); |
877 | 950 |
} |
878 | 951 |
}; |
879 |
|
|
952 |
|
|
880 | 953 |
GridLayout controlLayout = new GridLayout(1, false); |
881 | 954 |
controlLayout.verticalSpacing = 0; |
882 | 955 |
controlLayout.marginWidth = 0; |
883 | 956 |
controlLayout.marginHeight = 0; |
884 | 957 |
controlArea.setLayout(controlLayout); |
885 |
|
|
958 |
|
|
886 | 959 |
// Query Area: query itself + view properties |
887 | 960 |
queryArea = new Composite(controlArea, SWT.NONE); |
888 | 961 |
queryArea.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false)); |
889 | 962 |
queryArea.setLayout(new GridLayout(4, false)); |
890 |
|
|
963 |
|
|
891 | 964 |
//////////////////////////////// |
892 |
//composeAnnotationArea(controlArea); |
|
965 |
// composeAnnotationArea(controlArea);
|
|
893 | 966 |
////////////////////////////////// |
894 |
|
|
967 |
|
|
895 | 968 |
navigationArea = new Composite(controlArea, SWT.NONE); |
896 | 969 |
navigationArea.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, true)); |
897 |
GridLayout navigationLayout = new GridLayout(7, false);
|
|
970 |
GridLayout navigationLayout = new GridLayout(7, false); |
|
898 | 971 |
navigationLayout.verticalSpacing = 0; |
899 | 972 |
navigationLayout.marginWidth = 0; |
900 | 973 |
navigationLayout.marginHeight = 0; |
901 | 974 |
navigationArea.setLayout(navigationLayout); |
902 | 975 |
/////////////////////////// |
903 | 976 |
// | Query: [ (v)] [Search] | |
904 |
|
|
977 |
|
|
905 | 978 |
// Query: |
906 | 979 |
getMainParametersComposite().getLayout().numColumns = 2; |
907 | 980 |
// make |
908 | 981 |
getMainParametersComposite().setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); |
909 |
|
|
982 |
|
|
910 | 983 |
queryLabel = new Label(getMainParametersComposite(), SWT.NONE); |
911 | 984 |
queryLabel.setText(TXMUIMessages.ampQuery); |
912 | 985 |
queryLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false)); |
913 |
|
|
986 |
|
|
914 | 987 |
// [ (v)] |
915 |
queryWidget = new AssistedChoiceQueryWidget(this.getMainParametersComposite(), SWT.DROP_DOWN|SWT.MULTI| SWT.WRAP | SWT.V_SCROLL, concordance.getCorpus());
|
|
988 |
queryWidget = new AssistedChoiceQueryWidget(this.getMainParametersComposite(), SWT.DROP_DOWN | SWT.MULTI | SWT.WRAP | SWT.V_SCROLL, concordance.getCorpus());
|
|
916 | 989 |
queryWidget.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); |
917 | 990 |
queryWidget.addKeyListener(computeKeyListener); |
918 | 991 |
queryWidget.getQueryWidget().addModifyListener(computeKeyListener); |
919 |
|
|
992 |
|
|
920 | 993 |
// FIXME: SJ: for computing when changing the query from history combo box |
921 | 994 |
// FIXME: SJ: commented because it doesn't work, the computing is launched as soon as we click on the arrow of the combo box |
922 |
//queryWidget.getQueryWidget().addSelectionListener(new ComputeSelectionListener(this)); |
|
923 |
|
|
995 |
// queryWidget.getQueryWidget().addSelectionListener(new ComputeSelectionListener(this));
|
|
996 |
|
|
924 | 997 |
// hide the parameters panel |
925 |
//getTopToolbar().setVisible(TXMEditor.COMPUTING_PARAMETERS_GROUP_ID, false); // the settings are not necessary to compute the concordance |
|
926 |
|
|
998 |
// getTopToolbar().setVisible(TXMEditor.COMPUTING_PARAMETERS_GROUP_ID, false); // the settings are not necessary to compute the concordance
|
|
999 |
|
|
927 | 1000 |
// | Properties: word/pos [Edit] | |
928 |
// propsArea = new PropertiesSelector<Property>(queryArea, SWT.NONE);
|
|
929 |
// propsArea.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
|
|
930 |
// propsArea.setLayout(new GridLayout(3, false));
|
|
931 |
// this.propsArea.setProperties(concordance.getAvailableKeywordViewProperties(), concordance.getKeywordViewProperties());
|
|
932 |
// propsArea.addValueChangeListener(new Listener() {
|
|
933 |
// @Override
|
|
934 |
// public void handleEvent(Event event) {
|
|
935 |
// concordance.setKeywordViewProperties(propsArea.getSelectedProperties());
|
|
936 |
// refreshViewProperties();
|
|
937 |
// }
|
|
938 |
// });
|
|
939 |
|
|
1001 |
// propsArea = new PropertiesSelector<Property>(queryArea, SWT.NONE);
|
|
1002 |
// propsArea.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
|
|
1003 |
// propsArea.setLayout(new GridLayout(3, false));
|
|
1004 |
// this.propsArea.setProperties(concordance.getAvailableKeywordViewProperties(), concordance.getKeywordViewProperties());
|
|
1005 |
// propsArea.addValueChangeListener(new Listener() {
|
|
1006 |
// @Override
|
|
1007 |
// public void handleEvent(Event event) {
|
|
1008 |
// concordance.setKeywordViewProperties(propsArea.getSelectedProperties());
|
|
1009 |
// refreshViewProperties();
|
|
1010 |
// }
|
|
1011 |
// });
|
|
1012 |
|
|
940 | 1013 |
// [Search] |
941 |
// Button go = new Button(queryArea, SWT.PUSH);
|
|
942 |
// go.setText(TXMUIMessages.SEARCH);
|
|
1014 |
// Button go = new Button(queryArea, SWT.PUSH);
|
|
1015 |
// go.setText(TXMUIMessages.SEARCH);
|
|
943 | 1016 |
// |
944 |
// Font f = go.getFont();
|
|
945 |
// FontData defaultFont = f.getFontData()[0];
|
|
946 |
// defaultFont.setStyle(SWT.BOLD);
|
|
947 |
// Font newf = new Font(go.getDisplay(), defaultFont);
|
|
948 |
// go.setFont(newf);
|
|
1017 |
// Font f = go.getFont();
|
|
1018 |
// FontData defaultFont = f.getFontData()[0];
|
|
1019 |
// defaultFont.setStyle(SWT.BOLD);
|
|
1020 |
// Font newf = new Font(go.getDisplay(), defaultFont);
|
|
1021 |
// go.setFont(newf);
|
|
949 | 1022 |
// |
950 |
// go.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
|
|
951 |
// go.addSelectionListener(new ComputeSelectionListener(this));
|
|
952 |
|
|
1023 |
// go.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
|
|
1024 |
// go.addSelectionListener(new ComputeSelectionListener(this));
|
|
1025 |
|
|
953 | 1026 |
// Complex sort chooser (full line) |
954 | 1027 |
complexsorter = new ComplexSortSelector(queryArea, SWT.NONE); |
955 | 1028 |
complexsorter.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, true, 4, 1)); |
956 |
|
|
1029 |
|
|
957 | 1030 |
// properties widget like in the portal version |
958 | 1031 |
GLComposite propertiesPanel = new GLComposite(queryArea, SWT.BORDER, ConcordanceUIMessages.propertiesPanel); |
959 | 1032 |
propertiesPanel.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, true, 4, 1)); |
960 | 1033 |
propertiesPanel.getLayout().numColumns = 5; |
961 | 1034 |
propertiesPanel.getLayout().makeColumnsEqualWidth = false; |
962 |
|
|
1035 |
|
|
963 | 1036 |
try { |
964 | 1037 |
Label l = new Label(propertiesPanel, SWT.NONE); |
965 | 1038 |
l.setText(ConcordanceUIMessages.editor_21); |
966 |
l.setLayoutData(new GridData(GridData.CENTER,GridData.CENTER, false, false)); |
|
1039 |
l.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, false, false));
|
|
967 | 1040 |
l = new Label(propertiesPanel, SWT.NONE); |
968 | 1041 |
l.setText(ConcordanceUIMessages.references); |
969 |
l.setLayoutData(new GridData(GridData.CENTER,GridData.CENTER, true, false)); |
|
1042 |
l.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, true, false));
|
|
970 | 1043 |
l = new Label(propertiesPanel, SWT.NONE); |
971 | 1044 |
l.setText(ConcordanceUIMessages.left); |
972 |
l.setLayoutData(new GridData(GridData.CENTER,GridData.CENTER, true, false)); |
|
1045 |
l.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, true, false));
|
|
973 | 1046 |
l = new Label(propertiesPanel, SWT.NONE); |
974 | 1047 |
l.setText(ConcordanceUIMessages.keyword); |
975 |
l.setLayoutData(new GridData(GridData.CENTER,GridData.CENTER, true, false)); |
|
1048 |
l.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, true, false));
|
|
976 | 1049 |
l = new Label(propertiesPanel, SWT.NONE); |
977 | 1050 |
l.setText(ConcordanceUIMessages.right); |
978 |
l.setLayoutData(new GridData(GridData.CENTER,GridData.CENTER, true, false)); |
|
979 |
|
|
1051 |
l.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, true, false));
|
|
1052 |
|
|
980 | 1053 |
l = new Label(propertiesPanel, SWT.NONE); |
981 | 1054 |
l.setText(ConcordanceUIMessages.view); |
982 |
l.setLayoutData(new GridData(GridData.CENTER,GridData.CENTER, false, false)); |
|
1055 |
l.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, false, false));
|
|
983 | 1056 |
refViewProperties = new PropertiesSelector<Property>(propertiesPanel, SWT.NONE); |
984 | 1057 |
refViewProperties.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, false, false)); |
985 | 1058 |
refViewProperties.setTitle(ConcordanceUIMessages.editor_21); |
986 | 1059 |
refViewProperties.setButtonText(ConcordanceUIMessages.editor_19); |
987 | 1060 |
refViewProperties.setProperties(ReferencePattern.getPossibleValues(getCorpus())); |
988 | 1061 |
refViewProperties.addSelectionListener(new ComputeSelectionListener(this) { |
1062 |
|
|
989 | 1063 |
@Override |
990 | 1064 |
public void widgetSelected(SelectionEvent e) { |
1065 |
|
|
991 | 1066 |
concordance.setRefViewPattern(new ReferencePattern(refViewProperties.getSelectedProperties())); |
992 | 1067 |
super.widgetSelected(e); |
993 | 1068 |
} |
... | ... | |
998 | 1073 |
leftViewProperties.setProperties(getCorpus().getOrderedProperties()); |
999 | 1074 |
leftViewProperties.setButtonText(ConcordanceUIMessages.editor_19); |
1000 | 1075 |
leftViewProperties.addSelectionListener(new ComputeSelectionListener(this) { |
1076 |
|
|
1001 | 1077 |
@Override |
1002 | 1078 |
public void widgetSelected(SelectionEvent e) { |
1079 |
|
|
1003 | 1080 |
concordance.setLeftViewProperties(leftViewProperties.getSelectedProperties()); |
1004 | 1081 |
super.widgetSelected(e); |
1005 | 1082 |
} |
... | ... | |
1010 | 1087 |
keywordViewProperties.setProperties(getCorpus().getOrderedProperties()); |
1011 | 1088 |
keywordViewProperties.setButtonText(ConcordanceUIMessages.editor_19); |
1012 | 1089 |
keywordViewProperties.addSelectionListener(new ComputeSelectionListener(this) { |
1090 |
|
|
1013 | 1091 |
@Override |
1014 | 1092 |
public void widgetSelected(SelectionEvent e) { |
1093 |
|
|
1015 | 1094 |
concordance.setKeywordViewProperties(keywordViewProperties.getSelectedProperties()); |
1016 | 1095 |
super.widgetSelected(e); |
1017 | 1096 |
} |
... | ... | |
1022 | 1101 |
rightViewProperties.setProperties(getCorpus().getOrderedProperties()); |
1023 | 1102 |
rightViewProperties.setButtonText(ConcordanceUIMessages.editor_19); |
1024 | 1103 |
rightViewProperties.addSelectionListener(new ComputeSelectionListener(this) { |
1104 |
|
|
1025 | 1105 |
@Override |
1026 | 1106 |
public void widgetSelected(SelectionEvent e) { |
1107 |
|
|
1027 | 1108 |
concordance.setRightViewProperties(rightViewProperties.getSelectedProperties()); |
1028 | 1109 |
super.widgetSelected(e); |
1029 | 1110 |
} |
1030 | 1111 |
}); |
1031 |
|
|
1112 |
|
|
1032 | 1113 |
l = new Label(propertiesPanel, SWT.NONE); |
1033 | 1114 |
l.setText(ConcordanceUIMessages.sort); |
1034 |
l.setLayoutData(new GridData(GridData.CENTER,GridData.CENTER, false, false)); |
|
1115 |
l.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, false, false));
|
|
1035 | 1116 |
refSortProperties = new PropertiesSelector<Property>(propertiesPanel, SWT.NONE); |
1036 | 1117 |
refSortProperties.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, false, false)); |
1037 | 1118 |
refSortProperties.setTitle(ConcordanceUIMessages.editor_21); |
1038 | 1119 |
refSortProperties.setButtonText(ConcordanceUIMessages.editor_19); |
1039 | 1120 |
refSortProperties.setProperties(ReferencePattern.getPossibleValues(getCorpus())); |
1040 | 1121 |
refSortProperties.addSelectionListener(new ComputeSelectionListener(this) { |
1122 |
|
|
1041 | 1123 |
@Override |
1042 | 1124 |
public void widgetSelected(SelectionEvent e) { |
1125 |
|
|
1043 | 1126 |
concordance.setRefAnalysePattern(new ReferencePattern(refSortProperties.getSelectedProperties())); |
1044 | 1127 |
super.widgetSelected(e); |
1045 | 1128 |
} |
... | ... | |
1050 | 1133 |
leftSortProperties.setButtonText(ConcordanceUIMessages.editor_19); |
1051 | 1134 |
leftSortProperties.setProperties(getCorpus().getOrderedProperties()); |
1052 | 1135 |
leftSortProperties.addSelectionListener(new ComputeSelectionListener(this) { |
1136 |
|
|
1053 | 1137 |
@Override |
1054 | 1138 |
public void widgetSelected(SelectionEvent e) { |
1139 |
|
|
1055 | 1140 |
concordance.setLeftAnalysisProperties(leftSortProperties.getSelectedProperties()); |
1056 | 1141 |
super.widgetSelected(e); |
1057 | 1142 |
} |
... | ... | |
1062 | 1147 |
keywordSortProperties.setButtonText(ConcordanceUIMessages.editor_19); |
1063 | 1148 |
keywordSortProperties.setProperties(getCorpus().getOrderedProperties()); |
1064 | 1149 |
keywordSortProperties.addSelectionListener(new ComputeSelectionListener(this) { |
1150 |
|
|
1065 | 1151 |
@Override |
1066 | 1152 |
public void widgetSelected(SelectionEvent e) { |
1153 |
|
|
1067 | 1154 |
concordance.setKeywordAnalysisProperties(keywordSortProperties.getSelectedProperties()); |
1068 | 1155 |
super.widgetSelected(e); |
1069 | 1156 |
} |
... | ... | |
1074 | 1161 |
rightSortProperties.setButtonText(ConcordanceUIMessages.editor_19); |
1075 | 1162 |
rightSortProperties.setProperties(getCorpus().getOrderedProperties()); |
1076 | 1163 |
rightSortProperties.addSelectionListener(new ComputeSelectionListener(this) { |
1164 |
|
|
1077 | 1165 |
@Override |
1078 | 1166 |
public void widgetSelected(SelectionEvent e) { |
1167 |
|
|
1079 | 1168 |
concordance.setRightAnalysisProperties(rightSortProperties.getSelectedProperties()); |
1080 | 1169 |
super.widgetSelected(e); |
1081 | 1170 |
} |
1082 | 1171 |
}); |
1083 |
|
|
1172 |
|
|
1084 | 1173 |
l = new Label(propertiesPanel, SWT.NONE); |
1085 | 1174 |
l.setText(ConcordanceUIMessages.size); |
1086 |
l.setLayoutData(new GridData(GridData.CENTER,GridData.CENTER, false, false)); |
|
1175 |
l.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, false, false));
|
|
1087 | 1176 |
new Label(propertiesPanel, SWT.NONE); |
1088 | 1177 |
leftSizeSpinner = new Spinner(propertiesPanel, SWT.BORDER); |
1089 | 1178 |
leftSizeSpinner.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, false, false)); |
1090 | 1179 |
leftSizeSpinner.addSelectionListener(new ComputeSelectionListener(this) { |
1180 |
|
|
1091 | 1181 |
@Override |
1092 | 1182 |
public void widgetSelected(SelectionEvent e) { |
1183 |
|
|
1093 | 1184 |
concordance.setLeftContextSize(leftSizeSpinner.getSelection()); |
1094 | 1185 |
super.widgetSelected(e); |
1095 | 1186 |
} |
1096 | 1187 |
}); |
1097 | 1188 |
leftSizeSpinner.addKeyListener(new KeyListener() { |
1189 |
|
|
1098 | 1190 |
@Override |
1099 | 1191 |
public void keyReleased(KeyEvent e) { |
1192 |
|
|
1100 | 1193 |
if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR) { |
1101 | 1194 |
concordance.setLeftContextSize(leftSizeSpinner.getSelection()); |
1102 | 1195 |
ConcordanceEditor.this.compute(true); |
1103 | 1196 |
} |
1104 | 1197 |
} |
1198 |
|
|
1105 | 1199 |
@Override |
1106 |
public void keyPressed(KeyEvent e) { }
|
|
1200 |
public void keyPressed(KeyEvent e) {} |
|
1107 | 1201 |
}); |
1108 | 1202 |
new Label(propertiesPanel, SWT.NONE); |
1109 | 1203 |
rightSizeSpinner = new Spinner(propertiesPanel, SWT.BORDER); |
1110 | 1204 |
rightSizeSpinner.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, false, false)); |
1111 | 1205 |
rightSizeSpinner.addSelectionListener(new ComputeSelectionListener(this) { |
1206 |
|
|
1112 | 1207 |
@Override |
1113 | 1208 |
public void widgetSelected(SelectionEvent e) { |
1209 |
|
|
1114 | 1210 |
concordance.setRightContextSize(rightSizeSpinner.getSelection()); |
1115 | 1211 |
super.widgetSelected(e); |
1116 | 1212 |
} |
1117 | 1213 |
}); |
1118 | 1214 |
rightSizeSpinner.addKeyListener(new KeyListener() { |
1215 |
|
|
1119 | 1216 |
@Override |
1120 | 1217 |
public void keyReleased(KeyEvent e) { |
1218 |
|
|
1121 | 1219 |
if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR) { |
1122 | 1220 |
concordance.setRightContextSize(rightSizeSpinner.getSelection()); |
1123 | 1221 |
ConcordanceEditor.this.compute(true); |
1124 | 1222 |
} |
1125 | 1223 |
} |
1224 |
|
|
1126 | 1225 |
@Override |
1127 |
public void keyPressed(KeyEvent e) { }
|
|
1226 |
public void keyPressed(KeyEvent e) {} |
|
1128 | 1227 |
}); |
1129 |
} catch (Exception e1) { |
|
1228 |
} |
|
1229 |
catch (Exception e1) { |
|
1130 | 1230 |
// TODO Auto-generated catch block |
1131 | 1231 |
e1.printStackTrace(); |
1132 | 1232 |
} |
1133 |
|
|
1233 |
|
|
1134 | 1234 |
// Delete line button |
1135 | 1235 |
deleteLineButton = new Button(navigationArea, SWT.PUSH); |
1136 | 1236 |
deleteLineButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false)); |
1137 | 1237 |
deleteLineButton.setToolTipText(ConcordanceUIMessages.deleteSelectedLines); |
1138 | 1238 |
deleteLineButton.setImage(IImageKeys.getImage(IImageKeys.ACTION_DELETE)); |
1139 | 1239 |
deleteLineButton.addSelectionListener(new SelectionListener() { |
1240 |
|
|
1140 | 1241 |
@Override |
1141 | 1242 |
public void widgetSelected(SelectionEvent e) { |
1243 |
|
|
1142 | 1244 |
DeleteLines.deleteConcordanceLines(ConcordanceEditor.this); |
1143 | 1245 |
} |
1144 |
|
|
1246 |
|
|
1145 | 1247 |
@Override |
1146 |
public void widgetDefaultSelected(SelectionEvent e) { }
|
|
1248 |
public void widgetDefaultSelected(SelectionEvent e) {} |
|
1147 | 1249 |
}); |
1148 |
|
|
1250 |
|
|
1149 | 1251 |
// Navigation Area: infoLine and buttons |
1150 | 1252 |
GLComposite navigationAreaComposite = getBottomToolbar().installGLComposite(ConcordanceUIMessages.navigation, 1, false); |
1151 | 1253 |
navigationAreaComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); |
1152 |
|
|
1254 |
|
|
1153 | 1255 |
navigationWidget = new NavigationWidget(navigationAreaComposite, SWT.NONE); |
1154 | 1256 |
navigationWidget.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, false)); |
1155 |
|
|
1257 |
|
|
1156 | 1258 |
// | [|<] [<] infos [>] [>|] | |
1157 | 1259 |
// [|<] |
1158 | 1260 |
navigationWidget.addFirstListener(new SelectionListener() { |
1261 |
|
|
1159 | 1262 |
@Override |
1160 |
public void widgetDefaultSelected(SelectionEvent arg0) { |
|
1161 |
} |
|
1162 |
|
|
1263 |
public void widgetDefaultSelected(SelectionEvent arg0) {} |
|
1264 |
|
|
1163 | 1265 |
@Override |
1164 | 1266 |
public void widgetSelected(SelectionEvent arg0) { |
1267 |
|
|
1165 | 1268 |
concordance.setTopIndex(0); |
1166 | 1269 |
try { |
1167 | 1270 |
refresh(false); |
1168 | 1271 |
viewerRight.getTable().setTopIndex(0); |
1169 |
} catch (Exception e1) { |
|
1272 |
} |
|
1273 |
catch (Exception e1) { |
|
1170 | 1274 |
// TODO Auto-generated catch block |
1171 | 1275 |
e1.printStackTrace(); |
1172 | 1276 |
} |
1173 | 1277 |
} |
1174 | 1278 |
}); |
1175 |
|
|
1279 |
|
|
1176 | 1280 |
// [<] |
1177 | 1281 |
navigationWidget.addPreviousListener(new SelectionListener() { |
1282 |
|
|
1178 | 1283 |
@Override |
1179 |
public void widgetDefaultSelected(SelectionEvent e) { |
|
1180 |
} |
|
1181 |
|
|
1284 |
public void widgetDefaultSelected(SelectionEvent e) {} |
|
1285 |
|
|
1182 | 1286 |
@Override |
1183 | 1287 |
public void widgetSelected(SelectionEvent e) { |
1288 |
|
|
1184 | 1289 |
int top = concordance.getTopIndex() - concordance.getNLinePerPage(); |
1185 | 1290 |
if (top < 0) |
1186 | 1291 |
top = 0; |
... | ... | |
1188 | 1293 |
try { |
1189 | 1294 |
refresh(false); |
1190 | 1295 |
viewerRight.getTable().setTopIndex(0); |
1191 |
} catch (Exception e1) { |
|
1296 |
} |
|
1297 |
catch (Exception e1) { |
|
1192 | 1298 |
// TODO Auto-generated catch block |
1193 | 1299 |
e1.printStackTrace(); |
1194 | 1300 |
} |
1195 | 1301 |
} |
1196 | 1302 |
}); |
1197 |
|
|
1303 |
|
|
1198 | 1304 |
// [>] |
1199 | 1305 |
navigationWidget.addNextListener(new SelectionListener() { |
1306 |
|
|
1200 | 1307 |
@Override |
1201 |
public void widgetDefaultSelected(SelectionEvent e) { |
|
1202 |
} |
|
1203 |
|
|
1308 |
public void widgetDefaultSelected(SelectionEvent e) {} |
|
1309 |
|
|
1204 | 1310 |
@Override |
1205 | 1311 |
public void widgetSelected(SelectionEvent e) { |
1312 |
|
|
1206 | 1313 |
concordance.setTopIndex(concordance.getTopIndex() + concordance.getNLinePerPage()); |
1207 | 1314 |
try { |
1208 | 1315 |
refresh(false); |
1209 | 1316 |
viewerRight.getTable().setTopIndex(0); |
1210 |
} catch (Exception e1) { |
|
1317 |
} |
|
1318 |
catch (Exception e1) { |
|
1211 | 1319 |
// TODO Auto-generated catch block |
1212 | 1320 |
e1.printStackTrace(); |
1213 | 1321 |
} |
1214 | 1322 |
} |
1215 | 1323 |
}); |
1216 |
|
|
1324 |
|
|
1217 | 1325 |
// [>|] |
1218 | 1326 |
navigationWidget.addLastListener(new SelectionListener() { |
1327 |
|
|
1219 | 1328 |
@Override |
1220 |
public void widgetDefaultSelected(SelectionEvent e) { |
|
1221 |
} |
|
1222 |
|
|
1329 |
public void widgetDefaultSelected(SelectionEvent e) {} |
|
1330 |
|
|
1223 | 1331 |
@Override |
1224 | 1332 |
public void widgetSelected(SelectionEvent e) { |
1333 |
|
|
1225 | 1334 |
int top = (concordance.getNLines() / concordance.getNLinePerPage()) * concordance.getNLinePerPage(); |
1226 | 1335 |
// FIXME: SJ: became useless? |
1227 |
//int bottom = top + concordance.getNLinePerPage() -1; |
|
1336 |
// int bottom = top + concordance.getNLinePerPage() -1;
|
|
1228 | 1337 |
concordance.setTopIndex(top); |
1229 | 1338 |
try { |
1230 | 1339 |
refresh(false); |
1231 | 1340 |
viewerRight.getTable().setTopIndex(0); |
1232 |
} catch (Exception e1) { |
|
1341 |
} |
|
1342 |
catch (Exception e1) { |
|
1233 | 1343 |
// TODO Auto-generated catch block |
1234 | 1344 |
e1.printStackTrace(); |
1235 | 1345 |
} |
1236 | 1346 |
} |
1237 | 1347 |
}); |
1238 |
|
|
1348 |
|
|
1239 | 1349 |
queryArea.layout(); |
1240 | 1350 |
} |
1241 |
|
|
1351 |
|
|
1242 | 1352 |
/** |
1243 | 1353 |
* refresh |
1354 |
* |
|
1244 | 1355 |
* @param top |
1245 | 1356 |
* @param bottom |
1246 | 1357 |
*/ |
1247 | 1358 |
public void updateEditorFromResult(boolean update) { |
1359 |
|
|
1248 | 1360 |
StatusLine.setMessage(ConcordanceUIMessages.startComputingConcordance); |
1249 |
|
|
1361 |
|
|
1250 | 1362 |
try { |
1251 | 1363 |
QueriesView.refresh(); |
1252 |
|
|
1364 |
|
|
1253 | 1365 |
this.fillDisplayArea(update); |
1254 | 1366 |
|
1255 | 1367 |
boolean b = concordance.getQueryResultParameter() == null; |
1256 | 1368 |
this.queryWidget.setEnabled(b); // disable the widget if a QueryResult was provided |
1257 | 1369 |
|
1258 | 1370 |
this.queryWidget.memorize(); |
1259 |
|
|
1371 |
|
|
1260 | 1372 |
if (update) { |
1261 | 1373 |
resetColumnWidths(); |
Formats disponibles : Unified diff