forked from jupytercad/JupyterCAD
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmodelfactory.ts
98 lines (87 loc) · 2.1 KB
/
modelfactory.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import { IJupyterCadDoc, JupyterCadModel } from '@jupytercad/schema';
import { DocumentRegistry } from '@jupyterlab/docregistry';
import { Contents } from '@jupyterlab/services';
import { JupyterCadStepDoc } from './model';
class JupyterCadStepModel extends JupyterCadModel {
fromString(data: string): void {
(this.sharedModel as JupyterCadStepDoc).source = data;
this.dirty = true;
}
protected createSharedModel(): IJupyterCadDoc {
return JupyterCadStepDoc.create();
}
}
/**
* A Model factory to create new instances of JupyterCadModel.
*/
export class JupyterCadStepModelFactory
implements DocumentRegistry.IModelFactory<JupyterCadModel>
{
/**
* Whether the model is collaborative or not.
*/
readonly collaborative =
document.querySelectorAll('[data-jupyter-lite-root]')[0] === undefined;
/**
* The name of the model.
*
* @returns The name
*/
get name(): string {
return 'jupytercad-stepmodel';
}
/**
* The content type of the file.
*
* @returns The content type
*/
get contentType(): Contents.ContentType {
return 'step';
}
/**
* The format of the file.
*
* @returns the file format
*/
get fileFormat(): Contents.FileFormat {
return 'text';
}
/**
* Get whether the model factory has been disposed.
*
* @returns disposed status
*/
get isDisposed(): boolean {
return this._disposed;
}
/**
* Dispose the model factory.
*/
dispose(): void {
this._disposed = true;
}
/**
* Get the preferred language given the path on the file.
*
* @param path path of the file represented by this document model
* @returns The preferred language
*/
preferredLanguage(path: string): string {
return '';
}
/**
* Create a new instance of JupyterCadStepModel.
*
* @returns The model
*/
createNew(
options: DocumentRegistry.IModelOptions<IJupyterCadDoc>
): JupyterCadStepModel {
const model = new JupyterCadStepModel({
sharedModel: options.sharedModel,
languagePreference: options.languagePreference
});
return model;
}
private _disposed = false;
}