Package com.tll.client.ui.field.user

Source Code of com.tll.client.ui.field.user.UserPanel

/**
* The Logic Lab
* @author jpk
* Feb 21, 2008
*/
package com.tll.client.ui.field.user;

import com.google.gwt.user.client.ui.DisclosurePanel;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.tll.client.Style;
import com.tll.client.mvc.view.EditViewInitializer;
import com.tll.client.mvc.view.account.AccountEditView;
import com.tll.client.ui.field.AddressFieldsRenderer;
import com.tll.client.ui.field.FieldGroup;
import com.tll.client.ui.field.FlowFieldPanel;
import com.tll.client.ui.field.FlowPanelFieldComposer;
import com.tll.client.ui.field.IFieldRenderer;
import com.tll.client.ui.field.IFieldWidget;
import com.tll.client.ui.view.ViewLink;
import com.tll.common.model.Model;

/**
* UserPanel
* @author jpk
*/
public class UserPanel extends FlowFieldPanel {

  class UserFieldsRenderer implements IFieldRenderer<FlowPanel> {

    @SuppressWarnings("synthetic-access")
    public void render(FlowPanel pnl, FieldGroup fg) {
      final FlowPanelFieldComposer cmpsr = new FlowPanelFieldComposer();
      cmpsr.setCanvas(pnl);
      IFieldWidget<?> fw;

      // first row
      fw = fg.getFieldWidget("userEmailAddress");
      fw.getWidget().addStyleName(Style.GAP_RIGHT);
      cmpsr.addField(fw);
      cmpsr.stopFlow();
      cmpsr.addField(fg.getFieldWidget("userLocked"));
      cmpsr.addField(fg.getFieldWidget("userEnabled"));
      cmpsr.resetFlow();
      cmpsr.addField(fg.getFieldWidget("user" + Model.NAME_PROPERTY));
      cmpsr.addField(fg.getFieldWidget("userExpires"));

      // parent account ref link
      final Model parentAccount = getModel().nestedModel("account");
      final String paName = parentAccount.asString(Model.NAME_PROPERTY);
      lnkAccount.setViewNames(paName, paName);
      lnkAccount.setViewInitializer(new EditViewInitializer(AccountEditView.klas, parentAccount));
      cmpsr.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
      cmpsr.addWidget("Account", lnkAccount);

      cmpsr.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
      cmpsr.addField(fg.getFieldWidget("user" + Model.DATE_CREATED_PROPERTY));
      cmpsr.stopFlow();
      cmpsr.addField(fg.getFieldWidget("user" + Model.DATE_MODIFIED_PROPERTY));
      cmpsr.resetFlow();

      // third row
      cmpsr.newRow();
      final FlowPanel fp = new FlowPanel();
      final AddressFieldsRenderer afr = new AddressFieldsRenderer();
      afr.render(fp, fg);
      dpAddress.add(fp);
      cmpsr.addWidget(dpAddress);
    }
  }

  private final ViewLink lnkAccount = new ViewLink();
  private final DisclosurePanel dpAddress = new DisclosurePanel("Address", false);

  @Override
  protected FieldGroup generateFieldGroup() {
    return (new UserFieldsProvider()).getFieldGroup();
  }

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

Related Classes of com.tll.client.ui.field.user.UserPanel

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.