我正在尝试使用 Moose Glamorous Toolkit 在 Pharo/Smalltalk 中构建类似图形界面的树/大纲。所以,到目前为止,我已经得到了这个模型:
大纲模型 http://www.enlightenment.org/ss/e-53e3dee6777744.68598023.jpg
为此,我使用以下代码:
| browser mainTree |
mainTree := UbakyeNode new.
mainTree becomeDefaultTree.
browser := GLMTabulator new.
browser
column: #tree;
column: [ :c |
c
row: #body;
row: #plugins ].
(browser transmit)
to: #tree;
andShow: [ :a |
(a tree)
title: mainTree header;
children: [ :eachNode |
eachNode children. ] "Children must return a collection" ].
(browser transmit)
to: #body;
from: #tree;
andShow: [ :a | a text title: 'Cuerpo | Body ' ].
(browser transmit)
to: #plugins;
from: #tree port: #selectionPath;
andShow: [ :a | a text title: 'Plugins | Extensiones' ].
browser openOn: mainTree children.
所以我现在有一个浏览器,它显示由 UbakyeNodes 组成的树(我定义的类似树的数据结构),但我不想显示 Ubakye 节点,而是每个节点的标题(标题)和内容(正文)选择它们时。在 Pharo/Moose 社区的帮助下,我明白我需要传递所有孩子的集合(不仅仅是他们的标题),但我不知道该向谁出售该集合中的特定内容以显示在浏览器,例如#tree 面板中的节点标题或#body 面板中的正文。
我还想将每个面板的大小更改为更像屏幕截图中显示的那样,而不是默认的,并且与窗口大小相关。这可能吗?