TreeCanvasViewModel.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using System.ComponentModel.Composition;
  2. using Microsoft.Practices.Prism.ViewModel;
  3. using NLog;
  4. using System.Windows.Input;
  5. using Microsoft.Practices.Prism.Commands;
  6. using System.Collections.ObjectModel;
  7. using System.Windows;
  8. using Google.ProtocolBuffers;
  9. namespace TreeCanvas
  10. {
  11. [Export(typeof(TreeCanvasViewModel))]
  12. [PartCreationPolicy(CreationPolicy.NonShared)]
  13. class TreeCanvasViewModel : NotificationObject
  14. {
  15. private Logger logger = LogManager.GetCurrentClassLogger();
  16. private ObservableCollection<Node> nodes = new ObservableCollection<Node>();
  17. private ObservableCollection<Arrow> arrows = new ObservableCollection<Arrow>();
  18. public TreeCanvasViewModel()
  19. {
  20. logger.Debug("TreeCanvasViewModel");
  21. }
  22. public ObservableCollection<Node> Nodes
  23. {
  24. get
  25. {
  26. return nodes;
  27. }
  28. }
  29. public ObservableCollection<Arrow> Arrows
  30. {
  31. get
  32. {
  33. return arrows;
  34. }
  35. }
  36. public void NewNode(Point point)
  37. {
  38. Nodes.Add(new Node(point));
  39. Person.Builder personBuilder = Person.CreateBuilder();
  40. personBuilder.SetNum(1);
  41. Person person = personBuilder.Build();
  42. string s = TextFormat.PrintToString(person);
  43. logger.Debug(s);
  44. TextFormat.Merge("num: 2", personBuilder);
  45. Person person2 = personBuilder.Build();
  46. }
  47. }
  48. }