gnumed-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnumed-devel] (no subject)


From: s j tan
Subject: [Gnumed-devel] (no subject)
Date: Sun, 17 Aug 2003 22:59:29 +1000

This is a description of the ui part of the  java client in
test-area/gnmed.
It's not much, but may be interesting reading. 
 
 
 
 
Demographics Collaboration.
 
java/quickmed/usecases/test/DemographicModel.java
  - an interface shared by DemographicIdentityModel and DemographicPanel
  - the implemented interface methods direct the parameters to the
appropriate
    places in the model and the presentation.
  - also has a few read only lists for user assisted input.
 
java/quickmed/usecases/test/DemographicIdentityModel.java
  - implements the DemographicModel interface. 
  - collaborates with DemographicPanel and InterfaceTransfer.
  - transforms a domain model into the types required by the
    interface and vici-versa.
  
 
java/quickmed/usecases/test/DemographicPanel.java
  - implements DemographicModel interface, which lets it's fields
  be accessed in a easier way via code completion.
 
java/quickmed/usecases/test/InterfaceTransfer.java
  - pushes data between the model and the view, and the view and the
    model . Uses reflection to get properties using the ReadMethods of
    the interface and write using the respective WriteMethods.
  - is the glue between the DemographicIdentityModel and
DemographicPanel
  - pseudo-elegant
 
i-----------------------------------------------------------------------
--
 
Collaboration for updateable Object List tables.
 
java/quickmed/usecases/test/ListObjectTableModel.java
- this implements the TableModel interface required by the
JTable component. A TableColumnModel can also be configured to
give customized renderers and editors as well as other characteristics
to each table column.
- uses reflection to display objects which return a list of
displayable properties through the LimitedViewable.getLimitedView()
interface.
 
 
java/quickmed/usecases/test/Factory.java
- an interface for constructing objects which have a no argument
constructor, but need their properties to be set later, because
the configuration info may not be available when a factory is set
for a particular ListObjectTableModel.
 
 
java/quickmed/usecases/test/Ref.java
- placed inside a Factory object.
- works like a double pointer to return information that is configured
or changes after a Factory is created and set inside a
ListObjectTableModel.
- used for identity objects.
 
 
java/quickmed/usecases/test/LimitedViewable.java
- an interface giving a string list of viewable properties.
 
java/quickmed/usecases/test/Removable.java
- allows removing of an object in a ListObjectTableModel, from
the underlying persistence mechanism , by objects
implementing remove() method.
 
 
 
java/quickmed/usecases/test/SearchSelectable.java
- interface for a selectable dialog. input is (incomplete) search text.
- output is dialog selection.
 
java/quickmed/usecases/test/SelectionDialogListObjectTableModelLinker.ja
va
- this is a whacky interface for linking a SearchSelectable dialog to 
a column editor of a particular column in a ListObjectTableModel
e.g. the drug object of a DrugListView and the 
disease_code of a ProblemView.
 
 
------------------------------------------------------------------------
---
Specific Drug List Item Collaboration.
java/quickmed/usecases/test/DrugListView.java
- a interface for drug list tables.
 
java/quickmed/usecases/test/DummyDrugListView.java
- an implementation. This is returned by the factory implementation
below.
 
java/quickmed/usecases/test/DummyDrugViewFactory.java
- this will return a DummyDrugListView that has a reference to
the current identity and the current managers linked to one session.
 
 
java/quickmed/usecases/test/PrescribeDialog.java
 - the collaborating dialog with
SelectionDialogListObjectTableModelLinker
and ListObjectTableModel for the drug object attribute of a
DrugListView.
 
 
------------------------------------------------------------------------
-----
Specific Problem List Collaboration
 
- similiar to drug list view  interactions.
 
java/quickmed/usecases/test/ProblemView.java
 
java/quickmed/usecases/test/TestProblemView.java
 
java/quickmed/usecases/test/TestProblemViewFactory.java
 
java/quickmed/usecases/test/ProblemDialog.java
 
 
------------------------------------------------------------------------
----
Customized GUI behaviour for JTable.
 
java/quickmed/usecases/test/TableWithPopup.java
      - popup add and delete ( others ?)
java/quickmed/usecases/test/ShortDateCellEditor.java
      - allows date objects instead of strings to be returned.
java/quickmed/usecases/test/ShortDateCellRenderer.java
      - correctly display a short string form of a date object.
 
------------------------------------------------------------------------
----
Persistence layer interface classes, with some utility search, update
functions.
      - sometimes the responsibility is given to a domain class like
        identity , but a lot of the associations are made or broken
        here.  IdentityManager provides the saving and loading of an
identity.
      
java/quickmed/usecases/test/IdentityManager.java
java/quickmed/usecases/test/TestProblemManager.java
java/quickmed/usecases/test/TestGISManager.java
java/quickmed/usecases/test/TestScriptDrugManager.java
 
 
java/quickmed/usecases/test/ManagerReference.java 
      - interface implemented by
 
java/quickmed/usecases/test/SingleSessionManagerReference.java
 
      -This class was added much later to enforce a one session per
identity ,
 so that each identity has it's own cache. What's that useful for?
Possibly for lazy initialization of some of an identities information,
to save on load and update time. Also gives transaction isolation (I
hope)
so aborts don't keep cascading.
 
java/quickmed/usecases/test/SessionHolder.java
 - the ManagerReference does a (bad) implementation inheritance,  so
that the contained managers can get hold of a common session.
 
------------------------------------------------------------------------
------
Miscellaneous GUI Containers.
 
java/quickmed/usecases/test/OtherSummaryPanel.java
 Holder for the summary List views, ( drugs and problem list tables
currently
working ) . 
 
 
 
java/quickmed/usecases/test/SummaryPanel.java
 - holds A DemographicPanel and OtherSummaryPanel inside a panel.
 - passes an identity object to the above 2 contained components.
 
 
java/quickmed/usecases/test/PatientInnerFrame.java
 - holds a SummaryPanel inside a Inner Frame.
 
 
 
java/quickmed/usecases/test/Testgnmed1.java
 - the top-level MDI frame.
 - FILE|NEW will create a new ManagerReference , associated with a new
  identity for a new SummaryPanel.
 - FILE|OPEN will invoke FindIdentity 
 
 
java/quickmed/usecases/test/FindIdentity.java
- will retrieve a list of Names and addresses associated with an
identity.
- selection of an identity will be passed back to Testgnmed1 to create
a new PatientInnerFrame as for FILE|NEW, but with a non-empty identity
object.
 
 
 
------------------------------------------------------------------------
------
Utility classes.
 
java/quickmed/usecases/test/IntrospectingPrinter.java
 - uses reflection to print out an object and recurse into it's
collections.
Can printout a hard to read identity object's tree.
 
 
java/quickmed/usecases/test/WarningInputVerifier.java
  extended by
java/quickmed/usecases/test/MonthYearInputVerifier.java
 - early class used for medicare, vet affairs expiry date validation
warning.
 
java/quickmed/usecases/test/TestHibernateQLForm.java
 - to run test hibernate queries. 
 
java/quickmed/usecases/test/TestRegex.java
 - to debug a regex used in the address object parsing text box 
in DemographicPanel.
 
 
java/quickmed/usecases/test/ComponentCollector.java
  -  recursively goes through each component in a container.
     if the component IS a container, than recurse.
     Otherwise if the component is a sought after type
     then collect it.
     At the end, a collection of ui elements of a specific type are 
     returned in a flat collection.  
 
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]