19 |
and use the boolean return value to determine whether |
and use the boolean return value to determine whether |
20 |
regeneration is needed. |
regeneration is needed. |
21 |
|
|
22 |
This also fixes the idea that a BuoyViewNode is really a single |
This also fixes the idea that the *BuoyViewMainNode* is really a single |
23 |
view in a single VobScene. |
view in a single VobScene. |
24 |
|
|
25 |
- Should we let keystrokes also not-regenerate the vobscene? |
- Should we let keystrokes also not-regenerate the vobscene? |
143 |
Link.c = TransclusionLink.c + o; |
Link.c = TransclusionLink.c + o; |
144 |
|
|
145 |
|
|
146 |
Implementation |
Interfaces |
147 |
-------------- |
---------- |
148 |
|
|
149 |
Now, the picture gets clearer: the whole structure of the current buoy view |
Now, the picture gets clearer: the whole structure of the current buoy view |
150 |
should be *defined* by a single facade: |
should be *defined* by a single facade: |
197 |
|
|
198 |
The linkId passed to BuoyLinkListener must be unique for each node |
The linkId passed to BuoyLinkListener must be unique for each node |
199 |
and the identifies the link -- it must be the same in both directions. |
and the identifies the link -- it must be the same in both directions. |
200 |
The previous invariant in code is an invariant which the BuoyViewNode interface |
The previous invariant in code is an invariant which these interfaces |
201 |
must obey:: |
must obey:: |
202 |
|
|
203 |
buoyviewnode1.renderMain(..., l); |
buoyviewnode1.renderMain(..., l); |
218 |
Matcher structure can separate left&right links and know which way |
Matcher structure can separate left&right links and know which way |
219 |
|
|
220 |
|
|
221 |
|
The pluggable implementation |
222 |
|
---------------------------- |
223 |
|
|
224 |
|
In this implementation of the BuoyViewMainNode and BuoyViewNodeType interfaces, |
225 |
|
the node and link types are pluggable. There are naturally some problems with |
226 |
|
full pluggability, due to the bidirectionality of the links: some node types |
227 |
|
will only match some other node types, etc. |
228 |
|
|
229 |
|
As the main example, consider the above case with ZZ cell nodes, PP canvases |
230 |
|
and scrollblocks. The ZZ cell nodes and PP canvases are both in ZZstructure |
231 |
|
and use cellviews so they can be handled by the same linking managers, |
232 |
|
but the scrollblocks cannot. |
233 |
|
|
234 |
|
|