private void createDispalyRowLimitGroup(Composite cmpTop) {
    Group dispalyRowLimitGroup = new Group(cmpTop, SWT.NONE);
    dispalyRowLimitGroup.setText(
        Messages.getString(
            "designer.preview.preference.resultset.groupTitle.DispalyRowLimitsSetting"));
    GridLayout layout = new GridLayout();
    layout.makeColumnsEqualWidth = true;
    layout.marginWidth = layout.marginHeight = 6;
    dispalyRowLimitGroup.setLayout(layout);
    GridData groupData = new GridData(GridData.FILL_HORIZONTAL);
    groupData.horizontalSpan = 2;
    dispalyRowLimitGroup.setLayoutData(groupData);

    Composite container = new Composite(dispalyRowLimitGroup, SWT.NONE);
    container.setLayoutData(new GridData(GridData.FILL_BOTH));

    noLimitBtn = new Button(container, SWT.CHECK);
    GridData noLimitBtnData = new GridData(GridData.FILL_HORIZONTAL);
    noLimitBtnData.horizontalSpan = 2;
    noLimitBtn.setText(
        Messages.getString("designer.preview.preference.resultset.NoLimitOfDispalyRow"));
    noLimitBtn.setLayoutData(noLimitBtnData);
    noLimitBtn.addSelectionListener(
        new SelectionAdapter() {

          public void widgetSelected(SelectionEvent e) {
            txtMaxDataSetRow.setEnabled(!noLimitBtn.getSelection(), noLimitBtn.getParent());

            if (!noLimitBtn.getSelection()) {
              txtMaxDataSetRow.setFocus();
            }
            if (txtMaxDataSetRow.checkState()) {}
          }
        });

    txtMaxDataSetRow =
        new DisplayNumberFieldEditor(
            PREVIEW_MAXROW,
            Messages.getString(
                "designer.preview.preference.resultset.maxrow.description"), //$NON-NLS-1$
            container);
    txtMaxDataSetRow.setPage(this);
    txtMaxDataSetRow.setValidRange(1, Integer.MAX_VALUE);
    txtMaxDataSetRow.setValidateStrategy(StringFieldEditor.VALIDATE_ON_KEY_STROKE);
    txtMaxDataSetRow.setEmptyStringAllowed(false);
    txtMaxDataSetRow.setPropertyChangeListener(
        new IPropertyChangeListener() {

          public void propertyChange(PropertyChangeEvent event) {
            if (event.getProperty().equals(FieldEditor.IS_VALID))
              setValid(txtMaxDataSetRow.isValid());
          }
        });
  }
  protected void performDefaults() {
    txtMaxDataSetRow.setStringValue(String.valueOf(MAX_DATASET_ROW_DEFAULT));
    txtMaxRowLevelMember.setStringValue(String.valueOf(MAX_CUBE_ROW_LEVEL_MEMBER_DEFAULT));
    txtMaxColumnLevelMember.setStringValue(String.valueOf(MAX_CUBE_COLUMN_LEVEL_MEMBER_DEFAULT));
    txtMaxInMemoryCubeSize.setStringValue(String.valueOf(MAX_IN_MEMORY_CUBE_SIZE_DEFAULT));

    super.performDefaults();
  }
  private void initControlValues() {
    String defaultMaxRow =
        ViewerPlugin.getDefault().getPluginPreferences().getString(PREVIEW_MAXROW);

    if (defaultMaxRow == null || defaultMaxRow.trim().length() <= 0) {
      defaultMaxRow = String.valueOf(MAX_DATASET_ROW_DEFAULT);
    }

    boolean previewAllRows = String.valueOf(DATASET_DISPLAY_ALL_ROW).equals(defaultMaxRow.trim());
    noLimitBtn.setSelection(previewAllRows);
    txtMaxDataSetRow.setEnabled(!previewAllRows, noLimitBtn.getParent());

    txtMaxDataSetRow.setStringValue(previewAllRows ? "" : defaultMaxRow);

    defaultMaxRow =
        ViewerPlugin.getDefault().getPluginPreferences().getString(PREVIEW_MAX_ROW_LEVEL_MEMBER);

    if (defaultMaxRow == null || defaultMaxRow.trim().length() <= 0) {
      defaultMaxRow = String.valueOf(MAX_CUBE_ROW_LEVEL_MEMBER_DEFAULT);
    }
    txtMaxRowLevelMember.setStringValue(defaultMaxRow);

    defaultMaxRow =
        ViewerPlugin.getDefault().getPluginPreferences().getString(PREVIEW_MAX_COLUMN_LEVEL_MEMBER);

    if (defaultMaxRow == null || defaultMaxRow.trim().length() <= 0) {
      defaultMaxRow = String.valueOf(MAX_CUBE_COLUMN_LEVEL_MEMBER_DEFAULT);
    }
    txtMaxColumnLevelMember.setStringValue(defaultMaxRow);

    defaultMaxRow =
        ViewerPlugin.getDefault().getPluginPreferences().getString(PREVIEW_MAX_IN_MEMORY_CUBE_SIZE);

    if (defaultMaxRow == null || defaultMaxRow.trim().length() <= 0) {
      defaultMaxRow = String.valueOf(MAX_IN_MEMORY_CUBE_SIZE_DEFAULT);
    }
    txtMaxInMemoryCubeSize.setStringValue(defaultMaxRow);
  }
  public boolean performOk() {
    int maxRowValue =
        noLimitBtn.getSelection() ? DATASET_DISPLAY_ALL_ROW : txtMaxDataSetRow.getIntValue();
    ViewerPlugin.getDefault().getPluginPreferences().setValue(PREVIEW_MAXROW, maxRowValue);

    ViewerPlugin.getDefault()
        .getPluginPreferences()
        .setValue(PREVIEW_MAX_ROW_LEVEL_MEMBER, txtMaxRowLevelMember.getIntValue());

    ViewerPlugin.getDefault()
        .getPluginPreferences()
        .setValue(PREVIEW_MAX_COLUMN_LEVEL_MEMBER, txtMaxColumnLevelMember.getIntValue());

    ViewerPlugin.getDefault()
        .getPluginPreferences()
        .setValue(PREVIEW_MAX_IN_MEMORY_CUBE_SIZE, txtMaxInMemoryCubeSize.getIntValue());

    ViewerPlugin.getDefault().savePluginPreferences();

    return super.performOk();
  }