在上面的开发工作中,我们已经提到了FMEA是APQP项目的一个扩展,FMEA扩展了APQP中对于FMEA文档的编辑功能。

如果没有FMEA扩展,APQP项目的文档只能通过手工建立。

如果有FMEA扩展,可以通过定义事件的方式,扩展功能。

首先,我们在APQP中建立扩展点:

 

 我们在Apqp项目加载时,读取扩展点(当然也可以在使用的时候读)。我考虑到文档的定义不是特别复杂。所以,在Apqp 的bundle加载时期的读取并保存在bundle中。

代码
    private IExtension[] getConfigurationElement(String extendsionPointID) {
        IExtensionRegistry er 
= Platform.getExtensionRegistry();
        IExtensionPoint ep 
= er.getExtensionPoint(PLUGIN_ID, extendsionPointID);
        
if (ep == null)
            
return null;
        
return ep.getExtensions();
    }



    
private void loadApqpDocument() {
        IExtension[] extList 
= Apqp.getDefault().getConfigurationElement(Apqp.EXTENSIONPOINT_DOCUMENT);    
        
if(extList!=null){
            
for(int i = 0 ; i<extList.length; i++) {
                IConfigurationElement[] elements 
= extList[i].getConfigurationElements();
                        
for (int j = 0; j < elements.length; j++)
                                documentList .add(elements[j]);
            }
        }
    }

    
public void start(BundleContext context) throws Exception {
        
super.start(context);
        plugin 
= this;
        String ouid 
= getPreferenceStore().getString(OPEND_PROJECT);
        
if(!"".equals(ouid)&&ouid!=null){
            workingProject 
= new Project(ouid);
        }
        loadProjectTemplate();
        loadActivityHandler();
        loadApqpDocument();
    }


 

posted on 2009-12-07 10:09  钟华  阅读(521)  评论(0编辑  收藏  举报