Модель обновления Griffon и вид из контроллера

Здравствуйте, я новичок в Griffon Framework. Я хочу добавить функцию входа в свое приложение. Следуйте моей модели, представлению и контроллеру:

SignInModel.groovy

@ArtifactProviderFor(GriffonModel)
@griffon.transform.Validateable
class SignInModel {
    @Bindable String userName
    @Bindable String password
static CONSTRAINTS = {
    userName(blank: false,nullable: false)
    password(blank: false, nullable: false)
}

}

SignInView.groovy

@ArtifactProviderFor(GriffonView)

класс SignInView {

FactoryBuilderSupport builder
SignInModel model
SignInController controller
void initUI() {
builder.with {
        application{
frame(title: 'Login', size: [330, 230],
                    show: true,resizable:false,locationRelativeTo: null,
                    defaultCloseOperation: EXIT_ON_CLOSE) {
                panel(constraints: BorderLayout.CENTER,
                        border: compoundBorder([emptyBorder(10),titledBorder('Welcome To Tracker')])) {
tableLayout() {
                        tr {
                            td {
                                label(text: "Username")
                            }
                            td {
                                textField(id: "usernameTxt", columns: 15, text: bind(target: model, 'userName', mutual: true))
                            }
                        }
                        tr{
                            td{
                                label(text:"Password")
                            }
                            td{
                                passwordField(id:"passwordTxt",columns:15,text:bind(target:model,'password',mutual:true))

                            }
                        }
                    }
                }
panel(constraints: BorderLayout.SOUTH) {
                    button text: 'Login', actionPerformed: {
                        model?.getErrors()?.clearAllErrors()
                        controller.signIn()
                    }
                }
}
            }
        }
}
}

}

SignInController.groovy

@ArtifactProviderFor(GriffonController)

класс SignInController {

SignInModel model
SignInView view
void signIn(){
    try {
if (model?.validate()) {
            println("No Error Found..")
        } else {
    println("Error Found..")
        }
}catch (Exception ex){
        println("Exception Generated:>>>>>>>>>>>>>>"+ex?.getMessage())
    }
}

}

Я хочу обновить свой вид входа в систему. Если имя пользователя и пароль пусты с сообщением об ошибке. Я могу получить сообщение об ошибке в моей модели, но мое представление не обновляется, поэтому, пожалуйста, помогите мне.

@Примечание: я добавил плагин проверки грифона


person Piyush Chaudhari    schedule 11.07.2015    source источник


Ответы (1)


Вы должны обработать свойство errors объекта проверки (экземпляр модели). Это свойство содержит список сообщений, которые можно использовать для отображения информации пользователю, однако вы должны выбрать, какие сообщения, поскольку их может быть много. Ваш текущий код находится в одном шаге от этого, поскольку он уже инициировал проверку; теперь вам просто нужно потреблять сообщения и представлять их в пользовательском интерфейсе.

person Andres Almiray    schedule 12.07.2015