Package com.tll.client.ui.listing

Source Code of com.tll.client.ui.listing.IspListingWidget

/**
* The Logic Lab
* @author jpk
* @since Sep 21, 2009
*/
package com.tll.client.ui.listing;

import com.allen_sauer.gwt.log.client.Log;
import com.tll.client.App;
import com.tll.client.SmbizAdmin;
import com.tll.client.data.rpc.CrudCommand;
import com.tll.client.listing.AbstractAccountListingConfig;
import com.tll.client.listing.AbstractRowOptions;
import com.tll.client.listing.Column;
import com.tll.client.listing.IAddRowDelegate;
import com.tll.client.listing.IListingConfig;
import com.tll.client.listing.IRowOptionsDelegate;
import com.tll.client.listing.RemoteListingOperator;
import com.tll.client.mvc.ViewManager;
import com.tll.client.mvc.view.EditViewInitializer;
import com.tll.client.mvc.view.ShowViewRequest;
import com.tll.client.mvc.view.account.AccountEditView;
import com.tll.client.mvc.view.account.MerchantListingViewInitializer;
import com.tll.client.ui.option.Option;
import com.tll.client.util.GlobalFormat;
import com.tll.common.model.Model;
import com.tll.common.model.SmbizEntityType;
import com.tll.common.search.NamedQuerySearch;
import com.tll.dao.Sorting;
import com.tll.listhandler.ListHandlerType;

/**
* IspListingWidget
* @author jpk
*/
public class IspListingWidget extends RemoteListingWidget {

  static final Option mListing = new Option("Merchant Listing", App.imgs().arrow_sm_down().createImage());

  /**
   * IspListingConfig
   * @author jpk
   */
  static class IspListingConfig extends AbstractAccountListingConfig {

    private static final String listingElementName = SmbizEntityType.ISP.getName();

    private static final Sorting defaultSorting = new Sorting("name");

    private static final Column[] cols = new Column[] {
      Column.ROW_COUNT_COLUMN,
      new Column("Name", Model.NAME_PROPERTY, "i"),
      new Column("Created", GlobalFormat.DATE, Model.DATE_CREATED_PROPERTY, "i"),
      new Column("Modified", GlobalFormat.DATE, Model.DATE_MODIFIED_PROPERTY, "i"),
      new Column("Status", "status", "i"),
      new Column("Billing Model", "billingModel", "i"),
      new Column("Billing Cycle", "billingCycle", "i"),
    };

    private static final String[] mprops = new String[] {
      Model.NAME_PROPERTY,
      Model.DATE_CREATED_PROPERTY,
      Model.DATE_MODIFIED_PROPERTY,
      "status",
      "billingModel",
      "billingCycle",
    };

    /**
     * Constructor
     */
    public IspListingConfig() {
      super(null, listingElementName, mprops, cols, defaultSorting);
    }
  }

  class RowHandler extends AbstractRowOptions {

    @Override
    protected Option[] getCustomRowOps(int rowIndex) {
      return new Option[] { mListing, App.OPTION_SET_CURRENT, };
    }

    @Override
    protected void handleRowOp(String optionText, int rowIndex) {
      if(mListing.getText().equals(optionText)) {
        ViewManager.get().dispatch(
            new ShowViewRequest(new MerchantListingViewInitializer(getRowKey(rowIndex))));
      }
      else if(App.OPTION_SET_CURRENT.getText().equals(optionText)) {
        SmbizAdmin.getAdminContextCmd().changeCurrentAccount(getRowKey(rowIndex));
      }
    }

    @Override
    protected String getListingElementName() {
      return config.getListingElementName();
    }

    @Override
    protected void doEditRow(int rowIndex) {
      Log.debug("doEditRow - rowIndex: " + rowIndex);
      ViewManager.get().dispatch(
          new ShowViewRequest(new EditViewInitializer(AccountEditView.klas, getRowKey(rowIndex))));
    }

    @Override
    protected void doDeleteRow(int rowIndex) {
      CrudCommand.deleteModel(IspListingWidget.this, getRowKey(rowIndex)).execute();
    }
  } // Row Handler

  static final IListingConfig<Model> config = new IspListingConfig();

  final NamedQuerySearch criteria;

  /**
   * Constructor
   */
  public IspListingWidget() {
    super(config);
    criteria = new NamedQuerySearch(SmbizEntityType.ISP, "account.ispList", true);

    setOperator(RemoteListingOperator.create(config.getListingId(),
        ListHandlerType.PAGE, criteria, config.getModelProperties(),
        config.getPageSize(), config.getDefaultSorting()));
  }

  @Override
  protected IRowOptionsDelegate getRowOptionsHandler() {
    return new RowHandler();
  }

  @Override
  protected IAddRowDelegate getAddRowHandler() {
    // TODO impl
    return null;
  }
}
TOP

Related Classes of com.tll.client.ui.listing.IspListingWidget

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.