Curl Global Community

Full Version: Shiftキーを使用すると、複数チェックボタンをクリックして選択するの問題について
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
前提条件:RecordGridの1つの列の中のチェックボタン


Shiftキーを押下と、複数のチェックボタンをクリックして選択し、問題がある。


PointerPressとe.shift?を使うとき、チェックボタンは動かない。


ValueChangedとe.shift?もうエラーを発生した。


ご指導・ご支援のほどよろしくお願いいたし舞う

申し訳ございませんが、状況がいまいち理解できなかったので、
サンプルなどを提供いただけますでしょうか?
RecordGridが1件あって、そのRecordGridの最初のカラムには各チェックボタンが含まれます。
複数の値(たとえ3番目~9番目のチェックボタン)を選択したい時、以下のステップを行います。

・3番目のチェックボタンをクリックし、Shiftを押下する。Shiftを押下したままで9番目のチェックボタンをクリックする。

希望結果:3番目~9番目のチェックボタンはチェックが付けられている。(選択されている状態)

しかし、そういう風に実施できなかったです。チェックボタンに [shift?] の関数が動かないのは原因ではないかと思っております。
(08-25-2011, 10:47 PM)coolpoy17 Wrote: [ -> ]RecordGridが1件あって、そのRecordGridの最初のカラムには各チェックボタンが含まれます。
複数の値(たとえ3番目~9番目のチェックボタン)を選択したい時、以下のステップを行います。

・3番目のチェックボタンをクリックし、Shiftを押下する。Shiftを押下したままで9番目のチェックボタンをクリックする。

希望結果:3番目~9番目のチェックボタンはチェックが付けられている。(選択されている状態)

しかし、そういう風に実施できなかったです。チェックボタンに [shift?] の関数が動かないのは原因ではないかと思っております。

可能かもしれませんが、SRGSkinnableCheckButtonUIのサブクラスを作らないと駄目でしょう。

今のSRGSkinnableCheckButtonUIでは、以下のコードがあります。

Code:
{method protected open {do-press-action}:void
    {if-non-null cell = {get-grid-cell self} then
        {if cell.can-update? and cell.has-grid-focus? then
            {super.do-press-action}
        }
    }
  }

(複数)選択している状態であれば、cell.has-grid-focus?はfalseだから、反応しないでしょう。

これは難しい…

確かにc-s様の言うように
Code:
{if cell.can-update? and cell.has-grid-focus? then
             {super.do-press-action}
}
のif文を外した場合は、Shift押しながらでもチェックボタンを押すことは出来ますね。

しかし、
Quote: ・3番目のチェックボタンをクリックし、Shiftを押下する。Shiftを押下したままで9番目のチェックボタンをクリックする。
希望結果:3番目~9番目のチェックボタンはチェックが付けられている。(選択されている状態)
の3~9のチェックボタンをチェック付けられた状態にするには作りこみが必要かと思います。
(元々そのような機能はもってないようですね。)

その場合、3~9番目というようにどこからどこまでをチェックつけるかというのは、
どこか別で管理する必要がありますね。

#
まあ、別で管理するとしてもチェックを付けられた、外されたというときにRecordSetとのデータとの
連携も考慮しないといけないし、なんかすげーめんどくさそうな気がします…