Виртуальный GUI на Scala
Рассмотрим создание приложения с графическим интерфейсом, которое может работать на рабочем столе, в браузере и под Android без изменения кода Live Demo c с моего сайта. Естественно, нам понадобятся библиотеки-фасады, которые инкапсулируют разницу между библиотеками контролов этих систем (JavaFX, Android, DOM) Для создания таких фасадов прекрасно подходят implicit классы. Например: implicit class TextFieldExt(txt: Text) { def text=txt.getText def text_=(a: Any) = txt.setText(a.toString) } Так мы сможем создать GUI не только на методах, но и на свойствах: btHello.text=”Hello” Но не в DOM, не в Android нет готового контрола Table. Доработка существующих уже там виджетов на implicit классах невозможна,необходимо сохранять состояние. Поэтому Table – это обычный класс. Кроме этого в Android для табличных данных необходим ещё класс адаптера. Среди стандартных адаптеров нет такого,что умеет работать с Array, ArrayList ,ArrayBuffer в которых сохраняются к...