Exemplo n.º 1
0
        private void GenerateElements()
        {
            var propertiesToDisplay =
                CriterionStatement.GetType()
                .GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)
                .Where(e => Attribute.IsDefined(e, typeof(CriterionDescriptionElementAttribute), true));

            foreach (var propertyInfo in propertiesToDisplay)
            {
                if (typeof(IMutableField).IsAssignableFrom(propertyInfo.PropertyType))
                {
                    GenerateMutableBox(propertyInfo);
                }
                else if (propertyInfo.PropertyType == typeof(string))
                {
                    GenerateSymbol(propertyInfo);
                }
                else
                {
                    throw new NotImplementedException("Cannot handle type " + propertyInfo.PropertyType);
                }
            }

            Resize();
        }
Exemplo n.º 2
0
        private void RemoveCriterionStatementView(CriterionStatement criterionStatement)
        {
            var view = CriterionStatementViews.FirstOrDefault(v => v.CriterionStatement == criterionStatement);

            if (view == null)
            {
                throw new InvalidOperationException("Could not find view for criterion statement.");
            }


            view.BoundsChanged -= HandleCriteriaStatementViewBoundsChanged;

            Destroy(view.gameObject);

            CriterionStatementViews.Remove(view);

            UpdateHeight();
        }
Exemplo n.º 3
0
        private void AddCriterionStatementView(CriterionStatement criterionStatement)
        {
            var go   = Instantiate(CriterionStatementViewPrefab);
            var view = go.GetComponent <CriterionStatementViewBehaviour>();

            view.BoundsChanged += HandleCriteriaStatementViewBoundsChanged;

            view.Initialize(criterionStatement, this);

            view.transform.SetParent(CriterionStatementViewAttachmentPoint, false);

            CriterionStatementViews.Add(view);


            AddButtonWrapper.SetAsLastSibling();

            UpdateHeight();
        }
Exemplo n.º 4
0
        public void Initialize(CriterionStatement criterionStatement, ISchemaProvider schemaProvider)
        {
            SchemaProvider = schemaProvider;

            CriterionStatement = criterionStatement;
        }
Exemplo n.º 5
0
 public void HandleRemoveButtonClicked()
 {
     CriterionStatement.RequestRemoval();
 }
Exemplo n.º 6
0
        private void HandleCriteriaGroupCriterionAdded(CriterionStatement criterionStatement)
        {
            AddCriterionStatementView(criterionStatement);

            CriteriaChanged();
        }
Exemplo n.º 7
0
 private void HandleCriteriaChanged(CriterionStatement updatedStatement)
 {
     CriteriaChanged();
 }
Exemplo n.º 8
0
        private void HandleCriteriaGroupCriterionRemoved(CriterionStatement criterionStatement)
        {
            RemoveCriterionStatementView(criterionStatement);

            CriteriaChanged();
        }