data.ts 1.2 KB

123456789101112131415161718192021222324252627282930
  1. /**
  2. * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
  3. *
  4. * @author David Sehnal <david.sehnal@gmail.com>
  5. */
  6. import { PluginBehavior } from './behavior';
  7. import { PluginCommands } from 'mol-plugin/command';
  8. import { StateTree } from 'mol-state';
  9. export const SetCurrentObject = PluginBehavior.create({
  10. name: 'set-current-data-object-behavior',
  11. ctor: PluginBehavior.simpleCommandHandler(PluginCommands.Data.SetCurrentObject, ({ ref }, ctx) => ctx.state.data.setCurrent(ref)),
  12. display: { name: 'Set Current Handler' }
  13. });
  14. export const Update = PluginBehavior.create({
  15. name: 'update-data-behavior',
  16. ctor: PluginBehavior.simpleCommandHandler(PluginCommands.Data.Update, ({ tree }, ctx) => ctx.state.updateData(tree)),
  17. display: { name: 'Update Data Handler' }
  18. });
  19. export const RemoveObject = PluginBehavior.create({
  20. name: 'remove-object-data-behavior',
  21. ctor: PluginBehavior.simpleCommandHandler(PluginCommands.Data.RemoveObject, ({ ref }, ctx) => {
  22. const tree = StateTree.build(ctx.state.data.tree).delete(ref).getTree();
  23. ctx.state.updateData(tree);
  24. }),
  25. display: { name: 'Remove Object Handler' }
  26. });