mozilla

リビジョンの比較

ツリーボックスオブジェクト

Change Revisions

リビジョン 176713:

リビジョン 176713 (編集者: Mgjbot / 編集日時: )

リビジョン 176714:

リビジョン 176714 (編集者: Morishoji / 編集日時: )

タイトル:
ツリーボックスオブジェクト
ツリーボックスオブジェクト
URL スラグ:
XUL_Tutorial/Tree_Box_Objects
XUL_Tutorial/Tree_Box_Objects
タグ:
XUL, XUL_Tutorial, Tutorials
XUL, XUL_Tutorial, Tutorials
内容:

リビジョン 176713
リビジョン 176714
n8      {{template.PreviousNext("XUL Tutorial:Tree View Details", "n8      {{ PreviousNext("XUL Tutorial:Tree View Details", "XUL Tuto
>XUL Tutorial:Introduction to RDF")}}>rial:Introduction to RDF") }}
9    </p>
10    <p>9    </p>
10    <p>
11      このセクションでは、ツリーの描画について制御するために利用できる、ツリーボックスオブジェクトについて説明します。11      このセクションでは、ツリーの描画方法を制御するために利用できる、ツリーボックスオブジェクトについて説明します。
12    </p>
12    </p>13    <p>
13    <h3 name=".E3.83.84.E3.83.AA.E3.83.BC.E3.83.9C.E3.83.83.E3.8214      {{ 英語版章題("About the Tree Box Object") }}
>.AF.E3.82.B9.E3.82.AA.E3.83.96.E3.82.B8.E3.82.A7.E3.82.AF.E3.83.8 
>8.E3.81.AE.E6.A6.82.E8.A6.81"> 
15    </p>
16    <h3 id=".E3.83.84.E3.83.AA.E3.83.BC.E3.83.9C.E3.83.83.E3.82.A
 >F.E3.82.B9.E3.82.AA.E3.83.96.E3.82.B8.E3.82.A7.E3.82.AF.E3.83.88.
 >E3.81.AE.E6.A6.82.E8.A6.81" name=".E3.83.84.E3.83.AA.E3.83.BC.E3.
 >83.9C.E3.83.83.E3.82.AF.E3.82.B9.E3.82.AA.E3.83.96.E3.82.B8.E3.82
 >.A7.E3.82.AF.E3.83.88.E3.81.AE.E6.A6.82.E8.A6.81">
n19    <h4 name=".E3.83.84.E3.83.AA.E3.83.BC.E3.81.AE.E5.86.8D.E6.8Fn22    <p>
>.8F.E7.94.BB.E3.82.92.E8.A6.81.E6.B1.82.E3.81.99.E3.82.8B"> 
23      {{ 英語版章題("Redrawing the Tree") }}
24    </p>
25    <h4 id=".E3.83.84.E3.83.AA.E3.83.BC.E3.81.AE.E5.86.8D.E6.8F.8
 >F.E7.94.BB.E3.82.92.E8.A6.81.E6.B1.82.E3.81.99.E3.82.8B" name=".E
 >3.83.84.E3.83.AA.E3.83.BC.E3.81.AE.E5.86.8D.E6.8F.8F.E7.94.BB.E3.
 >82.92.E8.A6.81.E6.B1.82.E3.81.99.E3.82.8B">
n23      前のセクションで、既にツリーボックスオブジェクトの <code>rowCountChanged()</code> 関数n29      ツリーボックスオブジェクトの <code>rowCountChanged()</code> 関数は、前のセクションで既
>について見ています。 この関数は、ツリーに対して 1 つ以上の行が、追加または削除されたことを通知するもので、 ツリーでは影響を受>見ています。 この関数は、ツリーに対して 1 つ以上の行が、追加または削除されたことを通知するもので、 ツリーでは影響を受ける領
>ける領域についての再描画を行うことになります。 しかし、単に 1 つの行が何らかの方法で変更された場合、 例えばセルのラベルが変更>域についての再描画を行うことになります。 しかし、単に 1 つの行が何らかの方法で変更された場合、 例えばセルのラベルが変更された
>されたときなどであれば、<code>rowCountChanged()</code> 関数を呼び出す必要はありません。 こういった>ときなどであれば、<code>rowCountChanged()</code> 関数を呼び出す必要はありません。 こういった場合に
>場合には、かわりに別のいくつかの描画関数を利用します。 最も簡単なのは、<code>invalidateRow()</code> >は、かわりに別のいくつかの描画関数を利用します。 最も簡単なのは、<code>invalidateRow()</code> を呼び
>を呼び出すことで、これはツリーの中の指定した行の再描画を要求します。 このとき、ツリーはビューから更新されたデータを取得して画面上>出すことで、これはツリーの中の指定した行の再描画を要求します。 このとき、ツリーはビューから更新されたデータを取得して画面上のツリ
>のツリーの内容を更新することになります。>ーの内容を更新することになります。
n45    <h4 name=".E3.83.84.E3.83.AA.E3.83.BC.E3.82.92.E3.82.B9.E3.82n51    <p>
>.AF.E3.83.AD.E3.83.BC.E3.83.AB.E3.81.95.E3.81.9B.E3.82.8B"> 
52      {{ 英語版章題("Scrolling the Tree") }}
53    </p>
54    <h4 id=".E3.83.84.E3.83.AA.E3.83.BC.E3.82.92.E3.82.B9.E3.82.A
 >F.E3.83.AD.E3.83.BC.E3.83.AB.E3.81.95.E3.81.9B.E3.82.8B" name=".E
 >3.83.84.E3.83.AA.E3.83.BC.E3.82.92.E3.82.B9.E3.82.AF.E3.83.AD.E3.
 >83.BC.E3.83.AB.E3.81.95.E3.81.9B.E3.82.8B">
n52      {{wiki.template('Block-title', [ "例 1" ])}}&nbsp;: {{wiki.tn61      {{ Block-title("例 1") }}&nbsp;: {{ Xultu-sv("ex_treeboxobje
>emplate('Xultu-sv', [ "ex_treeboxobject_1.xul" ])}}>ct_1.xul") }}
n91      この例では、スクロール動作を確認しやすいように、 <code>{{template.XULElem("tree")}}n100      この例では、スクロール動作を確認しやすいように、 <code>{{ XULElem("tree") }}</code>
></code> 要素の <code>rows</code> 属性を設定して、一度に 4 行のみ表示されようにしてあるので注意して> 要素の <code>rows</code> 属性を設定して、同時に 4 行しか表示されないようにしてあるので注意してください。 
>ください。 また、最初の行へスクロールするためには 0 を与える必要があることにも注意してください。>また、最初の行へスクロールするためには 0 を与える必要があることにも注意してください。
n100      <code>scrollByLines()</code> 関数は、指定した行数に応じてスクロールを行います。 このときn109      <code>scrollByLines()</code> 関数は、指定した行数に応じてスクロールを行います。 このとき
>、正数を指定した場合は下方向に、負数の場合は上方向になります。 次の <code>scrollByPages()</code> 関>、正数を指定した場合は下方向に、負数の場合は上方向になります。 次の <code>scrollByPages()</code> 関
>数は、指定したページ数に応じたスクロールを行います。 この関数は、ツリーにフォーカスがあるときに、利用者が page up または>数は、指定したページ数に応じたスクロールを行います。 この関数は、ツリーにフォーカスがあるときに、利用者が page up または
> page down キーの操作を行った場合にも自動的に呼び出されます。 なお、この場合の 1 ページはツリーに表示可能な行数と同> page down キーの操作を行った場合にも自動的に呼び出されます。 なお、この場合の 1 ページはツリーに表示可能な行数と同
>じになります。 つまり、ツリーに同時に 10 行表示可能なときは、1ページは 10 行分の大きさになるということです。 ツリーが{>じになります。 つまり、ツリーに同時に 10 行表示可能なときは、1ページは 10 行分の大きさになるということです。 ツリーが{
>{wiki.template('訳語', [ "伸縮可能", "flexible" ])}}な場合に、利用者がリサイズを行うと、 >{ 訳語("伸縮可能", "flexible") }}な場合に、利用者がリサイズを行うと、 ページの大きさもそれに応じて変わること
>ページの大きさもそれに応じて変わることになりますが、 このメソッドを利用すれば、そういった場合にもページサイズを自分で計算をする必>になりますが、 このメソッドを利用すれば、そういった場合にもページサイズを自分で計算をする必要がないため便利です。 もっとも、ツリ
>要がないため便利です。 もっとも、ツリーボックスオブジェクトには、1 ページの行数を返す <code>getPageLength(>ーボックスオブジェクトには、1 ページの行数を返す <code>getPageLength()</code> 関数もあるため、この
>)</code> 関数もあるため、この計算自体は特段難しくはありません。 上の例では、<code>getPageLength()<>計算自体は特段難しくはありません。 上の例では、<code>getPageLength()</code> は 4 を返すことになり
>/code> は 4 を返すことになります。>ます。
n110    <h3 name=".E3.82.BB.E3.83.AB.E3.81.AE.E5.BA.A7.E6.A8.99">n119    <p>
120      {{ 英語版章題("Cell Coordinate") }}
121    </p>
122    <h3 id=".E3.82.BB.E3.83.AB.E3.81.AE.E5.BA.A7.E6.A8.99" name="
 >.E3.82.BB.E3.83.AB.E3.81.AE.E5.BA.A7.E6.A8.99">
n114      ツリーボックスオブジェクトが提供している、 指定座標がツリーのどの部分に該当するかを調べたり、 逆にツリーの特定の部分n126      ツリーボックスオブジェクトが提供している関数の中で最も興味を引くのは、 指定座標がツリーのどの部分に該当するかを調べた
>が位置している座標を調べたりするための関数群は、 このオブジェクトが提供する関数の中も、最も興味深い動作を行います>り、 逆にツリーの特定の部分が位置している座標を調べたりするための関数群でしょう
n131      重要: 座標系は、ツリーが置かれている{{wiki.template('訳語', [ "文書", "document"n143      重要: 座標系は、ツリーが置かれている{{ 訳語("文書", "document") }}の左上隅が原点になります。ツ
> ])}}の左上隅が原点になります。ツリー要素の左上隅ではないので注意してください。>リー要素の左上隅ではないので注意してください。
n137      {{wiki.template('Block-title', [ "例 2" ])}}&nbsp;: {{wiki.tn149      {{ Block-title("例 2") }}&nbsp;: {{ Xultu-sv("ex_treeboxobje
>emplate('Xultu-sv', [ "ex_treeboxobject_2.xul" ])}}>ct_2.xul") }}
n193      <code>getCellAt()</code> 関数は、座標の指定用に 2 つと、結果の{{wiki.templatn205      <code>getCellAt()</code> 関数は、座標の指定用に 2 つと、結果の{{ 訳語("出力パラメー
>e('訳語', [ "出力パラメータ", "out parameter" ])}}として 3 つの、合計 5 つの引数をとります。>タ", "out parameter") }}として 3 つの、合計 5 つの引数をとります。 この関数では複数の値を返す必要があ
> この関数では複数の値を返す必要があるため、出力パラメータを使用して関数から戻り値以外の値を受け取ることになります。 なお、出力パ>るため、出力パラメータを使用して関数から戻り値以外の値を受け取ることになります。 なお、出力パラメータを使用するインターフェイ
>ラメータを使用するインターフェイスはこの他にもいくつかあり、 <a class="external" href="http://w>スはこの他にもいくつかあり、 <a class="external" href="http://www.xulplanet.com
>ww.xulplanet.com/references/objref/">XULPlanet の オブジェクトリファレンス</a>>/references/objref/">XULPlanet の オブジェクトリファレンス</a> で確認することが可能です。 (
> で確認することが可能です。 (リファレンスでは、出力パラメータは引数の前に「out」というキーワードを付けて区別されています)。>リファレンスでは、出力パラメータは引数の前に「out」というキーワードを付けて区別されています)。 関数を呼び出すとき、こういっ
> 関数を呼び出すとき、こういった出力パラメータには、空のオブジェクトを渡す必要があり、 呼び出された関数は、渡されたオブジェクトの>た出力パラメータには、空のオブジェクトを渡す必要があり、 呼び出された関数は、渡されたオブジェクトの <code>value</
> <code>value</code> プロパティに必要な値を設定して返します。>code> プロパティに必要な値を設定して返します。
194    </p>
195    <p>206    </p>
207    <p>
196      <code>getCellAt()</code> 関数の 3 つの出力パラメータには、「{{wiki.template208      <code>getCellAt()</code> 関数の 3 つの出力パラメータには、「{{ 原語併記("行", "
>('原語併記'[ "行", "row" ])}}」と「{{wiki.template('原語併記', [ "列", "colu>row") }}」と「{{ 原語併記("列", "column") }}」および「{{ 原語併記("子の種類", "part") 
>mn" ])}}」および「{{wiki.template('原語併記', [ "子の種類", "part" ])}}」が設定されて>}}」が設定されて戻ります。 この例を実行した場合は、<code>mousemove</code> イベントのイベント座標を引数と
>戻ります。 この例を実行した場合は、<code>mousemove</code> イベントのイベント座標を引数として渡すため、 <>して渡すため、 <code>row</code> 引数の値には、マウスが重なっている行のインデックスが 設定されることになります。
>code>row</code> 引数の値には、マウスが重なっている行のインデックスが 設定されることになります。 なお、指定の座標> なお、指定の座標が行とは重なっていない場合には、値として -1 が設定されます。 また、<code>column</code> 
>が行とは重なっていない場合には、値として -1 が設定されます。 また、<code>column</code> 引数には、座標が指>引数には、座標が指す列の情報として、 Mozilla 1.8 (<a href="ja/Firefox_1.5">Firefox 
>す列の情報として、 Mozilla 1.8 (<a href="ja/Firefox_1.5">Firefox 1.5</a>) >1.5</a>) 以降の場合は、対応する列オブジェクト (TreeColumn) が設定されます。 それより古いバージョンの場合は
>以降の場合は、対応する列オブジェクト (TreeColumn) が設定されます。 それより古いバージョンの場合は、ツリーの列の識別>、ツリーの列の識別は、列に設定された id の文字列で行っていましたが、 新しいバージョンからは、個々の列に対応した列オブジェクト
>は、列に設定された id の文字列で行っていましたが、 新しいバージョンからは、個々の列に対応した列オブジェクトが存在しており、こ>が存在しており、ここから列のデータを取得することが可能になっています。
>こから列のデータを取得することが可能になっています。 
n208      <code>getCellAt()</code> の最後のパラメータは子の種類、つまり指定した座標はセルのどの部分にあn220      <code>getCellAt()</code> の最後のパラメータは子の種類、つまり指定した座標はセルのどの部分にあ
>たるかを示す文字列が設定されます。 前の例を実行してマウスをいろいろ動かすと、場所によってラベルが「text」か「cell」に変わ>たるかを示す文字列が設定されます。 前の例を実行してマウスをいろいろ動かすと、場所によってラベルが「text」か「cell」に変わ
>ることが確認できるはずです。 ここに設定された値が「text」の場合は、その領域はテキストの描画領域であることを、 「cell」の>ることが確認できるはずです。 ここに設定された値が「text」の場合は、その領域はテキストの描画領域であることを、 「cell」の
>場合は、テキストの周辺部、 例えば通常は行の開閉に使う{{wiki.template('訳語', [ "ツイスティ", "twis>場合は、テキストの周辺部、 例えば通常は行の開閉に使う{{ 訳語("ツイスティ", "twisty") }}が描かれる左側の余白な
>ty" ])}}が描かれる左側の余白などであることを示しています。 ただし、そこにツイスティがある場合には、値として 「twist>どであることを示しています。 ただし、そこにツイスティがある場合には、値として 「twisty」が設定されます。 これは利用者がツ
>y」が設定されます。 これは利用者がツイスティをクリックしたか、行の他の部分をクリックしたかを判別したいときに使用すると便利です。>イスティをクリックしたか、行の他の部分をクリックしたかを判別したいときに使用すると便利です。 実際、これは利用者がツイスティをクリ
> 実際、これは利用者がツイスティをクリックしたときの内部コードでも使用されています。 また、値として「image」が設定される場合>ックしたときの内部コードでも使用されています。 また、値として「image」が設定される場合は、座標がセル内に置かれた画像にあたる
>は、座標がセル内に置かれた画像にあたることを示しています。 なお、実際のアプリケーション開発では、たいていの場合は、座標が指す点が>ことを示しています。 なお、実際のアプリケーション開発では、たいていの場合は、座標が指す点がセルのどの部分にあたるかまでを気にする
>セルのどの部分にあたるかまでを気にする必要はなく、 単に、座標が指す点が、どの行のどの列に該当するかのみが分かれば十分である場合が>必要はなく、 単に、座標が指す点が、どの行のどの列に該当するかのみが分かれば十分である場合がほとんどです。
>ほとんどです。 
n219      <code>row</code>、<code>column</code>、<code>part</code> の各引数n231      <code>row</code>、<code>column</code>、<code>part</code> の各引数
>は、 <code>getCellAt()</code> 関数で返ってくる値と同様のものを指定します。 ここでも、<code>col>は、 <code>getCellAt()</code> 関数で返ってくる値と同様のものを指定します。 ここでも、<code>col
>umn</code> に設定する値は、動作する Mozilla のバージョンに応じて、文字列と列オブジェクトの適切な方を使用する必>umn</code> に設定する値は、動作する Mozilla のバージョンに応じて、文字列と列オブジェクトの適切な方を使用する必
>要があります。 また part 引数でセル領域の種類を指定することで、{{wiki.template('原語併記', [ "テキス>要があります。 また part 引数でセル領域の種類を指定することで、{{ 原語併記("テキスト", "text") }}、{{ 
>ト", "text" ])}}、{{wiki.template('原語併記', [ "セル全体", "cell" ])}}、 {{>原語併記("セル全体", "cell") }}、 {{ 原語併記("ツイスティ", "twisty"}}、セル内の{{ 原語併
>wiki.template('原語併記', [ "ツイスティ", "twisty" ])}}、セル内の{{wiki.templat>("画像", "image") }} のいずれかの領域の座標を取得することが可能です。 領域の種類の指定には、<code>get
>e('原語併記', [ "画像", "image" ])}} のいずれかの領域の座標を取得することが可能です。 領域の種類の指定に>CellAt()</code> 関数から返される値と同じものを使用します。 <code>getCoordsForCellItem(
>は、<code>getCellAt()</code> 関数から返される値と同じものを使用します。 <code>getCoordsF>)</code> 関数は、取得した x, y 座標の値、および幅と高さの値を、すべて出力パラメータ返します。
>orCellItem()</code> 関数は、取得した x, y 座標の値、および幅と高さの値を、すべて出力パラメータとして返し 
>ます。 
n225      {{template.PreviousNext("XUL Tutorial:Tree View Details", "n237      {{ PreviousNext("XUL Tutorial:Tree View Details", "XUL Tuto
>XUL Tutorial:Introduction to RDF")}}>rial:Introduction to RDF") }}
t230    <div class="noinclude"></div>{{ wiki.languages( { "en": "en/Xt242    <div class="noinclude"></div>{{ languages( { "en": "en/XUL_Tu
>UL_Tutorial/Tree_Box_Objects", "es": "es/Tutorial_de_XUL/Objeto_d>torial/Tree_Box_Objects", "es": "es/Tutorial_de_XUL/Objeto_de_caj
>e_caja_de_\u00e1rbol", "fr": "fr/Tutoriel_XUL/Les_objets_bo\u00ee>a_de_\u00e1rbol", "fr": "fr/Tutoriel_XUL/Les_objets_bo\u00eetes_d
>tes_des_arbres", "pl": "pl/Kurs_XUL/Obiekty_pude\u0142kowe_drzewa>es_arbres", "pl": "pl/Kurs_XUL/Obiekty_pude\u0142kowe_drzewa" } )
>" } ) }}> }}

前に戻る