Image imgOpenFolder = ImageRepository.getImage("openFolderButton");
GridData gridData;
GridLayout layout;
Composite gStats = new Composite(parent, SWT.NULL);
gridData = new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_FILL);
gStats.setLayoutData(gridData);
layout = new GridLayout();
layout.numColumns = 3;
gStats.setLayout(layout);
// row
gridData = new GridData();
gridData.horizontalSpan = 3;
BooleanParameter enableStats =
new BooleanParameter(gStats, "Stats Enable",
"ConfigView.section.stats.enable");
enableStats.setLayoutData(gridData);
Control[] controls = new Control[12];
// row
Label lStatsPath = new Label(gStats, SWT.NULL);
Messages.setLanguageText(lStatsPath, "ConfigView.section.stats.defaultsavepath"); //$NON-NLS-1$
gridData = new GridData();
gridData.widthHint = 150;
final StringParameter pathParameter = new StringParameter(gStats, "Stats Dir", ""); //$NON-NLS-1$ //$NON-NLS-2$
pathParameter.setLayoutData(gridData);
controls[0] = lStatsPath;
controls[1] = pathParameter.getControl();
Button browse = new Button(gStats, SWT.PUSH);
browse.setImage(imgOpenFolder);
imgOpenFolder.setBackground(browse.getBackground());
browse.setToolTipText(MessageText.getString("ConfigView.button.browse"));
controls[2] = browse;
browse.addListener(SWT.Selection, new Listener() {
/* (non-Javadoc)
* @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
*/
public void handleEvent(Event event) {
DirectoryDialog dialog = new DirectoryDialog(parent.getShell(), SWT.APPLICATION_MODAL);
dialog.setFilterPath(pathParameter.getValue());
dialog.setText(MessageText.getString("ConfigView.section.stats.choosedefaultsavepath")); //$NON-NLS-1$
String path = dialog.open();
if (path != null) {
pathParameter.setValue(path);
}
}
});
// row
Label lSaveFile = new Label(gStats, SWT.NULL);
Messages.setLanguageText(lSaveFile, "ConfigView.section.stats.savefile"); //$NON-NLS-1$
controls[3] = lSaveFile;
gridData = new GridData();
gridData.widthHint = 150;
final StringParameter fileParameter = new StringParameter(gStats, "Stats File", StatsWriterPeriodic.DEFAULT_STATS_FILE_NAME );
fileParameter.setLayoutData(gridData);
controls[4] = fileParameter.getControl();
new Label(gStats, SWT.NULL);
// row
Label lxslFile = new Label(gStats, SWT.NULL);
Messages.setLanguageText(lxslFile, "ConfigView.section.stats.xslfile"); //$NON-NLS-1$
controls[5] = lxslFile;
gridData = new GridData();
gridData.widthHint = 150;
final StringParameter xslParameter = new StringParameter(gStats, "Stats XSL File", "" );
xslParameter.setLayoutData(gridData);
controls[6] = xslParameter.getControl();
Label lxslDetails = new Label(gStats, SWT.NULL);
Messages.setLanguageText(lxslDetails, "ConfigView.section.stats.xslfiledetails"); //$NON-NLS-1$
final String linkFAQ = "http://azureus.sourceforge.net/faq.php#20";
lxslDetails.setCursor(Cursors.handCursor);
lxslDetails.setForeground(Colors.blue);
lxslDetails.addMouseListener(new MouseAdapter() {
public void mouseDoubleClick(MouseEvent arg0) {
Utils.launch(linkFAQ);
}
public void mouseDown(MouseEvent arg0) {
Utils.launch(linkFAQ);
}
});
controls[7] = lxslDetails;
// row
Label lSaveFreq = new Label(gStats, SWT.NULL);
Messages.setLanguageText(lSaveFreq, "ConfigView.section.stats.savefreq");
controls[8] = lSaveFreq;
final String spLabels[] = new String[statsPeriods.length];
final int spValues[] = new int[statsPeriods.length];
for (int i = 0; i < statsPeriods.length; i++) {
int num = statsPeriods[i];
if ( num%3600 == 0 )
spLabels[i] = " " + (statsPeriods[i]/3600) + " " +
MessageText.getString("ConfigView.section.stats.hours");
else if ( num%60 == 0 )
spLabels[i] = " " + (statsPeriods[i]/60) + " " +
MessageText.getString("ConfigView.section.stats.minutes");
else
spLabels[i] = " " + statsPeriods[i] + " " +
MessageText.getString("ConfigView.section.stats.seconds");
spValues[i] = statsPeriods[i];
}
controls[9] = lSaveFreq;
controls[10] = new IntListParameter(gStats, "Stats Period", defaultStatsPeriod, spLabels, spValues).getControl();
new Label(gStats, SWT.NULL);
// ROW
gridData = new GridData();
gridData.horizontalSpan = 3;
BooleanParameter exportPeers =
new BooleanParameter(gStats, "Stats Export Peer Details",
"ConfigView.section.stats.exportpeers");
enableStats.setLayoutData(gridData);
controls[11] = exportPeers.getControl();
// control stuff
enableStats.setAdditionalActionPerformer(new ChangeSelectionActionPerformer(controls));
gridData = new GridData();
gridData.horizontalSpan = 3;
BooleanParameter graph_dividers = new BooleanParameter(gStats, "Stats Graph Dividers", "ConfigView.section.stats.graph_update_dividers");
graph_dividers.setLayoutData(gridData);
return gStats;