ちょいハマり覚え書き

6月 25th, 2013 No comments

まずは、javascriptでの再帰処理で・・・

ある親要素に帰属する複数の要素がある場合(例えば「組織」が持つ「拠点」)に、Ajax的なHTML表示には dwr.util.addRows(…)を使うと非常に「楽チン」なので多用していました。しかし、帰属する複数の要素が再帰的な場合(例えば「部署(部・課・係)」)には、rowCreator:記述内にさらにaddRows的な再帰処理を試してみても・・・ムリみたい。

で、となれば「より手作り側」に戻って、javascriptで、ゴリゴリ記述しました。・・・Listをループして各行の表示要素を作成しツツ、ソイツに子要素Listがあれば、己れ自身(function)を再帰的に呼び出す。・・・へへへっ、エレガントじゃん。ところが、「深さ1」から「深さ2」を数行表示して、本来は次の「深さ1」に戻って続くハズが、表示されない。

結論:javascriptはvar宣言した場所(scope)内で通用するが、var宣言しないと、グローバル変数とみなされちゃう。・・・・えっ!。宣言を省略すると範囲が大きくなるとは、感覚的に違和感があるなぁ。っま、仕様ならばしょうがない。つまり今回のミスは、再帰的なfunction内のループカウンタのiにvar宣言がなかったので、2回目以降はゼロからの再カウントをしていなかったらしいのだ!function内でvar宣言すると、アッサリと正常動作した。・・・とほほ。

参考にしたコンテンツ:ペントミノを解く ←シラーっと書いてありますが、納得できました。ありがとさんです。

script.aculo.usのsortableで

ほいで、その子要素の順序の指定(変更)は、いつものように「ツマんでポイ」のscript.aculo.usでカッチョ良く・・・と、アレ?・・・。ツマメナイ。何もエラーも出ていないゾ。で、これは5分で解決。コンテンツを作ってから設定をしろ・・・と、なんだそんなコトか。っでも、行追加したら改めて設定し直さないと追加行は「仲間外れ」になるようです。ちっちぇえハマリでしたが貴重な内容でした。

参考にしたコンテンツ:happy lie, happy life ピンポイントでありがたかったッス。

Categories: Mighty構想 Tags:

感情を表現しないという感情表現

3月 19th, 2013 No comments

昔なつかしい 「Kraftwerk」 を思いエガいたんです。

スタートは「なにやらパミュパミュ」。名前は度々聞いてはいました。イメージはピンクの大胆でキバツな服を着て、エラそうで、ワガママそうで、東京辺りの炉端焼き屋に出没して話題になるような外タレ。まったくの先入観で・・・。

ある日、ラジオから流れてくる音楽。ペライ・平坦な・薄い・・・。「初音ミク」と思っていたら「なにやらパミュパミュ」。最近の若いモンの音楽は、このタイプが多いですね。そりゃそういったコトをココロミタ/ヤカラも大勢いたケド。ここまでステレオタイプってのもノウ(脳・能)がないってゆうか何チューか。けっこうウンザリ。

そのムカシ。テクノの時代にもそんなムーブメントが、ありましたな。大御所では「Y(ellow)M(agic)O(rchestra) 」ですかね。私は好きじゃなかったケド。お空の遥かカナタの遠いトオーイ、ムーディーな楽曲で、リアリティーを感じる事が出来ませんデシタ。「P-Model」ってのが、モノすごく地べたで蠢(ウゴメ)く、ヒトを感じさせてくれたのですが、冷静さを取り戻したパンカーが、流行のテクノに乗っかった感は否めず。テクノの必然性がねエ。「ヒカシュー」ってのが、その点では感情を抑えたうえでの感情表現?(抑えてナイカ!)。っま、ブレンド加減は「タマ」テイストですかね。

で、「Kraftwerk」。ビート感はあるにせよ無味乾燥なサウンドに、空虚な歌唱。でも「I want to be a machine」だぜ。「We are the Robots」だぜ。

こういった手法で、一番アナログで・揺らぎがあって・強弱のある>「男女の好きだ嫌いだ」を言われてもねエ。

Categories: なんだかな Tags:

ポップアップ・ダイアログを画面中央に出す

11月 27th, 2012 No comments

ちょいハマったのですが、データの登録・修正・削除で、ポップアップ・ダイアログを「出して、引っ込めて」って見栄えが良いですよね。元の画面もソックリ残るのでユーザーフレンドリです。script.aculo.usを使って、ツマんで移動出来たりして、カッコ良いです。

そこでカユイ点が出た。

検索結果でリストをドーッと出す、縦スクロールして、行にある修正や削除のボタンをクリック・・・で、ダイアログは・・・上え〜の方にあるのです。そりゃそうだ、CSSでposition:absolute;で設定されているtopやleftで出現しまさあね。

できれば、見ている画面の真ん中に出したい・・・。

  • (浮かんだアイデア:1)押されたボタンの位置(高さ)を割り出して、その横にダイアログを出したら?ドウヨ。

親要素が違ったり・・・で、上手く行かない。(回想すると、styleの取得に失敗していたのカモ?)

  • (浮かんだアイデア:2)押された時のマウスの座標から、その横にダイアログを出したら?ドウヨ。

パラメータにeventを追加しevent.pageYで位置を捕捉、prototype.jsのElement.setStyleでブツケてあげたら、出来たぜィ!!!。選択された行の真下に「まるでモノサシを当てたように出現する」いい感じじゃないですか!しばし感激。

しかし、画面上でのクリックは良いが、画面下でクリックすると、ダイアログは画面下から場外乱闘になる。何かイヤだなぁ。

  • (浮かんだアイデア)上ので取りあえず「それなり」にはなったので、余裕を持って「再調査」

すると、すたら日記さんを発見。なるほど、ページの上から画面の上までの距離という発想で考えれば良かったのですね。これならeventも要らないや!

これが(スクロールしていても)画面のド真ん中(あたり)に、ドカンとダイアログを出現させる関数じゃ!っま、画面の縦・横を2で割るのは中心点になる訳だ。で、さらに出現するダイアログの大きさ分を補正してあげている訳だね。スバラシイ。

宮崎さん本当に有難うさんデス。

function setDialogFormPosition() {
// これは文書上端から表示上端までのなどの判断
sclTop=document.body.scrollTop || document.documentElement.scrollTop;
Element.setStyle(“dialogForm”,{
‘top’: sclTop + (document.documentElement.clientHeight / 2 – 150) + ‘px’,
‘left’ : (document.documentElement.clientWidth / 2 – 300) +’px’
});
}

Categories: Mighty構想 Tags: