3
* $Date: 2007-01-04 18:26:00 +0100 (Thu, 04 Jan 2007) $
6
* Copyright (C) 2003-2007 The Chemistry Development Kit (CDK) project
8
* Contact: cdk-devel@lists.sourceforge.net
10
* This program is free software; you can redistribute it and/or
11
* modify it under the terms of the GNU Lesser General Public License
12
* as published by the Free Software Foundation; either version 2.1
13
* of the License, or (at your option) any later version.
14
* All I ask is that proper credit is given for my work, which includes
15
* - but is not limited to - adding the above copyright notice to the beginning
16
* of your source code files, and to any copyright notice that you may distribute
17
* with programs based on this work.
19
* This program is distributed in the hope that it will be useful,
20
* but WITHOUT ANY WARRANTY; without even the implied warranty of
21
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22
* GNU Lesser General Public License for more details.
24
* You should have received a copy of the GNU Lesser General Public License
25
* along with this program; if not, write to the Free Software
26
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
28
package org.openscience.cdk.applications.swing;
30
import java.util.Iterator;
32
import java.util.Vector;
34
import javax.swing.table.AbstractTableModel;
36
import org.openscience.cdk.ChemObject;
39
* @cdk.module applications
42
public class ChemObjectPropertyEditorTableModel extends AbstractTableModel {
44
private static final long serialVersionUID = -9026379867364393754L;
46
private String[] columnNames;
47
private Vector names = new Vector();
48
private Vector values = new Vector();
50
public ChemObjectPropertyEditorTableModel() {
51
columnNames = new String[2];
52
columnNames[0] = "Name";
53
columnNames[1] = "Value";
59
public void setValueAt(Object value, int row, int column) {
60
if (((String)value).length() == 0 ) {
61
names.removeElementAt(row);
62
values.removeElementAt(row);
63
fireTableRowsDeleted(row, row);
64
if (values.size() < 1) {
67
} else if (column == 0) {
68
names.setElementAt(value, row);
69
} else if (column == 1) {
70
values.setElementAt(value, row);
73
if (row == values.size()-1) {
77
fireTableCellUpdated(row, column);
81
public int getColumnCount() {
82
return columnNames.length;
85
public int getRowCount() {
89
public String getColumnName(int col) {
90
return columnNames[col];
93
public Class getColumnClass(int col) {
94
return getColumnName(col).getClass();
97
public Object getValueAt(int row, int col) {
98
if ( row >= values.size() || col >= columnNames.length ) {
103
return names.elementAt(row);
104
} else if (col == 1) {
105
return values.elementAt(row);
111
public boolean isCellEditable(int row, int column) {
115
public void setChemObject(ChemObject object) {
117
Map properties = object.getProperties();
118
Iterator iter = properties.keySet().iterator();
119
while (iter.hasNext()) {
120
Object key = iter.next();
121
if (key instanceof String) {
122
String keyName = (String)key;
123
names.addElement(keyName);
124
String value = (String)properties.get(keyName);
125
values.addElement(value);
130
private void cleanTable() {
133
fireTableDataChanged();
137
private void insertBlankRow(int row) {
138
names.addElement("");
139
values.addElement("");
140
fireTableRowsInserted(row+1, row+1);