Skip to content

Commit 8e8298f

Browse files
authored
✨AI Column: Create file structure (#31151)
1 parent db6e175 commit 8e8298f

File tree

3 files changed

+107
-2
lines changed

3 files changed

+107
-2
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/* eslint-disable @typescript-eslint/no-unused-vars */
2+
import { Controller } from '../m_modules';
3+
4+
export class AiColumnCacheController extends Controller {
5+
public clearCache(columnName: string): void {
6+
7+
}
8+
9+
public getCachedResponse(columnName: string, keys: PropertyKey[]):
10+
Record<PropertyKey, string> | null {
11+
return null;
12+
}
13+
14+
public getCachedString(columnName: string, key: PropertyKey): string | null {
15+
return null;
16+
}
17+
18+
public isEmptyCache(columnName: string): boolean {
19+
return true;
20+
}
21+
}

packages/devextreme/js/__internal/grids/grid_core/ai_column/m_ai_column_controller.ts

Lines changed: 70 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,86 @@
1+
/* eslint-disable @typescript-eslint/no-unused-vars */
2+
13
import type { ColumnsController } from '../columns_controller/m_columns_controller';
4+
import type { DataController } from '../data_controller/m_data_controller';
25
import { Controller } from '../m_modules';
36
import { getAiCommandColumnOptions } from './m_ai_column_controller_utils';
47

58
export class AiColumnController extends Controller {
69
private columnsController!: ColumnsController;
710

11+
private dataController!: DataController;
12+
13+
private dataChangedHandler!: (e) => any;
14+
815
public init(): void {
916
this.columnsController = this.getController('columns');
17+
this.dataController = this.getController('data');
18+
19+
this.dataChangedHandler = this.handleDataChanged.bind(this);
20+
this.dataController.changed.add(this.dataChangedHandler);
21+
22+
this.createAction('onAIColumnRequestCreating');
23+
this.createAction('onAIColumnResponseReceived');
24+
1025
this.addAiCommandColumn();
1126
}
1227

28+
private createAIColumnRequest() {
29+
const options = {};
30+
this.executeAction('onAIColumnRequestCreating', options);
31+
}
32+
33+
private receiveAIColumnResponse() {
34+
const options = {};
35+
this.executeAction('onAIColumnResponseReceived', options);
36+
}
37+
1338
private addAiCommandColumn(): void {
14-
const aiColumnOptions = getAiCommandColumnOptions();
15-
this.columnsController.addCommandColumn(aiColumnOptions);
39+
this.columnsController.addCommandColumn(getAiCommandColumnOptions());
40+
}
41+
42+
private handleDataChanged(e) {
43+
44+
}
45+
46+
private showResult(columnName: string, data: Record<PropertyKey, string>): void {
47+
// TODO
48+
}
49+
50+
// API methods
51+
52+
public publicMethods() {
53+
return [
54+
'abortAIColumnRequest',
55+
'sendAIColumnRequest',
56+
'refreshAIColumn',
57+
'clearAIColumn',
58+
'getAIColumnText',
59+
];
60+
}
61+
62+
public abortAIColumnRequest(columnName: string): void {
63+
64+
}
65+
66+
public sendAIColumnRequest(columnName: string): void {
67+
68+
}
69+
70+
public refreshAIColumn(columnName: string): void {
71+
72+
}
73+
74+
public clearAIColumn(columnName: string): void {
75+
76+
}
77+
78+
public getAIColumnText(columnName: string, key: any): void {
79+
80+
}
81+
82+
public dispose(): void {
83+
this.dataController.changed.remove(this.dataChangedHandler);
1684
}
1785
}
1886

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/* eslint-disable @typescript-eslint/no-unused-vars */
2+
import { Controller } from '../m_modules';
3+
4+
export class AiColumnIntegrationController extends Controller {
5+
public sendRequest(columnName: string, data: any[], additionalInfo: Record<string, any>): void {
6+
7+
}
8+
9+
public abortRequest(): void {
10+
11+
}
12+
13+
public showError(message: string): void {
14+
15+
}
16+
}

0 commit comments

Comments
 (0)