Anchor | ||||
---|---|---|---|---|
|
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ルールを定義します。
Code Block | ||||
---|---|---|---|---|
| ||||
div.styleExampleCell {
border: none;
color: #666666;
} |
インスタンスはひとつのセレクターと、ひとつ以上のCSSの宣言を持ちます。セレクターが定義されていない場合、Yellowfinは自動的にこれを生成します。
CssDeclarationインターフィスは、以下のような、単一の宣言を記述します。
Code Block | ||||
---|---|---|---|---|
| ||||
border: none; |
Yellowfinには、CssDeclarationlmplという実装があり、プロパティと値を受け付けます。
Code Block | ||||
---|---|---|---|---|
| ||||
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ルールが作成されます。
Code Block | ||||
---|---|---|---|---|
| ||||
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を表示します。
Code Block | ||||
---|---|---|---|---|
| ||||
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)); |
この表示ルールは基本的に、以下のコード行を作成します。
Code Block | ||||
---|---|---|---|---|
| ||||
if(SOURCE != null && SOURCE != 0) showParameter(); |
例2
SOURCEがnull、または0の時に、TABLE_NAMEを表示するためには、負のbooleanをfalseに変更しなくては行けません。
Code Block | ||||
---|---|---|---|---|
| ||||
p.addDisplayRule(new ParameterDisplayRule("AND", "SOURCE", new Object[] { null, 0 }, false, null)); |
これは、以下のようなものを作成します。
Code Block | ||||
---|---|---|---|---|
| ||||
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は、この表示ルールに検証される「その他」のパラメーターを指定します。各パラメーターインスタンスは、その値の識別子を持ちます。例えば、ユーザーがテキストインプットパラメーターに入力したすべては、それがプロパティとして指定されている場合、識別子「SOURCE」を使用して参照することができます。
valsは、比較の値の配列です。配列内の各値は、対等性のために「その他」のパラメーターと比較されます。これらはその後、ORオペレーターを使用して結合されます。
negativeは、valsを「その他」のパラメーターに対して比較した後に得られる結果を反転します。
If vals = {null, 0}
negative | 結果 |
true | property != null && property != 0 |
false | property == null || property == 0 |
locationは、PropertyLocationのインスタンスであり、「その他」のパラメーターの配置場所を判断するために使用します。これは、複数のセクション/パネル内に同一のプロパティとともにパラメーターが存在する場合に有効です。これがnullの場合、プロパティは、このParamterDIsplayRuleの親と同一の場所に配置されていると判断されます。
ParameterValueLoader
ParameterValueLoaderは、抽象classであり、イベントに基づき動的に値を読み込むために実装することができます。パラメーターは、値ローダーを使用するように設定しなくてはいけません。以下に、いくつかの重要点を示します。
パラメーターの「プロパティ」は、変更された値とイベントデータを参照するために使用されるため重要です。例:
p.setProperty("view");
パラメーター変更時には、イベント名を指定しなくてはいけません。値ローダーは、これを元に、何をするかを決定します。例:
p.setEvent("viewChanged");
イベントデータは、パラメーターに添付されることもあります。これは、利用可能なすべてのフィールドや、他のステップオプションの値など、ステップに関する任意の情報になります。
p.addEventData("fieldsMap", allFieldsMap);
p.addEventData("sourceId", getStepOption("SOURCE_ID"));
値ローダーのイベントへの返答は、getUpdatedPossibleValues()、またはgenerateDynamicParameterメソッドを使用して返すこともできます。これらは、以下に示すメンバー変数を使用して、イベントへの応答方法を決定することができます。Yellowfinはこれらのメソッドを、以下のシークエンスで実行します。
pvl.getDynamicParameterOptions.setValues(pvl.getUpdatedPossibleValues());
pvl.generateDynamicParameters();
依存関係は、値依存、またはイベントを使用して設定することができます。これら両方のオプションの詳細は、以下で紹介します。
APIは、いくつかのヘルパーオブジェクトを使用します。これは、オプションの受け渡し、検証、または依存関係設定に使用することができます。詳細を以下に示します。
- GeneralPanelOptions:一般的なユーザーインターフェイス表示を定義します。
- CssRule:スタイリングルールを定義します。
- ListOptions:一覧として表示されるパラメーターを定義します。
- ParameterValidation:基礎的なユーザーインターフェイスの検証を網羅します。
- ParameterDisplayRule:ユーザーインプットに基づき、パラメーターを表示するかどうかを判断します。
- ParameterValueLoader:イベントに基づき値を動的に読み込むために使用するclassです。
- DynamicParameterOptions:ParameterValueLoaderの応答オブジェクトです。
- FieldObject:フィールドを表すclassです。