@@ -226,10 +226,15 @@ private void updateThemaComboBox() {
226
226
jcbThema .setSelectedItem (aktuellesThema );
227
227
}
228
228
229
+ private JPopupMenu createPopupMenu () {
230
+ var popupMenu = new JPopupMenu ();
231
+ popupMenu .add (new ResetThemaButtonAction ());
232
+ return popupMenu ;
233
+ }
234
+
229
235
private void setupThemaComboBox () {
230
- jcbThema .setNoActionOnKeyNavigation (true );
231
- jcbThema .setStrict (true );
232
- jcbThema .setStrictCompletion (true );
236
+ jcbThema .setComponentPopupMenu (createPopupMenu ());
237
+
233
238
var model = GlazedListsSwing .eventComboBoxModel (new EventListWithEmptyFirstEntry (sourceThemaList ));
234
239
jcbThema .setModel (model );
235
240
//otherwise stored filter will not be accepted as entry may not be in list
@@ -480,21 +485,22 @@ public void restoreFilterConfig() {
480
485
481
486
private class AddNewFilterAction extends AbstractAction {
482
487
private static final String STR_ACTION_NAME = "Neuen Filter anlegen" ;
488
+
483
489
public AddNewFilterAction () {
484
490
putValue (Action .SMALL_ICON , SVGIconUtilities .createSVGIcon ("icons/fontawesome/plus.svg" ));
485
491
putValue (Action .SHORT_DESCRIPTION , STR_ACTION_NAME );
486
492
}
487
493
488
494
@ Override
489
495
public void actionPerformed (ActionEvent e ) {
490
- String newFilterName = (String )JOptionPane .showInputDialog (MediathekGui .ui (), "Filtername:" ,
496
+ String newFilterName = (String ) JOptionPane .showInputDialog (MediathekGui .ui (), "Filtername:" ,
491
497
STR_ACTION_NAME , JOptionPane .PLAIN_MESSAGE , null , null ,
492
498
String .format ("Filter %d" , filterConfig .getAvailableFilters ().size () + 1 ));
493
499
if (newFilterName != null ) {
494
500
filterConfig .findFilterForName (newFilterName ).ifPresentOrElse (f ->
495
501
JOptionPane .showMessageDialog (MediathekGui .ui (),
496
- "Ein Filter mit dem gewählten Namen existiert bereits!" ,
497
- STR_ACTION_NAME , JOptionPane .ERROR_MESSAGE ), () -> {
502
+ "Ein Filter mit dem gewählten Namen existiert bereits!" ,
503
+ STR_ACTION_NAME , JOptionPane .ERROR_MESSAGE ), () -> {
498
504
FilterDTO newFilter = new FilterDTO (UUID .randomUUID (), newFilterName );
499
505
filterConfig .addNewFilter (newFilter );
500
506
checkDeleteCurrentFilterButtonState ();
@@ -525,9 +531,11 @@ public void actionPerformed(ActionEvent e) {
525
531
}
526
532
527
533
private class ResetThemaAction extends AbstractAction {
534
+ protected static final String STR_RESET_THEMA = "Thema zurücksetzen" ;
535
+
528
536
public ResetThemaAction () {
529
537
putValue (Action .SMALL_ICON , SVGIconUtilities .createSVGIcon ("icons/fontawesome/trash-can.svg" ));
530
- putValue (Action .SHORT_DESCRIPTION , "Thema zurücksetzen" );
538
+ putValue (Action .SHORT_DESCRIPTION , STR_RESET_THEMA );
531
539
}
532
540
533
541
@ Override
@@ -537,6 +545,12 @@ public void actionPerformed(ActionEvent e) {
537
545
}
538
546
}
539
547
548
+ private class ResetThemaButtonAction extends ResetThemaAction {
549
+ public ResetThemaButtonAction () {
550
+ putValue (Action .NAME , STR_RESET_THEMA );
551
+ }
552
+ }
553
+
540
554
private class RenameFilterAction extends AbstractAction {
541
555
public RenameFilterAction () {
542
556
putValue (Action .SMALL_ICON , SVGIconUtilities .createSVGIcon ("icons/fontawesome/pen-to-square.svg" ));
0 commit comments