NIREP

C:/Programs/source/NIREP/DisplayManager/GenerateRDL.h

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_
 All Classes Functions Variables Typedefs Enumerations Enumerator