public void AddChildController(GnosisContainerController childController) { if (childController is GnosisSplitController) { if (((GnosisSplit)ControlImplementation).Splits == null) { ((GnosisSplit)ControlImplementation).Splits = new List <GnosisSplit>(); } ((GnosisSplit)ControlImplementation).Splits.Add((GnosisSplit)childController.ControlImplementation); } else if (childController is GnosisTileController) { if (((GnosisSplit)ControlImplementation).Tiles == null) { ((GnosisSplit)ControlImplementation).Tiles = new List <GnosisTile>(); } ((GnosisSplit)ControlImplementation).Tiles.Add((GnosisTile)childController.ControlImplementation); } ((GnosisContainer)childController.ControlImplementation).PropertyChanged += ChildContainer_PropertyChanged; childController.Parent = this; ChildControllers.Add(childController); }
public GnosisTileController GetFirstTile() { GnosisContainerController firstChild = ChildControllers.OrderBy(x => x.ControlImplementation.Order).Where(x => !(x is GnosisNavTileController)).First(); while (firstChild is GnosisSplitController) { firstChild = ((GnosisSplitController)firstChild).ChildControllers.OrderBy(x => x.ControlImplementation.Order).First(); } return((GnosisTileController)firstChild); }
public void RemoveChild(GnosisContainerController child) { if (child is GnosisSplitController) { //List<GnosisSplit> splits = new List<GnosisSplit>(((GnosisSplit)ControlImplementation).GnosisSplits); //splits.Remove((GnosisSplit)child.ControlImplementation); //((GnosisSplit)ControlImplementation).GnosisSplits = splits.ToArray(); ((GnosisSplit)ControlImplementation).Splits.Remove((GnosisSplit)child.ControlImplementation); } else if (child is GnosisTileController) { //List<GnosisTile> tiles = new List<GnosisTile>(((GnosisSplit)ControlImplementation).GnosisTiles); //tiles.Remove((GnosisTile)child.ControlImplementation); //((GnosisSplit)ControlImplementation).GnosisTiles = tiles.ToArray(); ((GnosisSplit)ControlImplementation).Tiles.Remove((GnosisTile)child.ControlImplementation); } ((IGnosisSplitImplementation)ControlImplementation).RemoveChild((GnosisContainer)child.ControlImplementation); ((GnosisContainer)child.ControlImplementation).PropertyChanged -= ChildContainer_PropertyChanged; ChildControllers.Remove(child); }
public override GnosisController FindControllerByID(int controlID) { if (this.ControlImplementation.ID == controlID) { return(this); } //if (SplitDetailController.ID == controlID) //{ // return SplitDetailController; //} foreach (GnosisContainerController containerController in ChildControllers) { GnosisContainerController controller = (GnosisContainerController)containerController.FindControllerByID(controlID); if (controller != null) { return(controller); } } return(null); }