Automated Seaside Interface To A VisualWorks and GemStone Application Framework - Bob Nemec
Automated Seaside Interface To A VisualWorks and GemStone Application Framework - Bob Nemec
1
Requirements
Provide a web based interface to existing
VW views with minimal additional effort
by the domain developer.
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
12
Component layout
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
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
30