Ignore:
Timestamp:
2007-10-30T15:41:41+13:00 (16 years ago)
Author:
anna
Message:

same changes as in trunk.

File:
1 edited

Legend:

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

    r13195 r14747  
    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}
Note: See TracChangeset for help on using the changeset viewer.