package kornell.gui.client.presentation.profile.generic; import com.github.gwtbootstrap.client.ui.Modal; import com.github.gwtbootstrap.client.ui.TextArea; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.uibinder.client.UiHandler; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Widget; import kornell.api.client.Callback; import kornell.api.client.KornellSession; import kornell.core.to.UserInfoTO; import kornell.gui.client.KornellConstants; import kornell.gui.client.presentation.profile.ProfileView; import kornell.gui.client.util.forms.FormHelper; import kornell.gui.client.util.view.KornellNotification; import kornell.gui.client.util.view.LoadingPopup; public class GenericSendMessageView extends Composite implements ProfileView { interface MyUiBinder extends UiBinder<Widget, GenericSendMessageView> { } private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); private static KornellConstants constants = GWT.create(KornellConstants.class); private KornellSession session; private FormHelper formHelper; @UiField Modal sendMessageModal; @UiField FlowPanel sendMessageFields; @UiField Button btnOK; @UiField Button btnCancel; private UserInfoTO user; private TextArea modalMessageTextArea; private boolean initialized; public GenericSendMessageView() { initWidget(uiBinder.createAndBindUi(this)); } public void show(){ if(initialized) sendMessageModal.show(); } public void initData(KornellSession session, UserInfoTO user, boolean isCurrentUser) { this.session = session; this.user = user; formHelper = new FormHelper(); sendMessageFields.clear(); initialized = true; btnOK.setText(constants.okButton().toUpperCase()); btnCancel.setText(constants.cancelButton().toUpperCase()); modalMessageTextArea = new TextArea(); sendMessageFields.add(modalMessageTextArea); sendMessageFields.add(formHelper.getImageSeparator()); } @UiHandler("btnOK") void doOK(ClickEvent e) { if(modalMessageTextArea.getText().length() > 0){ LoadingPopup.show(); session.chatThreads().postMessageToDirectThread(modalMessageTextArea.getText(), user.getPerson().getUUID(), new Callback<Void>() { @Override public void ok(Void to) { LoadingPopup.hide(); modalMessageTextArea.setText(""); sendMessageModal.hide(); KornellNotification.show(constants.messageSentSuccess()); } }); } } @UiHandler("btnCancel") void doCancel(ClickEvent e) { sendMessageModal.hide(); } @Override public void setPresenter(Presenter presenter) { } }