📄 p2pdashboard.java
字号:
peerCheckBox.setText("Groups ");
peerCheckBox.setToolTipText("Display groups peer is in.");
contentPane.add(peerCheckBox);
peerCheckBox.setBounds(386 + insets.left, 280 + insets.top, 60, 20);
peerRemoveButton.setText("Remove ");
peerRemoveButton.setToolTipText("Remove a peer");
contentPane.add(peerRemoveButton);
peerRemoveButton.setBounds(450 + insets.left, 280 + insets.top, 90, 20);
peerLocalRadioButton.setSelected(true);
peerLocalRadioButton.setText("Local ");
peerLocalRadioButton.setToolTipText("Search for local peers");
contentPane.add(peerLocalRadioButton);
peerLocalRadioButton.setBounds(290 + insets.left, 310 + insets.top, 60,
20);
peerRemoteRadioButton.setText("Remote ");
peerRemoteRadioButton.setToolTipText("Search for remote peers");
contentPane.add(peerRemoteRadioButton);
peerRemoteRadioButton.setBounds(370 + insets.left, 310 + insets.top, 70,
20);
peerDiscoveryButtonGroup.add(peerLocalRadioButton);
peerDiscoveryButtonGroup.add(peerRemoteRadioButton);
peerDiscoveryButton.setText("Discover");
peerDiscoveryButton.setToolTipText("Find peers");
contentPane.add(peerDiscoveryButton);
peerDiscoveryButton.setBounds(450 + insets.left, 310 + insets.top, 90,
20);
pack();
setTitle("P2P Dashboard ");
setSize(558, 365);
setResizable(false);
//JFrame event
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
exitForm(evt);
}
});
}
/*
P2PDashboard uses this to handle GUI object events.
*/
private void configureGroupEvents() {
//group JList event
groupList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
groupList.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting()) {
return;
}
JList list = (JList) e.getSource();
//whenever a group is selected,
//retrieve its corresponding peer list and
//display it.
if (list.isSelectionEmpty() == false) {
String group = (String) list.getSelectedValue();
SortedListModel peers = (SortedListModel) groupHT.get(group);
peerList.setModel(peers);
}
}
});
//group Add JButton event
groupAddButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String group = groupAddTextField.getText();
SortedListModel list = null;
if (checkAddRules(group) == false) {
return;
}
list = (SortedListModel) groupList.getModel();
//ensure new group does not already exist
if (list.contains(group) == false) {
list.addElement(group);
addGroup(group);
SortedListModel slm = new SortedListModel();
groupHT.put(group, slm);
groupList.setModel(list);
groupList.setSelectedValue(group, true);
peerList.clearSelection();
} else {
handleError("Group `" + group + "` already in use.",
"Invalid group name", null, false);
}
groupAddTextField.setText("");
}
});
//peer Flush JButton event
groupFlushButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//remove all groups except the netPeerGroup
SortedListModel list = (SortedListModel) groupList.getModel();
Enumeration enum = list.elements();
String group = null;
while (enum.hasMoreElements()) {
group = (String) enum.nextElement();
if (group.equals(defaultGroupName) == false) {
list.removeElement(group);
groupHT.remove(group);
}
}
groupList.setModel(list);
groupList.setSelectedValue(defaultGroupName, true);
peerList.clearSelection();
//flush actual local group advertisements
groupDiscovery.flushGroupInfo();
}
});
//group Remove JButton event
groupRemoveButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String group = (String) groupList.getSelectedValue();
if ((group == null) || (group.equals("") == true) ||
group.equals(defaultGroupName)) {
return;
}
SortedListModel list = (SortedListModel) groupList.getModel();
list.removeElement(group);
groupList.setModel(list);
groupList.setSelectedValue(defaultGroupName, true);
peerList.clearSelection();
removeAdvertisement(group, false);
}
});
//group Discovery JButton event
groupDiscoveryButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//initiate local group discovery
if (groupLocalRadioButton.isSelected()) {
groupDiscovery.setLocalDiscovery(true);
groupDiscovery.run();
}
//initiate remote group discovery
else if (groupRemoteRadioButton.isSelected()) {
groupDiscovery.setLocalDiscovery(false);
groupDiscovery.run();
}
}
});
}
/*
P2PDashboard uses this to handle peer GUI object events.
*/
private void configurePeerEvents() {
//peer JList event
peerList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
peerList.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
JList list = (JList) e.getSource();
String selectedPeer = (String) list.getSelectedValue();
if (e.getValueIsAdjusting() || (displayPeerGroups == false)) {
return;
}
//whenever a peer is selected,
//retrieve its corresponding group list and
//display it.
if (list.isSelectionEmpty() == false) {
SortedListModel peerInGroup = new SortedListModel();
SortedListModel peers = null;
String group = null;
Enumeration keys = groupHT.keys();
while (keys.hasMoreElements()) {
group = (String) keys.nextElement();
peers = (SortedListModel) groupHT.get(group);
if (peers.contains(selectedPeer) == true) {
peerInGroup.addElement(group);
}
}
groupList.setModel(peerInGroup);
groupList.clearSelection();
}
}
});
//peer Add JButton event
peerAddButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String peer = peerAddTextField.getText();
String group = (String) groupList.getSelectedValue();
//allow defaultPeerName to be added to new groups
if ((peer != null) && !peer.equals("") && (group != null) &&
!group.equals("") &&
peer.equals(defaultPeerName) &&
!group.equals(defaultGroupName)) {
System.out.println("Adding " + peer + " to group
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -