入力エンドポイントは、ウィジェットのJavaScriptコードで使用する前にウィジェット・テンプレートに宣言する必要があります。これを行うには、config.xml
を開いて<inputendpoint>
要素を<wiring>
セクションに追加します。最終結果は次のようになります:
<wiring>
<inputendpoint
name="coord"
type="text"
label="Show forecast by coord"
description="Shows the weather forecast for a given location (a latitude longitude coordinate)."
friendcode="location"
/>
</wiring>
これは、RDF (turtle)を使用するときに入力エンドポイントを宣言する方法です:
wire:hasPlatformWiring [ a ;
wire:hasInputEndpoint [ a ;
rdfs:label "Show forecast by coord";
dcterms:description "Shows the weather forecast for a given location (a latitude longitude coordinate).";
dcterms:title "coord";
wire:friendcode "location";
wire:type "text" ] ];
ウィジェット記述子で入力エンドポイントが宣言されたら、このMashupPlatform.wiring.registerCallback
メソッドを使用してこのエンドポイントのコールバックを登録できます 。入力エンドポイントの登録に加えて、イベント・データを使用する前にそのイベント・データを処理し、特定のロケーションの予測データが要求されていることをユーザに通知する必要があります。これは、次のコードを使用して実行できます:
var searchByCoordListener = function searchByCoordListener(event_data) {
var tmp, coord;
tmp = event_data.split(',');
coord = {
lat: tmp[1],
lon: tmp[0]
};
startLoadingAnimation();
getForecastByCoord(coord, function (forecast_data) {
updateWeatherForecast(forecast_data);
stopLoadingAnimation();
}, function () {
clearWeatherForecast();
stopLoadingAnimation();
});
};
MashupPlatform.wiring.registerCallback("coord", searchByCoordListener);