добавление текста и изображения в каждую ячейку списка ячеек в MGWT

Можете ли вы помочь мне добавить как текст, так и изображение в ячейку списка ячеек в MGWT, которую я сделал только для текста, но не смог разместить текст и изображение. Жду вашего ценного ответа.


person Arun Kumar Mudraboyina    schedule 13.03.2013    source источник


Ответы (2)


В ячейке вы можете использовать любую разметку, которую хотите использовать. Это ничем не отличается от стандартных виджетов ячеек GWT и их ячеек.

Это базовый пример, взятый из витрины mgwt и модифицированный для включения тега img в разметку:

public abstract class BasicCell<T> implements Cell<T> {

    private static Template TEMPLATE = GWT.create(Template.class);

    public interface Template extends SafeHtmlTemplates {
        @SafeHtmlTemplates.Template("<div>{0} <img src="{1}"/></div>")
        SafeHtml content(String text, String imgUrl);

    }

    @Override
    public void render(SafeHtmlBuilder safeHtmlBuilder, final T model) {
        safeHtmlBuilder.append(TEMPLATE.content("text", "someUrl.jgp"));

    }

    public abstract String getDisplayString(T model);

    @Override
    public boolean canBeSelected(T model) {
        return false;
    }

}
person Daniel Kurka    schedule 13.03.2013
comment
Когда изображения загружаются, высота каждой строки может увеличиваться, поэтому ScrollPanel, которая обычно содержит CellList, не будет прокручиваться вниз. Мы можем вызвать scrollPanel.refresh(), но когда лучше всего? Есть ли альтернативы? Спасибо - person Rafaesp; 19.09.2013

Я публикую все шаги по работе с CellList MGWT с учетом bean-компонента MyContacts. Думаю, это очень поможет новичкам. предположим, что bean-компонент MyContacts имеет два свойства с именами contactImagePath и contactPersonName. Теперь я показываю весь список MyContacts в списке ячеек, показывая как значок изображения (обычно небольшого размера, потому что он должен отображаться в ячейке), так и имя контакта. код будет..

public abstract class MyContactsCell<T> implements Cell<T> {

  private static Template TEMPLATE = GWT.create(Template.class);

  private String styleName;
  public MynaContextBasicCell() {
      styleName = "";
  }

  public interface Template extends SafeHtmlTemplates {
     @SafeHtmlTemplates.Template("<div class=\"{0}\">" +
        "<table>" +
            "<tr>" +
                 "<td ><img style='float: left;' src=\"{1}\"></img></td>   " +
                        "<td >&nbsp;</td> " +
                        "<td ><b>{2}</b></td> " +
                    "</tr>" +
                "</table>"+
                "</div>")
        SafeHtml content(String classes, String contactImagePath,String contactPersonName);

      }

  @Override
  public void render(SafeHtmlBuilder safeHtmlBuilder, final T model) {
    safeHtmlBuilder.append(TEMPLATE.content(styleName, getContactImagePath(model), getContactPersonName(model)));

  }

  public abstract String getContactImagePath(T model);
  public abstract String getContactPersonName(T model);


  @Override
  public boolean canBeSelected(T model) {
    return false;
  }

  public void setStylename(String name) {
    if (name == null) {
      name = "";
    }
    styleName = name;
  }

}

теперь определите подкласс выше

public class MyContactsCellSubType extends MyContactsCell<MyContacts> {


@Override
public String getContactImagePath(MyContacts model) {
    return model.getContactImagePath();
}
@Override
public String getContactPersonName(MyContacts model) {
    return model.getContactPersonName();
}

@Override
public boolean canBeSelected(MyContacts model) {
    return true;
}

}

на ваш взгляд,

MyContactsCellSubType contactsCellSubType = new MyContactsCellSubType();
CellList<MyContacts> contactsCellList = new CellList<MyContacts>(contactsCellSubType);

скажем, «myContactList» — это список MyContacts, который доступен в вашем представлении.

contactsCellList.render(myContactList);

после рендеринга списка в список контактовCellList и на панель прокрутки

   contactsCellList.setRound(true);
    myScrollPanel.setWidget(contactsCellList);
    myScrollPanel.setScrollingEnabledX(false);;
    myScrollPanel.setSize("100%", "100%");

добавьте myScrollPanel на главную панель вашего представления.

person Arun Kumar Mudraboyina    schedule 08.10.2013