PanelCollection APIは、いくつかのヘルパーオブジェクトを使用し、これは、オプションの受け渡し、検証、依存設定に使用することもできます。詳細を以下に示します。
GeneralPanelOptions:一般的なユーザーインターフェイス表示を定義します。
CssRule:スタイリングルールを定義します。
ListOptions:一覧として表示されるパラメーターを定義します。
ParameterValidation:基礎的なユーザーインターフェイスの検証を網羅します。
ParameterDisplayRule:ユーザーインプットに基づき、パラメーターを表示するかどうかを判断します。
ParameterValueLoader:イベントに基づき値を動的に読み込むために使用するclassです。
DynamicParameterOptions:ParameterValueLoaderの返答オブジェクトです。
FieldObject:フィールドを表現するclassです。
GeneralPanel Options
GeneralPanelOptions classは、パラメーターパネルとセクションレベルで、一般的なユーザーインターフェイスの表示オプション定義するために使用します。重要なメソッドを以下に示します。
メソッド | 説明 |
public void setSaveButton(boolean saveButton) public void setSaveButtonOptions(Map<String, Object> opts) public void setSaveText(String saveText) | setSaveButtonオプションをtrueに設定することで、パネルやセクションに保存ボタンを表示します。表示オプションは、setSaveButtonOptionsを使用して設定することもできます。利用可能なオプションの一覧は、インプットタイプのtype BUTTON項目に示されています。ボタン上のテキストは、setSaveTextを使用してカスタマイズすることができます。 |
public void setExpandable(boolean expandable) public void setExpanded(boolean expandable) | これらは、セクションを展開可能にし、それを表示するために使用します。
|
public void setShowName(boolean showTitle) | こちらをtrueに設定した場合、パネルやセクションの名前は、コンテナのトップに表示されます。 |
public void setCssRules(Set<CssRule> cssRules) | こちらのメソッドは、セクションやパネル、そのhtmlコンテナ内のすべてをスタイリングするカスタムCSSルールを設定するために使用します。 |
CSSRule
こちらのインターフェイスは、PanelCollection APIのいくつかのレベルのスタイリングルールを定義するために使用します。これをサポートするレベルは、CssRuleオブジェクトのセットを受付ます。Yellowfinには、CssRulelmplという実装があり、以下のような単一のCSSルールを定義します。
div.styleExampleCell { border: none; color: #666666; }
インスタンスはひとつのセレクターと、ひとつ以上のCSSの宣言を持ちます。セレクターが定義されていない場合、Yellowfinは自動的にこれを生成します。
CssDeclarationインターフィスは、以下のような、単一の宣言を記述します。
border: none;
Yellowfinには、CssDeclarationlmplという実装があり、プロパティと値を受け付けます。
Parameter inputField = new ParameterImpl(); inputField.setName("Example Param"); inputField.setProperty("PARAM_PROPERTY"); inputField.setInputType(InputType.TEXTBOX); CssRule cssRule = new CssRuleImpl("input", false); cssRule.addDeclaration(new CssDeclarationImpl("height", "21px")); cssRule.addDeclaration(new CssDeclarationImpl("padding", "5px")); cssRule.addDeclaration(new CssDeclarationImpl("font-size", "16px")); cssRule.addDeclaration(new CssDeclarationImpl("resize", "none")); cssRule.addDeclaration(new CssDeclarationImpl("color", "#666666")); cssRule.addDeclaration(new CssDeclarationImpl("border", "1px solid #e4e4e4")); Set<CssRule> cssRules = new HashSet<>(); cssRules.add(cssRule); inputField.setCssRules(cssRules);
これにより、以下のCSSルールが作成されます。
input { height: 21px; padding: 5px; font-size: 16px; resize: none; color: #666666; border: 1px solid #e4e4e4; }
ListOptions
こちらのclassは、パラメーターが一覧として表示される場合のユーザーインターフェイスオプションを定義します。例えば、TEXTBOXパラメーターは、いくつかのテキスト値を受け付けることができ、テキストボックスの一覧を表示します。
利用可能なすべてのオプションは、javadocを参照してください。
ParameterValidation
こちらのclassは、基礎的なユーザーインターフェイスの検証ルールを定義するために使用します。最も有効なルールは、パラメーター値が空であるかどうかを確認するものです。その他のルールは、数値パラメーターに対して関係演算を実行します。
利用可能なすべてのオプションは、javadocを参照してください。
ParameterDisplayRule
ユーザーインプットは、必要に応じて、表示/非表示にしなくては行けません。これは、パラメーターがリッスンする必要のあるパラメーターを定義し、値を指定して表示、非表示にする、ParameterDisplayRuleのインスタンスを使用して実行します。以下の例を参照してください。
例1
以下は、SOURCEに0、またはnull以外の値が設定されている場合に、TABLE_NAMEを表示します。
Parameter p = new ParameterImpl(); p.setName("Table Name"); p.setProperty("TABLE_NAME"); p.InputType(InputType.SELECT); p.addDisplayRule(new ParameterDisplayRule("AND", "SOURCE", new Object[] { null, 0 }, true, null));
この表示ルールは基本的に、以下のコード行を作成します。
if(SOURCE != null && SOURCE != 0) showParameter();
例2
SOURCEがnull、または0の時に、TABLE_NAMEを表示するためには、負のbooleanをfalseに変更しなくては行けません。
p.addDisplayRule(new ParameterDisplayRule("AND", "SOURCE", new Object[] { null, 0 }, false, null));
これは、以下のようなものを作成します。
if(SOURCE == null || SOURCE == 0) showParameter();
これらの表示ルールは、任意のレベルのパネルコレクションに適用することが可能で、パネルやセクション全体を非表示にすることもできます。
コンストラクター
このclassは、便宜のためにオーバーロードされたコンストラクターと、各プロパティのセッターを提供します。最も記述的なコンスタクラーは、以下の通りです。
public ParameterDisplayRule(String logic, String property, Object[] vals, boolean negative, PropertyLocation location)
以下は、その属性の説明です。
logicは、このインスタンスのParameterDisplayRule内に複数の「子」表示ルールがある場合に、オペレーターを指定するために使用します。Logicは、AND、またはORになります。3つの子ルールがあり、logicがANDの場合、各ルールは個別に検証され、結果は以下のように結合されます。
Rule1Result && Rule2Result && Rule3Result
「子」表示ルールが無い場合、Logicは無視されます。子ルールがある場合、「親」ルールは検証されません。これは、子ルールのコンテナとしてのみ使用されます。
propertyは、この表示ルールに検証される「その他」のパラメーターを指定します。各パラメーターインスタンスは、その値の識別子を持ちます。例えば、