1 |
================= |
========================== |
2 |
Gzz Frontend View |
Gzz Frontend: View Classes |
3 |
================= |
========================== |
4 |
|
|
5 |
|
Views are responsible for generating Vob scenes based on |
6 |
|
the data in the structure. |
7 |
|
|
|
XXX Some description about the view system here :) |
|
8 |
|
|
9 |
`gzz.view`__ package summary |
`gzz.view`__ package summary |
10 |
|
|
13 |
__ view_ |
__ view_ |
14 |
|
|
15 |
|
|
16 |
.. UML-refer:: view |
.. UML:: viewclasses |
17 |
|
|
18 |
|
jlinkpackage gzz.view |
19 |
|
|
20 |
|
package gzz.client |
21 |
|
jlink |
22 |
|
use View |
23 |
|
|
24 |
|
package Vobs |
25 |
|
jlink |
26 |
|
Gzz_Frontend_Vobs.gen.html |
27 |
|
|
28 |
|
bigpackage gzz.view |
29 |
|
jlink |
30 |
|
|
31 |
|
class ViewContext "interface" |
32 |
|
jlink |
33 |
|
methods |
34 |
|
Cell getAccursed() |
35 |
|
Dim[] getDims() |
36 |
|
CellView getCellView() |
37 |
|
CellView getCellContentView() |
38 |
|
boolean isMarked() |
39 |
|
java.util.List getCursorColor(Cell c) |
40 |
|
int getCursorOffset(Cell c) |
41 |
|
|
42 |
|
class View "interface" |
43 |
|
jlink |
44 |
|
use ViewContext |
45 |
|
use CellView |
46 |
|
use Vobs |
47 |
|
methods |
48 |
|
void render(VobScene vs, int box, ViewContext context) |
49 |
|
|
50 |
|
class CellView "abstract" |
51 |
|
jlink |
52 |
|
methods |
53 |
|
void getSize(Cell c, ViewContext context, float[] out) |
54 |
|
void getSize(Cell c, float scale, ViewContext context, float[] out) |
55 |
|
void place(Cell c, VobScene vs, int box, ViewContext context) |
56 |
|
use ViewContext |
57 |
|
use Vobs |
58 |
|
|
59 |
|
--- |
60 |
|
ViewContext.c = (0, 10); |
61 |
|
|
62 |
|
View.c = (250, 100); |
63 |
|
vertically(50, view_v, View, CellView); |
64 |
|
|
65 |
|
|
66 |
|
gzz.client.c = (0, 200); |
67 |
|
|
68 |
|
Vobs.c = (500, ypart ViewContext.c); |
69 |
|
|
70 |
|
pad = 30; |
71 |
|
gzz.view.nw = ViewContext.nw +(-pad, 100); |
72 |
|
xpart gzz.view.e = xpart(CellView.e) + pad; |
73 |
|
|
74 |
|
CellView actually appears in at least two different roles: for placing cells |
75 |
|
and for placing cell contents. The following diagram shows the sequence in which a |
76 |
|
view might work. |
77 |
|
|
78 |
|
.. UML:: view_seq |
79 |
|
|
80 |
|
seqobject View |
81 |
|
seqobject CellView |
82 |
|
seqobject CellContentView |
83 |
|
seqobject ViewContext |
84 |
|
|
85 |
|
sequence useView |
86 |
|
call View "render(vs, box, context)" |
87 |
|
call ViewContext "getCellView()" |
88 |
|
return |
89 |
|
call ViewContext "getAccursed()" |
90 |
|
return |
91 |
|
call CellView "getSize(null, context, size[])" |
92 |
|
call ViewContext "getCellContentView()" |
93 |
|
call CellContentView "getSize(c, scale, context, size)" |
94 |
|
return |
95 |
|
return |
96 |
|
call CellView "place(c, vs, box, context)" |
97 |
|
call ViewContext "getAccursed()" |
98 |
|
return |
99 |
|
call ViewContext "getCellContentView()" |
100 |
|
return |
101 |
|
call ViewContext "getCursorColors(c)" |
102 |
|
return |
103 |
|
call CellContentView "place(c, vs, box, context)" |
104 |
|
return |
105 |
|
return |
106 |
|
--- |
107 |
|
View.c = (0,0); |
108 |
|
horizontally(100, view_h, View, CellView, CellContentView, ViewContext); |
109 |
|
|
110 |
|
|
111 |
|
|
|
.. UML-refer:: viewseq |
|