package fr.lyrgard.hexScape.gui.desktop.view.home.config;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.filechooser.FileNameExtensionFilter;
import net.miginfocom.swing.MigLayout;
import fr.lyrgard.hexScape.bus.GuiMessageBus;
import fr.lyrgard.hexScape.message.InfoMessage;
import fr.lyrgard.hexScape.model.CurrentUserInfo;
import fr.lyrgard.hexScape.service.AssetService;
public class AssetLoaderPanel extends JPanel {
private static final long serialVersionUID = -2593663852886307208L;
private JTextField zipFileLabel;
//private JProgressBar progressBar;
private File assetFile;
public AssetLoaderPanel() {
this.setLayout(new MigLayout(
"wrap", // Layout Constraints
"[right][left]", // Column constraints
"[]20[]" // Row constraints
));
final JButton importButton = new JButton("Import assets");
importButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (assetFile != null) {
//progressBar.setVisible(true);
AssetService.getInstance().importAssets(assetFile);
//progressBar.setVisible(false);
GuiMessageBus.post(new InfoMessage(CurrentUserInfo.getInstance().getId(), "Assets imported"));
}
}
});
importButton.setEnabled(false);
JButton chooseFile = new JButton();
chooseFile.setText("Choose file");
chooseFile.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"HexScape Data files", "hsd");
chooser.setFileFilter(filter);
int returnVal = chooser.showOpenDialog(AssetLoaderPanel.this);
if(returnVal == JFileChooser.APPROVE_OPTION) {
assetFile = chooser.getSelectedFile();
zipFileLabel.setText(assetFile.getAbsolutePath());
importButton.setEnabled(true);
}
}
});
zipFileLabel = new JTextField(50);
zipFileLabel.setEditable(false);
// progressBar = new JProgressBar();
// progressBar.setVisible(false);
// progressBar.setIndeterminate(true);
add(chooseFile);
add(zipFileLabel);
//add(progressBar, "span 2, align center");
add(importButton, "span 2, align center");
}
}