package com.onaro.sanscreen.client.view.profile; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.io.File; import javax.swing.Action; import javax.swing.JFileChooser; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.onaro.sanscreen.client.MainDirector; import com.onaro.sanscreen.client.view.ViewDirector; import com.onaro.util.jfc.ConfigurableAction; public class SaveProfileToFileAction extends ConfigurableAction { private static final long serialVersionUID = 1L; /** * The logger for this class. */ public static final Logger logger = LogManager.getLogger(SaveProfileToFileAction.class); public SaveProfileToFileAction() { putValue(Action.NAME, Messages.INSTANCE.getSaveProfileToFileAction()); putValue(Action.MNEMONIC_KEY, KeyEvent.VK_A); } public void actionPerformed(ActionEvent e) { JFileChooser fileChooser = new JFileChooser(); fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); fileChooser.setMultiSelectionEnabled(false); int dialogResult = fileChooser.showSaveDialog(MainDirector.getFrameDirector().getAppFrame()); if (dialogResult != JFileChooser.APPROVE_OPTION) { return; } File outputFile = fileChooser.getSelectedFile(); String fileName = outputFile.getName(); if (!fileName.endsWith(".xml")) { //$NON-NLS-1$ fileName = fileName + ".xml"; //$NON-NLS-1$ outputFile = new File(outputFile.getParentFile(), fileName); } String displayName = fileName.substring(0, fileName.lastIndexOf(".xml")); //$NON-NLS-1$ ViewDirector viewDirector = MainDirector.getFrameDirector().getCurrentMainViewDirector(); ProfileUtils.saveProfileToFile(viewDirector, displayName, outputFile); } }