三.模块介绍
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方法的流程图: