Changeset 12561


Ignore:
Timestamp:
2006-08-25T14:14:02+12:00 (18 years ago)
Author:
shaoqun
Message:

added code to use gems

File:
1 edited

Legend:

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

    r12241 r12561  
    88import java.util.Vector;
    99import java.io.File;
     10import java.util.Observer;
     11import java.util.Observable;
    1012
    1113import org.greenstone.gatherer.Configuration;
     
    1517import org.greenstone.gatherer.metadata.MetadataSet;
    1618import org.greenstone.gatherer.metadata.MetadataSetManager;
     19import org.greenstone.gatherer.gems.*;
    1720
    1821public class MetadataSetDialog
     
    3437    private MetadataSetDialog set_dialog = null;
    3538    private boolean sets_changed = false;
     39
     40    private GEMS gems = null;
    3641   
    3742    public MetadataSetDialog() {
     
    123128    public void actionPerformed(ActionEvent event) {
    124129        // do a pop up message
    125         JOptionPane.showMessageDialog(Gatherer.g_man, Dictionary.get("MetadataSetDialog.Edit_Message"), Dictionary.get("MetadataSetDialog.Edit_Message_Title"), JOptionPane.INFORMATION_MESSAGE);
     130        MetadataSet metadata_set = (MetadataSet) current_set_list.getSelectedValue();
     131        String metadata_path = metadata_set.getMetadataSetFile().toString();
     132        if (gems == null){
     133        gems = new GEMS(Configuration.gsdl_path,"",false,false);
     134        }
     135        gems.displayMetadataSet(metadata_path);
     136       
    126137    }
    127138    }
     
    166177
    167178    private class AddMetadataSetPrompt
    168     extends ModalDialog {
     179    extends ModalDialog implements GEMSListener{
    169180   
    170181    private JDialog add_set_dialog;
     
    175186
    176187    private JButton add_button;
     188
     189    private JButton new_button;
     190     
     191    private  GEMSListener self;
    177192
    178193    public AddMetadataSetPrompt() {
     
    183198        setSize(ADD_SIZE);
    184199        setTitle(Dictionary.get("MetadataSetDialog.Add_Title"));
    185 
    186         // Show the metadata sets (except extracted, exploded, and currently assigned sets) in the GLI metadata folder
    187         ArrayList all_metadata_sets = MetadataSetManager.listMetadataSets(new File(Gatherer.getGLIMetadataDirectoryPath()));
    188         ArrayList current_metadata_sets = MetadataSetManager.getMetadataSets();
    189         DynamicListModel valid_sets_model = new DynamicListModel();
    190         for (int i=0; i<all_metadata_sets.size(); i++) {
    191         MetadataSet set = (MetadataSet) all_metadata_sets.get(i);
    192         if (set.getNamespace().equals(MetadataSetManager.EXTRACTED_METADATA_NAMESPACE) || set.getNamespace().equals(MetadataSetManager.EXPLODED_METADATA_NAMESPACE)) {
    193             continue;
    194         }
    195         // indexOf uses the equals() method, which for MetadataSets compares the toString() output, not the objects
    196         if (current_metadata_sets.indexOf(set)!=-1) {
    197             continue;
    198         }
    199         valid_sets_model.addElement(set);
    200         }
     200        self = this;
     201       
    201202
    202203        JPanel center_pane = new JPanel();
     
    205206        sets_label.setOpaque(false);
    206207       
    207         available_sets_list = new JList(valid_sets_model);
     208        available_sets_list = new JList(getValidSetModel());
    208209        available_sets_list.addListSelectionListener(new AvailableSetListSelectionListener());
    209210        available_sets_list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
     
    221222        add_button = new GLIButton(Dictionary.get("MetadataSetDialog.Add_Set"), Dictionary.get("MetadataSetDialog.Add_Set_Tooltip"));
    222223        add_button.setEnabled(false);
     224         
     225        new_button = new GLIButton(Dictionary.get("MetadataSetDialog.New_Set"), Dictionary.get("MetadataSetDialog.New_Set_Tooltip"));
     226       
    223227        JButton browse_button = new GLIButton(Dictionary.get("MetadataSetDialog.Browse"), Dictionary.get("MetadataSetDialog.Browse_Tooltip"));
    224228        browse_button.setEnabled(true);
     
    230234            public void actionPerformed(ActionEvent event) {
    231235            cancelled = true;
     236            if (gems != null)
     237                gems.removeGEMSListener(self);
    232238            add_set_dialog.dispose();
    233239            }
    234240        });
    235241       
     242        new_button.addActionListener(new ActionListener() {
     243            public void actionPerformed(ActionEvent event) {
     244            if (gems == null){
     245                gems = new GEMS(Configuration.gsdl_path,"",false,false);
     246            }
     247            gems.newMetadataSet();
     248            gems.addGEMSListener(self);
     249            }
     250        });
     251                           
     252
    236253        // Layout
    237254        sets_pane.setLayout(new BorderLayout());
     
    249266       
    250267        button_pane.setBorder(BorderFactory.createEmptyBorder(5,0,0,0));
    251         button_pane.setLayout(new GridLayout(1,3,5,0));
     268        button_pane.setLayout(new GridLayout(1,4,5,0));
    252269        button_pane.add(add_button);
     270        button_pane.add(new_button);
    253271        button_pane.add(browse_button);
    254272        button_pane.add(cancel_button);
     
    267285
    268286       
     287    }
     288   
     289    public DynamicListModel getValidSetModel(){
     290        // Show the metadata sets (except extracted, exploded, and currently assigned sets) in the GLI metadata folder
     291        ArrayList all_metadata_sets = MetadataSetManager.listMetadataSets(new File(Gatherer.getGLIMetadataDirectoryPath()));
     292        ArrayList current_metadata_sets = MetadataSetManager.getMetadataSets();
     293        DynamicListModel valid_sets_model = new DynamicListModel();
     294        for (int i=0; i<all_metadata_sets.size(); i++) {
     295         MetadataSet set = (MetadataSet) all_metadata_sets.get(i);
     296         if (set.getNamespace().equals(MetadataSetManager.EXTRACTED_METADATA_NAMESPACE) || set.getNamespace().equals(MetadataSetManager.EXPLODED_METADATA_NAMESPACE)) {
     297            continue;
     298         }
     299        // indexOf uses the equals() method, which for MetadataSets compares the toString() output, not the objects
     300         if (current_metadata_sets.indexOf(set)!=-1) {
     301            continue;
     302         }
     303         valid_sets_model.addElement(set);
     304         }
     305         
     306        return valid_sets_model;
     307    }
     308
     309   
     310    public void  gemsIsClosed(){
     311        available_sets_list.setModel(getValidSetModel());
    269312    }
    270313
Note: See TracChangeset for help on using the changeset viewer.