Changeset 14744

Show
Ignore:
Timestamp:
30.10.2007 15:10:27 (12 years ago)
Author:
anna
Message:

Added SelectAll? and SelectNone? buttons on the Languages partition indexes.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • gli/trunk/src/org/greenstone/gatherer/cdm/LanguageManager.java

    r13195 r14744  
    284284    /** button to move a language down in the list */ 
    285285    private JButton move_up_button; 
     286    /** button to select all the languages in the list */ 
     287    private JButton select_all_button; 
     288    /** button to clear the current selection in the list */ 
     289    private JButton select_none_button;  
    286290    /** The button to set the current language as the default one. */ 
    287291    private JButton set_default_button = null; 
     
    311315         
    312316        JPanel control_panel = new JPanel(); 
     317         
     318        JPanel labels_pane = new JPanel();       
    313319        JLabel selector_label = new JLabel(Dictionary.get("CDM.LanguageManager.Selector")); 
     320        select_all_button = new GLIButton(Dictionary.get("CDM.IndexManager.Select_All"), Dictionary.get("CDM.IndexManager.Select_All_Tooltip")); 
     321        select_none_button = new GLIButton(Dictionary.get("CDM.IndexManager.Select_None"), Dictionary.get("CDM.IndexManager.Select_None_Tooltip")); 
    314322         
    315323        language_metadata_combo = new JComboBox(MetadataSetManager.getEveryMetadataSetElement().toArray()); 
     
    326334        language_list.setToolTipText(Dictionary.get("CDM.LanguageManager.Selector_Tooltip")); 
    327335        language_list.setCellRenderer(new LanguageCheckListCellRenderer()); 
     336         
     337        select_all_button.setEnabled(isSelectAllEnabled()); 
     338        select_none_button.setEnabled(isSelectAllEnabled()); 
    328339                 
    329340        JPanel movement_pane = new JPanel(); 
     
    359370        replace_button.addActionListener(new ReplaceListener()); 
    360371        replace_button.addActionListener(CollectionDesignManager.buildcol_change_listener); 
     372        select_all_button.addActionListener(new SelectAllListener());            
     373        select_all_button.addActionListener(CollectionDesignManager.buildcol_change_listener); 
     374        select_none_button.addActionListener(new SelectNoneListener()); 
     375        select_none_button.addActionListener(CollectionDesignManager.buildcol_change_listener); 
    361376 
    362377        language_list.addListSelectionListener(new LanguageListListener()); 
     
    395410        control_panel.setBorder(BorderFactory.createEmptyBorder(5,0,0,0)); 
    396411        control_panel.setLayout(new BorderLayout()); 
    397         control_panel.add(selector_label, BorderLayout.WEST); 
     412                 
     413        labels_pane.setLayout(new BorderLayout()); 
     414        labels_pane.setBorder(BorderFactory.createEmptyBorder(5, 5, 10, 5)); 
     415         
     416        // add the select all and select none buttons to the label panel              
     417        GridBagLayout gridbag = new GridBagLayout();             
     418        GridBagConstraints c = new GridBagConstraints(); 
     419        labels_pane.setLayout(gridbag); 
     420 
     421        c.fill = GridBagConstraints.BOTH;        
     422        c.weightx = 1.0; 
     423        c.weighty = 1.0; 
     424        c.gridx = 0; 
     425        c.gridy = 0; 
     426         
     427        gridbag.setConstraints(selector_label, c); 
     428        labels_pane.add(selector_label); 
     429         
     430        c.fill = GridBagConstraints.HORIZONTAL; 
     431        c.weighty = 0.0; 
     432        c.gridy = 1; 
     433         
     434        gridbag.setConstraints(select_all_button, c); 
     435        labels_pane.add(select_all_button);          
     436         
     437        c.gridy = 2; 
     438        gridbag.setConstraints(select_none_button, c); 
     439        labels_pane.add(select_none_button);     
     440                 
     441        control_panel.add(labels_pane, BorderLayout.WEST); 
     442         
    398443        control_panel.add(new JScrollPane(language_list), BorderLayout.CENTER); 
    399444        control_panel.add(button_panel, BorderLayout.SOUTH); 
     
    435480        move_down_button.setEnabled(false); 
    436481        move_up_button.setEnabled(false); 
     482        select_all_button.setEnabled(isSelectAllEnabled());          
     483        select_none_button.setEnabled(isSelectAllEnabled()); 
    437484 
    438485    } 
     
    447494         
    448495        // Display the selected subcollection index's sources 
    449         language_list.clearTicked(); 
    450         language_list.setTickedObjects(selected_lang.getCode().split(",")); 
    451          
     496        language_list.clearTicked();     
     497        // for multi-languages indexes, getCode returns null 
     498        if(selected_lang.getCode()==null){                 
     499          return; 
     500        } 
     501        language_list.setTickedObjects(selected_lang.getCode().split(","));      
    452502    } 
    453503 
     
    481531        add_button.setEnabled(add_enabled); 
    482532        replace_button.setEnabled(replace_enabled); 
     533        select_all_button.setEnabled(isSelectAllEnabled()); 
     534        select_none_button.setEnabled(isSelectAllEnabled()); 
    483535    } 
    484536     
     
    538590        validateButtons(); 
    539591        } 
     592    } 
     593     
     594    private class SelectAllListener 
     595    implements ActionListener { 
     596         
     597        public void actionPerformed(ActionEvent event){ 
     598            if(select_all_button.isEnabled()){ 
     599              language_list.setAllTicked(); 
     600              validateButtons(); 
     601            } 
     602        } 
     603    } 
     604     
     605    private class SelectNoneListener 
     606    implements ActionListener { 
     607         
     608        public void actionPerformed(ActionEvent event){ 
     609            if(select_all_button.isEnabled()){ 
     610              language_list.clearTicked(); 
     611              validateButtons(); 
     612            } 
     613        } 
    540614    } 
    541615     
     
    598672        int i = selected_languages_list.getSelectedIndex(); 
    599673        int size = selected_languages_list.getModel().getSize(); 
     674         
     675        select_all_button.setEnabled(isSelectAllEnabled()); 
     676        select_none_button.setEnabled(isSelectAllEnabled()); 
     677         
    600678        Language selected_lang = (Language)selected_languages_list.getSelectedValue(); 
    601679        remove_button.setEnabled(true); 
     
    631709        return component; 
    632710        } 
     711    } 
     712     
     713    private boolean isSelectAllEnabled(){ 
     714      return language_list.getModel().getSize() > 0 ? true : false;          
    633715    } 
    634716    } 
     
    662744    } 
    663745    } 
     746     
     747     
    664748 
    665749}