return new P0() {public void e() {
				// UT
				final JDialog dialog = dialog("Go to line", window);
				dialog.setModal(true);
				RowAdder rowAdder = rowAdder(dialog);
				
				final JTextField tfLine = new JTextField("" + (tp.getDocument().getDefaultRootElement().getElementIndex(tp.getCaretPosition()) + 1), 30);
				tfLine.selectAll();
				rowAdder.row("Line", tfLine);
				JButton btnGo = btn("Go", new P0() {public void e() {
					// UT
					dialog.dispose();
					int index = StringUtil.indexOfHappenNum('\n', Integer.parseInt(tfLine.getText()) - 1, tp.getText());
					if (index == -1) {
					} else if (index == 0) {
						tp.setCaretPosition(index);
					} else {
						tp.setCaretPosition(index + 1);
					}
				}});
//				tp.getDocument().addUndoableEditListener(null)
				dialog.getRootPane().setDefaultButton(btnGo);
				rowAdder.whole(panel(btnGo));
				show(dialog);
			}}