2012-09-11

GWT:TextAreaでエンターキーのイベントを検知し処理する

「TextAreaで文字入力を受け付けて、改行と同時にその内容を取り込んでクリアする」というツイッターみたいなプログラムを作成する場合にちょっとハマったので、メモ書きしておきます。

キーイベントの発生順番
TextAreaでのキーイベントの発生順序は下記の通りになりますが、TextAreaにその文字が入力されるタイミングに注意する必要があります。
  1. Down ・・・ 入力前発生
  2. Press ・・・ 入力前発生
  3. Up ・・・ 入力後発生
例えば、改行時にTextAreaの内容をクリアしたい場合、1,2のタイミングでは改行コードはクリア後にTextAreaに入ってしまいます。必ず3のタイミングで処理する必要があります。

キーコードの検知
現在入力されたキーのコードを検知するには、
  • KeyPressEvent
でしか検知できません。

KeyPressとKeyUpを組み合わせる
KeyPressEventでキーの内容を検知し、KeyUpEventでTextAreaの中身を取ってくる(消す)という手順が必要です。例えば以下の様な記述になります。
       @UiHandler("textArea")
        void onEnterKey(KeyPressEvent e) {
                System.out.println("Press");
                if (e.getCharCode() == KeyCodes.KEY_ENTER) {
                        isEnter= true;
                }
       }

        @UiHandler("textArea")
        void onUpKey(KeyUpEvent e) {
                System.out.println("Up");
                if (isEnter) {
                        /*ここでなんらかの処理をする*/
                        isEnter=false;
                }

        }
なお、上記のコードはUiBinder利用時の記述です。

2012-09-09

参加報告:文章表現・ライティングの授業設計ワークショップ


現在、学科で初年次教育系の科目(いわゆる基礎ゼミ)の取りまとめ役になっているのと、個人的にライティング支援システムの研究をやっている(やろうとしている)ので、情報収集のため河合塾FDセミナーに参加してきました。以下、メモ書きです。

対象とする学生のレディネスはどうか?
どの学年でどのようなスキルを持った学生を対象としているのか?そのレディネスを探るのは重要でしょう。プレテストのようなものでチェックするのもひとつの手だと思いますが、それを容易に把握できるシステムが重要になってくるかもですね。

何を学ばせるのか?
教える側としては「教えたいこと」は山ほどあり、そして多様。しかし時間が限られる。この制約でどうやって学習目標を設定して、カリキュラムの中で取り入れていくか、、、教員間で共有すべき問題でしょう。事前にチェックするというのは1つのアプローチですね。本セミナーでは
  • 語彙文法志向
  • 学びの基礎志向
  • 実用志向
  • 読解志向
  • 学術志向
  • グループワーク志向
という6つの分類で、ニーズ分析を図る方法が紹介されていました。この中で優先順位を決めるのはありかと思います。

ライティングにおける3つの教育スタイル
セミナーでは講義のアプローチとして以下の3つを紹介していました。教育工学の世界ではよく知られたことですが、「ライティング」という科目にどう当てはめていくのか?をグループワークでまとめました。

(1)教えるタイプ(行動主義×伝統的)
従来型のスタイルですが、ライティングの視点から考えた時
  • レポートと感想文との違いを明示する
  • サンプルを見せる
というのは、有効な方法のようです。

(2)気づかせるタイプ(認知主義×協同的)
グループ学習を意識したアプローチですが、その中で
  • 誤りを学生に修正させる
というアプローチが有効のようです。学生自身が書いた文章をお互いに修正させあったり、誤りのあるレポートに対してグループ内で修正させるというやり方が考えられます。

(3)気づき合うタイプ(構成主義×協調的)
これはどちらかというと高度な手法で、学生にもスキルが求められます。基本的には学生グループに主体的に学習させるもので、例えば
  • テーマ決め
  • KJ法やマップなどによる意見・データの集約と分析
  • 相互によるチェック
などレポートライティングのプロセスを学生自身にすべて行わせます。初年次の学生には難しそうですが、実はこれに類似したことを実践されている先生もおり、やり方次第で十分可能のようです。

これらを組合わせて講義にどう活かしていくか
ライティング講義においては、上記の3つはどれか1つに限定するものではなく、いろいろ組合わせていくことになります。ただ実際(2)や(3)というのをやろうと思ったら難しい、、、ここのところをどうするか?が個人的には一番知りたいところなのですが、残念ながら本セミナーではこの点について言及する機会がなく、個人的には残念なところでした。