package org.fnppl.opensdx.keyserverfe.client;
import java.util.Date;
import org.fnppl.opensdx.keyserverfe.shared.KeyInfo;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
public class KeyDetailsPopupPanel extends PopupPanel {
private KeyInfo keyInfo = null;
private FlexTable tab = null;
private DateTimeFormat datetimeformat = DateTimeFormat.getFormat("yyyy-MM-dd HH:mm:ss zzz");
public KeyDetailsPopupPanel() {
super(true);
VerticalPanel panel = new VerticalPanel();
panel.add(new Label("Key Details"));
tab = new FlexTable();
int row = 0;
tab.setHTML(row, 0, "keyid:");
tab.setHTML(row, 1, "");
row++;
tab.setHTML(row, 0, "owner:");
tab.setHTML(row, 1, "");
row++;
tab.setHTML(row, 0, "mnemonic:");
tab.setHTML(row, 1, "");
row++;
tab.setHTML(row, 0, "level:");
tab.setHTML(row, 1, "");
row++;
tab.setHTML(row, 0, "usage:");
tab.setHTML(row, 1, "");
row++;
tab.setHTML(row, 0, "valid from:");
tab.setHTML(row, 1, "");
row++;
tab.setHTML(row, 0, "valid until:");
tab.setHTML(row, 1, "");
row++;
tab.setHTML(row, 0, "status:");
tab.setHTML(row, 1, "");
row++;
tab.setHTML(row, 0, "trusted:");
tab.setHTML(row, 1, "");
panel.add(tab);
setWidget(panel);
}
public void update(KeyInfo keyInfo) {
this.keyInfo = keyInfo;
if (keyInfo == null) {
for (int i=0;i<9;i++) {
tab.setHTML(i, 1, "");
}
} else {
int row = 0;
tab.setHTML(row++, 1, keyInfo.getId());
tab.setHTML(row++, 1, keyInfo.getOwner());
tab.setHTML(row++, 1, keyInfo.getMnemonic());
tab.setHTML(row++, 1, keyInfo.getLevel());
tab.setHTML(row++, 1, keyInfo.getUsage());
tab.setHTML(row++, 1, datetimeformat.format(new Date(keyInfo.getValidFrom())));
tab.setHTML(row++, 1, datetimeformat.format(new Date(keyInfo.getValidUntil())));
tab.setHTML(row++, 1, keyInfo.getStatusText());
String trust = "no";
if (keyInfo.isDirectTrust()) {
trust = "direct";
}
else if (keyInfo.isIndirectTrust()) {
trust = "indirect";
}
tab.setHTML(row++, 1, trust);
}
}
}