protected override void SelectGroups(List <MutableObject> entry)
        {
            SelectedList   = new List <MutableObject>();
            UnSelectedList = new List <MutableObject>();

            var selectedListOnly = SelectedListOnly.GetFirstValue(entry.First());

            int entryCount = 0;
            var maxEntries = NumberOfEntries.GetValue(entry);

            foreach (var subEntry in EntryField.GetEntries(entry))
            {
                if (entryCount++ < maxEntries)
                {
                    SelectedList.Add(subEntry.Last());
                }
                else
                {
                    if (selectedListOnly)
                    {
                        break;
                    }
                    UnSelectedList.Add(subEntry.Last());
                }
            }
        }
示例#2
0
        protected override IEnumerator ProcessPayload(VisualPayload payload)
        {
            var filledGraph = VisualizerFactory.InstantiateFilledGraph();

            filledGraph.Initialize(this, payload);

            AssignStates(filledGraph);


            var mainColor = MainColor.GetFirstValue(payload.Data);


            foreach (var entry in EntryField.GetEntries(payload.Data))
            {
                filledGraph.AddPoint(ZAxis.GetValue(entry),
                                     YAxis.GetValue(entry));
            }

            filledGraph.SetGraphData(
                mainColor);

            filledGraph.ApplyPoints();

            var iterator = Router.TransmitAll(payload);

            while (iterator.MoveNext())
            {
                yield return(null);
            }
        }
示例#3
0
        public override IEnumerator ReceivePayload(VisualPayload payload)
        {
            //payload.VisualData.Bound.Data = payload.Data;

            var metaEntries = EntryField.GetEntries(payload.Data);

            var createdPayloads = new List <VisualPayload>();

            foreach (var metaEntry in metaEntries)
            {
                // foreach ( var entry in entries )
                // {
                var newBound = payload.VisualData.Bound.CreateDependingBound(Name);

                var newPayload = new VisualPayload(metaEntry.Last(), new VisualDescription(newBound));

                //newBound.Data = metaEntry.Last();

                createdPayloads.Add(newPayload);
            }

            MetaSelectionSet selectionManager = MetaSelectionSet.ConstructPayloadSelectionSet(
                payload.VisualData.Bound, createdPayloads,
                NormalState, SelectedState, NoneSelectedState,
                NormalStateMulti, SelectedStateMulti, NoneSelectedStateMulti);

            var iterator = selectionManager.TransmitAll();

            while (iterator.MoveNext())
            {
                yield return(null);
            }
        }
示例#4
0
        protected override void OnProcessOutputSchema(MutableObject newSchema)
        {
            foreach (var entry in Scope.GetEntries(newSchema))
            {
                SelectGroups(entry);

                var firstEntry = EntryField.GetEntries(entry).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(newSchema, firstEntry);
                DenoteEmptyUnSelectedList(newSchema, firstEntry);

                if (!NewPayloadOnly.GetFirstValue(newSchema))
                {
                    SelectedListTarget.SetValue(SelectedList, entry);
                    UnSelectedListTarget.SetValue(UnSelectedList, entry);
                }
            }

            if (!NewPayloadOnly.GetFirstValue(newSchema))
            {
                SelectedSet.TransmitSchema(newSchema);

                UnSelectedSet.TransmitSchema(newSchema);
            }
            else
            {
                SelectedSet.TransmitSchema(new MutableObject
                {
                    { SelectedListTarget.LastKey, SelectedList }
                });
                UnSelectedSet.TransmitSchema(new MutableObject
                {
                    { UnSelectedListTarget.LastKey, UnSelectedList }
                });
            }
        }
示例#5
0
        protected override void SelectGroups(List <MutableObject> entry)
        {
            SelectedList   = new List <MutableObject>();
            UnSelectedList = new List <MutableObject>();

            foreach (var element in EntryField.GetEntries(entry))
            {
                if (IsComms(element))
                {
                    SelectedList.Add(element.Last());
                }
                else
                {
                    UnSelectedList.Add(element.Last());
                }
            }
        }
示例#6
0
        protected override void SelectGroups(List <MutableObject> entry)
        {
            SelectedList   = new List <MutableObject>();
            UnSelectedList = new List <MutableObject>();

            foreach (var subEntry in EntryField.GetEntries(entry))
            {
                if (SelectedBool.GetValue(subEntry))
                {
                    SelectedList.Add(subEntry.Last());
                }
                else
                {
                    UnSelectedList.Add(subEntry.Last());
                }
            }
        }
示例#7
0
        protected override void OnProcessOutputSchema(MutableObject newSchema)
        {
            SelectGroups(newSchema);


            var firstEntry = EntryField.GetEntries(newSchema).First().Last();


            if (firstEntry != null)
            {
                firstEntry = firstEntry.CloneKeys();
            }
            else
            {
                firstEntry = new MutableObject();
            }

            if (!firstEntry.ContainsKey(GroupSplitter.ImplicitSchemaIndicator.KeyName))
            {
                firstEntry.Add(GroupSplitter.ImplicitSchemaIndicator.KeyName, new GroupSplitter.ImplicitSchemaIndicator(this));
            }

            var outgoingList = SelectedList.Count == 0
                ? new List <MutableObject> {
                firstEntry
            }
                : SelectedList;

            MutableObject outgoingSchema;


            if (NewPayloadOnly.GetFirstValue(newSchema))
            {
                outgoingSchema = new MutableObject();
                outgoingSchema[EntryFieldName] = outgoingList;
            }
            else
            {
                outgoingSchema = newSchema;
                SelectedListTarget.SetValue(outgoingList, outgoingSchema);
            }


            SelectedSet.TransmitSchema(outgoingSchema);
        }
        protected override void SelectGroups(MutableObject mutable)
        {
            var numberOfEntries = NumberOfEntries.GetFirstValue(mutable);

            SelectedList = new List <MutableObject>();

            int entryCount = 0;

            foreach (var entry in EntryField.GetEntries(mutable))
            {
                if (++entryCount > numberOfEntries)
                {
                    break;
                }

                SelectedList.Add(entry.Last());
            }
        }
示例#9
0
        protected override void SelectGroups(List <MutableObject> entry)
        {
            SelectedList   = new List <MutableObject>();
            UnSelectedList = new List <MutableObject>();

            var stringArg = StringArgument.GetValue(entry);

            var stringTokens = stringArg.Split(',');

            foreach (var subEntry in EntryField.GetEntries(entry))
            {
                if (IsSelected(subEntry, stringTokens))
                {
                    SelectedList.Add(subEntry.Last());
                }
                else
                {
                    UnSelectedList.Add(subEntry.Last());
                }
            }

            //Debug.LogFormat( "Selected {0}, did not select {1}", SelectedList.Count, UnSelectedList.Count );
        }
示例#10
0
        protected override void OnProcessOutputSchema(MutableObject newSchema)
        {
            var entry = EntryField.GetEntries(newSchema);

            var foundEntries = entry.ToList();

            if (!foundEntries.Any())
            {
                Debug.Log("No valid entries in " + EntryField.AbsoluteKey);
                Router.TransmitAllSchema(new MutableObject());
                return;
            }

            MutableObject outMutable = null;

            foreach (var foundEntry in EntryField.GetEntries(newSchema))
            {
                outMutable = foundEntry.Last();
                break;
            }

            NormalState.TransmitSchema(outMutable);
            SelectedState.TransmitSchema(outMutable);
            NoneSelectedState.TransmitSchema(outMutable);

            var multiSchema = new MutableObject()
            {
                { "Entries", new List <MutableObject> {
                      outMutable
                  } }
            };

            NormalStateMulti.TransmitSchema(multiSchema);
            SelectedStateMulti.TransmitSchema(multiSchema);
            NoneSelectedStateMulti.TransmitSchema(multiSchema);
        }
        protected override void SelectGroups(List <MutableObject> entry)
        {
            SelectedList.Clear();
            UnSelectedList.Clear();

            var maintainCountAtEdges = MaintainCountAtEdgesField.GetLastKeyValue(entry.Last());

            var entries      = EntryField.GetEntries(entry);
            var entriesCount = entries.Count();

            if (entriesCount == 0)
            {
                Debug.LogError("What?  Empty entries?");
            }

            var beforeWidth = SelectBeforeCount.GetLastKeyValue(entry.Last());
            var afterWidth  = SelectAfterCount.GetLastKeyValue(entry.Last());

            var lowerBound = maintainCountAtEdges?Mathf.Min(beforeWidth, entriesCount - 1):0;
            var upperBound = maintainCountAtEdges ? Mathf.Max(entriesCount - afterWidth - 1, 0) : entriesCount - 1;

            if (lowerBound >= upperBound)
            {
                // use the lower of the two values for both bounds to avoid overlap
                lowerBound = Mathf.Min(lowerBound, upperBound);
                upperBound = Mathf.Min(lowerBound, upperBound);
            }

            var index = Mathf.Clamp(CenterIndex.GetLastKeyValue(entry.Last()),
                                    lowerBound, upperBound);

            var minIndex = Mathf.Max(index - beforeWidth, 0);
            var maxIndex = Mathf.Min(index + afterWidth, entriesCount - 1);

            //var i = 0;
            //foreach ( var entry in entries )
            //{
            //    if ( i < minIndex )
            //    UnSelectedList.
            //}

            bool selectedListOnly = SelectedListOnly.GetValue(entry);

            int currentIndex = 0;

            if (selectedListOnly)
            {
                foreach (var subEntry in EntryField.GetEntries(entry))
                {
                    if (currentIndex > maxIndex)
                    {
                        break;
                    }
                    if (currentIndex >= minIndex)
                    {
                        SelectedList.Add(subEntry.Last());
                    }
                    currentIndex++;
                }
            }
            else
            {
                foreach (var subEntry in EntryField.GetEntries(entry))
                {
                    if (currentIndex < minIndex || currentIndex > maxIndex)
                    {
                        UnSelectedList.Add(subEntry.Last());
                    }
                    else
                    {
                        SelectedList.Add(subEntry.Last());
                    }

                    currentIndex++;
                }
            }
        }