Outliner

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Outliner

Pavel Krivanek
Hi all,

I've got the next toy for you :-)

It's couple of months when I was doing something with Marvin (the Self
dialect for Squeak). But there's one part of this project that was
never published and that may be interesting for you - the prototype of
the Self-like outliner. It's stand-alone code so it's not dependent on
the rest of this project.

You can download it here:
http://squeaksource.com/Marvin/Marvin-Outliner-pk.1.mcz
and it looks like this:
http://www.comtalk.net/Squeak/uploads/95/outliner.PNG

You can create some outliners using this code

o := MarvinOutliner for: MarvinOtlObjectAbstractModel  new.
o flyTo: 100@100.

Then you can create slots, create sections of slots, open evaluator,
move slots from one outliner to another, create new object from slots
and so on. But connectors are not working well now and if I remember
it well, the code needs some cleanup.

In fact Marvin is not absolutely dead project (the public repository
doesn't contain the latest version) but SmaCC doesn't have some
features that I need for working with source code and clone families
so I need to write new compiler and I don't have enough time for it
now.

Enjoy!
-- Pavel

Reply | Threaded
Open this post in threaded view
|

[BUG]MarvinOtlEditor(Object)>>doesNotUnderstand: #scrollbarWidth [was: Outliner]

Klaus D. Witzel
Hi Pavel,

is there anything special needed (.image release, other package(s), etc).

/Klaus

25 August 2006 9:33:04 am

VM: Win32 - a SmalltalkImage
Image: Squeak3.9alpha [latest update: #7051]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir ...\kWitzel\My Documents\Squeak3.9
Trusted Dir ...\kWitzel\My Documents\Squeak3.9\kWitzel
Untrusted Dir ...\My Squeak\kWitzel

MarvinOtlEditor(Object)>>doesNotUnderstand: #scrollbarWidth
        Receiver: a MarvinOtlEditor(3637)
        Arguments and temporary variables:
                aMessage: scrollbarWidth
        Receiver's instance variables:
                bounds: 0@0 corner: 320@120
                owner: nil
                submorphs: an Array(a MarvinOtlEditorResizingMorph(1979) a  
ScrollBar(2316) a Tr...etc...
                fullBounds: nil
                color: Color white
                extension: a MorphExtension (3809) [other:  (borderStyle -> a  
SimpleBorder) (vS...etc...
                borderWidth: 2
                borderColor: Color black
                model: nil
                slotName: nil
                open: false
                pinSpecs: nil
                scrollBar: a ScrollBar(2316)
                scroller: a TransformMorph(21)
                retractableScrollBar: false
                scrollBarOnLeft: true
                getMenuSelector: nil
                getMenuTitleSelector: nil
                scrollBarHidden: nil
                hasFocus: false
                hScrollBar: a ScrollBar(1084)
                textMorph: nil
                getTextSelector: nil
                setTextSelector: nil
                getSelectionSelector: nil
                hasUnacceptedEdits: false
                askBeforeDiscardingEdits: true
                selectionInterval: nil
                hasEditingConflicts: false
                resizingMorph: a MarvinOtlEditorResizingMorph(1979)
                resizeAction: nil
                resizerOffset: 0@0

MarvinOtlEditor>>initialize
        Receiver: a MarvinOtlEditor(3637)
        Arguments and temporary variables:

        Receiver's instance variables:
                bounds: 0@0 corner: 320@120
                owner: nil
                submorphs: an Array(a MarvinOtlEditorResizingMorph(1979) a  
ScrollBar(2316) a Tr...etc...
                fullBounds: nil
                color: Color white
                extension: a MorphExtension (3809) [other:  (borderStyle -> a  
SimpleBorder) (vS...etc...
                borderWidth: 2
                borderColor: Color black
                model: nil
                slotName: nil
                open: false
                pinSpecs: nil
                scrollBar: a ScrollBar(2316)
                scroller: a TransformMorph(21)
                retractableScrollBar: false
                scrollBarOnLeft: true
                getMenuSelector: nil
                getMenuTitleSelector: nil
                scrollBarHidden: nil
                hasFocus: false
                hScrollBar: a ScrollBar(1084)
                textMorph: nil
                getTextSelector: nil
                setTextSelector: nil
                getSelectionSelector: nil
                hasUnacceptedEdits: false
                askBeforeDiscardingEdits: true
                selectionInterval: nil
                hasEditingConflicts: false
                resizingMorph: a MarvinOtlEditorResizingMorph(1979)
                resizeAction: nil
                resizerOffset: 0@0

MarvinOtlEditor class(Behavior)>>new
        Receiver: MarvinOtlEditor
        Arguments and temporary variables:

        Receiver's instance variables:
                superclass: PluggableTextMorph
                methodDict: a MethodDictionary(#drawOn:->a CompiledMethod (125)  
#initialize->a ...etc...
                format: 194
                instanceVariables: #('resizingMorph' 'resizeAction' 'resizerOffset')
                organization: ('as yet unclassified' drawOn: initialize initializeFor:)
('acces...etc...
                subclasses: nil
                name: #MarvinOtlEditor
                classPool: nil
                sharedPools: nil
                environment: a SystemDictionary(lots of globals)
                category: #'Marvin-Outliner'
                traitComposition: nil
                localSelectors: nil
                prototype: nil

MarvinOtlEditor class(MorphicModel class)>>new
        Receiver: MarvinOtlEditor
        Arguments and temporary variables:

        Receiver's instance variables:
                superclass: PluggableTextMorph
                methodDict: a MethodDictionary(#drawOn:->a CompiledMethod (125)  
#initialize->a ...etc...
                format: 194
                instanceVariables: #('resizingMorph' 'resizeAction' 'resizerOffset')
                organization: ('as yet unclassified' drawOn: initialize initializeFor:)
('acces...etc...
                subclasses: nil
                name: #MarvinOtlEditor
                classPool: nil
                sharedPools: nil
                environment: a SystemDictionary(lots of globals)
                category: #'Marvin-Outliner'
                traitComposition: nil
                localSelectors: nil
                prototype: nil


--- The full stack ---
MarvinOtlEditor(Object)>>doesNotUnderstand: #scrollbarWidth
MarvinOtlEditor>>initialize
MarvinOtlEditor class(Behavior)>>new
MarvinOtlEditor class(MorphicModel class)>>new
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MarvinOtlEditor class(PluggableTextMorph  
class)>>on:text:accept:readSelection:menu:
MarvinOtlEditor class>>on:
MarvinOtlEvaluator>>initialize
MarvinOtlEvaluator class(MarvinOtlComponent class)>>for:
...etc...

On Fri, 25 Aug 2006 00:30:57 +0200, Pavel Krivanek wrote:

> Hi all,
>
> I've got the next toy for you :-)
>
> It's couple of months when I was doing something with Marvin (the Self
> dialect for Squeak). But there's one part of this project that was
> never published and that may be interesting for you - the prototype of
> the Self-like outliner. It's stand-alone code so it's not dependent on
> the rest of this project.
>
> You can download it here:
> http://squeaksource.com/Marvin/Marvin-Outliner-pk.1.mcz
> and it looks like this:
> http://www.comtalk.net/Squeak/uploads/95/outliner.PNG
>
> You can create some outliners using this code
>
> o := MarvinOutliner for: MarvinOtlObjectAbstractModel  new.
> o flyTo: 100@100.
>
> Then you can create slots, create sections of slots, open evaluator,
> move slots from one outliner to another, create new object from slots
> and so on. But connectors are not working well now and if I remember
> it well, the code needs some cleanup.
>
> In fact Marvin is not absolutely dead project (the public repository
> doesn't contain the latest version) but SmaCC doesn't have some
> features that I need for working with source code and clone families
> so I need to write new compiler and I don't have enough time for it
> now.
>
> Enjoy!
> -- Pavel
>
>



Reply | Threaded
Open this post in threaded view
|

Re: [BUG]MarvinOtlEditor(Object)>>doesNotUnderstand: #scrollbarWidth [was: Outliner]

Pavel Krivanek
I have tested it on Squeak 3.8 without problems.

-- Pavel

On 8/25/06, Klaus D. Witzel <[hidden email]> wrote:

> Hi Pavel,
>
> is there anything special needed (.image release, other package(s), etc).
>
> /Klaus
>
> 25 August 2006 9:33:04 am
>
> VM: Win32 - a SmalltalkImage
> Image: Squeak3.9alpha [latest update: #7051]
>
> SecurityManager state:
> Restricted: false
> FileAccess: true
> SocketAccess: true
> Working Dir ...\kWitzel\My Documents\Squeak3.9
> Trusted Dir ...\kWitzel\My Documents\Squeak3.9\kWitzel
> Untrusted Dir ...\My Squeak\kWitzel
>
> MarvinOtlEditor(Object)>>doesNotUnderstand: #scrollbarWidth
>         Receiver: a MarvinOtlEditor(3637)
>         Arguments and temporary variables:
>                 aMessage:       scrollbarWidth
>         Receiver's instance variables:
>                 bounds:         0@0 corner: 320@120
>                 owner:  nil
>                 submorphs:      an Array(a MarvinOtlEditorResizingMorph(1979) a
> ScrollBar(2316) a Tr...etc...
>                 fullBounds:     nil
>                 color:  Color white
>                 extension:      a MorphExtension (3809) [other:  (borderStyle -> a
> SimpleBorder) (vS...etc...
>                 borderWidth:    2
>                 borderColor:    Color black
>                 model:  nil
>                 slotName:       nil
>                 open:   false
>                 pinSpecs:       nil
>                 scrollBar:      a ScrollBar(2316)
>                 scroller:       a TransformMorph(21)
>                 retractableScrollBar:   false
>                 scrollBarOnLeft:        true
>                 getMenuSelector:        nil
>                 getMenuTitleSelector:   nil
>                 scrollBarHidden:        nil
>                 hasFocus:       false
>                 hScrollBar:     a ScrollBar(1084)
>                 textMorph:      nil
>                 getTextSelector:        nil
>                 setTextSelector:        nil
>                 getSelectionSelector:   nil
>                 hasUnacceptedEdits:     false
>                 askBeforeDiscardingEdits:       true
>                 selectionInterval:      nil
>                 hasEditingConflicts:    false
>                 resizingMorph:  a MarvinOtlEditorResizingMorph(1979)
>                 resizeAction:   nil
>                 resizerOffset:  0@0
>
> MarvinOtlEditor>>initialize
>         Receiver: a MarvinOtlEditor(3637)
>         Arguments and temporary variables:
>
>         Receiver's instance variables:
>                 bounds:         0@0 corner: 320@120
>                 owner:  nil
>                 submorphs:      an Array(a MarvinOtlEditorResizingMorph(1979) a
> ScrollBar(2316) a Tr...etc...
>                 fullBounds:     nil
>                 color:  Color white
>                 extension:      a MorphExtension (3809) [other:  (borderStyle -> a
> SimpleBorder) (vS...etc...
>                 borderWidth:    2
>                 borderColor:    Color black
>                 model:  nil
>                 slotName:       nil
>                 open:   false
>                 pinSpecs:       nil
>                 scrollBar:      a ScrollBar(2316)
>                 scroller:       a TransformMorph(21)
>                 retractableScrollBar:   false
>                 scrollBarOnLeft:        true
>                 getMenuSelector:        nil
>                 getMenuTitleSelector:   nil
>                 scrollBarHidden:        nil
>                 hasFocus:       false
>                 hScrollBar:     a ScrollBar(1084)
>                 textMorph:      nil
>                 getTextSelector:        nil
>                 setTextSelector:        nil
>                 getSelectionSelector:   nil
>                 hasUnacceptedEdits:     false
>                 askBeforeDiscardingEdits:       true
>                 selectionInterval:      nil
>                 hasEditingConflicts:    false
>                 resizingMorph:  a MarvinOtlEditorResizingMorph(1979)
>                 resizeAction:   nil
>                 resizerOffset:  0@0
>
> MarvinOtlEditor class(Behavior)>>new
>         Receiver: MarvinOtlEditor
>         Arguments and temporary variables:
>
>         Receiver's instance variables:
>                 superclass:     PluggableTextMorph
>                 methodDict:     a MethodDictionary(#drawOn:->a CompiledMethod (125)
> #initialize->a ...etc...
>                 format:         194
>                 instanceVariables:      #('resizingMorph' 'resizeAction' 'resizerOffset')
>                 organization:   ('as yet unclassified' drawOn: initialize initializeFor:)
> ('acces...etc...
>                 subclasses:     nil
>                 name:   #MarvinOtlEditor
>                 classPool:      nil
>                 sharedPools:    nil
>                 environment:    a SystemDictionary(lots of globals)
>                 category:       #'Marvin-Outliner'
>                 traitComposition:       nil
>                 localSelectors:         nil
>                 prototype:      nil
>
> MarvinOtlEditor class(MorphicModel class)>>new
>         Receiver: MarvinOtlEditor
>         Arguments and temporary variables:
>
>         Receiver's instance variables:
>                 superclass:     PluggableTextMorph
>                 methodDict:     a MethodDictionary(#drawOn:->a CompiledMethod (125)
> #initialize->a ...etc...
>                 format:         194
>                 instanceVariables:      #('resizingMorph' 'resizeAction' 'resizerOffset')
>                 organization:   ('as yet unclassified' drawOn: initialize initializeFor:)
> ('acces...etc...
>                 subclasses:     nil
>                 name:   #MarvinOtlEditor
>                 classPool:      nil
>                 sharedPools:    nil
>                 environment:    a SystemDictionary(lots of globals)
>                 category:       #'Marvin-Outliner'
>                 traitComposition:       nil
>                 localSelectors:         nil
>                 prototype:      nil
>
>
> --- The full stack ---
> MarvinOtlEditor(Object)>>doesNotUnderstand: #scrollbarWidth
> MarvinOtlEditor>>initialize
> MarvinOtlEditor class(Behavior)>>new
> MarvinOtlEditor class(MorphicModel class)>>new
>   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> MarvinOtlEditor class(PluggableTextMorph
> class)>>on:text:accept:readSelection:menu:
> MarvinOtlEditor class>>on:
> MarvinOtlEvaluator>>initialize
> MarvinOtlEvaluator class(MarvinOtlComponent class)>>for:
> ...etc...
>
> On Fri, 25 Aug 2006 00:30:57 +0200, Pavel Krivanek wrote:
>
> > Hi all,
> >
> > I've got the next toy for you :-)
> >
> > It's couple of months when I was doing something with Marvin (the Self
> > dialect for Squeak). But there's one part of this project that was
> > never published and that may be interesting for you - the prototype of
> > the Self-like outliner. It's stand-alone code so it's not dependent on
> > the rest of this project.
> >
> > You can download it here:
> > http://squeaksource.com/Marvin/Marvin-Outliner-pk.1.mcz
> > and it looks like this:
> > http://www.comtalk.net/Squeak/uploads/95/outliner.PNG
> >
> > You can create some outliners using this code
> >
> > o := MarvinOutliner for: MarvinOtlObjectAbstractModel  new.
> > o flyTo: 100@100.
> >
> > Then you can create slots, create sections of slots, open evaluator,
> > move slots from one outliner to another, create new object from slots
> > and so on. But connectors are not working well now and if I remember
> > it well, the code needs some cleanup.
> >
> > In fact Marvin is not absolutely dead project (the public repository
> > doesn't contain the latest version) but SmaCC doesn't have some
> > features that I need for working with source code and clone families
> > so I need to write new compiler and I don't have enough time for it
> > now.
> >
> > Enjoy!
> > -- Pavel
> >
> >
>
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Outliner [was: BUG]

Klaus D. Witzel
On Fri, 25 Aug 2006 09:46:39 +0200, Pavel Krivanek wrote:

> I have tested it on Squeak 3.8

Yes indeed, it starts in Squeak 3.8 :)

> without problems.

A typical developer understatement ;-)

>

Pavel, I have a working compiler for slot objects in Squeak (even a  
runtime), works "without problems". It does recursive descent parsing, so  
the developer has control and can debug (versus: it works in theory but  
YACC and friends' support for error reporting is terrible).

I am about to adapt my system to make use of the #closures messages  
category of CompiledMethod (Squeak 3.9).

What are your intentions with Marvin:

a - support Smalltalk syntax only
b - support implicit-self sends
c - support message cascading with ; (I do so)

and, besides explicit redirection,

d - support just one superclass (parent*) slot
e - support multiple parent* slots

/Klaus


Reply | Threaded
Open this post in threaded view
|

Re: Outliner [was: BUG]

Pavel Krivanek
On 8/25/06, Klaus D. Witzel <[hidden email]> wrote:

> On Fri, 25 Aug 2006 09:46:39 +0200, Pavel Krivanek wrote:
>
> > I have tested it on Squeak 3.8
>
> Yes indeed, it starts in Squeak 3.8 :)
>
> > without problems.
>
> A typical developer understatement ;-)
>
> >
>
> Pavel, I have a working compiler for slot objects in Squeak (even a
> runtime), works "without problems". It does recursive descent parsing, so
> the developer has control and can debug (versus: it works in theory but
> YACC and friends' support for error reporting is terrible).
>
> I am about to adapt my system to make use of the #closures messages
> category of CompiledMethod (Squeak 3.9).

I was creating the outliner with the possible support of various
prototype enhancements for Squeak so feel free to use it.

> What are your intentions with Marvin:
>
> a - support Smalltalk syntax only
> b - support implicit-self sends
> c - support message cascading with ; (I do so)
>
> and, besides explicit redirection,
>
> d - support just one superclass (parent*) slot
> e - support multiple parent* slots
>

This issues are already resolved and implemented. Marvin uses its own
syntax (intersection of Self and Squeak syntax) and compiler that
translates it directly to Squeak bytecodes. And it has little VM
modifications that enables to store slot definitions and values
directly in one object and enhances it with delegation support.

-- Pavel

Reply | Threaded
Open this post in threaded view
|

Re: Outliner

Klaus D. Witzel
On Fri, 25 Aug 2006 12:42:09 +0200, Pavel Krivanek wrote:
> On 8/25/06, Klaus wrote:
...
>> What are your intentions with Marvin:
...
> This issues are already resolved and implemented.

Ahh, its @

-  
http://lists.squeakfoundation.org/pipermail/squeak-dev/2005-September/094329.html

/Klaus

> -- Pavel



Reply | Threaded
Open this post in threaded view
|

Marvin downloads [was: Outliner]

Klaus D. Witzel
In reply to this post by Pavel Krivanek
Hi Pavel,

got "421 Too many connections. Goodbye" from your ftp host.

If you want, I can create an account for you on my server for you to have  
an ftp mirror. It is running Linux 2.4.27-2 under VMware, my provider is  
in Germany. You'd need ssh.

/Klaus





Reply | Threaded
Open this post in threaded view
|

Re: Marvin downloads [was: Outliner]

Pavel Krivanek
Hi Kalus,

Ok, I will check it. Mirror will be great! Thank you...

-- Pavel

On 8/25/06, Klaus D. Witzel <[hidden email]> wrote:

> Hi Pavel,
>
> got "421 Too many connections. Goodbye" from your ftp host.
>
> If you want, I can create an account for you on my server for you to have
> an ftp mirror. It is running Linux 2.4.27-2 under VMware, my provider is
> in Germany. You'd need ssh.
>
> /Klaus
>
>
>
>
>
>