Пример #1
0
 public static void AddPhyloTreeEdge(PhyloTree phyloTree, IDiagramItem parentNodeSource, IDiagramItem childNodeSource, double weight = 1)
 {
     phyloTree.Edges.Add(new PhyloEdge(AddNode(phyloTree, parentNodeSource), AddNode(phyloTree, childNodeSource))
     {
         Weight = (int)weight
     });
 }
Пример #2
0
 public static void AddEdge(GeometryGraph geometryGraph, IDiagramItem parentNodeSource, IDiagramItem childNodeSource, double weight)
 {
     geometryGraph.Edges.Add(new Edge(AddNode(geometryGraph, parentNodeSource), AddNode(geometryGraph, childNodeSource))
     {
         Weight = (int)weight
     });
 }
Пример #3
0
 /// <summary>
 /// The create connection.
 /// </summary>
 /// <param name="psourceItem">The source item.</param>
 /// <param name="pdestinationItem">The destination item.</param>
 /// <returns>The <see cref="IConnection" />.</returns>
 public override IConnection CreateConnection(IDiagramItem psourceItem, IDiagramItem pdestinationItem)
 {
     return new ExpressionConnection
                {
                    SourceItem = psourceItem,
                    DestinationItem = pdestinationItem
                };
 }
Пример #4
0
        public static Node AddNode(GeometryGraph geometryGraph, IDiagramItem item)
        {
            Node msaglNode = geometryGraph.FindNodeByUserData(item);

            if (msaglNode == null)
            {
                msaglNode = new Node(CreateCurve(item), item);
                geometryGraph.Nodes.Add(msaglNode);
            }
            return(msaglNode);
        }
Пример #5
0
        CategoryData GetProductByItem(IDiagramItem item)
        {
            if (item == null)
            {
                return(null);
            }
            CategoryData result;

            ItemToProductCache.TryGetValue(item, out result);
            return(result);
        }
Пример #6
0
        CustomerData GetCustomerByItem(IDiagramItem item)
        {
            if (item == null)
            {
                return(null);
            }
            CustomerData result;

            ItemToWarehouseCache.TryGetValue(item, out result);
            return(result);
        }
Пример #7
0
        private void LoadPerstistDesignerItems(IDiagramItem wholeDiagramToLoad, IDiagramViewModel diagramViewModel)
        {
            //load diagram items
            foreach (DiagramItemData diagramItemData in wholeDiagramToLoad.DesignerItems)
            {
                if (diagramItemData.ItemType == typeof(PersistDesignerItem))
                {
                    PersistDesignerItem          persistedDesignerItem        = databaseAccessService.FetchPersistDesignerItem(diagramItemData.ItemId);
                    PersistDesignerItemViewModel persistDesignerItemViewModel =
                        new PersistDesignerItemViewModel(persistedDesignerItem.Id, diagramViewModel, persistedDesignerItem.Left, persistedDesignerItem.Top, persistedDesignerItem.ItemWidth, persistedDesignerItem.ItemHeight, persistedDesignerItem.HostUrl);
                    diagramViewModel.Items.Add(persistDesignerItemViewModel);
                }
                if (diagramItemData.ItemType == typeof(SettingsDesignerItem))
                {
                    SettingsDesignerItem          settingsDesignerItem          = databaseAccessService.FetchSettingsDesignerItem(diagramItemData.ItemId);
                    SettingsDesignerItemViewModel settingsDesignerItemViewModel =
                        new SettingsDesignerItemViewModel(settingsDesignerItem.Id, diagramViewModel, settingsDesignerItem.Left, settingsDesignerItem.Top, settingsDesignerItem.ItemWidth, settingsDesignerItem.ItemHeight, settingsDesignerItem.Setting1);
                    diagramViewModel.Items.Add(settingsDesignerItemViewModel);
                }
                if (diagramItemData.ItemType == typeof(GroupDesignerItem))
                {
                    GroupDesignerItem             groupDesignerItem             = databaseAccessService.FetchGroupingDesignerItem(diagramItemData.ItemId);
                    GroupingDesignerItemViewModel groupingDesignerItemViewModel =
                        new GroupingDesignerItemViewModel(groupDesignerItem.Id, diagramViewModel, groupDesignerItem.Left, groupDesignerItem.Top, groupDesignerItem.ItemWidth, groupDesignerItem.ItemHeight);
                    if (groupDesignerItem.DesignerItems != null && groupDesignerItem.DesignerItems.Count > 0)
                    {
                        LoadPerstistDesignerItems(groupDesignerItem, groupingDesignerItemViewModel);
                    }
                    diagramViewModel.Items.Add(groupingDesignerItemViewModel);
                }
            }
            //load connection items
            foreach (int connectionId in wholeDiagramToLoad.ConnectionIds)
            {
                Connection connection = databaseAccessService.FetchConnection(connectionId);

                DesignerItemViewModelBase sourceItem = GetConnectorDataItem(diagramViewModel, connection.SourceId, connection.SourceType);
                ConnectorOrientation      sourceConnectorOrientation = GetOrientationForConnector(connection.SourceOrientation);
                FullyCreatedConnectorInfo sourceConnectorInfo        = GetFullConnectorInfo(connection.Id, sourceItem, sourceConnectorOrientation);

                DesignerItemViewModelBase sinkItem = GetConnectorDataItem(diagramViewModel, connection.SinkId, connection.SinkType);
                ConnectorOrientation      sinkConnectorOrientation = GetOrientationForConnector(connection.SinkOrientation);
                FullyCreatedConnectorInfo sinkConnectorInfo        = GetFullConnectorInfo(connection.Id, sinkItem, sinkConnectorOrientation);

                ConnectorViewModel connectionVM = new ConnectorViewModel(connection.Id, diagramViewModel, sourceConnectorInfo, sinkConnectorInfo);
                diagramViewModel.Items.Add(connectionVM);
            }
        }
Пример #8
0
        private void SavePersistDesignerItem(IDiagramItem wholeDiagramToSave, IDiagramViewModel diagramViewModel)
        {
            //Save all PersistDesignerItemViewModel
            foreach (var persistItemVM in diagramViewModel.Items.OfType <PersistDesignerItemViewModel>())
            {
                PersistDesignerItem persistDesignerItem = new PersistDesignerItem(persistItemVM.Id, persistItemVM.Left, persistItemVM.Top, persistItemVM.ItemWidth, persistItemVM.ItemHeight, persistItemVM.HostUrl);
                persistItemVM.Id = databaseAccessService.SavePersistDesignerItem(persistDesignerItem);
                wholeDiagramToSave.DesignerItems.Add(new DiagramItemData(persistDesignerItem.Id, typeof(PersistDesignerItem)));
            }
            //Save all SettingsDesignerItemViewModel
            foreach (var settingsItemVM in diagramViewModel.Items.OfType <SettingsDesignerItemViewModel>())
            {
                SettingsDesignerItem settingsDesignerItem = new SettingsDesignerItem(settingsItemVM.Id, settingsItemVM.Left, settingsItemVM.Top, settingsItemVM.ItemWidth, settingsItemVM.ItemHeight, settingsItemVM.Setting1);
                settingsItemVM.Id = databaseAccessService.SaveSettingDesignerItem(settingsDesignerItem);
                wholeDiagramToSave.DesignerItems.Add(new DiagramItemData(settingsDesignerItem.Id, typeof(SettingsDesignerItem)));
            }
            //Save all GroupingDesignerItemViewModel
            foreach (var groupingItemVM in diagramViewModel.Items.OfType <GroupingDesignerItemViewModel>())
            {
                GroupDesignerItem groupDesignerItem = new GroupDesignerItem(groupingItemVM.Id, groupingItemVM.Left, groupingItemVM.Top, groupingItemVM.ItemWidth, groupingItemVM.ItemHeight);
                if (groupingItemVM.Items != null && groupingItemVM.Items.Count > 0)
                {
                    SavePersistDesignerItem(groupDesignerItem, groupingItemVM);
                }
                groupingItemVM.Id = databaseAccessService.SaveGroupingDesignerItem(groupDesignerItem);
                wholeDiagramToSave.DesignerItems.Add(new DiagramItemData(groupDesignerItem.Id, typeof(GroupDesignerItem)));
            }
            //Save all connections which should now have their Connection.DataItems filled in with correct Ids
            foreach (var connectionVM in diagramViewModel.Items.OfType <ConnectorViewModel>())
            {
                FullyCreatedConnectorInfo sinkConnector = connectionVM.SinkConnectorInfo as FullyCreatedConnectorInfo;

                Connection connection = new Connection(
                    connectionVM.Id,
                    connectionVM.SourceConnectorInfo.DataItem.Id,
                    GetOrientationFromConnector(connectionVM.SourceConnectorInfo.Orientation),
                    GetTypeOfDiagramItem(connectionVM.SourceConnectorInfo.DataItem),
                    sinkConnector.DataItem.Id,
                    GetOrientationFromConnector(sinkConnector.Orientation),
                    GetTypeOfDiagramItem(sinkConnector.DataItem));

                connectionVM.Id = databaseAccessService.SaveConnection(connection);
                wholeDiagramToSave.ConnectionIds.Add(connectionVM.Id);
            }
        }
Пример #9
0
 protected override void OnItemRemoved(IDiagramItem item)
 {
     base.OnItemRemoved(item);
 }
Пример #10
0
 public static ICurve CreateCurve(IDiagramItem item)
 {
     return(CurveFactory.CreateRectangle(item.ActualSize.Width, item.ActualSize.Height, new Point()));
 }
Пример #11
0
        public void RefreshItems(StatisticsItem[] items, DateTime since, DateTime to)
        {
            var refresh = new Action(() => {
                diagramsHost.MaxDate = to;
                diagramsHost.MinDate = since;
                var diagrams         = new List <IDiagramItem>();
                if (items.Any())
                {
                    lblDataEmpty.Visibility = Visibility.Collapsed;
                    diagramsHost.Visibility = Visibility.Visible;
                    foreach (var info in _infos)
                    {
                        var scenarioName     = info.Name;
                        IDiagramItem diagram = null;
                        if (info.ValueTypeName == Lazurite.ActionsDomain.Utils.GetValueTypeClassName(typeof(FloatValueType)))
                        {
                            var unit = (ScenariosRepository.Scenarios.FirstOrDefault(x => x.Id == info.ID)?.ValueType as FloatValueType).Unit?.Trim();
                            if (!string.IsNullOrEmpty(unit))
                            {
                                scenarioName += ", " + unit;
                            }
                            diagram = new GraphicsDiagramItemView();
                        }
                        else if (info.ValueTypeName == Lazurite.ActionsDomain.Utils.GetValueTypeClassName(typeof(StateValueType)))
                        {
                            diagram = new StatesDiagramItemView();
                        }
                        else if (info.ValueTypeName == Lazurite.ActionsDomain.Utils.GetValueTypeClassName(typeof(ToggleValueType)))
                        {
                            diagram = new ToggleDiagramItemView();
                        }
                        else
                        {
                            diagram = new InfoDiagramItemView();
                        }
                        var curItems = items.Where(x => x.Target.ID == info.ID).ToArray();
                        diagram.SetPoints(scenarioName, curItems);
                        diagrams.Add(diagram);
                    }
                    var ordered = diagrams
                                  .OrderByDescending(x => x is ToggleDiagramItemView)
                                  .OrderByDescending(x => x is StatesDiagramItemView)
                                  .OrderByDescending(x => x is GraphicsDiagramItemView)
                                  .ToArray();
                    diagramsHost.SetItems(ordered);
                }

                if (!items.Any() || !diagrams.Any())
                {
                    lblDataEmpty.Visibility = Visibility.Visible;
                }
            });

            if (IsLoaded)
            {
                refresh();
            }
            else
            {
                Loaded += (o, e) => refresh();
            }
        }
Пример #12
0
 /// <summary>
 /// The create connection.
 /// </summary>
 /// <param name="psourceItem">The source item.</param>
 /// <param name="pdestinationItem">The destination item.</param>
 /// <returns>The <see cref="IConnection" />.</returns>
 public override IConnection CreateConnection(IDiagramItem psourceItem, IDiagramItem pdestinationItem)
 {
     return null;
 }
Пример #13
0
 /// <summary>
 /// The create connection.
 /// </summary>
 /// <param name="psourceItem">The source item.</param>
 /// <param name="pdestinationItem">The destination item.</param>
 /// <returns>The <see cref="IConnection" />.</returns>
 public virtual IConnection CreateConnection(IDiagramItem psourceItem, IDiagramItem pdestinationItem)
 {
     return null;
 }
Пример #14
0
 protected override void OnItemRemoved(IDiagramItem item)
 {
     base.OnItemRemoved(item);
 }
 protected override void OnChildBoundsChanged(IDiagramItem diagramItem)
 {
 }