Package edu.stanford.bmir.protege.web.client.ui.notes

Source Code of edu.stanford.bmir.protege.web.client.ui.notes.ReplyEditorPanel$ReplyEditorPanelUiBinder

package edu.stanford.bmir.protege.web.client.ui.notes;

import com.google.common.base.Optional;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.event.shared.HandlerRegistration;
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.HTMLPanel;
import com.google.gwt.user.client.ui.Widget;
import edu.stanford.bmir.protege.web.client.ui.library.common.EditingCancelledEvent;
import edu.stanford.bmir.protege.web.client.ui.library.common.EditingCancelledHandler;
import edu.stanford.bmir.protege.web.client.ui.library.common.EditingFinishedEvent;
import edu.stanford.bmir.protege.web.client.ui.library.common.EditingFinishedHandler;
import edu.stanford.bmir.protege.web.client.ui.library.text.ExpandingTextBox;
import edu.stanford.bmir.protege.web.shared.DirtyChangedEvent;
import edu.stanford.bmir.protege.web.shared.DirtyChangedHandler;
import edu.stanford.bmir.protege.web.shared.notes.NoteContent;

/**
* Author: Matthew Horridge<br>
* Stanford University<br>
* Bio-Medical Informatics Research Group<br>
* Date: 16/03/2013
*/
public class ReplyEditorPanel extends Composite implements ReplyDisplay {

    interface ReplyEditorPanelUiBinder extends UiBinder<HTMLPanel, ReplyEditorPanel> {

    }

    private static ReplyEditorPanelUiBinder ourUiBinder = GWT.create(ReplyEditorPanelUiBinder.class);

    @UiField
    protected ExpandingTextBox bodyField;

    @UiField
    protected Button saveButton;

    @UiField
    protected Button cancelButton;


    private boolean dirty;


    public ReplyEditorPanel() {
        HTMLPanel rootElement = ourUiBinder.createAndBindUi(this);
        initWidget(rootElement);
    }


    @UiHandler("saveButton")
    protected void handleSave(ClickEvent clickEvent) {
        fireEvent(new EditingFinishedEvent<String>(getBody()));
    }

    @UiHandler("cancelButton")
    protected void handleCancel(ClickEvent clickEvent) {
        fireEvent(new EditingCancelledEvent());
    }

    @UiHandler("bodyField")
    protected void handleBodyChanged(ValueChangeEvent<String> event) {
        dirty = true;
    }


    @Override
    public String getBody() {
        return bodyField.getText().trim();
    }

    @Override
    public void setValue(NoteContent object) {
        bodyField.setText(object.getBody().or(""));
        dirty = false;
    }

    @Override
    public void clearValue() {
        bodyField.setText("");
        dirty = false;
    }

    @Override
    public Optional<NoteContent> getValue() {
        return Optional.of(NoteContent.builder().setBody(getBody()).build());
    }

    @Override
    public boolean isDirty() {
        return dirty;
    }

    @Override
    public boolean isWellFormed() {
        return true;
    }

    @Override
    public Widget getWidget() {
        return super.getWidget();
    }

    @Override
    public HandlerRegistration addEditingCancelledHandler(EditingCancelledHandler handler) {
        return this.addHandler(handler, EditingCancelledEvent.TYPE);
    }

    @Override
    public HandlerRegistration addEditingFinishedHandler(EditingFinishedHandler<NoteContent> handler) {
        return this.addHandler(handler, EditingFinishedEvent.TYPE);
    }

    @Override
    public HandlerRegistration addDirtyChangedHandler(DirtyChangedHandler handler) {
        return addHandler(handler, DirtyChangedEvent.TYPE);
    }


    @Override
    public HandlerRegistration addValueChangeHandler(ValueChangeHandler<Optional<NoteContent>> handler) {
        return addHandler(handler, ValueChangeEvent.getType());
    }
}
TOP

Related Classes of edu.stanford.bmir.protege.web.client.ui.notes.ReplyEditorPanel$ReplyEditorPanelUiBinder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.