| 22 |
#include "BakeryGateway/ViewSpouseToFamilyLink.hh" |
#include "BakeryGateway/ViewSpouseToFamilyLink.hh" |
| 23 |
#include "BakeryGateway/ViewFamilyRecordNoteFactory.hh" |
#include "BakeryGateway/ViewFamilyRecordNoteFactory.hh" |
| 24 |
#include "BakeryGateway/ViewIndividualEventNoteFactory.hh" |
#include "BakeryGateway/ViewIndividualEventNoteFactory.hh" |
| 25 |
|
#include "OneFamilyLinkHandler.hh" |
| 26 |
|
#include "OneSpouseToFamilyLinkHandler.hh" |
| 27 |
|
#include "OneSpouseToFamilyLink.hh" |
| 28 |
|
|
| 29 |
BakeryGateway::ViewSpouseToFamilyLink::ViewSpouseToFamilyLink(MMISpouseToFamilyLink * mmi) : |
BakeryGateway::ViewSpouseToFamilyLink::ViewSpouseToFamilyLink(MMISpouseToFamilyLink * mmi) : |
| 30 |
_mmi_spousetofamilylink(mmi) |
_mmi_spousetofamilylink(mmi) |
| 78 |
std::string * wife_id = new std::string((*fams_iter).second->getWife()); |
std::string * wife_id = new std::string((*fams_iter).second->getWife()); |
| 79 |
husband = get_name_individual(individuals, *husband_id); |
husband = get_name_individual(individuals, *husband_id); |
| 80 |
wife = get_name_individual(individuals, *wife_id); |
wife = get_name_individual(individuals, *wife_id); |
| 81 |
SigC::Slot0<void> * slot_husband = new SigC::Slot0<void>(SigC::bind(SigC::slot(this, &BakeryGateway::ViewSpouseToFamilyLink::Navigate), husband_id)); |
OneFamilyLinkHandler::SlotHandler_t * slot_husband = new OneFamilyLinkHandler::SlotHandler_t(SigC::bind(SigC::slot(this, &BakeryGateway::ViewSpouseToFamilyLink::ButtonPressed), husband_id)); |
| 82 |
SigC::Slot0<void> * slot_wife = new SigC::Slot0<void>(SigC::bind(SigC::slot(this, &BakeryGateway::ViewSpouseToFamilyLink::Navigate), wife_id)); |
OneFamilyLinkHandler::SlotHandler_t * slot_wife = new OneFamilyLinkHandler::SlotHandler_t(SigC::bind(SigC::slot(this, &BakeryGateway::ViewSpouseToFamilyLink::ButtonPressed), wife_id)); |
| 83 |
std::vector<std::string> children; |
std::vector<std::string> children; |
| 84 |
std::vector < SigC::Slot0<void> * > slot_children; |
std::vector < OneFamilyLinkHandler::SlotHandler_t * > slots_children; |
| 85 |
GEDCOMParser::ChildXrefs_t children_ids = (*fams_iter).second->getChilXrefs(); |
GEDCOMParser::ChildXrefs_t children_ids = (*fams_iter).second->getChilXrefs(); |
| 86 |
for (GEDCOMParser::ChildXrefs_t::const_iterator child_iter = children_ids.begin(); child_iter != children_ids.end(); child_iter++) |
for (GEDCOMParser::ChildXrefs_t::const_iterator child_iter = children_ids.begin(); child_iter != children_ids.end(); child_iter++) |
| 87 |
{ |
{ |
| 88 |
std::string * child_id = new std::string(*child_iter); |
std::string * child_id = new std::string(*child_iter); |
| 89 |
std::string child = get_name_individual(individuals, *child_id); |
std::string child = get_name_individual(individuals, *child_id); |
| 90 |
children.push_back(child); |
children.push_back(child); |
| 91 |
SigC::Slot0<void> * slot_child = new SigC::Slot0<void>(SigC::bind(SigC::slot(this, &BakeryGateway::ViewSpouseToFamilyLink::Navigate), child_id)); |
OneFamilyLinkHandler::SlotHandler_t * slot_child = new OneFamilyLinkHandler::SlotHandler_t(SigC::bind(SigC::slot(this, &BakeryGateway::ViewSpouseToFamilyLink::ButtonPressed), child_id)); |
| 92 |
slot_children.push_back(slot_child); |
slots_children.push_back(slot_child); |
| 93 |
} |
} |
| 94 |
OneSpouseToFamilyLink * new_family_link = _mmi_spousetofamilylink->addSpouseToFamilyLink(*union_date, *union_place, husband, wife, children, slot_husband, slot_wife, slot_children); |
OneSpouseToFamilyLinkHandler new_handler(*union_date, *union_place, husband, wife, children, slot_husband, slot_wife, slots_children); |
| 95 |
|
OneFamilyLink * new_family_link; |
| 96 |
|
new_family_link = _mmi_spousetofamilylink->addFamilyLink(new_handler); |
| 97 |
|
|
| 98 |
Bakery::View<BakeryGateway::Document> * note_view = _view_factory->createView(new_family_link->OneSpouseToFamilyLinkNote); |
Bakery::View<BakeryGateway::Document> * note_view = _view_factory->createView(new_family_link->getFamilyNote()); |
| 99 |
subscribe_view(note_view); |
subscribe_view(note_view); |
| 100 |
BakeryExtras::View_Linked < BakeryGateway::Document, GEDCOMParser::SpouseToFamilyLink > * tmp = dynamic_cast < BakeryExtras::View_Linked < BakeryGateway::Document, GEDCOMParser::SpouseToFamilyLink > * > (note_view); |
BakeryExtras::View_Linked < BakeryGateway::Document, GEDCOMParser::SpouseToFamilyLink > * tmp = dynamic_cast < BakeryExtras::View_Linked < BakeryGateway::Document, GEDCOMParser::SpouseToFamilyLink > * > (note_view); |
| 101 |
tmp->set_parent_entity((*iter).getPtr()); |
tmp->set_parent_entity((*iter).getPtr()); |
| 102 |
|
|
| 103 |
BakeryGateway::ViewFamilyRecordNoteFactory familyrecord_note_factory; |
BakeryGateway::ViewFamilyRecordNoteFactory familyrecord_note_factory; |
| 104 |
Bakery::View<BakeryGateway::Document> * family_note_view = familyrecord_note_factory.createView(new_family_link->MMIUnionFamilyNote); |
Bakery::View<BakeryGateway::Document> * family_note_view = familyrecord_note_factory.createView(new_family_link->getFamilyNote()); |
| 105 |
subscribe_view(family_note_view); |
subscribe_view(family_note_view); |
| 106 |
BakeryExtras::View_Linked < BakeryGateway::Document, GEDCOMParser::FamilyRecord > * tmp2 = dynamic_cast < BakeryExtras::View_Linked < BakeryGateway::Document, GEDCOMParser::FamilyRecord > * > (family_note_view); |
BakeryExtras::View_Linked < BakeryGateway::Document, GEDCOMParser::FamilyRecord > * tmp2 = dynamic_cast < BakeryExtras::View_Linked < BakeryGateway::Document, GEDCOMParser::FamilyRecord > * > (family_note_view); |
| 107 |
tmp2->set_parent_entity(fams_iter->second.getPtr()); |
tmp2->set_parent_entity(fams_iter->second.getPtr()); |
| 108 |
if (union_event != 0) |
if (union_event != 0) |
| 109 |
{ |
{ |
| 110 |
BakeryGateway::ViewIndividualEventNoteFactory union_event_note_factory; |
BakeryGateway::ViewIndividualEventNoteFactory union_event_note_factory; |
| 111 |
Bakery::View<BakeryGateway::Document> * union_event_note_view = union_event_note_factory.createView(new_family_link->MMIUnionNote); |
Bakery::View<BakeryGateway::Document> * union_event_note_view = union_event_note_factory.createView(new_family_link->getFamilyNote()); |
| 112 |
subscribe_view(union_event_note_view); |
subscribe_view(union_event_note_view); |
| 113 |
BakeryExtras::View_Linked < BakeryGateway::Document, GEDCOMParser::Event > * tmp3 = dynamic_cast < BakeryExtras::View_Linked < BakeryGateway::Document, GEDCOMParser::Event > * > (union_event_note_view); |
BakeryExtras::View_Linked < BakeryGateway::Document, GEDCOMParser::Event > * tmp3 = dynamic_cast < BakeryExtras::View_Linked < BakeryGateway::Document, GEDCOMParser::Event > * > (union_event_note_view); |
| 114 |
tmp3->set_parent_entity(union_event); |
tmp3->set_parent_entity(union_event); |
| 120 |
return; |
return; |
| 121 |
} |
} |
| 122 |
|
|
| 123 |
void BakeryGateway::ViewSpouseToFamilyLink::Navigate(std::string const * key) |
OneFamilyLinkHandler::ReturnHandler_t BakeryGateway::ViewSpouseToFamilyLink::ButtonPressed(GdkEventButton * event, std::string const * key) |
| 124 |
{ |
{ |
| 125 |
BakeryExtras::View_Navigator<BakeryGateway::Document, std::string >::Navigate(*key); |
bool new_win = false; |
| 126 |
return; |
if (event->state & GDK_CONTROL_MASK) |
| 127 |
|
{ |
| 128 |
|
new_win = true; |
| 129 |
|
} |
| 130 |
|
Navigate(*key, new_win); |
| 131 |
|
return false; |
| 132 |
} |
} |
| 133 |
|
|
| 134 |
std::string BakeryGateway::ViewSpouseToFamilyLink::get_name_individual(GEDCOMParser::IndividualRecords_t const &individuals, std::string const &individual_id) const |
std::string BakeryGateway::ViewSpouseToFamilyLink::get_name_individual(GEDCOMParser::IndividualRecords_t const &individuals, std::string const &individual_id) const |