private void createPostList() {
    view.showProgressIndicator();

    JsonpRequestBuilder jsonp = new JsonpRequestBuilder();
    // Set timeout for 30 seconds (30000 milliseconds)
    jsonp.setTimeout(30000);
    jsonp.requestObject(
        EXPRESS_LANES_URL,
        new AsyncCallback<ExpressLanesFeed>() {

          @Override
          public void onFailure(Throwable caught) {
            view.hideProgressIndicator();
            phoneGap
                .getNotification()
                .alert(
                    "Can't load data. Check your connection.",
                    new AlertCallback() {
                      @Override
                      public void onOkButtonClicked() {
                        // TODO Auto-generated method stub
                      }
                    },
                    "Connection Error");
          }

          @Override
          public void onSuccess(ExpressLanesFeed result) {
            ExpressLaneItem item = null;

            if (result.getExpressLanes() != null) {
              ArrayList<ExpressLaneItem> expressLaneItems = new ArrayList<ExpressLaneItem>();
              HashMap<Integer, String> routeIcon = new HashMap<Integer, String>();
              routeIcon.put(5, AppBundle.INSTANCE.css().i5Icon());
              routeIcon.put(90, AppBundle.INSTANCE.css().i90Icon());

              int numEntries = result.getExpressLanes().getRoutes().length();
              for (int i = 0; i < numEntries; i++) {
                item = new ExpressLaneItem();

                item.setStatus(result.getExpressLanes().getRoutes().get(i).getStatus());
                item.setRoute(result.getExpressLanes().getRoutes().get(i).getRoute());
                item.setTitle(result.getExpressLanes().getRoutes().get(i).getTitle());
                item.setUpdated(result.getExpressLanes().getRoutes().get(i).getUpdated());
                item.setRouteIcon(
                    routeIcon.get(result.getExpressLanes().getRoutes().get(i).getRoute()));

                expressLaneItems.add(item);
              }

              view.hideProgressIndicator();
              view.render(expressLaneItems);
              view.refresh();
              accessibility.postScreenChangeNotification();
            }
          }
        });
  }
  @Override
  public void start(AcceptsOneWidget panel, EventBus eventBus) {
    view = clientFactory.getSeattleExpressLanesView();
    this.eventBus = eventBus;
    this.phoneGap = this.clientFactory.getPhoneGap();
    accessibility = clientFactory.getAccessibility();
    view.setPresenter(this);
    view.getPullHeader().setHTML("pull down");
    inAppBrowser = this.phoneGap.getInAppBrowser();

    PullArrowStandardHandler headerHandler =
        new PullArrowStandardHandler(view.getPullHeader(), view.getPullPanel());

    headerHandler.setErrorText("Error");
    headerHandler.setLoadingText("Loading");
    headerHandler.setNormalText("pull down");
    headerHandler.setPulledText("release to load");
    headerHandler.setPullActionHandler(
        new PullActionHandler() {

          @Override
          public void onPullAction(final AsyncCallback<Void> callback) {

            new Timer() {

              @Override
              public void run() {
                createPostList();
                view.refresh();
                callback.onSuccess(null);
              }
            }.schedule(1);
          }
        });

    view.setHeaderPullHandler(headerHandler);

    createPostList();
    createSchedulesLink();

    panel.setWidget(view);

    accessibility.postScreenChangeNotification();
  }
 @Override
 public void onStop() {
   view.setPresenter(null);
 }
  private void createSchedulesLink() {
    ArrayList<Topic> schedules = new ArrayList<Topic>();
    schedules.add(new Topic("Check Express Lanes Schedule"));

    view.scheduleRender(schedules);
  }