Changeset 739

Show
Ignore:
Timestamp:
06/22/07 12:59:34 (2 years ago)
Author:
koshi
Message:

beansプラグインのアーキテクチャ変更に伴う修正, @Entity/@Id自動取得

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/plugins/org.jalcedo.generator.client.jpa.ui/src/org/jalcedo/generator/client/jpa/ui/JpaEntityEditorGeneratorUIActivator.java

    r611 r739  
    11package org.jalcedo.generator.client.jpa.ui; 
    22 
     3import org.eclipse.jface.resource.ImageDescriptor; 
    34import org.eclipse.ui.plugin.AbstractUIPlugin; 
    45import org.osgi.framework.BundleContext; 
     
    4849    } 
    4950 
     51    /** 
     52     * Returns an image descriptor for the image file at the given 
     53     * plug-in relative path 
     54     * 
     55     * @param path the path 
     56     * @return the image descriptor 
     57     */ 
     58    public static ImageDescriptor getImageDescriptor(String path) { 
     59        return imageDescriptorFromPlugin(PLUGIN_ID, path); 
     60    } 
    5061} 
  • trunk/plugins/org.jalcedo.generator.client.jpa.ui/src/org/jalcedo/generator/client/jpa/ui/internal/resource/Messages.java

    r612 r739  
    2727    private Messages() { 
    2828    } 
    29     public static String ProjectConfiguration_0; 
    30     public static String ProjectConfiguration_1; 
    31     public static String ProjectConfiguration_2; 
    3229     
    3330    public static String ProjectConfiguration_Edit_ManifestMF_Error; 
  • trunk/plugins/org.jalcedo.generator.client.jpa.ui/src/org/jalcedo/generator/client/jpa/ui/internal/resource/messages.properties

    r612 r739  
    1111 
    1212ProjectConfiguration_IO_ERROR=IO error occured. 
    13 ProjectConfiguration_0=org.eclipse.core.runtime 
    14 ProjectConfiguration_1=org.eclipse.jface 
    15 ProjectConfiguration_2=org.eclipse.ui 
    1613ProjectConfiguration_CANNOT_CLOSE=Cannot close file. 
    1714ProjectConfiguration_FILE_NOT_FOUND=File not found. 
  • trunk/plugins/org.jalcedo.generator.client.jpa.ui/src/org/jalcedo/generator/client/jpa/ui/internal/wizards/EntitySelectionPage.java

    r670 r739  
    1111package org.jalcedo.generator.client.jpa.ui.internal.wizards; 
    1212 
     13import java.beans.Introspector; 
     14import java.util.ArrayList; 
     15import java.util.Collection; 
     16 
    1317import org.eclipse.core.resources.IProject; 
     18import org.eclipse.core.resources.IProjectDescription; 
     19import org.eclipse.core.runtime.CoreException; 
    1420import org.eclipse.core.runtime.IStatus; 
    1521import org.eclipse.jdt.core.ICompilationUnit; 
    1622import org.eclipse.jdt.core.IJavaElement; 
    17 import org.eclipse.jdt.core.IJavaProject; 
     23import org.eclipse.jdt.core.IPackageFragment; 
    1824import org.eclipse.jdt.core.IType; 
    1925import org.eclipse.jdt.core.JavaModelException; 
    20 import org.eclipse.jdt.ui.IJavaElementSearchConstants; 
    21 import org.eclipse.jdt.ui.JavaUI; 
     26import org.eclipse.jdt.core.dom.AST; 
     27import org.eclipse.jdt.core.dom.ASTParser; 
     28import org.eclipse.jdt.core.dom.IBinding; 
     29import org.eclipse.jdt.core.dom.ITypeBinding; 
    2230import org.eclipse.jdt.ui.wizards.NewTypeWizardPage; 
     31import org.eclipse.jface.viewers.ArrayContentProvider; 
     32import org.eclipse.jface.viewers.CheckboxTableViewer; 
     33import org.eclipse.jface.viewers.ISelectionChangedListener; 
    2334import org.eclipse.jface.viewers.IStructuredSelection; 
     35import org.eclipse.jface.viewers.LabelProvider; 
     36import org.eclipse.jface.viewers.SelectionChangedEvent; 
    2437import org.eclipse.swt.SWT; 
    25 import org.eclipse.swt.events.ModifyEvent; 
    26 import org.eclipse.swt.events.ModifyListener; 
    27 import org.eclipse.swt.events.SelectionAdapter; 
    28 import org.eclipse.swt.events.SelectionEvent; 
    2938import org.eclipse.swt.layout.GridData; 
    3039import org.eclipse.swt.layout.GridLayout; 
     
    3241import org.eclipse.swt.widgets.Composite; 
    3342import org.eclipse.swt.widgets.Label; 
    34 import org.eclipse.swt.widgets.Text; 
    35 import org.eclipse.ui.IWorkbenchWindow; 
    36 import org.eclipse.ui.PlatformUI; 
    37 import org.eclipse.ui.dialogs.SelectionDialog; 
     43import org.jalcedo.generator.client.jpa.JpaEditorGeneratorActivator; 
     44import org.jalcedo.generator.client.jpa.model.TargetEntity; 
    3845 
    3946/** 
    40  * BeanEditorを生成するために必要な値を入力するフォームを表示するWizardPage. 
     47 * EntityEditorを生成するために必要な値を入力するフォームを表示するWizardPage. 
    4148 * <p> 
    4249 * 以下の入力項目がある。ウィザード起動時のユーザの選択からデフォルト値を 
    4350 * 設定するが、値が取得できない場合はユーザに入力してもらう必要がある。 
    4451 * <ul> 
    45  * <li>BeanEditorを出力するソースフォルダ。</li> 
    46  * <li>BeanEditorを出力するルートとなるパッケージ名。</li> 
    47  * <li>ターゲットとなるBean。</li> 
     52 * <li>EntityEditorを出力するソースフォルダ。</li> 
     53 * <li>EntityEditorを出力するルートとなるパッケージ名。</li> 
     54 * <li>ターゲットとなるEntity。</li> 
    4855 * <li>jalcedoのライブラリを追加するかどうか.</li> 
    4956 * <li>生成したView をプラグインに登録するかどうか.</li> 
    5057 * </ul> 
    51  * @author nozawa 
     58 * @author nozawa, koshi 
    5259 *  
    5360 */ 
    54 // TODO add contents assistant to beanTypeText. 
    5561public class EntitySelectionPage extends NewTypeWizardPage { 
    56     private IJavaProject javaProject; 
    57  
    58     private Text beanTypeText; 
    59  
    60     private IType beanType = null; 
    61  
    6262    private Button libraryAddCheckBox; 
    6363 
    6464    private Button extensionAddCheckBox; 
    6565 
     66    private CheckboxTableViewer entityTables; 
     67     
     68    private Collection<TargetEntity> entity = new ArrayList<TargetEntity>(); 
     69     
     70    private String JPA_ID = "Id"; 
     71 
     72    private String JPA_ENTITY = "Entity"; 
     73     
    6674    public EntitySelectionPage() { 
    6775        super(true, "EntitySelectionPage"); 
    68         setTitle("BeanSlectionPage"); 
    69         setDescription("select target bean"); 
    70  
     76        setTitle("EntitySlectionPage"); 
     77        setDescription("select target entity"); 
    7178    } 
    7279 
     
    7986        IJavaElement javaElement = getInitialJavaElement(selection); 
    8087        initContainerPage(javaElement); 
    81         initTypePage(javaElement); 
    82         initBeanType(javaElement); 
    83         javaProject = javaElement.getJavaProject(); 
    84     } 
    85  
    86     /** 
    87      *  
    88      * ユーザの選択した要素が java クラスのモデルだったとき、 
    89      * そのクラスを TargetBean の デフォルト値に設定する。 
    90      *  
    91      * @param javaElement 
    92      */ 
    93     private void initBeanType(IJavaElement javaElement) { 
    94         if (javaElement instanceof IType) { 
    95             beanType = (IType) javaElement; 
    96         } else if (javaElement instanceof ICompilationUnit) { 
    97             beanType = ((ICompilationUnit) javaElement).findPrimaryType(); 
    98         } 
     88        setEntity(); 
    9989    } 
    10090 
     
    122112        createSeparator(composite, nColumns); 
    123113 
    124         createBeanSelectionControls(composite, nColumns); 
     114        createEntitySelectionControls(composite, nColumns); 
    125115         
    126116        createOptionCheckBoxes(composite, nColumns); 
    127117         
     118//      doValidate(); 
    128119        setControl(composite); 
    129120    } 
     
    134125     *  
    135126     */ 
    136     private void doStatusUpdate() { 
     127    private void doValidate() { 
    137128        IStatus[] status = new IStatus[] { fContainerStatus, fPackageStatus }; 
    138129        updateStatus(status); 
    139  
    140         if (beanType == null) { 
    141             setErrorMessage("Input fully qualified name of TargetBean."); 
     130        if(this.getCheckedEntity().length == 0){ 
     131            setErrorMessage("Select entity class"); 
    142132            setPageComplete(false); 
    143133            return; 
    144         } 
     134        }else if (!hasPluginNature(this.getJavaProject().getProject())) { 
     135            setErrorMessage("Project is not a plug-in project. Select a plugin project or convert this to a plugin project. "); 
     136            setPageComplete(false); 
     137            return; 
     138        } 
     139    } 
     140 
     141    /** 
     142     * プロジェクトが PluginNature を持っているか判別する 
     143     *  
     144     * @param project 
     145     * @return 
     146     */ 
     147    private boolean hasPluginNature(IProject project) { 
     148        IProjectDescription description; 
     149        try { 
     150            description = project.getDescription(); 
     151            return description.hasNature("org.eclipse.pde.PluginNature"); 
     152        } catch (CoreException e) { 
     153            e.printStackTrace(); 
     154        } 
     155        return false; 
    145156    } 
    146157 
     
    150161    protected void handleFieldChanged(String fieldName) { 
    151162        super.handleFieldChanged(fieldName); 
    152         doStatusUpdate(); 
    153     } 
    154  
    155     /** 
    156      * TargetBean 選択の項目を作成する。 
     163        IStatus[] status = new IStatus[] { fContainerStatus, fPackageStatus }; 
     164        updateStatus(status); 
     165    } 
     166 
     167    /* (non-Javadoc) 
     168     * @see org.eclipse.jdt.ui.wizards.NewElementWizardPage#setVisible(boolean) 
     169     */ 
     170    @Override 
     171    public void setVisible(boolean visible) { 
     172        super.setVisible(visible); 
     173        doValidate(); 
     174    } 
     175 
     176    /** 
     177     * TargetEntity 選択の項目を作成する。 
    157178     *  
    158179     * @param composite 
    159180     * @param nColumns 
    160181     */ 
    161     private void createBeanSelectionControls(Composite composite, int nColumns) { 
     182    private void createEntitySelectionControls(Composite composite, int nColumns) { 
    162183        Label label = new Label(composite, SWT.NULL); 
    163         label.setText("&Target Bean:"); 
    164  
    165         beanTypeText = new Text(composite, SWT.BORDER | SWT.SINGLE); 
    166         GridData gd = new GridData(GridData.FILL_HORIZONTAL); 
    167         gd.horizontalSpan = nColumns - 2; 
    168         beanTypeText.setLayoutData(gd); 
    169         beanTypeText.addModifyListener(new BeanTypeTextModifyListener()); 
    170  
    171         Button button = new Button(composite, SWT.PUSH); 
    172         GridData gd2 = new GridData(GridData.FILL_HORIZONTAL); 
    173         button.setText("Browse..."); 
    174         button.setLayoutData(gd2); 
    175         button.addSelectionListener(new ChooseBeanButtonSelectionAdapter()); 
    176     } 
    177  
     184        label.setText("&Target Entity:"); 
     185         
     186        GridData gd = new GridData(GridData.FILL_BOTH); 
     187        gd.horizontalSpan = nColumns; 
     188        entityTables = CheckboxTableViewer.newCheckList(composite, SWT.BORDER | SWT.V_SCROLL); 
     189        entityTables.setContentProvider(new ArrayContentProvider()); 
     190        entityTables.setLabelProvider(new EntitySelectionLabelProvider()); 
     191        entityTables.getTable().setLayoutData(gd); 
     192        entityTables.addSelectionChangedListener(new EntitySelectionChangedListener()); 
     193        entityTables.setInput(this.entity); 
     194    } 
     195 
     196    private void setEntity(){ 
     197        ASTParser parser= ASTParser.newParser(AST.JLS3); 
     198        try { 
     199            for (IJavaElement pkg : getPackageFragmentRoot().getChildren()) { 
     200                for (ICompilationUnit unit : ((IPackageFragment)pkg).getCompilationUnits()) { 
     201                    for (IType type : unit.getAllTypes()) { 
     202                        parser.setSource(type.getCompilationUnit()); 
     203                        IBinding[] bindings= parser.createBindings(new IJavaElement[] { type }, null); 
     204                        if (bindings.length == 1 && bindings[0] instanceof ITypeBinding) { 
     205                            if(this.equalsAnnotation(bindings[0], JPA_ENTITY)){ 
     206                                for(IBinding field: ((ITypeBinding)bindings[0]).getDeclaredFields()){ 
     207                                    if(this.equalsAnnotation(field, JPA_ID)){ 
     208                                        String propertyName = field.getName().substring(0, 1).toUpperCase() + field.getName().substring(1); 
     209                                        propertyName = Introspector.decapitalize(propertyName); 
     210                                        this.entity.add(JpaEditorGeneratorActivator.getDefault().createTargetEntity(type, propertyName)); 
     211                                    } 
     212                                } 
     213                                for(IBinding method: ((ITypeBinding)bindings[0]).getDeclaredMethods()){ 
     214                                    if(this.equalsAnnotation(method, JPA_ID)){ 
     215                                        String propertyName = Introspector.decapitalize(method.getName().substring(3)); 
     216                                        this.entity.add(JpaEditorGeneratorActivator.getDefault().createTargetEntity(type, propertyName)); 
     217                                    } 
     218                                } 
     219                            } 
     220                        } 
     221                    } 
     222                } 
     223            } 
     224        } catch (JavaModelException e) { 
     225            // TODO Auto-generated catch block 
     226            e.printStackTrace(); 
     227        } 
     228    } 
     229     
     230    private boolean equalsAnnotation(IBinding element, String annotationName){ 
     231        for(IBinding annotation : element.getAnnotations()){ 
     232            if(annotation.getName().equalsIgnoreCase(annotationName)){ 
     233                return true; 
     234            } 
     235        } 
     236        return false; 
     237    } 
     238     
     239    /** 
     240     * TargetEntityのモデルを取得する 
     241     *  
     242     * @return TargetEntityのモデル 
     243     */ 
     244    public Object[] getCheckedEntity(){ 
     245        return entityTables.getCheckedElements(); 
     246    } 
     247     
    178248    /** 
    179249     * オプション選択のチェックボックスを作成する。 
     
    199269 
    200270    /** 
    201      * BeanTypeの入力テキストボックスを取得する 
    202      * @return 
    203      */ 
    204     public Text getBeanTypeText() { 
    205         return beanTypeText; 
    206     } 
    207  
    208     /** 
    209      * TargetBeanのモデルを取得する 
    210      *  
    211      * @return TargetBeanのモデル 
    212      */ 
    213     public IType getBeanType() { 
    214         return beanType; 
    215     } 
    216  
    217     /** 
    218271     * ライブラリ追加のオプションの値を取得する 
    219272     *  
     
    233286    } 
    234287 
    235     /* (non-Javadoc) 
    236      * @see org.eclipse.jdt.ui.wizards.NewElementWizardPage#setVisible(boolean) 
    237      */ 
    238     @Override 
    239     public void setVisible(boolean visible) { 
    240         super.setVisible(visible); 
    241         if (beanType != null) { 
    242             beanTypeText.setText(beanType.getFullyQualifiedName()); 
    243         } 
    244         doStatusUpdate(); 
    245     } 
    246  
    247     /** 
    248      * TargetBean 入力のテキストボックスの値が変更されたとき、そのクラスが 
    249      * 存在するか調べ、値のチェックを実行する。 
    250      *  
    251      * @author nozawa 
    252      *  
    253      */ 
    254     class BeanTypeTextModifyListener implements ModifyListener { 
    255  
    256         public void modifyText(ModifyEvent event) { 
    257             try { 
    258                 beanType = javaProject.findType(beanTypeText.getText());         
    259                 doStatusUpdate(); 
    260             } catch (JavaModelException e) { 
    261                 setMessage(e.getMessage()); 
     288    class EntitySelectionChangedListener implements ISelectionChangedListener{ 
     289        public void selectionChanged(SelectionChangedEvent event) { 
     290            doValidate(); 
     291        } 
     292         
     293    } 
     294     
     295    class EntitySelectionLabelProvider extends LabelProvider { 
     296        public String getText(Object obj) { 
     297            String text = null; 
     298            if (obj instanceof TargetEntity) { 
     299                text = ((TargetEntity) obj).getEntity().getFullyQualifiedName(); 
    262300            } 
    263         } 
    264     } 
    265  
    266     /** 
    267      * TargetBean 入力項目のボタンが押されたとき、bean選択ダイアログを表示し、 
    268      * 値をテキストボックスにセットする。 
    269      *  
    270      * @author nozawa 
    271      *  
    272      */ 
    273     class ChooseBeanButtonSelectionAdapter extends SelectionAdapter { 
    274  
    275         public void widgetSelected(SelectionEvent e) { 
    276             IType choosedBean = chooseTargetBean(javaProject.getProject()); 
    277             beanTypeText.setText(choosedBean.getFullyQualifiedName()); 
    278         } 
    279  
    280         /** 
    281          * Open type selection dialog, and it returns IType of choosed bean. 
    282          *  
    283          * @param project 
    284          * @return IType of choosed bean 
    285          */ 
    286         private IType chooseTargetBean(IProject project) { 
    287             IWorkbenchWindow window = PlatformUI.getWorkbench() 
    288                     .getActiveWorkbenchWindow(); 
    289  
    290             try { 
    291                 SelectionDialog dialog = JavaUI.createTypeDialog(window 
    292                         .getShell(), window, project, 
    293                         IJavaElementSearchConstants.CONSIDER_ALL_TYPES, false); 
    294                 dialog.setTitle("select Bean"); 
    295                 dialog.setMessage("Select Bean:"); 
    296  
    297                 if (dialog.open() == SelectionDialog.OK) { 
    298                     Object[] selection = dialog.getResult(); 
    299                     return (IType) selection[0]; 
    300                 } 
    301             } catch (JavaModelException e) { 
    302                 setMessage(e.getMessage()); 
    303             } 
    304             return null; 
    305         } 
    306  
    307     } 
    308  
     301            return text; 
     302        } 
     303    } 
    309304} 
     305 
  • trunk/plugins/org.jalcedo.generator.client.jpa.ui/src/org/jalcedo/generator/client/jpa/ui/internal/wizards/JpaEditorGenerateWizard.java

    r670 r739  
    1616import org.eclipse.core.runtime.CoreException; 
    1717import org.eclipse.core.runtime.IProgressMonitor; 
     18import org.eclipse.core.runtime.IStatus; 
     19import org.eclipse.core.runtime.Status; 
    1820import org.eclipse.jdt.core.IPackageFragment; 
    1921import org.eclipse.jdt.core.IPackageFragmentRoot; 
    2022import org.eclipse.jdt.core.IType; 
     23import org.eclipse.jface.dialogs.ErrorDialog; 
    2124import org.eclipse.jface.viewers.IStructuredSelection; 
    2225import org.eclipse.jface.wizard.Wizard; 
     
    2427import org.eclipse.ui.IWorkbench; 
    2528import org.eclipse.ui.actions.WorkspaceModifyOperation; 
    26 import org.jalcedo.generator.client.jpa.JpaSourceGenerator; 
    27 import org.jalcedo.generator.client.jpa.ui.internal.config.ProjectConfiguration; 
    2829import org.jalcedo.generator.client.beans.BeanEditorGeneratorActivator; 
    2930import org.jalcedo.generator.client.beans.model.BeanEditorInfo; 
    3031import org.jalcedo.generator.client.beans.model.TargetBean; 
     32import org.jalcedo.generator.client.jpa.JpaSourceGenerator; 
     33import org.jalcedo.generator.client.jpa.model.TargetEntity; 
     34import org.jalcedo.generator.client.jpa.ui.JpaEntityEditorGeneratorUIActivator; 
     35import org.jalcedo.generator.client.jpa.ui.internal.config.ProjectConfiguration; 
    3136 
    3237/** 
     
    3641public class JpaEditorGenerateWizard  extends Wizard implements INewWizard { 
    3742    private EntitySelectionPage entitySelectionPage; 
    38      
    39     private IdSelectionPage idSelectionPage; 
    4043     
    4144    private PersistenceUnitSelectionPage persistenceUnitSelectionPage; 
     
    6164            @Override 
    6265            protected void execute(IProgressMonitor monitor) throws CoreException, InvocationTargetException, InterruptedException { 
    63                 TargetBean targetBean = createTargetBean(entitySelectionPage.getBeanType(), idSelectionPage.getIdName()); 
    64                 BeanEditorInfo entityEditorInfo = createBeanEditorInfo(targetBean, entitySelectionPage.getPackageFragment()); 
    65                 JpaSourceGenerator jpaSourceGenerator = new JpaSourceGenerator(persistenceUnitSelectionPage.getPersistenceUnitName()); 
    66                 jpaSourceGenerator.generateAll(entityEditorInfo, monitor); 
    67                  
    68                 IProject project = entityEditorInfo.getTargetSourceDir().getJavaProject().getProject(); 
    69  
    70                 ProjectConfiguration config = new ProjectConfiguration(project); 
    71                 if (entitySelectionPage.getLibraryAddCheck()) { 
    72                     config.addJalcedoLibraryDependency(monitor); 
     66                try { 
     67                    BeanEditorGeneratorActivator generatorPlugin = BeanEditorGeneratorActivator.getDefault(); 
     68                    JpaSourceGenerator jpaSourceGenerator = new JpaSourceGenerator(persistenceUnitSelectionPage.getPersistenceUnitName()); 
     69                    BeanEditorInfo entityEditorInfo = null; 
     70                    for(Object obj : entitySelectionPage.getCheckedEntity()){ 
     71                        TargetEntity entityType = (TargetEntity)obj; 
     72                        TargetBean targetBean = generatorPlugin.createTargetBean(entityType.getEntity(), entityType.getId()); 
     73                        entityEditorInfo = generatorPlugin.createBeanEditorInfo(targetBean, entitySelectionPage.getPackageFragment()); 
     74                        jpaSourceGenerator.generateAll(entityEditorInfo, monitor); 
     75                    } 
     76                     
     77                    IProject project = entityEditorInfo.getTargetSourceDir().getJavaProject().getProject(); 
     78     
     79                    ProjectConfiguration config = new ProjectConfiguration(project); 
     80                    if (entitySelectionPage.getLibraryAddCheck()) { 
     81                        config.addJalcedoLibraryDependency(monitor); 
     82                    } 
     83             
     84                    if (entitySelectionPage.getExtensionAddCheck()) { 
     85                        config.addBeanEditorToPluginXml(entityEditorInfo, monitor); 
     86                    } 
     87                }finally{ 
     88                    monitor.done(); 
    7389                } 
    74          
    75                 if (entitySelectionPage.getExtensionAddCheck()) { 
    76                     config.addBeanEditorToPluginXml(entityEditorInfo, monitor); 
    77                 } 
    78                  
    79                 monitor.done(); 
    8090            } 
    8191        }; 
     
    8494            this.getContainer().run(false, false, operation); 
    8595        } catch (InvocationTargetException e) { 
    86             // TODO 例外処理 
     96            IStatus status = new Status(IStatus.ERROR, JpaEntityEditorGeneratorUIActivator.PLUGIN_ID, IStatus.OK, e.getCause().getMessage(), e); 
     97            JpaEntityEditorGeneratorUIActivator.getDefault().getLog().log(status); 
     98            ErrorDialog.openError(this.getShell(), "ERROR", "Error occured. ", status); 
    8799            e.printStackTrace(); 
    88             System.out.println(e.getCause()); 
    89100        } catch (InterruptedException e) { 
    90             // TODO 例外処理 
     101            IStatus status = new Status(IStatus.ERROR, JpaEntityEditorGeneratorUIActivator.PLUGIN_ID, IStatus.OK, e.getCause().getMessage(), e); 
     102            JpaEntityEditorGeneratorUIActivator.getDefault().getLog().log(status); 
     103            ErrorDialog.openError(this.getShell(), "ERROR", "Error occured.", status); 
    91104            e.printStackTrace(); 
    92105        } 
     
    95108    } 
    96109     
    97     /** 
    98      * 各ページの内容から、BeanEditorInfoを生成する. 
    99      *  
    100      * @return entityEditorInfo 
    101      */ 
    102     //TODO BeanEditorGenerateWizardのメソッドをpublicにする or @Override 
    103     private BeanEditorInfo createBeanEditorInfo(TargetBean targetBean, IPackageFragment packageFragment) { 
    104         return BeanEditorGeneratorActivator.getDefault().createBeanEditorInfo(targetBean, packageFragment); 
    105     } 
    106  
    107     private TargetBean createTargetBean(IType entityType, String idName) throws CoreException { 
    108         return BeanEditorGeneratorActivator.getDefault().createTargetBean(entityType, idName); 
    109     } 
    110  
    111110    /* 
    112111     * (non-Javadoc) 
     
    125124        entitySelectionPage.init(this.selection); 
    126125        addPage(entitySelectionPage); 
    127  
    128         idSelectionPage = new IdSelectionPage(); 
    129         addPage(idSelectionPage); 
    130126         
    131127        persistenceUnitSelectionPage = new PersistenceUnitSelectionPage();