質åã°ããã§æçž®ã§ãã»ã»ã»ã
GWTã®ïŒ²ïŒ£ïŒ°ã¯éåæã«è¡ãããŸãããåæåããããšã¯å¯èœã§ããããïŒ
ãµãŒãã«ïŒåç®ã®åãåãããè¡ãããã®è¿çãåŸ
ã¡ããã®è¿çã®
å
容ã䜿çšããŠæ¬¡ã®åŠçãè¡ããããªå Žåã§ãããGWTã®RCPã§ã¯ã
AsyncCallbackã®OnSuccessã¡ãœããã®äžã§ãããµãŒãããã®è¿çã
åŸ
ã£ãŠæ¬¡ãåŠçãããããªäžé£ã®åŠçãèšè¿°ããããšãã§ããã
OnSuccessã¡ãœãããã©ãã©ãè¥å€§åããŠå°ã£ãŠããŸãã
çæ§ã¯ãã®ãããªå Žåãã©ã®ããã«æžããŠããã®ã§ããããïŒ
ãæç€ºããã ããã°å¹žãã§ãã
ãããããé¡ãããããŸãã
hge
èªåã®å Žåã¯AsyncCallbackã®ã€ã³ã¹ã¿ã³ã¹ã
private finalãšããŠã¯ã©ã¹ã®ãã£ãŒã«ããšããŠæããã
RPCã¡ãœããåŒã³åºãæã«ã¯ã
ãã®ãã£ãŒã«ããåŒæ°ãšããŠæž¡ãããã«ããŠããŸãã
ãŸãonSuccessã¡ãœããã®å
容ãå¥ã®ã¡ãœããã«ç§»ãã
onSuccessããã¯ãã®ã¡ãœãããåŒã³åºãããã«ããŠã
(èŠãç®äž)onSuccessã®äžã倧ãããªããªãããã«ãããŠããŸãã
ãããã«ããèªåãã©ãŒãããããéã®ã¿ãã®æ°ãè¥å¹²å°ãªããªã
èŠéããå©ãããã«ãªãããšæããŸãã
éåžžã«çްããéšåã§ããåèã«ãªããŸãã§ããããïŒ
>>GWTã®ïŒ²ïŒ£ïŒ°ã¯éåæã«è¡ãããŸãããåæåããããšã¯å¯èœã§ããããïŒ
RPCã§ãããããæ¥ããããã
> ãŸãonSuccessã¡ãœããã®å
容ãå¥ã®ã¡ãœããã«ç§»ãã
> onSuccessããã¯ãã®ã¡ãœãããåŒã³åºãããã«ããŠã
> (èŠãç®äž)onSuccessã®äžã倧ãããªããªãããã«ãããŠããŸãã
> ãããã«ããèªåãã©ãŒãããããéã®ã¿ãã®æ°ãè¥å¹²å°ãªããªã
> èŠéããå©ãããã«ãªãããšæããŸãã
ãªãã»ã©ããã¯ããåæåãå®çŸããã«ã¯ãæ¬è³ªçã«onSuccessã
è¥å€§åããã®ã¯ãããããªãã®ã§ããã»ã»ã
ããã¯çè§£ã§ããŸããã
ãããã
> èªåã®å Žåã¯AsyncCallbackã®ã€ã³ã¹ã¿ã³ã¹ã
> private finalãšããŠã¯ã©ã¹ã®ãã£ãŒã«ããšããŠæããã
> RPCã¡ãœããåŒã³åºãæã«ã¯ã
> ãã®ãã£ãŒã«ããåŒæ°ãšããŠæž¡ãããã«ããŠããŸãã
ããã¯ãéåæã®ïŒ²ïŒ°ïŒ£ãåæåãããšããæå³ã§ãäœã广ã
ããã®ã§ããããïŒåŒã³åºã床ã«AsyncCallbackãªããžã§ã¯ãã
çæããã®ãšäœãéãã®ã§ããããïŒ
äœåºŠãç³ãèš³ãããŸããããããããé¡ãããŸãã
> ããã¯ãéåæã®ïŒ²ïŒ°ïŒ£ãåæåãããšããæå³ã§ãäœã广ã
> ããã®ã§ããããïŒåŒã³åºã床ã«AsyncCallbackãªããžã§ã¯ãã
> çæããã®ãšäœãéãã®ã§ããããïŒ
æ¬è³ªçãªéãã¯å šããããŸãããåäœçµæã¯å šãåãã§ãã
ãã ããœãŒã¹ãèŠããšãã«ã¿ãã®æ°ãæžã£ãŠããã»ãã
èŠãããããªãšæããäžèšã®ãããªæžãæ¹ãããããŸããã
(eclipseã§ãã©ãŒããããããããšãã¹ã³ãŒãã®é¢ä¿äž(?)2ã€åãããã¿ããæžããŸã)
ãŸããã€ã³ã¹ã¿ã³ã¹ã®æ°ãæžãã®ã§ã¡ã¢ãªã®å©çšå¹çã
è¯ããªã(ãšãããªã...)ãšãã广ãæåŸ
ã§ããŸãã
(IEãšFirefoxã®JavaScriptã®ã€ã³ã¿ããªã¿ã®ä»æ§ãç¥ããªãããæ³åã§æžããŠããŸãã
詳ããæ¹ãããã£ããããŸãããè£è¶³ãé ãããšå©ãããŸãã)
ãµãŒãããã®å¿çã䜿ã£ãŠæ¬¡ã®åŠçãå®è¡ããããã«ã·ãŒã±ã³ã·ã£ã«
ã«åŠçãå®è£
ãããããonSuccessãè¥å€§åããŠå°ããšèšãããšã§ã
ããããããã颚ã«AsyncCallbackã®ã€ã³ã¹ã¿ã³ã¹ãããã®ã€ã³ã¹ã¿ã³ã¹
ãå²ã£ãŠããã¯ã©ã¹ã®ã¡ãœãããåŒã³åºãæ¹æ³ã¯ãããã§ããããïŒ
==== sample ====
public class MyApp implements EntryPoint {
// çç¥
public void onModuleLoad() {
button.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
if (label.getText().equals("")) {
procedure01();
} else {
label.setText("");
}
}
});
// çç¥
}
private void procedure01() {
AsyncCallback callback = new AsyncCallback() {
public void onFailure(Throwable caught) {
Window.alert(caught.getMessage());
}
public void onSuccess(Object result) {
// ãšã³ã¯ããŒãžã³ã°ã¯ã©ã¹ãåç
§ãã
procedure02((String) result);
// ãã¡ãã®æ¹æ³ããã
//MyApp.this.procedure02((String) result);
}
};
// proxyã¯ServiceAsyncã®ã€ã³ã¹ã¿ã³ã¹
proxy.greeting(getText(), callback);
}
private void procedure02(String message) {
label.setText(message);
}
}
以äžããããããé¡ãããããŸãã
07/09/25 ã« hgengwt<hge...@gmail.com> ããã¯æžããŸãã:
远å ã®è³ªåãŸã§ããŠããŸã£ãŠããææ°ããããŠããŸããã
ããã§ïŒ²ïŒ°ïŒ£ã®ãããã¯ãã£ããããŸããïŒ
ããããšãããããŸããïŒ
ïœïœïœã§ïŒ§ïŒµïŒ©ãäœãã®ãåããŠãªã®ã§ããããããšäžæ £ãã§ã»ã»ã
ãæç€ºããŠããã ããæ¹æ³ãåãå
¥ããŠã¿ãŸããïŒ
ã ãã ããšãœãŒã¹ããã£ããããŠããŸããã
ããããšãããããŸãããå©ãããŸããã
> 07/09/25 ã« hgengwt<hgen...@gmail.com> ããã¯æžããŸãã: