2009年7月31日金曜日

GWTでファイルアップロード

現在のGoogle App Engineのアプリケーションにいつか追加したいな
と思っているのが、CSVファイルの取り込み機能。

いままで、ファイルのアップロードと言うロジックは書いたことないので手さぐり状態で
調べてみる。

とりあえず、下記を利用すれば出来ました。
(1)GWT側
FileUploadコンポーネント
http://google-web-toolkit.googlecode.com/svn/javadoc/1.6/com/google/gwt/user/client/ui/FileUpload.html

(2)Google App Engine側
Google App Engine for Javaを使ってみよう!(2)Images Java API の使い方

(1)のサンプルコードの

form.setAction("/myFormHandler");

の部分を(2)で定義してあげたものに替えてあげればOKです。

(2)のサンプルどおりにやるのであれば、この部分は、
form.setAction("/imagetest");

となります。


また、リクエストが帰ってきたときのロジックは、下記の部分の
event.getResults()にサーバの応答がhtmlが帰ってくるので、
ここを替えてあげれば、サーバからの応答も表示することが出来ました、


form.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() {
public void onSubmitComplete(SubmitCompleteEvent event) {
// When the form submission is successfully completed, this event is
// fired. Assuming the service returned a response of type text/html,
// we can get the result text here (see the FormPanel documentation for
// further explanation).
Window.alert(event.getResults());
}
});


ファイルの送信は、 gwtuploadというのもあるみたいなんで、
http://code.google.com/p/gwtupload/
次は、これを試してみようと思う。

2009年7月29日水曜日

地図から検索 マイナー機能追加

私の作成したアップリケーション地図から検索を少しだけ機能改善しました。

しばらく、放置してたので気が向いたら徐々にいろいろな機能を増やしていきたいと
思っています。

検索結果のラベル検索時に

・選択中のラベルの色を変更
・選択したお店を地図と連動

ということをするように修正しました。

この機能により、今まで登録したデータの位置が微妙に正しくない場合があることが
わかったので、徐々に直していきます。

クリックイベントのソースはこんな感じ。

ClickHandler newch = new ClickHandler(){
public void onClick(ClickEvent event) {
clickHandler.onClick(event);
LatLng point = LatLng.newInstance(clientMapData.getLatitude()
,clientMapData.getLongitude());
Marker marker = new Marker(point);
map.addOverlay(marker);
map.setCenter(point);
title.setStyleName("selectedLabel");
}
};


title.setStyleName("selectedLabel");
の部分の引数は、cssファイルへ記述しておく。

今回は適当にこんな感じ
========================================
.normalLabel {
color: black;
background-color: white;
}
.selectedLabel {
color: blue;
background-color:#D7F5FF;
}
========================================

ご意見などあれば、いただけると有難いです。

2009年7月21日火曜日

Google Plugin for Eclipse と  Eclipse 3.5

最近、Eclipse 3.5が出たんだけど、Google Plugin for Eclipseとの相性は
どうなんだろうと入れるのに躊躇していたら、下記のページに記述がありました。

http://code.google.com/intl/ja/appengine/docs/java/tools/eclipse.html

下記の一文があり、

=====================================
Please note that the plugin does not yet support the recently released Eclipse 3.5 (Galileo). In the mean time, you can download Eclipse 3.4 from the Eclipse web site.
=====================================

つまりは、しばらくは、eclipse3.4のほうを使ってねということみたい。

なんで、我が家のeclipseはしばらく、3.4のままにしておくことにする。

2009年7月15日水曜日

Google App Engine for Java がバージョンアップ

Google App Engine for Javaのバージョンが1.2.2になったようです。

Google App Engine Blog: Google App Engine for Java SDK 1.2.2 Released

同時にGoogle Web Toolkit も1.7にVerUpしていました。

What's New in GWT 1.7?

とりあえず、ecliseのsoftware Updateにて更新してみる。
あとは、eclipseプロジェクトの右クリックでgoogleを選択して、バージョンを
替えておけば更新完了。

とりあえず、Google App Engineで目につく目新しい機能としては、
開発環境のデータベース閲覧機能でしょうか。

新しいバージョンに更新後、

http://localhost:8080/_ah/admin/

へアクセスすると、ローカルのデータベースを参照できるようになりました。

これで、テスト用のデータを削除したりすることが簡単にできるようになりました。

その他の新機能についてもこれから読んでみてこれはと思うものがあれば、書き足していきます。