Changeset 4625 for trunk/gli/src/org/greenstone/gatherer/gui
- Timestamp:
- 2003-06-12T18:07:10+12:00 (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gli/src/org/greenstone/gatherer/gui/table/GTableModel.java
r4604 r4625 277 277 if(0 <= row && row < current_metadata.size()) { 278 278 Metadata entry = (Metadata) current_metadata.get(row); 279 ///ystem.err.println("There are " + file_nodes.length + " selected files."); 280 ///ystem.err.println("This metadata is attached to " + entry.getCount() + " of them."); 279 // System.err.println("Of the " + file_nodes.length + " selected files, " + entry + " is attached to " + entry.getCount() + " of them."); 280 // System.err.println("There are " + file_nodes.length + " selected files."); 281 // System.err.println("This metadata is attached to " + entry.getCount() + " of them."); 281 282 if(entry.getCount() == file_nodes.length) { 282 283 return true; … … 380 381 } 381 382 383 382 384 private class ModelBuilder 385 extends Thread { 386 387 public boolean complete = false; 388 public Metadata selected_metadata = null;; 389 private boolean had_warning = false; 390 391 public void run() 392 { 393 if (!Gatherer.c_man.ready()) { 394 System.err.println("Not ready!"); 395 return; 396 } 397 398 // System.err.println("Building metadata model..."); 399 Vector elements = Gatherer.c_man.getCollection().msm.getElements(); 400 ArrayList known_elements = new ArrayList(); 401 current_metadata.clear(); 402 403 for (int i = 0; i < file_nodes.length; i++) { 404 File current_file = file_nodes[i].getFile(); 405 // System.err.println("File: " + current_file); 406 407 // Get the currently assigned metadata for this file 408 ArrayList metadata = Gatherer.c_man.getCollection().gdm.getAllMetadata(current_file); 409 for (int j = 0; j < metadata.size(); j++) { 410 Metadata metadatum = (Metadata) metadata.get(j); 411 // System.err.println(" Metadatum: " + metadatum + " (" + metadatum.getCount() + ")"); 412 413 // If a piece of metadata is at folder level, display the warning 414 if (!metadatum.isFileLevel()) { 415 showInheritedMetadataWarning(); 416 } 417 418 // If the piece of metadata is in the list, increment its count 419 int index = current_metadata.indexOf(metadatum); 420 if (index >= 0) { 421 Metadata existing = (Metadata) current_metadata.get(index); 422 existing.inc(); 423 } 424 // Otherwise add it to the list 425 else { 426 metadatum.setCount(1); 427 index = add(current_metadata, metadatum); 428 fireTableRowsInserted(index, index); 429 430 // Remember we have seen this element 431 ElementWrapper element = metadatum.getElement(); 432 if (known_elements.contains(element) == false) { 433 known_elements.add(element); 434 } 435 } 436 } 437 } 438 439 // Make sure each element has a piece of metadata (even if blank) 440 for (int i = 0; i < elements.size(); i++) { 441 ElementWrapper element = (ElementWrapper) elements.get(i); 442 // System.err.println("Element: " + element); 443 444 // If we haven't seen this metadata element, add it now 445 if (!known_elements.contains(element)) { 446 Metadata metadatum = new Metadata(element); 447 metadatum.setCount(file_nodes.length); 448 449 // Add it to the table 450 int index = add(current_metadata, metadatum); 451 fireTableRowsInserted(index, index); 452 } 453 } 454 455 // Sort the metadata and update the table 456 Gatherer.g_man.metaedit_pane.validateMetadataTable(); 457 Collections.sort(current_metadata, MSMUtils.METADATA_COMPARATOR); 458 fireTableDataChanged(); 459 460 // Processing complete 461 complete = true; 462 463 // If while processing we've been asked to select a certain metadata, do it now 464 if (selected_metadata != null) { 465 setSelectedMetadata(selected_metadata); 466 } 467 } 468 469 470 private void showInheritedMetadataWarning() 471 { 472 if (!had_warning) { 473 had_warning = true; 474 Runnable task = new Runnable() { 475 public void run() { 476 WarningDialog dialog = new WarningDialog("warning.InheritedMetadata", false); 477 dialog.display(); 478 dialog.dispose(); 479 dialog = null; 480 } 481 }; 482 SwingUtilities.invokeLater(task); 483 } 484 } 485 } 486 487 488 private class OldModelBuilder 383 489 extends Thread { 384 490 … … 391 497 public void run() { 392 498 if(Gatherer.c_man != null && Gatherer.c_man.ready()) { 499 System.err.println("Building metadata model..."); 393 500 Vector elements = Gatherer.c_man.getCollection().msm.getElements(); 394 501 // Show some visual indication that building is occuring. … … 403 510 for(int i = 0; i < file_nodes.length; i++) { 404 511 File current_file = file_nodes[i].getFile(); 512 System.err.println("File: " + current_file); 405 513 // The current assigned metadata for this file. 406 514 ArrayList metadatum = Gatherer.c_man.getCollection().gdm.getAllMetadata(current_file); 515 System.err.println("Pieces of metadata: " + metadatum.size()); 407 516 for(int j = 0; j < metadatum.size(); j++) { 408 517 Metadata data = (Metadata) metadatum.get(j); 518 System.err.println(" Metadata value: " + data); 409 519 // Determine the target list by the metadata level 410 520 ArrayList modified_metadata; … … 463 573 } 464 574 // Add entries for the currently unassigned metadata. You can determine these as the difference between elements and known_elements. 575 System.err.println("Number of elements: " + elements.size()); 576 System.err.println("Number of known elements: " + known_elements.size()); 465 577 for(int k = 0; k < elements.size(); k++) { 466 578 // For each key. 467 579 ElementWrapper element = (ElementWrapper) elements.get(k); 580 System.err.println("Element " + k + ": " + element); 468 581 if(!known_elements.contains(element)) { 582 System.err.println("(Doesn't contain)"); 469 583 Metadata data = new Metadata(element); 470 584 int index = add(unassigned_metadata, data); … … 475 589 //else if(current_view == SHOW_ALL) { 476 590 if((index = current_metadata.indexOf(data)) == -1) { 591 System.err.println("Adding " + data + " to " + current_metadata); 477 592 index = add(current_metadata, data); 478 593 fireTableRowsInserted(index, index);
Note:
See TracChangeset
for help on using the changeset viewer.