アプレットは、AppletBase または JAppletBase から派生して、その関数コードのエントリポイントとして notesAppletInit()、notesAppletStart()、notesAppletStop() を使用する必要があります。Session オブジェクトを取得するには、openSession() または openSession(String user, String pwd) を使用します。
JAppletBase クラスは AppletBase クラスと同じですが、com.sun.java.swing.* をインポートし、Applet ではなく JApplet から派生します。
詳しくは、「Java™ クラスのコーディングのガイドライン」の章の「Java プログラムを実行する」を参照してください。
次のコードは、Domino オブジェクトを使用するアプレットの主要部分を示します。AppletBase はローカルアクセスとリモート (IIOP) アクセスを区別し、メインのアプレットコードで NotesThread を使用して、ローカルアクセスを実現します。アプレットがスレッドを作成する場合については、次のセクションを参照してください。
import lotus.domino.*;
public class foo extends AppletBase
{
// User declarations
public void notesAppletInit()
{
// User initialization code, for example, to set up a TextArea object
}
public void notesAppletStart()
{
Session s = null;
try
{
// Can also do openSession(user, pwd)
s = this.openSession();
if (s == null) { //not able to make the connection, warn user
ta.append("Unable to create a session with the server");
return;
}
// User code for main activities
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try {this.closeSession(s);}
catch(NotesException e) {e.printStackTrace();}
}
}
}
アプレットが Domino オブジェクトを使用するスレッドを作成する場合は、Domino オブジェクトにローカルにアクセスするため、そのスレッドコードでは明示的に NotesThread を使用する必要があります。スレッドの作成には AWT イベントの処理が含まれます。アプレットの状態を判断するには、AppletBase.isLocal を使用します。
次のコードは、Domino オブジェクトを呼び出す前に、スレッドの先頭位置に記述する必要があります。
if (isNotesLocal())
{
NotesThread.sinitThread();
}
次のコードは、Domino オブジェクトを呼び出した後に、スレッドの終了位置 (finally ブロックなど) に記述する必要があります。
if (isNotesLocal)
{
NotesThread.stermThread();
}
AppletBase クラスの仕様 (public メソッド) は次のとおりです。
public class AppletBase extends Applet
implements DominoAppletBase {
public Session getSession() throws NotesException;
public Session getSession(String user, String pwd)
throws NotesException;
public Session openSession() throws NotesException;
public Session openSession(String user, String pwd)
throws NotesException;
public void closeSession(Session session)
throws NotesException;
public final void init();
public void notesAppletInit();
public final void start();
public void notesAppletStart();
public final void stop();
public void notesAppletStop();
public final void destroy();
public void notesAppletDestroy();
public boolean isNotesLocal();
public NotesAppletContext getContext(Session session)
throws NotesException
}