Mercurial > mercurial > hgweb_golang.cgi
diff src/kaigo/horori/searcher/src/searcher.cpp @ 46:6ec28d3c3e00
small changes.
author | pyon@macmini |
---|---|
date | Sat, 18 Apr 2020 21:10:29 +0900 |
parents | 20b42e2deae1 |
children | 169936fed61b |
line wrap: on
line diff
--- a/src/kaigo/horori/searcher/src/searcher.cpp Thu Apr 16 20:59:35 2020 +0900 +++ b/src/kaigo/horori/searcher/src/searcher.cpp Sat Apr 18 21:10:29 2020 +0900 @@ -1,7 +1,8 @@ // Filename : searcher.cpp -// Last Change: 2020-04-16 木 17:26:54. +// Last Change: 2020-04-17 金 16:22:32. // #include <wx/msgdlg.h> +#include <wx/dir.h> #include <wx/fileconf.h> #include <wx/html/htmprint.h> @@ -9,32 +10,34 @@ #include "utils.h" #include "net.h" -/* MyStaticBitmap */ +/** MyStaticBitmap **/ MyStaticBitmap::MyStaticBitmap(wxScrolledWindow *parent, wxWindowID id, const wxBitmap &label, const wxPoint &pos, const wxSize &size, long style, const wxString &name) : wxStaticBitmap(parent, id, label, pos, size, style, name) { m_parent = parent; - Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(MyStaticBitmap::OnLeftDown ), NULL, this); - Connect(wxEVT_LEFT_UP, wxMouseEventHandler(MyStaticBitmap::OnLeftUp ), NULL, this); - Connect(wxEVT_LEFT_DCLICK, wxMouseEventHandler(MyStaticBitmap::OnLeftDClick ), NULL, this); - Connect(wxEVT_RIGHT_DCLICK, wxMouseEventHandler(MyStaticBitmap::OnRightDClick ), NULL, this); - Connect(wxEVT_MOTION, wxMouseEventHandler(MyStaticBitmap::OnMotion ), NULL, this); - Connect(wxEVT_MOUSEWHEEL, wxMouseEventHandler(MyStaticBitmap::OnWheel ), NULL, this); + Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(MyStaticBitmap::OnLeftDown ), NULL, this); + Connect(wxEVT_LEFT_UP, wxMouseEventHandler(MyStaticBitmap::OnLeftUp ), NULL, this); + Connect(wxEVT_LEFT_DCLICK, wxMouseEventHandler(MyStaticBitmap::OnLeftDClick ), NULL, this); + Connect(wxEVT_RIGHT_DCLICK, wxMouseEventHandler(MyStaticBitmap::OnRightDClick ), NULL, this); + Connect(wxEVT_MOTION, wxMouseEventHandler(MyStaticBitmap::OnMotion ), NULL, this); + Connect(wxEVT_MOUSEWHEEL, wxMouseEventHandler(MyStaticBitmap::OnWheel ), NULL, this); Connect(wxEVT_RIGHT_DOWN, wxMouseEventHandler(MyStaticBitmap::OnStartRGesture), NULL, this); - Connect(wxEVT_RIGHT_UP, wxMouseEventHandler(MyStaticBitmap::OnEndRGesture ), NULL, this); + Connect(wxEVT_RIGHT_UP, wxMouseEventHandler(MyStaticBitmap::OnEndRGesture ), NULL, this); } MyStaticBitmap::~MyStaticBitmap() { - Disconnect(wxEVT_LEFT_DOWN, wxMouseEventHandler(MyStaticBitmap::OnLeftDown ), NULL, this); - Disconnect(wxEVT_LEFT_UP, wxMouseEventHandler(MyStaticBitmap::OnLeftUp ), NULL, this); - Disconnect(wxEVT_LEFT_DCLICK, wxMouseEventHandler(MyStaticBitmap::OnLeftDClick ), NULL, this); - Disconnect(wxEVT_RIGHT_DCLICK, wxMouseEventHandler(MyStaticBitmap::OnRightDClick ), NULL, this); - Disconnect(wxEVT_MOTION, wxMouseEventHandler(MyStaticBitmap::OnMotion ), NULL, this); - Disconnect(wxEVT_MOUSEWHEEL, wxMouseEventHandler(MyStaticBitmap::OnWheel ), NULL, this); + Disconnect(wxEVT_LEFT_DOWN, wxMouseEventHandler(MyStaticBitmap::OnLeftDown ), NULL, this); + Disconnect(wxEVT_LEFT_UP, wxMouseEventHandler(MyStaticBitmap::OnLeftUp ), NULL, this); + Disconnect(wxEVT_LEFT_DCLICK, wxMouseEventHandler(MyStaticBitmap::OnLeftDClick ), NULL, this); + Disconnect(wxEVT_RIGHT_DCLICK, wxMouseEventHandler(MyStaticBitmap::OnRightDClick ), NULL, this); + Disconnect(wxEVT_MOTION, wxMouseEventHandler(MyStaticBitmap::OnMotion ), NULL, this); + Disconnect(wxEVT_MOUSEWHEEL, wxMouseEventHandler(MyStaticBitmap::OnWheel ), NULL, this); Disconnect(wxEVT_RIGHT_DOWN, wxMouseEventHandler(MyStaticBitmap::OnStartRGesture), NULL, this); - Disconnect(wxEVT_RIGHT_UP, wxMouseEventHandler(MyStaticBitmap::OnEndRGesture ), NULL, this); + Disconnect(wxEVT_RIGHT_UP, wxMouseEventHandler(MyStaticBitmap::OnEndRGesture ), NULL, this); } + +/* Event Handlers */ void MyStaticBitmap::OnWheel(wxMouseEvent& event) { /* @@ -119,49 +122,61 @@ // to right if (rad < pi / 8 && dx > 0) { - //ChangeBook(1); + ChangeBook(1); } // to left else if (rad > pi / 8 * 7 && rad < pi && dx < 0) { - //ChangeBook(-1); + ChangeBook(-1); } // to up-right else if (rad > pi / 8 && rad < pi / 8 * 3 && dx > 0) { - /* - MainFrame* mf = (MainFrame*)FindWindowById(ID_MAIN); - mf->Close(); - */ + m_parent2->Close(); } // down else if (rad > pi / 8 * 3 && rad < pi / 8 * 5 && dy > 0) { - /* - MainFrame* mf = (MainFrame*)FindWindowById(ID_MAIN); - mf->PrintImages(); - */ + //mf->PrintImages(); } } +/* Functions */ +void MyStaticBitmap::ChangeBook(int i) +{ + int n = m_parent1->GetSelection(); + if (i < 0) { + if (n > 1) m_parent1->SetSelection(n - 1); + } else { + if (n < 6) m_parent1->SetSelection(n + 1); + } +} -/* SearcherFrame */ +/** SearcherFrame **/ SearchFrame::SearchFrame(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) : wxFrame(parent, id, title, pos, size, style) { CreateControls(); InitializeControlsValue(); // Connect Events + m_searchCtrl->Connect(wxEVT_CHAR, wxKeyEventHandler(SearchFrame::OnChar), NULL, this); + + m_notebook->Connect(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler(SearchFrame::OnPageChanged), NULL, this); + m_filePicker->Connect(wxEVT_COMMAND_FILEPICKER_CHANGED, wxFileDirPickerEventHandler(SearchFrame::OnFile), NULL, this); m_buttonRead->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SearchFrame::OnRead), NULL, this); - m_searchCtrl->Connect(wxEVT_CHAR, wxKeyEventHandler(SearchFrame::OnChar), NULL, this); - m_dataViewListCtrlBatch->Connect(wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(SearchFrame::OnSelectBatchListItem), NULL, this); + m_dataViewListCtrlBatch->Connect(wxEVT_CHAR, wxKeyEventHandler(SearchFrame::OnSelectBatchListCtrlA), NULL, this); + m_dataViewListCtrlBatch->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(SearchFrame::OnSelectBatchDClick), NULL, this); + m_buttonHist->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SearchFrame::OnHist), NULL, this); m_dataViewListCtrlAny->Connect(wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(SearchFrame::OnSelectListAnyItem), NULL, this); m_buttonPrint->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SearchFrame::OnPrint), NULL, this); m_choiceIdxYear->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(SearchFrame::OnIdxYearChoice), NULL, this); m_dataViewListCtrlIdxDate->Connect(wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(SearchFrame::OnIdxDateSelected), NULL, this); + m_choiceDrvYear->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(SearchFrame::OnDrvYearChoice), NULL, this); m_dataViewListCtrlDrvDate->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(SearchFrame::OnDrvDateDClicked), NULL, this); m_dataViewListCtrlDrvDate->Connect(wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(SearchFrame::OnDrvDateSelected), NULL, this); + m_dataViewListCtrlDrvCcn->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(SearchFrame::OnDrvCcnDClicked), NULL, this); + m_dataViewListCtrlDrvCcn->Connect(wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(SearchFrame::OnDrvCcnSelected), NULL, this); m_dataViewListCtrlDrv->Connect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(SearchFrame::OnDrvDClicked), NULL, this); m_buttonRegHhs->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SearchFrame::OnUploadHhsDB), NULL, this); @@ -173,19 +188,27 @@ SearchFrame::~SearchFrame() { // Disconnect Events + m_searchCtrl->Disconnect(wxEVT_CHAR, wxKeyEventHandler(SearchFrame::OnChar), NULL, this); + + m_notebook->Disconnect(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler(SearchFrame::OnPageChanged), NULL, this); + m_buttonRead->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SearchFrame::OnRead), NULL, this); m_filePicker->Disconnect(wxEVT_COMMAND_FILEPICKER_CHANGED, wxFileDirPickerEventHandler(SearchFrame::OnFile), NULL, this); - m_searchCtrl->Disconnect(wxEVT_CHAR, wxKeyEventHandler(SearchFrame::OnChar), NULL, this); m_buttonHist->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SearchFrame::OnHist), NULL, this); - m_dataViewListCtrlBatch->Disconnect(wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(SearchFrame::OnSelectBatchListItem), NULL, this); + + m_dataViewListCtrlBatch->Disconnect(wxEVT_CHAR, wxKeyEventHandler(SearchFrame::OnSelectBatchListCtrlA), NULL, this); + m_dataViewListCtrlBatch->Disconnect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(SearchFrame::OnSelectBatchDClick), NULL, this); m_dataViewListCtrlAny->Disconnect(wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(SearchFrame::OnSelectListAnyItem), NULL, this); m_buttonPrint->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SearchFrame::OnPrint), NULL, this); m_choiceIdxYear->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(SearchFrame::OnIdxYearChoice), NULL, this); m_dataViewListCtrlIdxDate->Disconnect(wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(SearchFrame::OnIdxDateSelected), NULL, this); + m_choiceDrvYear->Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(SearchFrame::OnDrvYearChoice), NULL, this); m_dataViewListCtrlDrvDate->Disconnect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(SearchFrame::OnDrvDateDClicked), NULL, this); m_dataViewListCtrlDrvDate->Disconnect(wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(SearchFrame::OnDrvDateSelected), NULL, this); + m_dataViewListCtrlDrvCcn->Disconnect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(SearchFrame::OnDrvCcnDClicked), NULL, this); + m_dataViewListCtrlDrvCcn->Disconnect(wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(SearchFrame::OnDrvCcnSelected), NULL, this); m_dataViewListCtrlDrv->Disconnect(wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(SearchFrame::OnDrvDClicked), NULL, this); m_buttonRegHhs->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SearchFrame::OnUploadHhsDB), NULL, this); @@ -197,7 +220,9 @@ /* Event-Handlers */ void SearchFrame::OnChar(wxKeyEvent& event) { + int mod = event.GetModifiers(); int keycode = event.GetKeyCode(); + //wxMessageBox(wxString::Format(wxT("%d-%d"), mod, keycode)); if (keycode == 13) { // Enter m_dataViewListCtrlAny->DeleteAllItems(); @@ -245,11 +270,28 @@ } return; } + event.Skip(); } +void SearchFrame::OnPageChanged(wxNotebookEvent& event) +{ + wxString pw = m_textCtrlPasswd->GetValue(); + + if (pw.IsEmpty()) { + int n = event.GetSelection(); + if (n != 5 && n != 6) return; + + int m = event.GetOldSelection(); + m_notebook->ChangeSelection(m); + } +} + void SearchFrame::OnIdxYearChoice(wxCommandEvent& WXUNUSED(evnet)) { + m_dataViewListCtrlIdxDate->DeleteAllItems(); + m_dataViewListCtrlIdx->DeleteAllItems(); + int n = m_choiceIdxYear->GetSelection(); wxString url = wxT("/d/") + m_choiceIdxYear->GetString(n); wxString buf = HttpGetText(m_addr, m_port, url); @@ -258,7 +300,8 @@ wxVector<wxVariant> data; for (int i = 0; i < ymd.GetCount(); i++) { data.push_back(wxVariant(wxString::Format(wxT("%02d"), i + 1))); - data.push_back(wxVariant(ymd[i])); + wxString buf = ymd[i].Left(4) + wxT("-") + ymd[i].Mid(4,2) + wxT("-") + ymd[i].Right(2); + data.push_back(wxVariant(buf)); m_dataViewListCtrlIdxDate->AppendItem(data); data.clear(); } @@ -266,27 +309,161 @@ void SearchFrame::OnIdxDateSelected(wxDataViewEvent& WXUNUSED(evnet)) { - wxMessageBox("2"); + m_dataViewListCtrlIdx->DeleteAllItems(); + + int r = m_dataViewListCtrlIdxDate->GetSelectedRow(); + wxString date = m_dataViewListCtrlIdxDate->GetTextValue(r, 1); + date.Replace(wxT("-"), wxEmptyString, true); + + wxString url = wxT("/d/") + date; + wxString buf = HttpGetText(m_addr, m_port, url); + wxArrayString hhs = wxSplit(buf, ':', '\\'); + + url = wxT("/hn/") + buf; + buf = HttpGetText(m_addr, m_port, url); + wxArrayString name = wxSplit(buf, ':', '\\'); + + wxVector<wxVariant> data; + for (int i = 0; i < hhs.GetCount(); i++) { + data.push_back(wxVariant(wxString::Format(wxT("%02d"), i + 1))); + data.push_back(wxVariant(hhs[i])); + data.push_back(wxVariant(name[i])); + m_dataViewListCtrlIdx->AppendItem(data); + data.clear(); + } } void SearchFrame::OnDrvYearChoice(wxCommandEvent& WXUNUSED(evnet)) { - wxMessageBox("3"); + m_dataViewListCtrlDrvDate->DeleteAllItems(); + m_dataViewListCtrlDrvCcn->DeleteAllItems(); + m_dataViewListCtrlDrv->DeleteAllItems(); + + int n = m_choiceDrvYear->GetSelection(); + if (n == 0) return; + + wxString year = wxFILE_SEP_PATH + m_choiceDrvYear->GetString(n); + wxDir dir(year); + if (!dir.IsOpened()) return; + + wxString dirname; + bool cont = dir.GetFirst(&dirname, wxEmptyString, wxDIR_DIRS); + + wxVector<wxVariant> data; + for (int i = 0; cont; i++) { + wxString n = wxString::Format(wxT("%02d"), i + 1); + data.push_back(wxVariant(n)); + data.push_back(wxVariant(dirname)); + + m_dataViewListCtrlDrvDate->AppendItem(data); + data.clear(); + + cont = dir.GetNext(&dirname); + } +} + +void SearchFrame::OnDrvDateSelected(wxDataViewEvent& WXUNUSED(evnet)) +{ + m_dataViewListCtrlDrvCcn->DeleteAllItems(); + m_dataViewListCtrlDrv->DeleteAllItems(); + + int n = m_choiceDrvYear->GetSelection(); + int r = m_dataViewListCtrlDrvDate->GetSelectedRow(); + + wxString date = wxFILE_SEP_PATH + m_choiceDrvYear->GetString(n) + wxFILE_SEP_PATH + m_dataViewListCtrlDrvDate->GetTextValue(r, 1); + + wxDir dir(date); + if (!dir.IsOpened()) return; + + wxString dirname; + bool cont = dir.GetFirst(&dirname, wxEmptyString, wxDIR_DIRS); + + wxVector<wxVariant> data; + for (int i = 0; cont; i++) { + data.push_back(wxVariant(dirname)); + m_dataViewListCtrlDrvCcn->AppendItem(data); + data.clear(); + cont = dir.GetNext(&dirname); + } } void SearchFrame::OnDrvDateDClicked(wxDataViewEvent& WXUNUSED(evnet)) { - wxMessageBox("4"); + int n = m_choiceDrvYear->GetSelection(); + int r = m_dataViewListCtrlDrvDate->GetSelectedRow(); + + wxString date = wxFILE_SEP_PATH + m_choiceDrvYear->GetString(n) + wxFILE_SEP_PATH + m_dataViewListCtrlDrvDate->GetTextValue(r, 1); + wxString cmd = wxT("explorer.exe ") + date; + wxExecute(cmd); } -void SearchFrame::OnDrvDateSelected(wxDataViewEvent& WXUNUSED(evnet)) +void SearchFrame::OnDrvCcnSelected(wxDataViewEvent& event) { - wxMessageBox("5"); + m_dataViewListCtrlDrv->DeleteAllItems(); + + int n = m_choiceDrvYear->GetSelection(); + int r1 = m_dataViewListCtrlDrvDate->GetSelectedRow(); + int r2 = m_dataViewListCtrlDrvCcn->GetSelectedRow(); + + wxString ccn = wxFILE_SEP_PATH + m_choiceDrvYear->GetString(n); + ccn += wxFILE_SEP_PATH + m_dataViewListCtrlDrvDate->GetTextValue(r1, 1); + ccn += wxFILE_SEP_PATH + m_dataViewListCtrlDrvCcn->GetTextValue(r2, 0); + + wxDir dir(ccn); + if (!dir.IsOpened()) return; + + wxString dirname; + bool cont = dir.GetFirst(&dirname, wxEmptyString, wxDIR_DIRS); + + wxArrayString hno; + wxVector<wxVariant> data; + for (int i = 0; cont; i++) { + wxString n = wxString::Format(wxT("%02d"), i); + data.push_back(wxVariant(n)); + data.push_back(wxVariant(dirname)); + hno.Add(dirname); + data.push_back(wxVariant(wxEmptyString)); + m_dataViewListCtrlDrv->AppendItem(data); + data.clear(); + cont = dir.GetNext(&dirname); + } + + wxString url = wxT("/hn/") + wxJoin(hno, ':', '\\'); + wxString buf = HttpGetText(m_addr, m_port, url); + wxArrayString name = wxSplit(buf, ':', '\\'); + for (int r = 0; r < name.GetCount(); r++) { + m_dataViewListCtrlDrv->SetTextValue(name[r], r, 2); + } +} + +void SearchFrame::OnDrvCcnDClicked(wxDataViewEvent& event) +{ + int n = m_choiceDrvYear->GetSelection(); + int r1 = m_dataViewListCtrlDrvDate->GetSelectedRow(); + int r2 = m_dataViewListCtrlDrvCcn->GetSelectedRow(); + + wxString ccn = wxFILE_SEP_PATH + m_choiceDrvYear->GetString(n); + ccn += wxFILE_SEP_PATH + m_dataViewListCtrlDrvDate->GetTextValue(r1, 1); + ccn += wxFILE_SEP_PATH + m_dataViewListCtrlDrvCcn->GetTextValue(r2, 0); + + wxString cmd = wxT("explorer.exe ") + ccn; + wxExecute(cmd); } void SearchFrame::OnDrvDClicked(wxDataViewEvent& WXUNUSED(evnet)) { - wxMessageBox("6"); + int n = m_choiceDrvYear->GetSelection(); + int r1 = m_dataViewListCtrlDrvDate->GetSelectedRow(); + int r2 = m_dataViewListCtrlDrvCcn->GetSelectedRow(); + int r3 = m_dataViewListCtrlDrv->GetSelectedRow(); + + wxString hno = wxFILE_SEP_PATH + m_choiceDrvYear->GetString(n); + hno += wxFILE_SEP_PATH + m_dataViewListCtrlDrvDate->GetTextValue(r1, 1); + hno += wxFILE_SEP_PATH + m_dataViewListCtrlDrvCcn->GetTextValue(r2, 0); + hno += wxFILE_SEP_PATH + m_dataViewListCtrlDrv->GetTextValue(r3, 1); + + wxString cmd = wxT("explorer.exe ") + hno; + wxExecute(cmd); } void SearchFrame::OnUploadHhsDB(wxCommandEvent& WXUNUSED(event)) @@ -328,8 +505,33 @@ SetListAny(wxEmptyString); } -void SearchFrame::OnSelectBatchListItem(wxDataViewEvent& WXUNUSED(event)) +void SearchFrame::OnSelectBatchListCtrlA(wxKeyEvent& event) +{ + int mod = event.GetModifiers(); + int keycode = event.GetKeyCode(); + //wxMessageBox(wxString::Format(wxT("%d-%d"), mod, keycode)); + + if (keycode == 1) + m_dataViewListCtrlBatch->SelectAll(); + + event.Skip(); +} + +void SearchFrame::OnSelectBatchDClick(wxDataViewEvent& WXUNUSED(event)) { + int r = m_dataViewListCtrlBatch->GetSelectedRow(); + wxString hno = m_dataViewListCtrlBatch->GetTextValue(r, 1); + m_searchCtrl->SetValue(hno); + + wxString url = wxT("/h/") + hno; + wxString h = HttpGetText(m_addr, m_port, url); // Get /h/0800012345 -> name:addr:ymd1#ymd2#... + + SetHhsInfo(h); + SetImages(); + + m_searchmode = 0; + SetListAny(h); + m_notebook->SetSelection(0); } void SearchFrame::OnSelectListAnyItem(wxDataViewEvent& WXUNUSED(event)) @@ -487,12 +689,12 @@ m_buttonRead = new wxButton(m_panelBatch, wxID_ANY, wxT("読込み"), wxDefaultPosition, wxDefaultSize, 0); gbSizerBatch->Add(m_buttonRead, wxGBPosition(0, 1), wxGBSpan(1, 1), wxALL|wxALIGN_CENTER_VERTICAL, 5); - m_dataViewListCtrlBatch = new wxDataViewListCtrl(m_panelBatch, wxID_ANY, wxDefaultPosition, wxSize(800, 600), wxDV_MULTIPLE|wxDV_ROW_LINES); - m_dataViewListColumnBPNo = m_dataViewListCtrlBatch->AppendTextColumn(wxT("No"), wxDATAVIEW_CELL_INERT, 40, static_cast<wxAlignment>(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE); + m_dataViewListCtrlBatch = new wxDataViewListCtrl(m_panelBatch, wxID_ANY, wxDefaultPosition, wxSize(700, 800), wxDV_MULTIPLE|wxDV_ROW_LINES); + m_dataViewListColumnBPNo = m_dataViewListCtrlBatch->AppendTextColumn(wxT("No"), wxDATAVIEW_CELL_INERT, 40, static_cast<wxAlignment>(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE|wxDATAVIEW_COL_SORTABLE); m_dataViewListColumnBPHno = m_dataViewListCtrlBatch->AppendTextColumn(wxT("被保険者番号"), wxDATAVIEW_CELL_INERT, 100, static_cast<wxAlignment>(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE); m_dataViewListColumnBPName = m_dataViewListCtrlBatch->AppendTextColumn(wxT(" 氏名"), wxDATAVIEW_CELL_INERT, 120, static_cast<wxAlignment>(wxALIGN_LEFT), wxDATAVIEW_COL_RESIZABLE); - m_dataViewListColumnBPDate = m_dataViewListCtrlBatch->AppendTextColumn(wxT("日付"), wxDATAVIEW_CELL_INERT, 90, static_cast<wxAlignment>(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE); - m_dataViewListColumnOnlyIk = m_dataViewListCtrlBatch->AppendToggleColumn(wxT("意見書のみ"), wxDATAVIEW_CELL_INERT, 80, static_cast<wxAlignment>(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE); + m_dataViewListColumnBPDate = m_dataViewListCtrlBatch->AppendTextColumn(wxT("日付"), wxDATAVIEW_CELL_INERT, 90, static_cast<wxAlignment>(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE|wxDATAVIEW_COL_SORTABLE); + m_dataViewListColumnOnlyIk = m_dataViewListCtrlBatch->AppendToggleColumn(wxT("意見書のみ"), wxDATAVIEW_CELL_INERT, 80, static_cast<wxAlignment>(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE|wxDATAVIEW_COL_SORTABLE); m_dataViewListColumnProgress = m_dataViewListCtrlBatch->AppendProgressColumn(wxT("状態"), wxDATAVIEW_CELL_INERT, 100, static_cast<wxAlignment>(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE); m_dataViewListColumnDummy = m_dataViewListCtrlBatch->AppendTextColumn(wxEmptyString, wxDATAVIEW_CELL_INERT, 80, static_cast<wxAlignment>(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE); m_dataViewListCtrlBatch->SetAlternateRowColour(wxColour(230, 230, 255)) ; @@ -510,7 +712,7 @@ m_staticTextIndex->SetFont(wxFont(wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, true, wxEmptyString)); bSizerMainte->Add(m_staticTextIndex, 0, wxALL, 5); - wxFlexGridSizer* fgSizerIdx = new wxFlexGridSizer(0, 4, 0, 0); + wxFlexGridSizer* fgSizerIdx = new wxFlexGridSizer(0, 5, 0, 0); fgSizerIdx->SetFlexibleDirection(wxBOTH); fgSizerIdx->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED); @@ -523,9 +725,13 @@ m_staticTextDate = new wxStaticText(m_panelMainte, wxID_ANY, wxT("日付"), wxDefaultPosition, wxDefaultSize, 0); fgSizerIdx->Add(m_staticTextDate, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); + m_staticTextCcn = new wxStaticText(m_panelMainte, wxID_ANY, wxT("審査会"), wxDefaultPosition, wxDefaultSize, 0); + fgSizerIdx->Add(m_staticTextCcn, 0, wxALL, 5); + m_staticTextData = new wxStaticText(m_panelMainte, wxID_ANY, wxT("データ"), wxDefaultPosition, wxDefaultSize, 0); fgSizerIdx->Add(m_staticTextData, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); + // -- m_staticTextDB = new wxStaticText(m_panelMainte, wxID_ANY, wxT("DB"), wxDefaultPosition, wxDefaultSize, 0); fgSizerIdx->Add(m_staticTextDB, 0, wxALL, 5); @@ -535,24 +741,28 @@ m_choiceIdxYear->SetSelection(0); fgSizerIdx->Add(m_choiceIdxYear, 0, wxALL, 5); - m_dataViewListCtrlIdxDate = new wxDataViewListCtrl(m_panelMainte, wxID_ANY, wxDefaultPosition, wxSize(130, 280), wxDV_HORIZ_RULES); + m_dataViewListCtrlIdxDate = new wxDataViewListCtrl(m_panelMainte, wxID_ANY, wxDefaultPosition, wxSize(130, 330), wxDV_SINGLE|wxDV_ROW_LINES); m_dataViewListColumnIdxDateNo = m_dataViewListCtrlIdxDate->AppendTextColumn(wxT("No"), wxDATAVIEW_CELL_INERT, 40, static_cast<wxAlignment>(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE); m_dataViewListColumnIdxDate = m_dataViewListCtrlIdxDate->AppendTextColumn(wxT("日付"), wxDATAVIEW_CELL_INERT, 80, static_cast<wxAlignment>(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE); m_dataViewListCtrlIdxDate->SetAlternateRowColour(wxColour(230, 230, 255)) ; fgSizerIdx->Add(m_dataViewListCtrlIdxDate, 1, wxALL|wxEXPAND, 5); - m_dataViewListCtrlIdx = new wxDataViewListCtrl(m_panelMainte, wxID_ANY, wxDefaultPosition, wxSize(280, -1), wxDV_HORIZ_RULES); + m_staticTextIdxCcn = new wxStaticText(m_panelMainte, wxID_ANY, wxT("---"), wxDefaultPosition, wxDefaultSize, 0); + fgSizerIdx->Add(m_staticTextIdxCcn, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5); + + m_dataViewListCtrlIdx = new wxDataViewListCtrl(m_panelMainte, wxID_ANY, wxDefaultPosition, wxSize(300, -1), wxDV_SINGLE|wxDV_ROW_LINES); m_dataViewListColumnIdxNo = m_dataViewListCtrlIdx->AppendTextColumn(wxT("No"), wxDATAVIEW_CELL_INERT, 40, static_cast<wxAlignment>(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE); m_dataViewListColumnIdxHno = m_dataViewListCtrlIdx->AppendTextColumn(wxT("被保険者番号"), wxDATAVIEW_CELL_INERT, 100, static_cast<wxAlignment>(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE); m_dataViewListColumnIdxName = m_dataViewListCtrlIdx->AppendTextColumn(wxT(" 氏名"), wxDATAVIEW_CELL_INERT, 120, static_cast<wxAlignment>(wxALIGN_LEFT), wxDATAVIEW_COL_RESIZABLE); m_dataViewListCtrlIdx->SetAlternateRowColour(wxColour(230, 230, 255)) ; fgSizerIdx->Add(m_dataViewListCtrlIdx, 1, wxALL|wxEXPAND, 5); + // -- wxString m_choiceDrvChoices[] = {wxT("C"), wxT("Y"), wxT("Z")}; int m_choiceDrvNChoices = sizeof(m_choiceDrvChoices) / sizeof(wxString); - m_choiceDrvYear = new wxChoice(m_panelMainte, wxID_ANY, wxDefaultPosition, wxSize(50, -1), m_choiceDrvNChoices, m_choiceDrvChoices, 0); - m_choiceDrvYear->SetSelection(0); - fgSizerIdx->Add(m_choiceDrvYear, 0, wxALL, 5); + m_choiceDrv = new wxChoice(m_panelMainte, wxID_ANY, wxDefaultPosition, wxSize(50, -1), m_choiceDrvNChoices, m_choiceDrvChoices, 0); + m_choiceDrv->SetSelection(0); + fgSizerIdx->Add(m_choiceDrv, 0, wxALL, 5); wxString m_choiceDrvYearChoices[] = {wxEmptyString, wxT("2020"), wxT("2021"), wxT("2022"), wxT("2023"), wxT("2024"), wxT("2026"), wxT("2027"), wxT("2028"), wxT("2029"), wxT("2030"), wxT("2031"), wxT("2032"), wxT("2033"), wxT("2034")}; int m_choiceDrvYearNChoices = sizeof(m_choiceDrvYearChoices) / sizeof(wxString); @@ -560,21 +770,27 @@ m_choiceDrvYear->SetSelection(0); fgSizerIdx->Add(m_choiceDrvYear, 0, wxALL, 5); - m_dataViewListCtrlDrvDate = new wxDataViewListCtrl(m_panelMainte, wxID_ANY, wxDefaultPosition, wxSize(130,280), wxDV_HORIZ_RULES); + m_dataViewListCtrlDrvDate = new wxDataViewListCtrl(m_panelMainte, wxID_ANY, wxDefaultPosition, wxSize(130, 330), wxDV_SINGLE|wxDV_ROW_LINES); m_dataViewListColumnDrvDateNo = m_dataViewListCtrlDrvDate->AppendTextColumn(wxT("No"), wxDATAVIEW_CELL_INERT, 40, static_cast<wxAlignment>(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE); m_dataViewListColumnDrvDate = m_dataViewListCtrlDrvDate->AppendTextColumn(wxT("日付"), wxDATAVIEW_CELL_INERT, 80, static_cast<wxAlignment>(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE); m_dataViewListCtrlDrvDate->SetAlternateRowColour(wxColour(230, 230, 255)) ; - fgSizerIdx->Add(m_dataViewListCtrlDrvDate, 0, wxALL, 5); + fgSizerIdx->Add(m_dataViewListCtrlDrvDate, 1, wxALL|wxEXPAND, 5); - m_dataViewListCtrlDrv = new wxDataViewListCtrl(m_panelMainte, wxID_ANY, wxDefaultPosition, wxSize(280, -1), wxDV_HORIZ_RULES); + m_dataViewListCtrlDrvCcn = new wxDataViewListCtrl(m_panelMainte, wxID_ANY, wxDefaultPosition, wxSize(80,-1 ), wxDV_SINGLE|wxDV_ROW_LINES); + m_dataViewListColumnDrvCcn = m_dataViewListCtrlDrvCcn->AppendTextColumn(wxT("合議対"), wxDATAVIEW_CELL_INERT, -1, static_cast<wxAlignment>(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE); + m_dataViewListCtrlDrvCcn->SetAlternateRowColour(wxColour(230, 230, 255)) ; + fgSizerIdx->Add(m_dataViewListCtrlDrvCcn, 1, wxALL|wxEXPAND, 5); + + m_dataViewListCtrlDrv = new wxDataViewListCtrl(m_panelMainte, wxID_ANY, wxDefaultPosition, wxSize(300, -1), wxDV_SINGLE|wxDV_ROW_LINES); m_dataViewListColumnDrvNo = m_dataViewListCtrlDrv->AppendTextColumn(wxT("No"), wxDATAVIEW_CELL_INERT, 40, static_cast<wxAlignment>(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE); m_dataViewListColumnDrvHno = m_dataViewListCtrlDrv->AppendTextColumn(wxT("被保険者番号"), wxDATAVIEW_CELL_INERT, 100, static_cast<wxAlignment>(wxALIGN_CENTER), wxDATAVIEW_COL_RESIZABLE); m_dataViewListColumnDrvName = m_dataViewListCtrlDrv->AppendTextColumn(wxT(" 氏名"), wxDATAVIEW_CELL_INERT, 120, static_cast<wxAlignment>(wxALIGN_LEFT), wxDATAVIEW_COL_RESIZABLE); m_dataViewListCtrlDrv->SetAlternateRowColour(wxColour(230, 230, 255)) ; - fgSizerIdx->Add(m_dataViewListCtrlDrv, 0, wxALL, 5); + fgSizerIdx->Add(m_dataViewListCtrlDrv, 1, wxALL|wxEXPAND, 5); bSizerMainte->Add(fgSizerIdx, 0, wxLEFT|wxEXPAND, 30); + // ---- m_staticline = new wxStaticLine(m_panelMainte, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL); bSizerMainte->Add(m_staticline, 0, wxEXPAND|wxALL, 5); @@ -702,6 +918,12 @@ m_staticBitmap4 = new MyStaticBitmap(m_scrolledWindow4, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); m_staticBitmap5 = new MyStaticBitmap(m_scrolledWindow5, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0, wxEmptyString); + m_staticBitmap1->SetParentWidows(this, m_notebook); + m_staticBitmap2->SetParentWidows(this, m_notebook); + m_staticBitmap3->SetParentWidows(this, m_notebook); + m_staticBitmap4->SetParentWidows(this, m_notebook); + m_staticBitmap5->SetParentWidows(this, m_notebook); + m_searchmode = 0; m_buttonHist->Enable(false); @@ -749,8 +971,7 @@ void SearchFrame::SetImages() { - if (m_dataViewListCtrlAny->GetSelectedRow() == wxNOT_FOUND) - return; + if (m_dataViewListCtrlAny->GetSelectedRow() == wxNOT_FOUND) return; int r = m_dataViewListCtrlAny->GetSelectedRow(); wxString date = m_dataViewListCtrlAny->GetTextValue(r, 1); @@ -768,8 +989,8 @@ mysb.zoom = 0; mysb.ParentWinScroll(0, 0); - if (!wxFileExists(file)) - file = wxT("image/testpattern.tif"); + if (!wxFileExists(file)) file = wxT("image/testpattern.tif"); + wxBitmap bmp(file, wxBITMAP_TYPE_TIFF); int width = bmp.GetWidth(); int height = bmp.GetHeight(); @@ -812,10 +1033,11 @@ if (buf.StartsWith(wxT("0"))) { hhslist.Add(buf.Left(10)); wxArrayString cols = wxSplit(buf, ',', '\\'); - if (cols[2].IsEmpty()) + if (cols[2].IsEmpty()) { iklist.Add(wxEmptyString); - else + } else { iklist.Add(wxT("1")); + } m_hist.Add(buf.Left(10)); } } @@ -831,13 +1053,15 @@ data.push_back(wxVariant(wxString::Format(wxT("%03d"), i + 1))); data.push_back(wxVariant(hinfo[0])); data.push_back(wxVariant(hinfo[1])); - if (hinfo[2] != wxEmptyString) + if (hinfo[2] != wxEmptyString) { hinfo[2] = hinfo[2].Left(4) + wxT("-") + hinfo[2].Mid(4,2) + wxT("-") + hinfo[2].Right(2); + } data.push_back(wxVariant(hinfo[2])); - if (iklist[i].IsEmpty()) + if (iklist[i].IsEmpty()) { data.push_back(wxVariant(false)); - else + } else { data.push_back(wxVariant(true)); + } data.push_back(wxVariant(1)); // status data.push_back(wxVariant(wxEmptyString)); // dummy