void TestFloatTable::Receive ( JBroadcaster* sender, const Message& message ) { if (sender == itsTableMenu && message.Is(JXMenu::kNeedsUpdate)) { UpdateTableMenu(); } else if (sender == itsTableMenu && message.Is(JXMenu::kItemSelected)) { const JXMenu::ItemSelected* selection = dynamic_cast<const JXMenu::ItemSelected*>(&message); assert( selection != NULL ); HandleTableMenu(selection->GetIndex()); } else if (sender == itsSizeMenu && message.Is(JXFontSizeMenu::kSizeChanged)) { SetFont(JGetDefaultFontName(), itsSizeMenu->GetFontSize()); } else { JXFloatTable::Receive(sender, message); } }
void TestStringTable::Receive ( JBroadcaster* sender, const Message& message ) { if (sender == itsTableMenu && message.Is(JXMenu::kNeedsUpdate)) { UpdateTableMenu(); } else if (sender == itsTableMenu && message.Is(JXMenu::kItemSelected)) { const JXMenu::ItemSelected* selection = dynamic_cast(const JXMenu::ItemSelected*, &message); assert( selection != NULL ); HandleTableMenu(selection->GetIndex()); } else if (sender == itsRowBorderMenu && message.Is(JXMenu::kNeedsUpdate))
void SelectionTable::Receive ( JBroadcaster* sender, const Message& message ) { // Here we check to see what messages we have received. // We first check if the sender is our data array if (sender == itsData) { // Our data array sent us a message // Was data inserted? if (message.Is(JOrderedSetT::kElementsInserted)) { // cast the message to an ElementsInserted object const JOrderedSetT::ElementsInserted* info = dynamic_cast<const JOrderedSetT::ElementsInserted*>(&message); assert(info != NULL); // For each element inserted, we insert a row InsertRows(info->GetFirstIndex(), info->GetCount(), kDefRowHeight); } // Was data removed? else if (message.Is(JOrderedSetT::kElementsRemoved)) { // cast the message to an ElementsRemoved object const JOrderedSetT::ElementsRemoved* info = dynamic_cast<const JOrderedSetT::ElementsRemoved*>(&message); assert(info != NULL); // Remove corresponding table rows. for (JSize i = info->GetLastIndex(); i >= info->GetFirstIndex() ; i--) { RemoveNextRows(info->GetFirstIndex(), info->GetCount()); } } // Was an element changed? else if (message.Is(JOrderedSetT::kElementChanged)) { // cast the message to an ElementsRemoved object const JOrderedSetT::ElementChanged* info = dynamic_cast<const JOrderedSetT::ElementChanged*>(&message); assert(info != NULL); // The element changed, so redraw it. // (This would not be necessary if we were using a // class derived from JTableData.) TableRefreshRow(info->GetFirstIndex()); } } // Did the Table menu send a message? else if (sender == itsTableMenu) { // Does the menu need an update? if (message.Is(JXMenu::kNeedsUpdate)) { UpdateTableMenu(); } // Has a menu item been selected? else if (message.Is(JXMenu::kItemSelected)) { // cast the message to an ItemSelecte object. // This will tell us which item was selected. const JXMenu::ItemSelected* info = dynamic_cast<const JXMenu::ItemSelected*>(&message); assert(info != NULL); // Pass the selected menu item to our menu handler function. HandleTableMenu(info->GetIndex()); } } // pass the message to our base class else { JXTable::Receive(sender, message); } }