
ContactManager Wrapper Code
// A G E N T
// . . .
// ContactManager.java
// Wrapper for ContactApplet
// (c) Andy Wood ... 1996
// modified by Anind K. Dey ... 1997
// ****************************************************************************
package cyberdesk.acton.wrapper;
import ContactManager.*;
import java.util.*;
import cyberdesk.cameo.*;
import cyberdesk.types.NameEmail;
import cyberdesk.types.Name;
import cyberdesk.types.EmailAddress;
// ****************************************************************************
public class ContactManager extends ContactApplet implements CameoObject, Observer {
static CameoObjectImpl cameo;
private ObservableObject selectObject;
public void init()
{
super.init();
CameoInterface[] interfaces = new CameoInterface[ 1 ];
interfaces[ 0 ] = new CameoInterface( "select", null );
cameo = new CameoObjectImpl( this, interfaces, true );
selectObject = selected;
selectObject.addObserver(this);
try
{
CameoProperty[] properties = new CameoProperty[ 2 ];
properties[ 0 ] = new CameoProperty( "lookup", Class.forName( "cyberdesk.types.Name" ),
"Lookup an entry for the name in the ContactManager" );
properties[ 0 ] = new CameoProperty( "enter", Class.forName( "cyberdesk.types.NameEmail" ),
"Lookup an entry for the name in the ContactManager" );
interfaces = new CameoInterface[ 1 ];
interfaces[ 0 ] = new CameoInterface( "method", properties );
}
catch ( ClassNotFoundException e )
{
System.out.println( "ContactApplet: class Name not found" );
}
cameo = new CameoObjectImpl( this, interfaces, true );
}
public static void selected (Object o) {
CameoMessage msg = new CameoMessage();
msg.setField(msg.PROPERTY,"selection");
if (o instanceof java.net.URL) {
msg.setField(msg.DATA, o);
msg.setField(":type", new Integer(1));
}
else if (o instanceof cyberdesk.types.Name) {
msg.setField(msg.DATA, o);
msg.setField(":type", new Integer(2));
}
else if (o instanceof cyberdesk.types.EmailAddress) {
msg.setField(msg.DATA, o);
msg.setField(":type", new Integer(3));
}
else if (o instanceof java.lang.String) {
if (((String)o).length() == 0) {
msg.setField(msg.DATA, null);
msg.setField(":type", new Integer(5));
}
else {
msg.setField(msg.DATA, o);
msg.setField(":type", new Integer(4));
}
}
System.out.println("sent message");
cameo.getObservers().observed(msg);
}
public void examine( CameoMessage msg ) {
cameo.examine( msg );
}
public void manipulate(CameoMessage msg) {
if ( msg.getField( msg.PROPERTY ).equals( "lookup" ) ) {
String data = ( (Name)msg.getField( msg.DATA ) ).getName();
String name;
int space = data.indexOf( " " );
if ( space != -1 ) {
// Find the last space - so we skip any middle initials
int last = data.lastIndexOf( " " );
name = data.substring( last + 1 ) + ", " + data.substring( 0, space );
}
else {
// If there are no spaces, we've just got one name, assume it's a surname
name = data + ", ";
}
showMe( name );
}
else if ( msg.getField( msg.PROPERTY ).equals( "enter" ) ) {
Name n = ((NameEmail)msg.getField(msg.DATA)).getName();
EmailAddress ea = ((NameEmail)msg.getField(msg.DATA)).getEmail();
String data = n.getName();
String name;
int space = data.indexOf( " " );
if ( space != -1 ) {
// Find the last space - so we skip any middle initials
int last = data.lastIndexOf( " " );
name = data.substring( last + 1 ) + ", " + data.substring( 0, space );
}
else {
// If there are no spaces, we've just got one name, assume it's a surname
name = data + ", ";
}
newNameandEmail( name,ea.toString() );
}
}
public void observe(CameoMessage msg) {
cameo.observe( msg );
}
public void observing( CameoMessage msg ) {
cameo.observing( msg );
}
public void notobserving( CameoMessage msg ) {
cameo.notobserving( msg );
}
public void update(Observable obs, Object arg) {
selected(selectObject.getValue());
}
}
// ****************************************************************************
Return to the CyberDesk sample code page.
Return to the CyberDesk home page.
