_Notes.txt - Data Framework and Application notes

-------- Next in this approximate order ----------
Crucial Features
  *** Mod DataEditor so parex can override ColumnDef, such as
        EditAwards.parex - FiscalYear - Default is: [[Awards.CurrentFiscalYear]]
    - Default in new row for foreign key combo box
Edit Awards
    - Beautify all tabs
    - Browse
Bugs
    - Mod update to set zero length strings to null, not "".
        This will allow easier and better database use.
        UNTIL THIS IS DONE ACCESS DATABASE MUST BE
        manually redesigned to allow zero length strings.
    - Wrap performer call in transaction, catch ex if not supported
    - Mod MessageBox to allow successive ones without
        closing prior ones. This is cause bad flash.
        Smooth out flash problem.
    - BA tree - Fix Apply causing collapse
    - Invalid field not always putting focus on field
Improvement
    - Complete Swing speedup, almost done
    - Use meta data to determine if table exists, not count


-------- BACKLOG ----------
BUGS
 Cannot edit large Param, due to TextArea limit and JTextArea bugs

FEATURES to implement:

 Ability to open browse list from Navigator bar. This
    would allow not having a browse list appear first.
 Implement view only for task types
 WYSIWYG editor for DataEditor window loyout - DIFFICULT
 Ability to get multiple fields in single browse column
 New Param editor, tree like to handle large Param
 Show delete and other dialogs centered over active frame
 Circular reference on Datastore to prevent GC
 Data loader utility
 Sort by clicking on column header in RowListPanel
 Performance
  - Easy
    - No second query on updates if single table in row set
    - Only update changed columns, no integrity check on unchanged
  - Hard
    - Why is DataEditor load so slow ???
    - Distributed servers, load balancing
    - Caching of result sets, rows
 Ability to custom edit via events, ie BeforeUpdate
 (After stable) Remove DatabaseServer from Database,
    make not Remote
 Server monitor window with these features:
    - Run from any client or server
    - List users currently logged on, logon time
    - Watch users log on, logoff, time out
    - Watch performer activity: all, none, per user
    - View SQL per performer
 Request buildSelectClause - if entity.* then add all
    fields in logical order, not random.

BUGS
 Entity Admin - Lots of awt bugs, probably due to
    extreme event completion lantency.

-----------------------------------------
GLOBAL EVENTS using Hub.getGlobalRouter()

Hooked up by gov.cdc.atsdr.client.Mediator

ui.InfoBar
 Installed by client Mediator (better class???)
 Interests - "SetStatusBarText", "SetStatusBarVisible"
    "SystemActivated", "SystemDeactivated"

ui.WindowMgr
 Sends events to global hub if setSendGlobalEvents(true)
 Signals - "SystemActivated", "SystemDeactivated"

-----------------------------------------
public MyClass getInstance() {
  if(instance == null) {
    synchronized(MyClass.class) {
      if(instance == null) {
        instance = new MyClass();
        // Other initialization...
      }
    }
  }
  return instance;
}
