📄 dhtview.java
字号:
GridLayout layout = new GridLayout();
layout.numColumns = 5;
layout.makeColumnsEqualWidth = true;
gOperations.setLayout(layout);
Label label = new Label(gOperations, 0);
label = new Label(gOperations, 0);
Messages.setLanguageText(label, "DHTView.operations.sent");
label.setLayoutData(new GridData(4, 128, true, false));
label = new Label(gOperations, 0);
Messages.setLanguageText(label, "DHTView.operations.ok");
label.setLayoutData(new GridData(4, 128, true, false));
label = new Label(gOperations, 0);
Messages.setLanguageText(label, "DHTView.operations.failed");
label.setLayoutData(new GridData(4, 128, true, false));
label = new Label(gOperations, 0);
Messages.setLanguageText(label, "DHTView.operations.received");
label.setLayoutData(new GridData(4, 128, true, false));
label = new Label(gOperations, 0);
Messages.setLanguageText(label, "DHTView.operations.ping");
for (int i = 0; i < 4; i++)
{
lblPings[i] = new Label(gOperations, 0);
lblPings[i].setLayoutData(new GridData(4, 128, true, false));
}
label = new Label(gOperations, 0);
Messages.setLanguageText(label, "DHTView.operations.findNode");
for (int i = 0; i < 4; i++)
{
lblFindNodes[i] = new Label(gOperations, 0);
lblFindNodes[i].setLayoutData(new GridData(4, 128, true, false));
}
label = new Label(gOperations, 0);
Messages.setLanguageText(label, "DHTView.operations.findValue");
for (int i = 0; i < 4; i++)
{
lblFindValues[i] = new Label(gOperations, 0);
lblFindValues[i].setLayoutData(new GridData(4, 128, true, false));
}
label = new Label(gOperations, 0);
Messages.setLanguageText(label, "DHTView.operations.store");
for (int i = 0; i < 4; i++)
{
lblStores[i] = new Label(gOperations, 0);
lblStores[i].setLayoutData(new GridData(4, 128, true, false));
}
label = new Label(gOperations, 0);
Messages.setLanguageText(label, "DHTView.operations.data");
for (int i = 0; i < 4; i++)
{
lblData[i] = new Label(gOperations, 0);
lblData[i].setLayoutData(new GridData(4, 128, true, false));
}
}
private void initialiseActivityGroup()
{
Group gActivity = new Group(panel, 0);
Messages.setLanguageText(gActivity, "DHTView.activity.title");
gActivity.setLayoutData(new GridData(4, 4, true, true));
gActivity.setLayout(new GridLayout());
activityTable = new Table(gActivity, 0x10010804);
activityTable.setLayoutData(new GridData(1808));
final TableColumn colStatus = new TableColumn(activityTable, 16384);
Messages.setLanguageText(colStatus, "DHTView.activity.status");
colStatus.setWidth(80);
final TableColumn colType = new TableColumn(activityTable, 16384);
Messages.setLanguageText(colType, "DHTView.activity.type");
colType.setWidth(80);
final TableColumn colName = new TableColumn(activityTable, 16384);
Messages.setLanguageText(colName, "DHTView.activity.target");
colName.setWidth(80);
final TableColumn colDetails = new TableColumn(activityTable, 16384);
Messages.setLanguageText(colDetails, "DHTView.activity.details");
colDetails.setWidth(300);
colDetails.setResizable(false);
activityTable.setHeaderVisible(true);
Listener computeLastRowWidthListener = new Listener() {
boolean inUse;
final TableColumn val$colStatus;
final TableColumn val$colType;
final TableColumn val$colName;
final TableColumn val$colDetails;
final DHTView this$0;
public void handleEvent(Event event)
{
if (inUse)
return;
inUse = true;
if (activityTable == null || activityTable.isDisposed())
{
inUse = false;
return;
}
int totalWidth = activityTable.getClientArea().width;
int remainingWidth = totalWidth - colStatus.getWidth() - colType.getWidth() - colName.getWidth();
if (remainingWidth > 0)
colDetails.setWidth(remainingWidth);
inUse = false;
break MISSING_BLOCK_LABEL_112;
Exception exception;
exception;
inUse = false;
throw exception;
}
{
this$0 = DHTView.this;
colStatus = tablecolumn;
colType = tablecolumn1;
colName = tablecolumn2;
colDetails = tablecolumn3;
super();
inUse = false;
}
};
activityTable.addListener(11, computeLastRowWidthListener);
colStatus.addListener(11, computeLastRowWidthListener);
colType.addListener(11, computeLastRowWidthListener);
colName.addListener(11, computeLastRowWidthListener);
activityTable.addListener(36, new Listener() {
final DHTView this$0;
public void handleEvent(Event event)
{
TableItem item = (TableItem)event.item;
int index = activityTable.indexOf(item);
item.setText(0, MessageText.getString((new StringBuilder()).append("DHTView.activity.status.").append(activities[index].isQueued()).toString()));
item.setText(1, MessageText.getString((new StringBuilder()).append("DHTView.activity.type.").append(activities[index].getType()).toString()));
item.setText(2, ByteFormatter.nicePrint(activities[index].getTarget()));
item.setText(3, activities[index].getDescription());
}
{
this$0 = DHTView.this;
super();
}
});
}
public void delete()
{
Utils.disposeComposite(panel);
if (dht != null)
dht.getControl().removeListener(controlListener);
outGraph.dispose();
inGraph.dispose();
}
public String getFullTitle()
{
if (dht_type == 0)
return "DHTView.title.full";
if (dht_type == 1)
return "DHTView.title.fullcvs";
else
return "DHTView.title.full_v6";
}
public Composite getComposite()
{
return panel;
}
public void refresh()
{
if (dht == null)
{
init();
return;
} else
{
inGraph.refresh();
outGraph.refresh();
refreshGeneral();
refreshDB();
refreshTransportDetails();
refreshOperationDetails();
refreshActivity();
return;
}
}
private void refreshGeneral()
{
DHTControlStats controlStats = dht.getControl().getStats();
DHTRouterStats routerStats = dht.getRouter().getStats();
DHTTransport transport = dht.getTransport();
DHTTransportStats transportStats = transport.getStats();
lblUpTime.setText(TimeFormatter.format(controlStats.getRouterUptime() / 1000L));
lblNumberOfUsers.setText((new StringBuilder()).append("").append(controlStats.getEstimatedDHTSize()).toString());
int percent = transportStats.getRouteablePercentage();
lblReachable.setText((new StringBuilder()).append(transport.isReachable() ? yes_str : no_str).append(percent != -1 ? (new StringBuilder()).append(" ").append(percent).append("%").toString() : "").toString());
DHTNATPuncher puncher = dht.getNATPuncher();
String puncher_str;
if (puncher == null)
puncher_str = "";
else
puncher_str = puncher.operational() ? yes_str : no_str;
lblRendezvous.setText(transport.isReachable() ? "" : puncher_str);
long stats[] = routerStats.getStats();
lblNodes.setText((new StringBuilder()).append("").append(stats[0]).toString());
lblLeaves.setText((new StringBuilder()).append("").append(stats[1]).toString());
lblContacts.setText((new StringBuilder()).append("").append(stats[2]).toString());
lblReplacements.setText((new StringBuilder()).append("").append(stats[3]).toString());
lblLive.setText((new StringBuilder()).append("").append(stats[4]).toString());
lblUnknown.setText((new StringBuilder()).append("").append(stats[5]).toString());
lblDying.setText((new StringBuilder()).append("").append(stats[6]).toString());
long skew_average = transportStats.getSkewAverage();
lblSkew.setText(skew_average != 0L ? (new StringBuilder()).append(skew_average >= 0L ? "" : "-").append(TimeFormatter.format100ths(Math.abs(skew_average))).toString() : "");
}
private void refreshDB()
{
if (refreshIter == 0)
{
DHTDBStats dbStats = dht.getDataBase().getStats();
lblKeys.setText((new StringBuilder()).append("").append(dbStats.getKeyCount()).append(" (").append(dbStats.getLocalKeyCount()).append(")").toString());
int stats[] = dbStats.getValueDetails();
lblValues.setText((new StringBuilder()).append("").append(stats[0]).toString());
lblSize.setText(DisplayFormatters.formatByteCountToKiBEtc(dbStats.getSize()));
lblDirect.setText(DisplayFormatters.formatByteCountToKiBEtc(stats[2]));
lblIndirect.setText(DisplayFormatters.formatByteCountToKiBEtc(stats[3]));
lblLocal.setText(DisplayFormatters.formatByteCountToKiBEtc(stats[1]));
DHTStorageAdapter sa = dht.getStorageAdapter();
String rem_freq;
String rem_size;
if (sa == null)
{
rem_freq = "?";
rem_size = "?";
} else
{
rem_freq = (new StringBuilder()).append("").append(sa.getRemoteFreqDivCount()).toString();
rem_size = (new StringBuilder()).append("").append(sa.getRemoteSizeDivCount()).toString();
}
lblDivFreq.setText((new StringBuilder()).append("").append(stats[4]).append(" (").append(rem_freq).append(")").toString());
lblDivSize.setText((new StringBuilder()).append("").append(stats[5]).append(" (").append(rem_size).append(")").toString());
} 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((new StringBuilder()).append("").append(transportStats.getPacketsReceived()).toString());
lblSentPackets.setText((new StringBuilder()).append("").append(transportStats.getPacketsSent()).toString());
}
private void refreshOperationDetails()
{
DHTTransportStats transportStats = dht.getTransport().getStats();
long pings[] = transportStats.getPings();
for (int i = 0; i < 4; i++)
lblPings[i].setText((new StringBuilder()).append("").append(pings[i]).toString());
long findNodes[] = transportStats.getFindNodes();
for (int i = 0; i < 4; i++)
lblFindNodes[i].setText((new StringBuilder()).append("").append(findNodes[i]).toString());
long findValues[] = transportStats.getFindValues();
for (int i = 0; i < 4; i++)
lblFindValues[i].setText((new StringBuilder()).append("").append(findValues[i]).toString());
long stores[] = transportStats.getStores();
for (int i = 0; i < 4; i++)
lblStores[i].setText((new StringBuilder()).append("").append(stores[i]).toString());
long data[] = transportStats.getData();
for (int i = 0; i < 4; i++)
lblData[i].setText((new StringBuilder()).append("").append(data[i]).toString());
}
private void refreshActivity()
{
if (activityChanged)
{
activityChanged = false;
activities = dht.getControl().getActivities();
activityTable.setItemCount(activities.length);
activityTable.clearAll();
activityTable.redraw();
}
}
public void periodicUpdate()
{
if (dht == null)
{
return;
} else
{
DHTTransportFullStats fullStats = dht.getTransport().getLocalContact().getStats();
inGraph.addIntValue((int)fullStats.getAverageBytesReceived());
outGraph.addIntValue((int)fullStats.getAverageBytesSent());
return;
}
}
public String getData()
{
return getFullTitle();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -