RiverWare 5.1 Workspace Qt3 QCanvas to Qt4 QGraphicsView Port -- Hit Refresh
Development Tasks / Estimate -- 1-4-2009

Development Tasks and Estimates (below)
 
Prototyping Work

For this work, being our first with Qt Graphics View classes, we did some initial experimental prototyping. A "Test" QGraphicsView-based Workspace Canvas was added to RiverWare. This implements SimObj QGraphicsItems (each with a type icon and name label) and supports these features: See also [See screenshots and info].

  1. Workspace Canvas Configuration: Background Color, Text Color, and Font Selection.
  2. SimObj QGraphicsItem (with Icon and Name Label) Creation from Sim workspace notifications.
  3. SimObj QGraphicsItem Deletion, Renaming and Moving from SimObj notifications.
  4. SimObj Creation and Deletion through a Context Menu operations.

The QGraphicsView and QGraphicsScene work can be used for production development -- in particular, item (1), above, and the integration of these classes with the RiverWare Workspace Dialog.

 
Design Work

See the proposed class designs (class diagrams) for the RiverWare QGraphicsView classes.

The initial Qt-based RiverWare Workspace GUI was implemented using the Qt3 "Canvas" managed-graphics classes. Graphical objects are represented by C++ classes managed within Qt with implementations defined in RiverWare subclasses. In Qt4 (starting with Qt version 4.2), the Qt3 "Canvas" classes were replaced with "Graphics View" classes having a very similar architecture.

     
  Qt 3 Qt 4.2
View : QCanvasView QGraphicsView
Model : QCanvas QGraphicsScene
Model Objects : QCanvasItem
 and subclasses
QGraphicsItem
 and subclasses

The process of porting to Qt4 Graphics View classes is fairly straight forward. See [Qt] Porting to Graphics View.

 
Development Tasks and Estimates

It would be very reasonable to implement (and optionally, deliver) the Simulation View port before the Accounting View and Locator View ports. (The QGraphicsView Test prototype does, in fact, implement "canvases" of both architectures within a single RiverWare Workspace dialog).

  1. Simulation Workspace    
  2. Accounting Workspace
  3. Locator View
  4. Summary
 
(1) Simulation Workspace and Support Development
Est.
(Days)
Module Task
0.0 RwGraphicsScene Canvas Property Configuration (Background Colors, Text Color, Font) [Done].
1.5 RwGraphicsView Spacial Navigation / Zooming.
1.5 SimObjGfxItem SimObj Item (Composite: QGraphicsPixmapItem and QGraphicsTextItem); "move" handling; tooltip. Adaptation of prototype class, including callbacks from SimObj.
2.0 WorkspaceScene Selection Mechanism and integration of Workspace operations on selected objects.
2.0 LinkGfxItem Link Item; dynamic geometry maintenance; display (-group) attributes; tooltips.
0.5 WorkspaceScene Context Menu -- Workspace (completion).
1.0 SimObjGfxItem Context Menu -- SimObj Item; linking operations.
1.0 LinkGfxItem Context Menu -- physical Link deletion and Display Group membership.
2.0 (all) Integration / Testing / Documentation
Total Days: 11.5 (Simulation Workspace and Support Development)
 
(2) Accounting Workspace
Est.
(Days)
Module Task
0.5 AccountingScene Minor adaptation of SimulationScene
3.0 SimObjRegionGfxItem
and AccountGfxItem
Explicit geometry management of AccountGfxItems, including dragging AccountGfxItems to reorder them within a SimObjRegionGfxItem.
1.0 SupplyGfxItem Supply Item; dynamic geometry maintenance; display (-group) attributes; tooltips.
1.0 TransferGfxItem Transfer Supply Item; dynamic geometry maintenance; display (-group) attributes; tooltips.
1.5 AggAccountGfxItem Aggregate Account Item, aggregation operations.
0.5 AccountingScene and
SimObjGfxItem
Context Menu enhancment -- Workspace: Layout Network; SimObj Region Item; Add Account operations.
1.0 AccountGfxItem Context Menu -- Account Item, including Add Supply (link) operations.
2.0 (all) Integration / Testing / Documentation
Total Days: 10.5 (Accounting Workspace)
 
(3) Locator View
Est.
(Days)
Module Task
2.0 LocatorView a QGraphicsView subclass, a view on a WorkspaceScene instance.
 
(4) Summary
Est.
(Days)
Task
11.5 Simulation Workspace and Support Development
10.5 Accounting Workspace
2.0 LocatorView
Total Days: 24.0

--- (end) ---