Esempio n. 1
0
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();
}