DisplayPort 1.1

やっと動き出した…のかな?

この記事出てからずっと楽しみにしてるんですけど。

…ディスプレイの無線化規格の方が先に商品化されてしまうとか、ない?


VCL for PHP

VCL for PHP :: PHP Web Application Development Framework
http://www.qadram.com/vcl4php/

来たよー。
期待age


Qooxdoo 0.6.6リリースと、0.7-alpha1

また新バージョン出ました。

今回の変更点は、バグフィックスとメモリリークの解消、IE7に関する問題の修正がメインのようです。

あと、Quickstartというビルド不要のシンプルなアプリケーションが追加されました。

quickstart/Application.js
このファイルを編集して開発することによって、ビルドの手間とかが省けるというもの。
まぁ、最適化がなされない分、ファイルそのものは大きくなりますけど。

Fixed tooltip support qx.ui.embed.GalleryList and qx.ui.embed.Gallery

GalleryListでtooltip試してみましたが、動かないような…?
まぁ、どちらにしろGalleryList全体でひとつのtooltipを出すような形になってしまうので、まだちょっと使えないかなぁ…

The only major API change in this release: qx.Class has been renamed to qx.Clazz to avoid a future name clash with 0.7.

あと、qx.Classをqx.Clazzにリネームする必要があるようなので注意。
今作ってたものは何も変更なしで動いたので良し。


qx.ui.embed.GalleryListの選択時にアイテムのインデックスを取得する

…方法は、ちょっと簡単にはいかない感じ…

GalleryListが、qx.ui.basic.Terminatorの派生クラスで、アイテム自体はdiv要素を並べているだけなのでインデックスとか取れないようだ。

とりあえず試行錯誤の記録。最終的には、numberプロパティとして設定した#01とかの文字をDOM要素から抜き出して判断するという、微妙な対応に。

var galleryList = new qx.ui.embed.GalleryList(galleryData);
galleryList.getManager().addEventListener("changeSelection", function(e) {
  alert(e.getData()); // DIV
  alert(e.getTarget()); // DomSelectionManager
  alert(e.getTarget().getItemHashCode( e.getTarget().getSelectedItem() )); // 550
  alert(e.getTarget().getSelectedItem().firstChild); // DIV
  alert(e.getTarget().getSelectedItem().firstChild.innerHTML); // #01
  alert(e.getTarget().getSelectedItem().childNodes[0].firstChild.nodeValue); // #01
  var num = Number( e.getTarget().getSelectedItem().childNodes[0].firstChild.nodeValue.match(/#0?([0-9]+)/i)[1] );
  …
});

うーむ、使いにくい。
VerticalLayoutに自分でオブジェクト突っ込んでいった方が楽かも…

マネージャにqx.manager.selection.DomSelectionManagerクラスが指定されているので、getItems()でdivリスト取得して、上から順にisEqual(var vItem1, var vItem2)とかした方が確実だとは思う。
遅いと思うけど。

ちなみに、リストの並べ替えもGalleryListでやろうとして地獄を見た。


qx.ui.embed.GalleryListのセルの高さ

var galleryList = new qx.ui.embed.GalleryList(galleryData);

galleryList.setThumbMaxHeight(120);

で調整可能。

qooxdoo_gallerylist00.png

qooxdoo_gallerylist01.png


prototype.jsのAjax.requestで&_=が付加される件

JSON文字列をキーなしで送りたいのに、POSTしたデータに_=とか余分なデータが付いてしまうので、サーバサイドが正しくJSONをパースできない現象があった。

var testAjax = new Ajax.Request(
    url,
    {
        method: 'post',
        parameters: jsonstr,
        asynchronous: true,
        onComplete: showResponse
});

prototype.jsのソースを見ると一目瞭然で、わざわざ付加している模様。

1.4.0

var parameters = this.options.parameters || '';
if (parameters.length > 0) parameters += '&_=';

1.5.0

params = Hash.toQueryString(params);
if (params && /Konqueror|Safari|KHTML/.test(navigator.userAgent)) params += '&_='

なるほど?Safariとかで必要なワケか。

とりあえず、QooxdooのRPCクラスと互換性のあるものをprototype.jsで、デバッグのために使いたかっただけなので、さっくり該当行削除して終了。
このパラメータがないとSafariではどうなるんだろう…自分で調べてみたりする気は全然起きないのですが。


qx.renderer.border.BorderPresets

毎回忘れるのでQooxdooのBorderのプリセットをメモしておく。
APIマニュアルにも載ってないので。
frontend/framework/source/class/qx/renderer/border/BorderPresets.jsのコードをもとに整形しただけ。

black

width: 1px
style: "solid"
color: "black"

white

width: 1px
style: "solid"
color: "white"

none

width: 0px
style: "none"

inset

width: 2px
style: "inset"

outset

width: 2px
style: "outset"

groove

width: 2px
style: "groove"

ridge

width: 2px
style: "ridge"

thinInset

width: 1px
style: "inset"

thinOutset

width: 1px
style: "outset"

verticalDivider

width: 1px
left-width: 0px
right-width: 0px
style: "inset"

horizontalDivider

width: 1px
top-width: 0px
bottom-width: 0px
style: "inset"

shadow

width: 1px
style: "solid"
color: "threedshadow"

lightShadow

width: 1px
style: "solid"
color: "threedlightshadow"

info

width: 1px
style: "solid"
color: "infotext"


Delphi for PHP

かつてBorland派だった身としては期待したい一品。
まぁBorland派と言ってもTurboC/TurboC++/C++Builderを愛用していただけでDelphi使いではなかったけど。

しかも

VCL for PHP はオープンソースライブラリとして公開されているもので、 Qooxdoo、Adodb、DynAPI、Smarty、Xajax、JSCalenda などのオープンソース PHP スクリプトやライブラリをベースとしており、コンポーネントアーキテクチャは100% PHP 5 で記述されている。

大好きなQooxdooまで。
買うしか。

ところでVCL for PHPのプロジェクトページって何もないのね。
ってか、まだ登録されたばっかり(Registered : 2007-02-16 02:05)か。


Qooxdooのqx.constant.Core.FLEX

0.6.3からqx.constantがなくなっていた。
移動先とか対応に関してはSDK版をダウンロードして以下のディレクトリを参照。

qooxdoo-0.6.3-sdk\frontend\framework\tool\migration\0.6.3\patches

で、FLEXは"1*"らしい。ふーん?


QooxdooのオブジェクトをJsonに変換する関数がイカす件

qx.io.Json
stringify (var v, Boolean beautify?)

Stringify a JavaScript value, producing a JSON text.
Parameters:
 v the object to serialize.
 beautify (default: false) whether to beautify the serialized string by adding some white space that indents objects and arrays.
Returns:
 the serialized object.

第一引数にはオブジェクト指定します。
第二引数に「美しくするかどうか」を指定できます。

とりあえず簡単にデモ。
Qooxdooのデモページを開いて、Bookmarklet的にアドレスにスクリプト書いて実行。

美しくしない(デフォルト) 

javascript:alert(qx.io.Json.stringify({hoge:1,uge:2,page:[1,2,3,4,5]},false));

json_stringify_false.png

美しくする

javascript:alert(qx.io.Json.stringify({hoge:1,uge:2,page:[1,2,3,4,5]},true));

json_stringify_true.png
おー。
見やすくて便利だ。