Difference between revisions of "LogbookTodo"

From AardRock Wiki
Jump to navigation Jump to search
m (minor edit)
(-todo)
 
(16 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== Todo ==
<font color="red">'''Warning''':</font> This section is obsolete.  Please report bugs at http://feedback.aardrock.com.
== Done ==
* Logbook's listener slows down Cheetah's shutting down
** Done: Chris
* Toevoegen van nieuwe items in het Home scherm werkt niet meer.
** Done: Martijn/Chris
* Ook cellen waarvoor de waarde <code>null</code> was moeten editable worden.
** Verander <code>setValueAt</code> en <code>isCellEditable</code>.
** Done: Martijn/Chris
* Er moet een listener komen op het RDF model. Het LogbookModel vertaalt de RDF events naar table even1ts en vuurt deze (LogbookModel.fireXxx()).
** Done: Chris
* De RDF objecten moeten URIs krijgen.
** Done: Chris
* De cellen moeten editable worden (implementeer LogbookModel.setValueAt()); de veranderingen worden naar RDF gedelegeerd.
** Done: Chris
* Comments lijken niet te werken. In plaats van comments worden de bloedglucosewaarden getoond.
** De comments worden wel getoond, alleen bij het opslaan werd de bloedglucosewaarde opgeslagen ipv de comment
** Done: Chris
* Als er nieuwe rows toegevoegd worden via b.v. het Home-scherm moet dit ook worden doorgegeven.
** Done: Martijn
* Cellen (afzonderlijke entries) kunnen verwijderd worden (met Delete knop)
** Done: Martijn
== Plan ==
* Objecten moeten een URI krijgen
* Objecten moeten een URI krijgen
** Vorm: <code>cheetah://email/classname/creation_timestamp</code>
** Vorm: <code>cheetah://email/classname/creation_timestamp</code>
Line 20: Line 47:
Rows in a table are in alternating colors. The current active row is highlighted (with a blue background-color for example).
Rows in a table are in alternating colors. The current active row is highlighted (with a blue background-color for example).


=== Handling events ===
When a statement is added:
* If the subject is the logbook entries list, a logbook entry was added. Update cache and fire event.
* Else if the subject is a logbook entry, one of the entry's properties was set.
** If the entry is in the timestampToRow map, the entry is in the account's logbook entries list. Locate the row and column, update cache and fire event.
** Else the entry is not in the logbook entries list. No action needed.


[[Category:Todo]]
When a statement is removed:
* If the subject is the logbook entries list, a logbook entry was removed. Update cache and fire event.
* Else if the subject is a logbook entry, one of the entry's properties was removed.
** If the entry is in the timestampToRow map, the entry is in the account's logbook entries list. Locate the row and column, update cache and fire event.
** Else the entry is not in the logbook entries list. No action needed.

Latest revision as of 19:23, 2 February 2007

Todo

Warning: This section is obsolete. Please report bugs at http://feedback.aardrock.com.

Done

  • Logbook's listener slows down Cheetah's shutting down
    • Done: Chris
  • Toevoegen van nieuwe items in het Home scherm werkt niet meer.
    • Done: Martijn/Chris
  • Ook cellen waarvoor de waarde null was moeten editable worden.
    • Verander setValueAt en isCellEditable.
    • Done: Martijn/Chris
  • Er moet een listener komen op het RDF model. Het LogbookModel vertaalt de RDF events naar table even1ts en vuurt deze (LogbookModel.fireXxx()).
    • Done: Chris
  • De RDF objecten moeten URIs krijgen.
    • Done: Chris
  • De cellen moeten editable worden (implementeer LogbookModel.setValueAt()); de veranderingen worden naar RDF gedelegeerd.
    • Done: Chris
  • Comments lijken niet te werken. In plaats van comments worden de bloedglucosewaarden getoond.
    • De comments worden wel getoond, alleen bij het opslaan werd de bloedglucosewaarde opgeslagen ipv de comment
    • Done: Chris
  • Als er nieuwe rows toegevoegd worden via b.v. het Home-scherm moet dit ook worden doorgegeven.
    • Done: Martijn
  • Cellen (afzonderlijke entries) kunnen verwijderd worden (met Delete knop)
    • Done: Martijn

Plan

  • Objecten moeten een URI krijgen
    • Vorm: cheetah://email/classname/creation_timestamp
    • E.g.: cheetah://chris@example.com/insulinEntry/4589778925
  • Een invoer van meerdere entries moet dezelfde timestamp krijgen
  • We moeten een snelle cache in ons TableModel bouwen
  • De cache moet wijzigingen doorgeven aan het RDFModel
  • De cache moet luisteren naar wijzigingen op het RDFModel
    • De cache moet op een snelle manier deze wijzingen doorvoeren (mappen van URI naar rownumber)
    • Waarschijnlijk een Hash bijhouden met URI's als keys en rownumbers als values
  • De rows moet een aggregatie zijn van alle entries met dezelfde timestamp
  • Iedere 5 minuten RDF-db opslaan

Ideas

Propagating changes

When the JTable is changed, the setValueAt of the TableModel is called. The TableModel passes translates this to a setProperty of the RDFModel. When the RDFModel is changed, an event is fired an the TableModel and all other listeners will receive this event. The TableModel will update itself (within a recent amount of time), and will send a table-event to the GUI.


User Interface

Rows in a table are in alternating colors. The current active row is highlighted (with a blue background-color for example).

Handling events

When a statement is added:

  • If the subject is the logbook entries list, a logbook entry was added. Update cache and fire event.
  • Else if the subject is a logbook entry, one of the entry's properties was set.
    • If the entry is in the timestampToRow map, the entry is in the account's logbook entries list. Locate the row and column, update cache and fire event.
    • Else the entry is not in the logbook entries list. No action needed.

When a statement is removed:

  • If the subject is the logbook entries list, a logbook entry was removed. Update cache and fire event.
  • Else if the subject is a logbook entry, one of the entry's properties was removed.
    • If the entry is in the timestampToRow map, the entry is in the account's logbook entries list. Locate the row and column, update cache and fire event.
    • Else the entry is not in the logbook entries list. No action needed.