diff -r 7c2e71835de7 -r 0ace7edbb06f kruskalbox.cc --- a/kruskalbox.cc Fri Jan 06 14:44:04 2006 +0000 +++ b/kruskalbox.cc Fri Jan 06 16:07:08 2006 +0000 @@ -9,62 +9,61 @@ void KruskalBox::run() { - Graph g=mapstorage->graph; - Graph::EdgeMap * inputmap= - ((mapstorage->edgemap_storage)[(edgemapcbts[INPUT])->get_active_text()]); - Graph::EdgeMap outputmap(g); - double res=kruskal(g, *inputmap, outputmap); + if( + tabcbt.get_active_text()!="" && + (edgemapcbts[INPUT])->get_active_text()!="" && + (edgemapcbts[OUTPUT])->get_active_text()!="" + ) + { - for (EdgeIt i(g); i!=INVALID; ++i) - { - if(outputmap[i]) - { - (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])-> - get_active_text()]))[i]=1; - } - else - { - (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])-> - get_active_text()]))[i]=0; - } - } + Graph g=mapstorage->graph; + Graph::EdgeMap * inputmap= + ((mapstorage->edgemap_storage)[(edgemapcbts[INPUT])->get_active_text()]); + Graph::EdgeMap outputmap(g); + double res=kruskal(g, *inputmap, outputmap); - std::ostringstream o; - o << "Result: " << res; - resultlabel.set_text(o.str()); + for (EdgeIt i(g); i!=INVALID; ++i) + { + if(outputmap[i]) + { + (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])-> + get_active_text()]))[i]=1; + } + else + { + (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])-> + get_active_text()]))[i]=0; + } + } - mapstorage->mapChanged(true, (edgemapcbts[OUTPUT])->get_active_text()); - // mapstorage->changeActiveMap(true, E_COLOR, - // (edgemapcbts[OUTPUT])->get_active_text()); - // mapstorage->changeActiveMap(true, E_TEXT, - // (edgemapcbts[INPUT])->get_active_text()); + std::ostringstream o; + o << "Result: " << res; + resultlabel.set_text(o.str()); + + mapstorage->mapChanged(true, (edgemapcbts[OUTPUT])->get_active_text()); + // mapstorage->changeActiveMap(true, E_COLOR, + // (edgemapcbts[OUTPUT])->get_active_text()); + // mapstorage->changeActiveMap(true, E_TEXT, + // (edgemapcbts[INPUT])->get_active_text()); + } } void KruskalBox::build_box() { + std::vector empty_vector; + edgemapcbts.resize(MAP_NUM); - Gtk::HBox * hbox; - hbox=new Gtk::HBox(); + edgemapcbts[0]=new MapSelector(empty_vector,"","Edgecosts: ",true, false); + edgemapcbts[0]->signal_newmapwin_needed().connect(sigc::mem_fun(*this, &AlgoBox::emit_new_map_signal)); - label=new Gtk::Label("Edgecosts: "); + pack_start(*(edgemapcbts[INPUT])); - edgemapcbts[0]=new Gtk::ComboBoxText(); + edgemapcbts[1]=new MapSelector(empty_vector,"","Edges of tree here: ",true, false); + edgemapcbts[1]->signal_newmapwin_needed().connect(sigc::mem_fun(*this, &AlgoBox::emit_new_map_signal)); - hbox->pack_start(*label); - hbox->pack_start(*(edgemapcbts[INPUT])); - pack_start(*hbox); - - hbox=new Gtk::HBox(); - - label=new Gtk::Label("Edges of tree here: "); - - edgemapcbts[1]=new Gtk::ComboBoxText(); - - hbox->pack_start(*label); - hbox->pack_start(*(edgemapcbts[OUTPUT])); - pack_start(*hbox); + pack_start(*(edgemapcbts[OUTPUT])); resultlabel.set_text("Result: algorithm is not run yet."); pack_start(resultlabel);