- All dialogs created by SchedulablesTreeWidget are now inializated only when needed
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@967 3ecf2c5c-341e-0410-92b4-d18e462d057c
This commit is contained in:
parent
a4bde96a7b
commit
685a6d84f0
|
@ -107,9 +107,9 @@ AddRequestDialog::run_add(Thread& owner)
|
||||||
Request* r = NULL;
|
Request* r = NULL;
|
||||||
|
|
||||||
// reset the dialog data
|
// reset the dialog data
|
||||||
_list_model->clear();
|
// _list_model->clear();
|
||||||
_instant_spin->set_value(0.0);
|
// _instant_spin->set_value(0.0);
|
||||||
_duration_spin->set_value(0.0);
|
// _duration_spin->set_value(0.0);
|
||||||
|
|
||||||
if(run() == RESPONSE_OK)
|
if(run() == RESPONSE_OK)
|
||||||
{
|
{
|
||||||
|
|
|
@ -52,10 +52,7 @@ SchedulablesTreeWidget::CellRendererTextMarkup::_property_renderable()
|
||||||
return Glib::PropertyProxy_Base(this, "markup");
|
return Glib::PropertyProxy_Base(this, "markup");
|
||||||
}
|
}
|
||||||
|
|
||||||
SchedulablesTreeWidget::SchedulablesTreeWidget() :
|
SchedulablesTreeWidget::SchedulablesTreeWidget()
|
||||||
_add_thread_dialog_glade(Xml::create(GLADEDIR "/add-thread-dialog.glade")),
|
|
||||||
_add_request_dialog_glade(Xml::create(GLADEDIR "/add-request-dialog.glade"))
|
|
||||||
|
|
||||||
{
|
{
|
||||||
_columns.add(_main_column);
|
_columns.add(_main_column);
|
||||||
_columns.add(_types_column);
|
_columns.add(_types_column);
|
||||||
|
@ -68,12 +65,6 @@ SchedulablesTreeWidget::SchedulablesTreeWidget() :
|
||||||
Gtk::TreeViewColumn* tvc = get_column(idx);
|
Gtk::TreeViewColumn* tvc = get_column(idx);
|
||||||
tvc->set_cell_data_func(_cell_renderer, sigc::mem_fun(*this, &SchedulablesTreeWidget::_on_cell_name_data));
|
tvc->set_cell_data_func(_cell_renderer, sigc::mem_fun(*this, &SchedulablesTreeWidget::_on_cell_name_data));
|
||||||
|
|
||||||
/** DIALOGS **/
|
|
||||||
_add_thread_dialog_glade->get_widget("AddThreadDialog", _add_thread_dialog);
|
|
||||||
// NOTE This is *not* reflective programming! AddRequestDialog is the name of
|
|
||||||
// the base widget in the glade file.
|
|
||||||
_add_request_dialog_glade->get_widget_derived("AddRequestDialog", _add_request_dialog);
|
|
||||||
|
|
||||||
set_headers_visible(false);
|
set_headers_visible(false);
|
||||||
|
|
||||||
Simulation::get_instance().get_history().attach(*this);
|
Simulation::get_instance().get_history().attach(*this);
|
||||||
|
@ -391,12 +382,12 @@ SchedulablesTreeWidget::add_edit_process(bool adding)
|
||||||
arrival_time_spin->set_value(static_cast<double>(selection->get_arrival_time()));
|
arrival_time_spin->set_value(static_cast<double>(selection->get_arrival_time()));
|
||||||
base_priority_spin->set_value(static_cast<double>(selection->get_base_priority()));
|
base_priority_spin->set_value(static_cast<double>(selection->get_base_priority()));
|
||||||
}
|
}
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
name_entry->set_text("");
|
// name_entry->set_text("");
|
||||||
arrival_time_spin->set_value(0.0);
|
// arrival_time_spin->set_value(0.0);
|
||||||
base_priority_spin->set_value(0.0);
|
// base_priority_spin->set_value(0.0);
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
if(add_process_dialog->run() == RESPONSE_OK)
|
if(add_process_dialog->run() == RESPONSE_OK)
|
||||||
|
@ -438,15 +429,20 @@ SchedulablesTreeWidget::add_edit_thread(bool adding)
|
||||||
/** This is ugly, I know, we should be using derived widgets, but I also believe we
|
/** This is ugly, I know, we should be using derived widgets, but I also believe we
|
||||||
* have little time, and I'm not going to waste too much of it on the frontend */
|
* have little time, and I'm not going to waste too much of it on the frontend */
|
||||||
|
|
||||||
|
RefPtr<Xml> glade(Xml::create(GLADEDIR "/add-thread-dialog.glade"));
|
||||||
|
Dialog* add_thread_dialog;
|
||||||
|
|
||||||
|
glade->get_widget("AddThreadDialog", add_thread_dialog);
|
||||||
|
|
||||||
Entry* name_entry;
|
Entry* name_entry;
|
||||||
SpinButton* cpu_time_spin;
|
SpinButton* cpu_time_spin;
|
||||||
SpinButton* arrival_time_spin;
|
SpinButton* arrival_time_spin;
|
||||||
SpinButton* base_priority_spin;
|
SpinButton* base_priority_spin;
|
||||||
|
|
||||||
_add_thread_dialog_glade->get_widget("Name.Entry", name_entry);
|
glade->get_widget("Name.Entry", name_entry);
|
||||||
_add_thread_dialog_glade->get_widget("CpuTime.Spin", cpu_time_spin);
|
glade->get_widget("CpuTime.Spin", cpu_time_spin);
|
||||||
_add_thread_dialog_glade->get_widget("ArrivalTime.Spin", arrival_time_spin);
|
glade->get_widget("ArrivalTime.Spin", arrival_time_spin);
|
||||||
_add_thread_dialog_glade->get_widget("BasePriority.Spin", base_priority_spin);
|
glade->get_widget("BasePriority.Spin", base_priority_spin);
|
||||||
|
|
||||||
Thread* t = NULL;
|
Thread* t = NULL;
|
||||||
|
|
||||||
|
@ -459,16 +455,16 @@ SchedulablesTreeWidget::add_edit_thread(bool adding)
|
||||||
arrival_time_spin->set_value(static_cast<double>(t->get_arrival_time()));
|
arrival_time_spin->set_value(static_cast<double>(t->get_arrival_time()));
|
||||||
base_priority_spin->set_value(static_cast<double>(t->get_base_priority()));
|
base_priority_spin->set_value(static_cast<double>(t->get_base_priority()));
|
||||||
}
|
}
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
name_entry->set_text("");
|
// name_entry->set_text("");
|
||||||
cpu_time_spin->set_value(1.0);
|
// cpu_time_spin->set_value(1.0);
|
||||||
arrival_time_spin->set_value(0.0);
|
// arrival_time_spin->set_value(0.0);
|
||||||
base_priority_spin->set_value(0.0);
|
// base_priority_spin->set_value(0.0);
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
if(_add_thread_dialog->run() == RESPONSE_OK)
|
if(add_thread_dialog->run() == RESPONSE_OK)
|
||||||
{
|
{
|
||||||
|
|
||||||
if(adding)
|
if(adding)
|
||||||
|
@ -494,27 +490,39 @@ SchedulablesTreeWidget::add_edit_thread(bool adding)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_add_thread_dialog->hide();
|
add_thread_dialog->hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
SchedulablesTreeWidget::_on_add_request()
|
SchedulablesTreeWidget::_on_add_request()
|
||||||
{
|
{
|
||||||
Thread* t = get_selected<Thread>();
|
RefPtr<Xml> glade(Xml::create(GLADEDIR "/add-request-dialog.glade"));
|
||||||
|
AddRequestDialog* add_request_dialog;
|
||||||
|
|
||||||
|
// NOTE This is *not* reflective programming! AddRequestDialog is the name of
|
||||||
|
// the base widget in the glade file.
|
||||||
|
glade->get_widget("AddRequestDialog", add_request_dialog);
|
||||||
|
|
||||||
|
Thread* t = get_selected<Thread>();
|
||||||
assert(t != NULL);
|
assert(t != NULL);
|
||||||
|
|
||||||
_add_request_dialog->run_add(*t);
|
add_request_dialog->run_add(*t);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
SchedulablesTreeWidget::_on_edit_request()
|
SchedulablesTreeWidget::_on_edit_request()
|
||||||
{
|
{
|
||||||
Request* r = get_selected<Request>();
|
RefPtr<Xml> glade(Xml::create(GLADEDIR "/add-request-dialog.glade"));
|
||||||
|
AddRequestDialog* add_request_dialog;
|
||||||
|
|
||||||
|
// NOTE This is *not* reflective programming! AddRequestDialog is the name of
|
||||||
|
// the base widget in the glade file.
|
||||||
|
glade->get_widget("AddRequestDialog", add_request_dialog);
|
||||||
|
|
||||||
|
Request* r = get_selected<Request>();
|
||||||
assert(r != NULL);
|
assert(r != NULL);
|
||||||
|
|
||||||
_add_request_dialog->run_edit(*r);
|
add_request_dialog->run_edit(*r);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -114,10 +114,6 @@ namespace sgpem
|
||||||
Gtk::TreeModelColumn<HandleType> _types_column;
|
Gtk::TreeModelColumn<HandleType> _types_column;
|
||||||
Gtk::TreeModelColumn<void*> _handles_column;
|
Gtk::TreeModelColumn<void*> _handles_column;
|
||||||
Glib::RefPtr<Gtk::UIManager> _UIManager;
|
Glib::RefPtr<Gtk::UIManager> _UIManager;
|
||||||
Glib::RefPtr<Gnome::Glade::Xml> _add_thread_dialog_glade;
|
|
||||||
Glib::RefPtr<Gnome::Glade::Xml> _add_request_dialog_glade;
|
|
||||||
Gtk::Dialog* _add_thread_dialog;
|
|
||||||
AddRequestDialog* _add_request_dialog;
|
|
||||||
CellRendererTextMarkup _cell_renderer;
|
CellRendererTextMarkup _cell_renderer;
|
||||||
|
|
||||||
void _update_expanded_vector(Gtk::TreeView* tree_view, const Gtk::TreeModel::Path& path);
|
void _update_expanded_vector(Gtk::TreeView* tree_view, const Gtk::TreeModel::Path& path);
|
||||||
|
|
Loading…
Reference in New Issue