Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / chrome / common / extensions / docs / server2 / samples_data_source.py
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import logging
6 import traceback
7
8 from data_source import DataSource
9 from extensions_paths import EXAMPLES
10 from future import All, Future
11 from jsc_view import CreateSamplesView
12 from platform_util import GetPlatforms
13
14
15 class SamplesDataSource(DataSource):
16   '''Constructs a list of samples and their respective files and api calls.
17   '''
18   def __init__(self, server_instance, request):
19     self._platform_bundle = server_instance.platform_bundle
20     self._request = request
21
22   def _GetImpl(self, platform):
23     cache = self._platform_bundle.GetSamplesModel(platform).GetCache()
24     create_view = lambda samp_list: CreateSamplesView(samp_list, self._request)
25     return cache.GetFromFileListing('' if platform == 'apps'
26                                        else EXAMPLES).Then(create_view)
27
28   def get(self, platform):
29     return self._GetImpl(platform).Get()
30
31   def GetRefreshPaths(self):
32     return [platform for platform in GetPlatforms()]
33
34   def Refresh(self, path):
35     return self._GetImpl(path)