use of com.biglybt.ui.swt.SimpleTextEntryWindow in project BiglyBT by BiglySoftware.
the class ViewUtils method getManualSpeedValue.
public static void getManualSpeedValue(final Shell shell, boolean for_download, final manualSpeedValueListener l) {
String kbps_str = MessageText.getString("MyTorrentsView.dialog.setNumber.inKbps", new String[] { DisplayFormatters.getRateUnit(DisplayFormatters.UNIT_KB) });
String set_num_str = MessageText.getString("MyTorrentsView.dialog.setNumber." + ((for_download) ? "download" : "upload"));
final SimpleTextEntryWindow entryWindow = new SimpleTextEntryWindow();
entryWindow.initTexts("MyTorrentsView.dialog.setSpeed.title", new String[] { set_num_str }, "MyTorrentsView.dialog.setNumber.text", new String[] { kbps_str, set_num_str });
entryWindow.prompt(new UIInputReceiverListener() {
@Override
public void UIInputReceiverClosed(UIInputReceiver receiver) {
if (!receiver.hasSubmittedInput()) {
l.manualSpeedValueResult(-1);
return;
}
String sReturn = receiver.getSubmittedInput();
if (sReturn == null) {
l.manualSpeedValueResult(-1);
return;
}
try {
int result = (int) (Double.valueOf(sReturn).doubleValue() * DisplayFormatters.getKinB());
if (DisplayFormatters.isRateUsingBits()) {
result /= 8;
}
if (result <= 0) {
l.error("non-positive number entered");
return;
}
l.manualSpeedValueResult(result);
} catch (NumberFormatException er) {
MessageBox mb = new MessageBox(shell, SWT.ICON_ERROR | SWT.OK);
mb.setText(MessageText.getString("MyTorrentsView.dialog.NumberError.title"));
mb.setMessage(MessageText.getString("MyTorrentsView.dialog.NumberError.text"));
mb.open();
l.manualSpeedValueResult(-1);
}
}
});
}
use of com.biglybt.ui.swt.SimpleTextEntryWindow in project BiglyBT by BiglySoftware.
the class BYOPanel method editSelected.
protected void editSelected() {
final TreeItem[] selection = tree.getSelection();
if (selection.length == 1) {
SimpleTextEntryWindow entryWindow = new SimpleTextEntryWindow("wizard.newtorrent.byo.editname.title", "wizard.newtorrent.byo.editname.text");
entryWindow.setPreenteredText(selection[0].getText(), false);
entryWindow.prompt(new UIInputReceiverListener() {
@Override
public void UIInputReceiverClosed(UIInputReceiver receiver) {
if (receiver.hasSubmittedInput()) {
selection[0].setText(receiver.getSubmittedInput());
}
}
});
}
}
use of com.biglybt.ui.swt.SimpleTextEntryWindow in project BiglyBT by BiglySoftware.
the class BYOPanel method show.
/*
* (non-Javadoc)
*
* @see com.biglybt.ui.swt.maketorrent.IWizardPanel#show()
*/
@Override
public void show() {
wizard.setTitle(MessageText.getString("wizard.newtorrent.byo"));
wizard.setCurrentInfo(MessageText.getString("wizard.newtorrent.byo.info"));
Composite panel = wizard.getPanel();
GridLayout layout = new GridLayout();
layout.numColumns = 1;
panel.setLayout(layout);
GridData gridData;
tree = new Tree(panel, SWT.BORDER | SWT.MULTI);
tree.setHeaderVisible(true);
TreeColumn treeColumn = new TreeColumn(tree, 0);
Messages.setLanguageText(treeColumn, "label.torrent.structure");
treeColumn.setWidth(Utils.adjustPXForDPI(180));
treeColumn = new TreeColumn(tree, 0);
Messages.setLanguageText(treeColumn, "label.original.file");
treeColumn.setWidth(Utils.adjustPXForDPI(500));
gridData = new GridData(GridData.FILL_BOTH);
tree.setLayoutData(gridData);
createDropTarget(tree);
createDragSource(tree);
tree.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
editSelected();
e.doit = false;
}
});
tree.addKeyListener(new KeyListener() {
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
if (e.keyCode == SWT.F2) {
editSelected();
} else if (e.keyCode == SWT.DEL) {
TreeItem[] selection = tree.getSelection();
for (TreeItem treeItem : selection) {
Object data = treeItem.getData();
treeItem.dispose();
}
}
}
});
Composite cButtons = new Composite(panel, 0);
Utils.setLayout(cButtons, new RowLayout());
cButtons.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
Button btnAddContainer = new Button(cButtons, SWT.PUSH);
Messages.setLanguageText(btnAddContainer, "button.add.container");
btnAddContainer.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
SimpleTextEntryWindow entryWindow = new SimpleTextEntryWindow("wizard.newtorrent.byo.addcontainer.title", "wizard.newtorrent.byo.addcontainer.text");
entryWindow.setPreenteredText("files", true);
entryWindow.prompt(new UIInputReceiverListener() {
@Override
public void UIInputReceiverClosed(UIInputReceiver entryWindow) {
if (entryWindow.hasSubmittedInput()) {
createContainer(null, entryWindow.getSubmittedInput());
}
}
});
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
}
});
Button btnAddFiles = new Button(cButtons, SWT.PUSH);
Messages.setLanguageText(btnAddFiles, "OpenTorrentWindow.addFiles");
btnAddFiles.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
FileDialog fDialog = new FileDialog(Utils.findAnyShell(), SWT.OPEN | SWT.MULTI);
fDialog.setFilterPath(TorrentOpener.getFilterPathData());
fDialog.setText(MessageText.getString("MainWindow.dialog.choose.file"));
if (fDialog.open() != null) {
String[] fileNames = fDialog.getFileNames();
File last_file = null;
for (String fileName : fileNames) {
File f = new File(fDialog.getFilterPath(), fileName);
addFilename(f);
last_file = f;
}
if (last_file != null) {
TorrentOpener.setFilterPathData(last_file.getAbsolutePath());
}
}
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
}
});
Button btnAddFolder = new Button(cButtons, SWT.PUSH);
Messages.setLanguageText(btnAddFolder, "OpenTorrentWindow.addFiles.Folder");
btnAddFolder.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
DirectoryDialog fDialog = new DirectoryDialog(Utils.findAnyShell(), SWT.NULL);
fDialog.setFilterPath(TorrentOpener.getFilterPathData());
fDialog.setMessage(MessageText.getString("MainWindow.dialog.choose.folder"));
String path = fDialog.open();
if (path != null) {
File f = new File(path);
addFilename(f);
if (f.isDirectory()) {
TorrentOpener.setFilterPathData(f.getAbsolutePath());
}
}
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
}
});
if (wizard.byo_map != null) {
List list = (List) wizard.byo_map.get("file_map");
if (list != null) {
for (Iterator iterator = list.iterator(); iterator.hasNext(); ) {
Map map = (Map) iterator.next();
String target = MapUtils.getMapString(map, "target", null);
List path = MapUtils.getMapList(map, "logical_path", null);
if (target != null && path != null) {
File targetFile = new File(target);
if (path.size() == 1) {
addFilename(targetFile, (String) path.get(0), null, true);
} else {
TreeItem[] items = tree.getItems();
TreeItem parent = null;
for (int i = 0; i < path.size() - 1; i++) {
TreeItem lastParent = parent;
String name = (String) path.get(i);
boolean found = false;
for (TreeItem item : items) {
if (item.getText().equals(name)) {
parent = item;
found = true;
break;
}
}
if (!found) {
parent = createContainer(lastParent, name);
}
items = parent.getItems();
}
String name = (String) path.get(path.size() - 1);
addFilename(targetFile, name, parent, false);
}
}
}
}
}
}
use of com.biglybt.ui.swt.SimpleTextEntryWindow in project BiglyBT by BiglySoftware.
the class MultiTrackerEditor method createWindow.
private void createWindow(Shell parent_shell) {
if (parent_shell == null) {
this.shell = ShellFactory.createMainShell(SWT.DIALOG_TRIM | SWT.RESIZE);
} else {
this.shell = ShellFactory.createShell(parent_shell, SWT.DIALOG_TRIM | SWT.RESIZE);
}
Messages.setLanguageText(this.shell, anonymous ? "wizard.multitracker.edit.title" : "wizard.multitracker.template.title");
Utils.setShellIcon(shell);
GridLayout layout = new GridLayout();
layout.numColumns = 3;
shell.setLayout(layout);
GridData gridData;
if (!anonymous) {
Label labelName = new Label(shell, SWT.NULL);
Messages.setLanguageText(labelName, "wizard.multitracker.edit.name");
textName = new Text(shell, SWT.BORDER);
textName.setText(currentName);
gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.horizontalSpan = 2;
textName.setLayoutData(gridData);
textName.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent arg0) {
currentName = textName.getText();
computeSaveEnable();
}
});
}
treeGroups = new Tree(shell, SWT.BORDER);
gridData = new GridData(GridData.FILL_BOTH);
gridData.horizontalSpan = 3;
gridData.heightHint = 150;
treeGroups.setLayoutData(gridData);
treeGroups.addMouseListener(new MouseAdapter() {
@Override
public void mouseDoubleClick(MouseEvent arg0) {
if (treeGroups.getSelectionCount() == 1) {
TreeItem treeItem = treeGroups.getSelection()[0];
String type = (String) treeItem.getData("type");
if (type.equals("tracker")) {
editTreeItem(treeItem);
}
}
}
});
if (showTemplates) {
// template operations
Composite cTemplate = new Composite(shell, SWT.NONE);
gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.horizontalSpan = 3;
cTemplate.setLayoutData(gridData);
GridLayout layoutTemplate = new GridLayout();
layoutTemplate.numColumns = 5;
cTemplate.setLayout(layoutTemplate);
final Label labelTitle = new Label(cTemplate, SWT.NULL);
Messages.setLanguageText(labelTitle, "Search.menu.engines");
final Combo configList = new Combo(cTemplate, SWT.READ_ONLY);
gridData = new GridData(GridData.FILL_HORIZONTAL);
configList.setLayoutData(gridData);
final List<Button> buttons = new ArrayList<>();
String sel_str = COConfigurationManager.getStringParameter("multitrackereditor.last.selection", null);
final String[] currentTemplate = { sel_str == null || sel_str.length() == 0 ? null : sel_str };
final Runnable updateSelection = new Runnable() {
@Override
public void run() {
int selection = configList.getSelectionIndex();
boolean enabled = selection != -1;
String sel_str = currentTemplate[0] = enabled ? configList.getItem(selection) : null;
COConfigurationManager.setParameter("multitrackereditor.last.selection", sel_str == null ? "" : sel_str);
Iterator<Button> it = buttons.iterator();
// skip the new button
it.next();
while (it.hasNext()) {
it.next().setEnabled(enabled);
}
}
};
final Runnable updateTemplates = new Runnable() {
@Override
public void run() {
Map<String, List<List<String>>> multiTrackers = TrackersUtil.getInstance().getMultiTrackers();
configList.removeAll();
List<String> names = new ArrayList<String>(multiTrackers.keySet());
Collections.sort(names, new FormattersImpl().getAlphanumericComparator(true));
for (String str : names) {
configList.add(str);
}
String toBeSelected = currentTemplate[0];
if (toBeSelected != null) {
int selection = configList.indexOf(toBeSelected);
if (selection != -1) {
configList.select(selection);
} else if (configList.getItemCount() > 0) {
currentTemplate[0] = configList.getItem(0);
configList.select(0);
}
}
updateSelection.run();
}
};
final TrackerEditorListener templateTEL = new TrackerEditorListener() {
@Override
public void trackersChanged(String oldName, String newName, List<List<String>> trackers) {
TrackersUtil util = TrackersUtil.getInstance();
if (oldName != null && !oldName.equals(newName)) {
util.removeMultiTracker(oldName);
}
util.addMultiTracker(newName, trackers);
currentTemplate[0] = newName;
updateTemplates.run();
}
};
final Button btnNew = new Button(cTemplate, SWT.PUSH);
buttons.add(btnNew);
Messages.setLanguageText(btnNew, "wizard.multitracker.new");
btnNew.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event e) {
List group = new ArrayList();
List tracker = new ArrayList();
group.add(tracker);
new MultiTrackerEditor(btnNew.getShell(), null, group, templateTEL);
}
});
configList.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event e) {
updateSelection.run();
}
});
final Button btnEdit = new Button(cTemplate, SWT.PUSH);
buttons.add(btnEdit);
Messages.setLanguageText(btnEdit, "wizard.multitracker.edit");
btnEdit.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event e) {
Map multiTrackers = TrackersUtil.getInstance().getMultiTrackers();
String selected = currentTemplate[0];
new MultiTrackerEditor(btnEdit.getShell(), selected, (List) multiTrackers.get(selected), templateTEL);
}
});
final Button btnDelete = new Button(cTemplate, SWT.PUSH);
buttons.add(btnDelete);
Messages.setLanguageText(btnDelete, "wizard.multitracker.delete");
btnDelete.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event e) {
final String selected = currentTemplate[0];
MessageBoxShell mb = new MessageBoxShell(MessageText.getString("message.confirm.delete.title"), MessageText.getString("message.confirm.delete.text", new String[] { selected }), new String[] { MessageText.getString("Button.yes"), MessageText.getString("Button.no") }, 1);
mb.open(new UserPrompterResultListener() {
@Override
public void prompterClosed(int result) {
if (result == 0) {
TrackersUtil.getInstance().removeMultiTracker(selected);
updateTemplates.run();
}
}
});
}
});
Label labelApply = new Label(cTemplate, SWT.NULL);
gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.horizontalSpan = 2;
labelApply.setLayoutData(gridData);
Messages.setLanguageText(labelApply, "apply.selected.template");
final Button btnReplace = new Button(cTemplate, SWT.PUSH);
buttons.add(btnReplace);
Messages.setLanguageText(btnReplace, "label.replace");
btnReplace.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event e) {
Map<String, List<List<String>>> multiTrackers = TrackersUtil.getInstance().getMultiTrackers();
String selected = currentTemplate[0];
trackers = TorrentUtils.getClone(multiTrackers.get(selected));
refresh();
computeSaveEnable();
}
});
final Button btnMerge = new Button(cTemplate, SWT.PUSH);
buttons.add(btnMerge);
Messages.setLanguageText(btnMerge, "label.merge");
btnMerge.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event e) {
Map<String, List<List<String>>> multiTrackers = TrackersUtil.getInstance().getMultiTrackers();
String selected = currentTemplate[0];
trackers = TorrentUtils.mergeAnnounceURLs(trackers, multiTrackers.get(selected));
refresh();
computeSaveEnable();
}
});
final Button btnRemove = new Button(cTemplate, SWT.PUSH);
buttons.add(btnRemove);
Messages.setLanguageText(btnRemove, "Button.remove");
btnRemove.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event e) {
Map<String, List<List<String>>> multiTrackers = TrackersUtil.getInstance().getMultiTrackers();
String selected = currentTemplate[0];
trackers = TorrentUtils.removeAnnounceURLs(trackers, multiTrackers.get(selected), false);
refresh();
computeSaveEnable();
}
});
updateTemplates.run();
Utils.makeButtonsEqualWidth(buttons);
}
Label labelSeparator = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.horizontalSpan = 3;
labelSeparator.setLayoutData(gridData);
// button row
Composite cButtons = new Composite(shell, SWT.NONE);
gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.horizontalSpan = 3;
cButtons.setLayoutData(gridData);
GridLayout layoutButtons = new GridLayout();
layoutButtons.numColumns = 5;
cButtons.setLayout(layoutButtons);
List<Button> buttons = new ArrayList<>();
final Button btnedittext = new Button(cButtons, SWT.PUSH);
buttons.add(btnedittext);
gridData = new GridData();
gridData.horizontalAlignment = GridData.END;
btnedittext.setLayoutData(gridData);
Messages.setLanguageText(btnedittext, "wizard.multitracker.edit.text");
btnedittext.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event e) {
btnSave.setEnabled(false);
btnedittext.setEnabled(false);
trackers = new ArrayList();
TreeItem[] groupItems = treeGroups.getItems();
for (int i = 0; i < groupItems.length; i++) {
TreeItem group = groupItems[i];
TreeItem[] trackerItems = group.getItems();
List groupList = new ArrayList(group.getItemCount());
for (int j = 0; j < trackerItems.length; j++) {
groupList.add(trackerItems[j].getText());
}
trackers.add(groupList);
}
final String old_text = TorrentUtils.announceGroupsToText(trackers);
final TextViewerWindow viewer = new TextViewerWindow(shell, "wizard.multitracker.edit.text.title", "wizard.multitracker.edit.text.msg", old_text, false, false);
viewer.setEditable(true);
viewer.addListener(new TextViewerWindow.TextViewerWindowListener() {
@Override
public void closed() {
try {
if (viewer.getOKPressed()) {
String new_text = viewer.getText();
if (!old_text.equals(new_text)) {
String[] lines = new_text.split("\n");
StringBuilder valid_text = new StringBuilder(new_text.length() + 1);
for (String line : lines) {
line = line.trim();
if (line.length() > 0) {
if (!validURL(line)) {
continue;
}
}
valid_text.append(line);
valid_text.append("\n");
}
trackers = TorrentUtils.announceTextToGroups(valid_text.toString());
refresh();
}
}
} finally {
computeSaveEnable();
btnedittext.setEnabled(true);
}
}
});
}
});
final Button btnAddTrackerList = new Button(cButtons, SWT.PUSH);
buttons.add(btnAddTrackerList);
gridData = new GridData();
gridData.horizontalAlignment = GridData.END;
btnAddTrackerList.setLayoutData(gridData);
Messages.setLanguageText(btnAddTrackerList, "wizard.multitracker.add.trackerlist");
btnAddTrackerList.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event e) {
SimpleTextEntryWindow entryWindow = new SimpleTextEntryWindow("enter.url", "enter.trackerlist.url");
entryWindow.prompt(new UIInputReceiverListener() {
@Override
public void UIInputReceiverClosed(UIInputReceiver receiver) {
if (!receiver.hasSubmittedInput()) {
return;
}
String url = receiver.getSubmittedInput().trim();
if (!url.isEmpty()) {
TreeItem group = newGroup();
TreeItem itemTracker = newTracker(group, "trackerlist:" + url.trim());
}
}
});
}
});
Label label = new Label(cButtons, SWT.NULL);
gridData = new GridData(GridData.FILL_HORIZONTAL);
label.setLayoutData(gridData);
btnSave = new Button(cButtons, SWT.PUSH);
buttons.add(btnSave);
gridData = new GridData();
gridData.horizontalAlignment = GridData.END;
btnSave.setLayoutData(gridData);
Messages.setLanguageText(btnSave, "wizard.multitracker.edit.save");
btnSave.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event e) {
update();
shell.dispose();
}
});
btnCancel = new Button(cButtons, SWT.PUSH);
buttons.add(btnCancel);
gridData = new GridData();
gridData.horizontalAlignment = GridData.END;
btnCancel.setLayoutData(gridData);
Messages.setLanguageText(btnCancel, "Button.cancel");
btnCancel.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event e) {
shell.dispose();
}
});
Utils.makeButtonsEqualWidth(buttons);
shell.setDefaultButton(btnSave);
shell.addListener(SWT.Traverse, new Listener() {
@Override
public void handleEvent(Event e) {
if (e.character == SWT.ESC) {
shell.dispose();
}
}
});
computeSaveEnable();
refresh();
constructMenu();
editor = new TreeEditor(treeGroups);
treeGroups.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
if (itemEdited != null && !itemEdited.isDisposed() && !editor.getEditor().isDisposed()) {
itemEdited.setText(((Text) editor.getEditor()).getText());
}
removeEditor();
}
});
Point size = shell.computeSize(500, SWT.DEFAULT);
shell.setSize(size);
Utils.centreWindow(shell);
shell.open();
}
use of com.biglybt.ui.swt.SimpleTextEntryWindow in project BiglyBT by BiglySoftware.
the class TagUIUtils method createTF_RateLimitMenuItems.
private static void createTF_RateLimitMenuItems(Menu menu, Tag tag, TagType tag_type, int userMode) {
final TagFeatureRateLimit tf_rate_limit = (TagFeatureRateLimit) tag;
boolean has_up = tf_rate_limit.supportsTagUploadLimit();
boolean has_down = tf_rate_limit.supportsTagDownloadLimit();
if (has_up || has_down) {
long kInB = DisplayFormatters.getKinB();
long maxDownload = COConfigurationManager.getIntParameter("Max Download Speed KBs", 0) * kInB;
long maxUpload = COConfigurationManager.getIntParameter("Max Upload Speed KBs", 0) * kInB;
int down_speed = tf_rate_limit.getTagDownloadLimit();
int up_speed = tf_rate_limit.getTagUploadLimit();
Map<String, Object> menu_properties = new HashMap<>();
if (tag_type.getTagType() == TagType.TT_PEER_IPSET || tag_type.getTagType() == TagType.TT_DOWNLOAD_MANUAL) {
if (has_up) {
menu_properties.put(ViewUtils.SM_PROP_PERMIT_UPLOAD_DISABLE, true);
}
if (has_down) {
menu_properties.put(ViewUtils.SM_PROP_PERMIT_DOWNLOAD_DISABLE, true);
}
}
ViewUtils.addSpeedMenu(menu.getShell(), menu, has_up, has_down, true, true, down_speed == -1, down_speed == 0, down_speed, down_speed, maxDownload, up_speed == -1, up_speed == 0, up_speed, up_speed, maxUpload, 1, menu_properties, new SpeedAdapter() {
@Override
public void setDownSpeed(int val) {
tf_rate_limit.setTagDownloadLimit(val);
}
@Override
public void setUpSpeed(int val) {
tf_rate_limit.setTagUploadLimit(val);
}
});
}
if (userMode > 0) {
if (tf_rate_limit.getTagUploadPriority() >= 0) {
final MenuItem upPriority = new MenuItem(menu, SWT.CHECK);
upPriority.setSelection(tf_rate_limit.getTagUploadPriority() > 0);
Messages.setLanguageText(upPriority, "cat.upload.priority");
upPriority.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
boolean set = upPriority.getSelection();
tf_rate_limit.setTagUploadPriority(set ? 1 : 0);
}
});
}
/* Usually set once: Can be set in Tags Overview*/
if (tf_rate_limit.getTagMinShareRatio() >= 0) {
MenuItem itemSR = new MenuItem(menu, SWT.PUSH);
final String existing = String.valueOf(tf_rate_limit.getTagMinShareRatio() / 1000.0f);
Messages.setLanguageText(itemSR, "menu.min.share.ratio", new String[] { existing });
itemSR.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
SimpleTextEntryWindow entryWindow = new SimpleTextEntryWindow("min.sr.window.title", "min.sr.window.message");
entryWindow.setPreenteredText(existing, false);
entryWindow.selectPreenteredText(true);
entryWindow.prompt(new UIInputReceiverListener() {
@Override
public void UIInputReceiverClosed(UIInputReceiver receiver) {
if (!receiver.hasSubmittedInput()) {
return;
}
try {
String text = receiver.getSubmittedInput().trim();
int sr = 0;
if (text.length() > 0) {
try {
float f = Float.parseFloat(text);
sr = (int) (f * 1000);
if (sr < 0) {
sr = 0;
} else if (sr == 0 && f > 0) {
sr = 1;
}
} catch (Throwable e) {
Debug.out(e);
}
tf_rate_limit.setTagMinShareRatio(sr);
}
} catch (Throwable e) {
Debug.out(e);
}
}
});
}
});
}
if (tf_rate_limit.getTagMaxShareRatio() >= 0) {
MenuItem itemSR = new MenuItem(menu, SWT.PUSH);
final String existing = String.valueOf(tf_rate_limit.getTagMaxShareRatio() / 1000.0f);
Messages.setLanguageText(itemSR, "menu.max.share.ratio", new String[] { existing });
itemSR.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
SimpleTextEntryWindow entryWindow = new SimpleTextEntryWindow("max.sr.window.title", "max.sr.window.message");
entryWindow.setPreenteredText(existing, false);
entryWindow.selectPreenteredText(true);
entryWindow.prompt(new UIInputReceiverListener() {
@Override
public void UIInputReceiverClosed(UIInputReceiver receiver) {
if (!receiver.hasSubmittedInput()) {
return;
}
try {
String text = receiver.getSubmittedInput().trim();
int sr = 0;
if (text.length() > 0) {
try {
float f = Float.parseFloat(text);
sr = (int) (f * 1000);
if (sr < 0) {
sr = 0;
} else if (sr == 0 && f > 0) {
sr = 1;
}
} catch (Throwable e) {
Debug.out(e);
}
tf_rate_limit.setTagMaxShareRatio(sr);
}
} catch (Throwable e) {
Debug.out(e);
}
}
});
}
});
}
/**/
}
}
Aggregations