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