Exemplo n.º 1
0
 private void ProcessSourceGroupChange(Common.SignalSourceGroupChangeHolder info)
 {
     if (_viewStatus != null && _viewStatus.View != null && !(_viewStatus.View as DispatcherObject).Dispatcher.CheckAccess())
     {
         (_viewStatus.View as DispatcherObject).Dispatcher.BeginInvoke(new SourceGroupChangeDelegate(ProcessSourceGroupChange), info);
     }
     else
     {
         BaseSourceModel src = null;
         foreach (SourceGroupModel grp in _signalGroups)
         {
             BaseSourceModel tmp = grp.SignalSources.FirstOrDefault(s => s.SignalSourceId == info.SignalSourceId);
             if (tmp != null)
             {
                 src = tmp;
                 grp.SignalSources.Remove(tmp);
                 break;
             }
         }
         if (src != null)
         {
             SourceGroupModel grp = _signalGroups.FirstOrDefault(g => g.GroupId == info.NewGroupId);
             if (grp != null && grp.SignalSources.FirstOrDefault(s => s.SignalSourceId == info.SignalSourceId) == null)
             {
                 grp.AddSignalSourceModelToList(src);
             }
         }
     }
 }
Exemplo n.º 2
0
        private void DragDropProviderItemsControl_Drop(object sender, DragEventArgs e)
        {
            ViewModels.SourceGroupModel grp = GetGroupModelFromSender(sender);
            if (grp == null)
            {
                return;
            }

            RadioLog.ViewModels.BaseSourceModel src = GetSourceModelFromDrop(e);
            if (src == null)
            {
                return;
            }

            e.Handled = true;

            if (src.SrcInfo.GroupId == GetGroupModelFromSender(sender).GroupId)
            {
                //could be re-ordering...
                RadioLog.ViewModels.BaseSourceModel tgt = GetTargetModelFromDrop(sender, e);
                if (tgt != null)
                {
                    ViewModels.BaseSourceModel[]      curModels = grp.SignalSources.ToArray();
                    List <ViewModels.BaseSourceModel> tmpList   = new List <ViewModels.BaseSourceModel>(curModels);
                    if (tmpList.Contains(src) && tmpList.Contains(tgt))
                    {
                        tmpList.Remove(src);
                        int indx = tmpList.IndexOf(tgt);
                        indx = Math.Max(indx, 0);
                        if (indx < (tmpList.Count - 2))
                        {
                            tmpList.Insert(indx, src);
                        }
                        else
                        {
                            tmpList.Add(src);
                        }
                        for (int i = 0; i < tmpList.Count; i++)
                        {
                            tmpList[i].DisplayOrder = ((i + 1) * 10);
                        }
                        Common.AppSettings.Instance.SaveSettingsFile();
                        grp.SignalSources.Sort();
                    }
                }

                return;
            }

            src.SrcInfo.GroupId = grp.GroupId;
            src.GroupInfo       = grp.GroupInfo;
            Common.AppSettings.Instance.SaveSettingsFile();
            Common.SignalSourceGroupChangeHolder changeHolder = new Common.SignalSourceGroupChangeHolder()
            {
                SignalSourceId = src.SrcInfo.SourceId, NewGroupId = grp.GroupId
            };
            Cinch.Mediator.Instance.NotifyColleagues <Common.SignalSourceGroupChangeHolder>("SOURCE_GROUP_CHANGE", changeHolder);
        }
Exemplo n.º 3
0
        private void DragDropProviderItemsControl_Drop(object sender, DragEventArgs e)
        {
            ViewModels.SourceGroupModel grp = GetGroupModelFromSender(sender);
            if (grp == null)
                return;

            RadioLog.ViewModels.BaseSourceModel src = GetSourceModelFromDrop(e);
            if (src == null)
                return;

            e.Handled = true;

            if (src.SrcInfo.GroupId == GetGroupModelFromSender(sender).GroupId)
            {
                //could be re-ordering...
                RadioLog.ViewModels.BaseSourceModel tgt = GetTargetModelFromDrop(sender, e);
                if (tgt != null)
                {
                    ViewModels.BaseSourceModel[] curModels = grp.SignalSources.ToArray();
                    List<ViewModels.BaseSourceModel> tmpList = new List<ViewModels.BaseSourceModel>(curModels);
                    if (tmpList.Contains(src) && tmpList.Contains(tgt))
                    {
                        tmpList.Remove(src);
                        int indx = tmpList.IndexOf(tgt);
                        indx = Math.Max(indx, 0);
                        if (indx < (tmpList.Count - 2))
                            tmpList.Insert(indx, src);
                        else
                            tmpList.Add(src);
                        for (int i = 0; i < tmpList.Count; i++)
                        {
                            tmpList[i].DisplayOrder = ((i + 1) * 10);
                        }
                        Common.AppSettings.Instance.SaveSettingsFile();
                        grp.SignalSources.Sort();
                    }
                }

                return;
            }

            src.SrcInfo.GroupId = grp.GroupId;
            src.GroupInfo = grp.GroupInfo;
            Common.AppSettings.Instance.SaveSettingsFile();
            Common.SignalSourceGroupChangeHolder changeHolder = new Common.SignalSourceGroupChangeHolder() { SignalSourceId = src.SrcInfo.SourceId, NewGroupId = grp.GroupId };
            Cinch.Mediator.Instance.NotifyColleagues<Common.SignalSourceGroupChangeHolder>("SOURCE_GROUP_CHANGE", changeHolder);
        }