KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectstyle > cayenne > dataview > dvmodeler > FieldsTableModel


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
57 package org.objectstyle.cayenne.dataview.dvmodeler;
58
59 import javax.swing.table.*;
60
61 /**
62  *
63  * @author Nataliya Kholodna
64  * @version 1.0
65  */

66
67 public class FieldsTableModel extends AbstractTableModel {
68   private ObjEntityView objEntityView;
69   private String JavaDoc[] columnNames= {"Name",
70                    "Type",
71                    "CalcType",
72                    "Attribute/Relationship",
73                    "Lookup"};
74
75   public FieldsTableModel(ObjEntityView objEntityView) {
76     this.objEntityView = objEntityView;
77   }
78
79   public FieldsTableModel() {
80   }
81
82   public void setObjEntityView(ObjEntityView objEntityView){
83     this.objEntityView = objEntityView;
84     fireTableStructureChanged();
85   }
86
87
88   public int getRowCount(){
89     if (objEntityView != null){
90       return objEntityView.getObjEntityViewFieldCount();
91     }else{
92       return 0;
93     }
94   }
95
96   public int getColumnCount(){
97       return columnNames.length;
98   }
99
100   public String JavaDoc getColumnName(int col) {
101     return columnNames[col];
102   }
103
104   public Class JavaDoc getColumnClass(int c) {
105     return getValueAt(0, c).getClass();
106   }
107
108   public Object JavaDoc getValueAt(int row, int column){
109     ObjEntityViewField field = objEntityView.getObjEntityViewField(row);
110     switch (column){
111       case 0:
112         return field.getName();
113       case 1:
114         return field.getDataType();
115       case 2:
116         return field.getCalcType();
117       case 3: {
118         String JavaDoc calcType = field.getCalcType();
119         if (calcType.equals("nocalc") &&
120             field.getObjAttribute() != null){
121           return field.getObjAttribute().getName();
122         } else if (calcType.equals("lookup") &&
123                    field.getObjRelationship() != null) {
124           return field.getObjRelationship().getName();
125         } else
126           return "";
127       }
128       case 4:{
129         String JavaDoc calcType = field.getCalcType();
130         if (calcType.equals("lookup")){
131           return field.getLookup().toString();
132         }else{
133           return "";
134         }
135       }
136
137       default: return null;
138     }
139   }
140 }
141
Popular Tags