Révision 1027
| tmp/org.txm.rcp/src/main/java/org/txm/rcp/views/corpora/CorporaView.java (revision 1027) | ||
|---|---|---|
| 31 | 31 |
import java.util.HashMap; |
| 32 | 32 |
import java.util.List; |
| 33 | 33 |
|
| 34 |
import javax.swing.tree.TreePath; |
|
| 35 |
|
|
| 36 | 34 |
import org.eclipse.core.commands.Command; |
| 37 | 35 |
import org.eclipse.core.commands.common.NotDefinedException; |
| 38 | 36 |
import org.eclipse.core.runtime.IProgressMonitor; |
| 39 | 37 |
import org.eclipse.core.runtime.IStatus; |
| 40 | 38 |
import org.eclipse.core.runtime.Status; |
| 41 | 39 |
import org.eclipse.jface.action.MenuManager; |
| 42 |
import org.eclipse.jface.viewers.CellEditor; |
|
| 43 |
import org.eclipse.jface.viewers.ColumnViewerEditor; |
|
| 44 |
import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent; |
|
| 45 |
import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy; |
|
| 46 | 40 |
import org.eclipse.jface.viewers.DecoratingLabelProvider; |
| 47 | 41 |
import org.eclipse.jface.viewers.DoubleClickEvent; |
| 48 |
import org.eclipse.jface.viewers.ICellModifier; |
|
| 49 | 42 |
import org.eclipse.jface.viewers.IDoubleClickListener; |
| 50 | 43 |
import org.eclipse.jface.viewers.ISelection; |
| 51 | 44 |
import org.eclipse.jface.viewers.IStructuredSelection; |
| 52 | 45 |
import org.eclipse.jface.viewers.StructuredSelection; |
| 53 |
import org.eclipse.jface.viewers.TextCellEditor; |
|
| 54 | 46 |
import org.eclipse.jface.viewers.TreeSelection; |
| 55 | 47 |
import org.eclipse.jface.viewers.TreeViewer; |
| 56 |
import org.eclipse.jface.viewers.TreeViewerEditor; |
|
| 57 | 48 |
import org.eclipse.jface.viewers.Viewer; |
| 58 |
import org.eclipse.jface.viewers.ViewerComparator; |
|
| 59 | 49 |
import org.eclipse.jface.viewers.ViewerSorter; |
| 60 | 50 |
import org.eclipse.swt.SWT; |
| 61 | 51 |
import org.eclipse.swt.events.KeyAdapter; |
| 62 | 52 |
import org.eclipse.swt.events.KeyEvent; |
| 63 | 53 |
import org.eclipse.swt.events.SelectionEvent; |
| 64 | 54 |
import org.eclipse.swt.events.SelectionListener; |
| 65 |
import org.eclipse.swt.graphics.Path; |
|
| 55 |
import org.eclipse.swt.graphics.Image; |
|
| 56 |
import org.eclipse.swt.graphics.ImageData; |
|
| 66 | 57 |
import org.eclipse.swt.widgets.Composite; |
| 67 | 58 |
import org.eclipse.swt.widgets.Display; |
| 59 |
import org.eclipse.swt.widgets.Event; |
|
| 60 |
import org.eclipse.swt.widgets.Listener; |
|
| 68 | 61 |
import org.eclipse.swt.widgets.Menu; |
| 69 | 62 |
import org.eclipse.swt.widgets.TreeItem; |
| 70 | 63 |
import org.eclipse.ui.IWorkbenchPage; |
| ... | ... | |
| 73 | 66 |
import org.eclipse.ui.PlatformUI; |
| 74 | 67 |
import org.eclipse.ui.commands.ICommandService; |
| 75 | 68 |
import org.eclipse.ui.contexts.IContextService; |
| 76 |
import org.eclipse.ui.handlers.IHandlerService; |
|
| 77 | 69 |
import org.eclipse.ui.model.WorkbenchLabelProvider; |
| 78 | 70 |
import org.eclipse.ui.part.ViewPart; |
| 71 |
import org.eclipse.ui.plugin.AbstractUIPlugin; |
|
| 79 | 72 |
import org.txm.Toolbox; |
| 80 | 73 |
import org.txm.core.results.TXMResult; |
| 81 | 74 |
import org.txm.objects.Project; |
| ... | ... | |
| 87 | 80 |
import org.txm.rcp.messages.TXMUIMessages; |
| 88 | 81 |
import org.txm.rcp.utils.JobHandler; |
| 89 | 82 |
import org.txm.searchengine.cqp.corpus.Corpus; |
| 90 |
import org.txm.searchengine.cqp.corpus.MainCorpus; |
|
| 91 | 83 |
import org.txm.searchengine.cqp.corpus.Partition; |
| 92 | 84 |
import org.txm.searchengine.cqp.corpus.Subcorpus; |
| 93 | 85 |
import org.txm.utils.logger.Log; |
| ... | ... | |
| 330 | 322 |
}); |
| 331 | 323 |
|
| 332 | 324 |
|
| 333 |
// FIXME: double click listener installation from commands
|
|
| 325 |
// double click listener installation from commands |
|
| 334 | 326 |
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); |
| 335 | 327 |
ICommandService cmdService = (ICommandService)window.getService(ICommandService.class); |
| 336 | 328 |
Command[] cmds = cmdService.getDefinedCommands(); |
| ... | ... | |
| 353 | 345 |
public void doubleClick(DoubleClickEvent event) {
|
| 354 | 346 |
TreeSelection selection = (TreeSelection) treeViewer.getSelection(); |
| 355 | 347 |
Object selectedItem = selection.getFirstElement(); |
| 356 |
//System.out.println("dbl click: "+selectedItem);
|
|
| 357 | 348 |
if (selectedItem != null) {
|
| 358 |
|
|
| 359 |
// FIXME: this code should be in conflict with the native RCP system based in EditorInput.equals(), see if we can remove it |
|
| 360 |
// if (selectedItem instanceof TXMResult) {
|
|
| 361 |
// |
|
| 362 |
// TXMResult txmResult = (TXMResult) selectedItem; |
|
| 363 |
// TXMResultEditorInput<TXMResult> input = new TXMResultEditorInput<TXMResult>(txmResult); |
|
| 364 |
// |
|
| 365 |
// IWorkbenchWindow window = TXMWindows.getActiveWindow(); |
|
| 366 |
// if (window != null) {
|
|
| 367 |
// IWorkbenchPage page = window.getActivePage(); |
|
| 368 |
// IEditorPart editor = page.findEditor(input); |
|
| 369 |
// if (editor != null) {
|
|
| 370 |
// page.activate(editor); |
|
| 371 |
// return; // ok done |
|
| 372 |
// } |
|
| 373 |
// } |
|
| 374 |
// } |
|
| 375 |
|
|
| 376 | 349 |
String commandId = doubleClickInstalledCommands.get(selectedItem.getClass().getName()); |
| 377 | 350 |
if (commandId != null) {
|
| 378 | 351 |
BaseAbstractHandler.executeCommand(commandId); |
| 379 | 352 |
} |
| 380 |
|
|
| 381 |
// // test if a double click listener has been set |
|
| 382 |
// @Deprecated |
|
| 383 |
// Class commandClass = managedDoubleClickClasses.get(selectedItem.getClass()); |
|
| 384 |
// //System.out.println("classes: "+managedDoubleClickClasses);
|
|
| 385 |
// if (commandClass != null) {
|
|
| 386 |
// |
|
| 387 |
// IHandlerService handlerService = (IHandlerService) getViewSite().getService(IHandlerService.class); |
|
| 388 |
// try {
|
|
| 389 |
// handlerService.executeCommand(commandClass.getName(), null); |
|
| 390 |
// } catch (Exception e) {
|
|
| 391 |
// System.out.println("Error while calling "+ commandClass.getName() + " command.");
|
|
| 392 |
// Log.printStackTrace(e); |
|
| 393 |
// } |
|
| 394 |
// } |
|
| 395 | 353 |
} |
| 396 | 354 |
} |
| 397 | 355 |
}); |
| ... | ... | |
| 437 | 395 |
} |
| 438 | 396 |
}); |
| 439 | 397 |
|
| 398 |
// FIXME: show icon for results that are user persistable |
|
| 399 |
|
|
| 400 |
final int IMAGE_MARGIN = 2; |
|
| 401 |
final Image icon = AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.ui.cheatsheets","platform:/plugin/org.eclipse.ui.cheatsheets/icons/obj16/complete_status.gif").createImage();
|
|
| 402 |
// final Image icon = AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.gef","platform:/plugin/org.eclipse.gef/org/eclipse/gef/internal/icons/pinned.gif").createImage();
|
|
| 403 |
// final Image icon = AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.team.svn.help","platform:/plugin/org.eclipse.team.svn.help/images/lock.gif").createImage();
|
|
| 404 |
|
|
| 405 |
|
|
| 406 |
|
|
| 407 |
// treeViewer.getTree().addListener(SWT.MeasureItem, new Listener() {
|
|
| 408 |
// public void handleEvent(Event event) {
|
|
| 409 |
// TreeItem item = (TreeItem)event.item; |
|
| 410 |
// Image trailingImage = (Image)item.getImage(); |
|
| 411 |
// if (trailingImage != null) {
|
|
| 412 |
// event.width += trailingImage.getBounds().width + IMAGE_MARGIN; |
|
| 413 |
// } |
|
| 414 |
// } |
|
| 415 |
// }); |
|
| 416 |
treeViewer.getTree().addListener(SWT.PaintItem, new Listener() {
|
|
| 417 |
public void handleEvent(Event event) {
|
|
| 418 |
if(event.item.getData() instanceof TXMResult && ((TXMResult)event.item.getData()).isUserPersistable()) {
|
|
| 419 |
TreeItem item = (TreeItem)event.item; |
|
| 420 |
Image trailingImage = (Image)item.getImage(); |
|
| 421 |
if (trailingImage != null) {
|
|
| 422 |
//int x = event.x + event.width + IMAGE_MARGIN; |
|
| 423 |
int x = event.x - 20; |
|
| 424 |
int itemHeight = treeViewer.getTree().getItemHeight(); |
|
| 425 |
int imageHeight = trailingImage.getBounds().height; |
|
| 426 |
int y = event.y + (itemHeight - imageHeight) / 2; |
|
| 427 |
|
|
| 428 |
event.gc.drawImage(icon, x, y); |
|
| 429 |
//event.gc.drawImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_ETOOL_SAVE_EDIT_DISABLED), x, y); |
|
| 430 |
} |
|
| 431 |
} |
|
| 432 |
} |
|
| 433 |
}); |
|
| 434 |
|
|
| 435 |
|
|
| 440 | 436 |
MenuManager menuManager = new MenuManager(); |
| 441 | 437 |
Menu menu = menuManager.createContextMenu(treeViewer.getTree()); |
| 442 | 438 |
|
| ... | ... | |
| 529 | 525 |
CorporaView corporaView = getInstance(); |
| 530 | 526 |
if (corporaView != null) {
|
| 531 | 527 |
corporaView.treeViewer.refresh(); |
| 528 |
corporaView.treeViewer.getTree().redraw(); |
|
| 532 | 529 |
//corporaView.treeViewer.expandAll(); // FIXME |
| 533 | 530 |
} |
| 534 | 531 |
} |
| tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/results/SetTXMResultPersistentState.java (revision 1027) | ||
|---|---|---|
| 71 | 71 |
if(object instanceof TXMResult) {
|
| 72 | 72 |
TXMResult result = ((TXMResult)object); |
| 73 | 73 |
result.swapUserPersistableState(); |
| 74 |
// if(result.mustBePersisted()) {
|
|
| 75 |
// TXMPreferences.flush(result); |
|
| 76 |
// } |
|
| 77 | 74 |
CorporaView.refresh(); |
| 78 | 75 |
return null; |
| 79 | 76 |
} |
| tmp/org.txm.rcp/src/main/java/org/txm/rcp/adapters/TXMResultAdapter.java (revision 1027) | ||
|---|---|---|
| 72 | 72 |
|
| 73 | 73 |
@Override |
| 74 | 74 |
public RGB getBackground(Object element) {
|
| 75 |
if(element instanceof TXMResult && ((TXMResult)element).isUserPersistable()) {
|
|
| 76 |
Display display = Display.getCurrent(); |
|
| 77 |
Color color = display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND); |
|
| 78 |
|
|
| 79 |
// FIXME: random color tests |
|
| 80 |
// Random rnd = new Random(); |
|
| 81 |
// int r = rnd.nextInt(128) + 128; // 128 ... 255 |
|
| 82 |
// int g = rnd.nextInt(128) + 128; // 128 ... 255 |
|
| 83 |
// int b = rnd.nextInt(128) + 128; // 128 ... 255 |
|
| 84 |
// Color blue = new Color(display, r, g, b); |
|
| 85 |
|
|
| 86 |
return color.getRGB(); |
|
| 87 |
} |
|
| 75 |
// if(element instanceof TXMResult && ((TXMResult)element).isUserPersistable()) {
|
|
| 76 |
// Display display = Display.getCurrent();
|
|
| 77 |
// Color color = display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
|
|
| 78 |
// |
|
| 79 |
// // FIXME: random color tests
|
|
| 80 |
//// Random rnd = new Random();
|
|
| 81 |
//// int r = rnd.nextInt(128) + 128; // 128 ... 255
|
|
| 82 |
//// int g = rnd.nextInt(128) + 128; // 128 ... 255
|
|
| 83 |
//// int b = rnd.nextInt(128) + 128; // 128 ... 255
|
|
| 84 |
//// Color blue = new Color(display, r, g, b);
|
|
| 85 |
// |
|
| 86 |
// return color.getRGB();
|
|
| 87 |
// }
|
|
| 88 | 88 |
return null; |
| 89 | 89 |
} |
| 90 | 90 |
|
| tmp/org.txm.rcp/plugin.xml (revision 1027) | ||
|---|---|---|
| 941 | 941 |
name="menu.corpus.manage" |
| 942 | 942 |
visible="true"> |
| 943 | 943 |
</separator> |
| 944 |
|
|
| 945 | 944 |
<command |
| 946 |
commandId="org.txm.rcp.commands.base.DeleteObject"
|
|
| 945 |
commandId="org.txm.rcp.handlers.results.DeleteObject"
|
|
| 947 | 946 |
icon="icons/functions/Delete.png" |
| 948 | 947 |
style="push"> |
| 949 | 948 |
<visibleWhen |
| 950 | 949 |
checkEnabled="false"> |
| 951 |
|
|
| 952 |
<or> |
|
| 953 |
<reference |
|
| 954 |
definitionId="OneBaseSelected"> |
|
| 955 |
</reference> |
|
| 956 |
<reference |
|
| 957 |
definitionId="OneCASelected"> |
|
| 958 |
</reference> |
|
| 959 |
<reference |
|
| 960 |
definitionId="OneConcordanceSelected"> |
|
| 961 |
</reference> |
|
| 962 |
<reference |
|
| 963 |
definitionId="OneCorpusSelected"> |
|
| 964 |
</reference> |
|
| 965 |
<reference |
|
| 966 |
definitionId="OneLexicalTableSelected"> |
|
| 967 |
</reference> |
|
| 968 |
<reference |
|
| 969 |
definitionId="OneLexiconSelected"> |
|
| 970 |
</reference> |
|
| 971 |
<reference |
|
| 972 |
definitionId="OnePartitionSelected"> |
|
| 973 |
</reference> |
|
| 974 |
<reference |
|
| 975 |
definitionId="OneSpecificitiesResultSelected"> |
|
| 976 |
</reference> |
|
| 977 |
<reference |
|
| 978 |
definitionId="OneTxmObjectSelected"> |
|
| 979 |
</reference> |
|
| 980 |
<reference |
|
| 981 |
definitionId="OneIndexSelected"> |
|
| 982 |
</reference> |
|
| 983 |
<reference |
|
| 984 |
definitionId="OneCooccurrenceSelected"> |
|
| 985 |
</reference> |
|
| 986 |
<reference |
|
| 987 |
definitionId="OneReferencerSelected"> |
|
| 988 |
</reference> |
|
| 989 |
<reference |
|
| 990 |
definitionId="OneProgressionSelected"> |
|
| 991 |
</reference> |
|
| 992 |
<reference |
|
| 993 |
definitionId="OneCAHSelected"> |
|
| 994 |
</reference> |
|
| 995 |
</or> |
|
| 996 |
|
|
| 950 |
<or> |
|
| 951 |
<reference |
|
| 952 |
definitionId="OneBaseSelected"> |
|
| 953 |
</reference> |
|
| 954 |
<reference |
|
| 955 |
definitionId="OneConcordanceSelected"> |
|
| 956 |
</reference> |
|
| 957 |
<reference |
|
| 958 |
definitionId="OneCorpusSelected"> |
|
| 959 |
</reference> |
|
| 960 |
<reference |
|
| 961 |
definitionId="OneLexicalTableSelected"> |
|
| 962 |
</reference> |
|
| 963 |
<reference |
|
| 964 |
definitionId="OneLexiconSelected"> |
|
| 965 |
</reference> |
|
| 966 |
<reference |
|
| 967 |
definitionId="OnePartitionSelected"> |
|
| 968 |
</reference> |
|
| 969 |
<reference |
|
| 970 |
definitionId="OneTxmObjectSelected"> |
|
| 971 |
</reference> |
|
| 972 |
<reference |
|
| 973 |
definitionId="OneTXMResultSelected"> |
|
| 974 |
</reference> |
|
| 975 |
</or> |
|
| 997 | 976 |
</visibleWhen> |
| 998 | 977 |
</command> |
| 978 |
|
|
| 999 | 979 |
<separator |
| 1000 | 980 |
name="menu.corpus.build" |
| 1001 | 981 |
visible="true"> |
| ... | ... | |
| 1405 | 1385 |
checkEnabled="false"> |
| 1406 | 1386 |
<or> |
| 1407 | 1387 |
<reference |
| 1388 |
definitionId="OneBaseSelected"> |
|
| 1389 |
</reference> |
|
| 1390 |
<reference |
|
| 1391 |
definitionId="OneConcordanceSelected"> |
|
| 1392 |
</reference> |
|
| 1393 |
<reference |
|
| 1394 |
definitionId="OneCorpusSelected"> |
|
| 1395 |
</reference> |
|
| 1396 |
<reference |
|
| 1397 |
definitionId="OneLexicalTableSelected"> |
|
| 1398 |
</reference> |
|
| 1399 |
<reference |
|
| 1400 |
definitionId="OneLexiconSelected"> |
|
| 1401 |
</reference> |
|
| 1402 |
<reference |
|
| 1403 |
definitionId="OnePartitionSelected"> |
|
| 1404 |
</reference> |
|
| 1405 |
<reference |
|
| 1406 |
definitionId="OneTxmObjectSelected"> |
|
| 1407 |
</reference> |
|
| 1408 |
<reference |
|
| 1408 | 1409 |
definitionId="OneTXMResultSelected"> |
| 1409 | 1410 |
</reference> |
| 1410 | 1411 |
</or> |
| ... | ... | |
| 2024 | 2025 |
</command> |
| 2025 | 2026 |
<command |
| 2026 | 2027 |
commandId="org.txm.rcp.handlers.results.SetTXMResultPersistentState" |
| 2028 |
icon="platform:/plugin/org.eclipse.ui.cheatsheets/icons/obj16/complete_status.gif" |
|
| 2027 | 2029 |
style="toggle"> |
| 2028 | 2030 |
<visibleWhen |
| 2029 | 2031 |
checkEnabled="false"> |
| tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/editors/ProgressionEditor.java (revision 1027) | ||
|---|---|---|
| 429 | 429 |
*/ |
| 430 | 430 |
protected TXMEditor<? extends TXMResult> editor; |
| 431 | 431 |
|
| 432 |
protected Button deleteButton; |
|
| 433 |
|
|
| 434 |
|
|
| 432 | 435 |
/** |
| 433 | 436 |
* |
| 434 | 437 |
* @param parent |
| ... | ... | |
| 463 | 466 |
|
| 464 | 467 |
|
| 465 | 468 |
// delete query button |
| 466 |
Button minusButton = new Button(this, SWT.NONE);
|
|
| 467 |
minusButton.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, false, false));
|
|
| 468 |
minusButton.setImage(IImageKeys.getImage(IImageKeys.ACTION_DELETE));
|
|
| 469 |
minusButton.addListener(SWT.Selection, new Listener() {
|
|
| 469 |
deleteButton = new Button(this, SWT.NONE);
|
|
| 470 |
deleteButton.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, false, false));
|
|
| 471 |
deleteButton.setImage(IImageKeys.getImage(IImageKeys.ACTION_DELETE));
|
|
| 472 |
deleteButton.addListener(SWT.Selection, new Listener() {
|
|
| 470 | 473 |
@Override |
| 471 | 474 |
public void handleEvent(Event event) {
|
| 472 | 475 |
if (queryWidgets.size() > 1) {
|
| ... | ... | |
| 479 | 482 |
queriesFocusComposite.layout(true); |
| 480 | 483 |
sc1.setMinSize(queriesFocusComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT)); |
| 481 | 484 |
} |
| 485 |
// delete button states |
|
| 486 |
updateDeleteButtonStates(); |
|
| 482 | 487 |
} |
| 483 | 488 |
}); |
| 484 | 489 |
// listener |
| 485 |
minusButton.addSelectionListener(new ComputeSelectionListener(ProgressionEditor.this));
|
|
| 490 |
deleteButton.addSelectionListener(new ComputeSelectionListener(ProgressionEditor.this));
|
|
| 486 | 491 |
|
| 492 |
// delete button states |
|
| 493 |
this.updateDeleteButtonStates(); |
|
| 494 |
|
|
| 487 | 495 |
} |
| 488 | 496 |
|
| 497 |
|
|
| 489 | 498 |
/** |
| 499 |
* Updates the delete button states. |
|
| 500 |
*/ |
|
| 501 |
public void updateDeleteButtonStates() {
|
|
| 502 |
for (int i = 0; i < queryWidgets.size(); i++) {
|
|
| 503 |
queryWidgets.get(i).getDeleteButton().setEnabled(!(queryWidgets.size() == 1)); |
|
| 504 |
} |
|
| 505 |
} |
|
| 506 |
|
|
| 507 |
/** |
|
| 508 |
* Gets the delete button. |
|
| 509 |
* @return |
|
| 510 |
*/ |
|
| 511 |
public Button getDeleteButton() {
|
|
| 512 |
return this.deleteButton; |
|
| 513 |
} |
|
| 514 |
|
|
| 515 |
/** |
|
| 490 | 516 |
* |
| 491 | 517 |
* @param query |
| 492 | 518 |
*/ |
| tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/JFCChartCreator.java (revision 1027) | ||
|---|---|---|
| 48 | 48 |
// freeze rendering |
| 49 | 49 |
chart.setNotify(false); |
| 50 | 50 |
|
| 51 |
|
|
| 52 | 51 |
// applying full theme |
| 53 | 52 |
if(applyTheme) {
|
| 54 | 53 |
this.getChartsEngine().getJFCTheme().applyThemeToChart(result); |
Formats disponibles : Unified diff