KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectstyle > cayenne > modeler > editor > DerivedDbAttributeTableModel


1 /* ====================================================================
2  *
3  * The ObjectStyle Group Software License, version 1.1
4  * ObjectStyle Group - http://objectstyle.org/
5  *
6  * Copyright (c) 2002-2005, Andrei (Andrus) Adamchik and individual authors
7  * of the software. All rights reserved.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  *
13  * 1. Redistributions of source code must retain the above copyright
14  * notice, this list of conditions and the following disclaimer.
15  *
16  * 2. Redistributions in binary form must reproduce the above copyright
17  * notice, this list of conditions and the following disclaimer in
18  * the documentation and/or other materials provided with the
19  * distribution.
20  *
21  * 3. The end-user documentation included with the redistribution, if any,
22  * must include the following acknowlegement:
23  * "This product includes software developed by independent contributors
24  * and hosted on ObjectStyle Group web site (http://objectstyle.org/)."
25  * Alternately, this acknowlegement may appear in the software itself,
26  * if and wherever such third-party acknowlegements normally appear.
27  *
28  * 4. The names "ObjectStyle Group" and "Cayenne" must not be used to endorse
29  * or promote products derived from this software without prior written
30  * permission. For written permission, email
31  * "andrus at objectstyle dot org".
32  *
33  * 5. Products derived from this software may not be called "ObjectStyle"
34  * or "Cayenne", nor may "ObjectStyle" or "Cayenne" appear in their
35  * names without prior written permission.
36  *
37  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
38  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
39  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
40  * DISCLAIMED. IN NO EVENT SHALL THE OBJECTSTYLE GROUP OR
41  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
42  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
43  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
44  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
45  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
46  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
47  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
48  * SUCH DAMAGE.
49  * ====================================================================
50  *
51  * This software consists of voluntary contributions made by many
52  * individuals and hosted on ObjectStyle Group web site. For more
53  * information on the ObjectStyle Group, please see
54  * <http://objectstyle.org/>.
55  */

56 package org.objectstyle.cayenne.modeler.editor;
57
58 import org.objectstyle.cayenne.map.DbEntity;
59 import org.objectstyle.cayenne.map.DerivedDbAttribute;
60 import org.objectstyle.cayenne.map.event.AttributeEvent;
61 import org.objectstyle.cayenne.modeler.ProjectController;
62
63 /**
64  * Table model for derived DbAttributes.
65  *
66  * @author Andrei Adamchik
67  */

68 public class DerivedDbAttributeTableModel extends DbAttributeTableModel {
69     // Column indices
70
private static final int DB_ATTRIBUTE_NAME = 0;
71     private static final int DB_ATTRIBUTE_SPEC = 1;
72     private static final int DB_ATTRIBUTE_TYPE = 2;
73     private static final int DB_ATTRIBUTE_GROUPBY = 3;
74     private static final int DB_ATTRIBUTE_PRIMARY_KEY = 4;
75     private static final int DB_ATTRIBUTE_MANDATORY = 5;
76
77     
78     /**
79      * Constructor for DerivedDbAttributeTableModel.
80      * @param entity
81      * @param mediator
82      * @param eventSource
83      */

84     public DerivedDbAttributeTableModel(
85             DbEntity entity,
86             ProjectController mediator,
87             Object JavaDoc eventSource) {
88         super(entity, mediator, eventSource);
89     }
90
91     /**
92      * @see javax.swing.table.TableModel#getColumnClass(int)
93      */

94     public Class JavaDoc getColumnClass(int col) {
95         switch (col) {
96             case DB_ATTRIBUTE_PRIMARY_KEY :
97             case DB_ATTRIBUTE_MANDATORY :
98             case DB_ATTRIBUTE_GROUPBY:
99                 return Boolean JavaDoc.class;
100             default :
101                 return String JavaDoc.class;
102         }
103     }
104
105     public int mandatoryColumnInd() {
106         return DB_ATTRIBUTE_MANDATORY;
107     }
108     
109     public int nameColumnInd() {
110         return DB_ATTRIBUTE_NAME;
111     }
112     
113     public int typeColumnInd() {
114         return DB_ATTRIBUTE_TYPE;
115     }
116
117     /**
118      * @see javax.swing.table.TableModel#getColumnCount()
119      */

120     public int getColumnCount() {
121         return 6;
122     }
123
124
125     /**
126      * @see javax.swing.table.TableModel#getColumnName(int)
127      */

128     public String JavaDoc getColumnName(int col) {
129         switch(col) {
130             case DB_ATTRIBUTE_NAME: return "Name";
131             case DB_ATTRIBUTE_SPEC: return "Spec";
132             case DB_ATTRIBUTE_TYPE: return "Type";
133             case DB_ATTRIBUTE_GROUPBY: return "Group By";
134             case DB_ATTRIBUTE_PRIMARY_KEY: return "PK";
135             case DB_ATTRIBUTE_MANDATORY: return "Mandatory";
136             default: return "";
137         }
138     }
139
140     public Object JavaDoc getValueAt(int row, int column) {
141         DerivedDbAttribute attr = (DerivedDbAttribute)getAttribute(row);
142
143         if (attr == null) {
144             return "";
145         }
146
147         switch (column) {
148             case DB_ATTRIBUTE_NAME :
149                 return getAttributeName(attr);
150             case DB_ATTRIBUTE_SPEC :
151                 return getSpec(attr);
152             case DB_ATTRIBUTE_TYPE :
153                 return getAttributeType(attr);
154             case DB_ATTRIBUTE_GROUPBY :
155                 return isGroupBy(attr);
156             case DB_ATTRIBUTE_PRIMARY_KEY :
157                 return isPrimaryKey(attr);
158             case DB_ATTRIBUTE_MANDATORY :
159                 return isMandatory(attr);
160             default :
161                 return "";
162         }
163     }
164     
165     public void setUpdatedValueAt(Object JavaDoc newVal, int row, int col) {
166         DerivedDbAttribute attr = (DerivedDbAttribute)getAttribute(row);
167         if (attr == null) {
168             return;
169         }
170
171         AttributeEvent e = new AttributeEvent(eventSource, attr, entity);
172
173         switch (col) {
174             case DB_ATTRIBUTE_NAME :
175                 e.setOldName(attr.getName());
176                 setAttributeName((String JavaDoc) newVal, attr);
177                 fireTableCellUpdated(row, col);
178                 break;
179             case DB_ATTRIBUTE_SPEC :
180                 setSpec((String JavaDoc) newVal, attr);
181                 break;
182             case DB_ATTRIBUTE_TYPE :
183                 setAttributeType((String JavaDoc) newVal, attr);
184                 break;
185             case DB_ATTRIBUTE_GROUPBY :
186                 setGroupBy((Boolean JavaDoc) newVal, attr);
187                 break;
188             case DB_ATTRIBUTE_PRIMARY_KEY :
189                 if(!setPrimaryKey((Boolean JavaDoc) newVal, attr, row)) {
190                     return;
191                 }
192
193                 break;
194             case DB_ATTRIBUTE_MANDATORY :
195                 setMandatory((Boolean JavaDoc) newVal, attr);
196                 break;
197         }
198
199         mediator.fireDbAttributeEvent(e);
200     }
201
202
203     
204     public String JavaDoc getSpec(DerivedDbAttribute attr) {
205         return attr.getExpressionSpec();
206     }
207
208     public void setSpec(String JavaDoc newVal, DerivedDbAttribute attr) {
209         attr.setExpressionSpec(newVal);
210     }
211     
212     public Boolean JavaDoc isGroupBy(DerivedDbAttribute attr) {
213         return attr.isGroupBy() ? Boolean.TRUE : Boolean.FALSE;
214     }
215     
216     public void setGroupBy(Boolean JavaDoc newVal, DerivedDbAttribute attr) {
217         attr.setGroupBy(newVal.booleanValue());
218     }
219     
220     
221     /**
222      * @see org.objectstyle.cayenne.modeler.util.CayenneTableModel#getElementsClass()
223      */

224     public Class JavaDoc getElementsClass() {
225         return DerivedDbAttribute.class;
226     }
227 }
228
229
Popular Tags