void DataViewerAddColDlg::OnEditDecimals( wxCommandEvent& ev ) { wxLogMessage("DataViewerAddColDlg::OnEditDecimals()"); if (!fixed_lengths) return; if (cur_type != GdaConst::double_type) { m_decimals_valid = true; UpdateApplyButton(); return; } wxString s = m_decimals->GetValue(); long val = 0; bool is_num = s.ToLong(&val); m_decimals_val = val; long min_v = GdaConst::min_dbf_double_decimals; long max_v = GdaConst::max_dbf_double_decimals; if ((is_num && val >= min_v && val <= max_v) || s.length() == 0) { wxTextAttr style(m_name->GetDefaultStyle()); style.SetTextColour(*wxBLACK); m_name->SetStyle(0, s.length(), style); } else { wxTextAttr style(m_name->GetDefaultStyle()); style.SetTextColour(*wxRED); m_name->SetStyle(0, s.length(), style); } m_decimals_valid = is_num && val >= min_v && val <= max_v; UpdateMinMaxValues(); UpdateApplyButton(); }
void DataViewerAddColDlg::OnChoiceDisplayedDecimals( wxCommandEvent& ev ) { wxLogMessage("DataViewerAddColDlg::OnChoiceDisplayedDecimals()"); if (fixed_lengths && cur_type == GdaConst::double_type) UpdateMinMaxValues(); UpdateApplyButton(); }
void DataViewerAddColDlg::OnEditLength( wxCommandEvent& ev ) { wxString s = m_length->GetValue(); long val = 0; bool is_num = s.ToLong(&val); m_length_val = val; long min_v; long max_v; if (cur_type == GeoDaConst::date_type) { min_v = GeoDaConst::min_dbf_date_len; max_v = GeoDaConst::max_dbf_date_len; } else if (cur_type == GeoDaConst::long64_type) { min_v = GeoDaConst::min_dbf_long_len; max_v = GeoDaConst::max_dbf_long_len; } else if (cur_type == GeoDaConst::double_type) { min_v = GeoDaConst::min_dbf_double_len; max_v = GeoDaConst::max_dbf_double_len; } else { // cur_type == GeoDaConst::string_type min_v = GeoDaConst::min_dbf_string_len; max_v = GeoDaConst::max_dbf_string_len; } if ((is_num && val >= min_v && val <= max_v) || s.length() == 0) { wxTextAttr style(m_name->GetDefaultStyle()); style.SetTextColour(*wxBLACK); m_name->SetStyle(0, s.length(), style); } else { wxTextAttr style(m_name->GetDefaultStyle()); style.SetTextColour(*wxRED); m_name->SetStyle(0, s.length(), style); } m_length_valid = is_num && val >= min_v && val <= max_v; UpdateMinMaxValues(); UpdateApplyButton(); }
void DataViewerAddColDlg::SetDefaultsByType(GdaConst::FieldType type) { wxLogMessage("In DataViewerAddColDlg::SetDefaultsByType()"); // set some defaults first m_displayed_decimals->SetSelection(0); m_displayed_decimals->Disable(); if (fixed_lengths) { m_length->Enable(); m_decimals_lable->SetLabelText("Decimals"); m_decimals->SetValue("7"); m_decimals->Disable(); m_max_label->SetLabelText(""); m_max_val->SetLabelText(""); m_min_label->SetLabelText(""); m_min_val->SetLabelText(""); m_length_valid = true; m_decimals_valid = true; } switch (type) { case GdaConst::double_type: { cur_type = GdaConst::double_type; m_displayed_decimals->Enable(); m_displayed_decimals->SetSelection(0); if (fixed_lengths) { m_length_lable->SetLabelText(wxString::Format("Length (max %d)", GdaConst::max_dbf_double_len)); m_length->SetValue(wxString::Format("%d", GdaConst::default_dbf_double_len)); m_decimals_lable->SetLabelText(wxString::Format("Decimals (max %d)", GdaConst::max_dbf_double_decimals)); m_decimals->Enable(); m_decimals->SetValue(wxString::Format("%d", GdaConst::default_dbf_double_decimals)); m_max_label->SetLabelText("maximum"); m_max_val->SetLabelText(wxString::Format("%d", 9)); m_min_label->SetLabelText("minimum"); m_min_val->SetLabelText(wxString::Format("-%d", 9)); } } break; case GdaConst::long64_type: { cur_type = GdaConst::long64_type; if (fixed_lengths) { m_length_lable->SetLabelText(wxString::Format("Length (max %d)", GdaConst::max_dbf_long_len)); m_length->SetValue(wxString::Format("%d", GdaConst::default_dbf_long_len)); m_max_label->SetLabelText("maximum"); m_max_val->SetLabelText(wxString::Format("%d", 9)); m_min_label->SetLabelText("minimum"); m_min_val->SetLabelText(wxString::Format("-%d", 9)); } } break; case GdaConst::string_type: { cur_type = GdaConst::string_type; if (fixed_lengths) { m_length_lable->SetLabelText(wxString::Format("Length (max %d)", GdaConst::max_dbf_string_len)); m_length->SetValue(wxString::Format("%d", GdaConst::default_dbf_string_len)); } } break; case GdaConst::date_type: default: { cur_type = GdaConst::date_type; if (fixed_lengths) { m_length_lable->SetLabelText("Length"); m_length->SetValue(wxString::Format("%d", GdaConst::default_dbf_date_len)); m_length->Disable(); } } } if (fixed_lengths) UpdateMinMaxValues(); }
void DataViewerAddColDlg::SetDefaultsByType(GeoDaConst::FieldType type) { // set some defaults first m_length->Enable(); m_decimals_lable->SetLabelText("Decimals"); m_decimals->SetValue("0"); m_decimals->Disable(); m_displayed_decimals->SetValue("0"); m_displayed_decimals->Disable(); m_max_label->SetLabelText(""); m_max_val->SetLabelText(""); m_min_label->SetLabelText(""); m_min_val->SetLabelText(""); m_length_valid = true; m_decimals_valid = true; m_displayed_decimals_valid = true; switch (type) { case GeoDaConst::double_type: { cur_type = GeoDaConst::double_type; m_length_lable->SetLabelText(wxString::Format("Length (max %d)", GeoDaConst::max_dbf_double_len)); m_length->SetValue(wxString::Format("%d", GeoDaConst::default_dbf_double_len)); m_decimals_lable->SetLabelText(wxString::Format("Decimals (max %d)", GeoDaConst::max_dbf_double_decimals)); m_decimals->Enable(); m_decimals->SetValue(wxString::Format("%d", GeoDaConst::default_dbf_double_decimals)); m_displayed_decimals->Enable(); m_displayed_decimals->SetValue(wxString::Format("%d", GeoDaConst::default_dbf_double_decimals)); m_max_label->SetLabelText("maximum"); m_max_val->SetLabelText(wxString::Format("%d", 9)); m_min_label->SetLabelText("minimum"); m_min_val->SetLabelText(wxString::Format("-%d", 9)); } break; case GeoDaConst::long64_type: { cur_type = GeoDaConst::long64_type; m_length_lable->SetLabelText(wxString::Format("Length (max %d)", GeoDaConst::max_dbf_long_len)); m_length->SetValue(wxString::Format("%d", GeoDaConst::default_dbf_long_len)); m_max_label->SetLabelText("maximum"); m_max_val->SetLabelText(wxString::Format("%d", 9)); m_min_label->SetLabelText("minimum"); m_min_val->SetLabelText(wxString::Format("-%d", 9)); } break; case GeoDaConst::string_type: { cur_type = GeoDaConst::string_type; m_length_lable->SetLabelText(wxString::Format("Length (max %d)", GeoDaConst::max_dbf_string_len)); m_length->SetValue(wxString::Format("%d", GeoDaConst::default_dbf_string_len)); } break; case GeoDaConst::date_type: default: { cur_type = GeoDaConst::date_type; m_length_lable->SetLabelText("Length"); m_length->SetValue(wxString::Format("%d", GeoDaConst::default_dbf_date_len)); m_length->Disable(); } } UpdateMinMaxValues(); }