ListModelControl (クラス)
public abstract ListModelControl
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.GUI.CONTROL-LOGICAL.
直接継承しているサブクラス: ListBox, BaseComboBox

ListModelControl は、ListBoxComboBoxDropdownList などのすべてのリストコントロールの抽象スーパークラスです。

説明

このクラスでは、ListModel を使用するすべてのコントロールの共通の機能を定義します。データ モデルとの対話の多くを処理します。

オーバーライド

サブクラスでは、値とアイテム状態を管理するために以下のメソッドをオーバーライドする必要があります。サブクラスでは ListModelControl.rebuild-from-data-model をオーバーライドして、そのスーパークラスの rebuild-from-data-model メソッドを呼び出す前に更新をオフにすることができます。このようにしてメソッド呼び出しの後に同時に更新することにより効率がよくなります。

コンストラクタ
default:ListModelControl を初期化します。
コンストラクタ public {ListModelControl.default
data-model:ListModel = {DefaultListModel},
list-item-creation-proc:{proc-type {val:any}:ListItem} = ListModelControl.default-list-item-creation-proc
}

プロパティ
data-model:このコントロールを支持する ListModel
アクセサ public ListModelControl.data-model:ListModel
セッター public ListModelControl.data-model:ListModel
for-loop-count:このコントロール内のアイテム数。
アクセサ public inline ListModelControl.for-loop-count:int
items:ListModelControl における ListItem の配列。
フィールド protected ListModelControl.items:{Array-of ListItem}
list-item-creation-proc:値から ListItem を作成する必要がある場合に呼び出されるプロシージャ。
フィールド public ListModelControl.list-item-creation-proc:{proc-type {val:any}:ListItem} =ListModelControl.default-list-item-creation-proc
list-item-selected-background:アイテムが選択されたときに、このコントロールの ListItem に設定される背景。
フィールド public ListModelControl.list-item-selected-background:#FillPattern
list-item-selected-foreground:アイテムが選択されたときに、このコントロールの ListItem に設定される前景。
フィールド public ListModelControl.list-item-selected-foreground:#FillPattern
list-items:コントロール内のすべてのアイテムの反復子を返します。
アクセサ public ListModelControl.list-items:{Iterator-of ListItem}
size:このコントロール内のアイテム数を返します。
アクセサ public ListModelControl.size:int

クラス プロシージャ
default-list-item-creation-proc:値から ListItem を作成するのに使用される既定のプロシージャです。
public {ListModelControl.default-list-item-creation-proc
val:any
}:ListItem

メソッド
append:このコントロールの最後に値または ListItem を追加します。
public {ListModelControl.append item:any}:void
clear-items:このコントロール内のすべてのアイテムを削除します。
public {ListModelControl.clear-items}:void
find:指定された値をこのコントロール内の ListItem の値から検索します。
public {ListModelControl.find
e:any,
equality-proc:#{proc-type {any, any}:bool} = null,
search-direction:SearchDirection = SearchDirection.forward,
starting-index:int = 0
}:int
get:ListModelControl.items 内の設定されたインデックスの ListItem を返します。
public {ListModelControl.get index:int}:ListItem
insert:このコントロールの指定された位置に値または ListItem を挿入します。
public {ListModelControl.insert item:any, index:int}:void
notify-interval-added:新しい値が追加されたときにデータ モデルによって呼び出されるメソッド。
public {ListModelControl.notify-interval-added
lower:int,
upper:int,
item:#ListItem = null
}:void
notify-interval-changed:値が変更されたときにデータ モデルによって呼び出されるメソッド。
public {ListModelControl.notify-interval-changed
lower:int,
upper:int,
item:#ListItem = null
}:void
notify-interval-removed:値が削除されたときにデータ モデルによって呼び出されるメソッド。
public {ListModelControl.notify-interval-removed
lower:int,
upper:int
}:void
notify-item-selected:選択状態が変化したことを通知するために ListItem によって呼び出されます。
public abstract {ListModelControl.notify-item-selected
item:ListItem
}:void
rebuild-from-data-model:データ モデルの値で ListItem を再作成します。
public {ListModelControl.rebuild-from-data-model}:void
remove:このコントロールから 1 つ以上の要素を削除します。
public {ListModelControl.remove
index:int,
length:int = 1,
error-if-missing?:bool = true
}:void
set:指定されたインデックスのアイテムを値または ListItem で置き換えます。
public {ListModelControl.set index:int, item:any}:void
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (コンストラクタ)
public {ListModelControl.default
data-model:ListModel = {DefaultListModel},
list-item-creation-proc:{proc-type {val:any}:ListItem} = ListModelControl.default-list-item-creation-proc
}

ListModelControl を初期化します。

data-model: ListModelControl.data-model を参照してください。
list-item-creation-proc: ListModelControl.list-item-creation-proc を参照してください。



プロパティ詳細
data-model (アクセサ)
アクセサ public ListModelControl.data-model:ListModel
セッター public ListModelControl.data-model:ListModel

このコントロールを支持する ListModel

説明

このプロパティが設定されると、コントロール内のすべてのアイテムが新しいデータ モデルで置き換えられます。


for-loop-count (アクセサ)
アクセサ public inline ListModelControl.for-loop-count:int

このコントロール内のアイテム数。

説明

これは、ListModelControl.items のサイズを返します。
ListModelControl.size は、ListModelControl.data-model のサイズを返します。


items (フィールド)
protected ListModelControl.items:{Array-of ListItem}

ListModelControl における ListItem の配列。

説明

このフィールドは ListModelControl のコンストラクタで初期化され、通常はサブクラスで変更する必要はありません。

一般に、ListItem へのアクセスは ListModelControl.list-items アクセッサを介して行われます。


list-item-creation-proc (フィールド)
public ListModelControl.list-item-creation-proc:{proc-type {val:any}:ListItem} =ListModelControl.default-list-item-creation-proc

値から ListItem を作成する必要がある場合に呼び出されるプロシージャ。

プログラミング注意事項

通常は、カスタム ラベルを持つ ListValueItem または ListSeparator が返されますが、ListItem のカスタム サブクラスが返される場合があります。

それぞれの色で出力される色のリストを含む ListBox の作成プロシージャを以下に示します。
{DropdownList
    "red", "blue", "green",
    list-item-creation-proc =
        {proc {val:any}:ListItem
            || make the value into something that can be displayed graphically
            let d:Graphic = val asa Graphic
            || Set the color to the value passed in as a texture.
            || this will fail if you try to insert something that isn't a
            || recognized color or texture name.
            set d.color = val asa FillPattern
            || return it.
            {return {ListValueItem d}}
        },
    value="red"
}


list-item-selected-background (フィールド)
public ListModelControl.list-item-selected-background:#FillPattern

アイテムが選択されたときに、このコントロールの ListItem に設定される背景。



list-item-selected-foreground (フィールド)
public ListModelControl.list-item-selected-foreground:#FillPattern

アイテムが選択されたときに、このコントロールの ListItem に設定される前景。



list-items (アクセサ)
アクセサ public ListModelControl.list-items:{Iterator-of ListItem}

コントロール内のすべてのアイテムの反復子を返します。



size (アクセサ)
アクセサ public ListModelControl.size:int

このコントロール内のアイテム数を返します。

説明

この関数は、data-model.size を呼び出すだけです。




クラス プロシージャ詳細
default-list-item-creation-proc (クラスプロシージャ)
public {ListModelControl.default-list-item-creation-proc
val:any
}:ListItem

値から ListItem を作成するのに使用される既定のプロシージャです。

説明

このプロシージャは、"-" を ListSeparator に変え、それ以外を表示可能な形に設定された値の ListItem に変えます。
以下のようになります。:
{proc {val:any}:ListItem
    {if val == "-" then
        {return {ListSeparator}}
    else
        {return {ListValueItem (val asa Visual)}}
    }
}
導入: バージョン 6.0



メソッド詳細
append (メソッド)
public {ListModelControl.append item:any}:void

このコントロールの最後に値または ListItem を追加します。

説明

このメソッドが処理するのは次の 2 つの場合です。


clear-items (メソッド)
public {ListModelControl.clear-items}:void

このコントロール内のすべてのアイテムを削除します。

説明

ListModel.clear を呼び出します。


find (メソッド)
public {ListModelControl.find
e:any,
equality-proc:#{proc-type {any, any}:bool} = null,
search-direction:SearchDirection = SearchDirection.forward,
starting-index:int = 0
}:int

指定された値をこのコントロール内の ListItem の値から検索します。

説明

指定された引数を使用して ListModel.find を呼び出します。


get (メソッド)
public {ListModelControl.get index:int}:ListItem

ListModelControl.items 内の設定されたインデックスの ListItem を返します。

説明

引数の詳細については、Sequence-of.get を参照してください。


insert (メソッド)
public {ListModelControl.insert item:any, index:int}:void

このコントロールの指定された位置に値または ListItem を挿入します。

説明

このメソッドの動作は、ListModelControl.append と似ています。


notify-interval-added (メソッド)
public {ListModelControl.notify-interval-added
lower:int,
upper:int,
item:#ListItem = null
}:void

新しい値が追加されたときにデータ モデルによって呼び出されるメソッド。

説明

データ モデルは、ListItem にする必要がある新しい値がある場合にこのメソッドを呼び出します。このメソッドは ListItem を生成し、それを ListModelControl.items 配列に挿入します。通常は、ユーザー記述のコードでこのメソッドを呼び出さないでください。
lower: 追加されたアイテムの下限 (そのアイテムを含む)。
upper: 追加されたアイテムの上限 (そのアイテムを含む)。
item: これで指定した ListItem を使用し、list-item-creation-proc で自動的に生成されたものを使用しないことを意味します。このパラメータが指定された場合、その範囲に 1 つのアイテムだけを含める必要があります。このパラメータで関数を呼び出す必要はありません。ListModelControl.appendListModelControl.insert によって使用されます。

オーバーライド

一般に、ListItem が削除されたときに追加の保守を行なう場合に、このメソッドをオーバーライドする必要があります。ほとんどの場合、最初に super.notify-interval-added を呼び出し、独自の操作を実行する前に ListItem を生成して配列に挿入します。


notify-interval-changed (メソッド)
public {ListModelControl.notify-interval-changed
lower:int,
upper:int,
item:#ListItem = null
}:void

値が変更されたときにデータ モデルによって呼び出されるメソッド。

説明

データ モデルは、一部の値が変更されたときにこのメソッドを呼び出します。このメソッドは、新しい値から新しい ListItem を生成し、ListModelControl.items 配列を適切に変更します。通常は、ユーザー記述のコードでこのメソッドを呼び出さないでください。
lower: 変更されたアイテムの下限 (そのアイテムを含む)。
upper: 変更されたアイテムの上限 (そのアイテムを含む)。
item: 特定の ListItem を使用し、list-item-creation-proc で自動的に生成されたものを使用しないことを意味します。このパラメータが指定された場合は、その範囲に 1 つのアイテムだけを含める必要があります。このパラメータで関数を呼び出す必要はありません。ListModelControl.set によって使用されます。

オーバーライド

一般に、ListItem が置き換えられたされたときに追加の保守を行なう場合に、このメソッドをオーバーライドする必要があります。ほとんどの場合、古い ListItem の状態を破棄し、super.notify-interval-changed を呼び出して追加された新しい ListItem の状態を設定します。


notify-interval-removed (メソッド)
public {ListModelControl.notify-interval-removed
lower:int,
upper:int
}:void

値が削除されたときにデータ モデルによって呼び出されるメソッド。

説明

データ モデルは、一部の値が削除されたときにこのメソッドを呼び出します。このメソッドは値を ListModelControl.items 配列から削除します。値がすでに ListModel から削除されていることに注意してください。通常は、ユーザー記述のコードでこのメソッドを呼び出さないでください。
lower: 削除されたアイテムの下限 (そのアイテムを含む)。
upper: 削除されたアイテムの上限 (そのアイテムを含む)。

オーバーライド

一般に、ListItem が挿入されたときに追加の保守を行なう場合に、このメソッドをオーバーライドする必要があります。ほとんどの場合、最初に独自の破棄操作を行なうため ListItem へのアクセスが必要で、この操作の最後で super.notify-interval-removed を呼び出します。


notify-item-selected (メソッド)
public abstract {ListModelControl.notify-item-selected
item:ListItem
}:void

選択状態が変化したことを通知するために ListItem によって呼び出されます。

説明

ListItem.selected? を設定して実際に選択状態が変化するとこのメソッドが呼び出され、コントロールは内部の選択状態を更新してこれに一致させます。通常は、ユーザー記述のコードでこのメソッドを呼び出さないでください。


rebuild-from-data-model (メソッド)
public {ListModelControl.rebuild-from-data-model}:void

データ モデルの値で ListItem を再作成します。

説明

このクラスの実装では、現存するすべてのアイテムを削除して、データ モデル内の新しいアイテムをすべて追加するだけです。

オーバーライド

サブクラスでこのメソッドをオーバーライドして、super.rebuild-from-data-model を呼び出す前の更新をオフにして、後で同時に更新を行なうようにすると効率がよくなります。


remove (メソッド)
public {ListModelControl.remove
index:int,
length:int = 1,
error-if-missing?:bool = true
}:void

このコントロールから 1 つ以上の要素を削除します。

説明

指定された引数を使用して ListModel.remove を呼び出すだけです。


set (メソッド)
public {ListModelControl.set index:int, item:any}:void

指定されたインデックスのアイテムを値または ListItem で置き換えます。

説明

このメソッドの動作は、ListModelControl.append と似ています。