| 1 | /******************************************************************************* | |
| 2 |  * Copyhacked (H) 2012-2025. | |
| 3 |  * This program and the accompanying materials | |
| 4 |  * are made available under no term at all, use it like | |
| 5 |  * you want, but share and discuss it | |
| 6 |  * every time possible with every body. | |
| 7 |  *  | |
| 8 |  * Contributors: | |
| 9 |  *      ron190 at ymail dot com - initial implementation | |
| 10 |  ******************************************************************************/ | |
| 11 | package com.jsql.view.swing.dialog; | |
| 12 | ||
| 13 | import com.jsql.util.I18nUtil; | |
| 14 | import com.jsql.view.swing.util.MediatorHelper; | |
| 15 | ||
| 16 | import javax.swing.*; | |
| 17 | ||
| 18 | /** | |
| 19 |  * File chooser for supporting 'file already exists'. | |
| 20 |  */ | |
| 21 | public class ReplaceFileChooser extends JFileChooser { | |
| 22 |      | |
| 23 |     /** | |
| 24 |      * Create a file chooser with a replace confirm dialog. | |
| 25 |      */ | |
| 26 |     public ReplaceFileChooser(String currentDirectoryPath) { | |
| 27 |         // Unhandled NoSuchMethodError #82561 on constructor: NoSuchMethodError | |
| 28 |         // Unhandled InternalError #93015 on constructor: InvocationTargetException | |
| 29 |         super(currentDirectoryPath); | |
| 30 |     } | |
| 31 |      | |
| 32 |     @Override | |
| 33 |     public void approveSelection() { | |
| 34 | 1
1. approveSelection : negated conditional → NO_COVERAGE |         if (this.getDialogType() == JFileChooser.SAVE_DIALOG) { | 
| 35 |             var file = this.getSelectedFile(); | |
| 36 | 1
1. approveSelection : negated conditional → NO_COVERAGE |             if (file.exists()) { | 
| 37 |                 int result = JOptionPane.showConfirmDialog( | |
| 38 |                     MediatorHelper.frame(), | |
| 39 |                     String.format( | |
| 40 |                         "%s %s", | |
| 41 |                         this.getSelectedFile().getName(), | |
| 42 |                         I18nUtil.valueByKey("SAVE_TAB_CONFIRM_LABEL") | |
| 43 |                     ), | |
| 44 |                     I18nUtil.valueByKey("SAVE_TAB_CONFIRM_TITLE"), | |
| 45 |                     JOptionPane.YES_NO_OPTION | |
| 46 |                 ); | |
| 47 |                 switch (result) { | |
| 48 |                     case JOptionPane.YES_OPTION: | |
| 49 | 1
1. approveSelection : removed call to javax/swing/JFileChooser::approveSelection → NO_COVERAGE |                         super.approveSelection(); | 
| 50 |                         return; | |
| 51 |                     case JOptionPane.NO_OPTION: | |
| 52 |                     case JOptionPane.CLOSED_OPTION: | |
| 53 |                         return; | |
| 54 |                     case JOptionPane.CANCEL_OPTION: | |
| 55 | 1
1. approveSelection : removed call to com/jsql/view/swing/dialog/ReplaceFileChooser::cancelSelection → NO_COVERAGE |                         this.cancelSelection(); | 
| 56 |                         return; | |
| 57 |                     default: | |
| 58 |                         break; | |
| 59 |                 } | |
| 60 |             } else { | |
| 61 | 1
1. approveSelection : removed call to javax/swing/JFileChooser::approveSelection → NO_COVERAGE |                 super.approveSelection(); | 
| 62 |             } | |
| 63 |         } | |
| 64 |     } | |
| 65 | } | |
| Mutations | ||
| 34 | 1.1 | |
| 36 | 1.1 | |
| 49 | 1.1 | |
| 55 | 1.1 | |
| 61 | 1.1 |