Package com.denormans.facebookgwt.samples.client.showcase.widgets

Source Code of com.denormans.facebookgwt.samples.client.showcase.widgets.AddEventWidget$AddEventWidgetUIBinder

/*
* Copyright (C) 2010 deNormans
* http://www.denormans.com/
* All rights reserved.
*
* This software is the confidential and proprietary information of deNormans ("Confidential Information"). You
* shall not disclose such Confidential Information and shall use it only in accordance with the terms of the license
* agreement you entered into with deNormans.
*
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* DENORMANS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

package com.denormans.facebookgwt.samples.client.showcase.widgets;

import com.denormans.facebookgwt.api.shared.common.events.FBEventTypes;
import com.denormans.facebookgwt.gwtutil.shared.events.HasValueAddHandlers;
import com.denormans.facebookgwt.gwtutil.shared.events.ValueAddEvent;
import com.denormans.facebookgwt.gwtutil.shared.events.ValueAddHandler;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.HasEnabled;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.TextBox;

public class AddEventWidget extends Composite implements HasValueAddHandlers<EventDescriptor>, HasEnabled {
  interface AddEventWidgetUIBinder extends UiBinder<HTMLPanel, AddEventWidget> {}
  private static AddEventWidgetUIBinder sUIBinder = GWT.create(AddEventWidgetUIBinder.class);

  @UiField ListBox eventTypesListBox;
  @UiField HTML eventTypesError;

  @UiField TextBox eventMessageTextBox;
  @UiField HTML eventMessageError;

  @UiField Button addEventHandlerButton;

  public AddEventWidget() {
    HTMLPanel rootElement = sUIBinder.createAndBindUi(this);
    initWidget(rootElement);

    eventTypesListBox.addItem("Please select a type...", "");
    for (final FBEventTypes eventType : FBEventTypes.values()) {
      eventTypesListBox.addItem(eventType.name());
    }
    eventTypesListBox.setSelectedIndex(0);
  }

  @Override
  public boolean isEnabled() {
    return addEventHandlerButton.isEnabled();
  }

  @Override
  public void setEnabled(final boolean enabled) {
    eventTypesListBox.setEnabled(enabled);
    eventMessageTextBox.setEnabled(enabled);
    addEventHandlerButton.setEnabled(enabled);
  }

  @UiHandler ("addEventHandlerButton")
  public void handleAddEventHandlerClick(final ClickEvent event) {
    FBEventTypes fbEventType = getSelectedEventType();
    if (fbEventType == null) {
      eventTypesError .setText("Please choose an event type.");
      eventTypesError.setVisible(true);
      return;
    }

    ValueAddEvent.fire(this, new EventDescriptor(fbEventType, eventMessageTextBox.getText()));

    eventTypesListBox.setSelectedIndex(0);
    eventMessageTextBox.setText("");
  }

  private FBEventTypes getSelectedEventType() {
    FBEventTypes fbEventType = null;
    String eventTypeName = eventTypesListBox.getValue(eventTypesListBox.getSelectedIndex());
    if (eventTypeName.length() > 0) {
      fbEventType = FBEventTypes.valueOf(eventTypeName);
    }
    return fbEventType;
  }

  @UiHandler ("eventTypesListBox")
  public void handleEventTypesListBoxChange(final ChangeEvent event) {
    eventTypesError.setVisible(false);
    eventMessageError.setVisible(false);
  }

  @UiHandler ("eventMessageTextBox")
  public void handleEventMessageTextBoxValueChange(final ValueChangeEvent<String> event) {
    eventMessageError.setVisible(false);
  }

  @Override
  public HandlerRegistration addValueAddHandler(final ValueAddHandler<EventDescriptor> eventDescriptorValueAddHandler) {
    return addHandler(eventDescriptorValueAddHandler, ValueAddEvent.getType());
  }
}
TOP

Related Classes of com.denormans.facebookgwt.samples.client.showcase.widgets.AddEventWidget$AddEventWidgetUIBinder

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.