Reghin
21 Aug 2009, 9:47 AM
Hi again, folks.
I have this problem, and I don't know what else I can do to solve it.
I have this grid which has a CheckBoxSelectionModel. I need to prevent any row to be selected or changed from if the form is dirty.
Both the BeforeEvent and SelectionChanged events are being fired correctly. The problem is that I can not prevent the already selected row (the form's dirty record) from being deselected, I mean, the previous selection is cleared.
mainGrid.getGridRef().getSelectionModel().addListener(Events.BeforeSelect, new Listener<SelectionEvent<ModelData>>() {
@Override
public void handleEvent(SelectionEvent<ModelData> be) {
Info.display("MessageBox", "BeforeSelect");
// verifica se o form teve alguma alteracao que precise ser gravada antes de movimentar o registro
if (mainForm != null && mainForm.getFormRef().isDirty()) {
Info.display("MessageBox", "O FORM ESTÁ SUJO !!!");
be.setCancelled(true);
}
}
});
mainGrid.getGridRef().getSelectionModel().addListener(Events.SelectionChange, new Listener<SelectionChangedEvent<BeanModel>>() {
public void handleEvent(SelectionChangedEvent<BeanModel> be) {
if (be.getSelection().size() == 1) {
mainBindings.bind((BeanModel) be.getSelection().get(0));
footer.clearStatus("");
}
else if(be.getSelection().size() > 1) {
mainForm.getFormRef().reset();
}
else if(be.getSelection().size() == 0) {
}
else {
mainForm.getFormRef().reset();
}
};
});
I have this problem, and I don't know what else I can do to solve it.
I have this grid which has a CheckBoxSelectionModel. I need to prevent any row to be selected or changed from if the form is dirty.
Both the BeforeEvent and SelectionChanged events are being fired correctly. The problem is that I can not prevent the already selected row (the form's dirty record) from being deselected, I mean, the previous selection is cleared.
mainGrid.getGridRef().getSelectionModel().addListener(Events.BeforeSelect, new Listener<SelectionEvent<ModelData>>() {
@Override
public void handleEvent(SelectionEvent<ModelData> be) {
Info.display("MessageBox", "BeforeSelect");
// verifica se o form teve alguma alteracao que precise ser gravada antes de movimentar o registro
if (mainForm != null && mainForm.getFormRef().isDirty()) {
Info.display("MessageBox", "O FORM ESTÁ SUJO !!!");
be.setCancelled(true);
}
}
});
mainGrid.getGridRef().getSelectionModel().addListener(Events.SelectionChange, new Listener<SelectionChangedEvent<BeanModel>>() {
public void handleEvent(SelectionChangedEvent<BeanModel> be) {
if (be.getSelection().size() == 1) {
mainBindings.bind((BeanModel) be.getSelection().get(0));
footer.clearStatus("");
}
else if(be.getSelection().size() > 1) {
mainForm.getFormRef().reset();
}
else if(be.getSelection().size() == 0) {
}
else {
mainForm.getFormRef().reset();
}
};
});