2011年4月12日火曜日

ちょっとネタ切れ

仕事が忙しくなってしまい、なかなかアプリに時間が割けない。


来週からはまた時間が取れそうな気配。

2011年4月8日金曜日

Developer Memberになってみた

個人で(趣味で)Developerとなる場合は、

  1. Name on Tax ReturnとCompany Nameは自分の名前。
  2. Type Of Ownershipは Sole Proprietor / Individual
  3. Country Of Tax Residencyは日本
  4. Tax Reference Numberは日本にはないので、0を9個入れた。
  5. Business Typeは Non-US business


Type Of Ownership:Sole Proprietor / Individual
とすれば良いと思う。Form W-8BENはおそらくHPから送付してくると思われる。
こちらに日付とサインを入れれば大丈夫なはず。

http://www.option-dojo.com/st/w-8ben.htmlを参考に作成すればいいと思う。

2011年4月7日木曜日

デフォルトのシーン

WebOSのアプリケーションはapp-assistant.js→stage-assistant.jsとスクリプトが進んでいき、どちらかのスクリプトの中で、~.prototype.setup()でsceneがpushされる。

sceneについては、sources.jsonにて設定してる名称で呼ばれるわけだが、sceneをpushしていなくても、mainからなるmain-assistant.jsとmain/main-scene.htmlがあれば、それが表示される。

単一のsceneのアプリケーションであれば、mainでsceneを作って行っても良いとは思うが、あとあと追加していく可能性の方が強いし、sceneについての説明を兼ねて、main以外を使っても良いかと思う。

2011年4月6日水曜日

とりあえず、画面は出来てきた。

幾分イメージとはまだ違うが。
とりあえず、画面に表示させたいものが出てきたので、第一段階はクリア。

次はメニューとダイアログを作る。

2011年4月5日火曜日

sources.json

HTMLで
<script src="hogehoge.js" type="text/javascript" ></script>
<script src="hogehoge2.js" type="text/javascript" ></script>
的なJavaScriptロードしまくりなページもありそうだが、WebOSではsources.jsonで、必要な時にロードするような設定が出来るし、推奨されている。

[
 {
  "source": "(パス)/hogehoge.js"
  "scene":"(利用されるシーン名)"
 },
 {
  "source": "(パス)/hogehoge2.js"
  "scene":["(利用されるシーン名A)","(利用されるシーン名B)"]
 }
]
とするだけ。Sceneが設定されていないのはアプリケーション全体で使う物だと思う。

IMEの方もぼちぼちやっています。

本屋でJavaScriptの本読みふけってみた。
あそこの記述はそういうことなのね、ということは非常に良く分かりました。

で、結論として、AjaxIMEはマルチブラウザ対応のためにかなり処理を入れている。

WebOSはWebkitなので、Gekkoの友達ということで、Firefoxの処理だけにシェイプアップしようと思っている。

どこでもAjaxIMEの大体の処理

  1. 既存ページに対してテキストエリアを探す。
  2. テキストエリアがあったら、テキストエリア内がCSSで書式が設定されていれば、その書式設定をコピる。
  3. キーボードのスキャンを行って、ローマ字toかな変換を行っている。ここが重要な気がする。
  4. かなで表示されている文字列をURIでAjaxaIMEの変換エンジンのURLに送ると、候補を返してくる。
  5. 候補から変換したい文字を選んで確定。
とりあえずは3.までの処理をWebOSで上手く作動させてやりたい。とりあえずは3だけでも。

4.についてはAjaxIMEの作者さんはMeCabで変換エンジンを作っている模様なので、こいつのローカル版を作ってやれば良い感じ。何となくそのアイディア、というか作者さんのお膳立てはされている。

2011年4月4日月曜日

メニューの出し方

結局、メニューすらWidgetの一部な訳だった。stage-assistant.jsに以下の行を書き込む。
(要するにアプリ起動時のJavaScript)


(アプリケーション名).MenuAttr = {omitDefaultItems: true}; //標準のメニューを一端削除

(アプリケーション名).MenuModel = {
     visible: true,
     items: [
          {label: "About (アプリケーション名)...", command: "do-about(アプリケーション名)"},//他にもメニューに加えたいなら、 label:とcommand:で加えていく。
          Mojo.Menu.editItem,
          Mojo.Menu.prefsItem,
          Mojo.Menu.helpItem
     ]
};

あと忘れてはいけないのは、メニューで選択された場合の処理。prototype.handleCommandで定義しておく。

StageAssistant.prototype.handleCommand = function(event) {
    if(event.type == Mojo.Event.command) {
        switch(event.command) {
            case "do-about(アプリケーション名)": //他のメニューを作った場合はcase が増える。
                var currentScene = this.controller.activeScene();
                currentScene.showAlertDialog({
                    onChoose: function(value) {},
                        title: "(アプリケーション名) — v#{version}".interpolate({
                        version: (アプリケーション名).versionString}),
                        message: "Copyright xxxx",
                        choices:[
                            {label:"OK", value:""}
                        ]
                });
            break;
        }
    }
};
 メニューを作成したSceneの-assistant.jsに、以下の行を書き込む。

this.controller.setupWidget(Mojo.Menu.appMenu, (アプリケーション名).MenuAttr, (アプリケーション名).MenuModel);

これで大丈夫なはず。

2011年4月3日日曜日

sceneが上手く出来上がらない。

うーん、何が行けないのか。思うように表示が出来ない。

(30分後修正)
あれ?出来た(笑)。

this.controller.setupWidget()

の後ろにすぐイベントハンドラーを書いちゃうとだめみたい。どうしてかは分からないけど。

あとはCSSで体裁を整えるだけだな。