2006 Esug Omnibrowser

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    2006 Esug Omnibrowser - Presentation Transcript

    1. Meta-Driven Browsers Alexandre Bergel, Stéphane Ducasse, Text Colin Putney, Roel Wuyts ESUG 2006 Prague, Czech Republic
    2. Outline 1. The OmniBrowser framework 2. Graph and metagraph 3. Interaction with the domain model 4. The System browser 5. Conclusion Alexandre Bergel 2 / 16
    3. The OmniBrowser Framework A sophisticated framework to define new browsers • It is structured around: • – an explicit domain model – a metagraph (a state machine) that specify navigation with the domain model – a list of actors that define interactions Alexandre Bergel 3 / 16
    4. Domain Model: Files OBNode subclass: #FileNode instanceVariableNames: 'path' ... FileNode>>name ^ (FileDirectory directoryEntryFor: path) name FileNode>>text ^ 'File named: ', self name Alexandre Bergel 4 / 16
    5. Domain Model: Directory FileNode subclass: #DirectoryNode DirectoryNode>>directories | dir | dir := FileDirectory on: self path. ^ dir directoryNames collect: [:each | DirectoryNode on: (dir fullNameFor: each)] DirectoryNode>>files | dir | dir := FileDirectory on: self path. ^ dir fileNames collect: [:each | FileNode on: (dir fullNameFor: each)] DirectoryNode>>text ^ path Alexandre Bergel 5 / 16
    6. Graph and Metagraph to define browsers N object node / metanode N #directories Directory root metanode N is an ancestor of /temp pic1.jpg #files transition File pic2.jpg pic3.jpg (a) Instantiated domain (b) Metagraph Alexandre Bergel 6 / 16
    7. Metagraph and browser definition Creation of a browser: OBBrowser subclass: #FileBrowser Root nodes: FileBrowser>>defaultRootNode ^ DirectoryNode on: '/' FileBrowser>>defaultMetaNode |directory file | directory := OBMetaNode named: 'Directory'. file := OBMetaNode named: 'File'. directory childAt: #directories put: directory; childAt: #files put: file; addActor: FileActor new. ^ directory Alexandre Bergel 7 / 16
    8. Automatic layout with columns and a pane The GUI is built by the framework • It uses a layout similar to the Smalltalk System browser • Alexandre Bergel 8 / 16
    9. Interacting with the domain model with actors An actor defines a column menu: OBActor subclass: #FileActor FileActor>>actionsForNode: aNode ^ {OBAction label: 'remove' receiver: self selector: #remove: arguments: {aNode} keystroke: $x icon: MenuIcons smallCancelIcon. ...} Alexandre Bergel 9 / 16
    10. Important notions of OmniBrowser Core notions: • – Nodes: what my domain is made of? – Metagraph: how do I navigate in my domain? – Actors: how do I interact with my domain? Filter: filtering domain nodes • Definition: accepting new definitions of nodes • Alexandre Bergel 10 / 16
    11. The new system browser... Alexandre Bergel 11 / 16
    12. ... its Metagraph ... Class AllMethod Category Class Environment Method Comment Method Category Metaclass Legend Meta-node Meta-node Filter Transition root Alexandre Bergel 12 / 16
    13. ... and its implementation Omnibrowser core framework Definition Node Actor Browser System browser Class Method Organization Category Class Code Definition Definition Definition Actor Actor Browser Code Node System Browser ClassComment ClassAware Environment Node Node Node Method Method ClassCategory ClassNode CategoryNode Node Node MetaClassN AllMethod ode CategoryNode Alexandre Bergel 13 / 16
    14. Limitations of OmniBrowser ... Hardcoded flow • – Navigation has to follow the left-to-right list construction – Would be difficult to implement Whiskers Currently selected item • – Difficulty to implement advanced browsing facilities like in VisualWorks Alexandre Bergel 14 / 16
    15. ... and its strenghts Ease of use • – do not need to deal with graphical objects Explicit state transition • – graphical objects are automatically updated. Separation of domain and navigation • – better readability of the code Alexandre Bergel 15 / 16
    16. Conclusion Framework to build easily new browser • Based on notion of nodes, metagraph, actors, definition and • filters Included per default in Squeak 3.9 • Already existing browsers: • – changes, implementors, senders, variables, version, ... – coverage browser – dual browser – Traits browser – Pier browser Alexandre Bergel 16 / 16

    + bergelbergel, 3 years ago

    custom

    1134 views, 0 favs, 2 embeds more stats

    Smalltalk is not only an object-oriented programmin more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1134
      • 1122 on SlideShare
      • 12 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 7
    Most viewed embeds
    • 8 views on http://www.bergel.eu
    • 4 views on http://bergel.eu

    more

    All embeds
    • 8 views on http://www.bergel.eu
    • 4 views on http://bergel.eu

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories