Package org.platformlayer.service.dns.client.dnsrecordlist

Source Code of org.platformlayer.service.dns.client.dnsrecordlist.DnsRecordListViewImpl$ViewUiBinder

package org.platformlayer.service.dns.client.dnsrecordlist;

import javax.inject.Singleton;

import org.platformlayer.dns.model.DnsRecord;
import org.platformlayer.gwt.client.NativeEvents;
import org.platformlayer.gwt.client.ui.JsArrayTextColumn;
import org.platformlayer.gwt.client.ui.JsTextColumn;
import org.platformlayer.gwt.client.ui.ListViewImpl;
import org.platformlayer.gwt.client.widgets.BoundTable;

import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.ButtonElement;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiFactory;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.cellview.client.CellTable;
import com.google.gwt.user.cellview.client.Column;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.view.client.CellPreviewEvent;
import com.google.gwt.view.client.HasData;

@Singleton
public class DnsRecordListViewImpl extends ListViewImpl<DnsRecord> implements DnsRecordListView {
  interface ViewUiBinder extends UiBinder<HTMLPanel, DnsRecordListViewImpl> {
  }

  @UiField
  CellTable<DnsRecord> recordList;

  @UiField
  ButtonElement addButton;

  @UiFactory
  CellTable<DnsRecord> makeDomainList() {
    final BoundTable<DnsRecord> table = new BoundTable<DnsRecord>();

    Column<DnsRecord, String> dnsName = JsTextColumn.build("dnsName");
    table.addColumn(dnsName, "DNS Name");

    Column<DnsRecord, String> recordType = JsTextColumn.build("recordType");
    table.addColumn(recordType, "Record Type");

    Column<DnsRecord, String> addresses = JsArrayTextColumn.build("address");
    table.addColumn(addresses, "Addresses");

    // TODO: Refactor
    table.addCellPreviewHandler(new CellPreviewEvent.Handler<DnsRecord>() {
      @Override
      public void onCellPreview(CellPreviewEvent<DnsRecord> event) {
        boolean isClick = NativeEvents.isClick(event.getNativeEvent());
        if (!isClick) {
          return;
        }

        // int column = event.getColumn();
        // if (column == 2) {
        // // Ignore the jobs column
        // return;
        // }
        DnsRecord domainName = event.getValue();
        if (domainName == null) {
          return;
        }

        onRowClick(domainName);
      }
    });

    return table;
  }

  protected void onRowClick(DnsRecord record) {
    activity.goTo(record);
  }

  private static ViewUiBinder viewUiBinder = GWT.create(ViewUiBinder.class);

  public DnsRecordListViewImpl() {
    initWidget(viewUiBinder.createAndBindUi(this));

    addClickHandler(addButton, new ClickHandler() {
      @Override
      public void onClick(ClickEvent event) {
        activity.addNew();
      }
    });
  }

  @Override
  public HasData<DnsRecord> getList() {
    return recordList;
  }

}
TOP

Related Classes of org.platformlayer.service.dns.client.dnsrecordlist.DnsRecordListViewImpl$ViewUiBinder

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.