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