1 /*
2 * Copyright (c) 2003-2008 by Cosylab d. d.
3 *
4 * This file is part of CosyBeans-Common.
5 *
6 * CosyBeans-Common is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * CosyBeans-Common is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with CosyBeans-Common. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 package com.cosylab.gui.components.table;
21
22 import java.util.Comparator;
23
24 /**
25 * <code>MutableTableModelRows</code> is implementation of
26 * <code>TableModelRows</code> which acts as mutable
27 * <code>TabmeRowModel</code> in the same time. User can set this model to
28 * <code>JTable</code> and then add or remove rows directly from this model.
29 *
30 * @author <a href="mailto:igor.kriznar@cosylab.com">Igor Kriznar</a>
31 * @version $Id: MutableTableModelRows.java,v 1.5 2008-04-22 12:28:40 jbobnar Exp $
32 *
33 * @since May 4, 2004.
34 */
35 public class MutableTableModelRows extends TableModelRows
36 {
37 private static final long serialVersionUID = 1L;
38 private TableRowModelSupport support;
39 private Comparator comparator;
40
41 /**
42 * Creates new instance.
43 */
44 public MutableTableModelRows()
45 {
46 super(new TableRowModelSupport());
47 support = (TableRowModelSupport)getRowModel();
48 }
49
50 /**
51 * Inserts row at the specified index.
52 *
53 * @param index the index where to insert
54 * @param row the row to be added
55 */
56 public synchronized void addRow(int index, TableRow row)
57 {
58 support.addRow(index, row);
59 }
60
61 /**
62 * Adds row to the end of the row list.
63 *
64 * @param row the row to be added
65 */
66 public synchronized void addRow(TableRow row)
67 {
68 support.addRow(row);
69 }
70
71 /**
72 * Returns row at given index,
73 *
74 * @param index the index of the row
75 *
76 * @return the row at the specified index
77 */
78 public synchronized TableRow getRow(int index)
79 {
80 return support.getRow(index);
81 }
82
83 /**
84 * Removes all rows from this model.
85 */
86 public synchronized void removeAllRows()
87 {
88 support.removeAllRows();
89 }
90
91 /**
92 * Removes row from this model.
93 *
94 * @param index rowindex to be roemoved
95 *
96 * @return the removed row
97 */
98 public synchronized TableRow removeRow(int index)
99 {
100 return support.removeRow(index);
101 }
102
103 /**
104 * Removes row from this model.
105 *
106 * @param row the row to be removed
107 */
108 public synchronized void removeRow(TableRow row)
109 {
110 support.removeRow(row);
111 }
112
113 /**
114 * Sets the number of columns this model presents.
115 *
116 * @param count the number of columns
117 */
118 public void setColumnCount(int count)
119 {
120 support.setColumnCount(count);
121 }
122
123 /**
124 * Sets column names.
125 *
126 * @param names the column names
127 */
128 public void setColumnNames(String[] names)
129 {
130 support.setColumnNames(names);
131 }
132
133 /**
134 * @return the comparator
135 */
136 public Comparator getComparator() {
137 return comparator;
138 }
139
140 /**
141 * @param comparator the comparator to set
142 */
143 public void setComparator(Comparator comparator) {
144 this.comparator = comparator;
145 support.setComparator(comparator);
146 }
147 }
148
149 /* __oOo__ */