Hi Doru an community,

In almost a week from now I will write an small revision article about this prototyping exercise on Moose/Glamour/Pharo, for structured writing. My ideal would be to write it inside this prototype, but for that I need to be able to edit and store the changes on the tree and its node contents. Hopefully it won't take too much, even for a newbie like me. Even if is not possible, and I need to go back to Leo Editor (http://leoeditor.com/) for reporting and writing the article, this exercise has been really valuable.

This are my issues so far:

Auto-updating objects from the browser is working but I'm having problems to integrate this with my code. To follow better what is happening just:

1. Follow the installation notes on: http://wiki.hackbo.co/doku.php/herramientas:grafoscopio:en:install

2. Run this code:

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
| text mainTree |
mainTree := UbakyeNode new.
mainTree becomeDefaultTree.
text := (mainTree children at: 1) body.
GLMCompositePresentation new wrapper
with: [ :wrapper |
wrapper show: [ :a |
a text ].
wrapper transmit
        fromOutsidePort: #text;
        toOutsidePort: #portIDoNotCareAbout;
        transformed: [ :textComingFromThePresentation |
                text := textComingFromThePresentation ] ];
openOn: text.
(mainTree children at: 1) body: text
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

If I comment the last line, I can explore the Browser Tree and see how #text updates automatically, but if I leave it uncommented I can explore the mainTree and see that is not updating.

Also I tried to put the transmit parameters in the build browser transmit parameter, just here:

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
UbakyeBrowser>>buildBrowser

"(... snipped code)"
(browser transmit)
    to: #body;
    from: #tree;
    andShow: [ :a | self bodyOn: a].
"(...snipped code)"

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

replacing "to:", "from:" and "andShow:" for "fromOutsidePort:", "toOutsidePort:" and "transformed:" as shown in your example, but then the current selection in the tree got disconnected from the body pane.

I would mind to have a explicit button or keyboard shortcut to take what is currently on a text pane and send it all to a particular node for updating, if this is the quickest workaround. So, How can I made this?

Also, Doru showed to me a way to invoke inspector on the current selected node. Suppose that I want to have an emergent window to edit the node header and some tags on it. Is this possible?


Cheers and thanks in advance,

Offray

On 09/03/2014 04:27 AM, Tudor Girba wrote:
Hi,

As I said before, right now, Glamour does not easily the behavior you want, but
you can abuse an existing mechanism of capturing changes of a port through a
transmission that transforms that value.

Here is an example:

text := ''.
GLMCompositePresentation new wrapper
with: [ :wrapper |
wrapper show: [ :a |
a text ].
wrapper transmit fromOutsidePort: #text; toOutsidePort: #portIDoNotCareAbout;
transformed: [ :textComingFromThePresentation | text :=
textComingFromThePresentation ] ];
openOn: text

In this example, we create a transmission that originates in the #text port that
will be populated every time you modify something. This transmission sends the
value to #portIDoNotCareAbout only to have access to the transformation block
where you can do what you want with the textComingFromThePresentation.

To check the behavior:
- execute the code in a Playground,
- type something in the text area that opens,
- inspect the text variable
==> you will see that it contains the latest contents from the text editor

We should promote this mechanism explicitly in Glamour, but in the meantime it
is probably sufficient for your case.

Doru


On Wed, Sep 3, 2014 at 4:47 AM, Offray Vladimir Luna Cárdenas <off...@riseup.net
<mailto:off...@riseup.net>> wrote:

     Hi,

     I'm trying to restate my question to see if I have more luck with any 
answer
     this time.

     I'm making advances with an outliner like app for writing and now I can add
     nodes move them and store them in the really nice STON format. But because
     information on trees is not editable, I would like to try another approach:
     To create an emergent window and put the node tree and node tags on it, and
     the update the this values on the tree node.
     Also, I would like to update some objects from the a Glamour text pane,
     without any special button or action, just while I'm writing on them. If
     this is not possible which is the message to select all text in a body 
panel
     and to send it to a object?

     I will be doing some further advances by my own and keep you posted (may be
     with some more specific/better questions on how to get this behaviour from
     Moose browsers).

     Cheers,

     Offray




--
www.tudorgirba.com <http://www.tudorgirba.com>

"Every thing has its own flow"



Reply via email to