std::list<openfluid::core::Unit*> DomainUnitRelationAddDialog::show()
{
  mp_TreeView->get_selection()->unselect_all();

  std::list<openfluid::core::Unit*> SelectedUnits;

  if (mp_Dialog->run() == Gtk::RESPONSE_OK)
  {
    Gtk::TreeSelection::ListHandle_Path Selecteds =
        mp_TreeView->get_selection()->get_selected_rows();

    for (Gtk::TreeSelection::ListHandle_Path::iterator it = Selecteds.begin(); it
        != Selecteds.end(); ++it)
    {
      std::string Class = mref_TreeModel->get_iter(*it)->get_value(
          m_Columns.m_Class);
      int Id = mref_TreeModel->get_iter(*it)->get_value(m_Columns.m_Id);

      if (Id)
        SelectedUnits.push_back(mp_CoreRepos->getUnit(Class, Id));
    }
  }

  mp_Dialog->hide();

  return SelectedUnits;
}
void DocumentProperties::onEditExtraField ()
{
	Gtk::TreeSelection::ListHandle_Path paths =
		extrafieldssel_->get_selected_rows ();

	if (paths.empty ()) {
		DEBUG ("Warning: DocumentProperties::onEditExtraField: none selected");
		return;
	} else if (paths.size () > 1) {
		DEBUG ("Warning: DocumentProperties::onEditExtraField: too many selected");
		return;
	}

	Gtk::TreePath path = (*paths.begin ());
	extrafieldsview_->set_cursor (path, *extrafieldsview_->get_column (1), true);

	updateSensitivity();
}
std::set<std::string> MapViewAddLayersDialog::show(
    const std::set<std::string>& AlreadyDisplayedLayersIds)
{
  update(AlreadyDisplayedLayersIds);

  std::set<std::string> SelectedLayersIds;

  if (mp_Dialog->run() == Gtk::RESPONSE_OK)
  {
    Gtk::TreeSelection::ListHandle_Path Selecteds =
        mp_TreeView->get_selection()->get_selected_rows();

    for (Gtk::TreeSelection::ListHandle_Path::iterator it = Selecteds.begin(); it
        != Selecteds.end(); ++it)
    {
      SelectedLayersIds.insert(mref_TreeModel->get_iter(*it)->get_value(
          m_Columns.m_Id));
    }
  }

  mp_Dialog->hide();

  return SelectedLayersIds;
}