Skip to content

Commit

Permalink
For #85 - use template for list items rendering
Browse files Browse the repository at this point in the history
  • Loading branch information
vitalidze committed May 25, 2015
1 parent 3bba076 commit 6a171a1
Showing 1 changed file with 17 additions and 13 deletions.
30 changes: 17 additions & 13 deletions src/main/java/org/traccar/web/client/view/DeviceMarkersDialog.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import com.google.gwt.user.client.ui.Widget;
import com.sencha.gxt.cell.core.client.SimpleSafeHtmlCell;
import com.sencha.gxt.core.client.IdentityValueProvider;
import com.sencha.gxt.core.client.XTemplates;
import com.sencha.gxt.core.client.resources.CommonStyles;
import com.sencha.gxt.core.client.util.Margins;
import com.sencha.gxt.data.client.loader.RpcProxy;
Expand Down Expand Up @@ -81,6 +82,17 @@ interface Style extends CssResource {
String select();
}

interface MarkerListItemTemplate extends XTemplates {
@XTemplates.XTemplate("<div class='{style.thumbWrap}' style='border: 1px solid white'>{content}</div>")
SafeHtml renderListItem(Style style, SafeHtml content);

@XTemplates.XTemplate("<div class='{styles.clear}'></div>'")
SafeHtml renderEndListItem(CommonStyles.Styles styles);

@XTemplates.XTemplate("<div class='{style.thumb}' style='background: url(\"{marker.offlineURL}\") no-repeat center center;'></div>")
SafeHtml listCell(Style style, Marker marker);
}

public interface DeviceMarkerHandler {
void onSave(DeviceIconType icon);
}
Expand Down Expand Up @@ -265,18 +277,17 @@ public String getKey(Marker item) {

final Style style = resources.css();

final MarkerListItemTemplate renderer = GWT.create(MarkerListItemTemplate.class);

ListViewCustomAppearance<Marker> appearance = new ListViewCustomAppearance<Marker>("." + style.thumbWrap(), style.over(), style.select()) {
@Override
public void renderEnd(SafeHtmlBuilder builder) {
String markup = new StringBuilder("<div class=\"").append(CommonStyles.get().clear()).append("\"></div>").toString();
builder.appendHtmlConstant(markup);
renderer.renderEndListItem(CommonStyles.get());
}

@Override
public void renderItem(SafeHtmlBuilder builder, SafeHtml content) {
builder.appendHtmlConstant("<div class='" + style.thumbWrap() + "' style='border: 1px solid white'>");
builder.append(content);
builder.appendHtmlConstant("</div>");
builder.append(renderer.renderListItem(style, content));
}
};

Expand All @@ -293,14 +304,7 @@ public void setValue(Marker object, Marker value) {
view.setCell(new SimpleSafeHtmlCell<Marker>(new AbstractSafeHtmlRenderer<Marker>() {
@Override
public SafeHtml render(Marker object) {
SafeHtmlBuilder builder = new SafeHtmlBuilder();
return builder
.appendHtmlConstant("<div class=\"")
.appendHtmlConstant(style.thumb())
.appendHtmlConstant("\" style=\"background: url(")
.appendHtmlConstant(object.getOfflineURL())
.appendHtmlConstant(") no-repeat center center;\"></div>")
.toSafeHtml();
return renderer.listCell(style, object);
}
}));

Expand Down

0 comments on commit 6a171a1

Please sign in to comment.