import javax.swing.border.EtchedBorder;
import net.pterodactylus.jsite.core.Node;
+import net.pterodactylus.jsite.i18n.I18n;
import net.pterodactylus.jsite.i18n.I18nable;
import net.pterodactylus.jsite.i18n.gui.I18nLabel;
* A node label is a small component that sits in the status bar, displays the
* current status of a node and offers a context menu to connect and disconnect
* from the node.
- *
+ *
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
*/
public class NodeLabel extends JLabel implements PropertyChangeListener, MouseListener, I18nable {
/**
* Creates a new node label.
- *
+ *
* @param swingInterface
* The Swing interface
* @param node
this.offlineIcon = offlineIcon;
this.errorIcon = errorIcon;
initComponents();
+ node.addPropertyChangeListener(this);
}
//
setIcon(offlineIcon);
contextMenu = new JPopupMenu();
menuLabel = new I18nLabel("mainWindow.statusBar.nodeLabel", node.getName());
- JPanel menuPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));
+ JPanel menuPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 6, 0));
menuPanel.add(menuLabel);
contextMenu.add(menuPanel);
contextMenu.addSeparator();
contextMenu.add(swingInterface.getNodeConnectAction(node));
contextMenu.add(swingInterface.getNodeDisconnectAction(node));
+ contextMenu.addSeparator();
+ contextMenu.add(swingInterface.getNodeEditAction(node));
+ contextMenu.add(swingInterface.getNodeDeleteAction(node));
addMouseListener(this);
}
/**
* Checks whether the given mouse event is a trigger for popup menues and
* shows the popup menu if it is.
- *
+ *
* @param mouseEvent
* The mouse event to check for being a popup trigger
*/
if (propertyChangeEvent.getSource() != node) {
return;
}
- if (propertyChangeEvent.getPropagationId().equals(Node.PROPERTY_NAME)) {
+ if (propertyChangeEvent.getPropertyName().equals(Node.PROPERTY_NAME)) {
setText(node.getName());
- menuLabel.updateI18n();
+ /* TODO - find way to get around this hack */
+ menuLabel.setText(I18n.get("mainWindow.statusBar.nodeLabel.name", node.getName()));
}
}