public void DeleteSetRelations()
 {
     Focus1.MutualyExclusive.Remove(this);
     Focus1 = null;
     Focus2.MutualyExclusive.Remove(this);
     Focus2 = null;
 }
 public void RepairSets(FocusModel focus, List <FocusModel> fociList)
 {
     //Relative ids
     if (focus.CoordinatesRelativeTo != null)
     {
         CoordinatesRelativeTo = fociList.FirstOrDefault(f => f.UniqueName
                                                         == focus.CoordinatesRelativeTo.UniqueName);
     }
     //Prerequisites
     foreach (PrerequisitesSetModel set in focus.Prerequisite)
     {
         //Add the linked focus
         PrerequisitesSetModel prerequiste = new PrerequisitesSetModel(
             fociList.FirstOrDefault(f => f.UniqueName == set.Focus.UniqueName));
         //Run through all the parents and add them
         foreach (FocusModel parent in set.FociList)
         {
             prerequiste.FociList.Add(
                 fociList.FirstOrDefault(f => f.UniqueName == parent.UniqueName));
         }
         Prerequisite.Add(prerequiste);
     }
     //Mutually exclusives
     foreach (MutuallyExclusiveSetModel set in focus.MutualyExclusive)
     {
         //Create the set with both foci
         MutualyExclusive.Add(new MutuallyExclusiveSetModel(
                                  fociList.FirstOrDefault(f => f.UniqueName == set.Focus1.UniqueName),
                                  fociList.FirstOrDefault(f => f.UniqueName == set.Focus2.UniqueName)));
     }
 }
Ejemplo n.º 3
0
 public CanvasLine(double X1, double Y1, double X2,
                   double Y2, Brush Color, bool dashed,
                   ISet set, FocusModel relative = null)
 {
     this.X1     = X1;
     this.Y1     = Y1;
     this.X2     = X2;
     this.Y2     = Y2;
     this.Color  = Color;
     dashes      = dashed;
     InternalSet = set;
     Relative    = relative;
 }
 public MutuallyExclusiveSetModel(FocusModel focus1, FocusModel focus2)
 {
     //Set leftmost Focus as Focus 1 and rightmost focus as focus 2
     if (focus1.X < focus2.X)
     {
         Focus1 = focus1;
         Focus2 = focus2;
     }
     else if (focus1.X >= focus2.X)
     {
         Focus2 = focus1;
         Focus1 = focus2;
     }
 }
        public FocusModel(FocusModel focus)
        {
            Script newScript = new Script();

            newScript.Analyse(focus.InternalScript.Parse());
            image          = focus.Image;
            uniquename     = focus.UniqueName;
            text           = focus.Text;
            x              = focus.X;
            y              = focus.Y;
            cost           = focus.Cost;
            internalScript = newScript;
            note           = focus.Note;
            SetupCommonComponents();
        }
 public PrerequisitesSetModel(FocusModel linkedFocus)
 {
     FociList = new ObservableCollection <FocusModel>();
     FociList.CollectionChanged += FociList_CollectionChanged;
     focus = linkedFocus;
 }