SMACS

Package smacs.xngr.browser

Xngr derivate browser.

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.
 

Package smacs.xngr.browser Description

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