Ejemplo n.º 1
0
/**
 * 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;
}
Ejemplo n.º 2
0
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;
		}
	}
}