Обновление Asynch GUI в Smalltalk - PullRequest
3 голосов
/ 28 марта 2009

Я задавался вопросом, может ли кто-нибудь помочь мне с техникой для решения следующей проблемы в Smalltalk. В частности, Cincoms Visualworks.

Я хотел бы написать простой графический интерфейс, который имеет три поля и обрабатывает их следующим образом:

В первое поле вводится число (скажем, 5).

Второе поле просто дважды отображает первое поле (так что в данном примере это 10)

Теперь интересный бит ... в третьем поле отображается значение совершенно другого класса (назовем его классом X). Однако значение должно отображаться в графическом интерфейсе всякий раз, когда это значение в классе X изменяется - оно не должно ждать нажатия клавиши от кнопки обновления. Значение в классе X может быть получено из (скажем) рабочего пространства.

Хотя я мог бы сделать это с помощью аспектных адаптеров, но я не могу получить «третье значение поля» для асинхронного обновления.

Любые приемы, советы или подсказки будут приветствоваться самым теплым образом (особенно фрагментам кода !!).

Спасибо Кевин

1 Ответ

3 голосов
/ 29 марта 2009

Я сам отсортировал это. Попробовав механизм зависимости (работает нормально - но просто не нужно), просматривая объявления (спасибо Джеймсу в Cincom - личное общение), я обнаружил, что все, что мне нужно было сделать, это просто создать метод и отправить ему сообщение с параметром ( мое значение), этот метод затем просто обновил держатель значения (то есть аспект поля GUI) с сообщением "value:". Чем больше я заглядываю в Smalltalk, тем больше он мне нравится!

...