Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

Preview:

Citation preview

1

Seaside Interface to Legacy Smalltalk App

Bob NemecCherniak Software

2

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

A web interface for free.

3

A Seaside builderThis is not a general solutionIt uses framework meta data to build Seaside

components

4

5

6

7

8

9

10

BuilderReads the window spec identified by the meta dataCreates a ‘widget component’ for each type of widgetEach component has the widget’s window spec detailsFramework metadata defines widget behavior

ButtonCheck boxCombo boxDividerGroup boxInput fieldLabel

NotebookRadio buttonListSubcanvasTableText editor

11

ContainerLayout the generated components using the size and

position information in the window spec

12

Component layoutAdd to new line

Add to a group box

Add to same line

13

Component layout

Add tall component

Add to tall row

14

Widget position and sizeAdded convenience methods to Array

#specElementAfter:#specElementAfter:ifAbsent:

Extract origin and corner as offset from parentTranslate proportional values to fixed points

15

AdjustmentsIt’s easier to have a small adjustment than to make the

layout code perfect

16

Dialog promptsSemaphore handoff to forked process

17

Reporting Print preview in VW client

18

Reporting Print preview in browser

19

ReportingWrite 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

20

Mobile devicesSimplified views will be used for mobile devicesFlag is set on launcher entries and window specs

21

Diagnostic toolsWindow spec view – build window spec from components

22

Load balancingA dispatcher image uses OpenTalk to find idle client

imageA cookie with port number & millisecond clock value is

used to bind session to client image

23

Dispatcher

24

Client portalsUsing both domain and coded Seaside components

25

More SeasideIssue LibraryPatch ManagerMediaWiki contentIVR VXML serveriCal serverXML data for MS Office

26

Issue Library

27

Patch Manager

28

MediaWiki content

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

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

29

IVR VXML Server

30

Next stepsLots of javascript Mobile devicesIntegration with client web sites

Thank you to everyone that has contributed to Seaside