CoordinateSystem.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /*
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing,
  13. * software distributed under the License is distributed on an
  14. * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  15. * KIND, either express or implied. See the License for the
  16. * specific language governing permissions and limitations
  17. * under the License.
  18. */
  19. import * as zrUtil from 'zrender/src/core/util';
  20. var coordinateSystemCreators = {};
  21. function CoordinateSystemManager() {
  22. this._coordinateSystems = [];
  23. }
  24. CoordinateSystemManager.prototype = {
  25. constructor: CoordinateSystemManager,
  26. create: function (ecModel, api) {
  27. var coordinateSystems = [];
  28. zrUtil.each(coordinateSystemCreators, function (creater, type) {
  29. var list = creater.create(ecModel, api);
  30. coordinateSystems = coordinateSystems.concat(list || []);
  31. });
  32. this._coordinateSystems = coordinateSystems;
  33. },
  34. update: function (ecModel, api) {
  35. zrUtil.each(this._coordinateSystems, function (coordSys) {
  36. coordSys.update && coordSys.update(ecModel, api);
  37. });
  38. },
  39. getCoordinateSystems: function () {
  40. return this._coordinateSystems.slice();
  41. }
  42. };
  43. CoordinateSystemManager.register = function (type, coordinateSystemCreator) {
  44. coordinateSystemCreators[type] = coordinateSystemCreator;
  45. };
  46. CoordinateSystemManager.get = function (type) {
  47. return coordinateSystemCreators[type];
  48. };
  49. export default CoordinateSystemManager;