NIREP
|
00001 00002 // Name: GenerateRDL.h 00003 // Purpose: A GUI that helps a user create an RDL. 00004 // Author: Jeffrey Hawley 00005 // Modified by: 00006 // Created: 20/07/2010 16:10:52 00007 // RCS-ID: 00008 // Copyright: 00009 // Licence: 00011 00012 #ifndef _GENERATEFILENAMES_H_ 00013 #define _GENERATEFILENAMES_H_ 00014 00015 00020 00021 #include "wx/frame.h" 00022 #include "wx/grid.h" 00023 #include "wx/notebook.h" 00024 00025 #include "vector" 00026 #include "queue" 00027 #include "map" 00028 #include "ResourceDescriptionList/ResourceDescriptionList.h" 00030 00035 00036 class wxGrid; 00038 00044 #define SYMBOL_GENERATEFILENAMES_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX 00045 #define SYMBOL_GENERATEFILENAMES_TITLE _("GenerateRDL") 00046 #define SYMBOL_GENERATEFILENAMES_IDNAME 10005 00047 #define SYMBOL_GENERATEFILENAMES_SIZE wxSize(500, 850) 00048 #define SYMBOL_GENERATEFILENAMES_POSITION wxDefaultPosition 00049 00050 00055 class GenerateRDL: public wxFrame 00056 { 00057 DECLARE_CLASS( GenerateRDL ) 00058 DECLARE_EVENT_TABLE() 00059 00060 public: 00062 GenerateRDL(); 00063 GenerateRDL( wxWindow* parent, wxWindowID id = SYMBOL_GENERATEFILENAMES_IDNAME, const wxString& caption = SYMBOL_GENERATEFILENAMES_TITLE, const wxPoint& pos = SYMBOL_GENERATEFILENAMES_POSITION, const wxSize& size = SYMBOL_GENERATEFILENAMES_SIZE, long style = SYMBOL_GENERATEFILENAMES_STYLE ); 00064 00065 bool Create( wxWindow* parent, wxWindowID id = SYMBOL_GENERATEFILENAMES_IDNAME, const wxString& caption = SYMBOL_GENERATEFILENAMES_TITLE, const wxPoint& pos = SYMBOL_GENERATEFILENAMES_POSITION, const wxSize& size = SYMBOL_GENERATEFILENAMES_SIZE, long style = SYMBOL_GENERATEFILENAMES_STYLE ); 00066 00068 ~GenerateRDL(); 00069 00071 void Init(); 00072 00074 void CreateControls(); 00075 00077 00079 void OnDatatypeSelected( wxCommandEvent& event ); 00080 00082 void OnFormatSelected( wxCommandEvent& event ); 00083 00085 void OnBrowseClick( wxCommandEvent& event ); 00086 00088 void OnBrowse2Click( wxCommandEvent& event ); 00089 00091 void OnBrowse3Click( wxCommandEvent& event ); 00092 00094 void OnNotebookPageChanged( wxNotebookEvent& event ); 00095 00097 void OnGenerateClick( wxCommandEvent& event ); 00098 00100 void OnCancelClick( wxCommandEvent& event ); 00101 00103 void OnAddCoordinateClick( wxCommandEvent& event ); 00104 00106 void OnDeleteCoordinateClick( wxCommandEvent& event ); 00107 00109 void OnCoordinateGridChange( wxGridEvent& event ); 00110 00112 void OnUpdateDMID( wxCommandEvent& event ); 00113 00115 void OnUpdateVariables( wxCommandEvent& event ); 00116 00118 00120 00122 wxBitmap GetBitmapResource( const wxString& name ); 00123 00125 wxIcon GetIconResource( const wxString& name ); 00127 00129 static bool ShowToolTips(); 00130 00131 private: 00132 enum{ 00133 ID_GENERATEFILENAMES=10000, 00134 ID_PANEL7, 00135 ID_DATATYPE, 00136 ID_FORMAT, 00137 ID_FILENAME_PATTERN, 00138 ID_BROWSE, 00139 ID_FILENAME_PATTERN2, 00140 ID_BROWSE2, 00141 ID_FILENAME_PATTERN3, 00142 ID_BROWSE3, 00143 ID_VARIABLE_GRID, 00144 ID_COORDINATE_GRID, 00145 ID_ADD_COORDINATE, 00146 ID_DELETE_COORDINATE, 00147 ID_REMOVE_DUPLICATES, 00148 ID_NAMESPACE, 00149 ID_TRANSFORMATION_UNITS, 00150 ID_ALGORITHM, 00151 ID_LABEL, 00152 ID_NOTEBOOK, 00153 ID_DEFAULT_DMID, 00154 ID_DEFAULT_DMID_TEXT, 00155 ID_ADVANCED_DMID, 00156 ID_ADVANCED_DMID_TEXT, 00157 ID_GENERATE, 00158 ID_STATIC_FORMAT_TEXT, 00159 ID_STATIC_FILEFORMAT1_TEXT, 00160 ID_STATIC_FILEFORMAT2_TEXT, 00161 ID_STATIC_FILEFORMAT3_TEXT, 00162 ID_STATIC_LABEL_TEXT, 00163 ID_STATIC_ALGORITHM_TEXT, 00164 ID_STATIC_TRANSFORMATION_UNITS_TEXT, 00165 ID_STATIC_DEFAULT_NAMESPACE_TEXT, 00166 ID_SAVE, 00167 ID_MENU_NEW, 00168 ID_MENU_OPEN, 00169 ID_MENU_SAVE, 00170 ID_TEXT 00171 }; 00172 wxComboBox* m_datatype; 00173 wxTextCtrl* m_filenamePattern; 00174 wxTextCtrl* m_filenamePattern2; 00175 wxTextCtrl* m_filenamePattern3; 00176 wxGrid* m_variableGrid; 00177 wxGrid* m_coordinateGrid; 00178 wxTextCtrl* m_namespace; 00179 wxComboBox* m_transformationUnits; 00180 //wxTextCtrl* m_algorithm; 00181 00182 void DisplayDMID(); 00183 void Tokenize(const wxString& str, 00184 std::vector<wxString>& tokens, 00185 const wxString& delimiters = " "); 00186 00187 std::queue<wxString> ExpandFilepattern(const wxString &pattern, std::map<wxString, std::vector<wxString> > *variablesAndValues = NULL, std::queue<std::vector< ResourceDescription::CoordinateSystem > > *coordinateSystems = NULL, std::queue< wxString > * dmid = NULL); 00188 void RemoveDuplicates(wxString filenamePattern, std::queue<wxString> *filePatterns, std::map<wxString, std::vector<wxString> > &variablesAndValues, std::queue<std::vector< ResourceDescription::CoordinateSystem > > *coordinateSystems = NULL, std::queue< wxString > *dmid = NULL); 00189 std::queue<ResourceDescription *> ExpandRD(const wxString &pattern); 00190 }; 00191 00192 #endif 00193 // _GENERATEFILENAMES_H_