public void RemoveTile(GnosisTileController tileController) { //Find sibling and grandparent GnosisSplitController parentSplitController = (GnosisSplitController)tileController.Parent; var siblingController = parentSplitController.ChildControllers.Find(x => x.ControlImplementation.ID != tileController.ControlImplementation.ID); GnosisSplitController grandparent = (GnosisSplitController)parentSplitController.Parent; //remove tile and sibling from current parent parentSplitController.RemoveChild(tileController); parentSplitController.RemoveChild(siblingController); //assign parent's name and order to sibling siblingController.ControlImplementation.Order = parentSplitController.ControlImplementation.Order; siblingController.ControlImplementation.GnosisName = parentSplitController.ControlImplementation.GnosisName; //replace current parent with the sibling grandparent.RemoveChild(parentSplitController); grandparent.AddChildController(siblingController); //redraw grandparent.BuildContent(); GnosisParentWindow parentWindow = (GnosisParentWindow)GlobalData.Singleton.ParentWindowController.ControlImplementation; GnosisXMLHelper.SaveParentWindow(parentWindow); }
private void DisplayPropertiesTile() { gdParent.Visibility = Visibility.Collapsed; gdNav.Visibility = Visibility.Collapsed; gdLeaf.Visibility = Visibility.Visible; gdMain.Visibility = Visibility.Collapsed; lblLeafSplit.Content = currentController.ControlImplementation.GnosisName; TreeViewItem parentItem = GetParentNode(); if (parentItem != null) { GnosisSplitController parentController = (GnosisSplitController)parentItem.Tag; if (parentController.SplitDirection == GnosisSplitController.DirectionType.VERTICAL) { pnlParentSplitDirectionVertical.Visibility = Visibility.Visible; pnlParentSplitDirectionHorizontal.Visibility = Visibility.Collapsed; rdLeft.IsEnabled = true; rdRight.IsEnabled = true; if (currentController.ControlImplementation.Order == 1) { rdLeft.IsChecked = true; rdRight.IsChecked = false; } else { rdRight.IsChecked = true; rdLeft.IsChecked = false; } rdLeft.IsEnabled = false; rdRight.IsEnabled = false; } else { pnlParentSplitDirectionHorizontal.Visibility = Visibility.Visible; pnlParentSplitDirectionVertical.Visibility = Visibility.Collapsed; rdTop.IsEnabled = true; rdBottom.IsEnabled = true; if (currentController.ControlImplementation.Order == 1) { rdTop.IsChecked = true; rdBottom.IsChecked = false; } else { rdBottom.IsChecked = true; rdTop.IsChecked = false; } rdTop.IsEnabled = false; rdBottom.IsEnabled = false; } } }
private void UpdateSplitPercentage() { if (currentController != null) { if (txtPercentage.Value != null) { if (validator.ValidateSplitPercentage((int)txtPercentage.Value)) { int newPercent = (int)txtPercentage.Value; GnosisSplitController splitController = (GnosisSplitController)currentController; splitController.ChangeSplitPercentage(newPercent); txtPercentage.Style = gdRoot.FindResource("textBoxNormalStyle") as System.Windows.Style; } else { txtPercentage.Style = gdRoot.FindResource("textBoxErrorStyle") as System.Windows.Style; } } else { txtPercentage.Style = gdRoot.FindResource("textBoxErrorStyle") as System.Windows.Style; } } }
public void AddTile(GnosisTileController currentTileController, GnosisController.TilePosition newTilePosition) { //Create new sibling Tile and new parent Split //currentTile becomes a child of the new parent //new parent split GnosisSplit newParentSplit = GnosisControlCreator.CreateGnosisSplit(currentTileController.ControlImplementation.Order); GnosisSplitController newParentSplitController = new GnosisSplitController(newParentSplit, currentTileController.EntityController, currentTileController.Parent); //new split detail GnosisSplitDetail splitDetail = new GnosisSplitDetail(); splitDetail.ID = GlobalData.Singleton.GetNewControlID(); splitDetail.Order = 0; splitDetail._GnosisOrientation = GnosisController.OrientationType.LANDSCAPE; splitDetail.SplitPercentage = 50; if (newTilePosition == GnosisController.TilePosition.TOP || newTilePosition == GnosisController.TilePosition.BOTTOM) { splitDetail._SplitDirection = GnosisController.DirectionType.HORIZONTAL; } else { splitDetail._SplitDirection = GnosisController.DirectionType.VERTICAL; } newParentSplit.SplitDetails = new List <GnosisSplitDetail>(); newParentSplit.SplitDetails.Add(splitDetail); //newParentSplit.GnosisSplitDetails = new GnosisSplitDetail[2]; //newParentSplit.GnosisSplitDetails[0] = splitDetail; //new sibling tile GnosisTile newSiblingTile = new GnosisTile(); newSiblingTile.ID = GlobalData.Singleton.GetNewControlID(); AssignNamesAndOrders(newParentSplit, splitDetail, currentTileController, newSiblingTile, newTilePosition); //store old parent GnosisSplitController oldParent = (GnosisSplitController)currentTileController.Parent; //remove current tile from old parent oldParent.RemoveChild(currentTileController); //add current tile and new sibling to new parent newParentSplitController.AddChildModel(newSiblingTile); newParentSplitController.AddChildController(currentTileController); newParentSplitController.BuildContent(); //add new parent to old parent oldParent.AddChildController(newParentSplitController); oldParent.BuildContent(); //GnosisParentWindow parentWindow = (GnosisParentWindow)GlobalData.Singleton.ParentWindowController.ControlImplementation; //GnosisXMLHelper.SaveParentWindow(parentWindow); //newParentSplit.GnosisTiles = new GnosisTile[2]; //if (currentTileController.ControlImplementation.Order == 1) //{ // newParentSplit.GnosisTiles[0] = (GnosisTile)currentTileController.ControlImplementation; // newParentSplit.GnosisTiles[1] = newSiblingTile; //} //else //{ // newParentSplit.GnosisTiles[0] = newSiblingTile; // newParentSplit.GnosisTiles[1] = (GnosisTile)currentTileController.ControlImplementation; //} ////remove current tile from old parent and replace it with new split //GnosisSplit oldParent = (GnosisSplit)currentTileController.ParentSplitController.ControlImplementation; //oldParent.RemoveTile((GnosisTile)currentTileController.ControlImplementation); //oldParent.AddSplit(newParentSplit); //currentTileController.ParentSplitController.ReplaceChild(currentTileController, newParentSplitController); //notify listeners //currentParent.Altered = true; }
private void DisplayPropertiesSplit() { gdLeaf.Visibility = Visibility.Collapsed; gdParent.Visibility = Visibility.Visible; gdNav.Visibility = Visibility.Collapsed; gdMain.Visibility = Visibility.Collapsed; lblParentHeader.Content = currentController.ControlImplementation.GnosisName; lblParentOrientation.Content = ((GnosisSplitController)currentController).Orientation; txtPercentage.IsEnabled = true; lblPercentage.IsEnabled = true; txtPercentage.Value = (int)((GnosisSplitController)currentController).SplitPercentage; if (((GnosisSplitController)currentController).SplitDirection == GnosisSplitController.DirectionType.HORIZONTAL) { cboSplitDirection.SelectedItem = cboiHorizontal; } else { cboSplitDirection.SelectedItem = cboiVertical; } //Show position of this split in relation to sibling TreeViewItem parentItem = GetParentNode(); if (parentItem != null && !(currentController is GnosisPrimarySplitController)) { GnosisSplitController parentController = (GnosisSplitController)parentItem.Tag; if (parentController.SplitDirection == GnosisSplitController.DirectionType.VERTICAL) { pnlParentSplitDirectionVertical1.Visibility = Visibility.Visible; pnlParentSplitDirectionHorizontal1.Visibility = Visibility.Collapsed; rdLeft1.IsEnabled = true; rdRight1.IsEnabled = true; if (currentController.ControlImplementation.Order == 1) { rdLeft1.IsChecked = true; rdRight1.IsChecked = false; } else { rdRight1.IsChecked = true; rdLeft1.IsChecked = false; } rdLeft1.IsEnabled = false; rdRight1.IsEnabled = false; } else { pnlParentSplitDirectionHorizontal1.Visibility = Visibility.Visible; pnlParentSplitDirectionVertical1.Visibility = Visibility.Collapsed; rdTop1.IsEnabled = true; rdBottom1.IsEnabled = true; if (currentController.ControlImplementation.Order == 1) { rdTop1.IsChecked = true; rdBottom1.IsChecked = false; } else { rdBottom1.IsChecked = true; rdTop1.IsChecked = false; } rdTop1.IsEnabled = false; rdBottom1.IsEnabled = false; } } }