/// <summary> /// Saves the new edited metadata from the textboxes in the metaworker /// </summary> /// <author>Bernhard Bruns</author> private bool SaveNewMetadataInMetaWorker() { int dimensionNumber = 0; foreach (Dimension dimension in DBWorker.MetaData.ListOfFactDimensions) { if (!dimension.IsEmptyDimension && dimension.Dimensionname != "--no selection--") { var textBox = (TextBox)DimensionGrid.FindName("Dimension" + (dimensionNumber + 1) + "newName"); if (textBox != null) { dimension.DimensionnameChanged = textBox.Text; } if (dimension.Dimensionname == "") { return(false); } int levelNumber = 0; foreach (Dimension cDim in dimension.GetLevel()) { if (levelNumber >= 0) { TextBox temporaryTextBox = (TextBox)DimensionGrid.FindName("level" + (dimensionNumber + 1) + "_" + levelNumber + "newName"); if (temporaryTextBox != null && !string.IsNullOrEmpty(temporaryTextBox.Text)) { cDim.LevelChanged = temporaryTextBox.Text; } else { return(false); } } levelNumber++; } dimensionNumber++; } } return(true); }
/// <summary> /// Creates for each dimension a column with textboxes(dimension, level) where the metadata can be modified /// </summary> /// <author>Jannik Arndt, Bernhard Bruns</author> private void LoadDimensionMetaData() { DimensionGrid.Children.Clear(); DimensionGrid.ColumnDefinitions.Clear(); foreach (string registeredName in _registeredNames) { DimensionGrid.UnregisterName(registeredName); } _registeredNames.Clear(); // Load the columnnames of the event table into the combobox to let the user decide which one to use as a classifier ClassifierComboBox.ItemsSource = DBWorker.MetaData.ListOfEventsTableColumnNames; if (DBWorker.MetaData.ListOfEventsTableColumnNames.Contains(DBWorker.MetaData.EventClassifier)) { ClassifierComboBox.SelectedItem = DBWorker.MetaData.EventClassifier; } else if (DBWorker.MetaData.ListOfEventsTableColumnNames.Count > 0) { ClassifierComboBox.SelectedIndex = 0; } int dimensionNumber = 0; foreach (Dimension dimension in DBWorker.MetaData.ListOfFactDimensions) { DimensionGrid.ColumnDefinitions.Add(new ColumnDefinition()); if (!dimension.IsEmptyDimension && dimension.Name != "--no selection--") { StackPanel dimensionPanel = new StackPanel(); dimensionPanel.SetValue(Grid.ColumnProperty, dimensionNumber); dimensionPanel.Width = 150; dimensionPanel.Children.Add(InterfaceHelpers.CreateTextBlock("DIMENSION " + (dimensionNumber + 1), "Emphasis", bottom: 8)); dimensionPanel.Children.Add(InterfaceHelpers.CreateTextBlock("Original Name: \n" + dimension.Name, bottom: 8)); dimensionPanel.Children.Add(InterfaceHelpers.CreateTextBlock("New Name:", bottom: 8)); TextBox dimensionNumberTextBox = InterfaceHelpers.CreateTextBox("Dimension" + (dimensionNumber + 1) + "newName", dimension.Dimensionname, bottom: 8); dimensionNumberTextBox.GotKeyboardFocus += SelectTextInTextbox; DimensionGrid.RegisterName(dimensionNumberTextBox.Name, dimensionNumberTextBox); _registeredNames.Add(dimensionNumberTextBox.Name); dimensionPanel.Children.Add(dimensionNumberTextBox); dimensionPanel.Children.Add(InterfaceHelpers.CreateTextBlock("LEVELS", "Emphasis", top: 20, bottom: 8)); int j = 0; foreach (Dimension cDim in dimension.GetLevel()) { if (j >= 0) { dimensionPanel.Children.Add(InterfaceHelpers.CreateTextBlock(cDim.ToTable, bottom: 8)); TextBox txtLevel = InterfaceHelpers.CreateTextBox("level" + (dimensionNumber + 1) + "_" + j + "newName", cDim.Level, bottom: 15); txtLevel.GotKeyboardFocus += SelectTextInTextbox; DimensionGrid.RegisterName(txtLevel.Name, txtLevel); _registeredNames.Add(txtLevel.Name); dimensionPanel.Children.Add(txtLevel); } j++; } DimensionGrid.Children.Add(dimensionPanel); dimensionNumber++; } } if (DBConnectionHelpers.DefaultEventClassifierIsSelected) { ModernDialog.ShowMessage("Auto selected " + ClassifierComboBox.SelectedItem + " as classifier.", "Metadata", MessageBoxButton.OK); DBConnectionHelpers.DefaultEventClassifierIsSelected = false; } }