package com.iambookmaster.client.iphone.urq;
import java.util.HashMap;
import java.util.Map.Entry;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HTMLTable.CellFormatter;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.Label;
import com.iambookmaster.client.iphone.IPhoneCanvas;
import com.iambookmaster.client.iphone.IPhoneViewListenerAdapter;
import com.iambookmaster.client.iphone.common.IPhoneButton;
import com.iambookmaster.client.iphone.common.IPhoneFlatButton;
import com.iambookmaster.client.iurq.Core;
import com.iambookmaster.client.iurq.logic.InvVar;
public class IPhoneURQInventory extends IPhoneViewListenerAdapter {
private IPhoneURQInventoryListener listener;
private IPhoneCanvas canvas;
private Core core;
private ClickHandler inventoryHandler;
private ClickHandler backHandler;
public IPhoneURQInventory(IPhoneURQInventoryListener lst) {
listener = lst;
inventoryHandler = new ClickHandler() {
public void onClick(ClickEvent event) {
listener.useInventory();
}
};
backHandler = new ClickHandler() {
public void onClick(ClickEvent event) {
listener.back();
}
};
}
public void show(IPhoneCanvas canvas,Core core) {
this.canvas = canvas;
this.core = core;
canvas.setListener(this);
redraw(canvas);
}
public void redraw(IPhoneCanvas canvas) {
canvas.clear();
HashMap<String,InvVar> inv = core.getInvent();
Grid grid = new Grid(inv.size()+1,2);
grid.setWidth("100%");
CellFormatter formatter = grid.getCellFormatter();
IPhoneFlatButton button = new IPhoneFlatButton(core.getInventoryName());
canvas.addClickHandler(button, inventoryHandler);
grid.setWidget(0, 0, button);
formatter.setHorizontalAlignment(0, 0, HasHorizontalAlignment.ALIGN_CENTER);
grid.getCellFormatter().setWidth(0, 0, "99%");
int row=1;
for (Entry<String,InvVar> entry : inv.entrySet()) {
ClickHandler handler = new InventoryClickHandler(entry.getKey(),entry.getValue());
button = new IPhoneFlatButton(entry.getKey());
grid.setWidget(row, 0, button);
canvas.addClickHandler(button, handler);
formatter.setHorizontalAlignment(row, 0, HasHorizontalAlignment.ALIGN_LEFT);
InvVar var = entry.getValue();
String text;
if (var.getType()==InvVar.FLOAT) {
if (var.getFloat()==1.0) {
text = "";
} else {
text = String.valueOf(var.getFloat());
}
} else if (var.getType()==InvVar.STRING) {
text = var.getString();
} else if (var.getInt()>1) {
text= String.valueOf(var.getInt());
} else {
text = "";
}
grid.setWidget(row, 1, new Label(text,false));
formatter.setHorizontalAlignment(row, 1, HasHorizontalAlignment.ALIGN_CENTER);
row++;
}
canvas.add(grid);
IPhoneButton iPhoneButton = new IPhoneButton("Назад");
canvas.addClickHandler(iPhoneButton, backHandler);
canvas.add(iPhoneButton);
canvas.done();
}
public void back() {
listener.back();
}
public void forward() {
listener.forward();
}
public void drawn() {
}
public class InventoryClickHandler implements ClickHandler {
private String name;
private InvVar var;
public InventoryClickHandler(String name, InvVar var) {
this.name = name;
this.var = var;
}
public void onClick(ClickEvent event) {
listener.useInventory(name,var);
}
}
}