!7 //set flag InputChooser_verbose. sclass URLChecker extends DynTextArea { InputChooser inputChooser = new(this); S url; bool mayQuery; Map> headers; long size; PersistableThrowable loadError; JComponent visualize() { ret northAndCenter(wrap(inputChooser), super.visualize()); } void update { temp enter(); if (!inputChooser.update()) ret; fS input = inputChooser.input(); if (!isURL(input)) ret; if (!setField(url := input)) ret; actualUpdate(); } void actualUpdate { temp enter(); setFields(mayQuery := false, headers := null, loadError := null); clearText(); printToText("URL found: " + url); setField(mayQuery := mayQueryURLByHead(url)); printToText("May query: " + yn(mayQuery)); if (!mayQuery) ret; // TODO: also get content type try { setField(headers := getURLHeadersByHEAD(url)); } catch e { printShortException(e); setField(loadError := persistableThrowable(e)); } if (headers != null) { printToText("Headers:"); for (S key, L values : headers) { for (S value : values) printToText(key + " = " + value); } } } bool mayQueryURLByHead(S url) { true; } }