Package com.tll.client.ui.field.account

Source Code of com.tll.client.ui.field.account.PaymentInfoPanel$BankPanel

/**
* The Logic Lab
* @author jpk Nov 4, 2007
*/
package com.tll.client.ui.field.account;

import com.google.gwt.event.logical.shared.BeforeSelectionHandler;
import com.google.gwt.event.logical.shared.HasBeforeSelectionHandlers;
import com.google.gwt.event.logical.shared.HasSelectionHandlers;
import com.google.gwt.event.logical.shared.SelectionHandler;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.TabPanel;
import com.tll.client.ui.field.BankFieldsProvider;
import com.tll.client.ui.field.BankFieldsRenderer;
import com.tll.client.ui.field.CreditCardFieldsProvider;
import com.tll.client.ui.field.CreditCardFieldsRenderer;
import com.tll.client.ui.field.FieldGroup;
import com.tll.client.ui.field.FieldPanel;
import com.tll.client.ui.field.FlowFieldPanel;
import com.tll.client.ui.field.IFieldRenderer;

/**
* PaymentInfoPanel
* @author jpk
*/
public final class PaymentInfoPanel extends FieldPanel<TabPanel> implements
    HasSelectionHandlers<Integer>, HasBeforeSelectionHandlers<Integer> {

  static final class CreditCardPanel extends FlowFieldPanel {

    @Override
    public FieldGroup generateFieldGroup() {
      return (new CreditCardFieldsProvider()).getFieldGroup();
    }

    @Override
    public IFieldRenderer<FlowPanel> getRenderer() {
      return new CreditCardFieldsRenderer();
    }

  }

  static final class BankPanel extends FlowFieldPanel {

    @Override
    public FieldGroup generateFieldGroup() {
      return (new BankFieldsProvider()).getFieldGroup();
    }

    @Override
    public IFieldRenderer<FlowPanel> getRenderer() {
      return new BankFieldsRenderer();
    }
  }

  final TabPanel tabPanel = new TabPanel();

  private final CreditCardPanel creditCardPanel;
  private final BankPanel bankPanel;

  /**
   * Constructor
   */
  public PaymentInfoPanel() {
    super();
    creditCardPanel = new CreditCardPanel();
    bankPanel = new BankPanel();
    initWidget(tabPanel);
  }

  @Override
  public IFieldRenderer<TabPanel> getRenderer() {
    return new IFieldRenderer<TabPanel>() {

      @SuppressWarnings("synthetic-access")
      public void render(TabPanel panel, FieldGroup fg) {
        panel.add(creditCardPanel, "Credit Card");
        panel.add(bankPanel, "Bank");
      }
    };
  }

  @Override
  public FieldGroup generateFieldGroup() {
    final FieldGroup fg = new FieldGroup("Payment Info");
    fg.addField(creditCardPanel.getFieldGroup());
    fg.addField(bankPanel.getFieldGroup());
    return fg;
  }

  public HandlerRegistration addSelectionHandler(SelectionHandler<Integer> handler) {
    // TODO finish
    return null;
  }

  public HandlerRegistration addBeforeSelectionHandler(BeforeSelectionHandler<Integer> handler) {
    // TODO finish
    return null;
  }

  @Override
  protected void onAttach() {
    super.onAttach();
    if(tabPanel.getTabBar().getSelectedTab() == -1) {
      tabPanel.selectTab(0);
    }
  }

}
TOP

Related Classes of com.tll.client.ui.field.account.PaymentInfoPanel$BankPanel

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.