Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/src/demo/share/jfc/TableExample/OldJTable.java
41149 views
1
/*
2
* Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
3
*
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions
6
* are met:
7
*
8
* - Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
*
11
* - Redistributions in binary form must reproduce the above copyright
12
* notice, this list of conditions and the following disclaimer in the
13
* documentation and/or other materials provided with the distribution.
14
*
15
* - Neither the name of Oracle nor the names of its
16
* contributors may be used to endorse or promote products derived
17
* from this software without specific prior written permission.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
20
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
27
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
*/
31
32
/*
33
* This source code is provided to illustrate the usage of a given feature
34
* or technique and has been deliberately simplified. Additional steps
35
* required for a production-quality application, such as security checks,
36
* input validation and proper error handling, might not be present in
37
* this sample code.
38
*/
39
40
41
42
import java.util.EventObject;
43
import java.util.List;
44
import javax.swing.JTable;
45
import javax.swing.table.DefaultTableModel;
46
import javax.swing.table.TableCellEditor;
47
import javax.swing.table.TableCellRenderer;
48
import javax.swing.table.TableColumn;
49
50
51
/**
52
* The OldJTable is an unsupported class containing some methods that were
53
* deleted from the JTable between releases 0.6 and 0.7
54
*/
55
@SuppressWarnings("serial")
56
public class OldJTable extends JTable
57
{
58
/*
59
* A new convenience method returning the index of the column in the
60
* co-ordinate space of the view.
61
*/
62
public int getColumnIndex(Object identifier) {
63
return getColumnModel().getColumnIndex(identifier);
64
}
65
66
//
67
// Methods deleted from the JTable because they only work with the
68
// DefaultTableModel.
69
//
70
71
public TableColumn addColumn(Object columnIdentifier, int width) {
72
return addColumn(columnIdentifier, width, null, null, null);
73
}
74
75
public TableColumn addColumn(Object columnIdentifier, List<?> columnData) {
76
return addColumn(columnIdentifier, -1, null, null, columnData);
77
}
78
79
// Override the new JTable implementation - it will not add a column to the
80
// DefaultTableModel.
81
public TableColumn addColumn(Object columnIdentifier, int width,
82
TableCellRenderer renderer,
83
TableCellEditor editor) {
84
return addColumn(columnIdentifier, width, renderer, editor, null);
85
}
86
87
public TableColumn addColumn(Object columnIdentifier, int width,
88
TableCellRenderer renderer,
89
TableCellEditor editor, List<?> columnData) {
90
checkDefaultTableModel();
91
92
// Set up the model side first
93
DefaultTableModel m = (DefaultTableModel)getModel();
94
m.addColumn(columnIdentifier, columnData.toArray());
95
96
// The column will have been added to the end, so the index of the
97
// column in the model is the last element.
98
TableColumn newColumn = new TableColumn(
99
m.getColumnCount()-1, width, renderer, editor);
100
super.addColumn(newColumn);
101
return newColumn;
102
}
103
104
// Not possilble to make this work the same way ... change it so that
105
// it does not delete columns from the model.
106
public void removeColumn(Object columnIdentifier) {
107
super.removeColumn(getColumn(columnIdentifier));
108
}
109
110
public void addRow(Object[] rowData) {
111
checkDefaultTableModel();
112
((DefaultTableModel)getModel()).addRow(rowData);
113
}
114
115
public void addRow(List<?> rowData) {
116
checkDefaultTableModel();
117
((DefaultTableModel)getModel()).addRow(rowData.toArray());
118
}
119
120
public void removeRow(int rowIndex) {
121
checkDefaultTableModel();
122
((DefaultTableModel)getModel()).removeRow(rowIndex);
123
}
124
125
public void moveRow(int startIndex, int endIndex, int toIndex) {
126
checkDefaultTableModel();
127
((DefaultTableModel)getModel()).moveRow(startIndex, endIndex, toIndex);
128
}
129
130
public void insertRow(int rowIndex, Object[] rowData) {
131
checkDefaultTableModel();
132
((DefaultTableModel)getModel()).insertRow(rowIndex, rowData);
133
}
134
135
public void insertRow(int rowIndex, List<?> rowData) {
136
checkDefaultTableModel();
137
((DefaultTableModel)getModel()).insertRow(rowIndex, rowData.toArray());
138
}
139
140
public void setNumRows(int newSize) {
141
checkDefaultTableModel();
142
((DefaultTableModel)getModel()).setNumRows(newSize);
143
}
144
145
public void setDataVector(Object[][] newData, List<?> columnIds) {
146
checkDefaultTableModel();
147
((DefaultTableModel)getModel()).setDataVector(
148
newData, columnIds.toArray());
149
}
150
151
public void setDataVector(Object[][] newData, Object[] columnIds) {
152
checkDefaultTableModel();
153
((DefaultTableModel)getModel()).setDataVector(newData, columnIds);
154
}
155
156
protected void checkDefaultTableModel() {
157
if(!(dataModel instanceof DefaultTableModel))
158
throw new InternalError("In order to use this method, the data model must be an instance of DefaultTableModel.");
159
}
160
161
//
162
// Methods removed from JTable in the move from identifiers to ints.
163
//
164
165
public Object getValueAt(Object columnIdentifier, int rowIndex) {
166
return super.getValueAt(rowIndex, getColumnIndex(columnIdentifier));
167
}
168
169
public boolean isCellEditable(Object columnIdentifier, int rowIndex) {
170
return super.isCellEditable(rowIndex, getColumnIndex(columnIdentifier));
171
}
172
173
public void setValueAt(Object aValue, Object columnIdentifier, int rowIndex) {
174
super.setValueAt(aValue, rowIndex, getColumnIndex(columnIdentifier));
175
}
176
177
public boolean editColumnRow(Object identifier, int row) {
178
return super.editCellAt(row, getColumnIndex(identifier));
179
}
180
181
public void moveColumn(Object columnIdentifier, Object targetColumnIdentifier) {
182
moveColumn(getColumnIndex(columnIdentifier),
183
getColumnIndex(targetColumnIdentifier));
184
}
185
186
public boolean isColumnSelected(Object identifier) {
187
return isColumnSelected(getColumnIndex(identifier));
188
}
189
190
public TableColumn addColumn(int modelColumn, int width) {
191
return addColumn(modelColumn, width, null, null);
192
}
193
194
public TableColumn addColumn(int modelColumn) {
195
return addColumn(modelColumn, 75, null, null);
196
}
197
198
/**
199
* Creates a new column with <I>modelColumn</I>, <I>width</I>,
200
* <I>renderer</I>, and <I>editor</I> and adds it to the end of
201
* the JTable's array of columns. This method also retrieves the
202
* name of the column using the model's <I>getColumnName(modelColumn)</I>
203
* method, and sets the both the header value and the identifier
204
* for this TableColumn accordingly.
205
* <p>
206
* The <I>modelColumn</I> is the index of the column in the model which
207
* will supply the data for this column in the table. This, like the
208
* <I>columnIdentifier</I> in previous releases, does not change as the
209
* columns are moved in the view.
210
* <p>
211
* For the rest of the JTable API, and all of its associated classes,
212
* columns are referred to in the co-ordinate system of the view, the
213
* index of the column in the model is kept inside the TableColumn
214
* and is used only to retrieve the information from the appropraite
215
* column in the model.
216
* <p>
217
*
218
* @param modelColumn The index of the column in the model
219
* @param width The new column's width. Or -1 to use
220
* the default width
221
* @param renderer The renderer used with the new column.
222
* Or null to use the default renderer.
223
* @param editor The editor used with the new column.
224
* Or null to use the default editor.
225
*/
226
public TableColumn addColumn(int modelColumn, int width,
227
TableCellRenderer renderer,
228
TableCellEditor editor) {
229
TableColumn newColumn = new TableColumn(
230
modelColumn, width, renderer, editor);
231
addColumn(newColumn);
232
return newColumn;
233
}
234
235
//
236
// Methods that had their arguments switched.
237
//
238
239
// These won't work with the new table package.
240
241
/*
242
public Object getValueAt(int columnIndex, int rowIndex) {
243
return super.getValueAt(rowIndex, columnIndex);
244
}
245
246
public boolean isCellEditable(int columnIndex, int rowIndex) {
247
return super.isCellEditable(rowIndex, columnIndex);
248
}
249
250
public void setValueAt(Object aValue, int columnIndex, int rowIndex) {
251
super.setValueAt(aValue, rowIndex, columnIndex);
252
}
253
*/
254
255
public boolean editColumnRow(int columnIndex, int rowIndex) {
256
return super.editCellAt(rowIndex, columnIndex);
257
}
258
259
public boolean editColumnRow(int columnIndex, int rowIndex, EventObject e){
260
return super.editCellAt(rowIndex, columnIndex, e);
261
}
262
263
264
} // End Of Class OldJTable
265
266