1.1 --- a/kruskalbox.cc Fri Jan 06 14:44:04 2006 +0000
1.2 +++ b/kruskalbox.cc Fri Jan 06 16:07:08 2006 +0000
1.3 @@ -9,62 +9,61 @@
1.4
1.5 void KruskalBox::run()
1.6 {
1.7 - Graph g=mapstorage->graph;
1.8 - Graph::EdgeMap<double> * inputmap=
1.9 - ((mapstorage->edgemap_storage)[(edgemapcbts[INPUT])->get_active_text()]);
1.10 - Graph::EdgeMap<bool> outputmap(g);
1.11 - double res=kruskal(g, *inputmap, outputmap);
1.12 + if(
1.13 + tabcbt.get_active_text()!="" &&
1.14 + (edgemapcbts[INPUT])->get_active_text()!="" &&
1.15 + (edgemapcbts[OUTPUT])->get_active_text()!=""
1.16 + )
1.17 + {
1.18
1.19 - for (EdgeIt i(g); i!=INVALID; ++i)
1.20 - {
1.21 - if(outputmap[i])
1.22 - {
1.23 - (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])->
1.24 - get_active_text()]))[i]=1;
1.25 - }
1.26 - else
1.27 - {
1.28 - (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])->
1.29 - get_active_text()]))[i]=0;
1.30 - }
1.31 - }
1.32 + Graph g=mapstorage->graph;
1.33 + Graph::EdgeMap<double> * inputmap=
1.34 + ((mapstorage->edgemap_storage)[(edgemapcbts[INPUT])->get_active_text()]);
1.35 + Graph::EdgeMap<bool> outputmap(g);
1.36 + double res=kruskal(g, *inputmap, outputmap);
1.37
1.38 - std::ostringstream o;
1.39 - o << "Result: " << res;
1.40 - resultlabel.set_text(o.str());
1.41 + for (EdgeIt i(g); i!=INVALID; ++i)
1.42 + {
1.43 + if(outputmap[i])
1.44 + {
1.45 + (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])->
1.46 + get_active_text()]))[i]=1;
1.47 + }
1.48 + else
1.49 + {
1.50 + (*((mapstorage->edgemap_storage)[(edgemapcbts[OUTPUT])->
1.51 + get_active_text()]))[i]=0;
1.52 + }
1.53 + }
1.54
1.55 - mapstorage->mapChanged(true, (edgemapcbts[OUTPUT])->get_active_text());
1.56 - // mapstorage->changeActiveMap(true, E_COLOR,
1.57 - // (edgemapcbts[OUTPUT])->get_active_text());
1.58 - // mapstorage->changeActiveMap(true, E_TEXT,
1.59 - // (edgemapcbts[INPUT])->get_active_text());
1.60 + std::ostringstream o;
1.61 + o << "Result: " << res;
1.62 + resultlabel.set_text(o.str());
1.63 +
1.64 + mapstorage->mapChanged(true, (edgemapcbts[OUTPUT])->get_active_text());
1.65 + // mapstorage->changeActiveMap(true, E_COLOR,
1.66 + // (edgemapcbts[OUTPUT])->get_active_text());
1.67 + // mapstorage->changeActiveMap(true, E_TEXT,
1.68 + // (edgemapcbts[INPUT])->get_active_text());
1.69
1.70 + }
1.71 }
1.72
1.73 void KruskalBox::build_box()
1.74 {
1.75 + std::vector<std::string> empty_vector;
1.76 +
1.77 edgemapcbts.resize(MAP_NUM);
1.78 - Gtk::HBox * hbox;
1.79
1.80 - hbox=new Gtk::HBox();
1.81 + edgemapcbts[0]=new MapSelector(empty_vector,"","Edgecosts: ",true, false);
1.82 + edgemapcbts[0]->signal_newmapwin_needed().connect(sigc::mem_fun(*this, &AlgoBox::emit_new_map_signal));
1.83
1.84 - label=new Gtk::Label("Edgecosts: ");
1.85 + pack_start(*(edgemapcbts[INPUT]));
1.86
1.87 - edgemapcbts[0]=new Gtk::ComboBoxText();
1.88 + edgemapcbts[1]=new MapSelector(empty_vector,"","Edges of tree here: ",true, false);
1.89 + edgemapcbts[1]->signal_newmapwin_needed().connect(sigc::mem_fun(*this, &AlgoBox::emit_new_map_signal));
1.90
1.91 - hbox->pack_start(*label);
1.92 - hbox->pack_start(*(edgemapcbts[INPUT]));
1.93 - pack_start(*hbox);
1.94 -
1.95 - hbox=new Gtk::HBox();
1.96 -
1.97 - label=new Gtk::Label("Edges of tree here: ");
1.98 -
1.99 - edgemapcbts[1]=new Gtk::ComboBoxText();
1.100 -
1.101 - hbox->pack_start(*label);
1.102 - hbox->pack_start(*(edgemapcbts[OUTPUT]));
1.103 - pack_start(*hbox);
1.104 + pack_start(*(edgemapcbts[OUTPUT]));
1.105
1.106 resultlabel.set_text("Result: algorithm is not run yet.");
1.107 pack_start(resultlabel);