/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package nl.fontys.sofa.limo.view.project.actions;
import java.awt.event.ActionEvent;
import java.io.File;
import java.io.IOException;
import javax.swing.AbstractAction;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;
import nl.fontys.sofa.limo.view.project.SupplyProject;
import nl.fontys.sofa.limo.view.project.supplychain.ChainNodeList;
import org.openide.awt.ActionID;
import org.openide.awt.ActionRegistration;
import org.openide.filesystems.FileObject;
import org.openide.filesystems.FileUtil;
import org.openide.loaders.DataNode;
import org.openide.loaders.DataObject;
import org.openide.nodes.Children;
import org.openide.util.Exceptions;
import org.openide.util.NbBundle.Messages;
/**
*
* @author nilsh
*/
@ActionID(
category = "Window",
id = "nl.fontys.sofa.limo.project.actions.AddMasterDataAction"
)
@ActionRegistration(
iconBase = "icons/gui/Link_Add.png",
displayName = "#CTL_AddMasterDataAction"
)
@Messages({
"CTL_AddMasterDataAction=Import Masterdata file"
})
public class AddMasterDataAction extends AbstractAction {
private final SupplyProject project;
public AddMasterDataAction(SupplyProject project) {
this.project = project;
putValue(NAME, "Import Masterdata file");
}
private File getMasterDataFile() {
FileNameExtensionFilter fileNameExtensionFilter = new FileNameExtensionFilter("Master data file (.lef)", "lef");
JFileChooser fc = new JFileChooser();
fc.addChoosableFileFilter(fileNameExtensionFilter);
fc.setAcceptAllFileFilterUsed(false);
int result = fc.showOpenDialog(null);
if (result == JFileChooser.APPROVE_OPTION) {
return fc.getSelectedFile();
} else {
return null;
}
}
@Override
public void actionPerformed(ActionEvent e) {
File file = getMasterDataFile();
if (file != null) {
try {
String name = file.getName();
name = name.substring(0, name.length() - 4);
FileObject masterDataObject = FileUtil.createData(file);
FileObject masterData = project.getProjectDirectory().getFileObject("master_data_files");
FileUtil.copyFile(masterDataObject, masterData, name);
ChainNodeList lookup = project.getChainNodeList();
DataObject find = DataObject.find(masterDataObject);
lookup.getMasterDataNode().addChild(new DataNode(find, Children.LEAF));
} catch (IOException ex) {
Exceptions.printStackTrace(ex);
}
}
}
}