!7 p-noconsole { final JComboBox cbBot = currentBotsComboBox(); final JTextField tfMsg = jtextfield(); final JTextField tfResult = juneditabletextfield(); final JLabel lblTiming = jlabel(); final JLabel lblBot = jlabel(); final JLabel lblMessageSent = jlabel(); setFrameWidth(800, showFormTitled("Send message to bot", jrightalignedlabel("Bot"), cbBot, jrightalignedlabel("Message"), tfMsg, "", lblMessageSent, "", lblBot, jrightalignedlabel("Result"), tfResult, "", lblTiming, func { S bot = getText(cbBot); print("Bot: " + bot); fS address = botSelector_getAddress(cbBot); print("Address: " + bot); if (empty(address)) false; fS msg = getText(tfMsg); setText(lblMessageSent, "Sent message: " + msg); setText(lblBot, "To bot: " + bot); setText(tfResult, "Sending..."); thread "Send" { long time = sysNow(); try { S answer = send(address, msg); S a = shorten(answer, 10000); setText(tfResult, eq(answer, a) ? answer : "(shortened) " + a); } catch e { setText(tfResult, "(Error) " + getInnerMessage(e)); } setText(lblTiming, (sysNow()-time) + " ms"); } false; })); //swing { addActionListener(cbBot, r { print("sel=" + cbBot.getSelectedItem()) }); } }