2016-06-29 7 views
0

私はNatTableExamples-1.4.0で試していましたが、と_900_test\viewportSelection\ViewportSelectionHideShowDataLayerExampleを使用しようとしていました。NatTableのShowRowInViewportCommandを使用

次のように私はcreateExampleControl方法から得nattableオブジェクトとoverloaded onStart()方法が格納されている:ここ

@Override 
public void onStart() { 
     nattable.doCommand(new ShowRowInViewportCommand(nattable.getLayer(), 35)); //didn't work 
     nattable.doCommand(new SelectRowsCommand(nattable.getLayer(), 0, 35, false, false)); //worked, can see the row selected after scrolling down 
    } 

SelectRowsCommandが働きました。私は、行36がインデックス位置変換のために選択されるのを見ました。

しかし、ShowRowInViewportCommandの影響がUIに表示されませんでした。私は行36が自動的に見えるはずだと思っていました。

​​が配置されています。デバッグ中に、コントロールがShowRowInViewportCommandHandler.doCommandメソッドに到達したことを確認しました。

自動スクロールを表示するにはどうすればよいですか?

答えて

0

あなたのアプローチではタイミングの問題があります。何かを見えるようにして、まだレンダリングされていない位置にスクロールしたいとします。レンダリングされないものでスクロールをどのように実行する必要がありますか? Shellが開かれましたアフターonStart()

起動時に自動スクロールを実行するには、レンダリングが完了した後に実行するリスナーを実装する必要があります。 PaintListenerを使用してください。

this.nattable.addPaintListener(new PaintListener() { 

    @Override 
    public void paintControl(PaintEvent e) { 
     nattable.doCommand(new SelectRowsCommand(nattable, 0, 35, false, false)); 
     nattable.removePaintListener(this); 
    } 
}); 

ところで、あなたもSelectRowsCommandが自動的にビューポートに選択された行を移動するShowRowInViewportCommandを実行する必要はありません。

+0

多くの例で上記のコードを使用しましたが、_513_FreezeExampleを除いて動作しました。私は層が異なっていることを理解しています。 _513_FreezeExampleでSelectRowsCommandを実行する方法? – Apurv

関連する問題