예제 #1
0
        /// <summary>
        /// 並列化サーバーへの接続コマンドが実行可能か調べます。
        /// </summary>
        private static void CanExecuteConnect(object sender, CanExecuteRelayEventArgs e)
        {
            var bonanza = Global.Bonanza;

            if (bonanza == null)
            {
                e.CanExecute = false;
                return;
            }

            e.CanExecute = (!bonanza.IsConnected && bonanza.AbortedReason == null);
        }
예제 #2
0
        /// <summary>
        /// Redo操作が可能か調べます。
        /// </summary>
        private static void CanExecuteRedo(object sender, CanExecuteRelayEventArgs e)
        {
            var element = e.Parameter as GLShogiElement;

            if (element == null)
            {
                throw new ArgumentNullException("element");
            }

            if (element.Board == null)
            {
                throw new InvalidOperationException(
                          "element.Boardがnullです。");
            }

            e.CanExecute = element.Board.CanRedo;
        }
예제 #3
0
        /// <summary>
        /// Redo操作が可能か調べます。
        /// </summary>
        private static void CanExecuteRedo(object sender, CanExecuteRelayEventArgs e)
        {
            var element = e.Parameter as GLShogiElement;

            if (element == null)
            {
                throw new ArgumentNullException("element");
            }

            if (element.Board == null)
            {
                throw new InvalidOperationException(
                          "element.Boardがnullです。");
            }

            // 編集可能でない場合は、Redo/Undoなども禁止します。
            if (element.EditMode != EditMode.Normal)
            {
                e.CanExecute = false;
                return;
            }

            e.CanExecute = element.Board.CanRedo;
        }