ISidePaneContext
これは、すべてのUIイベント・フレームワークで提供されるSidePaneイベントおよびアクションをカプセル化するオブジェクトです。 このオブジェクトは、UIEFの高度なサイド・ペインでのみ機能します。 レガシー・サイド・ペインでは、このオブジェクトでサポートされているイベントおよびアクションはサポートされていません。
SidePaneContextへの参照を取得するには、getSidePaneContext関数を使用します。 このファンクションは、特定のsidePaneIdのsidePaneContextへの参照を提供します。
ノート: SidePaneIdは、ユーザーがUEFで拡張サイド・ペイン(複数サイド・ペイン)を有効にしたIDを示します。
構文は次のとおりです:
getSidePaneContext(sidePaneId: string): Promise<ISidePaneContext>;
Typescriptのコード・サンプルを次に示します。
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const sidePaneContext: ISidePaneContext = await frameworkProvider.getSidePaneContext('sidepane-id');
Javascriptのコード・サンプルを次に示します。
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const sidePaneContext = await frameworkProvider.getSidePaneContext();
関数
サブスクライブ
このファンクションを使用して、SidePaneContextでサポートされているイベントをリスニングします。
次に、構文の例を示します:
subscribe: (requestObject: IEventRequest, callbackFunction: (response:IEventResponse) => void) => ISubscriptionContext;
Typescriptのコード・サンプルを次に示します。
/// <reference path="uiEventsFramework.d.ts"/>
const listenSidePaneOpenEvent = async () => {
const uiEventsFrameworkInstance: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const sidePaneContext: ISidePaneContext = await uiEventsFrameworkInstance.getSidePaneContext('sidePaneId');
const payload: IEventRequest = uiEventsFrameworkInstance.requestHelper.createSubscriptionRequest('cxEventBusSidePaneOpenEvent');
sidePaneContext.subscribe(payload, (res: IEventResponse) => {
const response = res as ISidePaneOpenEventResponse;
const responseData: ISidePaneData = response.getResponseData(); responseData.getActiveSectionId();
});
}
Javascriptのコード・サンプルを次に示します。
const listenSidePaneOpenEvent = async () => {
const uiEventsFrameworkInstance = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const sidePaneContext = await uiEventsFrameworkInstance.getSidePaneContext('sidePaneId');
const payload = uiEventsFrameworkInstance.requestHelper.createSubscriptionRequest('cxEventBusSidePaneOpenEvent');
sidePaneContext.subscribe(payload, (res) => {
const response = res as ISidePaneOpenEventResponse;
const responseData = response.getResponseData();
console.log(responseData.getActiveSectionId());
});
}
subscribeOnce
このファンクションを使用して、SidePaneContextでサポートされているイベントを1回リスニングします。
次のコード例は、構文を示しています:
subscribeOnce: (requestObject: IEventRequest, callbackFunction: (response:IEventResponse) => void) => ISubscriptionContext;
Typescriptのコード・サンプルを次に示します:
/// <reference path="uiEventsFramework.d.ts"/>
const listenSidePaneOpenEvent = async () => {
const uiEventsFrameworkInstance: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const sidePaneContext: ISidePaneContext = await uiEventsFrameworkInstance.getSidePaneContext('sidePaneId');
const payload: IEventRequest = uiEventsFrameworkInstance.requestHelper.createSubscriptionRequest('cxEventBusSidePaneOpenEvent');
sidePaneContext.subscribeOnce(payload, (res: IEventResponse) => {
const response = res as ISidePaneOpenEventResponse;
const responseData: ISidePaneData = response.getResponseData(); responseData.getActiveSectionId();
});
}
JavaScriptのコード・サンプルを次に示します:
const listenSidePaneOpenEvent = async () => {
const uiEventsFrameworkInstance = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const sidePaneContext = await uiEventsFrameworkInstance.getSidePaneContext('sidePaneId');
const payload = uiEventsFrameworkInstance.requestHelper.createSubscriptionRequest('cxEventBusSidePaneOpenEvent');
sidePaneContext.subscribeOnce(payload, (res) => {
const response = res as ISidePaneOpenEventResponse;
const responseData = response.getResponseData();
console.log(responseData.getActiveSectionId());
});
}
公開
このファンクションを使用して、SidePaneContextオブジェクトに対してSidePaneでサポートされている操作を公開します。
次のコード例は、構文を示しています:
publish: (requestObject: IOperationRequest) => Promise<IOperationResponse>;
Typescriptのコード・サンプルを次に示します:
/// <reference path="uiEventsFramework.d.ts"/>
const updateSidePaneContext = async () => {
const uiEventsFrameworkInstance: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const sidePaneContext: ISidePaneContext = await uiEventsFrameworkInstance.getSidePaneContext('sidePaneId');
const payload:IUpdateSidePaneRequest = uiEventsFrameworkInstance.requestHelper.createPublishRequest('UpdateSidePane') as IUpdateSidePaneRequest;
payload.setSectionId('newSectionId'); payload.setIcon('newIcon'); payload.setVisibility(true);
sidePaneContext.publish(payload).then((response: IOperationResponse) => {
console.log(response);
}).catch(() => { })
}
JavaScriptのコード・サンプルを次に示します:
const updateSidePaneContext = async () => {
const uiEventsFrameworkInstance = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const sidePaneContext = await uiEventsFrameworkInstance.getSidePaneContext('sidePaneId');
const payload = uiEventsFrameworkInstance.requestHelper.createPublishRequest('UpdateSidePane');
payload.setSectionId('newSectionId'); payload.setIcon('newIcon'); payload.setVisibility(true);
sidePaneContext.publish(payload).then((response: IOperationResponse) => {
console.log(response);
}).catch(() => { })
}
処分
SidePaneContextオブジェクトでサブスクライブされているすべてのイベントを削除するには、このファンクションを使用します。
dispose:() => void;
次のコード・サンプルは、Typescriptの例を示しています:
/// <reference path="uiEventsFramework.d.ts"/>
const disposeSidePaneEvents = async () => {
const uiEventsFrameworkInstance: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const sidePaneContext: ISidePaneContext = await uiEventsFrameworkInstance.getSidePaneContext('sidePaneId');
sidePaneContext.dispose();
}
次のコード・サンプルは、JavaScriptの例を示しています:
const disposeSidePaneEvents = async () => {
const uiEventsFrameworkInstance = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const sidePaneContext = await uiEventsFrameworkInstance.getSidePaneContext('sidePaneId');
sidePaneContext.dispose();
}
getSupportedEvents
このファンクションを使用して、SidePaneContextオブジェクトでサポートされているすべてのイベントを取得します。
次のコード例は、構文を示しています:
getSupportedEvents(): string[];
次のコード・サンプルは、Typescriptの例を示しています。
/// <reference path="uiEventsFramework.d.ts"/>
const getSupportedEvents = async () => {
const uiEventsFrameworkInstance: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const sidePaneContext: ISidePaneContext = await uiEventsFrameworkInstance.getSidePaneContext('sidePaneId');
const supportedEvents: string[] = sidePaneContext.getSupportedEvents();
}
次のコード・サンプルは、Javascriptの例を示しています。
const getSupportedEvents = async () => {
const uiEventsFrameworkInstance = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const sidePaneContext = await uiEventsFrameworkInstance.getSidePaneContext('sidePaneId');
const supportedEvents = sidePaneContext.getSupportedEvents();
}
getSupportedActions
このファンクションを使用して、SidePaneContextオブジェクトでサポートされるすべてのアクションを取得します。
次のコード例は、構文を示しています:
getSupportedActions(): string[];
次のコード・サンプルは、Typescriptの例を示しています。
/// <reference path="uiEventsFramework.d.ts"/>
const getSupportedActions = async () => {
const uiEventsFrameworkInstance: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const sidePaneContext: ISidePaneContext = await uiEventsFrameworkInstance.getSidePaneContext('sidePaneId');
const supportedActions: string[] = sidePaneContext.getSupportedActions();
}
次のコード・サンプルは、JavascriptのgetSupportedActionsの例を示しています。
const getSupportedActions = async () => {
const uiEventsFrameworkInstance = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const sidePaneContext = await uiEventsFrameworkInstance.getSidePaneContext('sidePaneId');
const supportedActions = sidePaneContext.getSupportedActions();
}
getSidePaneContextId
このファンクションを使用して、SidePaneContextオブジェクトのsidePane contextIdを取得します。
次のコード例は、構文を示しています:
getSidePaneContextId(): string;
次のコード・サンプルは、Typescriptの例を示しています。
/// <reference path="uiEventsFramework.d.ts"/>
const getContextId = async () => {
const uiEventsFrameworkInstance: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const sidePaneContext: ISidePaneContext = await uiEventsFrameworkInstance.getSidePaneContext('sidePaneId');
const contextId: string = sidePaneContext.getSidePaneContextId();
}
次のコード・サンプルは、JavascriptのgetSupportedActionsの例を示しています。
const getContextId = async () => {
const uiEventsFrameworkInstance = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('appname', 'v1');
const sidePaneContext = await uiEventsFrameworkInstance.getSidePaneContext('sidePaneId');
const contextId = sidePaneContext.getSidePaneContextId();
}