コード例 #1
0
ファイル: GroupSplitter.cs プロジェクト: voidALPHA/cgc_viz
 protected virtual void DenoteEmptySelectedList(MutableObject mutable, MutableObject defaultObject)
 {
     if (!SelectedList.Any())
     {
         SelectedList.Add(defaultObject);
     }
 }
コード例 #2
0
ファイル: MetaSelectionSet.cs プロジェクト: voidALPHA/cgc_viz
        public IEnumerator Deselect(VisualPayload payload)
        {
            SelectedList.Remove(payload);

            UnSelectedList.Add(payload);

            payload.VisualData.Bound.ClearBounds();

            IEnumerator iterator;

            if (!SelectedList.Any())
            {
                iterator = SendNoneSelected();
                while (iterator.MoveNext())
                {
                    yield return(null);
                }
            }
            else
            {
                iterator = NormalState.Transmit(payload);
                while (iterator.MoveNext())
                {
                    yield return(null);
                }
            }

            iterator = TransmitMultiStates();
            while (iterator.MoveNext())
            {
                yield return(null);
            }
        }
コード例 #3
0
ファイル: MetaSelectionSet.cs プロジェクト: voidALPHA/cgc_viz
        public IEnumerator Select(VisualPayload payload)
        {
            bool sendNormal = !SelectedList.Any();

            UnSelectedList.Remove(payload);

            SelectedList.Add(payload);

            payload.VisualData.Bound.ClearBounds();

            var iterator = SelectedState.Transmit(payload);

            while (iterator.MoveNext())
            {
                yield return(null);
            }

            if (sendNormal)
            {
                iterator = SendUnselected();
                while (iterator.MoveNext())
                {
                    yield return(null);
                }
            }

            iterator = TransmitMultiStates();
            while (iterator.MoveNext())
            {
                yield return(null);
            }
        }
コード例 #4
0
ファイル: MetaSelectionSet.cs プロジェクト: voidALPHA/cgc_viz
        public IEnumerator Deselect(IEnumerable <VisualPayload> payloads)
        {
            if (!payloads.Any())
            {
                yield return(null);

                yield break;
            }

            IEnumerator iterator;

            foreach (var payload in payloads)
            {
                if (UnSelectedList.Contains(payload))
                {
                    continue;
                }

                SelectedList.Remove(payload);
                UnSelectedList.Add(payload);
            }

            //var newNodeState = SelectedList.Count == 0 ? NoneSelectedState : NormalState;

            if (SelectedList.Any())
            {
                foreach (var payload in payloads)
                {
                    payload.VisualData.Bound.ClearBounds();

                    iterator = NormalState.Transmit(payload);
                    while (iterator.MoveNext())
                    {
                        yield return(null);
                    }
                }
            }
            else
            {
                iterator = SendNoneSelected();
                while (iterator.MoveNext())
                {
                    yield return(null);
                }
            }


            iterator = TransmitMultiStates();
            while (iterator.MoveNext())
            {
                yield return(null);
            }
        }
コード例 #5
0
ファイル: MetaSelectionSet.cs プロジェクト: voidALPHA/cgc_viz
        public IEnumerator Select(IEnumerable <VisualPayload> payloads)
        {
            if (!payloads.Any())
            {
                yield return(null);

                yield break;
            }

            bool sendNormal = !SelectedList.Any();

            IEnumerator iterator;

            foreach (var payload in payloads)
            {
                if (SelectedList.Contains(payload))
                {
                    continue;
                }

                UnSelectedList.Remove(payload);
                SelectedList.Add(payload);

                payload.VisualData.Bound.ClearBounds();

                iterator = SelectedState.Transmit(payload);
                while (iterator.MoveNext())
                {
                    yield return(null);
                }
            }

            if (sendNormal)
            {
                iterator = SendUnselected();
                while (iterator.MoveNext())
                {
                    yield return(null);
                }
            }

            iterator = TransmitMultiStates();
            while (iterator.MoveNext())
            {
                yield return(null);
            }
        }
コード例 #6
0
ファイル: GroupSplitter.cs プロジェクト: voidALPHA/cgc_viz
        public override IEnumerator ReceivePayload(VisualPayload payload)
        {
            foreach (var entry in Scope.GetEntries(payload.Data))
            {
                SelectGroups(entry);

                //var firstEntry = EntryField.GetEntries(payload.Data).First().Last();
                //
                //if (firstEntry != null)
                //    firstEntry = firstEntry.CloneKeys();
                //else
                //    firstEntry = new MutableObject();
                //
                //if (!firstEntry.ContainsKey(ImplicitSchemaIndicator.KeyName))
                //    firstEntry.Add(ImplicitSchemaIndicator.KeyName, new ImplicitSchemaIndicator(this));
                //
                //
                //DenoteEmptySelectedList(payload.Data, firstEntry);
                //DenoteEmptyUnSelectedList(payload.Data, firstEntry);

                if (NewPayloadOnly.GetFirstValue(payload.Data))
                {
                    if (AllowEmptyLists.GetFirstValue(payload.Data) || SelectedList.Any())
                    {
                        var iterator = SelectedSet.Transmit(
                            new VisualPayload(new MutableObject
                        {
                            { SelectedListTarget.LastKey, SelectedList }
                        }, payload.VisualData));
                        while (iterator.MoveNext())
                        {
                            yield return(null);
                        }
                    }

                    if (AllowEmptyLists.GetFirstValue(payload.Data) || UnSelectedList.Any())
                    {
                        var iterator = UnSelectedSet.Transmit(
                            new VisualPayload(new MutableObject
                        {
                            { UnSelectedListTarget.LastKey, UnSelectedList }
                        }, payload.VisualData));
                        while (iterator.MoveNext())
                        {
                            yield return(null);
                        }
                    }
                }
                else
                {
                    SelectedListTarget.SetValue(SelectedList, entry);
                    UnSelectedListTarget.SetValue(UnSelectedList, entry);
                }
            }

            if (!NewPayloadOnly.GetFirstValue(payload.Data))
            {
                if (AllowEmptyLists.GetFirstValue(payload.Data) || SelectedList.Any())
                {
                    var iterator = SelectedSet.Transmit(payload);
                    while (iterator.MoveNext())
                    {
                        yield return(null);
                    }
                }

                if (AllowEmptyLists.GetFirstValue(payload.Data) || UnSelectedList.Any())
                {
                    var iterator = UnSelectedSet.Transmit(payload);
                    while (iterator.MoveNext())
                    {
                        yield return(null);
                    }
                }
            }
        }