Changeset 5158


Ignore:
Timestamp:
2003-08-18T14:03:24+12:00 (21 years ago)
Author:
jmt12
Message:

Fix 203B010

Location:
trunk/gli/src/org/greenstone/gatherer/gui/table
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/gli/src/org/greenstone/gatherer/gui/table/GTableModel.java

    r4686 r5158  
    3131import javax.swing.*;
    3232import javax.swing.table.*;
     33import org.greenstone.gatherer.Configuration;
    3334import org.greenstone.gatherer.Gatherer;
    3435import org.greenstone.gatherer.file.FileNode;
     
    4142import org.greenstone.gatherer.msm.MSMUtils;
    4243import org.greenstone.gatherer.util.ArrayTools;
     44import org.greenstone.gatherer.util.Utility;
    4345/** Provides the model for a GTable component, filling it with metadata values for the choosen files or folders. The model also provides several different view of this data; assigned folder metadata, assigned file metadata, all assigned metadata, unassigned metadata, and all metadata. It also differentiates between metadata that is common to all of the files or folders, and that which isn't. The building of the actual model is done on a separate thread so that the gui remains responsive, and the gui is intermitantly updated by this thread. Updating of the model is triggered by events recieved from the metadata set manager in terms of new or obsolete metadata. A new model is rebuilt whenever the user selects a different group of files or folders.
    4446 * @author John Thompson, Greenstone Digital Library, University of Waikato
     
    112114            break;
    113115        case 1:
    114             ElementWrapper element = m.getElement();
    115             if (element != null) {
    116             result = element.toString();
    117             }
     116            result = m.getElement();
    118117            break;
    119118        case 2:
     
    261260    Metadata select_exact_metadata = null;
    262261    Metadata select_closest_metadata = null;
    263     boolean had_warning = false;
    264262    // If there is a current builder...
    265263    if (builder != null) {
     
    268266        select_exact_metadata = builder.select_exact_metadata;
    269267        select_closest_metadata = builder.select_closest_metadata;
    270         had_warning = builder.had_warning;
    271268        // ...kill it...
    272269        builder.kill();
     
    281278    builder.select_exact_metadata = select_exact_metadata;
    282279    builder.select_closest_metadata = select_closest_metadata;
    283     builder.had_warning = had_warning;
    284280    }
    285281
     
    304300    public Metadata select_exact_metadata = null;
    305301    public Metadata select_closest_metadata = null;
    306     private boolean had_warning = false;
     302    private boolean had_extracted_warning = false;
     303    private boolean had_inherited_warning = false;
    307304    private volatile boolean killed = false;
    308305
     
    332329            // Ignore hidden metadata
    333330            if (!element.toString().startsWith("hidden.")) {
    334             // If a piece of metadata is at folder level, display the warning
    335             if (!metadatum.isFileLevel()) {
    336                 showInheritedMetadataWarning();
     331            // Only process extracted metadata if the user has specified to
     332            if(!element.getNamespace().equals(Utility.EXTRACTED_METADATA_NAMESPACE) || Gatherer.config.get("general.view_extracted_metadata", Configuration.COLLECTION_SPECIFIC)) {
     333                // If a piece of metadata is at folder level, display the warning
     334                if (!metadatum.isFileLevel()) {
     335                showInheritedMetadataWarning();
     336                }
     337               
     338                // If the piece of metadata is in the list, increment its count
     339                int index = current_metadata.indexOf(metadatum);
     340                if (index >= 0) {
     341                Metadata existing = (Metadata) current_metadata.get(index);
     342                existing.inc();
     343                }
     344                // Otherwise add it to the list
     345                else {
     346                metadatum.setCount(1);
     347                index = add(current_metadata, metadatum);
     348                fireTableRowsInserted(index, index);
     349               
     350                // Remember we have seen this element
     351                if (known_elements.contains(element) == false) {
     352                    known_elements.add(element);
     353                }
     354                }
    337355            }
    338 
    339             // If the piece of metadata is in the list, increment its count
    340             int index = current_metadata.indexOf(metadatum);
    341             if (index >= 0) {
    342                 Metadata existing = (Metadata) current_metadata.get(index);
    343                 existing.inc();
    344             }
    345             // Otherwise add it to the list
     356            // Display a warning
    346357            else {
    347                 metadatum.setCount(1);
    348                 index = add(current_metadata, metadatum);
    349                 fireTableRowsInserted(index, index);
    350 
    351                 // Remember we have seen this element
    352                 if (known_elements.contains(element) == false) {
    353                 known_elements.add(element);
    354                 }
     358                showExtractedMetadataWarning();
    355359            }
    356360            }
     
    418422    }
    419423
     424    private void showExtractedMetadataWarning()
     425    {
     426        if (!had_extracted_warning) {
     427        had_extracted_warning = true;
     428        Runnable task = new Runnable() {
     429            public void run() {
     430                WarningDialog dialog = new WarningDialog("warning.ExtractedMetadata", false);
     431                dialog.display();
     432                dialog.dispose();
     433                dialog = null;
     434            }
     435            };
     436        SwingUtilities.invokeLater(task);
     437        }
     438    }
    420439
    421440    private void showInheritedMetadataWarning()
    422441    {
    423         if (!had_warning) {
    424         had_warning = true;
     442        if (!had_inherited_warning) {
     443        had_inherited_warning = true;
    425444        Runnable task = new Runnable() {
    426445            public void run() {
  • trunk/gli/src/org/greenstone/gatherer/gui/table/TableCellRenderer.java

    r4366 r5158  
    4949import org.greenstone.gatherer.Gatherer;
    5050import org.greenstone.gatherer.gui.table.GTableModel;
     51import org.greenstone.gatherer.msm.ElementWrapper;
    5152import org.greenstone.gatherer.msm.Metadata;
    5253import org.greenstone.gatherer.util.Utility;
     
    116117        renderer.setBorder(BorderFactory.createEmptyBorder(0,0,0,0));
    117118    }
     119
     120    // We set a tooltip over the element column containing the description of the element
     121    if(value instanceof ElementWrapper) {
     122        renderer.setToolTipText(((ElementWrapper)value).getToolTip());
     123    }   
     124
    118125    return renderer;
    119126    }
Note: See TracChangeset for help on using the changeset viewer.