2014.07.09 MSS Code Factory CFCrm 2.0.12231 Rebuilt with latest code produced by 1.11.12230

The latest code with the new methods for supporting client-server
development and the new test executable for the Swing layer over
a PostgreSQL database has been added.  The new executable just connects
to a database and does nothing useful.
2014.07.09 MSS Code Factory 1.11.12232 Wired an ISchemaSchemaObj to the main window

The main desktop window now has a hook for the schema object interface,
which is initialized by the setup of the CLI for the PostgreSQL Swing
testing main.
2014.07.09 MSS Code Factory CFCrm 2.0.12232 Rebuilt with latest code produced by 1.11.12232

Code refresh of work in progress.  See 1.11 notes for details.
2014.07.09 MSS Code Factory 1.11.12234 Main desktop now displays properly, default connections disabled

The default connection that was established by the CLI is no longer
attempted.  Instead that is going to be handled by a login window,
which will also retrieve the security session for the GUI and establish
the authentication parameters for the backend database connection.  For
now I'm going to rely on the CLI arguments for the cluster, tenant, and
security user information as I do with the Loaders, but in the long run
that needs to change such that the cluster is specified in the configuration
file and you are forced to choose a tenant before proceeding after authenticating.

The fun part will be restricting the list of tenants to those where your
user id appears in the authentications for the tenant's objects as an
indicator that you're allowed to access their data.

But one step at a time.  I'm getting ahead of myself.
2014.07.09 MSS Code Factory CFCrm 2.0.12235 The GUI is starting to take shape with window sizes set and titles displayed

The GUI is coming along nicely, although it's not a huge amount of new
code since the last update.  But it no longer throws the database connection
exceptions because I'm working on shifting that to a login window (which has yet
to be sketched out, much less functional.)

Before that I think I'll work on the menu items for the main window, at least
the display of the Find windows.  What I want to do is sketch out some initial
prototype wiring that just lets you launch all the possible windows in the application,
except maybe the delete confirmations (seeing as there won't be records in the lists
to delete.)

After that I'll work on getting the windows to populate themselves in read-only fashion,
though I might not be mucking about with making widgets read only for a while, as I'll be
more interested in getting data to show up than in properly restricting user functionality
based on the edit state of the objects.
2014.07.09 MSS Code Factory 1.11.12236 Added MenuBar and File menu to the main Swing desktop window

The main window's menu bar is now initialized and has some skeleton
action classes defined and instantiated in order to initialize the menus.
I may need to hang on to references to the actions rather than references
to the menu items, though, as it seems the enable state is kept by the
action not the menu item itself.  One step at a time.

The file menu includes a Find submenu that lists all the unrooted classes
in the application model, which always includes the Audit Actions, Cluster,
Tenant, and various security objects.

The actions don't actually *do* anything yet.
2014.07.09 MSS Code Factory CFCrm 2.0.12237 Added MenuBar and File menu to the main desktop

The main window's menu bar is now initialized and has some skeleton
action classes defined and instantiated in order to initialize the menus.
I may need to hang on to references to the actions rather than references
to the menu items, though, as it seems the enable state is kept by the
action not the menu item itself.  One step at a time.

The file menu includes a Find submenu that lists all the unrooted classes
in the application model, which always includes the Audit Actions, Cluster,
Tenant, and various security objects.

The actions don't actually *do* anything yet.
2014.07.09 MSS Code Factory 1.11.12238 Wired up the launching of the Find windows

The manufactured code for the desktop of the Swing application
now has the actions wired to launch instances of the find windows.
I think I want to restrict the find windows to a single instance,
though, and just do a show() on any existing instances instead of
creating multiples of these core user interfaces.
2014.07.09 MSS Code Factory CFCrm 1.11.12239 Wired up the launching of the Find windows

The manufactured code for the desktop of the Swing PostgreSQL application
now has the actions wired to launch instances of the find windows.
I think I want to restrict the find windows to a single instance,
though, and just do a show() on any existing instances instead of
creating multiples of these core user interfaces.
2014.07.09 MSS Code Factory CFCrm 2.0.12239 Wired up the launching of the Find windows

The manufactured code for the desktop of the Swing PostgreSQL application
now has the actions wired to launch instances of the find windows.
I think I want to restrict the find windows to a single instance,
though, and just do a show() on any existing instances instead of
creating multiples of these core user interfaces.
2014.07.10 MSS Code Factory 1.11.12240 Layout of attribute panels completely reworked

The manufactured code for laying out the attribute panels for a
table has been completely reworked.  No layout manager is used
any more; instead I overload the doLayout() method and calculate
the repositioning of the attribute widgets manually.

Next I'll need to modify the calculation of the widget widths so
that the numeric fields and booleans and other such short fields
don't take up a full 800 pixels of width. :)

I also need to apply what I've learned about coding layouts to the
CFReference widget, which is currently using a grid bag layout.
There is absolutely no need for such complexity with such a simple
widget, and it's not working the way I want it to anyhow.

The tabs of the subobjects and subobject lists have been relabelled,
and the attribute tabs for singleton references are displayed
properly.
2014.07.10 MSS Code Factory CFCrm 2.0.12241 Layout of attribute panels reworked and tabs relabelled

The manufactured code for laying out the attribute panels for a
table has been completely reworked.  No layout manager is used
any more; instead I overload the doLayout() method and calculate
the repositioning of the attribute widgets manually.

The tabs of the subobjects and subobject lists have been relabelled,
and the attribute tabs for singleton references are displayed
properly.
2014.07.10 MSS Code Factory CFLib 1.11.12242 Life, the Universe, and Everything (including updated widgets)

The widgets now estimate minimum and maximum sizes for fixed-format fields
like numerics, and a calculated minimum in the case of text fields, though
no maximum is configured for text fields.  The fixed format date-time fields
also are constrained.

The layout of the CFJReference widget has been completely redone
based on what I learned laying out the attribute panels for the GUI
prototype.  It should deal with resizing properly, and display the
two buttons on the right of the text field that is used to display
the name of the referenced object.
2014.07.10 MSS Code Factory 1.11.12243 Rebuilt with CFLib 1.11.12242, GUI code adjusted

The widgets in CFLib 1.11.12242 now implement calculation of maximum and minimum
sizing.  The maximum sizes are respected by the manufactured code, so
the numeric fields (for example) no longer take up the full width of
the attribute panels.  However, because the attribute panels are embedded
in a scrollable panel, they don't seem to get told to doLayout() when
the scrollable panel is stretched wider or taller than the viewed panel.

I'll have to think on this -- maybe I can probe the parent widget to see
if it's a scrollable panel, query the scrollable panel for it's size, and
adjust my attribute panel width with a forced doLayout() if the scrollable
panel is wider than the minimum size specified for the attribute panel.

Puzzles and postulations.  There are always quircks and misbehaviours
with every GUI toolkit I've ever used (and there are a fair number of
those under my belt.)
2014.07.10 MSS Code Factory CFCrm 2.0.12244 Rebuilt with new layouts

The new widget features provided by CFLib 1.11.12242 are now
incorporated and partially respected by the manufactured GUI
code.  In particular, the maximum field sizes of the fixed-format
fields (such as date-time and numeric values) are now respected
when laying out the attribute panels, and the CFJReference widget
now properly positions it's buttons and text edit without the
assistance of a layout manager (which wasn't working properly anyhow.)

The various internal frames are now resizable, minimizable, and
maximizable as well.  Which is how I discovered the bugs with the
layout of scrollable panels as reported in the 1.11 logs.