X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=src2%2FcreaImageIOWxGimmickView.h;h=61fcc7d0367f4d3234974e6cc545836ae67fc2a8;hb=e79fb1c492e93cdd1a5a95ba0ab491b868cf5992;hp=0b4c74d4896cd987952ff9b0c93874d242714ab2;hpb=36cf4b6daf031e4d5e757b4f732b9bf39d69200c;p=creaImageIO.git diff --git a/src2/creaImageIOWxGimmickView.h b/src2/creaImageIOWxGimmickView.h index 0b4c74d..61fcc7d 100644 --- a/src2/creaImageIOWxGimmickView.h +++ b/src2/creaImageIOWxGimmickView.h @@ -8,6 +8,9 @@ #include #include #include + +#include "wx/progdlg.h" + #include "wx/wx.h" #include #include @@ -31,7 +34,7 @@ namespace creaImageIO typedef int EventType; /// Ctor - WxGimmickView(Gimmick*, + WxGimmickView(boost::shared_ptr, wxWindow *parent, const wxWindowID id, const wxPoint& pos, const wxSize& size, @@ -48,6 +51,7 @@ namespace creaImageIO /// Returns the selected Images so that they comply with the /// given parameter(4D) (overloaded from GimmickView) void GetSelectedImages(std::vector& s, int dim); + void GetSelectedImagesInVector(std::vector& s, int dim); /// Returns the images indicated by the filenames in the vector /// so that they comply with the given parameter(dim) @@ -66,9 +70,9 @@ namespace creaImageIO ///Resets the default image void ClearSelection(); ///Copies selected files - void CopyFiles(const std::vector& filenames); + void CopyFiles(const std::vector& filenames); ///Add selected files to the Database - void AddDir(std::string dirName); + void AddDir(std::string dirName); ///Sends a request to read the currently selected node and the ones that surround it. @@ -111,6 +115,8 @@ namespace creaImageIO private: + wxBoxSizer *mbottom_sizer; + wxBoxSizer *msizer; /// Is set to true at the end of constructor /// (in order to lock callbacks from threaded objects or event /// before everything is ok) @@ -135,21 +141,37 @@ namespace creaImageIO wxImageList * mIcon; void CreateIconList(); - Gimmick * mGimmick; - + boost::shared_ptr mGimmick; + Listener* mListener; + /// Callback for adding files void OnAddFiles(wxCommandEvent& event); + /// Callback for adding dir void OnAddDir(wxCommandEvent& event); + /// Callback for removing files void OnRemove(wxCommandEvent& event); + /// Callback for synchronization void OnSynchronize(wxCommandEvent& event); + /// Callback for settings edition void OnSettings(wxCommandEvent& event); + /// Callback for settings edition void OnTools(wxCommandEvent& event); + + /// Callback for Import/Export images + void OnImportExport(wxCommandEvent& event); + + // Import Images from an archive + void ImportImages(); + + //Export Images to an archive + void ExportImages(); + ///Creates the settings dialog (the pages inside and the information) void CreateSettingsDialog(wxNotebook* nb, wxDialog* dial); @@ -158,6 +180,9 @@ namespace creaImageIO /// Test a directory to know if contains sub-directory to analyze bool isNeedRecursive(std::string i_name); + + /// Determines number of files potentially to add to database + int NumberFilesToAdd(const std::string &dirpath, bool recursive); /// AddProgress Gimmick callback void OnAddProgress( Gimmick::AddProgress& ); @@ -170,177 +195,44 @@ namespace creaImageIO ///Create a DB from an Attributes Descriptor files void OnCreateDB(wxCommandEvent& event); + std::string ExtractName(const std::string &i_name); + ///Edits the fields of a given node void CreateEditFieldsDialog(tree::Node* node, std::vector names, std::vector keys); + + /// Display all Dicom Tags + void DumpTags(const std::string i_filename); + + /// Export from Storage to Storage + void ExportToStorage(const std::vector i_filenames); /// Progress dialog wxProgressDialog* mProgressDialog; + ///The selection's maximum dimension int mSelectionMaxDimension; + ///The selection's minimum dimension int mSelectionMinDimension; + ///Image previewer WxViewer* mViewer; + ///Currently Displayed Node tree::Node* mCurImageItemToShow; + //Pointer holders for images to be shown - std::vector pointers; - - + std::vector< boost::shared_ptr > pointers; + wxString mCurrentDirectory; DECLARE_EVENT_TABLE() }; // EO class WxGimmickView //===================================================================== - - - /* - - - - - - - - //==================================================================== - // 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 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; } - - protected: - ///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: - ///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; } - - 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; - - ///Path to the database list file - std::string mDatabaseListFile; - ///Extension of the database - std::string mDatabaseExtension; - - bool mJustStarted; - - int mFirstDicomDatabaseIconIndex; - - // 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; - */ - } // EO namespace creaImageIO #endif // USE_WIDGETS // EOF -#endif +#endif