Package com.piki.client.ui

Source Code of com.piki.client.ui.DesktopImplPiki100$DesktopUiBinder

/**
*
*/
package com.piki.client.ui;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.shared.EventBus;
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.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.SimpleLayoutPanel;
import com.google.gwt.user.client.ui.Widget;
import com.piki.client.event.AddWikiPageEvent;
import com.piki.client.event.AddWikiPageEventHandler;
import com.piki.client.event.DeleteWikiPageEvent;
import com.piki.client.mvp.HasEventBus;
import com.piki.client.mvp.place.HasPlaceController;
import com.piki.client.presenter.WikiPagePlace;
import com.piki.client.storage.WikiStorage;


public class DesktopImplPiki100  extends Composite implements Desktop, HasEventBus, HasPlaceController {
 
  interface DesktopUiBinder extends UiBinder<Widget, DesktopImplPiki100> {
  }
 
  private static DesktopUiBinder uiBinder = GWT.create(DesktopUiBinder.class);
 
  private EventBus eventBus = null;
 
    private PlaceController placeController = null;
   
    private WikiStorage storage = new WikiStorage();
 
  @UiField
  SimpleLayoutPanel workspace;
 
  @UiField
  WikiPageBox wikiPageBox;

  public DesktopImplPiki100() {
    initWidget(uiBinder.createAndBindUi(this));

     

  }

  @Override
  public void setWidget(IsWidget w) {
    workspace.setWidget(w);
   
  }

  @Override
  public void setEventBus(EventBus eventBus) {
    this.eventBus = eventBus;
  }

  @Override
  public void setPlaceController(PlaceController placeController) {
    this.placeController = placeController;
   
  }

  @Override
  public void initDesktop() {
   
    wikiPageBox.addNewWikiPageHandler(new WikiPageBox.WikiPageBoxHandler() {
     
      @Override
      public void onWikiPage(String wikiPageName) {
        Place place = new WikiPagePlace(wikiPageName);
        placeController.goTo(place);
      }
    });
    wikiPageBox.addSelectWikiPageHandler(new WikiPageBox.WikiPageBoxHandler() {
     
      @Override
      public void onWikiPage(String wikiPageName) {
        Place place = new WikiPagePlace(wikiPageName);
        placeController.goTo(place);
      }
    });
    wikiPageBox.addDeleteWikiPageHandler(new WikiPageBox.WikiPageBoxHandler() {
     
      @Override
      public void onWikiPage(String wikiPageName) {
        eventBus.fireEvent(new DeleteWikiPageEvent(wikiPageName));
        storage.delete(wikiPageName);
        wikiPageBox.removeWikiPage(wikiPageName);
      }
    });

    for (String wikiPageName: storage.findAll()) {
      wikiPageBox.addWikiPage(wikiPageName);
    }
   
    if (eventBus != null) {
      eventBus.addHandler(AddWikiPageEvent.TYPE, new AddWikiPageEventHandler() {
       
        @Override
        public void onAddWikiPage(AddWikiPageEvent event) {
          wikiPageBox.addWikiPage(event.getWikiPageName());
        }
      });
     
      eventBus.addHandler(PlaceChangeEvent.TYPE, new PlaceChangeEvent.Handler() {
       
        @Override
        public void onPlaceChange(PlaceChangeEvent event) {
          if (event != null) {
            Place place = event.getNewPlace();
            if (place instanceof WikiPagePlace) {
              WikiPagePlace p = (WikiPagePlace) place;
                wikiPageBox.focusOnWikiPage(p.getWikiPageName());
            }
          }
        }
      });
    }
   
  }

}
TOP

Related Classes of com.piki.client.ui.DesktopImplPiki100$DesktopUiBinder

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.