先のGAEJでMVC+S(part4)のMainView#setBrowseNodeIdで使っている
MainController.javaを記述します。
package com.gethapp.gae.sample.mvc.client;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
public class MainController {
//コントローラから利用するサービス
private final AmazonServiceAsync amazonService = GWT.create(AmazonService.class);
private static MainController me;
private MainController() {}
public static synchronized MainController getInstance() {
if (me==null) {
me=new MainController();
}
return me;
[…]
Posted on 4月 28th, 2009 by mitsu
Filed under: GAE, GWT, java | No Comments »
MainVIewを仕上げます。
ちょっと、前置き
GWT1.6以前は、
イベント処理を担当するのは一般的には
XXXXListenerでしたが、
1.6では
YYYYHandlerに変更されています。
HistoryListenerもDeprecatedになって
ValueChangeHandlerに置き換わっています。
—-
MainView.javaです。
変数link0やlink1やbuttonを押すと
Historyとしてtokenが一つ追加されます。
その追加によってValueChangeEvent(イベントの中の値はtoken=browseNodeId)が発生し、
public void onValueChange(ValueChangeEvent)
→public void setBrowseNodeId(String)
→MainController.getInstance().call(browseNodeId, loadCallback);
→loadCallback
の順番で処理が動くといった感じです。
package com.gethapp.gae.sample.mvc.client;
import java.util.Iterator;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Hyperlink;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.VerticalPanel;
public class MainView extends VerticalPanel implements ValueChangeHandler<String> {
private static final String INIT="INIT";
private static MainView me;
private Label label=new Label();//結果表示用
private MainView() {
Hyperlink link0=new Hyperlink("ジャンル別", "465610″);
[…]
Posted on 4月 25th, 2009 by mitsu
Filed under: GAE, GWT, java | No Comments »
今、Sにあたるものには
AWSのBrowseNodeLookupを考えています。
コードを参考にした方がイメージしやすいと思います。
AmazonService.java
package com.gethapp.gae.sample.mvc.client;
import com.google.gwt.user.client.rpc.RemoteService;
public interface AmazonService extends RemoteService {
BrowseNode browseNodeLookup(String browseNodeId);
}
引数のbrowseNodeIdからそのIdに関するBrowseNodeを
取得できるサービスです。
非同期呼び出し用のAmazonServiceAsync.java
package com.gethapp.gae.sample.mvc.client;
import com.google.gwt.user.client.rpc.AsyncCallback;
public interface AmazonServiceAsync {
void browseNodeLookup(String browseNodeId, AsyncCallback<BrowseNode> callback);
}
そして最後に、BrowseNodeクラス
package com.gethapp.gae.sample.mvc.client;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class BrowseNode implements Serializable {
private String browseNodeId="";//ブラウザノードID
private String name="";//名前
private List<BrowseNode> children=null;//ノード配下の子ノード
public BrowseNode() {
//
}
public void addChild(BrowseNode arg) {
if (children==null) children=new ArrayList<BrowseNode>();
children.add(arg);
}
public void setBrowseNodeId(String […]
Posted on 4月 25th, 2009 by mitsu
Filed under: GAE, GWT, java | No Comments »
eclipseで新規プロジェクトを作成した後
はじめに
Application.javaとApplication.html
にはサンプルコードが記述されているので
コードを修正(ほぼ削除)しておきます。
package com.gethapp.gae.sample.mvc.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;
public class Application implements EntryPoint {
public void onModuleLoad() {
RootPanel.get().add(MainView.getInstance());
}
}
Application.htmlは、body部分を以下の様の修正して下さい。
<body>
<iframe src="javascript:"" id="__gwt_historyFrame" tabIndex='-1′ style="position:absolute;width:0;height:0;border:0″<>/iframe>
</body>
次に、Application.java#onModuleLoadで呼び出している
MainView.javaを用意します。
とりあえず、VerticalPanelを継承しておきます。
package com.gethapp.gae.sample.mvc.client;
import com.google.gwt.user.client.ui.VerticalPanel;
public class MainView extends VerticalPanel {
private static MainView me;
private MainView() {
}
public static synchronized MainView getInstance() […]
Posted on 4月 25th, 2009 by mitsu
Filed under: GAE, GWT, java | No Comments »