/*
* Software Name : ATK
*
* Copyright (C) 2007 - 2012 France Télécom
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* ------------------------------------------------------------------
* File Name : SaveAsAction.java
*
* Created : 09/05/2007
* Author(s) : Nicolas MOTEAU
*/
package com.orange.atk.atkUI.coregui.actions;
import java.awt.event.ActionEvent;
import java.io.File;
import javax.swing.Icon;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import com.orange.atk.atkUI.corecli.Alert;
import com.orange.atk.atkUI.corecli.Campaign;
import com.orange.atk.atkUI.corecli.utils.FileUtilities;
import com.orange.atk.atkUI.coregui.CoreGUIPlugin;
import com.orange.atk.atkUI.coregui.MatosGUI;
/**
*
* @author Nicolas MOTEAU
* @since JDK5.0
*/
public class SaveAsAction extends MatosAbstractAction {
private static final long serialVersionUID = 1L;
private String lastChkLstFilePath = null;
public SaveAsAction(String name, Icon icon, String shortDescription) {
super(name, icon, shortDescription);
}
/* (non-Javadoc)
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
public void actionPerformed(ActionEvent e) {
MatosGUI matosGui = CoreGUIPlugin.mainFrame;
JFileChooser fileChooser = new JFileChooser(lastChkLstFilePath);
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
fileChooser.setFileFilter(new FileUtilities.Filter("MCL file [*.mcl]", ".mcl"));
int returnVal = fileChooser.showDialog(matosGui, "Save check-list as...");
if (returnVal == JFileChooser.APPROVE_OPTION) {
String src = fileChooser.getSelectedFile().getAbsolutePath();
File f = new File(src);
if (f.exists()) {
//WARNING : selected file already exists !
int res = JOptionPane.showConfirmDialog(
matosGui,
src + " already exists.\n"
+ " Do you want to overwrite ?",
fileChooser.getDialogTitle(),
JOptionPane.YES_NO_OPTION);
if (res==(JOptionPane.NO_OPTION) || (res==JOptionPane.CLOSED_OPTION)) {
// relaunch it
actionPerformed(e);
return;
}
}
src = FileUtilities.verifyExtension(src, ".mcl");
matosGui.setCheckListFileName(src);
try {
Campaign camp = MatosGUI.getCampaign();
Campaign.save(matosGui.getCheckListFileName(), camp);
} catch (Alert a) {
JOptionPane.showMessageDialog(
matosGui,
"Problem during the check-list save." + a.getMessage(),
"Error !",
JOptionPane.ERROR_MESSAGE);
}
lastChkLstFilePath = src;
matosGui.setModified(false);
}
}
}