|
SMACS | |||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||
See:
Description
| Interface Summary | |
| ExchangerAction | The wrapper that transforms an XAction into a real swing action. |
| ExchangerApplication | |
| ExchangerDocument | The default implementation of the Exchanger document. |
| ExchangerDocumentFactory | Makes sure the ExchangerElement is created instead of the org.dom4j.Element |
| ExchangerElement | The default implementation of the XElement interface. |
| ExchangerFactory | Factory methods that allow for document and element creation. |
| ExchangerIdentity | The version and name of the Xngr browser application. |
| ExchangerManager | The Manager allows services to interact with other services and returns handles to available documents and elements. |
| ExchangerService | The representation of a service in the system. |
| Class Summary | |
| Main | The main class, used to start the browser application. |
| Main.MainSplash | |
| Splash | The splash screen. |
Xngr derivate browser.
The original attempt is in smacs.gui.browser .* where we do
define our own XElement plus corresponding XFactory and
XDocumentFactoy. We were hoping to see xngr pick up our own
xml tree so we can hand over a smacs tree and xngr plugin
services specially taylored to smacs tree.
That attempt did fail since xngr is largely dependent on
its internal variant of an an XElement named ExchangerElement.
It is therefore not sufficient to subclass XElement and push
it into xngr space since the xngr space will very often do
some `node instanceof ExchangerElement` check - to guard some
code parts that depend on it.
Effectivly, some code parts of xngr were never executed that are essential for correct functioning - leaving our first attempt to provoke a constant series of exceptions and often for nullpointers where you do not know immediately at which point those data items should have been filled in.
After all, we do copy the xngr implementation thereby trying to change about nothing - but we do modify the ExchangerElement drastically. Originally xngr ExchangerElement would subclass dom4j DefaultElement. Now we let smacs ExchangerElement to subclass from smacs tree SimpleNode which in turn is a subclass of a dom4j DefaultElement.
Et voila, everything works correctly. - The correct way of
doing things would be slightly different of course and be
redefining class ExchangerElement as interface ExchangerElement
so that all those `instanceof ExchangerElement` checks are
still working. The very few `new ExchangerElement` calls would
be replaced with a call to an ExchangerElementFactory.
We will keep the latter approach in mind and just head on with the project. The surgeon way with implanting a prothesis seems to work well for now. Remember that the MPL license of xngr requires to publish changes on the net which will hit in when the project is completed to a point of being published on its own.
In the developer version, we continue with smacs.xngr.browser.*
usage being plugged into the appropriate places of the overall
smacs gui system. The smacs.gui.browser.* can not be used for now.
|
SMACS | |||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||