Package edu.stanford.bmir.protege.web.client.place

Source Code of edu.stanford.bmir.protege.web.client.place.PlaceManager

package edu.stanford.bmir.protege.web.client.place;

import com.google.common.base.Optional;
import com.google.gwt.core.client.GWT;
import com.google.gwt.place.shared.Place;
import com.google.gwt.place.shared.PlaceChangeEvent;
import com.google.gwt.place.shared.PlaceController;
import com.google.gwt.place.shared.PlaceHistoryHandler;
import com.google.web.bindery.event.shared.EventBus;
import com.google.web.bindery.event.shared.SimpleEventBus;
import edu.stanford.bmir.protege.web.client.Application;
import edu.stanford.bmir.protege.web.shared.event.EventBusManager;
import edu.stanford.bmir.protege.web.shared.project.ProjectId;


/**
* Author: Matthew Horridge<br>
* Stanford University<br>
* Bio-Medical Informatics Research Group<br>
* Date: 07/04/2013
*/
public class PlaceManager {

    private static final ProjectListPlace DEFAULT_PLACE = ProjectListPlace.DEFAULT_PLACE;

    private PlaceController placeController;

    public PlaceManager() {
        EventBus placeEventBus = new SimpleEventBus();
        placeEventBus.addHandler(PlaceChangeEvent.TYPE, new PlaceChangeEvent.Handler() {
            @Override
            public void onPlaceChange(PlaceChangeEvent event) {
                // Fire it on to the real event bus
                EventBusManager.getManager().postEvent(event);
            }
        });
        placeController = new PlaceController(placeEventBus);

        WebProtegePlaceHistoryMapper placeHistoryMapper = GWT.create(WebProtegePlaceHistoryMapper.class);
        PlaceHistoryHandler placeHistoryHandler = new PlaceHistoryHandler(placeHistoryMapper);
        placeHistoryHandler.register(placeController, placeEventBus, Place.NOWHERE);
        placeHistoryHandler.handleCurrentHistory();
    }


    public Place getCurrentPlace() {
        return placeController.getWhere();
    }

    public void setCurrentPlace(Place place) {
        if (!place.equals(placeController.getWhere())) {
            GWT.log("SETTING CURRENT PLACE: " + place);
        }
        placeController.goTo(place);
    }

//    public void updateCurrentPlace() {
//        final Place currentPlace = createPlace();
//        placeController.goTo(currentPlace);
//    }


    private Place createPlace() {
        final Optional<ProjectId> activeProject = Application.get().getActiveProject();
        if(!activeProject.isPresent()) {
            return DEFAULT_PLACE;
        }
        else {
            return new ProjectViewPlace(activeProject.get());
        }
    }



}
TOP

Related Classes of edu.stanford.bmir.protege.web.client.place.PlaceManager

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.