| | 51 | /** |
| | 52 | * Sorts the menu items using the translated item text |
| | 53 | */ |
| | 54 | public void sortMenu(){ |
| | 55 | TaggingPresetMenu.sortMenu(this.menu); |
| | 56 | } |
| | 57 | |
| | 58 | /** |
| | 59 | * Sorts the menu items using the translated item text |
| | 60 | */ |
| | 61 | public static void sortMenu(JMenu menu){ |
| | 62 | Component[] items = menu.getMenuComponents(); |
| | 63 | PresetTextComparator comp = new PresetTextComparator(); |
| | 64 | ArrayList<JMenuItem> sortarray = new ArrayList<JMenuItem>(); |
| | 65 | int lastSeperator = 0; |
| | 66 | for (int i = 0; i < items.length; i++) { |
| | 67 | Object item = items[i]; |
| | 68 | if (item instanceof JMenu){ |
| | 69 | sortMenu((JMenu)item); |
| | 70 | } |
| | 71 | if (item instanceof JMenuItem){ |
| | 72 | sortarray.add((JMenuItem)item); |
| | 73 | if (i == items.length-1){ |
| | 74 | Collections.sort(sortarray, comp); |
| | 75 | int pos = 0; |
| | 76 | for (JMenuItem menuItem : sortarray) { |
| | 77 | int oldPos; |
| | 78 | if(lastSeperator == 0){ |
| | 79 | oldPos=pos; |
| | 80 | }else { |
| | 81 | oldPos = pos+lastSeperator+1; |
| | 82 | } |
| | 83 | menu.add(menuItem, oldPos); |
| | 84 | pos++; |
| | 85 | } |
| | 86 | sortarray = new ArrayList<JMenuItem>(); |
| | 87 | lastSeperator = 0; |
| | 88 | } |
| | 89 | }else if (item instanceof JSeparator){ |
| | 90 | Collections.sort(sortarray, comp); |
| | 91 | int pos = 0; |
| | 92 | for (JMenuItem menuItem : sortarray) { |
| | 93 | int oldPos; |
| | 94 | if(lastSeperator == 0){ |
| | 95 | oldPos=pos; |
| | 96 | }else { |
| | 97 | oldPos = pos+lastSeperator+1; |
| | 98 | } |
| | 99 | menu.add(menuItem, oldPos); |
| | 100 | pos++; |
| | 101 | } |
| | 102 | sortarray = new ArrayList<JMenuItem>(); |
| | 103 | lastSeperator = i; |
| | 104 | } |
| | 105 | } |
| | 106 | } |