Révision 1891
tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java (revision 1891) | ||
---|---|---|
40 | 40 |
import org.eclipse.jface.action.IMenuManager; |
41 | 41 |
import org.eclipse.jface.action.MenuManager; |
42 | 42 |
import org.eclipse.jface.action.Separator; |
43 |
import org.eclipse.jface.util.Util; |
|
43 | 44 |
import org.eclipse.jface.viewers.ColumnLabelProvider; |
44 | 45 |
import org.eclipse.jface.viewers.StructuredSelection; |
45 | 46 |
import org.eclipse.jface.viewers.TableViewer; |
... | ... | |
190 | 191 |
private Point mouseposition; |
191 | 192 |
|
192 | 193 |
/** The line table viewer. */ |
193 |
protected TableViewer viewer, viewer2;
|
|
194 |
protected TableViewer viewerRight, viewerLeft;
|
|
194 | 195 |
|
195 | 196 |
/** The reference column. */ |
196 | 197 |
private TableColumn referenceColumn; |
... | ... | |
349 | 350 |
// tableLayout = new TableColumnLayout(); |
350 | 351 |
displayArea.setLayout(new FormLayout()); |
351 | 352 |
|
352 |
viewer2 = new TableViewer(displayArea, SWT.MULTI | SWT.BORDER | SWT.VIRTUAL);
|
|
353 |
viewer2.getTable().addKeyListener(new TableKeyListener(viewer2));
|
|
354 |
viewer2.setLabelProvider(new LineLabelProvider(this) {
|
|
353 |
viewerLeft = new TableViewer(displayArea, SWT.MULTI | SWT.BORDER | SWT.VIRTUAL);
|
|
354 |
viewerLeft.getTable().addKeyListener(new TableKeyListener(viewerLeft));
|
|
355 |
viewerLeft.setLabelProvider(new LineLabelProvider(this) {
|
|
355 | 356 |
@Override |
356 | 357 |
public String getColumnText(Object element, int columnIndex) { |
357 | 358 |
Line line = (Line) element; |
358 | 359 |
return line.getViewRef().toString(); |
359 | 360 |
} |
360 | 361 |
}); |
361 |
viewer2.setContentProvider(new ConcordancesProvider());
|
|
362 |
viewer2.getTable().setLinesVisible(true);
|
|
363 |
viewer2.getTable().setHeaderVisible(true);
|
|
362 |
viewerLeft.setContentProvider(new ConcordancesProvider());
|
|
363 |
viewerLeft.getTable().setLinesVisible(true);
|
|
364 |
viewerLeft.getTable().setHeaderVisible(true);
|
|
364 | 365 |
|
365 | 366 |
// firstColumn = new TableColumn(viewer2.getTable(), SWT.LEFT); |
366 | 367 |
// firstColumn.setWidth(10); |
367 | 368 |
|
368 |
referenceColumn = new TableColumn(viewer2.getTable(), SWT.LEFT|SWT.H_SCROLL);
|
|
369 |
referenceColumn = new TableColumn(viewerLeft.getTable(), SWT.LEFT|SWT.H_SCROLL);
|
|
369 | 370 |
refreshReferenceColumnTitle(); |
370 | 371 |
referenceColumn.setToolTipText(ConcordanceUIMessages.reference); |
371 | 372 |
referenceColumn.addSelectionListener(new SelectionListener() { |
... | ... | |
373 | 374 |
public void widgetSelected(SelectionEvent e) { |
374 | 375 |
StatusLine.setMessage(ConcordanceUIMessages.sortingReferenceColumn); |
375 | 376 |
LineComparator comparator = new PropertiesReferenceComparator(); |
376 |
if (viewer2.getTable().getSortColumn() != referenceColumn) {
|
|
377 |
viewer2.getTable().setSortColumn(null);
|
|
378 |
viewer2.getTable().setSortColumn(referenceColumn);
|
|
379 |
viewer2.getTable().setSortDirection(SWT.UP);
|
|
380 |
} else if (viewer2.getTable().getSortDirection() == SWT.UP) {
|
|
381 |
viewer2.getTable().setSortDirection(SWT.DOWN);
|
|
377 |
if (viewerLeft.getTable().getSortColumn() != referenceColumn) {
|
|
378 |
viewerLeft.getTable().setSortColumn(null);
|
|
379 |
viewerLeft.getTable().setSortColumn(referenceColumn);
|
|
380 |
viewerLeft.getTable().setSortDirection(SWT.UP);
|
|
381 |
} else if (viewerLeft.getTable().getSortDirection() == SWT.UP) {
|
|
382 |
viewerLeft.getTable().setSortDirection(SWT.DOWN);
|
|
382 | 383 |
comparator = new ReverseComparator(comparator); |
383 | 384 |
} else { |
384 |
viewer2.getTable().setSortDirection(SWT.UP);
|
|
385 |
viewerLeft.getTable().setSortDirection(SWT.UP);
|
|
385 | 386 |
} |
386 | 387 |
comparator.initialize(concordance.getCorpus()); |
387 | 388 |
currentComparator = comparator; |
... | ... | |
403 | 404 |
sash.getParent().layout(); |
404 | 405 |
} |
405 | 406 |
}); |
406 |
viewer = new TableViewer(displayArea, SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER |
|
407 |
viewerRight = new TableViewer(displayArea, SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER
|
|
407 | 408 |
// | SWT.VIRTUAL |
408 | 409 |
); |
409 |
viewer.getTable().addKeyListener(new TableKeyListener(viewer));
|
|
410 |
viewerRight.getTable().addKeyListener(new TableKeyListener(viewerRight));
|
|
410 | 411 |
//viewer.setLabelProvider(new LineLabelProvider(this)); |
411 |
viewer.setContentProvider(new ConcordancesProvider()); |
|
412 |
viewer.getTable().setLinesVisible(true); |
|
413 |
viewer.getTable().setHeaderVisible(true); |
|
412 |
viewerRight.setContentProvider(new ConcordancesProvider());
|
|
413 |
viewerRight.getTable().setLinesVisible(true);
|
|
414 |
viewerRight.getTable().setHeaderVisible(true);
|
|
414 | 415 |
|
415 | 416 |
String f = concordance.getCorpus().getFont(); |
416 | 417 |
if (f != null && f.length() > 0) { |
417 |
Font old = viewer.getTable().getFont(); |
|
418 |
Font old = viewerRight.getTable().getFont();
|
|
418 | 419 |
FontData fD = old.getFontData()[0]; |
419 | 420 |
Font font = new Font(Display.getCurrent(), f, fD.getHeight(), fD.getStyle()); |
420 |
viewer.getTable().setFont(font); |
|
421 |
viewer2.getTable().setFont(font);
|
|
421 |
viewerRight.getTable().setFont(font);
|
|
422 |
viewerLeft.getTable().setFont(font);
|
|
422 | 423 |
} |
423 | 424 |
|
424 | 425 |
tableResizeListener = new Listener() { |
425 | 426 |
@Override |
426 | 427 |
public void handleEvent(Event event) { |
427 |
ScrollBar bar = viewer.getTable().getHorizontalBar(); |
|
428 |
ScrollBar bar = viewerRight.getTable().getHorizontalBar();
|
|
428 | 429 |
float l=leftContextColumn.getWidth(); |
429 | 430 |
float k=keywordColumn.getWidth(); |
430 | 431 |
float r=rightContextColumn.getWidth(); |
431 |
float t=viewer.getTable().getClientArea().width;//the width of the visible part of the table; l+k+r>=t |
|
432 |
float t=viewerRight.getTable().getClientArea().width;//the width of the visible part of the table; l+k+r>=t
|
|
432 | 433 |
float x=l+k/2-t/2; //the abcisse the visible rectangle must have for the keyword column to be centered |
433 | 434 |
float M=bar.getMaximum(); |
434 | 435 |
float T=bar.getThumb(); |
... | ... | |
437 | 438 |
}; |
438 | 439 |
|
439 | 440 |
// try to center on keyword column |
440 |
viewer.getTable().addListener(SWT.Resize, tableResizeListener); |
|
441 |
viewerRight.getTable().addListener(SWT.Resize, tableResizeListener);
|
|
441 | 442 |
|
442 | 443 |
//TODO: to enable line deletion, Concordance code must updated -> replace with key binding |
443 | 444 |
KeyListener kldelete = new KeyListener() { |
... | ... | |
449 | 450 |
DeleteLines.deleteConcordanceLines(ConcordanceEditor.this); |
450 | 451 |
} |
451 | 452 |
}; |
452 |
viewer.getTable().addKeyListener(kldelete); |
|
453 |
viewer2.getTable().addKeyListener(kldelete);
|
|
453 |
viewerRight.getTable().addKeyListener(kldelete);
|
|
454 |
viewerLeft.getTable().addKeyListener(kldelete);
|
|
454 | 455 |
|
455 |
firstColumn = new TableColumn(viewer.getTable(), SWT.LEFT); |
|
456 |
firstColumn = new TableColumn(viewerRight.getTable(), SWT.LEFT);
|
|
456 | 457 |
firstColumn.setWidth(0); |
457 | 458 |
firstColumn.setResizable(false); |
458 | 459 |
|
459 |
TableViewerColumn leftColumnViewer = new TableViewerColumn(viewer, SWT.RIGHT); |
|
460 |
TableViewerColumn leftColumnViewer = new TableViewerColumn(viewerRight, SWT.RIGHT);
|
|
460 | 461 |
leftContextColumn = leftColumnViewer.getColumn(); |
461 | 462 |
leftContextColumn.setText(ConcordanceUIMessages.leftContext); |
462 | 463 |
leftContextColumn.setToolTipText(ConcordanceUIMessages.leftContext); |
... | ... | |
473 | 474 |
public void widgetSelected(SelectionEvent e) { |
474 | 475 |
StatusLine.setMessage(ConcordanceUIMessages.sortingLeftContextColumn); |
475 | 476 |
LineComparator comparator = new LexicographicLeftContextComparator(); |
476 |
if (viewer.getTable().getSortColumn() != leftContextColumn) { |
|
477 |
viewer.getTable().setSortColumn(leftContextColumn); |
|
478 |
viewer.getTable().setSortDirection(SWT.UP); |
|
479 |
} else if (viewer.getTable().getSortDirection() == SWT.UP) { |
|
480 |
viewer.getTable().setSortDirection(SWT.DOWN); |
|
477 |
if (viewerRight.getTable().getSortColumn() != leftContextColumn) {
|
|
478 |
viewerRight.getTable().setSortColumn(leftContextColumn);
|
|
479 |
viewerRight.getTable().setSortDirection(SWT.UP);
|
|
480 |
} else if (viewerRight.getTable().getSortDirection() == SWT.UP) {
|
|
481 |
viewerRight.getTable().setSortDirection(SWT.DOWN);
|
|
481 | 482 |
comparator = new ReverseComparator(comparator); |
482 | 483 |
} else |
483 |
viewer.getTable().setSortDirection(SWT.UP); |
|
484 |
viewerRight.getTable().setSortDirection(SWT.UP);
|
|
484 | 485 |
comparator.initialize(concordance.getCorpus()); |
485 | 486 |
currentComparator = comparator; |
486 | 487 |
complexsorter.setKey(2);//set ref key |
... | ... | |
493 | 494 |
} |
494 | 495 |
}); |
495 | 496 |
|
496 |
TableViewerColumn keywordColumnViewer = new TableViewerColumn(viewer, SWT.CENTER); |
|
497 |
TableViewerColumn keywordColumnViewer = new TableViewerColumn(viewerRight, SWT.CENTER);
|
|
497 | 498 |
keywordColumn = keywordColumnViewer.getColumn(); |
498 | 499 |
keywordColumn.setText(ConcordanceUIMessages.keyword); |
499 | 500 |
keywordColumn.setToolTipText(ConcordanceUIMessages.keyword); |
... | ... | |
510 | 511 |
public void widgetSelected(SelectionEvent e) { |
511 | 512 |
StatusLine.setMessage(ConcordanceUIMessages.sortingKeywordColumn); |
512 | 513 |
LineComparator comparator = new LexicographicKeywordComparator(); |
513 |
if (viewer.getTable().getSortColumn() != keywordColumn) { |
|
514 |
viewer.getTable().setSortColumn(keywordColumn); |
|
515 |
viewer.getTable().setSortDirection(SWT.UP); |
|
514 |
if (viewerRight.getTable().getSortColumn() != keywordColumn) {
|
|
515 |
viewerRight.getTable().setSortColumn(keywordColumn);
|
|
516 |
viewerRight.getTable().setSortDirection(SWT.UP);
|
|
516 | 517 |
} |
517 |
else if (viewer.getTable().getSortDirection() == SWT.UP) { |
|
518 |
viewer.getTable().setSortDirection(SWT.DOWN); |
|
518 |
else if (viewerRight.getTable().getSortDirection() == SWT.UP) {
|
|
519 |
viewerRight.getTable().setSortDirection(SWT.DOWN);
|
|
519 | 520 |
comparator = new ReverseComparator(comparator); |
520 | 521 |
} |
521 | 522 |
else { |
522 |
viewer.getTable().setSortDirection(SWT.UP); |
|
523 |
viewerRight.getTable().setSortDirection(SWT.UP);
|
|
523 | 524 |
} |
524 | 525 |
comparator.initialize(concordance.getCorpus()); |
525 | 526 |
currentComparator = comparator; |
... | ... | |
534 | 535 |
}); |
535 | 536 |
|
536 | 537 |
|
537 |
TableViewerColumn rightContextColumnViewer = new TableViewerColumn(viewer, SWT.LEFT); |
|
538 |
TableViewerColumn rightContextColumnViewer = new TableViewerColumn(viewerRight, SWT.LEFT);
|
|
538 | 539 |
rightContextColumn = rightContextColumnViewer.getColumn(); |
539 | 540 |
rightContextColumn.setText(ConcordanceUIMessages.rightContext); |
540 | 541 |
rightContextColumn.setToolTipText(ConcordanceUIMessages.rightContext); |
... | ... | |
552 | 553 |
StatusLine.setMessage(ConcordanceUIMessages.sortingRightContextColumn); |
553 | 554 |
LineComparator comparator = new LexicographicRightContextComparator(); |
554 | 555 |
|
555 |
if (viewer.getTable().getSortColumn() != rightContextColumn) { |
|
556 |
viewer.getTable().setSortColumn(rightContextColumn); |
|
556 |
if (viewerRight.getTable().getSortColumn() != rightContextColumn) {
|
|
557 |
viewerRight.getTable().setSortColumn(rightContextColumn);
|
|
557 | 558 |
} |
558 |
else if (viewer.getTable().getSortDirection() == SWT.UP) { |
|
559 |
viewer.getTable().setSortDirection(SWT.DOWN); |
|
559 |
else if (viewerRight.getTable().getSortDirection() == SWT.UP) {
|
|
560 |
viewerRight.getTable().setSortDirection(SWT.DOWN);
|
|
560 | 561 |
comparator = new ReverseComparator(comparator); |
561 | 562 |
} |
562 | 563 |
else { |
563 |
viewer.getTable().setSortDirection(SWT.UP); |
|
564 |
viewerRight.getTable().setSortDirection(SWT.UP);
|
|
564 | 565 |
} |
565 | 566 |
comparator.initialize(concordance.getCorpus()); |
566 | 567 |
currentComparator = comparator; |
... | ... | |
621 | 622 |
@Override |
622 | 623 |
public void mouseUp(MouseEvent e) { } |
623 | 624 |
}; |
624 |
viewer.getTable().addMouseListener(ms); |
|
625 |
viewer2.getTable().addMouseListener(ms);
|
|
625 |
viewerRight.getTable().addMouseListener(ms);
|
|
626 |
viewerLeft.getTable().addMouseListener(ms);
|
|
626 | 627 |
|
627 | 628 |
// On Windows, the selection is gray if the table does not have focus. |
628 | 629 |
// To make both tables appear in focus, draw the selection background |
... | ... | |
651 | 652 |
keywordColumn.addControlListener(new ConcordanceColumnSizeControlListener(keywordColumn)); |
652 | 653 |
rightContextColumn.addControlListener(new ConcordanceColumnSizeControlListener(rightContextColumn)); |
653 | 654 |
|
654 |
viewer.getTable().addListener(SWT.EraseItem, eraseListener); |
|
655 |
viewerRight.getTable().addListener(SWT.EraseItem, eraseListener);
|
|
655 | 656 |
|
656 |
leftTable = viewer2.getTable();
|
|
657 |
rightTable = viewer.getTable(); |
|
658 |
viewer2.getTable().addSelectionListener(new SelectionListener() {
|
|
657 |
leftTable = viewerLeft.getTable();
|
|
658 |
rightTable = viewerRight.getTable();
|
|
659 |
viewerLeft.getTable().addSelectionListener(new SelectionListener() {
|
|
659 | 660 |
@Override |
660 | 661 |
public void widgetSelected(SelectionEvent e) { |
661 | 662 |
rightTable.deselectAll(); |
... | ... | |
664 | 665 |
@Override |
665 | 666 |
public void widgetDefaultSelected(SelectionEvent e) { } |
666 | 667 |
}); |
667 |
vBarLeft = viewer2.getTable().getVerticalBar();
|
|
668 |
vBarLeft = viewerLeft.getTable().getVerticalBar();
|
|
668 | 669 |
vBarLeft.addListener(SWT.Selection, new Listener() { |
669 | 670 |
@Override |
670 | 671 |
public void handleEvent(Event event) { |
671 |
vBarRight.setSelection(vBarLeft.getSelection()); |
|
672 |
if (Util.isWindows()) { |
|
673 |
viewerRight.getTable().setTopIndex(viewerLeft.getTable().getTopIndex()); |
|
674 |
} else { |
|
675 |
vBarRight.setSelection(vBarLeft.getSelection()); |
|
676 |
} |
|
672 | 677 |
} |
673 | 678 |
}); |
674 |
viewer.getTable().addSelectionListener(new SelectionListener() { |
|
679 |
viewerRight.getTable().addSelectionListener(new SelectionListener() {
|
|
675 | 680 |
@Override |
676 | 681 |
public void widgetSelected(SelectionEvent e) { |
677 | 682 |
leftTable.deselectAll(); |
... | ... | |
680 | 685 |
@Override |
681 | 686 |
public void widgetDefaultSelected(SelectionEvent e) { } |
682 | 687 |
}); |
683 |
vBarRight = viewer.getTable().getVerticalBar(); |
|
688 |
vBarRight = viewerRight.getTable().getVerticalBar();
|
|
684 | 689 |
vBarRight.addListener(SWT.Selection, new Listener() { |
685 | 690 |
@Override |
686 | 691 |
public void handleEvent(Event event) { |
687 |
vBarLeft.setSelection(vBarRight.getSelection()); |
|
692 |
if (Util.isWindows()) { |
|
693 |
viewerLeft.getTable().setTopIndex(viewerRight.getTable().getTopIndex()); |
|
694 |
} else { |
|
695 |
vBarLeft.setSelection(vBarRight.getSelection()); |
|
696 |
} |
|
688 | 697 |
} |
689 | 698 |
}); |
690 | 699 |
|
... | ... | |
694 | 703 |
data.bottom = new FormAttachment(100); |
695 | 704 |
data.left = new FormAttachment(0); |
696 | 705 |
data.right = new FormAttachment(sash,0); |
697 |
viewer2.getTable().setLayoutData(data);
|
|
706 |
viewerLeft.getTable().setLayoutData(data);
|
|
698 | 707 |
|
699 | 708 |
FormData data2 = new FormData(); |
700 | 709 |
data2.top = new FormAttachment(0, 0); |
... | ... | |
707 | 716 |
data3.bottom = new FormAttachment(100); |
708 | 717 |
data3.left = new FormAttachment(sash,0); |
709 | 718 |
data3.right = new FormAttachment(100); |
710 |
viewer.getTable().setLayoutData(data3); |
|
719 |
viewerRight.getTable().setLayoutData(data3);
|
|
711 | 720 |
|
712 | 721 |
createContextMenu(); |
713 | 722 |
} |
... | ... | |
781 | 790 |
* @param to the to |
782 | 791 |
*/ |
783 | 792 |
public void fillDisplayArea() { |
784 |
if (viewer == null) { |
|
793 |
if (viewerRight == null) {
|
|
785 | 794 |
return; |
786 | 795 |
} |
787 | 796 |
|
... | ... | |
791 | 800 |
int to = from + concordance.getNLinePerPage(); |
792 | 801 |
to = Math.min(to, concordance.getNLines()) - 1; |
793 | 802 |
|
794 |
viewer.getControl().setRedraw(false); |
|
795 |
viewer2.getControl().setRedraw(false);
|
|
803 |
viewerRight.getControl().setRedraw(false);
|
|
804 |
viewerLeft.getControl().setRedraw(false);
|
|
796 | 805 |
|
797 | 806 |
List<Line> lines = null; |
798 | 807 |
if (concordance.getNLines() > 0) { |
... | ... | |
807 | 816 |
lines = new ArrayList<Line>(); |
808 | 817 |
} |
809 | 818 |
|
810 |
viewer.setInput(lines); |
|
811 |
viewer2.setInput(lines);
|
|
819 |
viewerRight.setInput(lines);
|
|
820 |
viewerLeft.setInput(lines);
|
|
812 | 821 |
|
813 | 822 |
navigationWidget.setInfoLineText("" + (from+1), //$NON-NLS-1$ |
814 | 823 |
" - " + (to+1) + " / " + concordance.getNLines()); //$NON-NLS-1$ //$NON-NLS-2$ |
... | ... | |
821 | 830 |
navigationWidget.getParent().layout(); |
822 | 831 |
|
823 | 832 |
refreshReferenceColumnTitle(); |
824 |
viewer.getControl().setRedraw(true); |
|
825 |
viewer2.getControl().setRedraw(true);
|
|
833 |
viewerRight.getControl().setRedraw(true);
|
|
834 |
viewerLeft.getControl().setRedraw(true);
|
|
826 | 835 |
} |
827 | 836 |
|
828 | 837 |
/** |
... | ... | |
1147 | 1156 |
concordance.setTopIndex(0); |
1148 | 1157 |
try { |
1149 | 1158 |
refresh(true); |
1150 |
viewer.getTable().setTopIndex(0); |
|
1159 |
viewerRight.getTable().setTopIndex(0);
|
|
1151 | 1160 |
} catch (Exception e1) { |
1152 | 1161 |
// TODO Auto-generated catch block |
1153 | 1162 |
e1.printStackTrace(); |
... | ... | |
1169 | 1178 |
concordance.setTopIndex(top); |
1170 | 1179 |
try { |
1171 | 1180 |
refresh(true); |
1172 |
viewer.getTable().setTopIndex(0); |
|
1181 |
viewerRight.getTable().setTopIndex(0);
|
|
1173 | 1182 |
} catch (Exception e1) { |
1174 | 1183 |
// TODO Auto-generated catch block |
1175 | 1184 |
e1.printStackTrace(); |
... | ... | |
1188 | 1197 |
concordance.setTopIndex(concordance.getTopIndex() + concordance.getNLinePerPage()); |
1189 | 1198 |
try { |
1190 | 1199 |
refresh(true); |
1191 |
viewer.getTable().setTopIndex(0); |
|
1200 |
viewerRight.getTable().setTopIndex(0);
|
|
1192 | 1201 |
} catch (Exception e1) { |
1193 | 1202 |
// TODO Auto-generated catch block |
1194 | 1203 |
e1.printStackTrace(); |
... | ... | |
1210 | 1219 |
concordance.setTopIndex(top); |
1211 | 1220 |
try { |
1212 | 1221 |
refresh(true); |
1213 |
viewer.getTable().setTopIndex(0); |
|
1222 |
viewerRight.getTable().setTopIndex(0);
|
|
1214 | 1223 |
} catch (Exception e1) { |
1215 | 1224 |
// TODO Auto-generated catch block |
1216 | 1225 |
e1.printStackTrace(); |
... | ... | |
1379 | 1388 |
createActions(); |
1380 | 1389 |
|
1381 | 1390 |
// store the mouse position |
1382 |
viewer.getTable().addMouseListener(new MouseAdapter() { |
|
1391 |
viewerRight.getTable().addMouseListener(new MouseAdapter() {
|
|
1383 | 1392 |
@Override |
1384 | 1393 |
public void mouseDown(MouseEvent arg0) { |
1385 | 1394 |
|
... | ... | |
1394 | 1403 |
}); |
1395 | 1404 |
|
1396 | 1405 |
MenuManager menuManager = new MenuManager(); //$NON-NLS-1$ |
1397 |
Menu menu = menuManager.createContextMenu(viewer.getTable()); |
|
1406 |
Menu menu = menuManager.createContextMenu(viewerRight.getTable());
|
|
1398 | 1407 |
menuManager.setRemoveAllWhenShown(true); |
1399 | 1408 |
menuManager.addMenuListener(new IMenuListener() { |
1400 | 1409 |
@Override |
... | ... | |
1409 | 1418 |
manager.add(new Separator()); |
1410 | 1419 |
} |
1411 | 1420 |
}); |
1412 |
viewer.getTable().setMenu(menu); |
|
1421 |
viewerRight.getTable().setMenu(menu);
|
|
1413 | 1422 |
|
1414 | 1423 |
MenuManager menuManagerLeft = new MenuManager(); //$NON-NLS-1$ |
1415 |
Menu menuLeft = menuManagerLeft.createContextMenu(viewer2.getTable());
|
|
1424 |
Menu menuLeft = menuManagerLeft.createContextMenu(viewerLeft.getTable());
|
|
1416 | 1425 |
menuManagerLeft.setRemoveAllWhenShown(true); |
1417 | 1426 |
menuManagerLeft.addMenuListener(new IMenuListener() { |
1418 | 1427 |
@Override |
... | ... | |
1423 | 1432 |
manager.add(defineSortReferencePatternAction); |
1424 | 1433 |
} |
1425 | 1434 |
}); |
1426 |
viewer2.getTable().setMenu(menuLeft);
|
|
1435 |
viewerLeft.getTable().setMenu(menuLeft);
|
|
1427 | 1436 |
|
1428 | 1437 |
//viewer.getTable().setMenu(menuManager.createContextMenu(viewer.getTable())); |
1429 | 1438 |
//register the right menu to the editor site |
1430 |
getSite().registerContextMenu(menuManager, viewer); |
|
1431 |
getSite().setSelectionProvider(viewer); |
|
1439 |
getSite().registerContextMenu(menuManager, viewerRight);
|
|
1440 |
getSite().setSelectionProvider(viewerRight);
|
|
1432 | 1441 |
} |
1433 | 1442 |
|
1434 | 1443 |
/** |
... | ... | |
1472 | 1481 |
*/ |
1473 | 1482 |
private void createActions() { |
1474 | 1483 |
setSortPropertyAction = new SortPropertySelection(getSite() |
1475 |
.getWorkbenchWindow(), this, this.viewer); |
|
1484 |
.getWorkbenchWindow(), this, this.viewerRight);
|
|
1476 | 1485 |
setContextSizeAction = new SetContextSize(getSite() |
1477 | 1486 |
.getWorkbenchWindow(), this); |
1478 | 1487 |
//resetColumnWidths = new ResetColumnWidths(getSite().getWorkbenchWindow(), this); |
... | ... | |
1483 | 1492 |
defineSortReferencePatternAction = new DefineSortReferencePattern(getSite() |
1484 | 1493 |
.getWorkbenchWindow(), this); |
1485 | 1494 |
setViewPropertyAction = new ViewPropertySelection(getSite() |
1486 |
.getWorkbenchWindow(), this, this.viewer); |
|
1495 |
.getWorkbenchWindow(), this, this.viewerRight);
|
|
1487 | 1496 |
} |
1488 | 1497 |
|
1489 | 1498 |
/** |
... | ... | |
1782 | 1791 |
* @return the line table viewer |
1783 | 1792 |
*/ |
1784 | 1793 |
public TableViewer getLineTableViewer() { |
1785 |
return viewer; |
|
1794 |
return viewerRight;
|
|
1786 | 1795 |
} |
1787 | 1796 |
|
1788 | 1797 |
/** |
... | ... | |
1793 | 1802 |
public void resetSortedColumn(int col) { |
1794 | 1803 |
switch(col) { |
1795 | 1804 |
case 1://keyword |
1796 |
viewer.getTable().setSortColumn(this.keywordColumn); |
|
1797 |
viewer.getTable().setSortDirection(SWT.DOWN); |
|
1805 |
viewerRight.getTable().setSortColumn(this.keywordColumn);
|
|
1806 |
viewerRight.getTable().setSortDirection(SWT.DOWN);
|
|
1798 | 1807 |
break; |
1799 | 1808 |
case 2://left |
1800 |
viewer.getTable().setSortColumn(this.leftContextColumn); |
|
1801 |
viewer.getTable().setSortDirection(SWT.DOWN); |
|
1809 |
viewerRight.getTable().setSortColumn(this.leftContextColumn);
|
|
1810 |
viewerRight.getTable().setSortDirection(SWT.DOWN);
|
|
1802 | 1811 |
break; |
1803 | 1812 |
case 3://right |
1804 |
viewer.getTable().setSortColumn(this.rightContextColumn); |
|
1805 |
viewer.getTable().setSortDirection(SWT.DOWN); |
|
1813 |
viewerRight.getTable().setSortColumn(this.rightContextColumn);
|
|
1814 |
viewerRight.getTable().setSortDirection(SWT.DOWN);
|
|
1806 | 1815 |
break; |
1807 | 1816 |
case 4://references |
1808 |
viewer.getTable().setSortColumn(this.referenceColumn); |
|
1809 |
viewer.getTable().setSortDirection(SWT.DOWN); |
|
1817 |
viewerRight.getTable().setSortColumn(this.referenceColumn);
|
|
1818 |
viewerRight.getTable().setSortDirection(SWT.DOWN);
|
|
1810 | 1819 |
break; |
1811 | 1820 |
default: |
1812 |
viewer.getTable().setSortColumn(null); |
|
1813 |
viewer.getTable().setSortDirection(SWT.NONE); |
|
1821 |
viewerRight.getTable().setSortColumn(null);
|
|
1822 |
viewerRight.getTable().setSortDirection(SWT.NONE);
|
|
1814 | 1823 |
} |
1815 | 1824 |
|
1816 | 1825 |
} |
... | ... | |
1936 | 1945 |
*/ |
1937 | 1946 |
public boolean backToText() { |
1938 | 1947 |
|
1939 |
StructuredSelection select = (StructuredSelection) viewer.getSelection(); |
|
1948 |
StructuredSelection select = (StructuredSelection) viewerRight.getSelection();
|
|
1940 | 1949 |
if (select == null) return false; |
1941 | 1950 |
|
1942 | 1951 |
Line line = (Line) select.getFirstElement(); |
... | ... | |
1971 | 1980 |
public void resetLeftTableColumnWidths() { |
1972 | 1981 |
|
1973 | 1982 |
int refMax = referenceColumn.getText().length(); |
1974 |
for (TableItem item : viewer2.getTable().getItems()) {
|
|
1983 |
for (TableItem item : viewerLeft.getTable().getItems()) {
|
|
1975 | 1984 |
if (refMax < item.getText(0).length()) refMax = item.getText(0).length(); |
1976 | 1985 |
} |
1977 | 1986 |
|
... | ... | |
1991 | 2000 |
|
1992 | 2001 |
float W = 1f+(float)(queryLabel.getSize().x / (float)queryLabel.getText().length()); |
1993 | 2002 |
|
1994 |
TableColumn[] columns = viewer.getTable().getColumns(); |
|
2003 |
TableColumn[] columns = viewerRight.getTable().getColumns();
|
|
1995 | 2004 |
for (int i = 0 ; i < columns.length ; i++) { |
1996 | 2005 |
TableColumn column = columns[i]; |
1997 | 2006 |
if (column.getWidth() == 0) continue; // skip closed columns |
... | ... | |
2000 | 2009 |
if (max == 0) continue; // skip no-title columns |
2001 | 2010 |
|
2002 | 2011 |
int n = 0; |
2003 |
for (TableItem item : viewer.getTable().getItems()) { |
|
2012 |
for (TableItem item : viewerRight.getTable().getItems()) {
|
|
2004 | 2013 |
if (max < item.getText(i).length()) max = item.getText(i).length(); |
2005 | 2014 |
if (n++ > 100) break; // stop testing after 100 lines |
2006 | 2015 |
} |
... | ... | |
2008 | 2017 |
column.setWidth(15+(int) (max*W)); |
2009 | 2018 |
} |
2010 | 2019 |
|
2011 |
viewer.getTable().layout(true, true); |
|
2020 |
viewerRight.getTable().layout(true, true);
|
|
2012 | 2021 |
tableResizeListener.handleEvent(null); // center on keyword column |
2013 | 2022 |
} |
2014 | 2023 |
|
Formats disponibles : Unified diff