private void onItemClicked(WorkspaceItem item) { if (!_addJoinsEnabled || !(item is PointProviderItem)) //nothing to do return; if (_joinItemCandidate != null) _joinItemCandidate.IsHighlighted = false; if (item == _joinItemCandidate) { //selection was discarded _joinItemCandidate = null; return; } var pointProvider = item as PointProviderItem; pointProvider.IsHighlighted = true; if (_joinItemCandidate == null || pointProvider is EntryPoint) { //first item is set (entry point has to be first) _joinItemCandidate = pointProvider; return; } Workspace.SetJoin(_joinItemCandidate, pointProvider); _joinItemCandidate = pointProvider; }
private void ModeSwitch_Checked(object sender, RoutedEventArgs e) { if (_currentMode == WorkspaceMode.Idle) //idle mode is neve checked _currentMode = WorkspaceMode.JoinMode; switch (_currentMode) { case WorkspaceMode.JoinMode: _addJoinsEnabled = true; _joinItemCandidate = null; Workspace.ScaffoldModeEnabled = false; break; case WorkspaceMode.ScaffoldMode: Workspace.ScaffoldModeEnabled = true; _addJoinsEnabled = false; _joinItemCandidate = null; break; default: throw new NotImplementedException("Workspace mode"); } ModeSwitch.Content = Modes[(int)_currentMode - 1]; }
private void ModeSwitch_Unchecked(object sender, RoutedEventArgs e) { _addJoinsEnabled = false; if (_joinItemCandidate != null) { _joinItemCandidate.IsHighlighted = false; } _joinItemCandidate = null; Workspace.ScaffoldModeEnabled = false; var nextMode = (int)(_currentMode + 1); if (nextMode >= (int)WorkspaceMode.LastMode) { nextMode = 0; } _currentMode = (WorkspaceMode)nextMode; if (_currentMode == WorkspaceMode.Idle) { ModeSwitch.Content = Modes[0]; } else { //recheck the switch ModeSwitch.IsChecked = true; } }