@adaptabletools/adaptable
Version:
Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
74 lines (73 loc) • 3.33 kB
JavaScript
import { ApiBase } from './ApiBase';
import { Fdc3InternalApi } from '../Internal/Fdc3InternalApi';
import { ContextConfiguration } from '../../AdaptableState/Common/Fdc3Context';
export class Fdc3ApiImpl extends ApiBase {
constructor(_adaptable) {
super(_adaptable);
this.internalApi = new Fdc3InternalApi(_adaptable);
}
getDesktopAgent() {
return this.getFdc3Service().getDesktopAgent();
}
buildContextDataFromRow(contextType, rowNode) {
return this.internalApi.mapRowToContextData(contextType, rowNode);
}
buildContextDataForPrimaryKey(contextType, primaryKeyValue) {
const rowNode = this.getGridApi().getRowNodeForPrimaryKey(primaryKeyValue);
if (!rowNode) {
this.logWarn(`No row found for primary key value '${primaryKeyValue}'`);
return undefined;
}
return this.buildContextDataFromRow(contextType, rowNode);
}
raiseIntentFromPrimaryKey(primaryKeyValue, intent, contextType, appIdentifier) {
const rowNode = this.getGridApi().getRowNodeForPrimaryKey(primaryKeyValue);
if (!rowNode) {
this.logWarn(`No row found for primary key value '${primaryKeyValue}'`);
return undefined;
}
return this.raiseIntentFromRow(rowNode, intent, contextType, appIdentifier);
}
raiseIntentFromRow(rowNode, intent, contextType, appIdentifier) {
const contextData = this.buildContextDataFromRow(contextType, rowNode);
return this.getFdc3Service().raiseIntent(intent, contextData, appIdentifier);
}
raiseIntentForContextFromRow(rowNode, contextType, appIdentifier) {
const contextData = this.buildContextDataFromRow(contextType, rowNode);
return this.getFdc3Service().raiseIntentForContext(contextData, appIdentifier);
}
raiseIntentForContextFromPrimaryKey(primaryKeyValue, contextType, appIdentifier) {
const rowNode = this.getGridApi().getRowNodeForPrimaryKey(primaryKeyValue);
if (!rowNode) {
this.logWarn(`No row found for primary key value '${primaryKeyValue}'`);
return undefined;
}
return this.raiseIntentForContextFromRow(rowNode, contextType, appIdentifier);
}
broadcastFromRow(rowNode, contextType, channel) {
const contextData = this.buildContextDataFromRow(contextType, rowNode);
return this.getFdc3Service().broadcast(contextData, channel);
}
broadcastFromPrimaryKey(primaryKeyValue, contextType, channel) {
const rowNode = this.getGridApi().getRowNodeForPrimaryKey(primaryKeyValue);
if (!rowNode) {
this.logWarn(`No row found for primary key value '${primaryKeyValue}'`);
return undefined;
}
return this.broadcastFromRow(rowNode, contextType, channel);
}
getContextLabel(contextType) {
return this.isStandardContextType(contextType)
? ContextConfiguration[contextType]?.label
: contextType;
}
isStandardContextType(contextType) {
return this.internalApi.isStandardContextType(contextType);
}
isStandardIntentType(intentType) {
return this.internalApi.isStandardIntentType(intentType);
}
getFdc3Service() {
return this.getAdaptableInternalApi().getFdc3Service();
}
}