- Completed the AddRequestDialog dialog. It`s of little use without resources handling, anyway..

git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@912 3ecf2c5c-341e-0410-92b4-d18e462d057c
This commit is contained in:
elvez 2006-08-20 17:52:46 +00:00
parent 894784463f
commit b554a43f30
4 changed files with 56 additions and 12 deletions

View file

@ -30,18 +30,21 @@
#include "gettext.h"
#include <gtkmm/spinbutton.h>
using namespace sgpem;
using namespace Gtk;
using namespace Glib;
using Gnome::Glade::Xml;
AddRequestDialog::AddRequestDialog(BaseObjectType* cobject, const RefPtr<Xml>& glade) :
Dialog(cobject)
Dialog(cobject), _glade(glade)
{
glade->get_widget("SubRequests.View", _list);
glade->get_widget("Add", _add_button);
glade->get_widget("Add", _remove_button);
glade->get_widget("Resource.Combo", _resource_combo);
_glade->get_widget("SubRequests.View", _list);
_glade->get_widget("Add", _add_button);
_glade->get_widget("Remove", _remove_button);
_glade->get_widget("Resource.Combo", _resource_combo);
/** ATTACH SIGNAL HANDLERS FOR BUTTONS **/
@ -54,26 +57,33 @@ AddRequestDialog::AddRequestDialog(BaseObjectType* cobject, const RefPtr<Xml>& g
_combo_model = ListStore::create(_combo_columns);
_resource_combo->set_model(_combo_model);
_resource_combo->pack_start(_combo_key_column, false);
_resource_combo->pack_start(_combo_resource_column, true);
/** INITIALIZE LISTVIEW **/
_list_columns.add(_list_key_column);
_list_columns.add(_list_resource_column);
_list_columns.add(_list_length_column);
_list_model = ListStore::create(_list_columns);
_list->set_model(_list_model);
_list->append_column(_("key"), _list_key_column);
_list->append_column(_("resource"), _list_resource_column);
_list->append_column(_("length"), _list_length_column);
_list->get_selection()->signal_changed().connect(
sigc::mem_fun(*this, &AddRequestDialog::_on_selection_changed));
}
void
AddRequestDialog::on_show()
{
//TODO is this a reasonable place where to fill the combo model?
typedef Environment::Resources::const_iterator ResourceIt;
Dialog::on_show();
const Environment::Resources& resources =
Simulation::get_instance().get_history().get_last_environment().get_resources();
@ -85,17 +95,45 @@ AddRequestDialog::on_show()
row[_combo_key_column] = it->first;
row[_combo_resource_column] = it->second->get_name();
}
Dialog::on_show();
}
void
AddRequestDialog::_on_add()
{
//TODO
TreeModel::iterator sel = _resource_combo->get_active();
if(sel)
{
SpinButton* duration_spin;
_glade->get_widget("Duration.Spin", duration_spin);
TreeModel::Row row = *(_list_model->append());
const unsigned int key = (*sel)[_combo_key_column];
row[_list_key_column] = key;
const ustring resource = (*sel)[_combo_resource_column];
row[_list_resource_column] = resource;
const unsigned int length = duration_spin->get_value_as_int();
row[_list_length_column] = length;
}
}
void
AddRequestDialog::_on_remove()
{
//TODO
TreeModel::iterator it = _list->get_selection()->get_selected();
_list_model->erase(it);
}
void
AddRequestDialog::_on_selection_changed()
{
_remove_button->set_sensitive(
_list->get_selection()->count_selected_rows() > 0);
}