2006 Esug Omnibrowser

50 %
50 %
Information about 2006 Esug Omnibrowser

Published on November 15, 2007

Author: bergel

Source: slideshare.net


Smalltalk is not only an object-oriented programming language; it is also known for its extensive integrated development environment supporting interactive and dynamic programming. While the default tools are adequate for browsing the code and developing applications, it is often cumbersome to extend the environment to support new language constructs or to build additional tools supporting new ways of navigating and presenting source code. In this paper, we present the OmniBrowser, a browser framework that supports the definition of browsers based on an explicit metamodel. With OmniBrowser a domain model is described in a graph and the navigation in this graph is specified in its associated metagraph. We present how new browsers are built from predefined parts and how new tools are easily described. The browser framework is implemented in the Squeak Smalltalk environment. This paper shows several concrete instantiations of the framework: a remake of the ubiquitous Smalltalk System Browser, a coverage browser, the Duo Browser and the Dynamic Protocols browser.

Meta-Driven Browsers Alexandre Bergel, Stéphane Ducasse, Text Colin Putney, Roel Wuyts ESUG 2006 Prague, Czech Republic

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

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

Domain Model: Files OBNode subclass: #FileNode instanceVariableNames: 'path' ... FileNode>>name ^ (FileDirectory directoryEntryFor: path) name FileNode>>text ^ 'File named: ', self name Alexandre Bergel 4 / 16

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

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

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

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

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

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

The new system browser... Alexandre Bergel 11 / 16

... its Metagraph ... Class AllMethod Category Class Environment Method Comment Method Category Metaclass Legend Meta-node Meta-node Filter Transition root Alexandre Bergel 12 / 16

... 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

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

... 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

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

Add a comment

Related pages

ESUG 2006 Conference

2 CS11 and ESUG 14, Prague, September 4th - 8th, 2006 Summary of Projects and Talks I begin with Smalltalk Admin talks and my Camp Smalltalk 11 project
Read more

2006 Esug Omnibrowser - Technology - documents.mx

Home; Technology; 2006 Esug Omnibrowser; 2006 Esug Omnibrowser Dec 25, 2014 Technology bergel
Read more

Cryptography for Smalltalkers 2 - ESUG 2006 - Documents

1.Cryptography or Smalltalkers 2 Public Key Cryptography Martin Kobetic Cincom Smalltalk Development ESUG 2006. 2. Contents . Public Key Algorithms
Read more

ESUG 2006 Welcome - Technology - documents.mx

ESUG 2006 Welcome, ESUG 2006, Prague ... Home; Technology; ESUG 2006 Welcome
Read more

Meta-driven Browsers (PDF Download Available)

Meta-driven Browsers. ... With OmniBrowser a domain model is described in a graph ... Pier–The Meta-Described Content Management System ESUG Innovation ...
Read more

Meta-Driven Browsers - esug.org

Meta-Driven Browsers Alexandre Bergel, Stéphane Ducasse, Colin Putney, Roel Wuyts ESUG 2006 Prague, Czech Republic Text
Read more

ESUG Innovation Technology Awards 2008 - vst.ensm-douai.fr

Safar`a – The 21th Century Editor ESUG Innovation Technology Awards 2008 Luigi Panzeri National Research Council IMATI, Pavia – Italy panzeri@imati.cnr.it
Read more

OmniBrowser Roadmap | The Weekly Squeak

Colin Putney has published on the SETools mailing list a roadmap for OmniBrowser. OmniBrowser is a ground up rewrite of the classical system browsers ...
Read more