三.模块介绍
BDK的主要模块分为:设计面板,工具栏,属性浏览器,跟踪器和工具类。前三者主要是界面的表示,工具类是一个包含封装,Jar文件加载,类编译,事件监听等等。
启动过程
从BDK的启动过程可以了解各个模块的启动顺序,和初始化过程,了解各项资源的配置,以及模块之间的配合。
这是BeanBoxFrame的类图,由Jbuilder8自动产生的UML图。
通过源代码分析,可以得到以下流程图:
1. BeanBoxFrame的初始化:
BeanBoxFrame的界面如下:
通过源代码分析,可以得到以下流程图:
2. ToolBox的初始化
ToolBox的界面如下:
通过源代码分析,可以得到工具条的初始化主要是以下代码来实现:
if (! BeanBoxFrame.getQuickStart()) {
Vector jarNames = getJarNames();
for (int i = 0; i < jarNames.size(); i++) {
String name = (String)jarNames.elementAt(i);
try {
addBeansInJar(name);
} catch (Throwable th) {
System.err.println(name + ": jar load failed: " + th);
th.printStackTrace();
}
}
}
// Vector jarNames = getJarNames();
private static Vector getJarNames() {
File cwd = new File(System.getProperty("user.dir"));
File pwd = new File(cwd.getParent());
File jars = new File(pwd, "jars");
if (! jars.isDirectory()) {
System.err.println(jars+" is not a directory!!");
}
Vector result = new Vector();
String names[];
names = jars.list(new FileExtension(".jar"));
for (int i=0; i<names.length; i++) {
result.addElement(jars.getPath() + File.separatorChar + names[i]);
}
names = jars.list(new FileExtension(".JAR"));
for (int i=0; i<names.length; i++) {
result.addElement(jars.getPath() + File.separatorChar + names[i]);
}
// addBeansInJar(name);
synchronized void addBeansInJar(String jarFile) throws IOException {
JarLoader.loadJarDoOnBean(jarFile, helper);
doLayout();
}
3. BeanBox的初始化
通过源代码分析,可以得到以下流程图:
4. PropertySheet的初始化
PropertySheet的界面如下:
通过源代码分析,可以得到的setTarget方法的流程图: