super("ExportBranchAction");
}
public void actionPerformed(final ActionEvent e) {
final NodeModel existingNode = Controller.getCurrentModeController().getMapController().getSelectedNode();
final Controller controller = Controller.getCurrentController();
final MapModel parentMap = controller.getMap();
if (parentMap == null || existingNode == null || existingNode.isRoot()) {
controller.getViewController().err("Could not export branch.");
return;
}
if (parentMap.getFile() == null) {
controller.getViewController().out("You must save the current map first!");
((MModeController) Controller.getCurrentModeController()).save();
}
JFileChooser chooser;
final File file = parentMap.getFile();
if (file == null) {
return;
}
chooser = new JFileChooser(file.getParentFile());
chooser.setSelectedFile(new File(createFileName(TextController.getController().getShortText(existingNode))));
if (((MFileManager) UrlManager.getController()).getFileFilter() != null) {
chooser.addChoosableFileFilter(((MFileManager) UrlManager.getController())
.getFileFilter());
}
final int returnVal = chooser.showSaveDialog(controller.getViewController().getContentPane());
if (returnVal == JFileChooser.APPROVE_OPTION) {
File chosenFile = chooser.getSelectedFile();
final String ext = FileUtils.getExtension(chosenFile.getName());
if (!ext.equals(org.freeplane.features.url.UrlManager.FREEPLANE_FILE_EXTENSION_WITHOUT_DOT)) {
chosenFile = new File(chosenFile.getParent(), chosenFile.getName()
+ org.freeplane.features.url.UrlManager.FREEPLANE_FILE_EXTENSION);
}
try {
Compat.fileToUrl(chosenFile);
}
catch (final MalformedURLException ex) {
UITools.errorMessage(TextUtils.getText("invalid_url"));
return;
}
if (chosenFile.exists()) {
final int overwriteMap = JOptionPane.showConfirmDialog(controller.getMapViewManager().getMapViewComponent(),
TextUtils.getText("map_already_exists"), "Freeplane", JOptionPane.YES_NO_OPTION);
if (overwriteMap != JOptionPane.YES_OPTION) {
return;
}
}