Changeset 4662
- Timestamp:
- 2003-06-13T17:21:33+12:00 (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gli/src/org/greenstone/gatherer/gui/table/GTableModel.java
r4651 r4662 127 127 128 128 129 /** Returns the data class of the specified column. */130 // private Class getColumnClass(int col) {131 // if(col == 2) {132 // return JButton.class;133 // }134 // return String.class;135 // }136 137 138 129 /* Called to retrieve the Metadata record that matches a certain row. Usually caused by the user selectiong a row in the table. It synchronized so that the model doesn't up and change while we're trying to retrieve the indicated element. */ 139 130 public synchronized Metadata getMetadataAtRow(int row) { … … 238 229 /** Called whenever an element in a set is added, edited or removed from the metadata set manager. We listen for this just incase the name of one of the elements currently shown changes. After that the table will be up to date, as the element references are otherwise live. */ 239 230 public void elementChanged(MSMEvent event) { 240 MSMAction profile = event.getProfile(); 241 if(profile != null) { 242 // Retrieve the element's new name (hopefully returned by getValue()). 243 String name = profile.getTarget(); 244 for(int row = 0; row < current_metadata.size(); row++) { 245 if(getValueAt(row, 0).equals(name)) { 246 fireTableCellUpdated(row, 0); 247 } 248 } 249 name = null; 250 } 251 profile = null; 252 event = null; 231 // Brute force solution... rebuild the table. 232 rebuildModel(); 253 233 } 254 234 … … 257 237 public void metadataChanged(MSMEvent event) { 258 238 FileNode file_node = event.getRecord(); 259 ///ystem.err.println("File node effected");260 239 // First check whether this record is one of those that we have showing. 261 if (file_nodes != null&& file_node != null && ArrayTools.contains(file_nodes, file_node)) {240 if (file_nodes != null && file_nodes.length > 0 && file_node != null && ArrayTools.contains(file_nodes, file_node)) { 262 241 // Brute force solution... rebuild the table. 263 if(file_nodes != null && file_nodes.length > 0) { 264 Metadata select_exact_metadata = null; 265 Metadata select_closest_metadata = null; 266 boolean had_warning = false; 267 // If there is a current builder... 268 if (builder != null) { 269 // ...and it is still building... 270 if (!builder.complete) { 271 select_exact_metadata = builder.select_exact_metadata; 272 select_closest_metadata = builder.select_closest_metadata; 273 had_warning = builder.had_warning; 274 // ...kill it... 275 builder.kill(); 276 } 277 // ...and wait until it dies 278 while (!builder.complete) { } 279 } 280 281 // Create model builder 282 builder = new ModelBuilder(); 283 builder.start(); 284 builder.select_exact_metadata = select_exact_metadata; 285 builder.select_closest_metadata = select_closest_metadata; 286 builder.had_warning = had_warning; 287 } 242 rebuildModel(); 288 243 } 289 244 } … … 299 254 public void valueChanged(MSMEvent event) { 300 255 // Don't care. Tra-la-la-la-la. 256 } 257 258 259 private void rebuildModel() 260 { 261 Metadata select_exact_metadata = null; 262 Metadata select_closest_metadata = null; 263 boolean had_warning = false; 264 // If there is a current builder... 265 if (builder != null) { 266 // ...and it is still building... 267 if (!builder.complete) { 268 select_exact_metadata = builder.select_exact_metadata; 269 select_closest_metadata = builder.select_closest_metadata; 270 had_warning = builder.had_warning; 271 // ...kill it... 272 builder.kill(); 273 } 274 // ...and wait until it dies 275 while (!builder.complete) { } 276 } 277 278 // Create model builder 279 builder = new ModelBuilder(); 280 builder.start(); 281 builder.select_exact_metadata = select_exact_metadata; 282 builder.select_closest_metadata = select_closest_metadata; 283 builder.had_warning = had_warning; 301 284 } 302 285 … … 312 295 } 313 296 return false; 314 }315 316 317 /** Alphabetically inserts the new_metadata in the target vector. */318 private int add(ArrayList target, Metadata new_metadata) {319 int i = 0;320 while(i < target.size()) {321 Metadata current = (Metadata)target.get(i);322 if(current.compareTo(new_metadata) > 0) {323 target.add(i, new_metadata);324 return i;325 }326 i++;327 }328 target.add(new_metadata);329 return i;330 297 } 331 298 … … 433 400 killed = true; 434 401 notify(); 402 } 403 404 405 /** Alphabetically inserts the new_metadata in the target vector. */ 406 private int add(ArrayList target, Metadata new_metadata) { 407 int i = 0; 408 while(i < target.size()) { 409 Metadata current = (Metadata)target.get(i); 410 if(current.compareTo(new_metadata) > 0) { 411 target.add(i, new_metadata); 412 return i; 413 } 414 i++; 415 } 416 target.add(new_metadata); 417 return i; 435 418 } 436 419
Note:
See TracChangeset
for help on using the changeset viewer.