NGL@1.0.0-beta.7 Home Manual Reference Source Gallery

src/datasource/mdsrv-datasource.js

  1. /**
  2. * @file MDsrv Datasource
  3. * @author Alexander Rose <alexander.rose@weirdbyte.de>
  4. * @private
  5. */
  6.  
  7. import { getFileInfo } from '../utils.js'
  8. import { autoLoad } from '../loader/loader-utils.js'
  9. import Datasource from './datasource.js'
  10.  
  11. class MdsrvDatasource extends Datasource {
  12. constructor (baseUrl) {
  13. super()
  14. this.baseUrl = baseUrl || ''
  15. }
  16.  
  17. getListing (path) {
  18. path = path || ''
  19. let url = this.baseUrl + 'dir/' + path
  20. if (url[url.length - 1] !== '/') url += '/'
  21. return autoLoad(url, {
  22. ext: 'json'
  23. }).then(function (jsonData) {
  24. return {
  25. path: path,
  26. data: jsonData.data
  27. }
  28. })
  29. }
  30.  
  31. getUrl (src) {
  32. const info = getFileInfo(src)
  33. return this.baseUrl + 'file/' + info.path + info.query
  34. }
  35.  
  36. getCountUrl (src) {
  37. const info = getFileInfo(src)
  38. return this.baseUrl + 'traj/numframes/' + info.path + info.query
  39. }
  40.  
  41. getFrameUrl (src, frameIndex) {
  42. const info = getFileInfo(src)
  43. return this.baseUrl + 'traj/frame/' + frameIndex + '/' + info.path + info.query
  44. }
  45.  
  46. getFrameParams (src, atomIndices) {
  47. return 'atomIndices=' + atomIndices.join(';')
  48. }
  49.  
  50. getPathUrl (src, atomIndex) {
  51. const info = getFileInfo(src)
  52. return this.baseUrl + 'traj/path/' + atomIndex + '/' + info.path + info.query
  53. }
  54. }
  55.  
  56. export default MdsrvDatasource