예제 #1
0
  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;
  }
예제 #2
0
 public void initialize(TableLine line) {
   line.createEndpointHolder("127.0.0.1", networkManager.getPort(), false);
   line.setAddedOn(getCreationTime());
 }