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];
        }
Esempio n. 3
0
        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;
            }
        }