!7 sclass SCP extends DynModule { S link, dir; L files; bool inForm = true; transient JTextField tfLink; transient JList list; static JComponent visualize() { if (tfLink == null) tfLink = jtextfield("root@butter.botcompany.de"); if (tfDir == null) tfDir = jtextfield("/root"); if (inForm) ret makeForm( "User@Host", tfLink, "Remote directory", tfDir, disableButtonWhileCalcing(func -> bool { setFields(link := getTextTrim(tfLink), dir := getTextTrim(tfDir)); int i = indexOf('@'); if (i < 0) false; setField(files := scpLS(takeFirst(link, i), substring(link, i+1)), "dir"); setField(inForm := false); revisualize(); true; }); }); ret list = jlist(files); } }