You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
687 B
TypeScript
28 lines
687 B
TypeScript
3 years ago
|
import {TabState} from "./TabState.rs";
|
||
|
import {FileService} from "../services/file/file.service";
|
||
|
|
||
|
export class AppState {
|
||
|
|
||
|
public tabs: TabState[] = [];
|
||
|
|
||
|
constructor() {
|
||
|
}
|
||
|
|
||
|
public static deserializeJson(stateString: string, fileService: FileService): AppState {
|
||
|
let state = JSON.parse(stateString);
|
||
|
let appState = new AppState();
|
||
|
for (let tab of state.tabs) {
|
||
|
appState.tabs.push(TabState.fromDTO(tab, fileService));
|
||
|
}
|
||
|
|
||
|
return appState
|
||
|
}
|
||
|
|
||
|
public serializeJson(): string {
|
||
|
const tabDTOs = this.tabs.map(tab => tab.getDTO());
|
||
|
return JSON.stringify({
|
||
|
tabs: tabDTOs
|
||
|
});
|
||
|
}
|
||
|
}
|