用于测试目的的 save_load_adapter 的内存示例。

    1. save_load_adapter: {
    2. charts: [],
    3. studyTemplates: [],
    4. drawingTemplates: [],
    5. getAllCharts: function() {
    6. return Promise.resolve(this.charts);
    7. },
    8. removeChart: function(id) {
    9. for (var i = 0; i < this.charts.length; ++i) {
    10. if (this.charts[i].id === id) {
    11. this.charts.splice(i, 1);
    12. return Promise.resolve();
    13. }
    14. }
    15. return Promise.reject();
    16. },
    17. saveChart: function(chartData) {
    18. if (!chartData.id) {
    19. chartData.id = Math.random().toString();
    20. } else {
    21. this.removeChart(chartData.id);
    22. }
    23. chartData.timestamp = new Date().valueOf();
    24. this.charts.push(chartData);
    25. return Promise.resolve(chartData.id);
    26. },
    27. getChartContent: function(id) {
    28. for (var i = 0; i < this.charts.length; ++i) {
    29. if (this.charts[i].id === id) {
    30. return Promise.resolve(this.charts[i].content);
    31. }
    32. }
    33. console.error('error');
    34. return Promise.reject();
    35. },
    36. removeStudyTemplate: function(studyTemplateData) {
    37. for (var i = 0; i < this.studyTemplates.length; ++i) {
    38. if (this.studyTemplates[i].name === studyTemplateData.name) {
    39. this.studyTemplates.splice(i, 1);
    40. return Promise.resolve();
    41. }
    42. }
    43. return Promise.reject();
    44. },
    45. getStudyTemplateContent: function(studyTemplateData) {
    46. for (var i = 0; i < this.studyTemplates.length; ++i) {
    47. if (this.studyTemplates[i].name === studyTemplateData.name) {
    48. return Promise.resolve(this.studyTemplates[i]);
    49. }
    50. }
    51. console.error('st: error');
    52. return Promise.reject();
    53. },
    54. saveStudyTemplate: function(studyTemplateData) {
    55. for (var i = 0; i < this.studyTemplates.length; ++i) {
    56. if (this.studyTemplates[i].name === studyTemplateData.name) {
    57. this.studyTemplates.splice(i, 1);
    58. break;
    59. }
    60. }
    61. this.studyTemplates.push(studyTemplateData);
    62. return Promise.resolve();
    63. },
    64. getAllStudyTemplates: function() {
    65. return Promise.resolve(this.studyTemplates);
    66. },
    67. removeDrawingTemplate: function (toolName, templateName) {
    68. for (var i = 0; i < this.drawingTemplates.length; ++i) {
    69. if (this.drawingTemplates[i].name === templateName) {
    70. this.drawingTemplates.splice(i, 1);
    71. return Promise.resolve();
    72. }
    73. }
    74. return Promise.reject();
    75. },
    76. loadDrawingTemplate: function (toolName, templateName) {
    77. for (var i = 0; i < this.drawingTemplates.length; ++i) {
    78. if (this.drawingTemplates[i].name === templateName) {
    79. return Promise.resolve(this.drawingTemplates[i].content);
    80. }
    81. }
    82. console.error('drawing: error');
    83. return Promise.reject();
    84. },
    85. saveDrawingTemplate: function (toolName, templateName, content) {
    86. for (var i = 0; i < this.drawingTemplates.length; ++i) {
    87. if (this.drawingTemplates[i].name === templateName) {
    88. this.drawingTemplates.splice(i, 1);
    89. break;
    90. }
    91. }
    92. this.drawingTemplates.push({ name: templateName, content: content });
    93. return Promise.resolve();
    94. },
    95. getDrawingTemplates: function () {
    96. return Promise.resolve(this.drawingTemplates.map(function(template) {
    97. return template.name;
    98. }));
    99. },
    100. }