Changeset 1196

Show
Ignore:
Timestamp:
10/29/07 19:05:02 (1 year ago)
Author:
nozawa
Message:

implements MasterViewAndDetailEditorWizard?.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.core/META-INF/MANIFEST.MF

    r1190 r1196  
    77 org.jalcedo.generator.beans, 
    88 org.eclipse.jdt.core, 
    9  org.jalcedo.generator.masterdetail.core 
     9 org.jalcedo.generator.masterdetail.core, 
     10 org.jalcedo.generator.composite.core 
    1011Eclipse-LazyStart: true 
    1112Bundle-Vendor: %Bundle-Vendor.0 
    1213Bundle-Localization: plugin 
     14Export-Package: org.jalcedo.generator.editor.core 
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.core/plugin.properties

    r1190 r1196  
     1############################################################################### 
     2# Copyright (c) 2007 NEC Soft, Ltd. 
     3# All rights reserved. This program and the accompanying materials 
     4# are made available under the terms of the Eclipse Public License v1.0 
     5# which accompanies this distribution, and is available at 
     6# http://www.eclipse.org/legal/epl-v10.html 
     7# 
     8# Contributors: 
     9#     NEC Soft, Ltd.- initial API and implementation 
     10############################################################################### 
     11 
     12 
    113#Properties file for org.jalcedo.generator.editor.core 
    214Bundle-Vendor.0 = jalcedo.org 
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.core/src/org/jalcedo/generator/editor/core/internal/view/MasterViewPartModel.java

    r1190 r1196  
    2222 *  
    2323 */ 
    24 public class MasterViewModel extends AbstractGeneratableClass { 
     24public class MasterViewPartModel extends AbstractGeneratableClass { 
    2525    private TargetBean targetBean; 
    2626    private GeneratableClassModel editorModel; 
    2727    private GeneratableClassModel editorInputModel; 
    2828 
    29     public MasterViewModel(String className, String targetPackageName, 
     29    public MasterViewPartModel(String className, String targetPackageName, 
    3030            IPackageFragmentRoot root, TargetBean targetBean, 
    3131            GeneratableClassModel editorModel, 
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.core/templates/DetailEditorInputGenerator.jet

    r1190 r1196  
    1818    private <%=modelClassName%> model; 
    1919     
    20     public <%=editorInputClassName%>Input(){ 
     20    public <%=editorInputClassName%>(){ 
    2121        this.model = new <%=modelClassName%>(); 
    2222    } 
     
    2626    } 
    2727     
    28     @Override 
    2928    public boolean exists() { 
    3029        // TODO Auto-generated method stub 
     
    3231    } 
    3332 
    34     @Override 
    3533    public ImageDescriptor getImageDescriptor() { 
    3634        // TODO Auto-generated method stub 
     
    3836    } 
    3937 
    40     @Override 
    4138    public String getName() { 
    4239         
     
    4441    } 
    4542 
    46     @Override 
    4743    public IPersistableElement getPersistable() { 
    4844        // TODO Auto-generated method stub 
     
    5046    } 
    5147 
    52     @Override 
    5348    public String getToolTipText() { 
    5449     
     
    5651    } 
    5752     
    58     @Override 
    5953    public Object getAdapter(Class adapter) { 
    6054        if (adapter == <%=modelClassName%>.class) { 
     
    6862    } 
    6963     
    70     @Override 
    7164    public boolean equals(Object obj) { 
    7265        if (super.equals(obj)) { 
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.core/templates/MasterViewGenerator.jet

    r1190 r1196  
    5353 
    5454        this.modelList = new ArrayList<<%=modelClassName%>>(); 
    55         <%=modelClassName%> model1 = new <%=modelClassName%>(); 
    56         model1.setId(1); 
    57         model1.setComment("sample1 "); 
    58         model1.setSummary("sample1"); 
    59         this.modelList.add(model1); 
    60  
    61         <%=modelClassName%> model2 = new <%=modelClassName%>(); 
    62         model2.setId(2); 
    63         model2.setComment("sample2"); 
    64         model2.setSummary("sample2"); 
    65         this.modelList.add(model2); 
    6655 
    6756    } 
     
    186175            if (selection instanceof IStructuredSelection) { 
    187176                IStructuredSelection ss = (IStructuredSelection) selection; 
    188                 if (!ss.isEmpty() && ss.getFirstElement() instanceof Todo) { 
     177                if (!ss.isEmpty() && ss.getFirstElement() instanceof <%=modelClassName%>) { 
    189178                    <%=modelClassName%> model = (<%=modelClassName%>) ss.getFirstElement(); 
    190                     todoList.remove(todo); 
     179                    modelList.remove(model); 
    191180                    viewer.refresh(); 
    192181                } 
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.core/templates/skeleton/MasterViewGenerator.skeleton

    r1190 r1196  
    1414public class CLASS { 
    1515 
    16     public String generate(MasterViewModel masterViewModel, TargetBean targetBean, 
     16    public String generate(MasterViewPartModel masterViewModel, TargetBean targetBean, 
    1717            GeneratableClassModel editorModel, GeneratableClassModel editorInputModel) { 
    1818        return ""; 
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.templates/META-INF/MANIFEST.MF

    r1167 r1196  
    44Bundle-SymbolicName: org.jalcedo.generator.editor.templates;singleton:=true 
    55Bundle-Version: 0.1.0.v20070927 
    6 Bundle-Activator: org.jalcedo.generator.editor.templates.Activator 
    76Bundle-Vendor: %Bundle-Vendor.0 
    87Bundle-Localization: plugin 
     
    1918 org.eclipse.pde, 
    2019 org.jalcedo.generator.masterdetail.core, 
    21  org.jalcedo.generator.masterdetail.ui 
     20 org.jalcedo.generator.masterdetail.ui, 
     21 org.eclipse.ui.ide, 
     22 org.jalcedo.generator.composite.core, 
     23 org.jalcedo.generator.editor.core, 
     24 org.jalcedo.generator.masterdetail.standard.ui 
    2225Eclipse-LazyStart: true 
    2326Created-By: 1.4.2 (IBM Corporation) 
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.templates/build.properties

    r1167 r1196  
    11source.. = src/ 
    22bin.includes = META-INF/,\ 
    3                about.html,\ 
    43               icons/,\ 
    54               .,\ 
     
    1110               plugin.properties,\ 
    1211               icons/,\ 
    13                META-INF/,\ 
    14                about.html 
     12               META-INF/ 
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.templates/plugin.properties

    r958 r1196  
    2222newExtension.templates.editor.desc = <p>%template.editor.desc%</p> 
    2323 
    24 template.editor.name = Bean Editor 
     24template.editor.name = MasterView and DetailEditor 
    2525template.editor.desc = This template creates a basic bean editor.  It has the basic components \ 
    2626to edit bean. 
    2727 
    2828Bundle-Vendor.0 = jalcedo.org 
    29 Bundle-Name.0 = Jalcedo Templates 
     29Bundle-Name.0 = MasterView and DetailEditor Generator 
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.templates/plugin.xml

    r1167 r1196  
    77            availableAsShortcut="true" 
    88            category="org.jalcedo.generator.templates" 
    9             class="org.jalcedo.generator.editor.templates.ide.MasterDetailWithEditor
     9            class="org.jalcedo.generator.editor.templates.ide.MasterViewAndDetailEditorWizard
    1010            icon="$nl$/icons/etool16/newex_wiz.gif" 
    1111            id="org.jalcedo.generator.editor.template" 
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.templates/src/org/jalcedo/generator/editor/internal/resources/messages.properties

    r1167 r1196  
     1############################################################################### 
     2# Copyright (c) 2007 NEC Soft, Ltd. 
     3# All rights reserved. This program and the accompanying materials 
     4# are made available under the terms of the Eclipse Public License v1.0 
     5# which accompanies this distribution, and is available at 
     6# http://www.eclipse.org/legal/epl-v10.html 
     7# 
     8# Contributors: 
     9#     NEC Soft, Ltd.- initial API and implementation 
     10############################################################################### 
     11 
     12 
    113SelectPropertiesPage.title=Master View Settings 
    214SelectPropertiesPage.description=Select properties which are shown in Master View. 
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.templates/src/org/jalcedo/generator/editor/templates/ide/MasterViewAndDetailEditorWizard.java

    r1167 r1196  
    1 /** 
    2  *  
    3  */ 
     1/******************************************************************************* 
     2 * Copyright (c) 2007 NEC Soft, Ltd. 
     3 * All rights reserved. This program and the accompanying materials 
     4 * are made available under the terms of the Eclipse Public License v1.0 
     5 * which accompanies this distribution, and is available at 
     6 * http://www.eclipse.org/legal/epl-v10.html 
     7 * 
     8 * Contributors: 
     9 *     NEC Soft, Ltd.- initial API and implementation 
     10 *******************************************************************************/ 
     11 
    412package org.jalcedo.generator.editor.templates.ide; 
    513 
     14import java.lang.reflect.InvocationTargetException; 
     15import java.util.List; 
     16 
    617import org.eclipse.core.resources.IProject; 
     18import org.eclipse.core.runtime.CoreException; 
     19import org.eclipse.core.runtime.IProgressMonitor; 
    720import org.eclipse.jdt.core.IJavaProject; 
     21import org.eclipse.jdt.core.IPackageFragment; 
    822import org.eclipse.jdt.core.JavaCore; 
    9 import org.eclipse.jface.viewers.IStructuredSelection
    10 import org.eclipse.jface.viewers.StructuredSelection
     23import org.eclipse.jface.dialogs.MessageDialog
     24import org.eclipse.jface.operation.IRunnableWithProgress
    1125import org.eclipse.jface.wizard.Wizard; 
     26import org.eclipse.pde.core.plugin.IPluginImport; 
    1227import org.eclipse.pde.core.plugin.IPluginModelBase; 
    1328import org.eclipse.pde.ui.IExtensionWizard; 
    14 import org.eclipse.ui.IWorkbench
     29import org.eclipse.ui.IWorkbenchWindow
    1530import org.eclipse.ui.PlatformUI; 
     31import org.eclipse.ui.actions.WorkspaceModifyOperation; 
     32import org.jalcedo.generator.beans.Generatable; 
     33import org.jalcedo.generator.beans.Property; 
    1634import org.jalcedo.generator.beans.TargetBean; 
    1735import org.jalcedo.generator.beans.TargetBeanFactory; 
    1836import org.jalcedo.generator.beans.ui.wizardpages.InputPackagePage; 
    1937import org.jalcedo.generator.beans.ui.wizardpages.TargetBeanSelectionPage; 
     38import org.jalcedo.generator.editor.core.MasterViewAndDetailEditorGenerator; 
    2039import org.jalcedo.generator.editor.internal.resources.Messages; 
     40import org.jalcedo.generator.masterdetail.core.MasterDetailViewGenerator; 
     41import org.jalcedo.generator.masterdetail.core.detail.DetailViewModel; 
     42import org.jalcedo.generator.masterdetail.core.detail.PropertyControlFieldPair; 
     43import org.jalcedo.generator.masterdetail.core.master.MasterViewModel; 
    2144import org.jalcedo.generator.masterdetail.ui.detail.PropertyControlPairsPage; 
    2245import org.jalcedo.generator.masterdetail.ui.master.PropertiesPage; 
    2346 
    2447/** 
     48 * MasterView と DetailEditor を生成する wizard 
     49 *  
    2550 * @author nozawa 
    2651 *  
    2752 */ 
    28 public class MasterDetailWithEditor extends Wizard implements IExtensionWizard { 
    29     private IWorkbench workbench = PlatformUI.getWorkbench(); 
    30     // private IStructuredSelection selection
     53public class MasterViewAndDetailEditorWizard extends Wizard implements 
     54       IExtensionWizard { 
     55    private IWorkbenchWindow window
    3156 
    3257    private TargetBean targetBean; 
    33     private IProject project; 
     58    private IJavaProject javaProject; 
    3459    private IPluginModelBase pluginModelBase; 
    3560 
    3661    private InputPackagePage inputPackagePage; 
     62    private TargetBeanSelectionPage targetBeanSelectionPage; 
    3763    private PropertiesPage selectPropertiesPage; 
    3864    private PropertyControlPairsPage propertyControlPairsPage; 
     
    4571    @Override 
    4672    public boolean performFinish() { 
    47         // TODO Auto-generated method stub 
     73 
     74        final MasterViewModel masterViewModel = new MasterViewModelImpl( 
     75                this.selectPropertiesPage.getVisibleProperties()); 
     76        final DetailViewModel detailViewModel = new DetailViewModelImpl( 
     77                this.propertyControlPairsPage.getPropertyControlList()); 
     78 
     79        final MasterDetailViewGenerator generator = new MasterViewAndDetailEditorGenerator(); 
     80 
     81        IRunnableWithProgress op = new WorkspaceModifyOperation() { 
     82 
     83            @Override 
     84            protected void execute(IProgressMonitor monitor) 
     85                    throws CoreException, InvocationTargetException, 
     86                    InterruptedException { 
     87                try { 
     88                    doFinish(monitor, inputPackagePage.getPackageFragment(), 
     89                            targetBean, masterViewModel, detailViewModel, 
     90                            generator); 
     91                } catch (CoreException e) { 
     92                    throw new InvocationTargetException(e); 
     93                } finally { 
     94                    monitor.done(); 
     95                } 
     96            } 
     97        }; 
     98 
     99        try { 
     100            getContainer().run(false, true, op); 
     101        } catch (InterruptedException e) { 
     102            e.printStackTrace(); 
     103            return false; 
     104        } catch (InvocationTargetException e) { 
     105            Throwable realException = e.getTargetException(); 
     106            MessageDialog.openError(getShell(), "Error", realException 
     107                    .getMessage()); 
     108            return false; 
     109        } 
     110        return true; 
     111    } 
     112 
     113    private void doFinish(IProgressMonitor monitor, 
     114            IPackageFragment packageFragment, TargetBean targetBean, 
     115            MasterViewModel masterViewModel, DetailViewModel detailViewModel, 
     116            MasterDetailViewGenerator generator) throws CoreException { 
     117        List<Generatable> list = generator.createGeneratables(packageFragment, 
     118                targetBean, masterViewModel, detailViewModel); 
     119 
     120        for (Generatable g : list) { 
     121            g.generate(monitor, true); 
     122        } 
     123 
     124        this.addRequiredPlugins(pluginModelBase); 
     125    } 
     126 
     127    private void addRequiredPlugins(IPluginModelBase pluginModelBase) 
     128            throws CoreException { 
     129        String[] pluginIDs = { "org.eclipse.ui", "org.eclipse.core.runtime", 
     130                "org.eclipse.ui.forms", "org.eclipse.core.databinding", 
     131                "org.eclipse.core.databinding.beans", 
     132                "org.eclipse.jface.databinding" }; 
     133        for (String pluginId : pluginIDs) { 
     134            if (!this.hasRequiredPlugin(pluginModelBase, pluginId)) { 
     135                this.addRequiredPlugin(pluginModelBase, pluginId); 
     136            } 
     137        } 
     138 
     139    } 
     140 
     141    /** 
     142     * 指定したidのプラグインが RequiredPlugin として登録されているか調べる. 
     143     *  
     144     * @param pluginModel 
     145     *            プラグインのモデル 
     146     * @param pluginId 
     147     *            プラグインのID 
     148     * @return 登録されている場合 true 
     149     */ 
     150    private boolean hasRequiredPlugin(IPluginModelBase pluginModelBase, 
     151            String pluginId) { 
     152        IPluginImport[] imports = pluginModelBase.getPluginBase().getImports(); 
     153        for (IPluginImport import1 : imports) { 
     154            if (import1.getId().equals(pluginId)) { 
     155                return true; 
     156            } 
     157        } 
    48158        return false; 
     159    } 
     160 
     161    private void addRequiredPlugin(IPluginModelBase pluginModelBase, 
     162            String pluginId) throws CoreException { 
     163        IPluginImport import1 = pluginModelBase.getPluginFactory() 
     164                .createImport(); 
     165        import1.setId(pluginId); 
     166        pluginModelBase.getPluginBase().add(import1); 
    49167    } 
    50168 
     
    56174     */ 
    57175    public void init(IProject project, IPluginModelBase pluginModel) { 
    58         this.project = project; 
    59  
     176        this.window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); 
     177        this.javaProject = JavaCore.create(project); 
     178        this.pluginModelBase = pluginModel; 
    60179    } 
    61180 
     
    69188        targetBean = TargetBeanFactory.createTargetBean(); 
    70189 
    71         this.inputPackagePage = new InputPackagePage(JavaCore.create(project)); 
     190        this.inputPackagePage = new InputPackagePage(this.javaProject); 
    72191        this.addPage(this.inputPackagePage); 
    73192 
    74         TargetBeanSelectionPage targetBeanSelectionPage = new TargetBeanSelectionPage( 
    75                 this.workbench.getActiveWorkbenchWindow(), targetBean, 
    76                inputPackagePage, getStructuredSelection()); 
     193        this.targetBeanSelectionPage = new TargetBeanSelectionPage(this.window, 
     194                targetBean, inputPackagePage); 
     195        this.targetBeanSelectionPage.setJavaProject(this.javaProject); 
    77196        this.addPage(targetBeanSelectionPage); 
    78197 
     
    93212    } 
    94213 
    95     /** 
    96      * @return 
    97      */ 
    98     private IStructuredSelection getStructuredSelection() { 
    99         IJavaProject javaProject = JavaCore.create(project); 
    100         if (javaProject != null) { 
    101             return new StructuredSelection(javaProject); 
    102         } 
    103         return null; 
    104     } 
    105  
     214    private class MasterViewModelImpl implements MasterViewModel { 
     215        private List<Property> visibleProperties; 
     216 
     217        public MasterViewModelImpl(List<Property> visibleProperties) { 
     218            this.visibleProperties = visibleProperties; 
     219        } 
     220 
     221        public List<Property> getVisibleProperties() { 
     222            return this.visibleProperties; 
     223        } 
     224    } 
     225 
     226    private class DetailViewModelImpl implements DetailViewModel { 
     227        private List<PropertyControlFieldPair> pairs; 
     228 
     229        public DetailViewModelImpl(List<PropertyControlFieldPair> pairs) { 
     230            this.pairs = pairs; 
     231        } 
     232 
     233        public List<PropertyControlFieldPair> getPropertyControlFieldPairs() { 
     234            return this.pairs; 
     235        } 
     236    } 
    106237}