private void allLocalesCheckboxSelectionChanged() {
   if (fAllLocalesCheckbox.getSelection()) {
     fLocaleFilter.setEnabled(false);
     setPageComplete(true);
   } else {
     fLocaleFilter.setEnabled(true);
     setPageComplete(fLocaleFilter.getSelectedViewer().getTable().getItemCount() > 0);
   }
 }
 private void enableLocaleArea(boolean enable) {
   if (enable) {
     fAllLocalesCheckbox.setEnabled(true);
     if (fAllLocalesCheckbox.getSelection()) {
       fLocaleFilter.setEnabled(false);
       setPageComplete(true);
     } else {
       fLocaleFilter.setEnabled(true);
       setPageComplete(fLocaleFilter.getSelectedViewer().getTable().getItemCount() > 0);
     }
   } else {
     fLocaleFilter.setEnabled(false);
     fAllLocalesCheckbox.setEnabled(false);
   }
 }
  @Override
  public void createControl(Composite parent) {
    // Create filtered list component
    fLocaleFilter = new FilteredListComponent(fModelLocalesTable, new LocaleLabelProvider(), this);
    Composite container = fLocaleFilter.createFilteredListComponent(parent);

    createAllLocalesCheckbox(container);

    createLocaleGroupArea(container);

    setControl(container);
    Dialog.applyDialogFont(container);

    allLocalesCheckboxSelectionChanged();
    groupCheckboxSelectionChanged();

    try {
      int selectedIndex = getDialogSettings().getInt(SELECTED_GROUP);
      fLocaleGroupCombo.select(selectedIndex);
    } catch (NumberFormatException e) {
    }

    String pattern = not_null(getDialogSettings().get(FILTER_PATTERN), "");
    fLocaleFilter.fFilterText.setText(pattern);
  }
  public boolean canFlipToNextPage() {
    if (fAllLocalesCheckbox.getSelection() || fLocaleFilter.hasSelectedItems()) {
      return true;
    }

    if (fLocaleGroupCheckbox.getSelection()) {
      return true;
    }
    return false;
  }