/*********************************************************************/ /// <summary> /// Wird bei Klick auf einen Button für den Ansichtswechsel aufgerufen /// und führt Ansichtswechsel durch /// </summary> private void viewToggleButton_Checked(object sender, RoutedEventArgs e) { E_VIEW selectedView = E_VIEW.E_TABLE_VIEW; // Ansicht auf Tabellenansicht wechseln if (sender == viewTableBtn) { selectedView = E_VIEW.E_TABLE_VIEW; } // Ansicht auf Baum Interaktiv Ansicht wechseln else if (sender == viewTreeInteractivBtn) { selectedView = E_VIEW.E_TREE_INTERACTIVE_VIEW; } // Ansicht auf Baum Automatisch Ansicht wechseln else if (sender == viewTreeAutomaticBtn) { selectedView = E_VIEW.E_TREE_AUTOMATIC_VIEW; } setViewVisibility(selectedView); mBusinessLogic.changeView(selectedView); if ((selectedView == E_VIEW.E_TREE_INTERACTIVE_VIEW) || (selectedView == E_VIEW.E_TREE_AUTOMATIC_VIEW)) { mGraph = mBusinessLogic.getGraph(); NotifyPropertyChanged("VisualGraph"); NotifyPropertyChanged("vertexTooltip"); } graph.DataContext = this; }
/*********************************************************************/ /// <summary> /// Setzt die Sichtbarkeit einer Ansicht /// </summary> /// <param name="view">Ansicht die Angezeigt werden soll</param> private void setViewVisibility(E_VIEW view) { bool tableVisibility = false; bool treeInteractiveVisibility = false; bool treeAutomaticVisibility = false; switch (view) { case E_VIEW.E_TABLE_VIEW: tableVisibility = true; break; case E_VIEW.E_TREE_INTERACTIVE_VIEW: treeInteractiveVisibility = true; break; case E_VIEW.E_TREE_AUTOMATIC_VIEW: treeAutomaticVisibility = true; break; } // Ansichtskomponente (Tabelle/Graph) ein und ausblenden viewTable.Visible = tableVisibility; viewTreeInteractiv.Visible = false; if (view == E_VIEW.E_TREE_INTERACTIVE_VIEW || view == E_VIEW.E_TREE_AUTOMATIC_VIEW) { viewTreeInteractiv.Visible = true; } // Im Ribbon die Ansichtsspezifischen Gruppen ein und Ausblenden grpTable.Visibility = bool2Visibility(tableVisibility); grpTreeInteractive.Visibility = bool2Visibility(treeInteractiveVisibility); grpTreeAutomatic.Visibility = bool2Visibility(treeAutomaticVisibility); // Ansichtsbuttons auswählen viewTableBtn.IsChecked = tableVisibility; viewTreeInteractivBtn.IsChecked = treeInteractiveVisibility; viewTreeAutomaticBtn.IsChecked = treeAutomaticVisibility; // aktive View merken mCurrentView = view; }
/*********************************************************************/ /// <summary> /// Der Nutzer hat auf die angegebene Ansicht gewechselt /// </summary> /// <param name="selectedView">View auf die gewechselt wurde</param> public void changeView(E_VIEW selectedView) { switch (selectedView) { case E_VIEW.E_TABLE_VIEW: // wir machen nichts break; case E_VIEW.E_TREE_INTERACTIVE_VIEW: case E_VIEW.E_TREE_AUTOMATIC_VIEW: mTreeLogic.setTreeForView(selectedView); mTreeLogic.updateVertexValues(); break; } }
/*********************************************************************/ /// <summary> /// Der Nutzer hat auf die angegebene Ansicht gewechselt /// </summary> /// <param name="selectedView">View auf die gewechselt wurde</param> internal void setTreeForView(E_VIEW selectedView) { // Je nach View den Entsprechenden Baum aktive setzen if (selectedView == E_VIEW.E_TREE_INTERACTIVE_VIEW) { mTreeHandler.setActiveTree(E_TREE_TYPE.E_TREE_INTERACTIVE); // wenn in der Tabelle Attribute hinzugefügt oder gelöscht // wurden, muss der Baum interaktiven Ansicht reseted werden if (mbInteractiveTreeNeedReset == true) { resetActiveTree(); mbInteractiveTreeNeedReset = false; } } else { mTreeHandler.setActiveTree(E_TREE_TYPE.E_TREE_AUTOMATIC); mTDIDTAlgorithm.createGraph(); } }