Package org.onebusaway.webapp.gwt.mobile_application.view

Source Code of org.onebusaway.webapp.gwt.mobile_application.view.BookmarkViewController$SaveHandler

/**
* Copyright (C) 2011 Brian Ferris <bdferris@onebusaway.org>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*         http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onebusaway.webapp.gwt.mobile_application.view;

import org.onebusaway.webapp.gwt.common.widgets.DivWidget;
import org.onebusaway.webapp.gwt.mobile_application.MobileApplicationContext;
import org.onebusaway.webapp.gwt.mobile_application.control.MobileApplicationDao;
import org.onebusaway.webapp.gwt.mobile_application.model.Bookmark;
import org.onebusaway.webapp.gwt.mobile_application.resources.MobileApplicationCssResource;
import org.onebusaway.webapp.gwt.mobile_application.resources.MobileApplicationResources;
import org.onebusaway.webapp.gwt.viewkit.BarButtonItem;
import org.onebusaway.webapp.gwt.viewkit.NavigationController;
import org.onebusaway.webapp.gwt.viewkit.ViewController;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.FormPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.FormPanel.SubmitEvent;
import com.google.gwt.user.client.ui.FormPanel.SubmitHandler;

public class BookmarkViewController extends ViewController {

  private static final MobileApplicationCssResource _css = MobileApplicationResources.INSTANCE.getCSS();

  private Bookmark _bookmark;

  private boolean _newBookmark;

  private TextBox _input;

  public BookmarkViewController(Bookmark bookmark, boolean newBookmark) {
    _bookmark = bookmark;
    _newBookmark = newBookmark;
   
  }

  @Override
  protected void loadView() {
    super.loadView();

    getNavigationItem().setTitle(
        _newBookmark ? "Add Bookmark" : "Edit Bookmark");
    getNavigationItem().setRightBarButtonItem(
        new BarButtonItem("Cancel", new CancelHandler()));

    FlowPanel panel = new FlowPanel();
    panel.add(new DivWidget("Name:"));

    FormPanel form = new FormPanel();
    panel.add(form);

    FlowPanel formRow = new FlowPanel();
    form.add(formRow);

    _input = new TextBox();
    _input.setText(_bookmark.getName());
    _input.addStyleName(_css.BookmarkTextBox());
    formRow.add(_input);

    Button submitButton = new Button("Save");
    submitButton.addStyleName(_css.BookmarkSaveButton());
    formRow.add(submitButton);

    SaveHandler handler = new SaveHandler();
    form.addSubmitHandler(handler);
    submitButton.addClickHandler(handler);

    _view = panel;
  }

  private void save() {

    String text = _input.getText();
    if (text.length() == 0)
      return;

    _bookmark.setName(text);
   
    if( _newBookmark ) {
      MobileApplicationDao dao = MobileApplicationContext.getDao();
      dao.addBookmark(_bookmark);
    }
     
    NavigationController nav = getNavigationController();
    nav.popViewController();
  }

  private class SaveHandler implements ClickHandler, SubmitHandler {

    @Override
    public void onClick(ClickEvent arg0) {
      save();
    }

    @Override
    public void onSubmit(SubmitEvent event) {
      event.cancel();
      save();
    }
  }
 
  private class CancelHandler implements ClickHandler {

    @Override
    public void onClick(ClickEvent arg0) {
      NavigationController nav = getNavigationController();
      nav.popViewController();
    }
  }
}
TOP

Related Classes of org.onebusaway.webapp.gwt.mobile_application.view.BookmarkViewController$SaveHandler

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.