0% found this document useful (0 votes)
117 views30 pages

Automated Seaside Interface To A VisualWorks and GemStone Application Framework - Bob Nemec

This document describes a Seaside builder that provides a web interface to existing views in a legacy Smalltalk application with minimal effort. The builder reads window specification metadata to generate Seaside components that replicate the existing user interface. It handles component layout and positioning based on the specifications. This allows exposing views in the legacy application to the web without having to reimplement them.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
117 views30 pages

Automated Seaside Interface To A VisualWorks and GemStone Application Framework - Bob Nemec

This document describes a Seaside builder that provides a web interface to existing views in a legacy Smalltalk application with minimal effort. The builder reads window specification metadata to generate Seaside components that replicate the existing user interface. It handles component layout and positioning based on the specifications. This allows exposing views in the legacy application to the web without having to reimplement them.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 30

Seaside Interface to

Legacy Smalltalk App


Bob Nemec
Cherniak Software

1
Requirements
Provide a web based interface to existing
VW views with minimal additional effort
by the domain developer.

A web interface for free.

2
A Seaside builder
This is not a general solution
It uses framework meta data to build Seaside
components

3
4
5
6
7
8
9
Builder
Reads the window spec identified by the meta data
Creates a ‘widget component’ for each type of widget
Each component has the widget’s window spec details
Framework metadata defines widget behavior

Button Notebook
Check box Radio button
Combo box List
Divider Subcanvas
Group box Table
Input field Text editor
Label

10
Container
Layout the generated components using the size and
position information in the window spec

11
Component layout
Add to new line

Add to a group box

Add to same line

12
Component layout

Add tall component

Add to tall row

13
Widget position and size
Added convenience methods to Array
#specElementAfter:
#specElementAfter:ifAbsent:
Extract origin and corner as offset from parent
Translate proportional values to fixed points

14
Adjustments
It’s easier to have a small adjustment than to make the
layout code perfect

15
Dialog prompts
Semaphore handoff to forked process

16
Reporting Print preview in VW client

17
Reporting Print preview in browser

18
Reporting
Write output to a Pixmap
Render result in lightbox

image := pixmap asGif.



image gifBytes seasideMimeDocument
mimeType: Seaside.WAMimeType imageGif

Full report would be printed to a PDF

19
Mobile devices
Simplified views will be used for mobile devices
Flag is set on launcher entries and window specs

20
Diagnostic tools
Window spec view – build window spec from components

21
Load balancing
A dispatcher image uses OpenTalk to find idle client
image
A cookie with port number & millisecond clock value is
used to bind session to client image

22
Dispatcher

23
Client portals
Using both domain and coded Seaside components

24
More Seaside
Issue Library
Patch Manager
MediaWiki content
IVR VXML server
iCal server
XML data for MS Office

25
Issue Library

26
Patch Manager

27
MediaWiki content

{{#webservice:cslx4.cherniaksoftware.com:48197
/Issues?wiki=problems:summary| %//div%}}

{{#webservice:cslx4.cherniaksoftware.com:48197
/Issues?wiki=sidebar| %//div%}}
28
IVR VXML Server

29
Next steps
Lots of javascript
Mobile devices
Integration with client web sites

Thank you to everyone that has contributed to Seaside

30

You might also like