Oracle JET Webアプリケーションへのコンポーネントの追加
イントロダクション
このチュートリアルでは、Oracle JavaScript Extension Toolkit (Oracle JET)コンポーネントをOracle JET Webアプリケーションのnavdrawer初期テンプレートに追加する方法について説明します。
Oracle JETは、クライアント側のWebアプリケーションの構築に使用する開発ツールキットです。Webアプリケーションを作成するには、Oracle JETクックブックを使用して、アプリケーションに追加する特定の機能を示すコンポーネント・サンプルを見つけます。Oracle JETクックブックには、コンポーネント固有の動作をサポートするために従うことができる手順も記載されています。
目的
このチュートリアルの完了時に、Oracle JETクックブックを使用して、Oracle JETの単一およびチャートの選択コンポーネントをWebアプリケーションの「ダッシュボード」タブに追加する方法を学習しました。また、これらの2つのコンポーネントを接続して、コンポーネント間の相互作用を追加する方法についても学習します。
前提条件
- JavaScriptランタイム、Node.jsおよび最新のOracle JETコマンドライン・インタフェースがインストールされたOracle JETアプリケーションを作成するために設定された開発環境
JET_Web_Application
フォルダが作成されるように、この学習パスで前のチュートリアルの完了- Oracle JETクックブックへのアクセス
タスク1:スタイル・クラスの追加
次の例に示すインラインstyle
属性を使用するのではなく、コンポーネントに適用するスタイルを別のCSSファイルに配置することをお薦めします。
<oj-select-single id="basicSelect" style="max-width:20em" data="[[chartTypesDP]]"value="">
「Select Single」および「Chart」コンポーネントをページに追加する前に、コンポーネントが参照できるスタイル・クラスをアプリケーションのCSSファイルに作成します。
JET_Web_Application/src/css
ディレクトリに移動し、エディタでapp.css
ファイルを開きます。-
app.css
ファイルの最後に、単一およびチャートの選択コンポーネントのスタイル・プロパティを決定する次のスタイル・クラスを追加します。.selectSingleStyle { max-width:20em } .chartStyle { max-width:500px; width:100%; height:350px; }
このチュートリアルの後半で、「単一およびチャートの選択」コンポーネントは、コンポーネントの
class
属性を使用してこれらのスタイルを参照します。<oj-select-single id="basicSelect" . . . class="selectSingleStyle" >. . . <oj-chart id="barChart" . . . class="chartStyle">. . .
タスク2:単一コンポーネントの選択の追加
-
JET_Web_Application/src/ts/views
ディレクトリに移動し、エディタでdashboard.html
ファイルを開きます。 -
ダッシュボード・コンテンツ領域のHTMLの
div
要素内に、oj-label
カスタムHTML要素とoj-select-single
要素を追加します。また、値がparentContainer
のid
属性をdiv
要素に追加します。<h1>Dashboard Content Area</h1> <div id="itemDetailsContainer"> <oj-label for="basicSelect">Select Chart:</oj-label> <oj-select-single id="basicSelect" class="selectSingleStyle" data="[[chartTypesDP]]" value="{{val}}"> </oj-select-single> </div>
data
属性でchartTypesDP
を囲む角カッコは、値を読み取ることができますが、コンポーネントによって更新できないことを意味します。value
属性でval
を囲む中カッコは、その値がコンポーネントによって読取りおよび更新できることを意味します。したがって、観測可能値を囲む角括弧は一方向結合を定義しますが、観測可能値を囲む中カッコは二方向結合を定義します。 -
ヘッダーの「製品情報」を表示するには、HTMLの
h1
要素を編集します。<h1>Product Information</h1>
-
dashboard.html
ファイルを保存します。dashboard.html
コード・スニペットは、add-select-single-dDashboard-html.txtのようになります。 -
JET_Web_Application/src/ts/viewModels
ディレクトリに移動し、エディタでdashboard.ts
ファイルを開きます。 -
dashboard.ts
ファイルの上部で、ノックアウト・ライブラリ、Oracle JET可変配列データ・プロバイダ・モジュールおよびラベル・コンポーネントのOracle JETモジュールおよび単一選択コンポーネントをインポートします。import * as AccUtils from "../accUtils"; import * as ko from "knockout"; import MutableArrayDataProvider = require("ojs/ojmutablearraydataprovider"); import "ojs/ojselectsingle"; import "ojs/ojlabel";
-
DashboardViewModel()
クラスの前に、チャート・タイプのタイプ別名(ChartType
)を追加します。DashboardViewModel()
クラス内に、チャート・タイプ・データ配列(chartTypes
)および可変配列データ・プロバイダ(chartTypesDP
)のインスタンスを追加して、単一選択コンポーネントによるチャート・タイプ・データのバインディングを許可します。type ChartType = { value: string; label: string; }; class DashboardViewModel { chartTypes: Array<Object>; chartTypesDP: MutableArrayDataProvider<ChartType["value"], ChartType>; constructor() { this.chartTypes = [ { value: "pie", label: "Pie" }, { value: "bar", label: "Bar" }, ]; this.chartTypesDP = new MutableArrayDataProvider< ChartType["value"], ChartType >(this.chartTypes, { keyAttributes: "value", }); } // End constructor
-
ko.observable
メソッドを追加して、円グラフ・タイプをSelect SingleコンポーネントのKnockout観測可能なデフォルト値として表示します。class DashboardViewModel { val: ko.Observable<string>; . . . constructor() { this.val = ko.observable("pie"); . . .
-
dashboard.ts
ファイルを保存します。dashboard.ts
コード・スニペットは、add-select-single-dashboard-ts.txtのようになります。 -
端末ウィンドウを開き、
JET_Web_Application
ディレクトリに変更して、アプリケーションを実行します。$ ojet serve
ブラウザにnavdrawerスタータ・テンプレートが表示され、Webアプリケーションの「ダッシュボード」タブに表示される「単一の選択」コンポーネントが表示されます。
-
端末ウィンドウおよびWebアプリケーションを表示するブラウザは開いたままにします。
ojet serve
コマンドを使用すると、ブラウザにすぐに反映されるJET_Web_Application/src
内のアプリケーション・コードを変更できます。ただし、ファイルを追加または削除した場合は、ojet serve
を実行して、ブラウザに反映された変更を確認する必要があります。JET_Web_Application/web
フォルダでアプリケーション・コードを変更しないでください。ojet serve
コマンドを次回実行したときにこれらの変更を上書きするためです。ojet serve
コマンドは、JET_Web_Application/src
フォルダのコンテンツをJET_Web_Application/web
フォルダに作成して提供します。
タスク3:チャート・コンポーネントの追加
-
JET_Web_Application/src/ts/views
ディレクトリに移動し、エディタでdashboard.html
ファイルを開きます。 -
Dashboard Content Area
の同じHTMLdiv
要素内に2つの要素が表示されるように、oj-select-single
カスタムHTML要素の下にoj-chart
カスタムHTML要素を追加します。<oj-select-single id="basicSelect" . . . </oj-select-single> <oj-chart id="barChart" type="bar" data="[[chartDataProvider]]" animation-on-display="auto" animation-on-data-change="auto" hover-behavior="dim" class="chartStyle"> </oj-chart>
-
oj-chart
カスタムHTML要素内で、slot
属性を持つHTMLtemplate
要素を追加して、チャートの各アイテムをレンダリングします。<oj-chart id="barChart" . . . class="chartStyle"> <template slot='itemTemplate' data-oj-as='item'> </template> </oj-chart>
-
テンプレート要素内で、1方向バインディングを使用して現在のオブジェクトからチャート・データを取得する属性を持つ
oj-chart-item
カスタムHTML要素を追加します。<oj-chart id="barChart" . . . class="chartStyle"> <template slot='itemTemplate' data-oj-as='item'> <oj-chart-item value='[[item.data.value]]' group-id='[[ [item.data.group] ]]' series-id='[[item.data.series]]'> </oj-chart-item> </template> </oj-chart>
-
dashboard.html
ファイルを保存します。dashboard.html
コード・スニペットは、add-chart-dDashboard-html.txtのようになります。 -
JET_Web_Application/src/ts/viewModels
ディレクトリに移動し、エディタでdashboard.ts
ファイルを開きます。 -
チャート・データを含む新しいOracle JET
MutableArrayDataProvider
オブジェクトにchartDataProvider
観測可能セットを追加します。class DashboardViewModel { . . . chartDataProvider: MutableArrayDataProvider<string, {}>; constructor() { . . . this.val = ko.observable("pie"); this.chartDataProvider = new MutableArrayDataProvider(this.chartData, { keyAttributes: "id", }); . . . }
-
DashboardViewModel()
クラス内で、Knockoutで観測可能な下にchartData
配列を追加します。この配列の型をArray<Object>
として宣言します。chartTypesDP: MutableArrayDataProvider<ChartType["value"], ChartType>; chartData: Array<Object>; constructor() { this.val = ko.observable("pie"); this.chartData = [ { "id": 0, "series": "Baseball", "group": "Group A", "value": 42 }, { "id": 1, "series": "Baseball", "group": "Group B", "value": 34 }, { "id": 2, "series": "Bicycling", "group": "Group A", "value": 55 }, { "id": 3, "series": "Bicycling", "group": "Group B", "value": 30 }, { "id": 4, "series": "Skiing", "group": "Group A", "value": 36 }, { "id": 5, "series": "Skiing", "group": "Group B", "value": 50 }, { "id": 6, "series": "Soccer", "group": "Group A", "value": 22 }, { "id": 7, "series": "Soccer", "group": "Group B", "value": 46 } ];
-
Oracle JETチャート・コンポーネントのモジュールをインポートします。
import MutableArrayDataProvider = require("ojs/ojmutablearraydataprovider"); import "ojs/ojknockout"; import "ojs/ojselectsingle"; import "ojs/ojlabel"; import "ojs/ojchart";
-
dashboard.ts
ファイルを保存します。dashboard.ts
ファイルは、final-chart-dashboard-ts.txtのようになります。 -
ブラウザに戻り、Webアプリケーションでの変更を表示します。
ブラウザにnavdrawerスタータ・テンプレートが表示され、Webアプリケーションの「ダッシュボード」タブに表示される「棒グラフ」コンポーネントが表示されます。
図Dashboard-with-select-chart.pngの説明
「ダッシュボード」タブには、「チャートの選択」ドロップダウン・リスト・オプションごとに棒グラフ形式のみが表示されます。各チャート形式を表示するには、2つのコンポーネント間に依存関係を追加する必要があります。
-
端末ウィンドウおよびWebアプリケーションを表示するブラウザは開いたままにします。
タスク4: 2つのコンポーネントの接続
-
JET_Web_Application/src/ts/views
ディレクトリに移動し、エディタでdashboard.html
ファイルを開きます。 -
dashboard.html
ファイルで、oj-chart
カスタムHTML要素を編集して、チャート・コンポーネントのtype
属性を一方向バインディングによる単一選択コンポーネントのvalue
属性に接続します。<oj-chart id="barChart" type="[[val]]" . . . </oj-chart>
type
属性でval
を囲む四角形のカッコは、その値を読み取ることはできますが、コンポーネントによって更新することはできません。観測可能な周りの角括弧は、一方向結合を定義します。 -
dashboard.html
ファイルを保存します。dashboard.html
ファイルは、final-connect-dDashboard-html.txtのようになります。 -
ブラウザに戻り、Webアプリケーションでの変更を表示します。
ブラウザに、Webアプリケーションの「ダッシュボード」タブに表示される「単一の選択」および「円グラフ」コンポーネントとともにnavdrawerスタータ・テンプレートが表示されます。
-
様々なチャート形式を表示するには、「チャートの選択」ドロップダウン・リストでオプションを選択します。
-
実行中のWebアプリケーションを表示するブラウザ・ウィンドウまたはタブを閉じます。
-
端末ウィンドウでCtrl+Cを押し、プロンプトが表示されたら
y
と入力してOracle JETツール・バッチ・ジョブを終了します。 -
次のチュートリアルのために、端末ウィンドウを開いたままにします。
その他の学習リソース
docs.oracle.com/learnの他のラボを調べるか、Oracle Learning YouTubeチャネルでさらに無料の学習コンテンツにアクセスします。さらに、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerにします。
製品ドキュメントは、Oracleヘルプ・センターを参照してください。
Add components to an Oracle JET web app
F53094-01
February 2022
Copyright © 2022, Oracle and/or its affiliates.