from zope.schema.vocabulary import SimpleVocabulary
from zope.schema import getFields
from zope.annotation.interfaces import IAnnotations

from plone.directives import form

#from gomobile.mobile.behaviors import FieldPropertyDelegate
from mfabrik.behaviorutilities.volatilecontext import VolatileContext, AnnotationPersistentFactory

from gomobile.convergence.interfaces import ContentMediaOption
from gomobile.convergence import GMConvergenceMF as _

from zope.schema.vocabulary import SimpleVocabulary, SimpleTerm

items = (
    (_(u"User parent folder setting"), ContentMediaOption.USE_PARENT),
    (_(u"Both"), ContentMediaOption.BOTH),
    (_(u"Web"), ContentMediaOption.WEB),
    (_(u"Mobile"), ContentMediaOption.MOBILE)
    )

terms = [ SimpleTerm(value=pair[1], token=pair[1], title=pair[0]) for pair in items ]

contentMediasVocabury = SimpleVocabulary(terms)

class IMultiChannelBehavior(form.Schema):
    """ How content and its children react to differt medias """

    form.fieldset(
        'multichannel',
        label=('Multichanne'),
__author__ = "Mikko Ohtamaa <*****@*****.**>"

import Missing

import zope.interface
from zope.component import getUtility

from Products import AdvancedQuery

from gomobile.mobile.interfaces import IMobileUtility, IMobileRequestDiscriminator, MobileRequestType
from gomobile.convergence.interfaces import IConvergenceSupport, ContentMediaOption, IConvergenceMediaFilter

from gomobile.convergence.behaviors import IMultiChannelBehavior
from gomobile.convergence import PloneMessageFactory as _

media_options_vocabulary = ((ContentMediaOption.USE_PARENT, _(u"Use parent folder settings")),
                                        (ContentMediaOption.WEB, _(u"Web only")),
                                        (ContentMediaOption.MOBILE, _(u"Mobile only")),
                                        (ContentMediaOption.BOTH, _(u"Web and mobile")))


class ConvergedMediaFilter(object):
    """ Helper class to deal with media state of content objects. 
    
    To use this class::
    
        from gomobile.convergence.interfaces import IConvergenceMediaFilter
        self.filter = getUtility(IConvergenceMediaFilter)
        
        
    .. note ::