public JPopupMenu createMenu( JPopupMenu popupMenu, TableLine[] lines, boolean markAsSpam, boolean markAsNot, ResultPanel resultPanel) { JPopupMenu menu = new JPopupMenu(); List<JLabel> labels = new ArrayList<JLabel>(5); for (TableLine line : lines) { SharedSearchResult result = (SharedSearchResult) line.getSearchResult(); JLabel label = new JLabel(I18n.tr("Path") + ": " + result.getFileDesc().getPath()); menu.insert(label, labels.size()); labels.add(label); if (labels.size() == 5 && lines.length > labels.size()) { int numberOfMore = lines.length - labels.size(); label = new JLabel(I18n.trn("... {0} more.", "... {0} more.", numberOfMore, numberOfMore)); menu.insert(label, labels.size()); labels.add(label); break; } } menu.addSeparator(); // TODO: fix this hidden coupling, SharedSearchResult needs to be tied MyFilesResultPanel // explicitly JMenuItem menuItem = new JMenuItem(((MySharedFilesResultPanel) resultPanel).getUnshareAction(lines.length)); menu.add(menuItem); // configure label to have the same borders and margins as a menu item Insets margin = menuItem.getMargin(); Insets border = menuItem.getInsets(); for (JLabel label : labels) { label.setBorder( BorderFactory.createEmptyBorder( border.top, margin.left + border.left, border.bottom, margin.right + border.right)); label.setIconTextGap(menuItem.getIconTextGap()); // if icon is null, icon text gap value is ignored label.setIcon(new GUIUtils.EmptyIcon("empty", 0, 0)); } return menu; }
public void initialize(TableLine line) { line.createEndpointHolder("127.0.0.1", networkManager.getPort(), false); line.setAddedOn(getCreationTime()); }