Doco Home Hints Home

Platypus Hints

This section describes how to use Platypus in practice.

The tutorial section gives a series of slices through the development of an app using Platypus - this is a rather idealised view of how Platypus is used. If only development were always so clean, so linear ... :-). This section gives a rather more real-world view of development using Platypus.

The tools section describes what the various Platypus tools do. This section describes how to use the tools.

Overview of development process
This section gives an overview of the various stages we go through in developing a Platypus app. In particular, it describes how changes to earlier stages are worked into the app after the bulk of development has passed that stage.
Names
Good choice of names is critical to avoiding confusion. Here are the guidelines we follow in choosing ID and NAME attributes, as well as other naming conventions.
Features
Describes how to implement particular features:
Subheaders in tables
Hints on various steps
Marking up the HTML
Editing a PO conf file
Editing presentation layer skeleton Java
Editing business layer skeleton Java
Adding an extra PO


Documentation in progress 

Just for security, each app should keep a snapshot of the
production classes - and probably the whole Platypus. This could save -
serious grief rolling back Platypus for maintenance after the app has been
fielded. 



Changing the name of a PO?
--------------------------

This requires edits all over the place: Makefiles, Java imports, static
class references (if any), dev.conf, all references in the PO config files,
config.xmlc, doc/status.html, and thats all I can think of at the moment
(24Aug99). Currently (17Aug99) Pond doesn't give very good error messages
about wrong PO names in the config files.



Case Inconsistency between Docuverse and OpenXML
------------------------------------------------

Porting from Docuverse to OpenXML threw up a nasty problem: it seems
Docuverse treats attribute names as uppercase, but OpenXML treats them as
lower case. OpenXML doesn't seem to provide case-insensitve access to
attributes. (NOTE: I've had a quick look at OpenXML, and can't track down
where it forces attribute names to lower case. Maybe it doesn't.)

Anyway, I'm going through Platypus, and putting all hardcoded attribute
names into lower case. This means calls to methods: getAttribute(),
getNamedItem().

NOTE: If we ever return to Docuverse, we'll need to deal with the case issue
again :-(.

This affects production code as well as the development code. See the code
generated for CHECKBOXes in DynamicNode.java.


Doing subheaders in accesses
----------------------------

Describe how we do this ... see EditWorkItemsForm, EditWorkItemsResults,
ReportPeriodResults.


Regenerating POs Java
---------------------

To regenerate a POs Java, you need to (1) either delete the
appName/.../XxxxBase.java file or touch the src/.../Xxxx.conf file (so Pond
will run again, and overwrite the skeleton in ) and (2) delete the
src/.../Xxxx.java (so the skeleton will be copied from view/ into src/).