diff src/ccnframe.cpp @ 22:05f76f9f9186

index buttons move to main-frame.
author pyon@macmini
date Wed, 27 Jul 2011 19:01:09 +0900
parents eb3f5c7c990f
children
line wrap: on
line diff
--- a/src/ccnframe.cpp	Mon Jul 25 05:20:55 2011 +0900
+++ b/src/ccnframe.cpp	Wed Jul 27 19:01:09 2011 +0900
@@ -1,5 +1,5 @@
 // Filename   : ccnframe.cpp
-// Last Change: 23-Jul-2011.
+// Last Change: 27-Jul-2011.
 //
 
 #include "common.h"
@@ -17,23 +17,22 @@
 	bSizer = new wxBoxSizer( wxHORIZONTAL );
 	
     // DB表示
-	wxFlexGridSizer* fgSizer = new wxFlexGridSizer( 2, 5, 0, 0 );
+	wxFlexGridSizer* fgSizer = new wxFlexGridSizer( 2, 6, 0, 0 );
     fgSizer->AddGrowableRow(1);
 	
 	m_staticText1 = new wxStaticText( m_Panel, wxID_ANY, wxT("開催年月日"), wxDefaultPosition, wxDefaultSize, 0 );
 	fgSizer->Add( m_staticText1, 0, wxALL, 5 );
-	
 	fgSizer->Add( 0, 0, 1, wxEXPAND, 5 );
 	
 	m_staticText2 = new wxStaticText( m_Panel, wxID_ANY, wxT("合議体"), wxDefaultPosition, wxDefaultSize, 0 );
 	fgSizer->Add( m_staticText2, 0, wxALL, 5 );
-	
 	fgSizer->Add( 0, 0, 1, wxEXPAND, 5 );
 	
 	m_staticText3 = new wxStaticText( m_Panel, wxID_ANY, wxT("被保険者"), wxDefaultPosition, wxDefaultSize, 0 );
 	fgSizer->Add( m_staticText3, 0, wxALL, 5 );
+	fgSizer->Add( 0, 0, 1, wxEXPAND, 5 );
 	
-	m_listCtrlYmd = new wxListCtrl( m_Panel, ID_YMD, wxDefaultPosition, wxSize( 220, -1 ), wxLC_REPORT|wxLC_SINGLE_SEL );
+	m_listCtrlYmd = new wxListCtrl( m_Panel, ID_YMD, wxDefaultPosition, wxSize( 300, -1 ), wxLC_REPORT|wxLC_SINGLE_SEL );
 	fgSizer->Add( m_listCtrlYmd, 1, wxALL|wxEXPAND, 5 );
 	
 	m_staticText4 = new wxStaticText( m_Panel, wxID_ANY, wxT("→"), wxDefaultPosition, wxDefaultSize, 0 );
@@ -48,35 +47,16 @@
 	m_listCtrlHhs = new wxListCtrl( m_Panel, ID_HHS, wxDefaultPosition, wxSize( 220, -1 ), wxLC_REPORT|wxLC_SINGLE_SEL );
 	fgSizer->Add( m_listCtrlHhs, 1, wxALL|wxEXPAND, 5 );
 	
-	bSizer->Add( fgSizer, 1, wxEXPAND|wxALL, 5 );
-	
-    // Index作成
-	wxGridBagSizer* gbSizer = new wxGridBagSizer( 0, 0 );
-	gbSizer->SetFlexibleDirection( wxVERTICAL );
-	gbSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-    gbSizer->AddGrowableRow(3);
-	
-	m_btnPrevThu = new wxButton( m_Panel, ID_PRVTHU, wxT("<< 前木"), wxDefaultPosition, wxDefaultSize, 0 );
-	gbSizer->Add( m_btnPrevThu, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 );
+	m_btnClose = new wxButton( m_Panel, ID_CLOSE, wxT("閉じる"), wxDefaultPosition, wxDefaultSize, 0 );
+	fgSizer->Add( m_btnClose, 0, wxALIGN_BOTTOM|wxALIGN_RIGHT|wxALL, 5 );
+    m_btnClose->SetFocus();
 	
-	m_btnNextThu = new wxButton( m_Panel, ID_NXTTHU, wxT("次木 >>"), wxDefaultPosition, wxDefaultSize, 0 );
-	gbSizer->Add( m_btnNextThu, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 );
-	
-	m_datePicker = new wxDatePickerCtrl( m_Panel, ID_DTPICKER, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DROPDOWN|wxDP_SHOWCENTURY );
-	gbSizer->Add( m_datePicker, wxGBPosition( 1, 0 ), wxGBSpan( 1, 2 ), wxALIGN_CENTER|wxALL, 5 );
-	
-	m_btnMkIdX = new wxButton( m_Panel, ID_MKIDX, wxT("作成"), wxDefaultPosition, wxDefaultSize, 0 );
-	gbSizer->Add( m_btnMkIdX, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 );
-	
-	m_btnClose = new wxButton( m_Panel, ID_CLOSE, wxT("閉じる"), wxDefaultPosition, wxDefaultSize, 0 );
-	gbSizer->Add( m_btnClose, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxALIGN_BOTTOM|wxALL, 5 );
-	
-	bSizer->Add( gbSizer, 0, wxEXPAND|wxALL, 5 );
+	bSizer->Add( fgSizer, 1, wxEXPAND|wxALL, 5 );
 	
 	m_Panel->SetSizer( bSizer );
 	m_Panel->Layout();
 	
-    this->SetSize( 1000, 400 );
+    this->SetSize( 1000, 500 );
 	this->Centre( wxBOTH );
     InitListCtrl();
 }
@@ -90,32 +70,33 @@
 BEGIN_EVENT_TABLE( FrameCcn, wxFrame )
     EVT_LIST_ITEM_SELECTED( ID_YMD, FrameCcn::OnSelectYmd )
     EVT_LIST_ITEM_SELECTED( ID_CCN, FrameCcn::OnSelectCcn )
-    EVT_BUTTON( ID_PRVTHU, FrameCcn::OnPrevThu )
-    EVT_BUTTON( ID_NXTTHU, FrameCcn::OnNextThu )
-    EVT_BUTTON( ID_MKIDX,  FrameCcn::OnMkIndex )
     EVT_BUTTON( ID_CLOSE,  FrameCcn::OnClose )
 END_EVENT_TABLE()
 
 // Event Handlers
-void FrameCcn::OnSelectYmd(wxListEvent& WXUNUSED(event))
+void FrameCcn::OnSelectYmd(wxListEvent& event)
 {
-    m_listCtrlCcn->DeleteAllItems();
+    long i = event.GetIndex();
+    wxString ymd = m_listCtrlYmd->GetItemText( i );
+    ymd.Replace( wxT("-"), wxEmptyString, true );
 
     wxString gszFile = wxGetCwd() + wxT("/db/ccn.db");
     wxSQLite3Database ccndb;
     ccndb.Open( gszFile );
 
-    wxSQLite3Statement stmt = ccndb.PrepareStatement("SELECT path FROM path WHERE hhsno = ?");
-    stmt.Bind( 1, wxT("0300012345") );
+    wxSQLite3Statement stmt = ccndb.PrepareStatement("SELECT hhsno, path FROM path WHERE path LIKE ?");
+    stmt.Bind( 1, wxT("08") );
     wxSQLite3ResultSet q = stmt.ExecuteQuery();
     if ( q.IsNull(0) ) {
         return;
     }
+
     long r=0;
     while ( q.NextRow() ) {
-        wxString ccn = q.GetString(0);
+        wxMessageBox(wxT("aaa"));
+        wxString hhsno = q.GetString(0);
         //wxString cnt = q.GetString(1);
-        m_listCtrlCcn->InsertItem( r, ccn );
+        m_listCtrlHhs->InsertItem( r, hhsno );
         //m_listCtrlCcn->SetItem( r, 1, cnt, -1 );
         r++;
     }
@@ -146,88 +127,6 @@
     ccndb.Close();
 }
 
-// 前木
-void FrameCcn::OnPrevThu(wxCommandEvent& WXUNUSED(event))
-{
-	wxDateTime dt = m_datePicker->GetValue();
-    wxDateSpan ds( 0, 0, 0, 1 );
-    dt -= ds;
-    dt.SetToPrevWeekDay( wxDateTime::Thu );
-    m_datePicker->SetValue( dt );
-
-}
-// 次木
-void FrameCcn::OnNextThu(wxCommandEvent& WXUNUSED(event))
-{
-	wxDateTime dt = m_datePicker->GetValue();
-    wxDateSpan ds( 0, 0, 0, 1 );
-    dt += ds;
-    dt.SetToNextWeekDay( wxDateTime::Thu );
-    m_datePicker->SetValue( dt );
-}
-
-/* インデックス作成 */
-void FrameCcn::OnMkIndex(wxCommandEvent& WXUNUSED(event))
-{
-	wxDateTime dt = m_datePicker->GetValue();
-    wxString month = dt.Format(wxT("%m"));
-    wxString year  = dt.Format(wxT("%Y"));
-    if ( month.IsSameAs(wxT("01")) || month.IsSameAs(wxT("02")) || month.IsSameAs(wxT("03")) ) {
-        long y;
-        year.ToLong( &y, 10 );
-        y--;
-        year = wxString::Format(wxT("%d"),y);
-    }
-    wxString pathroot = wxGetApp().rootdir + wxFILE_SEP_PATH + year + dt.Format(wxT("\\%Y%m%d"));
-    wxDir rootd(pathroot);
-    if ( !wxDir::Exists(pathroot) ) {
-        wxMessageBox( wxT("フォルダが存在しません.")+pathroot );
-        return;
-    }
-
-    wxProgressDialog pd( wxT("進行状況"), wxT("処理開始..."), 200, this, wxPD_APP_MODAL|wxPD_REMAINING_TIME|wxPD_AUTO_HIDE );
-    pd.SetSize( wxSize(320,140) );
-    int count=0;
-
-    wxString ccndir;
-    bool cont = rootd.GetFirst( &ccndir, wxT("*.*"), wxDIR_DIRS );
-    while ( cont ) {
-        wxString gszFile = wxGetCwd() + wxT("/db/ccn.db");
-        wxSQLite3Database ccndb;
-        ccndb.Open( gszFile );
-
-        wxSQLite3Statement stmt = ccndb.PrepareStatement("INSERT OR REPLACE INTO ccn VALUES( ?, datetime('now','localtime') )");
-        stmt.Bind( 1, dt.Format(wxT("%Y-%m-%d")) );
-        stmt.ExecuteQuery();
-
-        stmt.Finalize();
-
-        wxDir ccnd( pathroot + wxFILE_SEP_PATH + ccndir );
-        if ( !ccnd.IsOpened() ) return;
-        wxString hhsdir;
-        bool c = ccnd.GetFirst( &hhsdir, wxT("*.*"), wxDIR_DIRS );
-	    wxRegEx reHhs(wxT("^0[1238][0-9]{8}$"));	// 被保番チェック
-        while ( c ) {
-            if ( reHhs.Matches(hhsdir) ) {
-                wxString path = pathroot + wxFILE_SEP_PATH + ccndir + wxFILE_SEP_PATH + hhsdir;
-
-                stmt = ccndb.PrepareStatement("INSERT OR REPLACE INTO path VALUES( ?, ? )");
-                stmt.Bind( 1, hhsdir );
-                stmt.Bind( 2, path );
-                stmt.ExecuteQuery();
-
-                stmt.Finalize();
-            }
-            c = ccnd.GetNext(&hhsdir);
-            pd.Update( count++, hhsdir+wxT("@")+ccndir+wxT("を処理しました.") );
-        }
-        ccndb.Close();
-
-        cont = rootd.GetNext(&ccndir);
-    }
-    wxMessageBox(wxT("インデックス作成が終了しました."));
-}
-
 // 閉じる
 void FrameCcn::OnClose(wxCommandEvent& WXUNUSED(event))
 {
@@ -243,7 +142,7 @@
     m_listCtrlYmd->SetColumnWidth( 0, 100 );
     itemCol.SetText( wxT("更新時刻") );
     m_listCtrlYmd->InsertColumn( 1, itemCol );
-    m_listCtrlYmd->SetColumnWidth( 1, 200 );
+    m_listCtrlYmd->SetColumnWidth( 1, 180 );
 
     itemCol.SetText( wxT("合議体名") );
     m_listCtrlCcn->InsertColumn( 0, itemCol );
@@ -259,7 +158,7 @@
     m_listCtrlHhs->InsertColumn( 1, itemCol );
     m_listCtrlHhs->SetColumnWidth( 1, 100 );
 
-    // read from db
+    // Ymd: read from db
     m_listCtrlCcn->DeleteAllItems();
 
     wxString gszFile = wxGetCwd() + wxT("/db/ccn.db");
@@ -274,10 +173,34 @@
         wxString time = q.GetString(1);
         m_listCtrlYmd->InsertItem( r, ymd );
         m_listCtrlYmd->SetItem( r, 1, time, -1 );
+        if ( r % 2 )
+            m_listCtrlYmd->SetItemBackgroundColour( r, wxColour(wxT("WHEAT")) );
         r++;
     }
 
     stmt.Finalize();
     ccndb.Close();
+
+    // Ccn
+    m_listCtrlCcn->InsertItem(  0, wxT("六郷1") );
+    m_listCtrlCcn->InsertItem(  1, wxT("六郷2") );
+    m_listCtrlCcn->InsertItem(  2, wxT("六郷3") );
+    m_listCtrlCcn->InsertItem(  3, wxT("千畑1") );
+    m_listCtrlCcn->InsertItem(  4, wxT("千畑2") );
+    m_listCtrlCcn->InsertItem(  5, wxT("千畑3") );
+    m_listCtrlCcn->InsertItem(  6, wxT("大曲1") );
+    m_listCtrlCcn->InsertItem(  7, wxT("大曲2") );
+    m_listCtrlCcn->InsertItem(  8, wxT("大曲3") );
+    m_listCtrlCcn->InsertItem(  9, wxT("大曲4") );
+    m_listCtrlCcn->InsertItem( 10, wxT("大曲5") );
+    m_listCtrlCcn->InsertItem( 11, wxT("大曲6") );
+    m_listCtrlCcn->InsertItem( 12, wxT("西仙1") );
+    m_listCtrlCcn->InsertItem( 13, wxT("西仙2") );
+    m_listCtrlCcn->InsertItem( 14, wxT("西仙3") );
+    m_listCtrlCcn->InsertItem( 15, wxT("角館1") );
+    m_listCtrlCcn->InsertItem( 16, wxT("角館2") );
+    m_listCtrlCcn->InsertItem( 17, wxT("角館3") );
+    m_listCtrlCcn->InsertItem( 18, wxT("角館4") );
+    m_listCtrlCcn->InsertItem( 19, wxT("合計") );
 }