Changeset 4650


Ignore:
Timestamp:
2003-06-13T15:41:54+12:00 (21 years ago)
Author:
mdewsnip
Message:

Many improvements to this pane, mostly to do with keeping selections as the user clicks between files, and when the user adds/updates/removes metadata.

File:
1 edited

Legend:

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

    r4616 r4650  
    250250        }
    251251        GValueNode value_node = ((GValueModel) tree.getModel()).addValue(value);
    252         model.setSelectedMetadata(new Metadata(element, value_node));
     252        Metadata added_metadata = new Metadata(element, value_node);
     253        model.selectMetadataWhenBuildingComplete(added_metadata);
    253254        }
    254255    }
     
    266267        String value = tree.getSelectedValue();
    267268        if(selected_metadata != null && records != null && element != null && value != null) {
    268         selected_metadata = Gatherer.c_man.getCollection().msm.updateMetadata(System.currentTimeMillis(), selected_metadata, records, value, MetaEditPrompt.OVERWRITE, selected_metadata.isFileLevel());
    269         }
    270         GValueNode value_node = ((GValueModel) tree.getModel()).addValue(value);
    271         model.setSelectedMetadata(new Metadata(element, value_node));
     269        selected_metadata = Gatherer.c_man.getCollection().msm.updateMetadata(System.currentTimeMillis(), selected_metadata, records, value, MetaEditPrompt.CONFIRM, selected_metadata.isFileLevel());
     270        }
     271        model.selectMetadataWhenBuildingComplete(selected_metadata);
    272272    }
    273273    }
     
    282282        Gatherer.c_man.getCollection().msm.removeMetadata(System.currentTimeMillis(), selected_metadata, records);
    283283        }
     284
     285        // Select the closest piece of metadata with the same element name
     286        model.selectClosestMetadataWhenBuildingComplete(selected_metadata);
    284287    }
    285288    }
     
    514517    ///atherer.println("\tCreating metadata_table");
    515518    table = new JTable();
    516     //model = new GTableModel(table, assigned_metadata_view, unassigned_metadata_view, activity_bar);
    517519    model = new GTableModel(table);
    518520    table.setModel(model);
     
    707709    */
    708710    public Rectangle setSelectedMetadata(Metadata metadata) {
    709     return model.setSelectedMetadata(metadata);
     711    // return model.setSelectedMetadata(metadata);
     712    return null;  // For now
    710713    }
    711714
     
    796799
    797800        // Can only remove if the metadata is file level
    798         remove.setEnabled(selected_metadata.isFileLevel());
     801        if (selected_metadata != null) {  // Shouldn't be necessary, but is
     802            remove.setEnabled(selected_metadata.isFileLevel());
     803        }
    799804        }
    800805    }
     
    883888        }
    884889
     890        // Remember the previous selection so we can select it again later
     891        Metadata previous_selection = selected_metadata;
     892
    885893        table_label.setText(collection_tree.getSelectionDetails());
    886894
     
    890898        model = new GTableModel(table, records);
    891899        table.setModel(model);
     900
     901        // Select the closest piece of metadata in the new file
     902        model.selectClosestMetadataWhenBuildingComplete(previous_selection);
    892903    }
    893904    else {
Note: See TracChangeset for help on using the changeset viewer.