3

これらのJFaceSnippets はeclipsepediaから見つけました。私はTreeViewerに特に興味がありますが、ここのコードを理解できません:

TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(v,new FocusCellOwnerDrawHighlighter(v));  
ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {  
   protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {  
    return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL  
    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED &&
             event.keyCode == SWT.CR)
    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;  
  }  
};  
TreeViewerEditor.create(v, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR  
 | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);  

この特定のコード スニペットが必要な理由 このコードをコメントアウトして例を実行すると、違いはないようです。
では、なぜこのコードが使用され、 で何を提供するのTreeViewerでしょうか?

4

2 に答える 2

3

コードのこの部分では、ツリー セルをその場で編集できるため、ノードをダブルクリックしてその内容を編集できます。

この行により、ツリーは編集に使用できる「セル」を持つことができます。

TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(v,new FocusCellOwnerDrawHighlighter(v));

この行は、インプレース編集のためにセル エディターがアクティブになるタイミングを決定します (ダブルクリック、Enter)。

ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {  
   protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {  
    return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL  
    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED &&
             event.keyCode == SWT.CR)
    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;  
  }  
};  

この行は、ツリー セルの編集に使用される実際のエディターを作成します。

TreeViewerEditor.create(v, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR   | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); 
于 2012-09-24T11:41:55.467 に答える
0

コードを読むと、対話設定が指定されています。たとえば、ダブルクリックしてエンターキーなどを使用してセルをアクティブにすることができます。これらの設定の一部は、デフォルトと一致している可能性があります。

于 2012-09-23T10:39:28.957 に答える