Changeset 517

Show
Ignore:
Timestamp:
04/03/07 17:17:53 (2 years ago)
Author:
nozawa
Message:

#43 必要なプラグインがないときにコンパイルできない問題を修正。
org.jalcedo.client.jface, org.eclipse.core.runtime,
org.eclipse.jface, org.eclipse.ui の4つのプラグインの有無を
調べて、なければ追加するようにした。

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/RB-0.9.0/org.jalcedo.client.generator.ui/src/org/jalcedo/client/generator/ui/config/ProjectConfiguration.java

    r430 r517  
    4848 
    4949    private static final String VIEW_EXTENSION_POINT = "org.eclipse.ui.views"; //$NON-NLS-1$ 
     50     
     51    private static final String CORE_RUNTIME_PLUGIN_ID = "org.eclipse.core.runtime"; 
     52     
     53    private static final String JFACE_PLUGIN_ID = "org.eclipse.jface"; 
     54     
     55    private static final String UI_ID = "org.eclipse.ui"; 
    5056 
    5157    private IEditorPart manifestEditor; 
     
    182188 
    183189    /** 
    184      * RequiredPlugin に org.jalcedo.client.jface ライブラリが無い場合 追加する。 
     190     * RequiredPlugin に BeanEditor に必要なライブラリがあるか調べ、無い場合 追加する。 
    185191     *  
    186192     * @param monitor 
     
    191197        IEditorPart editorPart = this.getManifestEditor(); 
    192198        IPluginModel pluginModel = this.getPluginModel(); 
    193  
    194         if (!hasJalcedoPlugin(pluginModel)) { 
    195  
    196             IPluginImport importNode = pluginModel.getPluginFactory() 
    197                     .createImport(); 
    198             try { 
    199                 importNode.setId(JALCEDO_PLUGIN_ID); 
    200                 pluginModel.getPluginBase().add(importNode); 
    201             } catch (CoreException e) { 
    202                 throw createCoreException(Messages.ProjectConfiguration_Edit_ManifestMF_Error,e); 
    203             } 
    204             editorPart.doSave(monitor); 
    205         } 
    206     } 
    207  
    208     /** 
    209      * プラグイン の RequiredPlugin として jalcedo ライブラリが登録 されているか調べる 
    210      *  
    211      * @param pluginModel 
     199        String[] requiredPlugins = { JALCEDO_PLUGIN_ID, CORE_RUNTIME_PLUGIN_ID, JFACE_PLUGIN_ID, UI_ID }; 
     200        for (String pluginId : requiredPlugins) { 
     201            if (!hasRequiredPlugin(pluginModel, pluginId)) { 
     202                importRequiredPlugin(pluginModel, pluginId);         
     203            } 
     204        } 
     205     
     206        editorPart.doSave(monitor); 
     207    } 
     208 
     209    /** 
     210     * 指定したidのプラグインを RequiredPlugin として登録する. 
     211     *  
     212     * @param pluginModel  プラグインのモデル 
     213     * @param pluginId プラグインのID 
     214     * @throws CoreException 
     215     */ 
     216    private void importRequiredPlugin(IPluginModel pluginModel, String pluginId) throws CoreException { 
     217        IPluginImport importNode = pluginModel.getPluginFactory() 
     218                .createImport(); 
     219        try { 
     220            importNode.setId(pluginId); 
     221            pluginModel.getPluginBase().add(importNode); 
     222        } catch (CoreException e) { 
     223            throw createCoreException(Messages.ProjectConfiguration_Edit_ManifestMF_Error,e); 
     224        } 
     225    } 
     226 
     227    /** 
     228     * 指定したidのプラグインが RequiredPlugin として登録されているか調べる. 
     229     *  
     230     * @param pluginModel プラグインのモデル 
     231     * @param pluginId プラグインのID 
    212232     * @return 登録されている場合 true 
    213233     */ 
    214     private boolean hasJalcedoPlugin(IPluginModel pluginModel) { 
     234    private boolean hasRequiredPlugin(IPluginModel pluginModel, String pluginId) { 
    215235        IPluginImport[] imports = pluginModel.getPluginBase().getImports(); 
    216236        for (IPluginImport import1 : imports) { 
    217             if (import1.getId().equals(JALCEDO_PLUGIN_ID)) { 
     237            if (import1.getId().equals(pluginId)) { 
    218238                return true; 
    219239            }