void updateRendering() { InputGroupViewModel model = DataContext as InputGroupViewModel; if (model.IsShadow) { mainGrid.Background = Application.Current.Resources.MergedDictionaries[0]["lightBrush"] as SolidColorBrush; border.BorderThickness = new Thickness(4); } else { mainGrid.Background = Application.Current.Resources.MergedDictionaries[0]["lightBrush"] as SolidColorBrush; border.BorderThickness = new Thickness(0); } }
private TileMenuItemViewModel recursiveCreateTileMenu(object inputModel, TileMenuItemViewModel parent) { TileMenuItemViewModel currentTileMenuItemViewModel = null; if (inputModel is AttributeGroupModel) { var inputGroupModel = inputModel as AttributeGroupModel; currentTileMenuItemViewModel = new TileMenuItemViewModel(parent); var inputGroupViewModel = new InputGroupViewModel(null, inputGroupModel); currentTileMenuItemViewModel.TileMenuContentViewModel = new InputGroupViewTileMenuContentViewModel { Name = inputGroupModel.RawName, InputGroupViewModel = inputGroupViewModel }; currentTileMenuItemViewModel.ChildrenNrColumns = (int)Math.Ceiling(inputGroupModel.InputModels.Count() / 10.0); currentTileMenuItemViewModel.ChildrenNrRows = (int)Math.Min(10.0, inputGroupModel.InputModels.Count()); currentTileMenuItemViewModel.Alignment = Alignment.Center; currentTileMenuItemViewModel.AttachPosition = AttachPosition.Right; var count = 0; foreach (var childInputModel in inputGroupModel.InputModels /*.OrderBy(am => am.RawName)*/) { var childTileMenu = recursiveCreateTileMenu(childInputModel, currentTileMenuItemViewModel); childTileMenu.Row = count; // TileMenuItemViewModel.Children.Count; childTileMenu.Column = currentTileMenuItemViewModel.ChildrenNrColumns - 1 - (int)Math.Floor((currentTileMenuItemViewModel.Children.Count - 1) / 10.0); childTileMenu.RowSpan = 1; childTileMenu.ColumnSpan = 1; //currentTileMenuItemViewModel.Children.Add(childTileMenu); count++; if (count == 10.0) { count = 0; } } } else if (inputModel is AttributeFieldModel) { currentTileMenuItemViewModel = new TileMenuItemViewModel(parent); var attributeTransformationViewModel = new AttributeTransformationViewModel(null, new AttributeTransformationModel(inputModel as AttributeFieldModel)); currentTileMenuItemViewModel.TileMenuContentViewModel = new InputFieldViewTileMenuContentViewModel { Name = (inputModel as AttributeFieldModel).RawName, AttributeTransformationViewModel = attributeTransformationViewModel }; } else if (inputModel is OperationTypeGroupModel) { var taskGroupModel = inputModel as OperationTypeGroupModel; currentTileMenuItemViewModel = new TileMenuItemViewModel(parent); currentTileMenuItemViewModel.TileMenuContentViewModel = new OperationTypeGroupTileMenuContentViewModel { Name = taskGroupModel.Name, OperationTypeGroupModel = taskGroupModel }; currentTileMenuItemViewModel.ChildrenNrColumns = (int)Math.Ceiling(taskGroupModel.OperationTypeModels.Count() / 10.0); currentTileMenuItemViewModel.ChildrenNrRows = (int)Math.Min(10.0, taskGroupModel.OperationTypeModels.Count()); currentTileMenuItemViewModel.Alignment = Alignment.Center; currentTileMenuItemViewModel.AttachPosition = AttachPosition.Right; var count = 0; foreach (var childInputModel in taskGroupModel.OperationTypeModels /*.OrderBy(am => am.RawName)*/) { var childTileMenu = recursiveCreateTileMenu(childInputModel, currentTileMenuItemViewModel); childTileMenu.Row = count; // TileMenuItemViewModel.Children.Count; childTileMenu.Column = currentTileMenuItemViewModel.ChildrenNrColumns - 1 - (int)Math.Floor((currentTileMenuItemViewModel.Children.Count - 1) / 10.0); childTileMenu.RowSpan = 1; childTileMenu.ColumnSpan = 1; //currentTileMenuItemViewModel.Children.Add(childTileMenu); count++; if (count == 10.0) { count = 0; } } } else if (inputModel is OperationTypeModel) { currentTileMenuItemViewModel = new TileMenuItemViewModel(parent); currentTileMenuItemViewModel.TileMenuContentViewModel = new OperationTypeTileMenuContentViewModel { Name = (inputModel as OperationTypeModel).Name, OperationTypeModel = inputModel as OperationTypeModel }; } parent.Children.Add(currentTileMenuItemViewModel); currentTileMenuItemViewModel.Alignment = Alignment.Center; currentTileMenuItemViewModel.AttachPosition = AttachPosition.Right; return(currentTileMenuItemViewModel); }