AppletBase and JAppletBase classes (Java)

Applets must extend AppletBase or JAppletBase and use notesAppletInit(), notesAppletStart(), and notesAppletStop() as the entry points for their functional code. Use openSession() or openSession(String user, String pwd) to create a Session object.

The JAppletBase class is the same as AppletBase except that it imports com.sun.java.swing.* and extends JApplet rather than Applet.

For more information, see "Running a Java program" in the chapter "Java Classes Coding Guidelines."

Skeleton for Java applets that use Domino® Objects

This code demonstrates the essentials for an applet that uses Domino® Objects. AppletBase distinguishes between local and remote (IIOP) access, and uses NotesThread for local access in the main applet code. See the next section if the applet creates threads.

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();}
    }
  }
}

Applets that create threads including AWT handlers

If an applet creates a thread that uses Domino® Objects, the thread code must explicitly use NotesThread for local access to Domino® Objects. Thread creation includes the handling of AWT events. Use AppletBase.isLocal to determine the applet's status.

The following code should go at the beginning of the thread before calling any Domino® Objects:

if (isNotesLocal())
{
  NotesThread.sinitThread();
}

The following code should go at the end of the thread (for example, the finally block) after calling any Domino® Objects:

if (isNotesLocal)
{
  NotesThread.stermThread();
}

Specification of AppletBase

The specification (public methods) of the AppletBase class is as follows:

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
}

Example