示例#1
0
        public void DeleteSelectedComponents()
        {
            foreach (DrawableComponent dc in SelectedComponents)
            {
                foreach (CircuitInput ci in dc.Inputs)
                {
                    if (ci.Signal != null)
                    {
                        DrawableWire dw = (DrawableWire)ci.Signal;
                        dw.From.RemoveOutputWire(dw.FromIndex, dw);
                        RemoveWire((DrawableWire)ci.Signal);
                    }
                }
                foreach (CircuitOutput co in dc.Outputs)
                {
                    co.Signals.ForEach(x =>
                    {
                        DrawableWire dw = (DrawableWire)x;
                        dw.To.RemoveInputWire(dw.ToIndex);
                        RemoveWire((DrawableWire)x);
                    });
                }

                AllComponents.Remove(dc);
            }
            SelectedComponents.Clear();
        }
示例#2
0
 public void AddSelectedComponent(DrawableComponent dc)
 {
     if (!SelectedComponents.Contains(dc))
     {
         SelectedComponents.Add(dc);
     }
 }
 /// <summary>
 /// Fired whenever a component property's value gets changed
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void ComponentPropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     //presently, we only care about selection change
     if (e.PropertyName.CompareTo("IsSelected") == 0)
     {
         IWizardBaseController component = sender as IWizardBaseController;
         if (component.IsSelected)
         {
             if (UnselectedComponents.Contains(component))
             {
                 UnselectedComponents.Remove(component);
             }
             if (!SelectedComponents.Contains(component))
             {
                 SelectedComponents.Add(component);
             }
         }
         else
         {
             if (SelectedComponents.Contains(component))
             {
                 SelectedComponents.Remove(component);
             }
             if (!UnselectedComponents.Contains(component))
             {
                 UnselectedComponents.Add(component);
             }
         }
     }
 }
 /// <summary>
 /// Deactivates (set's IsSelected to false) all components.  Returns the manager
 /// to the default state.
 /// </summary>
 public void DeactivateAllComponents()
 {
     foreach (IWizardBaseController component in AllComponents)
     {
         component.IsSelected = false;
     }
     ActiveComponentIndex = 0;
     SelectedComponents.Clear();
 }
        public void SortComponents()
        {
            if (AllComponents[0].SortOrder != 0)
            {
                List <IWizardBaseController> selectedAsList = SelectedComponents.ToList();
                selectedAsList.Sort(new WizardSortOrderComparer());
                SelectedComponents = new ObservableCollection <IWizardBaseController>(selectedAsList);

                List <IWizardBaseController> unselectedAsList = UnselectedComponents.ToList();
                unselectedAsList.Sort(new WizardSortOrderComparer());
                UnselectedComponents = new ObservableCollection <IWizardBaseController>(unselectedAsList);
            }
            else
            {
                List <IWizardBaseController> selectedAsList = SortComponents(SelectedComponents.ToList());
                SelectedComponents = new ObservableCollection <IWizardBaseController>(selectedAsList);

                List <IWizardBaseController> unselectedAsList = SortComponents(UnselectedComponents.ToList());
                UnselectedComponents = new ObservableCollection <IWizardBaseController>(unselectedAsList);
            }

            //The collectionChanged event won't get called to save our sort, so we have to do it manually
            ComponentsCollectionChanged(this, new System.Collections.Specialized.NotifyCollectionChangedEventArgs(System.Collections.Specialized.NotifyCollectionChangedAction.Reset));
        }
示例#6
0
 public void ClearSelectedComponents()
 {
     SelectedComponents.Clear();
 }