RecordForm (クラス)
public RecordForm {inherits Dialog, RecordSetDisplay, DataBindingContext}
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.GUI.CONTROL-BASE.

ページ化可能なフォームで、1 度に 1 レコードを表示するための RecordSetDisplay

説明

RecordFormDataBindingContext であり、データバインド アーキテクチャを使って、フォームに含まれているビジュアルを現在表示されているレコードにバインドします。
含まれているビジュアルを現在のレコード データにバインドするには、バインド先になる RecordField の名前の data-selector を持つビジュアルに、DataBinding を追加します。詳細は bind を参照してください。
表示するレコードがない場合、すべてのバインドは既定値を表示し、フォーム全体は disabled になる点に注意してください。
フォームの左下隅に標準ナビゲーション パネルを表示するには、RecordForm.display-navigation-panel?true に設定します。(このパネルは、非表示の VBox 内のフォームに直接追加されるすべての内容のに挿入されます。)
RecordForm が提供するナビゲーション コマンドやメソッドに直接コントロールをバインドして、カスタムのナビゲーション パネルを作成することも可能です。このようなパネルは RecordForm のグラフィック階層に直接追加されるか、他の場所に配置されます。

注意事項

このオブジェクトは、"RecordForm"のスタイル ルールを記述することによってスタイル化されます。

コンストラクタ
default:このオブジェクトを作成します。
コンストラクタ public {RecordForm.default
use-look-and-feel?:bool = true,
record-source:#RecordSet = null,
sort:#RecordSort = null,
filter:#RecordFilter = null,
key-spec:any = null,
...
}

プロパティ
display-navigation-panel?:ナビゲーション パネルを表示するかどうかを指定します。
ローカル オプション public RecordForm.display-navigation-panel?:bool
halign:Frame 内の子オブジェクトを水平方向で配置する方法を指定します。
ローカル オプション public RecordForm.halign:any
hstretch?:Frame が、固定の子オブジェクトを強制的に伸張するかどうかを制御します。
ローカル オプション public RecordForm.hstretch?:bool
style-element:スタイリングの目的のための、この Visual の "要素" や "型" です。
アクセサ public RecordForm.style-element:String
valign:Frame の垂直方向の起点をその子オブジェクトからどのように計算するかを指定します。
ローカル オプション public RecordForm.valign:any
vstretch?:Frame が固定の子オブジェクトの周りに垂直方向のパディングを配置するかどうかを制御します。
ローカル オプション public RecordForm.vstretch?:bool
プロパティ 継承 Dialog: _controls, controls, look-and-feel, open?, options-present-here, return-state, use-look-and-feel?
プロパティ 継承 RecordSetDisplay: current-index, current-record, filter, key-proc, key-spec, record-source, records, sort
プロパティ 継承 DataBindingContext: pending-update?, registered-bindings
プロパティ 継承 StandardActiveTraversalContainer: _current-active, current-active, repeat-traversal?, traversors
プロパティ 継承 CommandBinding: bound-command, bound-command-impl
プロパティ 継承 Visual: _style-element, cursor, data-source, dragee, font-size, graphical-parent, has-key-focus?, input-method-enabled?, input-method-keyboard-mode, name, options, style-class, style-manager, style-options, test-child?, test-description, test-name, test-parent?, test-type-name, test-visible?, tooltip, user-data
プロパティ 継承 CommandContext: commands
プロパティ 継承 StandardActiveTraversor: focus-object
プロパティ 継承 Frame: clonable-class?, halign-spec, hstretch?-spec, valign-spec, vstretch?-spec
プロパティ 継承 ActiveTraversor: _active-traversal-container, active-traversal-container, mnemonic, tab-index, takes-focus?, valid?, validation-result
プロパティ 継承 BaseFrame: child, completely-clonable-children?, graphical-children, ordered-children, reverse-ordered-children, width-first?
プロパティ 継承 DataBindingTarget: data-binding-context, data-bindings
プロパティ 継承 EventTarget: event-handlers
プロパティ 継承 OptionListInterface: option-register-proc, registered-option-keys
プロパティ 継承 GetBoundsBox: layout-locally-valid?, layout-valid?
プロパティ 継承 Box: clip-child-shadows?
プロパティ 継承 Graphic: avoid-page-break?, background, border-color, border-spec, border-style, border-width, cell-border-spec, cell-border-width, cell-margin, discrete-select-in-range?, display-context, enabled?, graphic-selectable, height, horigin, is-paginating?, layout, margin, opaque-to-events?, option-parent, outside-margin, pagination-state, parent, possibly-displayed?, selection-context, shadow-color, shadow-spec, visible?, visual-parent, vorigin, width

メソッド
add:Frame に子アイテムを追加します。
public {RecordForm.add g:any, ...}:#Visual
clear:ボックスのグラフィカルな子を削除します。
public {RecordForm.clear}:void
create-navigation-panel:ナビゲーション パネルを作成します。
protected {RecordForm.create-navigation-panel}:Graphic
format:このコンテキストのデータをバインド プロパティに適した値に変換します (可能な場合)。
public {RecordForm.format value:any, binding:DataBinding}:any
get-data:data-selector に関連付けられたデータを取得します。
public {RecordForm.get-data data-selector:any}:(data:any, valid?:bool)
note-current-record-changed:current-index への変更および/または current レコードの識別情報の変更を示すために呼び出されます。
protected {RecordForm.note-current-record-changed
index-change?:bool,
identity-change?:bool
}:void
note-record-set-event:RecordSetEventRecordSetDisplay.records プロパティによって処理されたことをこのレコード グリッドに通知します。
public {RecordForm.note-record-set-event ev:RecordSetEvent}:void
parse:バインド プロパティの値をこの DataBindingContext に適した値に変換します (可能な場合)。
public {RecordForm.parse value:any, binding:DataBinding}:any
register-binding:このコンテキストで DataBinding を登録します。
public {RecordForm.register-binding binding:DataBinding}:void
update-internal:登録されている 1 つまたは複数のバインドのターゲット プロパティからコンテキストを更新します。
protected {RecordForm.update-internal}:#DataBindingValidationFailure
validate-internal:登録されている 1 つまたは複数のバインドのターゲット プロパティを検証します。
protected {RecordForm.validate-internal}:#DataBindingValidationFailure
メソッド 継承 Dialog: close, get-by-name, handle-look-and-feel-change, handle-observer-message, option-lookup-here, option-propagate-notify, register-control, reset, show, show-at-xy, unregister-control
メソッド 継承 RecordSetDisplay: create-command, on-current-record-change-request, reload, request-current-record-change
メソッド 継承 DataBindingContext: refresh, report, unregister-binding, update, validate
メソッド 継承 StandardActiveTraversalContainer: add-internal, become-active, become-active-from-traversal, dispatch-mnemonic, get-sorted-traversors, internal-remove-child, on-key-press, react-to-child-change, register-active-traversor, traverse, traverse-from-visual, unregister-active-traversor
メソッド 継承 ControlContainer: commit
メソッド 継承 Visual: add-from-init-args, animate, change-cursor, clonable-appearance?, clone-appearance, get-focus-manager, get-layout-context, get-test-parent, get-test-property, get-view, maybe-fire-attach-event, maybe-fire-detach-event, non-keyword-init-arg, note-caret-position, on-drag-leave, on-pointer-leave, pop-cursor, prepare-test-object, prepare-test-parent, push-cursor, quantize-width, refresh-style-options, release-key-focus, scroll-to-include, test-record, test-run, transform-from-display-coordinates, transform-from-graphical-root-coordinates, transform-to-display-coordinates, transform-to-graphical-root-coordinates
メソッド 継承 CommandContext: add-command, command-enabled?, command-supported?, do-command, get-command, request-update-commands
メソッド 継承 ActiveTraversalContainer: insist-active
メソッド 継承 StandardActiveTraversor: fire-event-at-container, handle-mnemonic, on-focus-in
メソッド 継承 Frame: clone-appearance-helper, remove-child
メソッド 継承 GraphicOptions: any-to-Distance, get-display-context
メソッド 継承 GuiEventTarget: handle-delegate-event, handle-event, on-action, on-cancel-mode, on-command-changed, on-commit, on-composition-change-event, on-composition-result-event, on-context-menu-event, on-current-record-changed, on-destroy-notify, on-destroy-requested, on-drag-over, on-drag-pointer, on-drag-started, on-drop, on-end-composition-event, on-focus-event, on-focus-out, on-gesture, on-gesture-begin, on-gesture-end, on-gesture-magnify, on-gesture-pan, on-gesture-rotate, on-gesture-swipe, on-gesture-tap, on-gesture-touch, on-grab-release, on-gui-event, on-input-method-event, on-key-event, on-pointer-button, on-pointer-crossing, on-pointer-event, on-pointer-motion, on-pointer-press, on-pointer-release, on-pointer-scroll, on-raw-key-event, on-raw-key-press, on-raw-key-release, on-reset, on-selectable-added, on-selectable-removed, on-selection-changed, on-selection-context-activated, on-selection-context-deactivated, on-selection-event, on-start-composition-event, on-start-event, on-stop-event, on-view-activate, on-view-deactivate, on-window-close, remove-event-handlers-for-event-class
メソッド 継承 Observer: observe, stop-observing
メソッド 継承 ActiveTraversor: mark-invalid, mark-valid, request-key-focus
メソッド 継承 BaseFrame: after-reposition, allocate-layout-object, attempt-revalidate-layout, before-reposition, compute-child-bounds, compute-parent-elastic, constrain-height, constrain-width, draw, end-pagination, get-height-preference, get-text, get-width-preference, install-child-bounds, note-attached, note-detaching, notify-option-children, paginate, pick-child, propagate-request-layout, register-options, set-size
メソッド 継承 DataBindingTarget: add-data-binding, get-data-binding, refresh-data-binding, remove-data-binding, unset-property, update-data-binding, validate-data-binding
メソッド 継承 EventTarget: accepts-event-class?, add-event-handler, event-handler-present?, remove-event-handler, verify-event
メソッド 継承 BasicBox: contains-point?, find-graphic-at, handle-crossing, on-pointer-envelope-event, pointer-enter-occurred, pointer-leave-occurred
メソッド 継承 OptionListInterface: add-option, add-style-option, change-option-parent-notify, clone-options, get-option, get-option-by-name, keyword-init-arg, local-add-notify, local-remove-notify, name-to-option-key, new-option-item, option-change-notify, option-lookup, option-set?, propagate-option-change, remove-option, remove-style-option, remove-styles, set-option-by-name, set-style-option-by-name, unset-option-by-name, unset-style-option-by-name
メソッド 継承 BasicEventTarget: enqueue-event
メソッド 継承 GetBoundsBox: get-bounds, get-elastic-bounds-into, get-nonparent-bounds-into, request-layout, validate-layout
メソッド 継承 InitRestArgParser: process-rest-args
メソッド 継承 Box: compare-children, find-test-children, get-delimited-child-text-selection, get-gui-path-to-child, get-range-as-selected-text, get-visible-rect-in-root-into, graphical-child-visible-at, make-gui-mark, search-next-here, search-prev-here
メソッド 継承 Graphic: create-pagination-state, detach, draw-range-as-selected, draw-shadow, find-ancestor, find-graphical-ancestor, fire-inferior-crossing-event, get-graphical-root, get-gui-path, get-origin-in-graphical-ancestor, get-origin-in-root, get-pagination-state, get-top-left-in-ancestor, get-visible-bounds-into, on-drag-enter, on-inspection, on-pointer-enter, option-changed, paint-with-decorations, replace-with, request-draw, request-draw-rect, request-pointer-trace, search-next, search-prev, set-layout, start-pagination, xy-offset-to
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (コンストラクタ)
public {RecordForm.default
use-look-and-feel?:bool = true,
record-source:#RecordSet = null,
sort:#RecordSort = null,
filter:#RecordFilter = null,
key-spec:any = null,
...
}

このオブジェクトを作成します。

use-look-and-feel?: use-look-and-feel? を参照してください。
record-source: 表示される RecordSet
sort: sort を参照してください。
filter: filter を参照してください。
key-spec: key-spec を参照してください。
...: Dialog のコンストラクタに渡される残余引数。



プロパティ詳細
display-navigation-panel? (ローカル オプション)
public RecordForm.display-navigation-panel?:bool

ナビゲーション パネルを表示するかどうかを指定します。

説明

ナビゲーション パネルには通常、current-record、表示レコード数およびレコードの合計数に関する情報が含まれます。また、current-record を移動するためのコントロールが含まれる場合もあります。


halign (ローカル オプション)
public RecordForm.halign:any

Frame 内の子オブジェクトを水平方向で配置する方法を指定します。

説明

Frame は、その内側起点を基準にして子を水平に配置します。Frame の内側起点は、子の外側起点によって決定されます。このとき、Frame.horigin オプションと Frame.vorigin オプションの設定が Frame.halign および Frame.valign と連携し、最終的な配置が決まります。halign の有効な値は、以下のとおりです。

次の例は、パディングが必要な Frame とパディングが必要でない halign で、halign プロパティに異なる値を指定した場合の動作を示しています。


{VBox
    spacing=3pt,
    halign="origin",
    {Frame background="red", {RectangleGraphic height=18pt, width=24pt}},
    {Frame
        background="red",
        halign="right",
        {RectangleGraphic height=18pt, width=24pt}},
    {Frame
        background="red",
        width=2in,
        halign="left",
        {RectangleGraphic height=18pt, width=24pt}},
    {Frame
        background="red",
        width=2in,
        halign="center",
        {RectangleGraphic height=18pt, width=24pt}},
    {Frame
        background="red",
        width=2in,
        halign="right",
        {RectangleGraphic height=18pt, width=24pt}},
    {Frame
        background="red",
        width=2in,
        halign="origin",
        {RectangleGraphic height=18pt, width=24pt}},
    {Frame
        background="red",
        width=2in,
        halign="origin",
        {RectangleGraphic height=18pt, width=24pt, horigin="center"}}}


hstretch? (ローカル オプション)
public RecordForm.hstretch?:bool

Frame が、固定の子オブジェクトを強制的に伸張するかどうかを制御します。

説明

このオプションの既定値は、false です。既定の動作は次のとおりです。

このオプションを true に設定した場合、Frame の子はその伸張順位に関係なく強制的に伸張され、Frame 内を埋め尽くします。

これらの計算の最終的な結果、既定では、FrameTextFlowBoxTextFlowBox よりされに固定されたオブジェクトを伸張しません。次の例を参照してください。


{VBox
    spacing=3pt,
    {paragraph Rigid child, hstretch?=false},
    {Frame
        background="red",
        width=2in,
        {RectangleGraphic
            height=18pt, width=24pt}
    },

    {paragraph High stretch order child, hstretch?=false},
    {Frame
        background="red",
        width=2in,
        {RectangleGraphic
            height=18pt, width={make-elastic
                                   preferred-size=24pt,
                                   stretch-order=30}
        }
    },

    {paragraph Rigid child, hstretch?=true},
    {Frame
        background="red",
        width=2in,
        hstretch?=true,
        {RectangleGraphic height=18pt, width=24pt}
    },

    {paragraph High stretch order child, hstretch?=true},
    {Frame
        background="red",
        width=2in,
        hstretch?=true,
        {RectangleGraphic
            height=18pt, width={make-elastic
                                   preferred-size=24pt,
                                   stretch-order=30}
        }
    },

    {paragraph TextFlowBox, hstretch?=false},
    {Frame
        background="red",
        width=2in,
        {TextFlowBox background="yellow", {bold Hi there!}}},
    {paragraph TextFlowBox, hstretch?=true},
    {Frame
        background="red",
        width=2in,
        hstretch?=true,
        {TextFlowBox background="yellow", {bold Hi there!}}}
}


style-element (アクセサ)
アクセサ public RecordForm.style-element:String

スタイリングの目的のための、この Visual の "要素" や "型" です。

説明

この実装によって Visual._style-elementの値が返されますが、通常は定数を返すためにオーバーライドされます。

オーバーライド

Visual のサブクラスのスタイルが他のオブジェクトと異なる場合、このゲッターは適切な文字列を返すようにオーバーライドされる必要があります。 慣例では,この文字列はクラス名または、オブジェクトを生成するマークアップの名前です。
オーバーライドでは、空の文字列でないかぎり、self._style-elementを返さなければなりません。
導入: バージョン 6.0


valign (ローカル オプション)
public RecordForm.valign:any

Frame の垂直方向の起点をその子オブジェクトからどのように計算するかを指定します。

説明

このオプションに指定可能な値は、"origin""top""center""bottom" です。Frame.halign に対して指定可能な値 "origin""left""center""right" ではありません。詳細については、Frame.halign を参照してください。


vstretch? (ローカル オプション)
public RecordForm.vstretch?:bool

Frame が固定の子オブジェクトの周りに垂直方向のパディングを配置するかどうかを制御します。

説明

このオプションは Frame.hstretch? オプションに似ていますが、操作が水平方向ではなく垂直方向である点が異なります。





メソッド詳細
add (メソッド)
public {RecordForm.add g:any, ...}:#Visual

Frame に子アイテムを追加します。

g: 追加するアイテム。gGraphic でない場合、gGraphic に強制変換され、変換された結果が追加されます。

注意事項

Frame.add にはキーワード パラメータ replace? もあります。replace? が true の場合、Frameが直前に保持していた子があれば、それが g に置き換えられます。replace? が false (既定) の場合、子を保持している Frame でこのメソッドを呼び出そうとするとエラーが発生します。

戻り値

追加された実際の値。追加された Graphic のサブタイプになります。

オーバーライド

子の追加にさらに別の処理を関連付けることができるように、Frame のサブクラスでオーバーライドできます。この種のオーバーライド メソッドは、以下を呼び出す必要があります。

{super.add g, ...}

これで、Frame 自体の追加アクションを呼び出し、replace? 引数が指定されている場合は、この引数とともに渡します。


clear (メソッド)
public {RecordForm.clear}:void

ボックスのグラフィカルな子を削除します。



create-navigation-panel (メソッド)
protected {RecordForm.create-navigation-panel}:Graphic

ナビゲーション パネルを作成します。

説明

RecordSetDisplay.display-navigation-panel?true の場合に表示されるナビゲーション パネルを作成します。通常は直接呼び出しません。

オーバーライド

提供されている標準ナビゲーション パネルの機能拡張、修飾または置き換えを行うには、このメソッドをオーバーライドします。


format (メソッド)
public {RecordForm.format value:any, binding:DataBinding}:any

このコンテキストのデータをバインド プロパティに適した値に変換します (可能な場合)。

説明

このメソッドの詳細な説明は DataBindingContext.format を参照してください。

オーバーライド

このメソッドの既定の実装では、以下の変換を実行します。 その他の場合、変換は適用されません。追加のフォーマット機能を持つサブクラスでは、このメソッドをオーバーライドする必要があります。


get-data (メソッド)
public {RecordForm.get-data data-selector:any}:(data:any, valid?:bool)

data-selector に関連付けられたデータを取得します。

data-selector: any 型。サブクラスではこの引数に適切な型を指定する必要があります。入力された値がこのコンテキストに適さない場合はエラーがスローされます。

戻り値

このメソッドは 2 つの値を返します。


note-current-record-changed (メソッド)
protected {RecordForm.note-current-record-changed
index-change?:bool,
identity-change?:bool
}:void

current-index への変更および/または current レコードの識別情報の変更を示すために呼び出されます。

説明

このメソッドの既定実装は、非同期処理で CurrentRecordChanged イベントを生成し、キューに投入します。

オーバーライド

この変更に対し同期的に応答するサブクラスは、必ずスーパー実装も呼び出すよう、このメソッドをオーバーライドする必要があります。


note-record-set-event (メソッド)
public {RecordForm.note-record-set-event ev:RecordSetEvent}:void

RecordSetEventRecordSetDisplay.records プロパティによって処理されたことをこのレコード グリッドに通知します。

オーバーライド

ディスプレイの元のデータに起こった変更に応答するには、このメソッドをオーバーライドします。基本実装では、関連するレコードセットのサイズが変更したときに、current-index プロパティが有効範囲内にとどまるようになっています。したがって、実装では必ずスーパー実装を最初に呼び出してから、追加のアクションを実行してください。


parse (メソッド)
public {RecordForm.parse value:any, binding:DataBinding}:any

バインド プロパティの値をこの DataBindingContext に適した値に変換します (可能な場合)。

説明

このメソッドの詳細な説明は DataBindingContext.parse を参照してください。

オーバーライド

String 型から解析する場合、関連 DomainDomain.parse メソッドが使われます。追加の解析機能を提供するサブクラスでは、このメソッドをオーバーライドする必要があります。


register-binding (メソッド)
public {RecordForm.register-binding binding:DataBinding}:void

このコンテキストで DataBinding を登録します。

binding: 登録する DataBinding。バインドの DataBinding.context プロパティがこのオブジェクトを参照していること、その DataBinding.target プロパティが null 以外の値であることが必要です。

プログラミング注意事項

このメソッドは通常 DataBinding の実装で呼び出されます。アプリケーションではこのメソッドを直接呼び出さず、代わりに DataBinding.context または DataBinding.auto-register? プロパティを設定してください。

説明

このコンテキストで binding が既に存在する場合、このメソッドでは何も行われません。
登録処理が完了した後で、このメソッドはターゲットを初期化するために DataBinding.refresh を呼び出すことに注意してください。

オーバーライド

サブクラスでは、登録するバインドがこのコンテキストに適していることを確認できるようにこのメソッドをオーバーライドすることをお勧めします。
実装では、このメソッドのスーパー実装を必ず呼び出してください。


update-internal (メソッド)
protected {RecordForm.update-internal}:#DataBindingValidationFailure

登録されている 1 つまたは複数のバインドのターゲット プロパティからコンテキストを更新します。

...: 更新する 1 つまたは複数の DataBinding。これらのバインドは、allow-update? = true であり、このコンテキストに登録されていることをあらかじめ確認しておく必要があります。

戻り値

DataBindingValidationFailure または null。戻り値の必要条件の詳細は、DataBindingContext.update-internal を参照してください。

プログラミング注意事項

アプリケーションで使用せず、通常は直接呼び出しません。サブクラスではこのメソッドをオーバーライドする必要があります。

オーバーライド

データ更新を許可するサブクラスでは、このメソッドをオーバーライドして更新の実施方法を定義してください。既定の実装ではエラーをスローします。


validate-internal (メソッド)
protected {RecordForm.validate-internal}:#DataBindingValidationFailure

登録されている 1 つまたは複数のバインドのターゲット プロパティを検証します。

...: 検証する 1 つまたは複数の DataBinding。これらのバインドは、allow-update? = true であり、このコンテキストに登録されていることをあらかじめ確認しておく必要があります。

戻り値

DataBindingValidationFailure または null。戻り値の必要条件の詳細は、DataBindingContext.validate-internal を参照してください。

プログラミング注意事項

アプリケーションで使用せず、通常は直接呼び出しません。サブクラスではこのメソッドをオーバーライドする必要があります。

オーバーライド

データ更新を許可するサブクラスでは、このメソッドをオーバーライドして検証の実施方法を定義してください。既定の実装ではエラーを返します。