### Eclipse Workspace Patch 1.0
#P sophie
|
|
|
|
| 4 | 4 | import java.awt.Dimension; |
| 5 | 5 | import java.awt.Insets; |
| 6 | 6 | import java.io.File; |
| | 7 | import java.io.IOException; |
| 7 | 8 | |
| 8 | 9 | import javax.swing.Icon; |
| 9 | 10 | import javax.swing.JButton; |
| … |
… |
|
| 13 | 14 | import javax.swing.filechooser.FileFilter; |
| 14 | 15 | import javax.swing.filechooser.FileView; |
| 15 | 16 | |
| | 17 | import org.sophie2.base.commons.util.OSUtil; |
| 16 | 18 | import org.sophie2.base.dialogs.Dialog; |
| 17 | 19 | import org.sophie2.base.dialogs.DialogManager; |
| | 20 | import org.sophie2.core.logging.SophieLog; |
| 18 | 21 | import org.sophie2.main.dialogs.input.ConfirmDialogInput; |
| 19 | 22 | import org.sophie2.main.dialogs.input.DialogUtils; |
| 20 | 23 | import org.sophie2.main.dialogs.input.file.AccessoryData; |
| … |
… |
|
| 120 | 123 | |
| 121 | 124 | if (inputKind.equals(FileDialogInput.Kind.SAVE)) { |
| 122 | 125 | assert input.isMultiSelectEnabled() == false : "Cannot save in multiple resouces!"; |
| | 126 | |
| | 127 | boolean writable = true; |
| | 128 | if (OSUtil.isWindows() || OSUtil.isMacOS()) { |
| | 129 | try { |
| | 130 | File file = new File(files[0].getParent()+"/file.tmp"); |
| | 131 | boolean created = file.createNewFile(); |
| | 132 | if (created) { |
| | 133 | file.delete(); |
| | 134 | } |
| | 135 | } catch (IOException e) { |
| | 136 | SophieLog.info("File doesn't seem writable", e); |
| | 137 | writable = false; |
| | 138 | } |
| | 139 | } else { |
| | 140 | writable = files[0].getParentFile().canWrite(); |
| | 141 | writable = writable && (files[0].exists() && files[0].canWrite()); |
| | 142 | } |
| | 143 | if (!writable) { |
| | 144 | DialogUtils.showErrorDialog(this.fileChooser.getParent(), |
| | 145 | "You don't have permissions to write in this directory.", |
| | 146 | "Permission denied"); |
| | 147 | return null; |
| | 148 | } |
| | 149 | |
| 123 | 150 | if (files[0].exists()) { |
| 124 | 151 | ConfirmDialogInput confirmInput = new ConfirmDialogInput(this.fileChooser |
| 125 | 152 | .getParent(), |