annotate include/dndfile.h @ 3:1a64119ab257

Equipment Regist print-target by Drag & Drop.
author pyon@macmini
date Tue, 27 Aug 2013 18:50:00 +0900
parents
children fdba695b99f1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
1 // Filename : dndfile.h
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
2 // Last Change: 27-Aug-2013.
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
3 //
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
4
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
5 #include "db.h"
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
6
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
7 class DnDFile : public wxFileDropTarget
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
8 {
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
9 public:
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
10 DnDFile( wxGrid *grid )
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
11 {
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
12 m_grid = grid;
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
13 }
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
14 virtual bool OnDropFiles( wxCoord x, wxCoord y, const wxArrayString& filenames )
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
15 {
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
16 size_t nFiles = filenames.GetCount();
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
17 if ( nFiles != 1 ) return false;
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
18
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
19 m_grid->ClearGrid();
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
20 wxTextFile csv;
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
21 csv.Open( filenames[0] );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
22
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
23 int d = csv.GetLineCount() - m_grid->GetNumberRows();
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
24 if ( d > 0 )
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
25 m_grid->AppendRows( d, true );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
26
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
27 wxRegEx reHhs( wxT("^0[1238][0-9]{8}$") );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
28 for ( int n = 0, j = 0; n < csv.GetLineCount(); n++ ) {
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
29 wxString hhsno = csv.GetLine( n ).BeforeFirst( ',', NULL );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
30 if ( ! reHhs.Matches( hhsno ) ) {
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
31 j++;
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
32 continue;
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
33 }
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
34 int r = n - j;
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
35
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
36 wxArrayString info = wxSplit( GetHhsInfoByHhsNo( hhsno ), '_', '\\' );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
37 wxArrayString path = GetPathByHhsNo( hhsno );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
38
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
39 if ( info.IsEmpty() ) info.Add( wxEmptyString );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
40 if ( path.IsEmpty() ) path.Add( wxEmptyString );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
41
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
42 m_grid->SetCellValue( r, 0, hhsno );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
43 m_grid->SetCellValue( r, 1, info[0] );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
44 m_grid->SetCellValue( r, 2, path[0] );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
45 }
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
46 csv.Close();
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
47 return true;
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
48 }
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
49
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
50 private:
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
51 wxGrid* m_grid;
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
52 };
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
53