Changeset 1199

Show
Ignore:
Timestamp:
10/30/07 15:10:50 (1 year ago)
Author:
nozawa
Message:

add the databinding code to templates.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.core/src/org/jalcedo/generator/editor/core/MasterViewAndDetailEditorGenerator.java

    r1196 r1199  
    5050 
    5151        GeneratableClassModel editor = createGeneratableEditor(targetPackage, 
    52                 targetBean, detailComposite); 
     52                targetBean, detailComposite, detailViewModel); 
    5353        generatableList.add(editor); 
    5454 
     
    6868                targetPackage.getElementName(), 
    6969                (IPackageFragmentRoot) targetPackage.getParent(), targetBean, 
    70                 editor, editorInput); 
     70                editor, editorInput, masterViewModel.getVisibleProperties()); 
    7171 
    7272        return viewPart; 
     
    7575    private GeneratableClassModel createGeneratableEditor( 
    7676            IPackageFragment targetPackage, TargetBean targetBean, 
    77             GeneratableClassModel detailComposite) { 
     77            GeneratableClassModel detailComposite, 
     78            DetailViewModel detailViewModel) { 
    7879        String className = targetBean.getClassName() + "Editor"; 
    7980        GeneratableClassModel editor = new DetailEditorModel(className, 
    8081                targetPackage.getElementName(), 
    8182                (IPackageFragmentRoot) targetPackage.getParent(), targetBean, 
    82                 detailComposite); 
     83                detailComposite, detailViewModel.getPropertyControlFieldPairs()); 
    8384        return editor; 
    8485    } 
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.core/src/org/jalcedo/generator/editor/core/internal/editor/DetailEditorModel.java

    r1190 r1199  
    1212package org.jalcedo.generator.editor.core.internal.editor; 
    1313 
     14import java.util.List; 
     15 
    1416import org.eclipse.core.runtime.CoreException; 
    1517import org.eclipse.jdt.core.IPackageFragmentRoot; 
     
    1719import org.jalcedo.generator.beans.GeneratableClassModel; 
    1820import org.jalcedo.generator.beans.TargetBean; 
     21import org.jalcedo.generator.masterdetail.core.detail.PropertyControlFieldPair; 
    1922 
    2023/** 
     
    2528    private TargetBean targetBean; 
    2629    private GeneratableClassModel targetComposite; 
     30    private List<PropertyControlFieldPair> pairs; 
    2731 
    2832    public DetailEditorModel(String className, String targetPackageName, 
    2933            IPackageFragmentRoot root, TargetBean targetBean, 
    30             GeneratableClassModel targetComposite) { 
     34            GeneratableClassModel targetComposite, 
     35            List<PropertyControlFieldPair> pairs) { 
    3136        super(className, targetPackageName, root); 
    3237        this.targetBean = targetBean; 
    3338        this.targetComposite = targetComposite; 
     39        this.pairs = pairs; 
     40    } 
     41 
     42    public TargetBean getTargetBean() { 
     43        return targetBean; 
     44    } 
     45 
     46    public GeneratableClassModel getTargetComposite() { 
     47        return targetComposite; 
     48    } 
     49 
     50    public List<PropertyControlFieldPair> getPropertyControlFieldPairs() { 
     51        return pairs; 
    3452    } 
    3553 
     
    3755    protected String createSource() throws CoreException { 
    3856        DetailEditorGenerator generator = new DetailEditorGenerator(); 
    39         return generator.generate(this, targetBean, targetComposite); 
     57        return generator.generate(this); 
    4058    } 
    4159 
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.core/src/org/jalcedo/generator/editor/core/internal/editorinput/DetailEditorInputModel.java

    r1190 r1199  
    3030    } 
    3131 
     32    public TargetBean getTargetBean() { 
     33        return targetBean; 
     34    } 
     35 
    3236    @Override 
    3337    protected String createSource() throws CoreException { 
    3438        DetailEditorInputGenerator generator = new DetailEditorInputGenerator(); 
    35         return generator.generate(this, targetBean); 
     39        return generator.generate(this); 
    3640    } 
    3741 
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.core/src/org/jalcedo/generator/editor/core/internal/view/MasterViewPartModel.java

    r1196 r1199  
    1212package org.jalcedo.generator.editor.core.internal.view; 
    1313 
     14import java.util.List; 
     15 
    1416import org.eclipse.core.runtime.CoreException; 
    1517import org.eclipse.jdt.core.IPackageFragmentRoot; 
    1618import org.jalcedo.generator.beans.AbstractGeneratableClass; 
    1719import org.jalcedo.generator.beans.GeneratableClassModel; 
     20import org.jalcedo.generator.beans.Property; 
    1821import org.jalcedo.generator.beans.TargetBean; 
    1922 
     
    2629    private GeneratableClassModel editorModel; 
    2730    private GeneratableClassModel editorInputModel; 
     31    private List<Property> properties; 
    2832 
    2933    public MasterViewPartModel(String className, String targetPackageName, 
    3034            IPackageFragmentRoot root, TargetBean targetBean, 
    3135            GeneratableClassModel editorModel, 
    32             GeneratableClassModel editorInputModel) { 
     36            GeneratableClassModel editorInputModel, List<Property> properties) { 
    3337        super(className, targetPackageName, root); 
    3438        this.targetBean = targetBean; 
    3539        this.editorModel = editorModel; 
    3640        this.editorInputModel = editorInputModel; 
     41        this.properties = properties; 
    3742 
     43    } 
     44 
     45    public TargetBean getTargetBean() { 
     46        return targetBean; 
     47    } 
     48 
     49    public GeneratableClassModel getEditorModel() { 
     50        return editorModel; 
     51    } 
     52 
     53    public GeneratableClassModel getEditorInputModel() { 
     54        return editorInputModel; 
     55    } 
     56 
     57    public List<Property> getProperties() { 
     58        return properties; 
    3859    } 
    3960 
     
    4162    protected String createSource() throws CoreException { 
    4263        MasterViewGenerator generator = new MasterViewGenerator(); 
    43         return generator.generate(this, targetBean, editorModel, 
    44                 editorInputModel); 
     64        return generator.generate(this); 
    4565    } 
    4666 
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.core/templates/DetailEditorGenerator.jet

    r1190 r1199  
    55    String editorPackageName = editorModel.getPackageName(); 
    66    String editorClassName = editorModel.getClassName(); 
    7     String modelPackageName = targetBean.getPackageName(); 
    8     String modelClassName = targetBean.getClassName(); 
     7    String modelPackageName = editorModel.getTargetBean().getPackageName(); 
     8    String modelClassName = editorModel.getTargetBean().getClassName(); 
     9    String compositeClassName = editorModel.getTargetComposite().getClassName(); 
     10    List<PropertyControlFieldPair> pairs = editorModel.getPropertyControlFieldPairs(); 
     11    DetailEditorGeneratorHelper helper = new DetailEditorGeneratorHelper(); 
    912%> 
    1013package <%=editorPackageName%>; 
     
    7174    @Override 
    7275    public void createPartControl(Composite parent) { 
     76        final <%=compositeClassName%> detailComposite = new <%=compositeClassName%>(parent, 
     77                SWT.NONE); 
     78 
     79        <% for (PropertyControlFieldPair pair : pairs) {  
     80            Property p = pair.getProperty(); %> 
     81        IObservableValue <%=p.getName()%>DetailObservable = BeansObservables 
     82        .observeValue(model, "<%=p.getName()%>"); 
     83        <% } %> 
     84 
     85        DataBindingContext dbc = new DataBindingContext(); 
     86 
     87        <% for (PropertyControlFieldPair pair : pairs) {  
     88            Property p = pair.getProperty(); 
     89            ControlField field = pair.getControlField(); %> 
     90        dbc.bindValue( 
     91                <%=helper.getObservableValue(field)%>, 
     92                <%=p.getName()%>DetailObservable,  
     93                null, null); 
     94        <% } %> 
    7395 
    7496    } 
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.core/templates/DetailEditorInputGenerator.jet

    r1196 r1199  
    55    String editorInputPackageName = editorInputModel.getPackageName(); 
    66    String editorInputClassName = editorInputModel.getClassName(); 
    7     String modelPackageName = targetBean.getPackageName(); 
    8     String modelClassName = targetBean.getClassName(); 
     7    String modelPackageName = editorInputModel.getTargetBean().getPackageName(); 
     8    String modelClassName = editorInputModel.getTargetBean().getClassName(); 
    99%> 
    1010package <%=editorInputPackageName%>; 
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.core/templates/MasterViewGenerator.jet

    r1196 r1199  
    55    String masterViewPackageName = masterViewModel.getPackageName(); 
    66    String masterViewClassName = masterViewModel.getClassName(); 
    7     String modelPackageName = targetBean.getPackageName(); 
    8     String modelClassName = targetBean.getClassName(); 
    9     String editorPackageName = editorModel.getPackageName(); 
    10     String editorClassName = editorModel.getClassName(); 
    11     String editorInputPackageName = editorInputModel.getPackageName(); 
    12     String editorInputClassName = editorInputModel.getClassName();   
     7    String modelPackageName = masterViewModel.getTargetBean().getPackageName(); 
     8    String modelClassName = masterViewModel.getTargetBean().getClassName(); 
     9    String editorPackageName = masterViewModel.getEditorModel().getPackageName(); 
     10    String editorClassName = masterViewModel.getEditorModel().getClassName(); 
     11    String editorInputPackageName = masterViewModel.getEditorInputModel().getPackageName(); 
     12    String editorInputClassName = masterViewModel.getEditorInputModel().getClassName();  
     13    MasterViewGeneratorHelper helper = new MasterViewGeneratorHelper(); 
     14    List<Property> masterProperties = masterViewModel.getProperties(); 
    1315%> 
    1416package <%=masterViewPackageName%>; 
     
    1719import java.util.List; 
    1820 
     21import org.eclipse.core.databinding.beans.BeansObservables; 
     22import org.eclipse.core.databinding.observable.list.IObservableList; 
     23import org.eclipse.core.databinding.observable.list.WritableList; 
     24import org.eclipse.core.databinding.observable.map.IObservableMap; 
    1925import org.eclipse.jface.action.Action; 
    2026import org.eclipse.jface.action.IMenuListener; 
     
    2228import org.eclipse.jface.action.MenuManager; 
    2329import org.eclipse.jface.action.Separator; 
    24 import org.eclipse.jface.viewers.ArrayContentProvider; 
     30import org.eclipse.jface.databinding.viewers.ObservableListContentProvider; 
     31import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider; 
    2532import org.eclipse.jface.viewers.DoubleClickEvent; 
    2633import org.eclipse.jface.viewers.IDoubleClickListener; 
    2734import org.eclipse.jface.viewers.ISelection; 
    2835import org.eclipse.jface.viewers.IStructuredSelection; 
    29 import org.eclipse.jface.viewers.LabelProvider; 
    30 import org.eclipse.jface.viewers.ListViewer; 
     36import org.eclipse.jface.viewers.TableViewer; 
    3137import org.eclipse.swt.SWT; 
    3238import org.eclipse.swt.widgets.Composite; 
    3339import org.eclipse.swt.widgets.Menu; 
     40import org.eclipse.swt.widgets.TableColumn; 
    3441import org.eclipse.ui.IWorkbenchActionConstants; 
    3542import org.eclipse.ui.PartInitException; 
     
    4249    public static final String ID = "<%=masterViewPackageName%>.<%=masterViewClassName%>"; 
    4350 
    44     private ListViewer viewer; 
    45     private List<<%=modelClassName%>> modelList
     51    private TableViewer viewer; 
     52    private IObservableList masterData
    4653 
    4754    private Action addAction; 
     
    5158 
    5259    public <%=masterViewClassName%>() { 
    53  
    54         this.modelList = new ArrayList<<%=modelClassName%>>(); 
    55  
    56     } 
    57  
    58     public <%=masterViewClassName%>(List<<%=modelClassName%>> modelList) { 
    59  
    60         this.modelList = modelList; 
     60        List<<%=modelClassName%>> modelList = new ArrayList<<%=modelClassName%>>(); 
     61        this.masterData = new WritableList(modelList, <%=modelClassName%>.class); 
     62 
    6163    } 
    6264 
     
    6668     */ 
    6769    public void createPartControl(Composite parent) { 
    68         viewer = new ListViewer(parent, SWT.SINGLE | SWT.H_SCROLL 
    69                 | SWT.V_SCROLL); 
    70         viewer.setContentProvider(new ArrayContentProvider()); 
    71         viewer.setLabelProvider(new LabelProvider()); 
    72         viewer.setInput(modelList); 
     70        createMasterTable(parent); 
     71        ObservableListContentProvider masterTableViewerContentProvider = new ObservableListContentProvider(); 
     72        viewer.setContentProvider(masterTableViewerContentProvider); 
     73 
     74        IObservableMap[] attributeMaps = BeansObservables.observeMaps( 
     75                masterTableViewerContentProvider.getKnownElements(), <%=modelClassName%>.class, 
     76                <%=helper.getStringArrayOfPropertyName(masterProperties)%>); 
     77        viewer.setLabelProvider(new ObservableMapLabelProvider(attributeMaps)); 
     78 
     79        viewer.setInput(this.masterData); 
    7380 
    7481        makeActions(); 
     
    7683        hookDoubleClickAction(); 
    7784 
     85    } 
     86 
     87    private void createMasterTable(Composite parent) { 
     88        viewer = new TableViewer(parent, SWT.SINGLE | SWT.FULL_SELECTION); 
     89     
     90        <% for (Property p : masterProperties) { %> 
     91        TableColumn <%=p.getName()%>TableColumn = new TableColumn(viewer.getTable(), SWT.NONE); 
     92        <%=p.getName()%>TableColumn.setWidth(60); 
     93        <%=p.getName()%>TableColumn.setText("<%=helper.getPropertyDisplayName(p)%>"); 
     94        <% } %> 
    7895    } 
    7996 
     
    129146        @Override 
    130147        public void run() { 
    131  
     148            <%=modelClassName%> newModel = new <%=modelClassName%>(); 
     149            masterData.add(newModel); 
     150            viewer.setSelection(new StructuredSelection(newModel));  
    132151            <%=editorInputClassName%> input = new <%=editorInputClassName%>(new <%=modelClassName%>()); 
    133152            try { 
     
    177196                if (!ss.isEmpty() && ss.getFirstElement() instanceof <%=modelClassName%>) { 
    178197                    <%=modelClassName%> model = (<%=modelClassName%>) ss.getFirstElement(); 
    179                     modelList.remove(model); 
    180                     viewer.refresh(); 
     198                    masterData.remove(model); 
    181199                } 
    182200            } 
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.core/templates/skeleton/DetailEditorGenerator.skeleton

    r1190 r1199  
    99 *     NEC Soft, Ltd.- initial API and implementation 
    1010 *******************************************************************************/ 
    11 import org.jalcedo.generator.beans.GeneratableClassModel; 
    12 import org.jalcedo.generator.beans.TargetBean; 
     11 
     12import java.util.List; 
     13import org.jalcedo.generator.beans.Property; 
     14import org.jalcedo.generator.masterdetail.core.detail.ControlField; 
     15import org.jalcedo.generator.masterdetail.core.detail.PropertyControlFieldPair; 
    1316 
    1417public class CLASS { 
    1518 
    16     public String generate(DetailEditorModel editorModel, TargetBean targetBean, 
    17             GeneratableClassModel targetComposite) { 
     19    public String generate(DetailEditorModel editorModel) { 
    1820        return ""; 
    1921    } 
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.core/templates/skeleton/DetailEditorInputGenerator.skeleton

    r1190 r1199  
    1010 *******************************************************************************/ 
    1111 
    12 import org.jalcedo.generator.beans.TargetBean; 
    13  
    1412public class CLASS { 
    1513 
    16     public String generate(DetailEditorInputModel editorInputModel, TargetBean targetBean) { 
     14    public String generate(DetailEditorInputModel editorInputModel) { 
    1715        return ""; 
    1816    } 
  • org.jalcedo.generator/trunk/org.jalcedo.generator.editor.core/templates/skeleton/MasterViewGenerator.skeleton

    r1196 r1199  
    99 *     NEC Soft, Ltd.- initial API and implementation 
    1010 *******************************************************************************/ 
    11 import org.jalcedo.generator.beans.GeneratableClassModel; 
    12 import org.jalcedo.generator.beans.TargetBean; 
     11 
     12import java.util.List; 
     13 
     14import org.jalcedo.generator.beans.Property; 
    1315 
    1416public class CLASS { 
    1517 
    16     public String generate(MasterViewPartModel masterViewModel, TargetBean targetBean, 
    17             GeneratableClassModel editorModel, GeneratableClassModel editorInputModel) { 
     18    public String generate(MasterViewPartModel masterViewModel) { 
    1819        return ""; 
    1920    }