2015-09-24 40 views
1

enter image description here如何在JFace的ListViewer中獲取ToolTip?

這是一個gridLayout,其中Available側是樹查看器,Selected側是ListViewer。現在我必須在右側獲得工具提示。我無法得到。我正在研究現有的代碼庫,所以我無法弄清楚他們在哪一行添加工具提示+我沒有找到任何關鍵字,如工具提示或鼠標懸停。這仍然是如何實現的。 我提到一些代碼。我相信答案應該在這裏的某個地方。

availableViewer = new TreeViewer(resultsComposite, SWT.BORDER | this.getStyle()); 
     availableViewer.setContentProvider(new ResAndResGroupTreeContentProvider()); 
     availableViewer.setLabelProvider(SelectionItemLabelProvider.getInstance()); 
     Tree availableResults = availableViewer.getTree(); 
     GridData availableResultsGridData = new GridData(SWT.FILL, SWT.FILL, true, true); 
     availableResultsGridData.widthHint = LIST_WIDTH_HINT; 
     availableResultsGridData.heightHint = LIST_HEIGHT_HINT; 
     availableResults.setLayoutData(availableResultsGridData); 
     availableViewer.getTree().addSelectionListener(new SelectionAdapter() 
     { 
      @Override 
      public void widgetDefaultSelected(SelectionEvent e) 
      { 
       moveAvailableItemsToSelected(); 
      } 
     }); 

這是selectionViewer的內容。

selectedViewer = new ListViewer(resultsComposite, SWT.V_SCROLL | SWT.H_SCROLL| SWT.BORDER 
      | this.getStyle()); 
    selectedViewer.setContentProvider(new ResAndResGroupTreeContentProvider()); 
    selectedViewer.setLabelProvider(new SelectionItemLabelProvider()); 
    org.eclipse.swt.widgets.List selectedResults = selectedViewer.getList(); 
    GridData selectedResultsGridData = new GridData(SWT.FILL, SWT.FILL, true, true); 
    selectedResultsGridData.widthHint = LIST_WIDTH_HINT; 
    selectedResultsGridData.heightHint = LIST_HEIGHT_HINT; 
    selectedResults.setLayoutData(selectedResultsGridData); 
    selectedViewer.addDoubleClickListener(new IDoubleClickListener() 
    { 
     @Override 
     public void doubleClick(DoubleClickEvent event) 
     { 
      moveSelectedItemsToAvailable(); 
     } 
    }); 
    selectedViewer.getList().addKeyListener(new KeyAdapter() 
    { 
     @Override 
     public void keyPressed(KeyEvent e) 
     { 
      if (e.character == SWT.CR) 
      { 
       moveSelectedItemsToAvailable(); 
      } 
     } 
    }); 
    selectedViewer.addSelectionChangedListener(new ISelectionChangedListener() 
    { 
     @Override 
     public void selectionChanged(SelectionChangedEvent event) 
     { 
      updateButtonsEnabled(); 
     } 
    }); 

謝謝。

+0

'ColumnViewerToolTipSupport'是常用的方法,但我在這裏沒有看到。 –

+0

難道還有其他的方法可以做到嗎? –

+0

在某些平臺上,本地樹控件將自動顯示整個長字符串作爲工具提示。 –

回答

2

ListViewer底層List小部件無法爲每個項目顯示不同的工具提示。 您可以指定一個提示整個列表,像這樣

listViewer.getList().setTooltipText("..."); 

但是如果你想每件不同的充提示你將不得不使用一個TableViewer

您在左側看到的是本機Windows工具提示,如果某個項目超出水平空間,則會顯示該工具提示。 Table(在Windows上)具有相同的行爲,因此您不需要明確提供工具提示。

對於具有默認工具提示的控件(例如Windows上的Tree),將工具提示設置爲null將替換缺省值,從而不會顯示工具提示。

+0

但我們在左側使用的是TreeViewer。它如何具有Windows的固有屬性? –

+0

[documentation](http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjface%2Fviewers%2FTreeViewer.html)樹查看器沒有提及這個 –

+0

@SarasArya這是SWT使用的本機樹控件的一個特性,在不同平臺之間有所不同(Mac樹控件也是這樣做的)。 –

相關問題