コード例 #1
0
ファイル: CreateBranchDialog.cs プロジェクト: kiple/gitter
        /// <summary>Create <see cref="CreateBranchDialog"/>.</summary>
        /// <param name="repository"><see cref="Repository"/> to create <see cref="Branch"/> in.</param>
        /// <exception cref="ArgumentNullException"><paramref name="repository"/> == <c>null</c>.</exception>
        public CreateBranchDialog(Repository repository)
        {
            Verify.Argument.IsNotNull(repository, nameof(repository));

            _repository = repository;

            InitializeComponent();
            Localize();

            var inputs = new IUserInputSource[]
            {
                BranchName       = new TextBoxInputSource(_txtName),
                StartingRevision = new ControlInputSource(_txtRevision),
                Checkout         = new CheckBoxInputSource(_chkCheckoutAfterCreation),
                Orphan           = new CheckBoxInputSource(_chkOrphan),
                CreateReflog     = new CheckBoxInputSource(_chkCreateReflog),
                TrackingMode     = new RadioButtonGroupInputSource <BranchTrackingMode>(
                    new[]
                {
                    Tuple.Create(_trackingDefault, BranchTrackingMode.Default),
                    Tuple.Create(_trackingTrack, BranchTrackingMode.Tracking),
                    Tuple.Create(_trackingDoNotTrack, BranchTrackingMode.NotTracking),
                }),
            };

            ErrorNotifier = new UserInputErrorNotifier(NotificationService, inputs);

            SetupReferenceNameInputBox(_txtName, ReferenceType.LocalBranch);

            var logallrefupdates = _repository.Configuration.TryGetParameterValue(GitConstants.CoreLogAllRefUpdatesParameter);

            if (logallrefupdates != null && logallrefupdates == "true")
            {
                _chkCreateReflog.Checked = true;
                _chkCreateReflog.Enabled = false;
            }

            ToolTipService.Register(_chkCheckoutAfterCreation, Resources.TipCheckoutAfterCreation);
            ToolTipService.Register(_chkOrphan, Resources.TipOrphan);
            ToolTipService.Register(_chkCreateReflog, Resources.TipReflog);
            ToolTipService.Register(_trackingTrack, Resources.TipTrack);

            _txtRevision.References.LoadData(
                _repository,
                ReferenceType.Reference,
                GlobalBehavior.GroupReferences,
                GlobalBehavior.GroupRemoteBranches);
            _txtRevision.References.Items[0].IsExpanded = true;

            GitterApplication.FontManager.InputFont.Apply(_txtName, _txtRevision);
            GlobalBehavior.SetupAutoCompleteSource(_txtRevision, _repository, ReferenceType.Branch);

            _controller = new CreateBranchController(repository)
            {
                View = this
            };
        }