InstallAnywhere自定义验证的实现(CustomCodeRule)

本文转自: http://blog.sina.com.cn/s/blog_7750745b010169lx.html

 

1、第一步:添加一个可获取用户输入的面板
详细步骤:Pre Install –> Add Action -> Panels ->Panel: Get User Input - Advanced

[转载]InstallAnywhere自定义验证的实现(CustomCodeRule)

填写Title , Prompt等信息。

[转载]InstallAnywhere自定义验证的实现(CustomCodeRule)




 2、第二步:添加可获取用户输入的控件 添加一些输入控件,如文本框,下拉列表,密码框等。
下拉列表示例(Add Choice Group):
Caption:请选择数据库类型
Component Type:Popup Menu
Configure Components:添加两个项,其它不多描述,注意属性Result Variable 为控件的名称,后面需要根据控件名称获取值。提示:如果下拉项选中,获取的值为1否则为0

[转载]InstallAnywhere自定义验证的实现(CustomCodeRule)



文本框示例(Add Textfield):
值得注意的是:Input Echo Character 选择Normal 则为普通文本框,选择Shadowed 则为密码框。

[转载]InstallAnywhere自定义验证的实现(CustomCodeRule)



各种输入框都有一个属性:Result Variable 相当于HTML控件的ID或者Name,后面需要根据这个名称获取数据,取名格式为:$DATABASE_PASSWORD$ 变量两边使用$符号。 控件好了,现在的业务是:用户选择数据库类型、服务器地址、登录名、密码,验证数据库能否正确连接,如果连接错误出现提示,并停留在当前步骤让用户重新输入数据库配置信息。如果输入正确,不显示对话框,直接跳到下一步。


3、第三步:添加一个提示错误信息的对话框
Add action – Show Message Dialog

[转载]InstallAnywhere自定义验证的实现(CustomCodeRule)


[转载]InstallAnywhere自定义验证的实现(CustomCodeRule)



对话框重要设置:勾上一个Button ,显示信息:确定 If Chosen Return to Previous Panel 返回上一个面板 Continue to Next 继续下一步 Cancel and Exit 退出安装程序 我们选择第一个,验证失败返回到上一个面板。 提示框作用:如果数据库配置错误,弹出提示框,提示用户数据库验证失败,不能进行下一步。如何实现呢?请看下一步,Custom Code Rule的使用。


4、第四步:编写Custom Code Rule 验证数据库连接 要实现上面的业务,就需要编写Custom Code

4.1 在Eclipse 创建一个JAVA项目 创建一个普通的JAVA项目即可,步骤就不再描述了。不知道如何创建JAVA项目的童鞋不适合看本文档!!

4.2 在项目里引用 Install Anywhere 包 步骤:右键项目 –> Build Path -> Add External Archives -> install anywhere 安装目录/IAClasses.zip

4.3 编写JAVA代码验证数据库连接 代码示例:
import com.zerog.ia.api.pub.CustomCodeRule;//导入CustomCodeRule
//编写一个类集成CustomCodeRule
public class ConfigDatabase extends CustomCodeRule{

@Override public boolean evaluateRule() {
//一定要重写evaluateRule 方法
//使用ruleProxy.substitute(控件名称); 获取用户输入
String db_name=(String)ruleProxy.substitute("$DATABASE_NAME$");
String db_userName=(String)ruleProxy.substitute("$DATABASE_USERNAME$");
String db_password=(String)ruleProxy.substitute("$DATABASE_PASSWORD$"); if("".equals(db_name)||"".equals(db_userName)|| "".equals(db_password)){
return true;  //注意:返回true表示验证失败,显示对话框 //返回false则表示验证成功,直接跳过
}else{
//自己干点什么,比如验证数据连接
}
}
}

4.4 验证数据库业务代码 看了上面的代码示例,相信大家对如何写Custom Code Rule 有了一定了解,下面是我的验证数据库业务代码,可供参考。

4.5 导出写好的JAVA代码(JAR文件)

[转载]InstallAnywhere自定义验证的实现(CustomCodeRule)




4.6 为对话框设定Custom Rule验证
步骤:回顾第三步,我们添加了一个对话框,现在点击对话框控件,点击竖向Tab -> Rules -> Add Rule 选择 Evaluate Custom Rule

[转载]InstallAnywhere自定义验证的实现(CustomCodeRule)



添加以后,需要填写下面的信息:
[转载]InstallAnywhere自定义验证的实现(CustomCodeRule)


选择你的jar文件的路径,最好放在打包目录下。
Path:jar文件路径
Class:类名全称,如:com.guoyu.install.ConfigDatabase

[转载]InstallAnywhere自定义验证的实现(CustomCodeRule)



如果Jar包引用到其他项目或Jar包,点击Configure Dependencies 引入即可,我现在用到数据库驱动类jtds-1.2.jar 和 mysql-connector-java-5.16-bin.jar 到这里,数据库的验证就结束了,下面我们来看看效果如何:

5、第五步:安装包演示

MySQL 密码错误:

[转载]InstallAnywhere自定义验证的实现(CustomCodeRule) 


SQLServer配置错误:

[转载]InstallAnywhere自定义验证的实现(CustomCodeRule)



MySQL数据库配置正确,跳到了下一步

[转载]InstallAnywhere自定义验证的实现(CustomCodeRule)

你可能感兴趣的:(InstallAnywhere自定义验证的实现(CustomCodeRule))