more ReprTree refactoring
- <Vec Char> ~> <Vec ReprTree> packing/unpacking - remove Arc<RwLock<>> around EditTree - gentle ListEditor update - reactivate PosInt example
This commit is contained in:
parent
26186b3375
commit
47dd4ce747
20 changed files with 564 additions and 508 deletions
examples/tty-06-lines/src
|
@ -148,7 +148,7 @@ impl LineEditor {
|
|||
ctx.clone(),
|
||||
Context::parse(&ctx, "<List Char>")
|
||||
);
|
||||
let chars_seg_seq = ListSegmentSequence::new(chars_edit.get_cursor_port(), chars_edit.get_data_port())
|
||||
let chars_seg_seq = ListSegmentSequence::new(chars_edit.get_cursor_port(), chars_edit.get_edittree_seq() )
|
||||
.read().unwrap().get_view();
|
||||
|
||||
let out_port = ViewPort::new();
|
||||
|
@ -234,7 +234,7 @@ impl LinesEditor {
|
|||
|
||||
let lines_segments = nested::editors::list::ListSegmentSequence::new(
|
||||
list_edit.get_cursor_port(),
|
||||
list_edit.get_data_port()
|
||||
list_edit.get_edittree_seq()
|
||||
).read().unwrap().get_view();
|
||||
let lines_view = lines_segments
|
||||
.map({
|
||||
|
@ -284,7 +284,6 @@ impl LinesEditor {
|
|||
|
||||
let chars_rt = self.make_line(line_value);
|
||||
let chars_edittree = chars_rt
|
||||
.descend(Context::parse(&self.ctx, "EditTree")).unwrap()
|
||||
.edittree(&self.ctx).get()
|
||||
.read().unwrap().clone();
|
||||
|
||||
|
@ -303,19 +302,24 @@ impl LinesEditor {
|
|||
ReprLeaf::from_view( line_port )
|
||||
);
|
||||
|
||||
let mut le_rt = ReprTree::from_singleton_buffer(
|
||||
Context::parse(&self.ctx, "EditTree"),
|
||||
SingletonBuffer::new( Arc::new(RwLock::new(line_edittree)) )
|
||||
);
|
||||
le_rt.write().unwrap().set_halo(Context::parse(&self.ctx, "Line"));
|
||||
le_rt = ReprTree::rise(le_rt);
|
||||
|
||||
self.edit.write().unwrap()
|
||||
.get_edit::< ListEditor >().unwrap()
|
||||
.write().unwrap()
|
||||
.data
|
||||
.push( Arc::new(RwLock::new(line_edittree)) );
|
||||
.push( le_rt );
|
||||
}
|
||||
|
||||
pub fn make_line(&self, line_value: &str) -> Arc<RwLock<ReprTree>> {
|
||||
let ctx = &self.ctx;
|
||||
let mut rt_line = ReprTree::from_str(
|
||||
Context::parse(&ctx, "<List Char>~<Vec Char>"),
|
||||
line_value
|
||||
);
|
||||
let mut rt_line = ReprTree::from_str(line_value);
|
||||
rt_line.write().unwrap().set_halo(Context::parse(&ctx, "<List Char>~<Vec Char>"));
|
||||
|
||||
// create Editor & transfer data to Editor
|
||||
ctx.read().unwrap().apply_morphism(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue