void QmitkScalarBarOverlay::SetupCallback( mitk::BaseProperty::Pointer prop ) { if ( m_ObservedProperty != prop && m_ObserverTag == 0 ) { if ( prop.IsNotNull() ) { if ( m_ObservedProperty.IsNotNull() ) { m_ObservedProperty->RemoveObserver( m_ObserverTag ); } typedef itk::SimpleMemberCommand< QmitkScalarBarOverlay > MemberCommandType; MemberCommandType::Pointer propModifiedCommand; propModifiedCommand = MemberCommandType::New(); propModifiedCommand->SetCallbackFunction( this, &QmitkScalarBarOverlay::SetScaleFactor ); m_ObserverTag = prop->AddObserver( itk::ModifiedEvent(), propModifiedCommand ); } m_ObservedProperty = prop; } else { MITK_DEBUG << "invalid property"; } }
void QmitkTextOverlay::SetupCallback( mitk::BaseProperty::Pointer prop ) { if ( prop.IsNotNull() ) { typedef itk::SimpleMemberCommand< QmitkTextOverlay > MemberCommandType; MemberCommandType::Pointer propModifiedCommand; propModifiedCommand = MemberCommandType::New(); propModifiedCommand->SetCallbackFunction( this, &QmitkTextOverlay::SetText ); m_ObserverTag = prop->AddObserver( itk::ModifiedEvent(), propModifiedCommand ); } else { MITK_DEBUG << "invalid property"; } }
bool LabelSetImageIO::PropertyFromXmlElem(std::string& key, mitk::BaseProperty::Pointer& prop, TiXmlElement* elem) { std::string type; elem->QueryStringAttribute("type", &type); elem->QueryStringAttribute("key", &key); // construct name of serializer class std::string serializername(type); serializername += "Serializer"; std::list<itk::LightObject::Pointer> allSerializers = itk::ObjectFactoryBase::CreateAllInstance(serializername.c_str()); if (allSerializers.size() < 1) MITK_ERROR << "No serializer found for " << type << ". Skipping object"; if (allSerializers.size() > 1) MITK_WARN << "Multiple deserializers found for " << type << "Using arbitrarily the first one."; for ( std::list<itk::LightObject::Pointer>::iterator iter = allSerializers.begin(); iter != allSerializers.end(); ++iter ) { if (BasePropertySerializer* serializer = dynamic_cast<BasePropertySerializer*>( iter->GetPointer() ) ) { try { prop = serializer->Deserialize(elem->FirstChildElement()); } catch (std::exception& e) { MITK_ERROR << "Deserializer " << serializer->GetNameOfClass() << " failed: " << e.what(); return false; } break; } } if(prop.IsNull()) return false; return true; }