-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathREADME.architecture
46 lines (35 loc) · 1.73 KB
/
README.architecture
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
Build Pipeline
* Uses ESM Modules
* When using @web/dev-server, Chrome has better error messages than Safari when loading modules fails
What the workflow client is doing
o on start a Client_impl instance is created to receive either feedback from
server, or when there is none,
new Client_impl // strip the _impl, it's a CORBA convention but inside the app's code we don't care
constructor(orb: ORB, server?: inf.Server)
server.setClient(this)
async logonScreen(lifetime: number, disclaimer: string, inRemember: boolean, errorMessage: string)
async homeScreen(cookie: string, avatar: string, email: string, fullname: string)
board = server.getProject(1).getBoard(1)
model = board.getModel()
model.board = board
const listener = new BoardListener_impl(orb, boardmodel)
board.addListener(boardListener)
bind("board", model)
async offline()
let model = new LocalLayerModel()
let layer = new LocalLayer()
model.layers.push(new LocalLayer())
bind("board", model)
flow when working with a server:
| |
FigureEditor -> BoardModel -> Server -> BoardListener_impl -> FigureEditor.updateView()
| |
client server client
transform() transform() transform()
modified.trigger(...)
FigureEditor
transformSelection(matrix: Matrix)
this.model.transform(this.selectedLayer!.id, Tool.selection.figureIds(), matrix)
operation: Operation.TRANSFORM_FIGURES,
figures: figureIdArray,
matrix: matrix