Package edu.stanford.bmir.protege.web.client.actionbar.project

Source Code of edu.stanford.bmir.protege.web.client.actionbar.project.ProjectBarImpl

package edu.stanford.bmir.protege.web.client.actionbar.project;

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.dom.client.ClickHandler;
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.ButtonBase;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTMLPanel;
import edu.stanford.bmir.protege.web.client.Application;
import edu.stanford.bmir.protege.web.client.ui.library.popupmenu.PopupMenu;
import edu.stanford.bmir.protege.web.shared.project.ProjectId;

import static com.google.common.base.Preconditions.checkNotNull;

/**
* Author: Matthew Horridge<br>
* Stanford University<br>
* Bio-Medical Informatics Research Group<br>
* Date: 23/08/2013
*/
public class ProjectBarImpl extends Composite implements ProjectActionBar {

    private ShowShareSettingsHandler showShareSettingsHandler = new ShowShareSettingsHandler() {
        @Override
        public void handleShowShareSettings() {
        }
    };

    private ShowFreshEntitySettingsHandler showFreshEntitySettingsHandler = new ShowFreshEntitySettingsHandler() {
        @Override
        public void handleShowFreshEntitySettings() {
        }
    };

    private ShowProjectDetailsHandler showProjectDetailsHandler = new ShowProjectDetailsHandler() {
        @Override
        public void handleShowProjectDetails() {
        }
    };


    interface ProjectBarImplUiBinder extends UiBinder<HTMLPanel, ProjectBarImpl> {

    }

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

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

    @UiField
    protected ButtonBase shareProjectItem;

    @UiField
    protected ButtonBase projectSettingsItem;



    @UiHandler("shareProjectItem")
    protected void handleShareProjectItemClicked(ClickEvent clickEvent) {
        showShareSettingsHandler.handleShowShareSettings();
    }

    @UiHandler("projectSettingsItem")
    protected void handleProjectSettingsItemClicked(ClickEvent clickEvent) {
        PopupMenu popupMenu = new PopupMenu();
        popupMenu.addItem("Project details...", new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                showProjectDetailsHandler.handleShowProjectDetails();
            }
        });

        popupMenu.addItem("New entity settings...", new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                showFreshEntitySettingsHandler.handleShowFreshEntitySettings();
            }
        });
        popupMenu.showRelativeTo(projectSettingsItem);
    }

    @Override
    public void setProjectId(Optional<ProjectId> projectId) {
        setVisible(projectId.isPresent() && Application.get().isLoggedInUserOwnerOfActiveProject());
    }

    @Override
    public void setShowProjectDetailsHandler(ShowProjectDetailsHandler showProjectDetailsHandler) {
        this.showProjectDetailsHandler = checkNotNull(showProjectDetailsHandler);
    }

    @Override
    public void setShowFreshEntitySettingsHandler(ShowFreshEntitySettingsHandler showNewEntitiesHandler) {
        this.showFreshEntitySettingsHandler = checkNotNull(showNewEntitiesHandler);
    }

    @Override
    public void setShowNotificationSettingsHandler(ShowNotificationSettingsHandler showNotificationSettingsHandler) {
    }

    @Override
    public void setShowShareSettingsHandler(ShowShareSettingsHandler showShareSettingsHandler) {
        this.showShareSettingsHandler = checkNotNull(showShareSettingsHandler);
    }
}
TOP

Related Classes of edu.stanford.bmir.protege.web.client.actionbar.project.ProjectBarImpl

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.