Updated dialog with modern spinner widget

git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@7077 51baf565-9d33-0410-a72c-fc3788e3496d
This commit is contained in:
Brian Remedios
2010-03-02 02:33:00 +00:00
parent 776c05d1f9
commit 231a163f28

View File

@ -38,6 +38,7 @@ package net.sourceforge.pmd.eclipse.ui.dialogs;
import net.sourceforge.pmd.eclipse.plugin.PMDPlugin;
import net.sourceforge.pmd.eclipse.ui.nls.StringKeys;
import net.sourceforge.pmd.eclipse.ui.preferences.editors.SWTUtil;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.SWT;
@ -54,28 +55,28 @@ import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Spinner;
/**
*
* @author Sven
*
* @author Sven, Brian Remedios
*/
public class CPDCheckDialog extends Dialog {
private final String[] languages;
private final String[] formats;
private int selectedFormat;
private String selectedLanguage;
private boolean createReport;
private String tileSize;
private Group reportGroup = null;
private Button createReportCheckbox = null;
private Combo languageCombo = null;
private Text minimumTileSizeText = null;
private Spinner minTileSizeSpinner = null;
private Combo formatCombo = null;
private int tileSize = defaultMinTileSize();
public CPDCheckDialog(Shell parentShell, String[] languages, String[] formats) {
super(parentShell);
this.languages = languages;
@ -112,22 +113,8 @@ public class CPDCheckDialog extends Dialog {
return selectedLanguage;
}
/**
* Gets the tile-size.
* @return tile size
*/
public int getTileSize() {
int tilesize = 0;
try {
tilesize = Integer.parseInt(tileSize);
if (tilesize <=0) {
throw new NumberFormatException();
}
} catch (NumberFormatException e) {
tilesize = PMDPlugin.getDefault().loadPreferences().getMinTileSize();
PMDPlugin.getDefault().logInformation("Invalid minimum tile-size: Setting to default value of " + tilesize);
}
return tilesize;
private int defaultMinTileSize() {
return PMDPlugin.getDefault().loadPreferences().getMinTileSize();
}
/**
@ -142,6 +129,10 @@ public class CPDCheckDialog extends Dialog {
return createReport;
}
public int getTileSize() {
return tileSize;
}
/**
* Initializes the container.
* @param container
@ -154,12 +145,7 @@ public class CPDCheckDialog extends Dialog {
final GridData gridData6 = new GridData();
gridData6.horizontalAlignment = GridData.END;
gridData6.verticalAlignment = GridData.CENTER;
final GridData gridData5 = new GridData();
gridData5.horizontalAlignment = GridData.FILL;
gridData5.grabExcessHorizontalSpace = true;
gridData5.horizontalIndent = 10;
gridData5.heightHint = -1;
gridData5.verticalAlignment = GridData.CENTER;
final GridData gridData4 = new GridData();
gridData4.verticalIndent = 5;
gridData4.horizontalIndent = 5;
@ -183,31 +169,41 @@ public class CPDCheckDialog extends Dialog {
final Label minimumTileSizeLabel = new Label(container, SWT.NONE);
minimumTileSizeLabel.setText(getString(StringKeys.MSGKEY_DIALOG_CPD_MIN_TILESIZE_LABEL));
minimumTileSizeLabel.setLayoutData(gridData7);
minimumTileSizeText = new Text(container, SWT.BORDER);
minimumTileSizeText.setLayoutData(gridData5);
minimumTileSizeText.setToolTipText(getString(StringKeys.MSGKEY_DIALOG_TOOLTIP_CPD_MIN_TILESIZE));
final int minTileSize = PMDPlugin.getDefault().loadPreferences().getMinTileSize();
final String minTileSizeString = Integer.toString(minTileSize);
this.tileSize = minTileSizeString;
minimumTileSizeText.setText(minTileSizeString);
minimumTileSizeText.setTextLimit(3);
minimumTileSizeText.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
tileSize = minimumTileSizeText.getText();
}
});
createTileSizeSpinner(container);
createReportGroup(container);
}
private void createTileSizeSpinner(Composite container) {
final GridData gridData5 = new GridData();
gridData5.horizontalAlignment = GridData.FILL;
gridData5.grabExcessHorizontalSpace = true;
gridData5.horizontalIndent = 10;
gridData5.heightHint = -1;
gridData5.verticalAlignment = GridData.CENTER;
minTileSizeSpinner = new Spinner(container, SWT.BORDER);
minTileSizeSpinner.setLayoutData(gridData5);
minTileSizeSpinner.setToolTipText(getString(StringKeys.MSGKEY_DIALOG_TOOLTIP_CPD_MIN_TILESIZE));
minTileSizeSpinner.setMinimum(tileSize);
minTileSizeSpinner.setTextLimit(3);
minTileSizeSpinner.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
tileSize = Integer.parseInt( minTileSizeSpinner.getText() );
}
});
}
/**
* This method initializes reportGroup
* @param container
*
*/
private void createReportGroup(Composite container) {
final GridData gridData7 = new GridData();
gridData7.horizontalAlignment = GridData.BEGINNING;
gridData7.horizontalIndent = 30;
@ -268,7 +264,7 @@ public class CPDCheckDialog extends Dialog {
gridData4.verticalIndent = 10;
gridData4.horizontalIndent = 10;
gridData4.horizontalAlignment = GridData.FILL;
languageCombo = new Combo(container, SWT.DROP_DOWN);
languageCombo = new Combo(container, SWT.DROP_DOWN | SWT.READ_ONLY);
languageCombo.setLayoutData(gridData4);
languageCombo.setItems(languages);
languageCombo.select(0);
@ -307,6 +303,6 @@ public class CPDCheckDialog extends Dialog {
* @return requested message
*/
private String getString(String key) {
return PMDPlugin.getDefault().getStringTable().getString(key);
return SWTUtil.stringFor(key);
}
}