IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope:Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Lotus  >

为 IBM Lotus Sametime Connect V7.5 设计 Google Maps 插件

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

讨论

样例代码


级别: 中级

Mark Talbot (talbotm@us.ibm.com), 开发人员,Industry Solutions, IBM
Kulvir Singh Bhogal (kbhogal@us.ibm.com), 顾问,Software Services for WebSphere, IBM

2006 年 8 月 07 日

使用 IBM Lotus Sametime Connect V7.5 的 Locate Partner 插件了解您的 Sametime 合作伙伴身处何处。该插件使用 Google Maps 技术定位 Sametime 合作伙伴,并提供合作伙伴所在位置的路线。

[编者注:IBM Lotus Sametime V7.5 尚未面世,但预计在今年稍后推出。本文介绍的是 Lotus Sametime Connect V7.5 的测试版。]

在 developerWorks Lotus 文章 “Extending the Lotus Sametime client with an LDAP directory lookup plug-in” 中,我们为您介绍了如何使用 Partner Lookup 插件扩展 Lotus Sametime Connect V7.5 客户机。这个插件允许您查找存储在 LDAP 目录中的 Sametime 合作伙伴信息。基于 Eclipse 的底层基础设施实现了 Lotus Sametime 客户机的可扩展性,这允许您创建插件扩展,并将其插入 Lotus Sametime 客户机公开的扩展点中。

在这篇文章中,我们进一步研究通过插件扩展 Lotus Sametime 客户机的主题。我们还会阐明 Eclipse 首选项(preference)的概念。为提高学习的趣味性,本文将为您介绍如何构建一个与 Google Maps 交互的插件。

Google Maps 是 Google 提供的免费服务,它提供了基于 Internet 浏览器、逐门逐户的路线指南,以及特定位置的地图。交互式地图可放大,显示详细的信息。Google 提供的地图是展示 Ajax 强大力量的绝妙示例,这是一种使用户更好地与 Web 站点交互的 Web 技术,方法是利用 JavaScript 和 XML 执行异步网络请求。

在本文中,您将在 Lotus Sametime 客户机插件 —— Locate Partner 插件中利用 Google Maps 产品。该插件使您可获得从您所在位置到 Sametime 合作伙伴所在位置的详细路线指南。您还可获得一份 Sametime 合作伙伴所在位置的地图。图 1 展示了 Locate Partner 插件的屏幕快照。在您使用插件查找路线或 Sametime 合作伙伴所在位置的地图时,将打开一个浏览器窗口。浏览器指向恰当的 Google Maps URL,可为 Sametime 用户展示他或她所感兴趣的路线或地图。


图 1. Locate Partner 插件
Locate Partner 插件

我们在插件测试中使用 IBM 的公共 Lotus Sametime 服务器:messaging.ngi.ibm.com。若想了解公共 Lotus Sametime 服务器的更多内容,请访问 IBM Community Tools Web 站点。在与 IBM 公共 Lotus Sametime 服务器交互时,您的用户名和口令与 IBM 用户名和口令相同。在 IBM Web 站点上进行注册即可获得一个 IBM 用户名和口令。

Eclipse 首选项

Eclipse 首选项表示一组名称值对。各名称均有两个值,一个默认值和一个用户指定值。若不存在用户指定值,则将使用默认值。

允许 Sametime 客户机用户指定其实际地址

为实现 Locate Partner 插件逐门逐户的路线指南功能,Google 必须了解您出发的起点地址。我们使用一个 Eclipse 首选项允许 Sametime 用户指定自己的起点地址,如图 2 所示。


图 2. Eclipse 首选项
Eclipse 首选项

指定客户机浏览器的位置

Locate Partner 插件允许一名 Sametime 用户指定其 Web 浏览器的位置。与起点地址相同,Web 浏览器位置也是使用图 2 所示的 Eclipse 首选项存储的。

使用 Internet 浏览器显示 Google 路线指南和地图。

收集您的 Sametime 合作伙伴所在位置

遗憾的是,没有任何方法可以获得其他 Sametime 合作伙伴的 Eclipse 首选项。相应地,您必须找到一种方法,发现各 Eclipse 合作伙伴所在的位置。这些信息可以通过我们在上一篇文章中介绍的 LDAP 目录获得。但为简单起见,我们使用属性文件将 Sametime 合作伙伴与实际地址关联在一起,每次想获得路线指南或特定 Sametime 合作伙伴所在位置的地图时,即可动态读取这个属性文件。参见图 3。


图 3. 属性文件
属性文件




回页首


更改目标平台

我们假设您已经安装了 Eclipse SDK 3.2。若尚未安装,可访问 Eclipse Web 站点 获取该软件。要开发 Sametime 插件,您需要在 Eclipse 中更改目标平台。启动 Eclipse 之后,切换到 Plug-in Development 透视图。在 Plug-in Development 透视图中,将目标平台更改为您的 Lotus Sametime Connect 的安装目录。目标平台告诉 Eclipse Plug-in Development Environment(PDE)包含目标平台的插件目录的文件夹。

更改目标平台的操作步骤如下:

  1. 在 Eclipse 的 Window 菜单中选择 Preferences。
  2. 在 Preferences 对话框的左窗格中展开 Plug-in Development 项。随后选中 Target Platform。
  3. 右窗格中将出现 Target Platform Preference Page。单击 Browse 按钮更改位置。
  4. 将您的目标平台更改为系统中包含 Lotus Sametime 7.5 插件目录的目录位置。如果您在默认位置安装了 Lotus Sametime 7.5,目标平台位置应为 C:\Program Files\IBM\Sametime Connect 7.5\sametime。
  5. 单击 Reload。即可看到图 4 所示的 Sametime 插件。

    图 4. Sametime 插件目录
    Sametime 插件目录





回页首


创建一个插件项目

要创建您的 Sametime 插件,您需要一个插件项目,在开发过程中容纳插件。创建插件项目的操作步骤如下:

  1. 在 Eclipse 中,选择 File - New Project。
  2. 在 New Project Wizard 中选择 Plug-in Development - Plug-in Project。然后单击 Next。
  3. 出现 New Plug-in Project 向导。指定项目名为 com.devworks.example.map,单击 Next。
  4. 键入 Google Maps 作为插件名。键入 DeveloperWorks 作为插件提供者。
  5. 请注意,图 5 中选中了选项 “This plug-in will make contributions to the UI”。Lotus Sametime API 提供了一种扩展 Sametime UI 的途径。如果您仅扩展 Sametime UI,那么将其插入 Eclipse UI 并不是必要的。在我们的例子中,我们正在操作一个 Eclipse 首选项页面,它扩展了 Eclipse UI。相应地,在 Plug-in Project 向导中,我们指定插件插入 UI。

    图 5. New Plug-in Project 向导
    New Plug-in Project 向导

  6. 接受其余默认值,并单击 finish。





回页首


设置插件依赖性

为了使您的 Lotus Sametime 插件能够解析 Lotus Sametime 类,您需要编辑插件的依赖性。为此:

  1. 打开 META-INF/MANIFEST.MF 文件,然后单击 Dependencies 选项卡,将显示 Dependencies 视图。
  2. 单击 Add。Plug-in Selection 对话框将出现,如图 6 所示。

    图 6. Plug-in Selection 对话框
    Plug-in Selection 对话框

  3. 选择 com.ibm.collaboration.realtime.people 插件并单击 OK。
  4. 保存 Dependencies 页面。此时 Dependencies 页面应如图 7 所示。

    图 7. Dependencies 页面
    Dependencies 页面





回页首


通过首选项页面设置首选项

在一个 Java 程序中,设置通常是在程序外部的属性文件中完成的。除此之外,基于 Eclipse 的应用程序还提供了一些扩展点,允许 Eclipse 开发人员为基于 Eclipse 的应用程序(在我们的例子中是 Lotus Sametime 客户机)的首选项添加一个首选项页面。在您的首选项页面中有两个首选项。第一个首选项是 Google 路线中的起点地址。第二个首选项是 Internet 浏览器的位置。例如,编辑浏览器位置,Sametime 用户可选择使用 Internet Explorer 或 Firefox 来显示路线和/或地图。

Google Map 首选项页面

您将在一个名为 Google Map 的首选项页面中存储首选项,如图 8 所示。


图 8. 首选项页面
首选项页面

要创建 Google Map 首选项页面,打开您的 META-INF/MANIFEST.MF 文件。选择 Extensions 选项卡并单击 Add 按钮打开 New Extension 窗口。在 New Extension 窗口中,选择 Extension Wizards 选项卡。在 Extension Wizards 选项卡的右窗格中选择 Preference Page 扩展模板并单击 Next。参见图 9。


图 9. New Extension 向导
New Extension 向导

这将为您的首选项页面创建一个模板,您可按照自己的需求修改此模板。将首选项页面的类名设置为 GMapPreferencePage。首选项页面的名称设置为 Google Map。使用默认包名称 com.devworks.example.map.preferences 作为 Java 包名称,单击 Finish(参见图 10)。按 Ctrl+S 保存 Extensions 视图中的更改。


图 10. Preference Page 对话框
Preference Page 对话框

在您创建模板时,Eclipse 会为您生成一个名为 PreferenceConstants 的类。这是一个方便的类,可用于存储您的首选项页面所使用的常量值。可使用如下代码替换自动生成的代码:

/**
 * Constant definitions for plug-in preferences
 */
public class PreferenceConstants {
	public static final String MY_LOCATION = "myLocation";
	public static final String BROWSER_LOCATION = "browserLocation";
}

从上述代码中可以看到,插件使用两个常量:MY_LOCATION 和 BROWSER_LOCATION,前者表示使用 Lotus Sametime 客户机的人的实际地址,后者表示他/她的 Internet 浏览器的可执行文件所在的磁盘位置。

为您自动生成的另外一个类就是 PreferenceInitializer 类。这个类的 initializeDefaultPreference 方法用于为首选项值填充默认值。在下面的代码中,请注意该类是如何使用您在 PreferencesConstants 类中定义的常量的。默认情况下,浏览器位置设置为 Microsoft Internet Explorer 的默认安装位置(c:\Program Files\Internet Explorer\iexplore.exe)。

public class PreferenceInitializer extends AbstractPreferenceInitializer {
	public void initializeDefaultPreferences() {
		IPreferenceStore store = Activator.getDefault()
				.getPreferenceStore();
		store.setDefault(PreferenceConstants.MY_LOCATION,
				"");
		store.setDefault(PreferenceConstants.BROWSER_LOCATION,
		"c:\\progra~1\\intern~1\\iexplore.exe");
	}
}

模板生成创建了另外一个名为 GMapPreferencePage 的类。这个类定义首选项页面的布局。可用如下构造函数片段取代自动生成的构造函数:

	public GMapPreferencePage() {
		super(GRID);
		setPreferenceStore(Activator.getDefault().getPreferenceStore());
		setDescription("Preferences for the Google Map feature.");
	}

在上述代码中,父类的构造函数接受一个参数,一个表示布局的整型参数。我们选择了 GRID 布局,这种布局默认具有一列。您添加的各 FieldEditor 部件都将具有自己的一行。

您需要提供输入区域,使客户机可通过这个区域编辑其首选项的值(更具体地说,也就是浏览器位置和实际地址)。本文前面的图 2 已经展示了结合到您的首选项页面中的图形化输入工具。

为创建输入区域,使用您自己的代码替换所生成的 createFieldEditors 方法(您必须在父类 FieldEditorPreferencePage 中覆盖此方法)。在以下代码中,我们通过编程的方式使用 StringFieldEditor Eclipse 部件添加了两个字段编辑器:一个字段编辑器用于捕获 Sametime 用户的实际地址,另外一个用于捕获其浏览器位置。

public void createFieldEditors() {
	addField(
		new StringFieldEditor(PreferenceConstants.MY_LOCATION, 
		"My Location:", getFieldEditorParent()));
	addField(
		new StringFieldEditor(PreferenceConstants.BROWSER_LOCATION, 
		"Browser Path:", getFieldEditorParent()));
}
public void init(IWorkbench workbench) {}





回页首


MapUtilities 类

既然已经创建好了首选项页面,接下来就该着手处理 Locate Partner 插件的业务功能了。MapUtilities 类是一个需要在 com.devworks.example.map 包下创建的类。MapUtilities 类是插件的骨干,它负责生成显示路线和地图所必需的 Google URL。这个类还负责在客户的机器上打开一个 Web 浏览器,查看所生成的 URL。下面我们来详细剖析这个类及其各种方法,并给出各方法的角色和具体分析。showMap 和 getAddressURL 这两个方法一前一后地发挥作用,显示 Sametime 合作伙伴的实际地址的地图。类似地,showDirections 和 getDirectionsURL 方法也是一前一后地发挥作用,以显示前往 Sametime 合作伙伴的实际地址处时的行车路线。

showMap 方法

MapUtilities 类的 showMap 方法负责打开客户机 Web 浏览器的一个实例,并使用 Google Maps 显示 Sametime 合作伙伴所在地的地图。该类从 Eclipse 首选项存储中检索用户指定的浏览器位置。这个值与用户在之前所创建的 GMapPreference 页面中指定的值相同。该类随后调用 Java Runtime.getRuntime().exec() 方法来启动浏览器。请特别注意我们是如何通过编程方式从 org.eclipse.jface.preference.PreferenceStore 对象中获取浏览器位置的。另外,还要注意如何通过对 getMapURL 方法的一个方法调用来沿用这个浏览器位置。

public static void showMap(String address) {
	String browserLocation = Activator.getDefault().getPreferenceStore()
			.getString(PreferenceConstants.BROWSER_LOCATION);
	try {
		Runtime.getRuntime().exec(
					browserLocation + " " + getMapURL(address));
		} catch (IOException e) {
			e.printStackTrace();
		}
}

您可能会感到疑惑,showMap 方法是从哪里获得其 address 字符串参数的?在本文稍后的 “Address Store” 部分中将介绍相关内容。

getMapURL 方法

以字符串形式给定一个 Sametime 合作伙伴的实际地址,getMapURL 方法将构造一个 Google URL 地址字符串,在 Internet 浏览器访问它时,显示特定地理位置的地图。

private static String getMapURL(String address) {
		String startURLFragment = "http://maps.google.com/maps?f=q&hl=en&q=";
		String endURLFragment = "&om=1";
		return startURLFragment + encodeAddress(address) + endURLFragment;
	}

getMapURL 方法使用了一个名为 encodeAddress 的辅助方法。该方法将实际地址解码为 Google 可以接受的格式。不必担心,解码过程不是什么高端技术。方法只是用加号替换空格:

private static String encodeAddress(String unEncodedAddress) 
{
	return unEncodedAddress.replace(' ', '+');
}

showDirections 方法

showDirections 方法使用 Google Maps 显示路线,起点是之前创建的 GMapPreference 页面中指定的地址,终点是 Sametime 合作伙伴的实际地址。合作伙伴的实际地址是从 Address Store 中收集来的。与之前介绍的 showMap 方法一样,showDirections 方法使用 Runtime.getRuntime.exec() 方法来启动浏览器应用程序。showDirections 方法依靠 getDirectionsURL 方法的返回字符串作为浏览器调用的参数。

public static void showDirections(String partnerAddress) {
	String browserLocation = Activator.getDefault().getPreferenceStore()
			.getString(PreferenceConstants.BROWSER_LOCATION);
	try {
		Runtime.getRuntime().exec(
				browserLocation + " " + getDirectionsURL(partnerAddress));
	} catch (IOException e) {
		e.printStackTrace();
	} catch (Exception e) {
		showErrorMessage(e.getMessage(), "Preference Store Error");
	}
}

getDirectionsURL 方法

给定一位 Sametime 合作伙伴的实际地址(从 Address Store 中收集而来),getDirectionsURL 方法为显示行车路线的 Web 页面构造一个 Google Map URL 地址。getDirectionsURL 方法收集 PreferenceStore 中的地址,将其作为起点地址:

private static String getDirectionsURL(String toAddress) throws Exception {
String myAddress = Activator.getDefault().getPreferenceStore()
		.getString(PreferenceConstants.MY_LOCATION);
if ((myAddress==null) || (myAddress.trim().equals("")))
{
		throw new Exception("No originating address specified 
		in the preference store.");
}
String sourceUrlFragment = "http://maps.google.com/maps?f=d&hl=en&saddr=";
String destinationURLFragment = "&daddr=";
String endURLFragment = "&om=1";
return sourceUrlFragment + encodeAddress(myAddress)
		+ destinationURLFragment + encodeAddress(toAddress)
		+ endURLFragment;
}

getDirectionsURL 方法利用了 encodeAddress 方法(getMapURL 方法也是如此),将实际地址转换成 Google Map 可以接受的格式。

showErrorMessage 方法

在 “Address Store” 部分中您将看到,定义 Sametime 合作伙伴实际地址的重担落在了 Lotus Sametime 客户机用户的身上。如果用户未指定过一个 Sametime 合作伙伴的地址,而又想获得其所在地地图或行车路线,showErrorMessage 方法将以消息框的形式显示一条错误消息,如图 11 所示:


图 11. 地址错误消息
地址错误消息

产生这样一个错误对话框的逻辑是在 showErrorMessage 方法中实现的:

public static void showErrorMessage(String id, String text) {
	Shell shell = new Shell();
	MessageBox messageBox = new MessageBox(shell);
	messageBox.setMessage(id);
	messageBox.setText(text);
	messageBox.open();
}

使用 AddressStore 对象

您可能非常迷惑,Location Partner 插件是如何发现 Sametime 合作伙伴的实际地址的?为简单起见,如 “收集您的 Sametime 合作伙伴所在位置” 一节中所述,我们将发现过程设计得非常简单。一名 Sametime 用户负责填写属性文件,该文件又被读入 ResourceBundle。只要 Locate Partner 插件需要了解 Sametime 合作伙伴的实际地址(以便显示地图或路线),AddressStore 类就会引用 ResourceBundle。

public class AddressStore {
	private static final String BUNDLE_NAME = 
	"com.devworks.example.map.map"; //$NON-NLS-1$,
private AddressStore() { }
public static String getStreetAddress(String partnerId) { ResourceBundle RESOURCE_BUNDLE = ResourceBundle .getBundle(BUNDLE_NAME); try { return RESOURCE_BUNDLE.getString(partnerId); } catch (MissingResourceException e) { return null; } } }

AddressStore 对象由 MapLookup 和 DirectionsLookup 这两个类使用,稍后我们将介绍这两个类。





回页首


扩展和扩展点

我们之前发表的 developerWorks Lotus 文章 “Extending the Lotus Sametime client with an LDAP directory lookup plug-in” 深入介绍了创建 Eclipse 插件的主题。如果您还不熟悉 Eclipse 中扩展点、扩展和插件的概念,我们建议您立即去阅读那篇文章,然后再继续学习。概括地说,Eclipse 插件就是一个插入 Eclipse 平台的组件。插件可配置为插入 Eclipse 平台的用户界面。Eclipse 插件可使用扩展点模式定义扩展点。扩展点模式定义了一个名为扩展器插件的插件如何通过声明扩展而修改主插件。扩展点是在主插件上定义的,而扩展是由扩展器插件声明的。

例如,一个扩展点可以定义一种修改主插件菜单项的途径。Lotus Sametime 7.5 客户机有一个插件定义了 ID 为 com.ibm.collaboration.realtime.people.personAction 的扩展点。在这篇文章中,您创建一个扩展,扩展该扩展点的功能性。更具体地来说,您添加了图 1 所示的 Google Map 和 Google Map Directions 功能性。

地图查找扩展

在之前介绍的 MapUtilities 中创建好了地图查找功能性之后,您需要找到一种途径,使用户能够通过 Sametime GUI 访问此功能。Lotus Sametime API 提供了一个扩展点,可向右击 Sametime 合作伙伴时(调用上下文菜单)显示的项列表中添加菜单项。要添加您自己的菜单项,将以下代码添加到项目的 plugin.xml 文件中,从而扩展 com.ibm.collaboration.realtime.people.personAction 扩展点:

<extension point="com.ibm.collaboration.realtime.people.personAction">
	<personAction
		class="com.devworks.example.map.MapLookup"
		id="com.devworks.example.map.MapLookup"
		label="Google Map"/>
</extension>

上述 XML 代码中,class 属性的值是一个扩展 RefreshPersonAction 类的 Java 类的名称。也就是说,您确定出,在 Google Map 菜单项被选中时调用 com.devworks.example.map.MapLookup 类。id 属性的值是扩展的惟一 ID。我们使用完全限定类名(com.devworks.example.map.MapLookup)作为惟一 ID。

MapLookup 类如下。

public class MapLookup extends RefreshPersonAction {
	public void runWithEvent(Event arg0) {
		super.runWithEvent(arg0);
		IPerson person = getPersons()[0];
		if (person != null) {
			String id = person.getContactId();
			System.out.println("Performing Lookup for" + id); //$NON-NLS-1$
			String partnerAddress = AddressStore.getStreetAddress(id);
			if (partnerAddress != null)
				MapUtilities.showMap(partnerAddress);
			else 
				MapUtilities.showErrorMessage("No street address found for:" 
				+ id, "Partner not Found");
		}
	}
}

当 Google Map 菜单项被选中时,runWithEvent 方法即被触发。在这个方法中,您提取了为其选中 Google Map 菜单项的 Sametime 合作伙伴的联系人 ID。然后在 AddressStore 对象中为该合作伙伴查找相关的实际地址。最终,调用 showMap 方法,在浏览器窗口中为 Sametime 用户显示 Sametime 合作伙伴的 Google Map。参见图 12。


图 12. Sametime 合作伙伴的 Google map
Sametime 合作伙伴的 Google map

路线查找扩展

与地图查找扩展相同,您再一次地使用 com.ibm.collaboration.realtime.people.personAction 扩展点来添加一个菜单项,但这一次您的菜单项名为 Google Map Directions。与地图查找扩展类似,将以下扩展定义添加到 plugin.xml 文件中:

<extension point="com.ibm.collaboration.realtime.people.personAction">
	<personAction
		class="com.devworks.example.map.DirectionsLookup"
		id="com.devworks.example.map.DirectionsLookup"
		label="Google Map Directions"/>
</extension>

上述扩展定义中,class 属性的值是:com.devworks.example.map.DirectionsLookup,这是扩展 RefreshPersonAction 类的类名称。为 Sametime 合作伙伴选中了 Google Map Directions 上下文菜单项时,com.devworks.example.map.DirectionsLookup 类即被调用。id 属性的值是该扩展的惟一 ID。我们使用完全限定类名(com.devworks.example.map.DirectionsLookup)作为惟一 ID。

DirectionsLookup 类如下所示:

public class DirectionsLookup extends RefreshPersonAction {
	public void runWithEvent(Event arg0) {
		super.runWithEvent(arg0);
		IPerson person = getPersons()[0];
		if (person != null) {
			String id = person.getContactId();
			System.out.println("Performing Lookup for" + id);
			String partnerAddress = AddressStore.getStreetAddress(id);
			if (partnerAddress != null)
				MapUtilities.showDirections(partnerAddress);
			else 
				MapUtilities.showErrorMessage("No street address found for:" 
				+ id, "Partner not Found");
		}
	}
}

当 Google Map Directions 菜单项被选中时,DirectionsLookup 类的 runWithEvent 方法被触发。在这个方法中,我们收集为其选中 Google Map Directions 上下文菜单项的 Sametime 合作伙伴的联系人 ID。然后在 AddressStore 对象中查找与这个 Sametime 合作伙伴相关联的实际地址。最终,调用 MapUtilities 类的 showDirections 方法,使用 Google Maps 基于浏览器的路线指南产品来显示前往合作伙伴所在地址的路线。参见图 13。


图 13. Sametime 合作伙伴的 Google map directions
Sametime 合作伙伴的 Google map directions




回页首


在 Eclipse 测试平台内测试

Eclipse IDE 提供了一种工具,可基于 Eclipse 平台测试应用程序,要在 Eclipse IDE 内运行 Lotus Sametime 7.5,请按以下步骤操作:

  1. 选择 Run - Run。
  2. 在左窗格中,右击 Eclipse Application。在弹出的菜单中选择 New。
  3. 选择 New 之后,右窗格中将显示出一个带有配置信息的页面。将配置命名为 Sametime with Google Map(参见图 14)。接受其他默认配置,并单击 Run。

    图 14. Run 对话框
    Run 对话框

  4. 单击 run 后,即出现 Lotus Sametime 7.5 登录提示。按您平时登录的方法登录。Lotus Sametime 7.5 现在已添加了 Google map 功能。





回页首


部署到 Lotus Sametime Connect

要将此部署到 Lotus Sametime,您需要创建一个 Install/Update 站点。要了解 Install/Update 站点的更多内容,请阅读 Eclipse 文章 “How to Keep Up to Date”,以了解 Install/Update 站点和客户机 Update Manager 的更多内容。





回页首


结束语

如果您跟我们一样,我们要与全国范围(以及全世界范围!)的 Sametime 合作伙伴打交道。有时,您需要了解您的 Sametime 合作伙伴身处何处,这样才能前去与他们会面。在这篇文章中,我们为您介绍了如何将 Google Maps 产品与 Lotus Sametime 的可扩展性配合使用。您看到了 Lotus Sametime 客户机基于 Eclipse 的基础设施是怎样带来了可为您所利用的可扩展性机遇。特别地,您还了解了 Eclipse 首选项,这允许用户自定义其基于 Eclipse 的体验。






回页首


下载

描述名字大小下载方法
Sample Google Maps plug-inGoogleMapSource.zip9KBHTTP
关于下载方法的信息


参考资料

学习

获得产品和技术

讨论


作者简介

Mark Talbot 在 IBM 担任 Industry Solutions 的开发人员。您可通过 talbotm@us.ibm.com 联系 Mark。


Kulvir Singh Bhogal 是 IBM Software Services for WebSphere 的顾问,在全美国范围内的客户站点处设计和实现以 J2EE 为中心的解决方案。您可通过 kbhogal@us.ibm.com 联系 Kulvir。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

将您的建议发给我们或者通过参加讨论与其他人分享您的想法.




回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款