プログラマーがライブラリーを使いやすくするためのグラフィカル・ツールを作成しています。ライブラリには、AbstractType
と呼ぶデータタイプがあります。これは、すべてのタイプから継承されます-Image
、File
など。オブジェクトタイプのリストは列挙可能です。
ユーザーがプロパティシートでAbstractType
オブジェクトを指定している場合、フォームをどのように配置すればよいですか?
私の現在の考えはこのようなものです:
download bmml source – Balsamiq Mockups で作成されたワイヤーフレーム
基本的に、一方のタブでタイプが変更され、もう一方のタブでフォームが変更されます。したがって、Image
を選択した場合、他のタブには「幅」、「高さ」などのフィールドがありますが、次にFile
に変更すると、他のタブのフィールドが変更され、 「パス」フィールド。
簡単に言うと、タブを使用しないでください。
これはタブの目的ではないので、持っているボックスを使用してください。ユーザーがタイプを選択したら、最初のボックスにある選択フィールドのすぐ下にある2番目のタブにあるフィールドを表示します。 基本的に: 1つのボックスのみを使用してタブを削除すると、 "抽象型"はまったく使用されなくなります。エルゴ問題が解決され、タイプは常に表示されます。ラベルは必要ありません。ユーザーは、ドロップダウンを変更することで、必要に応じてタイプを変更できることを認識できます。
デヴィンのポイントを拡張するには...
タブは状態の変化を隠し、視覚的な手がかりなしで何が欲しいかをユーザーに知らせます。相互作用が他の何かの状態を変えるとき、その変化を自明にします。この場合、最初のコントロールを変更すると、追加のコントロールがすぐに表示されます(変更をやわらげるための小さなアニメーションは常に高く評価されています)。
可能であれば、事前に何を期待すべきかをユーザーに知らせておくと便利です。追加のコントロールが1つの「オブジェクトタイプ」から次のコントロールに正規化された場合、無効な状態で表示できます。あなたの場合、追加のパラメータ(存在する場合)はオブジェクトタイプごとに異なるように思えます。そのような場合、私はオンデマンドでそれらを投入することを好みます。