New architecture created on 04/02/09 following a MVC approach Elements of the architecture: * Data structure: Attributed tree -------------------------------------- in namespace creaImageIO::tree Tree : Attributed tree structure inherits Node holds a vector of root TreeNode TreeData : Abstract class to store user data on a tree Node : belong to a Tree, holds a pointer on parent Node, holds a vector of children Node NodeData : Abstract class to store user data on a tree node Descriptor : Descriptor of the structure a tree (number of levels, descriptors of each level, ...) holds a vector of LevelDescriptor LevelDescriptor : holds a vector of TreeAttributeDescriptor AttributeDescriptor : stores name, dicom group/elem, flags Comparator: Abstract definition of a comparator of Node Comparison is done by operator()(Node* const &, Node* const &) ComparatorWithOrder : Abstract Comparator whose order can be reversed Concrete comparison is done by method compare(Node* const &, Node* const &) LexicographicalComparator : A Comparator which stores a vector of Comparators and which performs lexicographical comparison IntComparator : Compares the values of a given Attribute of the Nodes which is decoded as an int value FloatComparator : Compares the values of a given Attribute of the Nodes which is decoded as a float value StringComparator : Compares the values of a given Attribute of the Nodes which is decoded as a string value * Models : TreeHandler and descendants -------------------------------------- TreeHandler : Abstract class which 'handles' a Tree structure. Can: Load the children of a given Node SQLiteTreeHandler : Concrete TreeHandler which manages a tree stored in a sqlite database CppSQLite3.h / CppSQLite3.cpp : C++ interface to sqlite db ... ImageFinder : Parses (recursively) a part of a filesystem to look for known images and load their attributes in order to add the images to a Tree (submission via a TreeHandler::AddBranch) * Image handling ---------------- creaImageIOImageReader.h/cpp : SpecificImageReader ImageReader creaImageIOMultiThreadImageReader.h/cpp creaImageIOIndexedHeap.h/cpp * Views : --------- TreeView WxTreeView WxGimmickView QTreeView QGimmickView ... * Controller : -------------- Gimmick ...