package edu.washington.cs.oneswarm.ui.gwt.client.newui.debug;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.TextArea;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import edu.washington.cs.oneswarm.ui.gwt.client.OneSwarmDialogBox;
import edu.washington.cs.oneswarm.ui.gwt.client.OneSwarmRPCClient;
public class DebugDialog extends OneSwarmDialogBox {
public DebugDialog() {
super(false, true, true);
this.setText("Debug");
VerticalPanel vp = new VerticalPanel();
FlowPanel buttons = new FlowPanel();
final TextArea ta = new TextArea();
ta.setStyleName("os-connectionLog");
ta.setReadOnly(true);
ta.getElement().setAttribute("WRAP", "OFF");
ta.setVisibleLines(35);
vp.setHeight("100%");
vp.setWidth("100%");
buttons.setWidth("700px");
ClickListener cl = new ClickListener() {
@Override
public void onClick(Widget sender) {
System.out.println("click: " + ((Button) sender).getText());
OneSwarmRPCClient.getService().debug(OneSwarmRPCClient.getSessionID(),
((Button) sender).getText(), new AsyncCallback<String>() {
@Override
public void onFailure(Throwable caught) {
caught.printStackTrace();
}
@Override
public void onSuccess(String result) {
System.out.println("debug: " + result);
if (result != null) {
ta.setText(result);
} else {
ta.setText("no result (check server side stdout)");
}
}
});
}
};
ClickListener cl_param = new ClickListener() {
@Override
public void onClick(Widget sender) {
System.out.println("click: " + ((Button) sender).getText());
String param = Window.prompt("param?:", "");
OneSwarmRPCClient.getService().debug(OneSwarmRPCClient.getSessionID(),
((Button) sender).getText() + " " + param, new AsyncCallback<String>() {
@Override
public void onFailure(Throwable caught) {
caught.printStackTrace();
}
@Override
public void onSuccess(String result) {
System.out.println("debug: " + result);
if (result != null) {
ta.setText(result);
} else {
ta.setText("no result (check server side stdout)");
}
}
});
}
};
// new Button("remove all largest-file-audio swarms")
Button[] buttonarr = new Button[] { new Button("friend ids"), new Button("friend logs"),
new Button("DL managers"), new Button("friend files"), new Button("dht"),
new Button("check_async_output"), new Button("reshare unseen with all friends"),
new Button("f2f debug"), new Button("dump-messages"),
new Button("disconnect all friends"), new Button("force connect to all friends"),
new Button("id3"), new Button("bind_audio"), new Button("autotag_music"),
new Button("Remote Access"), new Button("refresh_community_servers"),
new Button("ffmpeg"), new Button("searches"), new Button("locks"),
new Button("queue lengths"), new Button("rpc profiling"),
new Button("backendtask"), new Button("error_dlog"), new Button("threads"),
new Button("reload_logging"), new Button("reshare_with_all_friends"),
new Button("republish_location") };
for (Button b : buttonarr) {
b.addClickListener(cl);
buttons.add(b);
// b.setWidth("100%");
}
Button[] paramButtons = new Button[] { new Button("dht_lookup"), new Button("dht_put") };
for (Button b : paramButtons) {
b.addClickListener(cl_param);
buttons.add(b);
// b.setWidth("100%");
}
vp.add(buttons);
ta.setWidth("98%");
vp.add(ta);
this.setWidget(vp);
this.setWidth("800px");
// this.setHeight("800px");
}
}