Package org.jboss.errai.widgets.client.soa

Source Code of org.jboss.errai.widgets.client.soa.PropertyGrid

/* jboss.org */
package org.jboss.errai.widgets.client.soa;

import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Label;
import org.gwt.mosaic.ui.client.ScrollLayoutPanel;
import org.gwt.mosaic.ui.client.layout.FillLayout;

/**
* A simple property grid that displays name-value pairs.
* <br>
* Used styles:
* <ul>
* <li>bpm-prop-grid
* <li>bpm-prop-grid-label
* <li>bpm-prop-grid-even
* <li>bpm-prop-grid-odd
* </ul>
*
* @author Heiko.Braun <heiko.braun@jboss.com>
*/
public class PropertyGrid extends ScrollLayoutPanel
{
  private String[] fieldNames;

  private Grid grid;

  public PropertyGrid(String[] fieldDesc)
  {
    super(new FillLayout());
    this.grid = new Grid(fieldDesc.length, 2);
    grid.setStyleName("soa-prop-grid");
    this.fieldNames = fieldDesc;

    this.add(grid);

    initReset();
  }

  private void initReset()
  {
    for(int i=0; i< fieldNames.length; i++)
    {
      Label label = new Label(fieldNames[i]);
      label.setStyleName("soa-prop-grid-label");
      grid.setWidget(i,0, label);
      grid.setWidget(i,1, new HTML(""));

      String style = (i % 2 == 0) ? "soa-prop-grid-even" : "soa-prop-grid-odd";
      grid.getRowFormatter().setStyleName(i, style);
      grid.getColumnFormatter().setWidth(0, "20%");
      grid.getColumnFormatter().setWidth(1, "80%");
    }
  }

  public void clear()
  {
    initReset();
  }

  public void update(String[] fieldValues)
  {
    if(fieldValues.length!= fieldNames.length)
      throw new IllegalArgumentException("fieldValues.length doesn't match fieldName.length: "+ fieldNames);

    for(int i=0; i< fieldNames.length; i++)
    {
      Label label = new Label(fieldNames[i]);
      label.setStyleName("soa-prop-grid-label");
      grid.setWidget(i,0, label);
      grid.setWidget(i,1, new HTML(fieldValues[i]));
    }
  }

}
TOP

Related Classes of org.jboss.errai.widgets.client.soa.PropertyGrid

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.