swing mvvm framework implement