void NativeImageButtonObject::setupEvents(TiEventContainerFactory* containerFactory)
{
    NativeControlObject::setupEvents(containerFactory);
    TiEventContainer* eventClick = containerFactory->createEventContainer();
    eventClick->setDataProperty("type", tetCLICK);
    events_.insert(tetCLICK, EventPairSmartPtr(eventClick, new ImageButtonEventHandler(eventClick)));
    QObject::connect(button_, SIGNAL(clicked()), events_[tetCLICK]->handler(), SLOT(clicked(void)));
}
void NativeDateTimePickerObject::setupEvents(TiEventContainerFactory* containerFactory)
{
    NativeControlObject::setupEvents(containerFactory);
    TiEventContainer* eventChange = containerFactory->createEventContainer();
    eventChange->setDataProperty("type", tetCHANGE);
    events_.insert(tetCHANGE, EventPairSmartPtr(eventChange, new DateTimePickerEventHandler(eventChange)));
    QObject::connect(dateTimePicker_, SIGNAL(valueChanged(QDateTime)), events_[tetCHANGE]->handler(), SLOT(setValue(QDateTime)));
}
void NativeImageViewObject::setupEvents(TiEventContainerFactory* containerFactory)
{
    NativeControlObject::setupEvents(containerFactory);
    TiEventContainer* eventImageChanged = containerFactory->createEventContainer();
    eventImageChanged->setDataProperty("type", tetCHANGE);
    events_.insert(tetCHANGE, EventPairSmartPtr(eventImageChanged, new ImageViewEventHandler(eventImageChanged)));
    QObject::connect(imageView_, SIGNAL(imageChanged(const bb::cascades::Image)), events_[tetCHANGE]->handler(), SLOT(imageChanged(const bb::cascades::Image)));
}
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();
}
void NativeOptionDialogObject::setupEvents(TiEventContainerFactory* containerFactory)
{
	NativeProxyObject::setupEvents(containerFactory);
    TiEventContainer* eventClick = containerFactory->createEventContainer();
    eventClick->setDataProperty("type", tetCLICK);
    events_.insert(tetCLICK, EventPairSmartPtr(eventClick, new NativeOptionDialogEventHandler(eventClick)));
    QObject::connect(dialog_, SIGNAL(finished(bb::system::SystemUiResult::Type)), events_[tetCLICK]->handler(), SLOT(clicked(bb::system::SystemUiResult::Type)));

}
void NativeVideoPlayerObject::setupEvents(TiEventContainerFactory* containerFactory)
{
	NativeControlObject::setupEvents(containerFactory);

	TiEventContainer* change = containerFactory->createEventContainer();
	change->setDataProperty("type", tetCHANGE);
	events_.insert(tetCHANGE, EventPairSmartPtr(change, new VideoPlayerObjectEventHandler(change, this)));

	TiEventContainer* completed = containerFactory->createEventContainer();
	change->setDataProperty("type", tetCOMPLETED);
	events_.insert(tetCOMPLETED, EventPairSmartPtr(completed,  new VideoPlayerObjectEventHandler(completed, this)));

	QObject::connect(player_, SIGNAL(bufferStatusChanged(bb::multimedia::BufferStatus::Type)),
							events_[tetCHANGE]->handler(), SLOT(changed(bb::multimedia::BufferStatus::Type)));
	QObject::connect(player_, SIGNAL(playbackCompleted()), events_[tetCOMPLETED]->handler(),
							SLOT(completed()));
	QObject::connect(player_, SIGNAL(repeatModeChanged(bb::multimedia::RepeatMode::Type)),
							events_[tetCHANGE]->handler(), SLOT(repeatModeChanged(bb::multimedia::RepeatMode::Type)));
	QObject::connect(foreignWindow_, SIGNAL(windowAttached(screen_window_t, QString, QString)),
							events_[tetCHANGE]->handler(),
							SLOT(windowAttached(screen_window_t, QString, QString)));
}