package org.bbssh.ui.screens;
import net.rim.device.api.i18n.ResourceBundleFamily;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.component.ObjectListField;
import net.rim.device.api.ui.component.SeparatorField;
import net.rim.device.api.ui.container.MainScreen;
import org.bbssh.i18n.BBSSHResource;
import org.bbssh.net.session.Session;
import org.bbssh.net.session.SshSession;
import org.bbssh.session.RemoteSessionInstance;
import org.bbssh.session.SessionManager;
import org.bbssh.ssh.kex.KexAgreement;
import org.bbssh.util.Logger;
import org.bbssh.util.Tools;
public class SessionDetailScreen extends MainScreen implements BBSSHResource {
ResourceBundleFamily res = ResourceBundleFamily.getBundle(BBSSHResource.BUNDLE_ID, BBSSHResource.BUNDLE_NAME);
Session session;
public SessionDetailScreen() {
super(DEFAULT_CLOSE | DEFAULT_MENU | VERTICAL_SCROLL);
setTitle(res.getString(SESSION_DETAIL_TITLE));
RemoteSessionInstance inst = SessionManager.getInstance().activeSession;
if (inst == null)
return;
session = inst.session;
KexAgreement a = session.getAgreement();
if (a == null) {
add(new LabelField("Connection Security: None"));
} else {
ObjectListField lf = new ObjectListField();
String[] data = Tools.buildConnectionDataString(a);
lf.set(data);
add(lf);
for (int x = 0; x < data.length; x++) {
Logger.debug(" " + data[x]);
}
}
add(new SeparatorField());
StringBuffer bf = new StringBuffer(128);
bf.append("Paint Stats: (FR PR LE LP PBS PC) ")
.append(inst.state.debugFullRefreshCount).append(' ')
.append(inst.state.debugPartialRefreshCount).append(' ')
.append(inst.state.debugLineEvalCount).append(' ')
.append(inst.state.debugLinePaintCount).append(' ')
.append(inst.state.debugPaintBackStoreCount).append(' ')
.append(inst.state.debugPaintCount);
if (session instanceof SshSession) {
SshSession s = (SshSession) session;
add(new LabelField("Packet In/Out: " + s.inputPacketCount+ " / " + s.outputPacketCount));
}
add(new LabelField("Redraw Request Delay Total: " + inst.state.debugRedrawRequestWaitTime));
add(new LabelField("Redraw Exec Delay Total: " + inst.state.debugRedrawStartWaitTime));
add(new LabelField(bf.toString()));
}
}