2011/12/24

UMTP L1, L2勉強用書籍

僕UMLが読める&かける人だよベンダー認定資格
http://www.umtp-japan.org/

L1,については基本的に、各図の読み方、記号の意味などの基礎知識で対応できる問題が多い。
なので、下記の本くらいの知識を押さえておけば問題ない。

[改訂版] UMLモデリング技能認定試験<入門レベル(L1)>問題集 -UML2.0対応
http://www.amazon.co.jp/dp/4774132454

それでも不安になるという私のような小物諸氏には、
問題数が魅力の下記黒本。

[黒本]
徹底攻略UMLモデリング技能認定試験問題集―L1(T1/T2)対応
http://www.amazon.co.jp/dp/4844324829

徹底攻略UMLモデリング技能認定試験問題集 L2対応 (ITプロ/ITエンジニアのための徹底攻略)
http://www.amazon.co.jp/dp/4844326627

ただし、問題が洗練されていないところに難がある。
問題文が説明不足で、回答を一つに絞り込むことが難しいことがある。
難易度も、私見では高めに設定されている。

問題をこなして自分の知識を確かめて、
穏やかな気持ちで本番を迎えるためのもの、とのある種の割り切りで活用するのがいいのではないか

mx.Controls.AdvancedDataGridのヘッダソートフィールドを非表示にする

sortExpertMode="true"する。
もちろんプロパティ名の通り、ソートフィールドの表示制御が元来の目的のプロパティではない。

sortExpertMode プロパティを true に設定すると、最初の列を選択した後に Control キーを使用して複数の列を選択し、ソートを実行できます。

ref. ActionScript3.0 リファレンスガイド

http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/mx/controls/AdvancedDataGridBaseEx.html#sortExpertMode

表示:

 <mx:AdvancedDataGrid id="data" designViewDataType="tree" dataProvider="{contents}">
 <mx:columns>
 <mx:AdvancedDataGridColumn headerText="ID" dataField="id" draggable="true"/>
 <mx:AdvancedDataGridColumn headerText="Name" dataField="name"/>
 <mx:AdvancedDataGridColumn headerText="City" dataField="city" labelFunction="labelCityFunction"/>
 </mx:columns>
 </mx:AdvancedDataGrid>
非表示:

 <mx:AdvancedDataGrid id="data" designViewDataType="tree" dataProvider="{contents}"
  sortExpertMode="true">
 <mx:columns>
 <mx:AdvancedDataGridColumn headerText="ID" dataField="id" draggable="true"/>
 <mx:AdvancedDataGridColumn headerText="Name" dataField="name"/>
 <mx:AdvancedDataGridColumn headerText="City" dataField="city" labelFunction="labelCityFunction"/>
 </mx:columns>
 </mx:AdvancedDataGrid>

BlazeDSおぼえがき RemoteObjectのBoolean型のアクセサ命名

1. SwfとJavaのRemote Objectの型変換におけるBooleanの特徴。
オフィシャルな情報はこちら。
http://help.adobe.com/ja_JP/Flex/4.0/AccessingData/WS2db454920e96a9e51e63e3d11c0bf69084-7fda.html

↑によると、AS3のBooleanとJavaのjava.lang.Booleanは普通に疎通できるが、
アクセサメソッドの命名について、他の型と若干の開きがある。

StringとIntegerでの命名対応は下記の通り。
//-----------------------------
Java:
private String param;
public String getParam() ;
public void setParam(String param);

AS:
public param:String
-------------------------------//

BooleanでJava側のアクセサをis形式で書いた場合。
AS側ではisをのぞいたメンバ名をターゲットにバインドしようとしてくる。
//-----------------------------
Java:
private Boolean isFoo;
public Boolean isFoo();
public void setFoo(Boolean foo);

AS:
public foo:Boolean;
------------------------------//

BooleanでJava側のアクセサをゲッターセッターで無理矢理
書けばisFooにバインドしにいってくれる。
アクセサ名で判断してんの?
//-----------------------------
Java:
private Boolean isFoo;   (←冷静に考えてbooleanに対してこの変数命名がおかしかった 2011/5/11追記 )
public Boolean getIsFoo();
public void setIsFoo(Boolean foo);

AS:
public isfoo:Boolean;
------------------------------//

ちなみに、HibernateではいてくれるEntityで、
セッターに戻り値があったりすると認識してくれません。
//--------------------------

public String setFoo(String foo);
----------------------------//

上記理由等でRemote Objectの型変換に失敗した場合は、
デバッグ用のFlashを使っていればログにエラー出力が出ます。

AIR with RASCUT

FlexSDKでmxmlをAIR向けにコンパイルするときは、通常"amxmlc"を使うけど、
mxmlcに下記オプションを付与することで、同等のことが行なえる。

mxmlc +configname=air

というか、amxmlcの実体は、上のようにmxmlcにオプションを付与して呼ぶだけ。
なので、rascutを使うときにも、
rascut --compile-config="+configname=air" 
としておくと、AIR向きコンパイルになる。


ref.電車で起動する男のブログ
http://hannaka.blog92.fc2.com/blog-category-1.html

AdvancedDataGridColumnのlabelFunctionのsetStyleはメソッド評価時のみ

AdvancedDataGridColumnのlabelFunctionのsetStyleはメソッド評価時のみ
AdvancedDataGridColumnは、labelFunction中でdataFieldの値を評価した結果で
表示スタイルを設定すると、他の要因でスタイルが変化されたときに打ち消される。

当たり前といえばそうなんだけども、はまったのでメモ。

たとえばGrid上のマウスオーバー等で色が変わったあとマウスアウトすると
スタイルが元に戻る。


1.初期状態

2. IDが赤色の列でマウスオーバー

3.マウスアウト





 private function idLabelFunction(item:Object, col:AdvancedDataGridColumn):String{
 var id:String = item.id as String;
 if(id=="1"){
 col.setStyle("color", 0xFF0000);
 } else if (id=="2"){
 col.setStyle("color", 0x00FF00);
 } else {
 col.setStyle("color", 0x0000FF);
 }

 return item.id;
 }
 ]]>
 </fx:Script>
 <fx:Script source="scripts/testFlash.as" />
 <s:VGroup>

 <mx:AdvancedDataGrid id="data" designViewDataType="tree" dataProvider="{contents}"
  sortExpertMode="true">
 <mx:columns>
 <mx:AdvancedDataGridColumn headerText="ID" dataField="id" draggable="true" labelFunction="idLabelFunction"/>
 <mx:AdvancedDataGridColumn headerText="Name" dataField="name" color="0x0000FF"/>
 <mx:AdvancedDataGridColumn headerText="City" dataField="city" labelFunction="cityLabelFunction"/>
 </mx:columns>
 </mx:AdvancedDataGrid>

Flex4での開発環境覚え書き

  - 環境
    + Eclipse Helios
        言わずと知れたIDE。今回はJava開発用
    + FlashBuilder4 Eclipse Plugin
        Adobe謹製のEclipseプラグイン.有償。90日間の試用期間あり。
IntelliSenseや自動ビルドなど機能は豊富。
mxmlやAs用のフォーマッタなどサードパーティのプラグインもぼつぼつでてるみたい。

      * http://www.adobe.com/jp/products/flashbuilder/?sdid=FDNTX
 
     + Flex SDK
同じくAdobe謹製の無償コンパイラ。CUIからコンパイル。
       * mxmlcがShift-JISをはくけども、MacOSのターミナルは標準でUTF-8で出そうとするので、
          mxmlcをよしなに書き換えること。
           http://un-q.net/2006/12/macmxmlc.html
    + BlazeDS
        FlashのUIからJavaクラスのメソッドをマッピングできたり。
      * http://opensource.adobe.com/wiki/display/blazeds/BlazeDS

 - ドキュメント
開発中に下記のオフィシャルドキュメンテーションでクラスリファレンスを頻繁に参照する。
ただ、個人的な感触としては重いサイトなのでフルドキュメンテーションセットをダウンロードして、
ローカルで使えるようにしている。
  * http://www.adobe.com/jp/devnet/flex/?view=documentation (Flexデベロッパーセンター)
-------------------------------------------------------------
<参考>
Flexの概要とFlash Buider 4 Eclipse Plugin のインストール方法

http://codezine.jp/article/detail/5342

Adobe FlashBuilder

http://www.adobe.com/jp/products/flashbuilder/?sdid=FDNTX

Adobe OS -BlazeDS-

http://opensource.adobe.com/wiki/display/blazeds/BlazeDS