public void Visit(ConstraintUtility cu)
 {
     AddToQueue(cu);
     cu.Constraint.Accept(this);
     cu.Utility.Accept(this);
     //return true;
 }
Exemple #2
0
 public bool Visit(ConstraintUtility cu)
 {
     cu.Constraint.Parents.Add(cu);
     cu.Utility.Parents.Add(cu);
     //cu.Constraint.Accept(this);
     //cu.Utility.Accept(this);
     return(false);
 }
Exemple #3
0
 public bool Visit(ConstraintUtility cu)
 {
     cu.Parents.Clear();
     cu.Constraint.Accept(this);
     cu.Utility.Accept(this);
     UpdateInterval(cu, 1, Double.PositiveInfinity);
     return(true);
 }
        /// <summary>
        /// Activate a new role sequence connect action. For a set comparison constraint
        /// this adds a new sequence. For a set constraint it activates the current sequence.
        /// </summary>
        /// <param name="clientView">The active diagram client view. This can be retrieved
        /// from the shape if it is not specified.</param>
        protected void ActivateNewRoleSequenceConnectAction(DiagramClientView clientView)
        {
            ORMDiagram  diagram;
            IConstraint constraint;

            if (null != (diagram = this.Diagram as ORMDiagram) &&
                diagram.StickyObject == this &&
                null != (constraint = this.AssociatedConstraint))
            {
                ExternalConstraintConnectAction connectAction = diagram.ExternalConstraintConnectAction;

                switch (constraint.ConstraintStorageStyle)
                {
                case ConstraintStorageStyle.SetConstraint:
                    connectAction.ConstraintRoleSequenceToEdit = constraint as ConstraintRoleSequence;
                    break;

                case ConstraintStorageStyle.SetComparisonConstraint:
                    int maximum = ConstraintUtility.RoleSequenceCountMaximum(constraint);
                    if (maximum > 0 && ((SetComparisonConstraint)constraint).RoleSequenceCollection.Count >= maximum)
                    {
                        return;
                    }
                    if (constraint.ConstraintType == ConstraintType.Exclusion)
                    {
                        // If this is a subtype connect action already, then give it the first sequence
                        ExclusionConstraint exclusion = (ExclusionConstraint)constraint;
                        foreach (FactType existingFactType in exclusion.FactTypeCollection)
                        {
                            if (existingFactType is SubtypeFact)
                            {
                                connectAction.ConstraintRoleSequenceToEdit = exclusion.RoleSequenceCollection[0];
                                break;
                            }
                        }
                    }
                    break;
                }

                if (!connectAction.IsActive)
                {
                    if (clientView == null)
                    {
                        clientView = diagram.ActiveDiagramView.DiagramClientView;
                    }
                    connectAction.ChainMouseAction(this, clientView);
                }
            }
        }
Exemple #5
0
 public bool Visit(ConstraintUtility cu)
 {
     if (cu.Constraint.Max < 1)
     {
         if (UpdateInterval(cu, Double.NegativeInfinity, cu.Constraint.Max))
         {
             AddChanged(cu);
             return(true);
         }
     }
     if (UpdateInterval(cu, Double.NegativeInfinity, cu.Utility.Max))
     {
         AddChanged(cu);
         return(true);
     }
     return(false);
 }
Exemple #6
0
        public bool Visit(ConstraintUtility cu)
        {
            bool c = false;

            if (cu.Min >= 1)
            {
                if (UpdateInterval(cu.Constraint, 1, 1))
                {
                    AddChanged(cu.Constraint);
                    c = true;
                }
                if (UpdateInterval(cu.Utility, 1, cu.Max))
                {
                    AddChanged(cu.Utility);
                    c = true;
                }
            }
            return(c);
        }
Exemple #7
0
 public void Visit(ConstraintUtility cu)
 {
     cu.Constraint.Accept(this);
     cu.Utility.Accept(this);
 }