package com.tv.ui.metro.model;
import java.io.Serializable;
public class DisplayItem implements Serializable, Comparable<DisplayItem> {
private static final long serialVersionUID = 5L;
public static class UI implements Serializable {
private static final long serialVersionUID = 1L;
public static class Layout implements Serializable {
private static final long serialVersionUID = 1L;
public int x;
public int y;
public int w;
public int h;
public String type; // default U1x1
public static final String U2x1 = "2x1";// 2 W cell, 1 H cell
// public static final String U2x2 = "2x2";//2x2
public static final String U1x1 = "1x1";
public static final String U1x2 = "1x2";
public Layout clone() {
Layout item = new Layout();
item.x = x;
item.y = y;
item.w = w;
item.h = h;
item.type = type;
return item;
}
public String toString() {
return "x: " + x + " y:" + y + " w:" + w + " h:" + h + " type:" + type;
}
}
public static final String METRO_CELL_BANNER = "metro_cell_banner";
public String type;
public Layout layout;
public UI clone() {
UI item = new UI();
item.type = type;
if (layout != null) item.layout = layout.clone();
return item;
}
public String toString() {
return " type:" + type + " layout:" + layout;
}
}
public static class Times implements Serializable {
private static final long serialVersionUID = 1L;
public long updated;
public long created;
public Times clone() {
Times item = new Times();
item.created = created;
item.updated = updated;
return item;
}
}
public static class Target implements Serializable {
private static final long serialVersionUID = 1L;
public String type;
public String param;
public Target clone() {
Target item = new Target();
item.type = type;
item.param = param;
return item;
}
}
public Target target;
public String ns;
public String type;
public String id;
public String name;
public ImageGroup images;
public UI _ui;
public Times times;
public DisplayItem clone() {
DisplayItem item = new DisplayItem();
if (target != null) item.target = target.clone();
item.ns = this.ns;
item.type = this.type;
item.id = this.id;
item.name = this.name;
if (images != null) item.images = this.images.clone();
if (_ui != null) item._ui = this._ui.clone();
if (times != null) item.times = times.clone();
return item;
}
public String toString() {
return " ns:" + ns + " type:" + type + " target=" + target + " id:" + id + " name:" + name + "images:"
+ images + " _ui:" + _ui;
}
@Override
public int compareTo(DisplayItem another) {
if (_ui == null || another._ui == null || _ui.layout == null || another._ui.layout == null) {
return 0;
}
if (_ui.layout.x > another._ui.layout.x) {
return 1;
} else if (_ui.layout.x < another._ui.layout.x) {
return -1;
} else {
return _ui.layout.y - another._ui.layout.y;
}
}
@Override
public boolean equals(Object obj) {
if(obj == null)
return false;
if(obj instanceof DisplayItem){
return ((DisplayItem)obj).id.equals(id);
}
return false;
}
}