This document describes design document at module level, provides an interaction of new Designer module with supporting Embedded Browser module and its interaction to other modules using it. It also provides a design of Embedded Browser module API and SPI, and also Designer API.
The picture shows the interaction of the newly suggested modules. It is divided to couple of layers:
Picture No 1 Shows the interaction between the Embedded Browser and new Designer modules and also other relevant modules.
Note, there are also new API's specified in the Picture No 1. Those are following.
There are various obstacles on the way to successfully implement the editing layer on top of the browser component. There are two major approaches. We will need to decide which approach to undertake. Both of the approaches have their advantages and disatvantages. Those approaches are:
Modules:
| Module/Binary Layer | Module Name or Module Example | Role of Module |
|---|---|---|
| Browser Binaries | Mozilal/Firefox, IExplorer etc. binaries | Platform specific binaries providing access to individual browser component implementations. |
| Embedded Browser Modules | MozSwing Module | Implements the Embedded Browser SPI (that way also the API), provides the browser component available to Java. |
| Embedded Browser API/SPI | Embedded Browser API/SPI | Module defining the embedded browser API and SPI, collector and provider of all implementations in a generic manner. |
| Editing Layer | New Designer Module | Enhances the embedded browser component by editing layer, and provides the editing capabilities to its clients. |
| Various Web Technologies | XHTML, Old VW JSF Module | Modules using the New Designer module, controlling and maintaining the model and changes made over the document. |
API's:
| API's and SPI's | Description |
|---|---|
| Embedded Browser API | Definition of Embedded Browser API for clients of the embedded browser. |
| Embedded Browser SPI | Definition of Embedded Browser SPI for providers of the embedded browser. |
| New Designer API | Definition of new Designer API for clients of embedded browser with editing capabilities. |
Outstanding Issues:
| Requirement | Heavyweight Component | Lightweight Component (doppleganger) | |||
|---|---|---|---|---|---|
| Type | Explanation | Problem | Possible Solution | Problem | Possible Solution |
| Transparent Layer on Top of Component | In order to provide the designtime feedback smoothly, like selection, inline editing etc. | Not possible over the heavyweight component | Manipulation of the designtime document directly | Not a problem | |
| Event Interception | In order to control the browser component behaviour and script processing | To be checked, should be possible | Not a problem | ||
| Overlapping of other windows | In order to be integrated in the Swing IDE | Problems overlapping lightweight popups and sliding windows | Should work in JDK 7 | Not a problem | |
| Repainting | Not a problem | Significant issue at this moment | Needs to be fixed | ||
| Scrolling | Not a problem | Not implemented yetw | Needs to be implemented | ||
| Real time changes | Dynamic changes like animation, blinking etc. | Not a problem | Won't work, the image is static | ||
| Mapping locations to elements and vice versa | The model to view, and view to model mapping | Should be possible | Now we have basic mapping of elements to locations | To be checked, should be possible | Now we have basic mapping of elements to locations |
| DnD | Should be possible | Now we have listening, but not Transferable yet | Should be possible | Now we have listening, but not Transferable yet |
| newDesigner.jpg | ![]() |
51625 bytes |