(final Menu parentMenu, final Entry entry, final int index)
| 71 | } |
| 72 | |
| 73 | @Override |
| 74 | public |
| 75 | void add(final Menu parentMenu, final Entry entry, final int index) { |
| 76 | // must always be called on the EDT |
| 77 | SwingUtil.INSTANCE.invokeAndWaitQuietly(()->{ |
| 78 | // don't add this entry if it's already been added via another method. Because of threading via swing/gtk, entries can |
| 79 | // POSSIBLY get added twice. Once via add() and once via bind(). |
| 80 | if (entry.hasPeer()) { |
| 81 | return; |
| 82 | } |
| 83 | |
| 84 | if (entry instanceof Menu) { |
| 85 | SwingMenu swingMenu = new SwingMenu(SwingMenu.this, (Menu) entry, index); |
| 86 | ((Menu) entry).bind(swingMenu, parentMenu, parentMenu.getImageResizeUtil()); |
| 87 | } |
| 88 | else if (entry instanceof Separator) { |
| 89 | SwingMenuItemSeparator item = new SwingMenuItemSeparator(SwingMenu.this, index); |
| 90 | entry.bind(item, parentMenu, parentMenu.getImageResizeUtil()); |
| 91 | } |
| 92 | else if (entry instanceof Checkbox) { |
| 93 | SwingMenuItemCheckbox item = new SwingMenuItemCheckbox(SwingMenu.this, entry, index); |
| 94 | ((Checkbox) entry).bind(item, parentMenu, parentMenu.getImageResizeUtil()); |
| 95 | } |
| 96 | else if (entry instanceof Status) { |
| 97 | // Note: Status is always index 0 |
| 98 | SwingMenuItemStatus item = new SwingMenuItemStatus(SwingMenu.this, entry); |
| 99 | ((Status) entry).bind(item, parentMenu, parentMenu.getImageResizeUtil()); |
| 100 | } |
| 101 | else if (entry instanceof MenuItem) { |
| 102 | SwingMenuItem item = new SwingMenuItem(SwingMenu.this, entry, index); |
| 103 | ((MenuItem) entry).bind(item, parentMenu, parentMenu.getImageResizeUtil()); |
| 104 | } |
| 105 | }); |
| 106 | } |
| 107 | |
| 108 | // is overridden in tray impl |
| 109 | @Override |
nothing calls this directly
no test coverage detected