Есть класс Layout, на который можно добавлять различные визуальные Object'ы (пока это растровые изображения). Эти Object'ы интерактивны. Ну, в начале было просто - на MouseEnter обводил их рамочкой, на MouseLeave убирал рамочку. Обрабатывал события в самом экземпляре Object. Дальше - хуже.
Когда перетаскиваешь объект - его можно "протащить" под другим, у которого Z-индекс выше, таким образом, срабатывает MouseLeave таскаемого объекта. Это мелочь. Дальше - хуже.
При клике на объект - прилепить ему мини-тулбарчик (повернуть, скрыть, проч.). ладно, прилепил. При клике на другой объект, логично, что тулбар должен гаситься на старом и отображаться на новом объекте.
Белые люди так и делают.
Впринципе, это все не трудно реализовать школьными if-ами и перебором всей коллекции объектов Layout'а - на каждом погасить тулбар, а потом высветить на выбраном.
Не понял, какой перебор и какие if-ы, если объект имеет события Enter и Leave? По первому он всё включает, по второму выключает - и так каждый объект.
Нужна схема решения в UML или исходный код программы.