void TableFrame::OnGroupVariables( wxCommandEvent& event) { using namespace std; TableInterface* ti = table_base->GetTableInt(); vector<int> sel_cols; table_base->GetSelectedCols(sel_cols); vector<cid_to_pos_pair> cid_to_disp(sel_cols.size()); for (int i=0; i<sel_cols.size(); i++) { cid_to_pos_pair p; p.cid = sel_cols[i]; p.pos = grid->GetColPos(sel_cols[i]); cid_to_disp[i] = p; } sort(cid_to_disp.begin(), cid_to_disp.end(), cid_to_pos_pair::less_than); for (int i=0; i<sel_cols.size(); i++) { sel_cols[i] = cid_to_disp[i].cid; } vector<wxString> names(sel_cols.size()); for (int i=0; i<sel_cols.size(); ++i) names[i]=ti->GetColName(sel_cols[i]); wxString grp_nm = ti->SuggestGroupName(names); if (sel_cols.size() > 0) { if (ti->GetTimeSteps() == 1 && sel_cols.size() > 1) { if (table_state->GetNumDisallowTimelineChanges() > 0) { wxString msg = table_state->GetDisallowTimelineChangesMsg(); wxMessageDialog dlg (this, msg, "Warning", wxOK | wxICON_INFORMATION); dlg.ShowModal(); return; } } ti->GroupCols(sel_cols, grp_nm, sel_cols[0]); } table_base->DeselectAllCols(); grid->Refresh(); GdaFrame::GetGdaFrame()->UpdateToolbarAndMenus(); }