Example #1
0
        public SourceControlViewViewModel(
            VBE vbe,
            RubberduckParserState state,
            ISinks sinks,
            ISourceControlProviderFactory providerFactory,
            IFolderBrowserFactory folderBrowserFactory,
            IConfigProvider <SourceControlSettings> configService,
            IEnumerable <IControlView> views,
            ICodePaneWrapperFactory wrapperFactory,
            IMessageBox messageBox)
        {
            _vbe                  = vbe;
            _state                = state;
            _sinks                = sinks;
            _providerFactory      = providerFactory;
            _folderBrowserFactory = folderBrowserFactory;

            _state.StateChanged += _state_StateChanged;

            _configService  = configService;
            _config         = _configService.Create();
            _wrapperFactory = wrapperFactory;
            _messageBox     = messageBox;

            _initRepoCommand            = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => InitRepo(), _ => _vbe.VBProjects.Count != 0);
            _openRepoCommand            = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => OpenRepo(), _ => _vbe.VBProjects.Count != 0);
            _cloneRepoCommand           = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => ShowCloneRepoGrid(), _ => _vbe.VBProjects.Count != 0);
            _publishRepoCommand         = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => ShowPublishRepoGrid(), _ => _vbe.VBProjects.Count != 0 && Provider != null);
            _refreshCommand             = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => Refresh());
            _dismissErrorMessageCommand = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => DismissErrorMessage());
            _showFilePickerCommand      = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => ShowFilePicker());
            _loginGridOkCommand         = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => CloseLoginGrid(), text => !string.IsNullOrEmpty((string)text));
            _loginGridCancelCommand     = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => CloseLoginGrid());

            _cloneRepoOkButtonCommand     = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => CloneRepo(), _ => !IsNotValidCloneRemotePath);
            _cloneRepoCancelButtonCommand = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => CloseCloneRepoGrid());

            _publishRepoOkButtonCommand     = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => PublishRepo(), _ => !IsNotValidPublishRemotePath);
            _publishRepoCancelButtonCommand = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => ClosePublishRepoGrid());

            _openCommandPromptCommand = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => OpenCommandPrompt());

            _sinks.ComponentAdded   += ComponentAdded;
            _sinks.ComponentRemoved += ComponentRemoved;
            _sinks.ComponentRenamed += ComponentRenamed;
            _sinks.ProjectRemoved   += ProjectRemoved;

            TabItems = new ObservableCollection <IControlView>(views);
            SetTab(SourceControlTab.Changes);

            Status = RubberduckUI.Offline;

            ListenForErrors();

            _fileSystemWatcher = new FileSystemWatcher();
        }
        public RubberduckCommandBar(RubberduckParserState state, VBE vbe, ISinks sinks, IShowParserErrorsCommand command)
        {
            _state               = state;
            _vbe                 = vbe;
            _sinks               = sinks;
            _command             = command;
            _state.StateChanged += State_StateChanged;
            Initialize();

            _sinks.ProjectRemoved     += ProjectRemoved;
            _sinks.ComponentActivated += ComponentActivated;
            _sinks.ComponentSelected  += ComponentSelected;
        }
        public RubberduckParserState(ISinks sinks)
        {
            var values = Enum.GetValues(typeof(ParserState));

            foreach (var value in values)
            {
                States.Add((ParserState)value);
            }

            sinks.ProjectAdded   += Sinks_ProjectAdded;
            sinks.ProjectRemoved += Sinks_ProjectRemoved;
            sinks.ProjectRenamed += Sinks_ProjectRenamed;

            sinks.ComponentAdded   += Sinks_ComponentAdded;
            sinks.ComponentRemoved += Sinks_ComponentRemoved;
            sinks.ComponentRenamed += Sinks_ComponentRenamed;
        }