AzureaScript? ビュー関係の機能追加提案 †
- ページ: 目安箱
- 投稿者: mutaguchi?
- 優先順位: 低
- 状態: 完了
- カテゴリー: AzureaScript?
- 投稿日: 2011-02-26 (土) 12:03:04
- バージョン:
メッセージ †
たくさん提案してすみません。
適当に後回しにしていただいて結構です。
・System.views.clearStatus(id)
指定IDのstatusをカレントビューから消去。 → 済
・System.views.clearAllStatuses?()
カレントビューのすべてのステータスを消去。 → 済
・System.views.setFocus()
ビューにフォーカスを移動。 → 済
・System.views.currentViewName?
currentViewでカレントビューの種類は分かるが、検索なら検索クエリ、ユーザータイムラインならユーザー名などを取得したい。
currentViewプロパティに機能をまとめて、viewオブジェクトを返すようにしたほうがいいかも?
今更ですがSystem.views.openView(kind, name)があればopen*系のメソッドを増やさなくて良かったですね^^; → currentViewへいろいろお引っ越ししてviewNameにしました
・System.views.onShow(viewKind,viewName)
ビューを切り替えた時に発生。(イベントハンドラ)
・System.views.onSelectStatus?(id)
発言を選択したときに発生。(イベントハンドラ)
- onSelectStatus?はパフォーマンスがちょっと不安かなぁ -- tmyt?
- view.showなんですが、addEventListener?するにはviewオブジェクトを何らかの形で取得しないといけないですよね。すべてのビューに対して同じ操作を割り付けたい場合はどうすればいいでしょう? -- mutaguchi?
- すべてのビューに有効なshowはいまのとこ実装されてないです。すべてのビューに対して有効なイベントも必要ですか? -- tmyt?
- そうですね、「検索ビューに関しては常にいつもこういう動作をさせたい」などがあるので、当初の提案のようなイベントがあると助かりますねー。 -- mutaguchi?
- それとview.show中で、現在showされているviewを参照するいい方法ってあります?var users=["aaa","bbb","ccc"];for(var i=0;i<users.length;i++){var view=System.views.openViewBackground?(5,users[i]);view.addEventListener?("show", function(){view.callRefresh();});}とかだとうまく動きません… -- mutaguchi?
- Backgroundだと実際にビューが生成されてないのでRefreshされてないだけかも・・・ -- tmyt?
- openViewにしてもだめですねー。というか、view.callRefresh();の「view」がいつも最後に参照した値になってしまうんですよね。つまり"aaa"をshowしたときも"ccc"のビューをリフレッシュしてしまう。view1,view2...のように全部別の変数に入れれば大丈夫なんですが、あまりスマートじゃないですね。何かいい方法ありますかねー?tempView.addEventListener?("show", function(view){});みたいにできればいいのかもですがこれはこれで冗長で気持ち悪いかな。やはりSystem.views.addEventListener?("show",function(view){})があるとすっきりしそう。) -- mutaguchi?
- System.views.addEventListener?の追加は別問題として、view.callRefresh();が正しく実行されないのは問題ですね、調べます -- tmyt?
- views.showも追加して、イベントの引数にView Objectが飛んでくるように変更しました -- tmyt?
- 乙です。view.show(view)は若干冗長な気がしますがまあ仕方ないですね。しかしこの問題、view.showだけの問題なんだろうか?詳しくはみてないですが、イベントが発生したオブジェクトをイベント内から特定できなくて困る状況はほかにもありそう。どのイベントでもthisキーワードとかで取得できるようにするとかが必要なのかも? -- mutaguchi?
- 今ざっと見てたんですが、viewオブジェクト以外はイベント発生元のオブジェクトが組み込みオブジェクトからすぐにたどれるので問題なさげ。ただしviewオブジェクトはshowイベント以外でも同じ問題が発生する予感です。viewオブジェクトだけ対処するか、今後ほかのオブジェクトにイベントを追加することを考えて汎用的な方法を用意しておくかはおまかせします。 -- mutaguchi?
- イベントからは発生元をthisでたどれるようにするのがJavascriptの流儀としては正しそうですよねえ、ちょっと実装考えてみます。 -- tmyt?
- とりあえずイベント発生元をthisでたどれるようにしてみました。view.show(view)の引数は必要なくなった感・・・ -- tmyt?