Roassal3 icon indicating copy to clipboard operation
Roassal3 copied to clipboard

scriptless save/restore - prerequisite for Drawing Tool

Open bencoman opened this issue 4 years ago • 2 comments

For a long time I've been interested adapting Roassal to be a vector drawing tool like Visio or yEd. Years ago I started doing this to Roassal2, but the stumbling block was how to save/restore a diagram.

I just watched Alexandre's presentation to the UK Smalltalk User Group (https://vimeo.com/473356757) where @1:12 its mentioned working on "scriptless visualisation". Intuitively this would have the same "save/restore" requirement (possibly including user data) as a diagram tool, so I am curious what progress/priority is being put on a "save/restore" facility.

bencoman avatar Nov 08 '20 03:11 bencoman

Hi @bencoman we will work on this issue on future, Roassal Studio is something that we want. RoassalEasel was our first approach. Currently we are working on roassal3 issues related with Layouts, Telescope and Charts, after that we can start to work in RoassalStudio.

In order to save and restore a visualization, one option can be use Fuel and serialize the visualization object into a file.

akevalion avatar Nov 08 '20 03:11 akevalion

I agree that Fuel should fit well to save/restore the shapes of a canvas. I think it's reasonable to avoid saving/restoring the interactions and animations that involve block closures, right?

tinchodias avatar Nov 10 '20 23:11 tinchodias

In case of saving objects its a good answer Fuel

canvas := RSInteraction canvasExample.
FLSerializer serialize: canvas toFileNamed: 'foo.fuel'.
otherCanvas := FLMaterializer materializeFromFileNamed: 'foo.fuel'.
otherCanvas open

I the case of create a basic editor base on nodes and link connections you maybe can use this project based on roassal https://github.com/ObjectProfile/HierarchicalVisualizations

Then creating something like Visio or yEd should be part of new project based on editing nodes and shapes on live for pharo

akevalion avatar May 30 '23 11:05 akevalion