/** * Try to add a unit to this component * If the references match, it will be added */ bool BOM_TABLE_COMPONENT::AddUnit( const SCH_REFERENCE& aUnit ) { // Addition is successful if the references match or there are currently no units in the group if( Units.size() == 0 || Units[0].GetRef().Cmp( aUnit.GetRef() ) == 0 ) { Units.push_back( aUnit ); wxString value; // Extract the component data for( auto column : m_columnList->Columns ) { auto cmp = aUnit.GetComp(); switch( column->Id() ) { case BOM_COL_ID_QUANTITY: value = wxEmptyString; break; case BOM_COL_ID_DESCRIPTION: value = cmp->GetAliasDescription(); break; case BOM_COL_ID_DATASHEET: value = cmp->GetField( DATASHEET )->GetText(); if( value.IsEmpty() ) { value = cmp->GetAliasDocumentation(); } break; case BOM_COL_ID_REFERENCE: value = aUnit.GetRef(); break; case BOM_COL_ID_VALUE: value = cmp->GetField( VALUE )->GetText(); break; case BOM_COL_ID_FOOTPRINT: value = cmp->GetField( FOOTPRINT )->GetText(); break; // User fields default: value = cmp->GetFieldText( column->Title(), false ); break; } m_fieldValues->SetFieldValue( column->Id(), value ); } return true; } return false; }
void CSmartFieldListBoxItem::PaintItem(int nField, COwnerDrawListBox* pList, CDC* pDC, LPDRAWITEMSTRUCT pDrawItemStruct, const CRect& crBounds, COLORREF clForeground, COLORREF clBackground) { switch (nField) { case PROPERTY_NameField: { INHERITED::PaintItem(nField, pList, pDC, pDrawItemStruct, crBounds, clForeground, clBackground); break; } case PROPERTY_ValueField: { CString csField; PaintString(GetFieldText(nField, csField), pList, pDC, pDrawItemStruct, crBounds, clForeground, clBackground); if (IsMacroValid()) { CStdMacroServer* pMacroServer = MacroServer(); if (pMacroServer != NULL) { if (m_pMacro != NULL) { if (m_pMacro->MacroValueType() == CMacro::VALUE_TYPE_Field) { if ((m_pMacro->MacroType() == CMacro::MACRO_TYPE_Receiver) && (pMacroServer->ReceiverIsBound())) { PaintIndicator("R", pList, pDC, pDrawItemStruct, crBounds, GetSysColor(COLOR_WINDOWTEXT), GetSysColor(COLOR_WINDOW)); } if ((m_pMacro->MacroType() == CMacro::MACRO_TYPE_Sender) && (pMacroServer->SenderIsBound())) { PaintIndicator("S", pList, pDC, pDrawItemStruct, crBounds, GetSysColor(COLOR_WINDOWTEXT), GetSysColor(COLOR_WINDOW)); } } } } } break; } } }