📄 dhtview.java
字号:
Messages.setLanguageText(label,"DHTView.transport.packets");
label.setLayoutData(new GridData(SWT.FILL,SWT.TOP,true,false));
label = new Label(gTransport,SWT.NONE);
Messages.setLanguageText(label,"DHTView.transport.bytes");
label.setLayoutData(new GridData(SWT.FILL,SWT.TOP,true,false));
label = new Label(gTransport,SWT.NONE);
Messages.setLanguageText(label,"DHTView.transport.received");
lblReceivedPackets = new Label(gTransport,SWT.NONE);
lblReceivedPackets.setLayoutData(new GridData(SWT.FILL,SWT.TOP,true,false));
lblReceivedBytes = new Label(gTransport,SWT.NONE);
lblReceivedBytes.setLayoutData(new GridData(SWT.FILL,SWT.TOP,true,false));
label = new Label(gTransport,SWT.NONE);
Messages.setLanguageText(label,"DHTView.transport.sent");
lblSentPackets = new Label(gTransport,SWT.NONE);
lblSentPackets.setLayoutData(new GridData(SWT.FILL,SWT.TOP,true,false));
lblSentBytes = new Label(gTransport,SWT.NONE);
lblSentBytes.setLayoutData(new GridData(SWT.FILL,SWT.TOP,true,false));
label = new Label(gTransport,SWT.NONE);
Messages.setLanguageText(label,"DHTView.transport.in");
data = new GridData();
data.horizontalSpan = 3;
label.setLayoutData(data);
in = new Canvas(gTransport,SWT.NONE);
data = new GridData(GridData.FILL_BOTH);
data.horizontalSpan = 3;
in.setLayoutData(data);
inGraph = SpeedGraphic.getInstance();
inGraph.initialize(in);
label = new Label(gTransport,SWT.NONE);
Messages.setLanguageText(label,"DHTView.transport.out");
data = new GridData();
data.horizontalSpan = 3;
label.setLayoutData(data);
out = new Canvas(gTransport,SWT.NONE);
data = new GridData(GridData.FILL_BOTH);
data.horizontalSpan = 3;
out.setLayoutData(data);
outGraph = SpeedGraphic.getInstance();
outGraph.initialize(out);
}
private void initialiseOperationDetailsGroup() {
Group gOperations = new Group(panel,SWT.NONE);
Messages.setLanguageText(gOperations,"DHTView.operations.title");
gOperations.setLayoutData(new GridData(SWT.FILL,SWT.BEGINNING,true,false));
GridLayout layout = new GridLayout();
layout.numColumns = 5;
layout.makeColumnsEqualWidth = true;
gOperations.setLayout(layout);
Label label = new Label(gOperations,SWT.NONE);
label = new Label(gOperations,SWT.NONE);
Messages.setLanguageText(label,"DHTView.operations.sent");
label.setLayoutData(new GridData(SWT.FILL,SWT.TOP,true,false));
label = new Label(gOperations,SWT.NONE);
Messages.setLanguageText(label,"DHTView.operations.ok");
label.setLayoutData(new GridData(SWT.FILL,SWT.TOP,true,false));
label = new Label(gOperations,SWT.NONE);
Messages.setLanguageText(label,"DHTView.operations.failed");
label.setLayoutData(new GridData(SWT.FILL,SWT.TOP,true,false));
label = new Label(gOperations,SWT.NONE);
Messages.setLanguageText(label,"DHTView.operations.received");
label.setLayoutData(new GridData(SWT.FILL,SWT.TOP,true,false));
label = new Label(gOperations,SWT.NONE);
Messages.setLanguageText(label,"DHTView.operations.ping");
for(int i = 0 ; i < 4 ; i++) {
lblPings[i] = new Label(gOperations,SWT.NONE);
lblPings[i].setLayoutData(new GridData(SWT.FILL,SWT.TOP,true,false));
}
label = new Label(gOperations,SWT.NONE);
Messages.setLanguageText(label,"DHTView.operations.findNode");
for(int i = 0 ; i < 4 ; i++) {
lblFindNodes[i] = new Label(gOperations,SWT.NONE);
lblFindNodes[i].setLayoutData(new GridData(SWT.FILL,SWT.TOP,true,false));
}
label = new Label(gOperations,SWT.NONE);
Messages.setLanguageText(label,"DHTView.operations.findValue");
for(int i = 0 ; i < 4 ; i++) {
lblFindValues[i] = new Label(gOperations,SWT.NONE);
lblFindValues[i].setLayoutData(new GridData(SWT.FILL,SWT.TOP,true,false));
}
label = new Label(gOperations,SWT.NONE);
Messages.setLanguageText(label,"DHTView.operations.store");
for(int i = 0 ; i < 4 ; i++) {
lblStores[i] = new Label(gOperations,SWT.NONE);
lblStores[i].setLayoutData(new GridData(SWT.FILL,SWT.TOP,true,false));
}
label = new Label(gOperations,SWT.NONE);
Messages.setLanguageText(label,"DHTView.operations.data");
for(int i = 0 ; i < 4 ; i++) {
lblData[i] = new Label(gOperations,SWT.NONE);
lblData[i].setLayoutData(new GridData(SWT.FILL,SWT.TOP,true,false));
}
}
private void initialiseActivityGroup() {
Group gActivity = new Group(panel,SWT.NONE);
Messages.setLanguageText(gActivity,"DHTView.activity.title");
gActivity.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
gActivity.setLayout(new GridLayout());
activityTable = new Table(gActivity,SWT.VIRTUAL | SWT.BORDER | SWT.FULL_SELECTION | SWT.SINGLE);
activityTable.setLayoutData(new GridData(GridData.FILL_BOTH));
final TableColumn colStatus = new TableColumn(activityTable,SWT.LEFT);
Messages.setLanguageText(colStatus,"DHTView.activity.status");
colStatus.setWidth(80);
final TableColumn colType = new TableColumn(activityTable,SWT.LEFT);
Messages.setLanguageText(colType,"DHTView.activity.type");
colType.setWidth(80);
final TableColumn colName = new TableColumn(activityTable,SWT.LEFT);
Messages.setLanguageText(colName,"DHTView.activity.target");
colName.setWidth(80);
final TableColumn colDetails = new TableColumn(activityTable,SWT.LEFT);
Messages.setLanguageText(colDetails,"DHTView.activity.details");
colDetails.setWidth(300);
colDetails.setResizable(false);
activityTable.setHeaderVisible(true);
Listener computeLastRowWidthListener = new Listener() {
public void handleEvent(Event event) {
if(activityTable == null || activityTable.isDisposed()) return;
int totalWidth = activityTable.getClientArea().width;
int remainingWidth = totalWidth
- colStatus.getWidth()
- colType.getWidth()
- colName.getWidth();
if(remainingWidth > 0)
colDetails.setWidth(remainingWidth);
}
};
activityTable.addListener(SWT.Resize, computeLastRowWidthListener);
colStatus.addListener(SWT.Resize,computeLastRowWidthListener);
colType.addListener(SWT.Resize,computeLastRowWidthListener);
colName.addListener(SWT.Resize,computeLastRowWidthListener);
activityTable.addListener(SWT.SetData, new Listener() {
public void handleEvent(Event event) {
TableItem item = (TableItem) event.item;
int index = activityTable.indexOf (item);
item.setText (0,MessageText.getString("DHTView.activity.status." + activities[index].isQueued()));
item.setText (1,MessageText.getString("DHTView.activity.type." + activities[index].getType()));
item.setText (2,ByteFormatter.nicePrint(activities[index].getTarget()));
item.setText (3,activities[index].getDescription());
}
});
}
public void delete() {
Utils.disposeComposite(panel);
if (dht != null) {
dht.getControl().removeListener(controlListener);
}
outGraph.dispose();
inGraph.dispose();
}
public String getFullTitle() {
return dht_type == DHT_TYPE_MAIN ? MessageText.getString("DHTView.title.full") : MessageText.getString("DHTView.title.fullcvs");
}
public Composite getComposite() {
return panel;
}
public void refresh() {
if(dht == null) {
init();
return;
}
inGraph.refresh();
outGraph.refresh();
refreshGeneral();
refreshDB();
refreshTransportDetails();
refreshOperationDetails();
refreshActivity();
}
private void refreshGeneral() {
DHTControlStats controlStats = dht.getControl().getStats();
DHTRouterStats routerStats = dht.getRouter().getStats();
lblUpTime.setText(TimeFormatter.format(controlStats.getRouterUptime() / 1000));
lblNumberOfUsers.setText("" + controlStats.getEstimatedDHTSize());
lblReachable.setText(dht.getTransport().isReachable()?yes_str:no_str);
lblRendezvous.setText(dht.getTransport().isReachable()?"":(dht.getNATPuncher().operational()?yes_str:no_str));
long[] stats = routerStats.getStats();
lblNodes.setText("" + stats[DHTRouterStats.ST_NODES]);
lblLeaves.setText("" + stats[DHTRouterStats.ST_LEAVES]);
lblContacts.setText("" + stats[DHTRouterStats.ST_CONTACTS]);
lblReplacements.setText("" + stats[DHTRouterStats.ST_REPLACEMENTS]);
lblLive.setText("" + stats[DHTRouterStats.ST_CONTACTS_LIVE]);
lblUnknown.setText("" + stats[DHTRouterStats.ST_CONTACTS_UNKNOWN]);
lblDying.setText("" + stats[DHTRouterStats.ST_CONTACTS_DEAD]);
}
private int refreshIter = 0;
private void refreshDB() {
if(refreshIter == 0) {
DHTDBStats dbStats = dht.getDataBase().getStats();
lblKeys.setText("" + dbStats.getKeyCount());
int[] stats = dbStats.getValueDetails();
lblValues.setText("" + stats[DHTDBStats.VD_VALUE_COUNT]);
lblDirect.setText("" + stats[DHTDBStats.VD_DIRECT_SIZE]);
lblIndirect.setText("" + stats[DHTDBStats.VD_INDIRECT_SIZE]);
lblLocal.setText("" + stats[DHTDBStats.VD_LOCAL_SIZE]);
lblDivFreq.setText("" + stats[DHTDBStats.VD_DIV_FREQ]);
lblDivSize.setText("" + stats[DHTDBStats.VD_DIV_SIZE]);
} else {
refreshIter++;
if(refreshIter == 100) refreshIter = 0;
}
}
private void refreshTransportDetails() {
DHTTransportStats transportStats = dht.getTransport().getStats();
lblReceivedBytes.setText(DisplayFormatters.formatByteCountToKiBEtc(transportStats.getBytesReceived()));
lblSentBytes.setText(DisplayFormatters.formatByteCountToKiBEtc(transportStats.getBytesSent()));
lblReceivedPackets.setText("" + transportStats.getPacketsReceived());
lblSentPackets.setText("" + transportStats.getPacketsSent());
}
private void refreshOperationDetails() {
DHTTransportStats transportStats = dht.getTransport().getStats();
long[] pings = transportStats.getPings();
for(int i = 0 ; i < 4 ; i++) {
lblPings[i].setText("" + pings[i]);
}
long[] findNodes = transportStats.getFindNodes();
for(int i = 0 ; i < 4 ; i++) {
lblFindNodes[i].setText("" + findNodes[i]);
}
long[] findValues = transportStats.getFindValues();
for(int i = 0 ; i < 4 ; i++) {
lblFindValues[i].setText("" + findValues[i]);
}
long[] stores = transportStats.getStores();
for(int i = 0 ; i < 4 ; i++) {
lblStores[i].setText("" + stores[i]);
}
long[] data = transportStats.getData();
for(int i = 0 ; i < 4 ; i++) {
lblData[i].setText("" + data[i]);
}
}
private void refreshActivity() {
if(activityChanged) {
activityChanged = false;
activities = dht.getControl().getActivities();
activityTable.setItemCount(activities.length);
activityTable.clearAll();
//Dunno if still needed?
activityTable.redraw();
}
}
public void periodicUpdate() {
if(dht == null) return;
DHTTransportFullStats fullStats = dht.getTransport().getLocalContact().getStats();
inGraph.addIntValue((int)fullStats.getAverageBytesReceived());
outGraph.addIntValue((int)fullStats.getAverageBytesSent());
}
public String getData() {
return dht_type == DHT_TYPE_MAIN ? "DHTView.title.full" :"DHTView.title.fullcvs";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -