namespace creaImageIO { /** * \ingroup View */ //===================================================================== //===================================================================== /// Abstract class to handle tree item information struct TreeListCtrl { TreeListCtrl() {} virtual ~TreeListCtrl() {} }; // EO class TreeListCtrl /** * \ingroup View */ //===================================================================== //===================================================================== /// Abstract class to handle tree item ids struct TreeItemId { TreeItemId() {} virtual ~TreeItemId() {} }; // EO class TreeItemId /** * \ingroup View */ //===================================================================== //===================================================================== ///Abstract class that handles views, attributes and previews (GUI) for Gimmick. class GimmickView { public: /// Ctor GimmickView(); /// Virtual destructor virtual ~GimmickView(); //==================================================================== // General //==================================================================== /// Returns the size of the current selection virtual int GetSelectionSize() { return 0; } /// Returns true if there is a valid selection virtual bool IsSelectionValid(){ return false; } /// Returns the vector of full filenames of selected images virtual void GetSelectedFiles(std::vector&){ return; } /// Returns the vector of images corresponding to selection virtual void GetSelectedImages(std::vector&){ return; } /// Returns the vector of DicomNode corresponding to selection virtual void GetSelectedDicomNodes(std::vector&){ return; } /// Returns the vector of TreeItemId corresponding to selection virtual void GetSelectedItems(std::vector&){ return; } /// Returns the DicomNode corresponding to the tree item virtual DicomNode* GetDicomNodeOfItem(const TreeItemId& i); /// Type of list of DicomDatabase typedef std::vector DicomDatabaseListType; /// Returns the list of DicomDatabase open virtual DicomDatabaseListType& GetDicomDatabaseList() { return null; } /// Returns the list of DicomDatabase open (const) virtual const DicomDatabaseListType& GetDicomDatabaseList() const { return null; } /// Returns the TreeListCtrl of the main view TreeListCtrl* GetTreeListCtrl() { return null; } /// Returns the TreeListCtrl of the main view (const) const TreeListCtrl* GetTreeListCtrl() const { return null; } protected: ///Inserts a TreeItem in a specified database virtual void InsertDicomDatabase(TreeItemId& id, DicomDatabase* r); ///Deletes a TreeItem from a specified database virtual void DeleteDicomDatabase(TreeItemId& id, DicomDatabase* r); ///Loads the children of the specified TreeItem virtual void LoadChildren( TreeItemId& id ); ///Opens an existing database, or else, creates a local database. virtual void OpenOrNewDatabase(bool open){ return; } ///Shows the help virtual void ShowHelp(); private: ///Gets the extension of the database const std::string& GetDatabaseExtension() { return null; } ///Sets the extension of the database virtual void SetDatabaseExtension(const std::string& ext){ return; } //==================================================================== // Preview Display Related //==================================================================== ///Shows the image sent as a parameter private: virtual void ShowImage(vtkImageData* image){ return; } //==================================================================== // Favorites Related //==================================================================== public: /// Sets a new configuration file virtual void SetConfigurationFile(const std::string& filename){ return; } ///Loads a configuration file with the parameters for the favorites database virtual void LoadConfiguration(){ return; } ///Saves a configuration file with the parameters for the favorites database virtual void SaveConfiguration(){ return; } ///Sets the status for the save configuration on close to the new value ///specified by the parameter virtual void SetSaveConfigurationOnClose(bool v) { return; } ///Loads or creates a favorites database virtual void LoadOrCreateFavoritesDatabase(){ return; } private: ///Creates the user settings directory void CreateUserSettingsDirectory(){ return; } ///Obtains the user settings directory const std::string& GetUserSettingsDirectory(){ return null; } //==================================================================== // Attribute Display Related //==================================================================== ///Shows the Information regarding the node sent as a parameter private: virtual void ShowInformation(DicomNode*){ return; } //==================================================================== // Tree Display Related //==================================================================== protected: /// Completely rebuilds the view with /// current DicomDatabaseList virtual void RebuildView(){ return; } /// Recursively updates the part of the view corresponding /// to the DicomDatabase passed /// i.e. creates items for the DicomNode which do not have /// deletes obsolete items (whose DicomNode has been deleted) virtual void UpdateDicomDatabaseView(DicomDatabase*){ return; } /// Recursively updates the part of the view corresponding /// to the DicomNode provided. /// parent is its parent in the tree (where to insert / remove it) virtual void UpdateDicomNodeView(DicomNode* n, const TreeItemId& parent){ return; } /// Recursively deletes virtual void DeleteObsoleteChildren(TreeItemId& id){ return; } /// Create the column titles of the children of the item virtual TreeItemId CreateChildrenColumnsTitles(TreeItemId& item, DicomNode::Type t){ return null } /// Updates the titles of the columns virtual void UpdateColumnsTitles(TreeItemId& item, DicomNode::Type t){ return; } /// Updates the information on the columns virtual void UpdateColumns(TreeItemId& item, bool only_first = false){ return; } private: ///Type definition of the data regarding the tree typedef WxGimmickTreeItemData TreeItemData; ///Gets the item data of the tree item passed as a parameter TreeItemData* GetItemData(const TreeItemId& id){ return null; } ///Type definition of the data insid a node of the tree typedef WxGimmickDicomNodeData NodeData; //==================================================================== // Class Attributes //==================================================================== int mSelectionType; int mSelectionMaxImageDimension; int mCurrentSelectionImageSize[4]; ///Existent Database List DicomDatabaseListType mDicomDatabaseList; ///Favorites database DicomDatabase* mFavoriteDatabase; ///The tree list controller TreeListCtrl* mTreeListCtrl; ///Path to the user settings directory std::string mUserSettingsDirectory; ///Path to the configuration file std::string mConfigurationFile; ///Path to the database list file std::string mDatabaseListFile; ///Boolean to check wether to save on close or not bool mSaveConfigurationOnClose; ///Extension of the database std::string mDatabaseExtension; bool mJustStarted; int mFirstDicomDatabaseIconIndex; // Id of the item which activated the popup menu TreeItemId mItemOfMenu; // Previewer vtkImageViewer2* mViewer; int mx1,mx2,my1,my2,mz1,mz2; double mspx,mspy,mspz; // Image preview : // Multi-thread image reader MultiThreadImageReader mReader; // map of images name to node std::map mImageFileNameToNode; // Cur image item to show TreeItemId mCurImageItemToShow; }; // EO class GimmickView //===================================================================== } // EO namespace creaImageIO // EOF #endif