protected ModelObserverViewModelBase(
     [NotNull] IModelService modelService,
     [NotNull] IDiagramService diagramService)
 {
     ModelService   = modelService;
     DiagramService = diagramService;
 }
예제 #2
0
 public IDiagramNodeUi CreateDiagramNodeUi(
     IDiagramService diagramService,
     IDiagramNode diagramNode,
     IFocusTracker <IDiagramShapeUi> focusTracker)
 {
     return(new DiagramNodeViewModel(ModelService, diagramService, _relatedNodeTypeProvider, focusTracker, diagramNode));
 }
예제 #3
0
 public RoslynTypeDiagramNodeViewModel(IModelService modelService, IDiagramService diagramService, IFocusTracker <IDiagramShapeUi> focusTracker,
                                       RoslynTypeDiagramNode roslynTypeDiagramNode, bool isDescriptionVisible)
     : base(modelService, diagramService, focusTracker, roslynTypeDiagramNode)
 {
     IsDescriptionVisible = isDescriptionVisible;
     PopulateFromDiagramNode(roslynTypeDiagramNode);
 }
 public ModelTrackingDiagramPlugin(
     [NotNull] IModelService modelService,
     [NotNull] IDiagramService diagramService)
     : base(modelService, diagramService)
 {
     ModelService.ModelChanged += OnModelChanged;
 }
 public RoslynTypeDiagramNodeViewModel(IModelService modelService, IDiagramService diagramService,
                                       RoslynTypeDiagramNode roslynTypeDiagramNode, bool isDescriptionVisible)
     : base(modelService, diagramService, roslynTypeDiagramNode)
 {
     IsDescriptionVisible = isDescriptionVisible;
     PopulateFromDiagramNode(roslynTypeDiagramNode);
 }
예제 #6
0
 protected DiagramPluginBase(
     [NotNull] IModelService modelService,
     [NotNull] IDiagramService diagramService)
 {
     ModelService   = modelService;
     DiagramService = diagramService;
 }
        public MainWindowViewModel()
        {
            SelectedDpi = 300;

            var visualizationService = new VisualizationService(
                new TestModelServiceFactory(),
                new TestDiagramServiceFactory(),
                new TestUiServiceFactory(),
                new DiagramPluginFactory(new TestLayoutPriorityProvider(), new TestDiagramShapeFactory()),
                new[]
            {
                DiagramPluginId.AutoLayoutDiagramPlugin,
                DiagramPluginId.ConnectorHandlerDiagramPlugin,
                DiagramPluginId.ModelTrackingDiagramPlugin
            }
                );

            _testModelService = (ITestModelService)visualizationService.GetModelService();
            var diagramId = visualizationService.CreateDiagram(minZoom: 0.2, maxZoom: 5, initialZoom: 1);

            _diagramService = visualizationService.GetDiagramService(diagramId);
            _uiService      = (IWpfUiService)visualizationService.GetUiService(diagramId);

            _uiService.DiagramNodeInvoked      += i => Debug.WriteLine($"DiagramNodeInvoked: {i}");
            _uiService.ShowModelItemsRequested += OnShowModelItemsRequested;

            AddCommand             = new DelegateCommand(AddShapes);
            RemoveCommand          = new DelegateCommand(RemoveShapes);
            ZoomToContentCommand   = new DelegateCommand(ZoomToContent);
            CopyToClipboardCommand = new DelegateCommand(CopyToClipboardAsync);

            PopulateModel(_testModelService);
        }
        public MainWindowViewModel(
            [NotNull] Window mainWindow,
            [NotNull] IModelService modelService,
            [NotNull] IDiagramService diagramService,
            [NotNull] IWpfDiagramUiService wpfDiagramUiService)
        {
            SelectedDpi = 300;

            _window = mainWindow;

            _testModelService = new TestModelService(modelService);

            _diagramService = diagramService;

            _wpfDiagramUiService = wpfDiagramUiService;
            _wpfDiagramUiService.DiagramNodeInvoked      += i => Debug.WriteLine($"DiagramNodeInvoked: {i}");
            _wpfDiagramUiService.ShowModelItemsRequested += OnShowModelItemsRequested;

            AddCommand             = new DelegateCommand(AddShapes);
            RemoveCommand          = new DelegateCommand(RemoveShapes);
            ZoomToContentCommand   = new DelegateCommand(ZoomToContent);
            CopyToClipboardCommand = new DelegateCommand(CopyToClipboardAsync);

            PopulateModel(_testModelService);
        }
예제 #9
0
        public DiagramViewModel(
            IModelService modelService,
            IDiagramService diagramService,
            IDiagramShapeUiFactory diagramShapeUiFactory,
            double minZoom,
            double maxZoom,
            double initialZoom)
            : base(modelService, diagramService)
        {
            DiagramShapeUiFactory = diagramShapeUiFactory;

            DiagramViewportViewModel = new DiagramViewportViewModel(
                ModelService,
                DiagramService,
                diagramShapeUiFactory,
                minZoom,
                maxZoom,
                initialZoom);

            RelatedNodeListBoxViewModel = new RelatedNodeListBoxViewModel(ModelService, DiagramService);
            RelatedNodeListBoxViewModel.ItemSelected            += OnRelatedNodeSelected;
            RelatedNodeListBoxViewModel.Items.CollectionChanged += OnRelatedNodeCollectionChanged;

            PopupTextViewModel = new AutoHidePopupTextViewModel();

            PreviewMouseDownCommand = new DelegateCommand(OnAnyMouseDownEvent);
            MouseDownCommand        = new DelegateCommand(OnUnhandledMouseDownEvent);

            DiagramService.DiagramChanged += OnDiagramChanged;

            SubscribeToViewportEvents();

            _lastDiagram = DiagramService.LatestDiagram;
        }
        public DiagramViewportViewModel(
            IModelService modelService,
            IDiagramService diagramService,
            IDiagramShapeUiFactory diagramShapeUiFactory,
            double minZoom,
            double maxZoom,
            double initialZoom)
            : base(modelService, diagramService)
        {
            MinZoom = minZoom;
            MaxZoom = maxZoom;

            _diagramNodeToViewModelMap      = new Map <ModelNodeId, DiagramNodeViewModel>();
            _diagramConnectorToViewModelMap = new Map <ModelRelationshipId, DiagramConnectorViewModel>();

            _diagramShapeUiFactory = diagramShapeUiFactory;
            _diagramShapeUiFactory.Initialize(modelService, this);

            ViewportCalculator         = new AutoMoveViewportViewModel(modelService, diagramService, minZoom, maxZoom, initialZoom);
            DiagramNodeViewModels      = new ThreadSafeObservableCollection <DiagramNodeViewModel>();
            DiagramConnectorViewModels = new ThreadSafeObservableCollection <DiagramConnectorViewModel>();
            MiniButtonPanelViewModel   = new MiniButtonPanelViewModel();

            DiagramNodeDoubleClickedCommand = new DelegateCommand <IDiagramNode>(i => DiagramNodeInvoked?.Invoke(i));

            ViewportCalculator.TransformChanged += OnViewportTransformChanged;
            DiagramService.DiagramChanged       += OnDiagramChanged;

            AddDiagram(diagramService.LatestDiagram);
        }
 public ConnectorHandlerDiagramPlugin(
     [NotNull] IModelService modelService,
     [NotNull] IDiagramService diagramService)
     : base(modelService, diagramService)
 {
     DiagramService.AfterDiagramChanged += OnDiagramChanged;
 }
        private ViewportCalculatorViewModel(
            IModelService modelService,
            IDiagramService diagramService,
            double minZoom,
            double maxZoom,
            double initialZoom,
            Size sizeInScreenSpace,
            Point centerInDiagramSpace)
            : base(modelService, diagramService)
        {
            _minZoom = minZoom;
            _maxZoom = maxZoom;
            _defaultExponentialZoom = initialZoom;
            _exponentialZoom        = initialZoom;
            _sizeInScreenSpace      = sizeInScreenSpace;
            _centerInDiagramSpace   = centerInDiagramSpace;
            _diagramContentRect     = diagramService.LatestDiagram.Rect.ToWpf();

            ResizeCommand        = new ResizeDelegateCommand(Resize);
            PanCommand           = new PanDelegateCommand(Pan);
            ZoomToContentCommand = new ZoomToContentDelegateCommand(ZoomToContent);
            ZoomCommand          = new ZoomDelegateCommand(ZoomWithCenterTo);

            UpdateCalculatedProperties(TransitionSpeed.Instant);

            DiagramService.DiagramChanged += OnDiagramChanged;
        }
예제 #13
0
 public virtual IDiagramNodeUi CreateDiagramNodeUi(
     [NotNull] IDiagramService diagramService,
     [NotNull] IDiagramNode diagramNode,
     [NotNull] IFocusTracker <IDiagramShapeUi> focusTracker)
 {
     return(new DiagramNodeViewModel(ModelService, diagramService, RelatedNodeTypeProvider, focusTracker, diagramNode));
 }
예제 #14
0
 public ConnectorHandlerDiagramPlugin(
     [NotNull] IDiagramService diagramService,
     [NotNull] IModelRelationshipFeatureProvider modelRelationshipFeatureProvider)
     : base(diagramService)
 {
     _modelRelationshipFeatureProvider   = modelRelationshipFeatureProvider;
     DiagramService.AfterDiagramChanged += OnDiagramChanged;
 }
예제 #15
0
 public PropertyDiagramNodeViewModel(
     IModelService modelService,
     IDiagramService diagramService,
     IFocusTracker <IDiagramShapeUi> focusTracker,
     PropertyDiagramNode diagramNode)
     : base(modelService, diagramService, focusTracker, diagramNode)
 {
 }
예제 #16
0
        public IUiService Create(IModelService modelService, IDiagramService diagramService,
                                 double minZoom, double maxZoom, double initialZoom)
        {
            var diagramViewModel = new RoslynDiagramViewModel(modelService, diagramService,
                                                              _initialIsDescriptionVisible, minZoom, maxZoom, initialZoom);

            return(new ApplicationUiService(_hostUiServices, diagramViewModel));
        }
예제 #17
0
 public ApiController(IDBContext dbContext, IDiagramService diagramService, IActionService actionService, IMainNotifier mainNotifier, ILogger <ApiController> logger)
 {
     _dbContext      = dbContext;
     _diagramService = diagramService;
     _actionService  = actionService;
     _mainNotifier   = mainNotifier;
     _logger         = logger;
 }
        public RelatedNodeListBoxViewModel(IModelService modelService, IDiagramService diagramService)
        {
            _modelService = modelService;
            _modelService.ModelChanged += OnModelChanged;

            _diagramService = diagramService;
            _diagramService.DiagramChanged += OnDiagramChanged;
        }
 protected MiniButtonViewModelBase(IModelService modelService, IDiagramService diagramService, string name)
     : base(modelService, diagramService)
 {
     _isEnabled         = true;
     _name              = name;
     ClickCommand       = new DelegateCommand(OnClick);
     DoubleClickCommand = new DelegateCommand(OnDoubleClick);
 }
예제 #20
0
 protected DiagramShapeViewModelBase(
     IModelService modelService,
     IDiagramService diagramService,
     IDiagramShape diagramShape)
     : base(modelService, diagramService)
 {
     DiagramShape = diagramShape;
 }
예제 #21
0
        public AutoMoveViewportViewModel(IModelService modelService, IDiagramService diagramService,
                                         double minZoom, double maxZoom, double initialZoom, ViewportAutoMoveMode mode = ViewportAutoMoveMode.Contain)
            : base(modelService, diagramService, minZoom, maxZoom, initialZoom)
        {
            Mode = mode;

            DiagramService.DiagramChanged += OnDiagramChanged;
        }
예제 #22
0
        public ServiceDecompositionController(ICustomerService customerService,
                                              ICustomerPackService customerPackService,
                                              IDiagramService diagramService,
                                              IContributorService contributorService,
                                              ApplicationUserManager userManager,
                                              ApplicationRoleManager roleManager,
                                              IContextManager contextManager,
                                              IAppUserContext appUserContext) : base(contextManager)
        {
            if (customerService == null)
            {
                throw new ArgumentNullException(nameof(customerService));
            }

            if (contextManager == null)
            {
                throw new ArgumentNullException(nameof(contextManager));
            }

            if (appUserContext == null)
            {
                throw new ArgumentNullException(nameof(appUserContext));
            }

            if (customerPackService == null)
            {
                throw new ArgumentNullException(nameof(customerPackService));
            }

            if (diagramService == null)
            {
                throw new ArgumentNullException(nameof(diagramService));
            }

            if (contributorService == null)
            {
                throw new ArgumentNullException(nameof(contributorService));
            }

            if (userManager == null)
            {
                throw new ArgumentNullException(nameof(userManager));
            }

            if (roleManager == null)
            {
                throw new ArgumentNullException(nameof(roleManager));
            }

            _customerService     = customerService;
            _customerPackService = customerPackService;
            _diagramService      = diagramService;
            _contributorService  = contributorService;
            _userManager         = userManager;
            _roleManager         = roleManager;
            _contextManager      = contextManager;
            _appUserContext      = appUserContext;
        }
예제 #23
0
        public override IDiagramNodeUi CreateDiagramNodeUi(IDiagramService diagramService, IDiagramNode diagramNode)
        {
            if (diagramNode is RoslynTypeDiagramNode roslynTypeDiagramNode)
            {
                return(new RoslynTypeDiagramNodeViewModel(ModelService, diagramService, roslynTypeDiagramNode, IsDescriptionVisible));
            }

            throw new InvalidOperationException($"Unexpected diagram node type {diagramNode?.GetType().Name}");
        }
 public ViewportCalculatorViewModel(
     IModelService modelService,
     IDiagramService diagramService,
     double minZoom,
     double maxZoom,
     double initialZoom)
     : this(modelService, diagramService, minZoom, maxZoom, initialZoom, ViewportSizeDefault, ViewportCenterDefault)
 {
 }
예제 #25
0
        public override void Initialize(IModelService modelService, IDiagramService diagramService)
        {
            base.Initialize(modelService, diagramService);

            //_crossLayoutGroupConnectorRouter = CrossLayoutGroupConnectorRouter(diagramService);
            _rootLayoutEngine = CreateLayoutEngine(diagramService);

            DiagramService.DiagramChanged += OnDiagramChanged;
        }
예제 #26
0
        public IUiService Create(IModelService modelService, IDiagramService diagramService,
                                 double minZoom, double maxZoom, double initialZoom)
        {
            var diagramShapeUiFactory = new TestDiagramShapeUiFactory();

            var diagramViewModel = new DiagramViewModel(modelService, diagramService, diagramShapeUiFactory, minZoom, maxZoom, initialZoom);

            return(new WpfUiService(diagramViewModel));
        }
 public DiagramExtenderPlugin(
     [NotNull] IModelService modelService,
     [NotNull] IDiagramService diagramService)
     : base(diagramService)
 {
     _modelService = modelService;
     _modelService.ModelChanged         += OnModelChanged;
     diagramService.AfterDiagramChanged += OnDiagramChanged;
 }
예제 #28
0
 public WpfUiService(
     IModelService modelService,
     IDiagramService diagramService,
     IDiagramShapeUiFactory diagramShapeUiFactory,
     double minZoom,
     double maxZoom,
     double initialZoom)
 {
     DiagramViewModel = new DiagramViewModel(modelService, diagramService, diagramShapeUiFactory, minZoom, maxZoom, initialZoom);
 }
예제 #29
0
        public override void Initialize(IModelService modelService, IDiagramService diagramService)
        {
            base.Initialize(modelService, diagramService);

            var layoutCalculator = new IncrementalLayoutCalculator(_layoutPriorityProvider);

            _incrementalLayoutEngine = new IncrementalLayoutEngine(layoutCalculator, diagramService);

            DiagramService.DiagramChanged += OnDiagramChanged;
        }
예제 #30
0
        public DiagramConnectorViewModel(IModelService modelService, IDiagramService diagramService,
                                         IDiagramConnector diagramConnector, DiagramNodeViewModelBase sourceNodeViewModel, DiagramNodeViewModelBase targetNodeViewModel)
            : base(modelService, diagramService, diagramConnector)
        {
            _routePoints = diagramConnector.Route.ToWpf();

            SourceNodeViewModel = sourceNodeViewModel;
            TargetNodeViewModel = targetNodeViewModel;

            DiagramService.DiagramChanged += OnDiagramChanged;
        }