SWTの中で最も難解なコンポーネントの一つだと思われる、Table について解析します。
解析対象は Eclipse 3.4M5 です。
Table > Composite > Scrollable > Control > Widget
Widget から継承された全メソッドについて記します。
コントロールの位置が移動したり、サイズが変化したときに呼ばれるリスナーを定義します。
コントロールが破棄されるときに呼ばれるリスナーを定義します。
3.3以降マウスジェスチャーイベントを受け取ったときに呼ばれるリスナーを定義します。
マウスジェスチャーとは、マウスのボタンを押しながらマウスを左右に動かすことによって
特定の動作をさせる仕組みのことです。
コントロールがフォーカスを受け取ったり失ったりするときに呼ばれるリスナーを定義します。
コントロールにヘルプイベントが送られたときに呼ばれるリスナーを定義します。
デフォルトではF1キーを押すとヘルプイベントが発生します。
コントロール上でキーが押されたり離されたりしたときに呼ばれるリスナーを定義します。
任意のリスナーを定義します。
3.3以降メニュー表示時に呼ばれる(詳細は不明)リスナーを定義します。
デフォルトでは右クリックを押すと呼ばれます。
マウスのクリック時に呼ばれるリスナーを定義します。
マウスの移動時に呼ばれるリスナーを定義します。
コントール上にマウスが入ってきたとき、通過中、出ていくときに
呼ばれるリスナーを定義します。
3.3以降マウスホイールを動かしたときに呼ばれるリスナーを定義します。
コントロール描画時に呼ばれるリスナーを定義します。
コントロール内の選択範囲が変化したときに呼ばれるリスナーを定義します。
特定のキー(Traversal Key)を押下したときに呼ばれるリスナーを定義します。
Traversal Key とは、方向キーやPage Up/Downキーなど
コントロール内のターゲットを移動させるようなキーのことです。
こういったキーを押すと、TraverseEvent が発生した後で keyPressed イベントが発生します。
ControlListener を除去します。
DisposeListener を除去します。
DragDetectListener を除去します。
FocusListener を除去します。
HelpListener を除去します。
KeyListener を除去します。
Listener を除去します。
MenuDetectListener を除去します。
MouseListener を除去します。
MouseMoveListener を除去します。
MouseTrackListener を除去します。
MouseWheelListener を除去します。
PaintListener を除去します。
SelectionListener を除去します。
TraverseListener を除去します。
指定したタイプで定義されたリスナーを返します。
指定されたタイプのリスナーが定義されているかどうかを返します。
テーブル行を削除します。
全テーブル行を削除します。
指定したテーブル行の選択状態を解除します。
全テーブル行の選択状態を解除します。
指定した列の TableColumn インスタンスを返します。
TableColumn は、テーブルヘッダを表すクラスです。
このテーブルが持つ TableColumn の個数、すなわち列数を返します。
TableColumn が現在どのような順序で並んでいるのかを返します。
テーブル作成当初これは [0, 1, 2, ...] と昇順になっていますが
ユーザオペレーションによって列の入れ替えなどをすると
この順序が変わることになります。
全ての TableColumn を返します。
グリッドライン(セルの境界線)の幅を返します。
3.3現在、常に1を返します。
テーブルヘッダの高さをピクセル単位で返します。
ヘッダを表示しない場合(デフォルト)は0を返します。
テーブルヘッダを表示するかどうかを返します。デフォルトではヘッダは表示しません。
指定した行の TableItem を返します。
テーブル行数を返します。
1行の高さをピクセル単位で返します。
全ての行の TableItem を返します。
グリッド線を表示するかどうかを返します。
選択されている TableItem を返します。
選択されているアイテム数を返します。
選択されている先頭アイテムの行番号(0~)を返します。
選択されている全アイテムの行番号(0~)を返します。
現在のソート列のテーブルヘッダを返します。
これは、テーブルヘッダ内に表示されるアイコン(▼▲)の場所(列位置)を
決定するためだけに使われます。ソート機能は、ユーザが実装する必要があります。
現在のソート順を返します。
これは、テーブルヘッダ内に表示されるアイコン(▼▲)の種類を
決定するためだけに使われます。ソート機能は、ユーザが実装する必要があります。
画面内で一番上に表示されているテーブルアイテムの行番号(0~)を返します。
スクロールバーを移動させたりするとこの値は変化します。
指定されたテーブルカラムがテーブル内で何番目(0~)に定義されているかを返します。
これは getColumnOrder で取得できるようなカラム順とは関係なく
作成された時点でのインデックスを返します。
指定されたアイテムがテーブル内で何行目(0~)に定義されているかを返します。
指定行のアイテムが選択されているかどうかを返します。
指定した行(アイテム)を削除します。
全行を削除します。
指定した行を選択します。
既に選択されている行の選択状態は変化しません。
全ての行を選択します。
カラム表示順を設定します。
テーブルヘッダ行の表示/非表示を設定します。
デフォルトでは非表示になっています。
テーブルアイテムの数(つまり行数)を返します。
グリッド線の表示/非表示を設定します。
デフォルトでは非表示になっています。
指定した行を選択します。
select と異なるのは、最初に全行の選択を解除することです。
ソート対象カラムの列番号(0~)を設定します。
ソートの昇順/降順を設定します。
指定した行が一番上に表示されるように
垂直スクロールバーの位置を制御します。
指定した列が画面上に表示されるように
水平スクロールバーの位置を制御します。
指定した行が画面上に表示されるように
垂直スクロールバーの位置を制御します。
setTopIndex と異なり、アイテムが常に一番上に表示される
わけではありません。
選択されている行が画面上に表示されるように
垂直スクロールバーの位置を制御します。
コントロールのサイズを返します。
指定したクライアントエリアの確保に必要なコントロールのサイズを返します。
コントロールを破棄します。
コントロールにキーボードフォーカスを固定させます。
これにより、全てのキーイベントはこのコントロールに向けて発生します。
コントロールに結び付いた Accessible を取得します。
Accessible とは、コントロールの情報を読み上げたりする
アシスト機能のことです(多分)。
背景色を取得します。
背景イメージを取得します。
背景色描画モードを取得します。
INHERIT_NONE(継承なし) / INHERIT_DEFAULT(通常の継承モード) / INHERIT_FORCE(強制継承)
コントールの境界線の幅を返します。
コントロールが占有する領域を長方形の範囲で返します。
※ 親コントロールからの相対位置
このコントールが持つ子コントロールを全て返します。
コントロールの描画対象となる領域を長方形の範囲で返します。
getBounds と似ていますが、コントロール内に外枠やメニューなどがあった場合は
この値はそれよりも小さくなります。
コントロールに結び付くカーソルを返します。
コントロールに設定された任意の値を返します。
単一の値もしくはマップ形式(キー=>値)の値を使うことができます。
コントロールに対応する Display インスタンスを返します。
Display は、文字通り一つのディスプレーを表すクラスです。
シングルディスプレー環境ならば常に固定ですが、
マルチディスプレー環境ならばそのコントロールがどのディスプレーに
表示されているかによってインスタンスは変化します(多分)。
自身のコントロールが有効かどうかを返します。
親Composite のことは考慮しません。
考慮したい場合には、isEnabled を利用します。
コントロールに結び付けられたフォントを返します。
コントロールの前景色を返します。
水平スクロールバーを返します。
コントールの位置(親からの相対)を返します。
コントロールに結び付けられた Menu を返します。
自身の親コントールを返します。
3.4以降コントロールの Region を返します。
コントロールの親シェルを返します。
コントロールのサイズを返します。
コントールのスタイルを返します。
タブ順序で並び変えた自身の子コントロール一覧を返します。
タブ順序とは、コントロール内でTABキーを押したときに
フォーカスが移る順序のことです。
テーブルのように子コントロールを持たない場合は、サイズ0の値を返します。
コントロールのツールチップ文字列を返します。
これは、コントロールにカーソルを合わせると
一時的にポップアップ表示される文字列のことです。
垂直スクロールバーを返します。
自身の可視性(見えているかいないか)を返します。
この値が true でも、親コンポーネントが非可視になっている時には
このコントロールは表示されません。
実際に見えているかどうかを判定したい場合には、isVisible を利用します。
このコントロールが既に破棄されているかどうかを返します。
コントロールが有効かどうかを返します。
自身または親のコントロールが無効の場合、これは false を返します。
自身の有効性だけを判定したい場合、getEnabled を利用します。
フォーカスが自身に当たっているかどうかを判定します。
コントロールの reparenting をOSがサポートしているかどうかを返します。
サポートされている場合、setParent によって親Composite を変更することが
可能になります。
コントロールの可視性(見えるか見えないか)を返します。
自身が持つ子コントロールのレイアウトを決定します。
自身をあるコントロールの上に配置します。
これはComposite内の「描画順」を制御するのに使います。
自身をあるコントロールの下に配置します。
これはComposite内の「描画順」を制御するのに使います。
イベントを通知します。
コントロールを適切なサイズにセットします。
pack(false) を呼び出すと、自身の内容が変化していないとして
キャッシュをクリアせずにサイズを再計算します。
…とありますが、詳細は不明です。
3.4以降引数で与えられたGC(描画する場所などを持ったグラフィックインスタンス)
に自身を描画します。
自身を再描画します。
背景色を指定します。
背景イメージを指定します。
背景モードを指定します。
コントロールの位置およびサイズを指定します。
setCapture(true) でキャプチャを開始し、setCapture(false) でキャプチャを解除します。
キャプチャとは、全てのマウスイベントを受信する状態のことです。
通常、マウスイベントはカーソルの位置にあるコントロール上に送られますが
キャプチャを開始するとその制御を特定のコントロールに固定させることができます。
コントロールにカーソルを設定します。
コントロールに任意の値を設定します。
マウスジェスチャー機能の有効・無効をセットします。
ここで有効にしておけば自動的にマウスジェスチャーが有効になるらしいのですが
(Windowsだけ?)うまくいかないので dragDetect メソッドを
明示的に呼び出す必要があるみたいです。
コントロールの有効・無効をセットします。
自身のコントロールにフォーカスを当てます。
フォントを設定します。
前景色を設定します。
コントロールの位置を設定します。
コントロールに結び付けるメニューを設定します。
自身の親 Composite を設定(変更)します。
isReparentable が false を返す場合、親を変更することは出来ません。
自身のコントロールの再描画フラグを制御します。
3.4以降リージョンを設定します。
コントロールに任意の形を割り当てる3.4の新機能です。
これを使うと、円形のウィンドウなどを表示させることができます。
コントロールのサイズを設定します。
タブ順序を設定します。
ツールチップ文字列を設定します。
コントロールの可視性を設定します。
指定した座標を、コントロールの左上からの相対座標に変換します。
例えばコントロールがディスプレー上で (50, 25) の位置にあり、
control.toControl(200, 100) を呼び出すと戻り値は (150, 75) になります。
コントロール内の座標を、ディスプレー左上からの相対座標に変換します。
例えばコントロールがディスプレー上で (50, 25) の位置にあり、
control.toDisplay(200, 100) を呼び出すと戻り値は (250, 125) になります。
control.toDisplay(0, 0) は (50, 25) を返します。
これは、コントロールがディスプレー上でどの位置にあるのかを表しています。
トラバース処理を実行します。
ESCAPE / RETURN / TAB_NEXT / TAB_PREVIOUS / ARROW_NEXT / ARROW_PREVIOUS
のいずれかの引数を指定すると、そのキーを押したときと同じ
処理を実行することができます。
コントロールの内容を更新したときに呼び出すと、
更新に必要な分の描画が行われます。
何も更新していなければ何もしません。
Composite のレイアウトを返します。
これは、自身ではなく「自身を親に持つ」子コントロールを
どのようなレイアウトにするかを指定するものです。
コントロールのレイアウトを返します。
これは、自身を親Composite の中でどのようにレイアウトするかを指定するものです。
内部のレイアウトカウントが1以上ならばtrueを返します。
これは通常ユーザが意識する必要はありません。
内部のレイアウトカウントが1以上ならばtrueを返します。
これは通常ユーザが意識する必要はありません。
自身のレイアウトカウントが0でも、親のレイアウトカウントが1以上ならば
このメソッドはtrueを返します。
自身の(Composite)レイアウトを設定します。
(親Compositeに対する)自身のレイアウトを設定します。
内部のレイアウトカウンタを設定します。
不明
マウスジェスチャーを開始します。
通常このメソッドはマウスボタン押下時のリスナー内でコールされます。
そのマウスを移動させると、DragDetectEvent が発生します。
マウスジェスチャー機能が有効かどうかを返します。
不明