comparison include/dndfile.h @ 5:bc2e2b304095

Clean up code.
author pyon@macmini
date Sat, 14 Sep 2013 08:54:47 +0900
parents fdba695b99f1
children 92188f60323d
comparison
equal deleted inserted replaced
4:fdba695b99f1 5:bc2e2b304095
1 // Filename : dndfile.h 1 // Filename : dndfile.h
2 // Last Change: 11-Sep-2013. 2 // Last Change: 12-Sep-2013.
3 // 3 //
4 #ifndef __DNDFILE_H__
5 #define __DNDFILE_H__
4 6
5 #include "db.h" 7 #include "db.h"
6 8
7 class DnDFile : public wxFileDropTarget 9 class DnDFile : public wxFileDropTarget
8 { 10 {
51 53
52 private: 54 private:
53 wxGrid* m_grid; 55 wxGrid* m_grid;
54 }; 56 };
55 57
56 class DnDFile2 : public wxFileDropTarget 58 #endif //__DNDFILE_H__
57 {
58 public:
59 DnDFile2( wxGrid *grid )
60 {
61 m_grid = grid;
62 }
63 virtual bool OnDropFiles( wxCoord x, wxCoord y, const wxArrayString& filenames )
64 {
65 size_t nFiles = filenames.GetCount();
66 if ( nFiles != 1 ) return false;
67
68 m_grid->ClearGrid();
69 wxTextFile csv;
70 csv.Open( filenames[0] );
71
72 int d = csv.GetLineCount() - m_grid->GetNumberRows();
73 if ( d > 0 )
74 m_grid->AppendRows( d, true );
75
76 wxRegEx reHhs( wxT("^0[1238][0-9]{8}$") );
77 for ( int n = 0, j = 0; n < csv.GetLineCount(); n++ ) {
78 wxString hhsno = csv.GetLine( n ).BeforeFirst( ',', NULL );
79 if ( ! reHhs.Matches( hhsno ) ) {
80 j++;
81 continue;
82 }
83 int r = n - j;
84
85 wxArrayString info = wxSplit( GetHhsInfoByHhsNo( hhsno ), '_', '\\' );
86 wxArrayString path = GetPathByHhsNo( hhsno );
87
88 if ( info.IsEmpty() ) info.Add( wxEmptyString );
89 if ( path.IsEmpty() ) path.Add( wxEmptyString );
90
91 m_grid->SetCellValue( r, 0, hhsno );
92 m_grid->SetCellValue( r, 1, info[0] );
93 m_grid->SetCellValue( r, 2, path[0] );
94 }
95 csv.Close();
96 return true;
97 }
98
99 private:
100 wxGrid* m_grid;
101 };
102