(クラス)
public abstract ListModel
ユーザー インターフェイス (UI) のないこのクラスは、ListBox などのコントロールで使用される、順序付けられた値のセットを格納します。
説明
このクラスのインスタンスは、
ListModelControl クラスのいずれかでデータ モデルとして使用できます。このようなコントロールの例には、
ListBox、
ComboBox および
DropdownList があります。
ListModel は、値のセットとその表示順序が含まれます。
ListModel に対する追加または削除が行われると、自動的にコントロールに表示されます。コントロール内の 1 つの値が選択されても、それを含む
ListModel には影響を与えません。各コントロールの
ListModel は 1 つだけですが、1 つの
ListModel を多くのコントロール (またはコントロールなし) で使用できます。
ListModel のメソッドとプロパティの多くは、
Sequence-of のメソッドとプロパティと同じようにデザインされています。たとえば、
set model[6] = "blue" などのサブスクリプト構文を使用し、特定のインデックスでアイテムを取得または設定できます。
接続されるコントロールと共に、
ListModel のようなデータ モデルは Model-View-Controller (MVC) 設計パターンの部分的な実装を構成します。
既知のサブクラス:
オーバーライド
フィールド public constant ListModel.controls-used-by:{
Array-of ListModelControl} ={new {Array-of ListModelControl}}
empty?: | モデルにアイテムがない場合は true、ある場合は false。 |
アクセサ public ListModel.empty?:
bool
アクセサ public abstract ListModel.size:
int
public | {ListModel.append item:any}:void |
append-quietly: | モデルにアイテムを追加し、source で指定されたコントロール以外のすべてのコントロールに新しいアイテムを追加して更新する必要があることを通知します。 |
public abstract | {ListModel.append-quietly}:void |
clear: | モデル内のすべてのアイテムを削除します。 |
public abstract | {ListModel.clear}:void |
public abstract | {ListModel.find e:any,equality-proc:#{proc-type {any, any}:bool} = null,search-direction:SearchDirection = SearchDirection.forward,starting-index:int = {if search-direction ==
SearchDirection.forward
then
0
else
self.size - 1
} }:int |
public | {ListModel.fire-interval-added}:void |
public | {ListModel.fire-interval-changed}:void |
public | {ListModel.fire-interval-removed}:void |
get: | 指定されたインデックスのアイテムを返します。 |
public abstract | {ListModel.get index:int}:any |
insert: | モデルで指定されたインデックスにアイテムを挿入します。 |
public | {ListModel.insert item:any, index:int}:void |
insert-quietly: | モデルにアイテムを挿入し、source で指定されたコントロール以外のすべてのコントロールに新しいアイテムを挿入して更新する必要があることを通知します。 |
public abstract | {ListModel.insert-quietly}:void |
remove: | 指定されたインデックスのアイテムを削除します。 |
public abstract | {ListModel.remove index:int,length:int = 1,error-if-missing?:bool = true }:void |
set: | 指定されたインデックスのアイテムを新しいアイテムに設定します。 |
set-quietly: | 与えられたインデックスのアイテムを新しいアイテムに設定し、source で指定されたコントロール以外のすべてのコントロールに新しいアイテムを設定して更新する必要があることを通知します。 |
public abstract | {ListModel.set-quietly}:void |
public abstract | {ListModel.to-Iterator}:{Iterator-of any} |
(フィールド)
public constant ListModel.controls-used-by:{
Array-of ListModelControl} ={new {Array-of ListModelControl}}
この ListModel をそれぞれのデータ モデルとして使用するコントロール。
(アクセサ)
アクセサ public ListModel.empty?:
bool モデルにアイテムがない場合は true、ある場合は false。
(アクセサ)
アクセサ public abstract ListModel.size:
int
(メソッド)
public | {ListModel.append item:any}:void |
(メソッド)
public abstract | {ListModel.append-quietly}:void |
モデルにアイテムを追加し、source で指定されたコントロール以外のすべてのコントロールに新しいアイテムを追加して更新する必要があることを通知します。
説明
(メソッド)
public abstract | {ListModel.clear}:void |
(メソッド)
public abstract | {ListModel.find e:any,equality-proc:#{proc-type {any, any}:bool} = null,search-direction:SearchDirection = SearchDirection.forward,starting-index:int = {if search-direction ==
SearchDirection.forward
then
0
else
self.size - 1
} }:int |
要素のシーケンスを検索します。
e: 検索する要素。このパラメータは、self の要素と同じデータ型を持つ必要があります。
equality-proc: 要素を比較するプロシージャ。既定では、このメソッドは等価比較演算子 (==) を使用するプロシージャを使用します。既定の動作をオーバーライドする場合は、このパラメータにプロシージャを代入します。プロシージャは、self の要素と同じデータ型の 2 つの引数を受け取る必要があります。プロシージャは、要素が等しいかどうかを示す bool 値を返す必要があります。equality-proc が true を返す場合、2 つの要素が等しいことを意味します。equality-proc が falseを返す場合、2 つの要素は等しくありません。
search-direction: 検索の方向。
SearchDirection 列挙型の値を指定します。左から右に検索するには、
SearchDirection.forward を指定します。右から左に検索するには、
SearchDirection.backward を指定します。既定では、このメソッドは左から右に検索します。既定の動作を変更する場合は、このパラメータを指定します。
starting-index: 検索を開始する要素のインデックスを示す int。既定では、このメソッドはシーケンスの先頭の要素 (インデックス 0 の要素) から検索します。
既定の動作を変更する場合は、このパラメータを指定します。starting-index がシーケンスの有効なインデックスの範囲外である場合、このメソッドはエラーをスローします。
戻り値
最初に一致した要素のインデックスを示す int。一致する要素がなかった場合は、-1 を返します。
説明
self を検索し、e に等しい要素のうち最初に現れるものを見つけます。最初に一致した要素のインデックスを返します。一致する要素がなかった場合は、-1 を返します。
(メソッド)
public | {ListModel.fire-interval-added}:void |
アイテムがこのモデルに追加されたことをコントロールに通知します。
プログラミング注意事項
lower: 追加されるアイテムの最小インデックス (そのアイテムも含む)。
upper: 追加されるアイテムの最大インデックス (そのアイテムも含む)。
except-for: モデルに対する変更を最初に引き起こしたコントロール。このコントロールには変更が通知されません。モデルのメソッドが、コントロールからではなくアプリケーション コードで直接呼び出された場合、この引数を null または指定なしにすることができます。
(メソッド)
public | {ListModel.fire-interval-changed}:void |
アイテムがこのモデルから削除されたことをコントロールに通知します。
プログラミング注意事項
ListModel.set のようなメソッドが呼び出されるときに、このモデルによって呼び出されます。コントロールは、ここで指定された新しい値が反映されるように上限と下限の間の各
ListItem を変更して、これに応答する必要があります。
lower: 変更されるアイテムの最小インデックス (そのアイテムも含む)。
upper: 変更されるアイテムの最大インデックス (そのアイテムも含む)。
except-for: モデルに対する変更を最初に引き起こしたコントロール。このコントロールには変更が通知されません。モデルのメソッドが、コントロールからではなくアプリケーション コードで直接呼び出された場合、この引数を null または指定なしにすることができます。
(メソッド)
public | {ListModel.fire-interval-removed}:void |
アイテムがこのモデルから削除されたことをコントロールに通知します。
プログラミング注意事項
lower: 削除されるアイテムの最小インデックス (そのアイテムも含む)。
upper: 削除されるアイテムの最大インデックス (そのアイテムも含む)。
except-for: モデルに対する変更を最初に引き起こしたコントロール。このコントロールには変更が通知されません。モデルのメソッドが、コントロールからではなくアプリケーション コードで直接呼び出された場合、この引数を null または指定なしにすることができます。
(メソッド)
public abstract | {ListModel.get index:int}:any |
指定されたインデックスのアイテムを返します。
index: 対象アイテムの位置。
(メソッド)
public | {ListModel.insert item:any, index:int}:void |
モデルで指定されたインデックスにアイテムを挿入します。
説明
(メソッド)
public abstract | {ListModel.insert-quietly}:void |
モデルにアイテムを挿入し、source で指定されたコントロール以外のすべてのコントロールに新しいアイテムを挿入して更新する必要があることを通知します。
(メソッド)
コントロールがこのモデルをデータ モデルとして使用していることを、そのモデルに通知します。
プログラミング注意事項
(メソッド)
public abstract | {ListModel.remove index:int,length:int = 1,error-if-missing?:bool = true }:void |
(メソッド)
指定されたインデックスのアイテムを新しいアイテムに設定します。
説明
(メソッド)
public abstract | {ListModel.set-quietly}:void |
与えられたインデックスのアイテムを新しいアイテムに設定し、source で指定されたコントロール以外のすべてのコントロールに新しいアイテムを設定して更新する必要があることを通知します。
(メソッド)
public abstract | {ListModel.to-Iterator}:{Iterator-of any} |
モデル内のすべてのアイテムを含む Iterator を返します。
(メソッド)
コントロールがこのモデルをデータ モデルとして使用しなくなったことを、そのモデルに通知します。
プログラミング注意事項