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

Source Code of edu.stanford.bmir.protege.web.client.ui.obo.OBOTermIdEditorPortlet

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

import com.google.common.base.Optional;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.gwtext.client.widgets.MessageBox;
import edu.stanford.bmir.protege.web.client.project.Project;
import edu.stanford.bmir.protege.web.client.rpc.OBOTextEditorServiceAsync;
import edu.stanford.bmir.protege.web.client.rpc.data.EntityData;
import edu.stanford.bmir.protege.web.shared.obo.OBONamespace;
import edu.stanford.bmir.protege.web.shared.obo.OBOTermId;
import org.semanticweb.owlapi.model.OWLEntity;

import java.util.Collection;
import java.util.Collections;
import java.util.Set;

/**
* Author: Matthew Horridge<br>
* Stanford University<br>
* Bio-Medical Informatics Research Group<br>
* Date: 20/05/2012
*/
public class OBOTermIdEditorPortlet extends AbstractOBOTermPortlet {

    private OBOTermIdEditor editor;

    public OBOTermIdEditorPortlet(Project project) {
        super(project);
        setAutoScroll(false);
        setHeight("auto");
    }

    @Override
    public void initialize() {
        editor = new OBOTermIdEditorImpl();
        add(editor.asWidget());
        getService().getNamespaces(getProjectId(), new AsyncCallback<Set<OBONamespace>>() {
            public void onFailure(Throwable caught) {
                MessageBox.alert(caught.getMessage());
            }

            public void onSuccess(Set<OBONamespace> result) {
                editor.setAvailableNamespaces(result);
            }
        });
    }

    @Override
    protected void clearDisplay() {
        editor.clearValue();
    }

    @Override
    protected void displayEntity(OWLEntity entity) {
        OBOTextEditorServiceAsync service = getService();
        service.getTermId(getProjectId(), entity, new AsyncCallback<OBOTermId>() {
            public void onFailure(Throwable caught) {
                MessageBox.alert(caught.getMessage());
            }

            public void onSuccess(OBOTermId result) {
                editor.setValue(result);
            }
        });

    }

    @Override
    protected boolean isDirty() {
        return editor.isDirty();
    }

    @Override
    protected void commitChangesForEntity(OWLEntity entity) {
        Optional<OBOTermId> editedTermId = editor.getValue();
        if (editedTermId.isPresent()) {
            getService().setTermId(getProjectId(), entity, editedTermId.get(), new OBOTermEditorApplyChangesAsyncCallback("Your changes to the term Id have not been applied."));
        }

    }

    protected void updateTitle() {
        StringBuilder sb = new StringBuilder();
        sb.append("Term ID Information");
        EntityData entityData = getEntity();
        if (entityData != null) {
            sb.append(" for ");
            sb.append(entityData.getBrowserText());
        }
        setTitle(sb.toString());
    }
}
TOP

Related Classes of edu.stanford.bmir.protege.web.client.ui.obo.OBOTermIdEditorPortlet

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.