/// <summary> /// Builds an EventDimensionSelector for each event dimension. /// </summary> private void BuildEventDimensionsSelectors() { //reset gui EventDimensionList.Children.Clear(); //clear the the internal representation of the selected dimensions EventSelectionModel.GetInstance().Clear(); _listOfDimensionSelectors = new List<EventDimensionSelector>(); if (DBWorker.MetaData == null || DBWorker.MetaData.ListOfEventDimensions == null || DBWorker.MetaData.ListOfEventDimensions.Count == 0) { TextBlock textBlock = new TextBlock {Text = "No events available."}; EventDimensionList.Children.Add(textBlock); return; } //build EventDimensionSelector for each event dimension for (int i = 0; i < DBWorker.MetaData.ListOfEventDimensions.Count; i++) { //skip empty dimension if (DBWorker.MetaData.ListOfEventDimensions[i].IsEmptyDimension) continue; //create EventDimensionSelector for dimension int axis = i+1; EventDimensionSelector dimSelector = new EventDimensionSelector(axis); dimSelector.Init(DBWorker.MetaData.ListOfEventDimensions, DBWorker.MetaData.ListOfEventDimensions[i]); _listOfDimensionSelectors.Add(dimSelector); //add selector to panel EventDimensionList.Children.Add(dimSelector.DimensionSelectorGrid); } //build internal representation of the selected dimensions foreach (EventDimensionSelector dimSelector in _listOfDimensionSelectors) { int axis = dimSelector.Axis; Dimension dim = dimSelector.ShowedDimension; int levelDepth = dimSelector.GetSelectedLevelDepth(); int aggregationDepth = dimSelector.GetSelectedAggregationDepth(); List<DimensionContent> dimContent = dimSelector.GetSelectedDimensionContent(); EventSelectionModel.GetInstance().AddSelectedDimension(new SelectedDimension(axis, dim, levelDepth, aggregationDepth - 1, true, dimContent, true)); } InitEventListener(); }
/// <summary> /// Looks if the given dimension is also selected by another selector as the given one. /// <param name="showingDimensionSelector">Selector which currently show the dimension.</param> /// <param name="dimension">Dimension to look for.</param> /// </summary> private bool IsAlreadySelected(EventDimensionSelector showingDimensionSelector, Dimension dimension) { foreach (EventDimensionSelector dimSelector in _listOfDimensionSelectors) { if (dimSelector.DimensionComboBox.SelectedItem == dimension && dimSelector != showingDimensionSelector) { return true; } } return false; }