Пример #1
0
        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);
        }
Пример #2
0
        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;
                }
            }
        }
Пример #3
0
 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;
         }
     }
 }
Пример #4
0
        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;
        }
Пример #5
0
        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;
                }
            }
        }