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;
            }
        }
        private void onItemClicked(MillingWorkspaceItem item)
        {
            if (!_addJoinsEnabled || !(item is MillingItem))
            {
                //nothing to do
                return;
            }

            if (_joinItemCandidate != null)
            {
                _joinItemCandidate.IsHighlighted = false;
            }

            if (item == _joinItemCandidate)
            {
                //selection was discarded
                _joinItemCandidate = null;
                return;
            }

            var pointProvider = item as MillingItem;

            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 never 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];
        }
Beispiel #4
0
 internal MillingJoin(MillingItem item1, MillingItem item2)
 {
     Item1 = item1;
     Item2 = item2;
 }