From 9bcef355910f147e16a71ae068c1dcb99c1686de Mon Sep 17 00:00:00 2001 From: caballero Date: Wed, 11 Feb 2009 15:37:37 +0000 Subject: [PATCH] Added creaImageIOGimmickView.h --- src2/creaImageIOGimmickView.h | 230 ++++++++++++++++++++++++++++++++++ 1 file changed, 230 insertions(+) create mode 100644 src2/creaImageIOGimmickView.h diff --git a/src2/creaImageIOGimmickView.h b/src2/creaImageIOGimmickView.h new file mode 100644 index 0000000..b044e2f --- /dev/null +++ b/src2/creaImageIOGimmickView.h @@ -0,0 +1,230 @@ +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 \ No newline at end of file -- 2.46.1