paramMaxUploadSpeed.addChangeListener(new ParameterChangeAdapter() {
ParameterChangeAdapter me = this;
public void parameterChanged(Parameter p, boolean internal) {
CoreWaiterSWT.waitForCoreRunning(new AzureusCoreRunningListener() {
public void azureusCoreRunning(AzureusCore core) {
if (paramMaxUploadSpeed.isDisposed()) {
paramMaxUploadSpeed.removeChangeListener(me);
return;
}
// we don't want to police these limits when auto-speed is running as
// they screw things up bigtime
if (TransferSpeedValidator.isAutoSpeedActive(core.getGlobalManager())) {
return;
}
int up_val = paramMaxUploadSpeed.getValue();
int down_val = paramMaxDownSpeed.getValue();
if (up_val != 0
&& up_val < COConfigurationManager.CONFIG_DEFAULT_MIN_MAX_UPLOAD_SPEED) {
if ((down_val == 0) || down_val > (up_val * 2)) {
paramMaxDownSpeed.setValue(up_val * 2);
}
} else {
if (down_val != manual_max_download_speed[0]) {
paramMaxDownSpeed.setValue(manual_max_download_speed[0]);
}
}
}
});
};
});
paramMaxDownSpeed.addChangeListener(new ParameterChangeAdapter() {
ParameterChangeAdapter me = this;
public void parameterChanged(Parameter p, boolean internal) {
CoreWaiterSWT.waitForCoreRunning(new AzureusCoreRunningListener() {
public void azureusCoreRunning(AzureusCore core) {
if (paramMaxDownSpeed.isDisposed()) {
paramMaxDownSpeed.removeChangeListener(me);
return;