void METKGlobalMessages::handleObjMgrNotification()
{
   omEventContainer myEventList = getEventContainer();
   
   //Durchiterieren der EventList
   omEventContainer::const_iterator iter;		
   for ( iter = myEventList.begin();iter!=myEventList.end(); iter++)
   {
      ObjMgrEvent myEvent = (*iter);
      
      //Status has changed
      if (myEvent.infoID == INF_CASELOADED) {	
         // retrieve data from Object Communcation / Layer Global
         const omObjectContainer* oc = getObjContainer();
         if (oc) {
            const omObject &obj = (*oc)[OBJ_COMMUNICATION];
            if (obj.isValid()) {
               const omMessage& message = obj[LAY_GLOBALEVENTS][INF_CASELOADED];
               
               if (message == MSG_LOADED) {
                  loadedFld->notify();
                  lastMessageFld->setStringValue(MSG_LOADED);
               }
               else if (message == MSG_CLEANUP) {
                  cleanupFld->notify();
                  lastMessageFld->setStringValue(MSG_CLEANUP);
               }
            }
         }
      }
   }
   clearEventContainer();
}
  partContainer
  HgammaHandler<partType, partContainer, auxContainer>::getShallowContainer(bool &calibStatus, bool makeShallowCopy)
  {
    calibStatus = true;

    TString rawName = m_containerName + m_sysName;
    TString aodName = m_MxAODname + m_containerName + m_sysName;
    TString name = "";

    // 1. Check for MxAOD collection (assumed calibrated) in TStore, stored by a previous
    // call to this Handler instance
    name = "Shallow" + aodName;
    if (m_isMxAOD && m_store->contains<partContainer>(name.Data())) {
      return getStoreContainer(name.Data());
    }

    // 2. Check for MxAOD collection (assumed calibrated) in TEvent (not yet accessed)
    // and make a shallow copy for TStore if it exists
    name = aodName;
    if (m_isMxAOD && m_event->contains<partContainer>(name.Data())) {
      return getEventContainer(name.Data());
    }

    // 3. Check for already calibrated "raw" collection in TStore, from a previous
    // call to this Handler instance
    name = "Shallow" + rawName;
    if (m_store->contains<partContainer>(name.Data())) {
      partContainer preContainer = getStoreContainer(name.Data());
      correctContainerPV(preContainer);
#ifndef __HGamMET__
      preContainer.sort(comparePt);
#endif
      return preContainer;
    }

    calibStatus = false;

    // 4. If all else fails, get the uncalibrated collection from TEvent and make a shallow
    // copy for TStore (calibStatus flag is now false)
    rawName.ReplaceAll(m_sysName, "");
    return getEventContainer(rawName.Data(), m_sysName.Data(), makeShallowCopy);
  }
void ObjMgrCommunicator::handleObjMgrNotification()
{
  omEventContainer myEventList = getEventContainer();

  //Durchiterieren der EventList
  omEventContainer::const_iterator iter;
  for ( iter = myEventList.begin();iter!=myEventList.end(); iter++)
  {
    ObjMgrEvent myEvent = (*iter);

    //if (myEvent.objectID==fldAnimationViewerName->getStringValue() && myEvent.layerID==LAY_VIEWER_PROPERTIES && myEvent.infoID==INF_VIEWER_PROPERTIES_VIEWERSTATUS)
  }
  clearEventContainer();
}
void NativeOptionDialogEventHandler::clicked(bb::system::SystemUiResult::Type)
{
	bb::system::SystemListDialog* dialog = static_cast<bb::system::SystemListDialog*>(sender());
	bb::system::SystemUiButton* selectedButton = dialog->buttonSelection();
	if (selectedButton == NULL)
	{
		return;
	}
	int index = -1;
	if(dialog->selectedIndices().length() > 0)
	{
		index = dialog->selectedIndices().at(0);
	}
	TiEventContainer* container = getEventContainer();
	container->setDataProperty("index", index);
	container->setDataProperty("cancel", selectedButton == dialog->cancelButton());
	container->fireEvent();
}
//React on events from METKManager
void METKAutoFading::handleObjMgrNotification()
{	
	omEventContainer myEventList = getEventContainer();

	//Durchiterieren der EventList
	omEventContainer::const_iterator iter;		
	for ( iter = myEventList.begin();iter!=myEventList.end(); iter++)
	{
		ObjMgrEvent myEvent = (*iter);

		if (myEvent.layerID == LAY_VIEWER_CAMERA && myEvent.infoID == INF_VIEWER_CAMERA_POSITION && _EnableFading->getBoolValue() && _UseMETKValues->getBoolValue() )
		{	
			_calc->notify();
		}

		else if (myEvent.layerID == LAY_APPEARANCE)
		{
			if (myEvent.infoID == INF_VISIBLE)
			{
				if (myEvent.newValue.getStringValue() == "TRUE")
				{					
					//std::cout << "ENABLE" << myEvent.objectID << std::endl;
					m_calcVis.setStatus(myEvent.objectID,true);
				}
				else
				{
					//std::cout << "DISABLE" << myEvent.objectID << std::endl;
					m_calcVis.setStatus(myEvent.objectID,false);
				}
			}		
		}
		
		else if (myEvent.objectID == OBJ_COMMUNICATION && myEvent.layerID == LAY_GLOBALEVENTS && string(myEvent.newValue) == MSG_LOADED)
		{
			std::cout << "METKAutoFading   loaded event ... call _init" << std::endl;
			_init->notify();
		}
	}
	clearEventContainer();
}
void METKSurfaceDistance3D::handleObjMgrNotification() {
    ML_TRACE_IN("METKSurfaceDistance3D::handleObjMgrNotification()");
    omEventContainer myEventList = getEventContainer();

    //Durchiterieren der EventList
    omEventContainer::const_iterator iter;
    for ( iter = myEventList.begin(); iter!=myEventList.end(); iter++)
    {
        ObjMgrEvent myEvent = (*iter);

        //Status has changed
        if (myEvent.infoID == INF_SURFACEDIST || myEvent.infoID == INF_VISIBLE || myEvent.infoID == INF_IVPOINTER) {
            const omObjectContainer* oc = getObjContainer();
            if (oc) {
                const omObject &obj = (*oc)[myEvent.objectID];
                if (obj.isValid()) {
                    const bool visible = obj[LAY_APPEARANCE][INF_VISIBLE];
                    bool sdValid = obj.hasAttribute(LAY_APPEARANCE, INF_SURFACEDIST);
                    bool pValid = obj.hasAttribute(LAY_FILES, INF_IVPOINTER);

                    if (pValid && sdValid) {
                        const bool surfDist = obj[LAY_APPEARANCE][INF_SURFACEDIST];
                        const int pointer = obj[LAY_FILES][INF_IVPOINTER].get_MLint32();
                        if (pointer) {
                            if (visible && surfDist) {
                                addStructure((SoNode*) pointer);
                            } else {
                                removeStructure((SoNode*) pointer);
                            }
                        }
                    }
                }
            }
        }
        else if (myEvent.infoID == INF_CASELOADED) {
            const omObjectContainer* oc = getObjContainer();
            if (oc) {
                const omObject &obj = (*oc)[myEvent.objectID];
                if (obj.isValid()) {
                    const std::string status = obj[LAY_GLOBALEVENTS][INF_CASELOADED];
                    if (status == MSG_LOADED) {
                        // scan all objects for already visible surface distances
                        for (omObjectContainer::const_iterator iter = oc->begin(); iter != oc->end(); iter++) {
                            if (iter->second.isValid() && iter->second.exists(LAY_APPEARANCE)) {
                                const bool visible = iter->second[LAY_APPEARANCE][INF_VISIBLE];

                                bool pValid = iter->second.hasAttribute(LAY_FILES, INF_IVPOINTER);
                                bool sdValid = iter->second.hasAttribute(LAY_APPEARANCE, INF_SURFACEDIST);
                                if (pValid && sdValid) {
                                    const bool surfDist = iter->second[LAY_APPEARANCE][INF_SURFACEDIST];
                                    const int pointer   = iter->second[LAY_FILES][INF_IVPOINTER].get_MLint32();
                                    if (visible && surfDist && pointer) {
                                        addStructure((SoNode*) iter->second[LAY_FILES][INF_IVPOINTER].get_MLint32());
                                    }
                                }
                            }
                        }
                    }
                    else if (status == MSG_CLEANUP) {
                        T_ColorShapeIterator iter;
                        if (_inImageBox) {
                            delete _inImageBox;
                            _inImageBox = 0;
                        }
                        for (iter = _colorShapeVec.begin(); iter != _colorShapeVec.end(); iter++) {
                            (*iter)->unref();
                            if (_outGroup->findChild(*iter) != -1) {
                                _outGroup->removeChild(*iter);
                            }
                            _colorShapeVec.erase(iter);
                            iter--;
                        }
                        if (_memSlice) {
                            MLFree(_memSlice);
                            _memSlice = 0;
                        }
                    }
                }
            }
        }
    }
    clearEventContainer();
}
 partContainer
 HgammaHandler<partType, partContainer, auxContainer>::getContainer(std::string name)
 {
   return getEventContainer(name, "", true);
 }