Yellowfinには、そのまま利用できる数多くのパラメーター実装があります。これらは、列挙型InputTypeで定義されます。以下に、利用可能なすべてのタイプとそのオプションを、コードサンプルとともに示します。
タイプ | 説明 | オプション | コードサンプル |
TEXTBOX | テキスト入力ボックスです。 |
| ParameterImpl parameter = new ParameterImpl(); parameter.setProperty("DECIMALS"); parameter.setInputType(InputType.TEXTBOX); parameter.setName("Decimal Places"); parameter.setMinAllowed(0); parameter.addViewOption("numericOnly", true); parameter.addViewOption("numericType", "INTEGER"); |
SELECT | ドロップダウンリストです。値と説明は、こちらのパラメーターに追加された可能な値から取得されます。 |
| ParameterImpl p = new ParameterImpl(); p.setProperty("DATE_FORMAT"); p.setName("Format"); p.setInputType(InputType.SELECT); List<CustomValue<?>> optValues = new ArrayList<>(); optValues.add(new CustomValue(""," - - Select - - "); optValues.add(new CustomValue("YEAR","Year")); optValues.add(new CustomValue("YEAR_START","Year Start Date")); optValues.add(new CustomValue("YEAR_END","Year End Date")); p.setPossibleValues(optValues); |
RADIO | ラジオボタンのグループです。各選択肢にラジオボタンを持ちます。 |
| ParameterImpl parameter = new ParameterImpl(); parameter.setProperty("STARTING_POINT"); parameter.setInputType(InputType.RADIO); parameter.addPossibleValue("LEFT", "Left"); parameter.addPossibleValue("RIGHT", "Right"); parameter.addPossibleValue("MIDDLE", "Middle"); |
DATE, TIMESTAMP | 日付/タイムスタンプ入力要素です。これらはほぼ同様で、同一のビューオプションを持ちます。 キーは入力値を保存するsetPropertyを使用して設定します。 形式: 静的日付は「yyyy-MM-dd」として保存されます。 静的タイムスタンプは「yyyy-MM-dd hh:mm:ss」として保存されます。
動的日付: 動的日付の場合、単位はビューオプション「unitCodeProperty」で指定されたキーに対して保存されます。 動的日付値は、「STSDATE+」として保存されます。例えば、「property=STARTDATE」、「unitCodeProperty=STARTUNIT」の場合、 Today -1 Yearは、以下のように保存されます。 STARTDATE: SYSDATE-1 STARTUNIT: YEAR |
| ParameterImpl p = new ParameterImpl(); p.setProperty("STARTDATE"); p.addViewOption("useCurrentDate", "true"); p.addViewOption("unitCodeProperty", "STARTUNIT"); p.setInputType(InputType.DATE); |
TIME | 時間データ入力を検証するテキスト入力要素です。 有効な時間入力は、hh:mm:ss形式(24時間)の指定されたプロパティに対して保存されます。 このウィジェットにはスタイリングオプションがありません。 |
| ParameterImpl p = new ParameterImpl(); p.setProperty("RUN_TIME"); p.setInputType(InputType.TIME); |
CHECKBOX | ひとつ以上のYellowfinチェックボックスを表示します。 |
| ParameterImpl p = new ParameterImpl(); p.setInputType(InputType.CHECKBOX); p.setProperty("INCLUDED_FIELDS"); p.setParameterClassName("included-fields"); p.addViewOption("tooltip", true); p.addPossibleValue("field001", "PERSONID"); p.addPossibleValue("field002", "CAMPID"); p.addPossibleValue("field003", "INVOICEDAMOUNT"); |
BUTTON | 標準的なYellowfinのボタンを表示します。 |
data:<MIME Type>;base64, <base64 String>
| ParameterImpl p = new ParameterImpl(); p.setProperty("apply"); p.setInputType(InputType.BUTTON); p.addViewOption("text", "Apply"); p.addViewOption("flat", true); p.addViewOption("style", "blue"); p.addViewOption("width", "50px"); p.addViewOption("height", "40px"); |
STATIC | 静的テキストのブロックを表示します。 | text:表示されるコンテンツです。 | ParameterImpl p = new ParameterImpl(); p.addViewOption("text", "This is some text"); p.setInputType(InputType.STATIC); |
COLOURPICKER | 標準的なYellowfinのカラーピッカーです。 | なし | ParameterImpl p = new ParameterImpl(); p.setInputType( InputType.COLOURPICKER); |
SLIDERANDTEXT | どちら方法でも入力が可能なリンクテキストボックス付きのスライダー入力です。 |
| ParameterImpl p = new ParameterImpl(); p.setName("Group Size"); p.setProperty("size"); p.setInputType(InputType.SLIDERANDTEXT); p.addViewOption("textMaxValue", "20"); p.addViewOption("maxValue", "20"); p.setDefaultValue(5); |
TOGGLE | On/Offトグルスライダーを表示します。 |
| ParameterImpl p = new ParameterImpl(); p.setProperty("FIRST_ROW_HEADER"); p.setName("First row contains unique titles"); p.setDefaultValue(true); p.setInputType(InputType.TOGGLE); |
FIELDMATCHDROPDOWN | お互いに一致するFieldObject(詳細は、ヘルパーオブジェクト項目を参照)の2つの一覧を受け付けます。ひとつ以上の一致を含めることができます。結果の関係は、以下のような配列で返されます。 { 'from': fieldA.id, 'to': fieldB.id } |
| ParameterImpl p = new ParameterImpl(); p.setProperty("fieldMatchProperty"); p.setList(true); //List of matches ListOptions lo = new ListOptions(); lo.setAddButtonText("Match More"); p.setListOptions(lo); FieldObjectDataType textType = FieldObjectDataType.TEXT; FieldObjectDataType numericType = FieldObjectDataType.NUMERIC; // LIST A List<FieldObject> fieldListA = new LinkedList<>(); FieldObject field1 = new FieldObject("1", "", "Field 1", textType); FieldObject field2 = new FieldObject("2", "", "Field 2", numericType); fieldListA.add(field1); fieldListA.add(field2); // LIST B List<FieldObject> fieldListB = new LinkedList<>(); FieldObject field3 = new FieldObject("3", "", "Field 3", textType); FieldObject field4 = new FieldObject("4", "", "Field 4", numericType); FieldObject field5 = new FieldObject("5", "", "Field 5", textType); FieldObject field6 = new FieldObject("6", "", "Field 6", numericType); fieldListB.add(field3); fieldListB.add(field4); fieldListB.add(field5); fieldListB.add(field6); // Add the lists to the Match widget p.addViewOption("fieldListA", fieldListA); p.addViewOption("fieldListB", fieldListB); p.addViewOption("titleA", "Left Field"); p.addViewOption("titleB", "Right Field"); p.setInputType(InputType.FIELDMATCHDROPDOWN); |
FIELDMATCH | これは、FIELDMATCHDROPDOWNと同様の機能を提供します。ドラッグをすることでフィールドを一致させます。フィールドはデータ型により一致し、色でコーディングされています。一致しないフィールドはフラグ付けされます。 一方のフィールドは、「除外」ゾーンにドラッグすることで除外することができます。結果の関係は、FIELDMATCHDROPDOWNと同様の形式で返されます。
ひとつのカラム(列)からフィールドが除外された場合、そのロウ(行)に一致するオブジェクトは、対応する「from」や「to」属性を持たないことになります。例えば、以下の画像のADDRESSIDのオブジェクトは、下記のようになります。 { 'to': ADDRESSID.id } |
| ParameterImpl p = new ParameterImpl(); p.setInputType(InputType.FIELDMATCH); p.setProperty("UNION_FIELD_MATCH"); p.addViewOption("includeUnmatched", true); //Match exact types p.addViewOption("roughMatch", false); List<FieldObject> foListA = new ArrayList<>(); List<FieldObject> foListB = new ArrayList<>(); FieldObjectDataType textDataType = FieldObjectDataType.TEXT; FieldObjectDataType numericDataType = FieldObjectDataType.NUMERIC; // LIST A FieldObject field1 = new FieldObject("1", "primary", "Field 1", textDataType); //Primary Key FieldObject field2 = new FieldObject("2", "", "Field 2", numericDataType);//This is a metric foListA.add(field1); foListA.add(field2); // LIST A FieldObject field3 = new FieldObject("3", "", "Field 3", textDataType); FieldObject field4 = new FieldObject("4", "", "Field 4", numericDataType);//This is a metric FieldObject field5 = new FieldObject("5", "", "Field 5", textDataType); FieldObject field6 = new FieldObject("6", "", "Field 6", numericDataType);//This is a metric foListB.add(field3); foListB.add(field4); foListB.add(field5); foListB.add(field6); p.addViewOption("fieldListA", foListA); p.addViewOption("fieldListB", foListB); //Input 1 p.addViewOption("titleA", "Input 1"); //Input 2 p.addViewOption("titleB", "Input 2");
上記のコードは、以下を生成します。 |
AUTOCOMPLETEBOX | 検索可能なドロップダウンリストを表示します。 検索可能なアイテムは、パラメーターの「possibleValues」として追加されたCustomValueオブジェクトでなくてはいけません。 |
| ParameterImpl p = new ParameterImpl(); p.setProperty("TABLETEXTBOX"); p.setName("New Table Name"); p.setInputType(InputType.AUTOCOMPLETETEXTBOX); p.addViewOption("width", 200); CustomValue<String> initialValue = new CustomValue<String>("all_objects", "all_objects"); p.addViewOption("initialValue", initialValue); List<CustomValue<?>> possibleValues = new ArrayList<>(); possibleValues.add(new CustomValue<String>("all_columns", "all_columns")); possibleValues.add(new CustomValue<String>("all_parameters", "all_parameters")); possibleValues.add(new CustomValue<String>("all_sql_modules", "all_sql_modules")); possibleValues.add(new CustomValue<String>("all_tables", "all_tables")); p.setPossibleValues(possibleValues); p.addViewOption("width", 200); p.addViewOption("resultListStyle", "outputStepAutoCompleteList"); |
SHOWADVANCED | 他のユーザーインターフェイス要素を表示/非表示する展開可能なウィジェットです。これは、ParameterDisplayRulesとともに使用しなくてはいけません。 |
| Boolean value = true; Boolean negative = false; // SHOW_ADVANCED_SETTINGS == true ParameterDisplayRule advancedSettingsDisplayRule = new ParameterDisplayRule("AND", "SHOW_ADVANCED_SETTINGS", value, negative); ParameterImpl p = new ParameterImpl(); p.setProperty("ALL_ROWS"); p.setName("All Rows"); p.setDefaultValue(true); p.setInputType(InputType.TOGGLE); p.addDisplayRule(advancedSettingsDisplayRule); paramList.add(p); p = new ParameterImpl(); p.setProperty("SEPARATOR"); p.setName("Separator"); p.setInputType(InputType.TEXTBOX); p.addViewOption("width", "40px"); p.addDisplayRule(advancedSettingsDisplayRule); paramList.add(p); p = new ParameterImpl(); p.setProperty("SHOW_ADVANCED_SETTINGS"); p.setInputType(InputType.SHOWADVANCED); p.setDefaultValue(false); p.addViewOption("showText", "Advanced Settings ↓"); p.addViewOption("hideText", "Less ↑"); p.addViewOption("width", "150px"); paramList.add(p); |
PAIRCOLUMNS | |||