@Override
  public void start(AcceptsOneWidget panel, final EventBus eventBus) {
    view = clientFactory.getYouTubeDetailsView();
    this.eventBus = eventBus;
    view.setPresenter(this);

    Place place = clientFactory.getPlaceController().getWhere();

    if (place instanceof YouTubeDetailsPlace) {
      YouTubeDetailsPlace youTubeDetailsPlace = (YouTubeDetailsPlace) place;

      view.setTitle(youTubeDetailsPlace.getYouTubeItem().getTitle());
      view.setEmbedContent(youTubeDetailsPlace.getYouTubeItem().getId());
      view.setDescription(youTubeDetailsPlace.getYouTubeItem().getDescription());
    }

    panel.setWidget(view);
  }
  @Override
  public void start(AcceptsOneWidget panel, final EventBus eventBus) {
    view = clientFactory.getFerriesRouteAlertDetailsView();
    this.eventBus = eventBus;
    view.setPresenter(this);

    Place place = clientFactory.getPlaceController().getWhere();

    if (place instanceof FerriesRouteAlertDetailsPlace) {
      FerriesRouteAlertDetailsPlace ferriesRouteAlertDetailsPlace =
          (FerriesRouteAlertDetailsPlace) place;

      view.setPublishDate(
          ferriesRouteAlertDetailsPlace.getFerriesRouteAlertItem().getPublishDate());
      view.setAlertTitle(
          ferriesRouteAlertDetailsPlace.getFerriesRouteAlertItem().getAlertFullTitle());
      view.setAlertText(
          ferriesRouteAlertDetailsPlace.getFerriesRouteAlertItem().getAlertFullText());
    }

    panel.setWidget(view);
    captureClickEvents();
  }
  @Override
  public void start(AcceptsOneWidget panel, final EventBus eventBus) {
    view = clientFactory.getRestAreaView();
    analytics = clientFactory.getAnalytics();
    accessibility = clientFactory.getAccessibility();
    this.eventBus = eventBus;
    view.setPresenter(this);

    Place place = clientFactory.getPlaceController().getWhere();

    if (place instanceof RestAreaPlace) {
      RestAreaPlace restAreaPlace = (RestAreaPlace) place;

      int restAreaId = Integer.valueOf(restAreaPlace.getId());

      String jsonString = AppBundle.INSTANCE.restAreaData().getText();
      RestAreaFeed restAreas = JsonUtils.safeEval(jsonString);

      view.setTitle("Safety Rest Area");

      SafeHtmlBuilder detailsHTMLBuilder = new SafeHtmlBuilder();

      detailsHTMLBuilder.appendEscaped(
          restAreas.getRestAreas().get(restAreaId).getRoute()
              + " - "
              + restAreas.getRestAreas().get(restAreaId).getLocation());

      detailsHTMLBuilder.appendHtmlConstant("<br>");

      detailsHTMLBuilder.appendEscaped(
          "Milepost: "
              + restAreas.getRestAreas().get(restAreaId).getMilepost()
              + " - "
              + restAreas.getRestAreas().get(restAreaId).getDirection());

      view.setDetails(detailsHTMLBuilder.toSafeHtml());

      if (restAreas.getRestAreas().get(restAreaId).getNotes() == null) {
        view.hideNotesHeading();
        view.setNotes("");
      } else {
        view.showNotesHeading();
        view.setNotes(restAreas.getRestAreas().get(restAreaId).getNotes());
      }

      SafeHtmlBuilder amenitiesHTMLBuilder = new SafeHtmlBuilder();

      amenitiesHTMLBuilder.appendHtmlConstant("<ul>");
      for (int i = 0; i < restAreas.getRestAreas().get(restAreaId).getAmenities().length; i++) {
        amenitiesHTMLBuilder.appendHtmlConstant("<li>");
        amenitiesHTMLBuilder.appendEscaped(
            restAreas.getRestAreas().get(restAreaId).getAmenities()[i]);
        amenitiesHTMLBuilder.appendHtmlConstant("</li>");
      }

      if (restAreas.getRestAreas().get(restAreaId).getAmenities().length == 0) {
        view.hideAmenitiesHeading();
      } else {
        view.showAmenitiesHeading();
      }

      amenitiesHTMLBuilder.appendHtmlConstant("</ul>");

      view.setAmenities(amenitiesHTMLBuilder.toSafeHtml());

      view.setLatLon(
          Double.valueOf(restAreas.getRestAreas().get(restAreaId).getLatitude()),
          Double.valueOf(restAreas.getRestAreas().get(restAreaId).getLongitude()));

      view.refresh();
    }

    panel.setWidget(view);
    accessibility.postScreenChangeNotification();
  }