Skip to content

Commit

Permalink
JFileChooser->WriteFileChooserWrapper in GUIOption.java
Browse files Browse the repository at this point in the history
  • Loading branch information
prprhyt committed Oct 8, 2019
1 parent 6998a86 commit b8138a0
Showing 1 changed file with 30 additions and 17 deletions.
47 changes: 30 additions & 17 deletions src/main/java/core/packetproxy/gui/GUIOption.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
Expand All @@ -41,6 +40,7 @@
import packetproxy.common.Utils;
import packetproxy.model.CAFactory;
import packetproxy.model.CAs.CA;
import packetproxy.model.Packets;

public class GUIOption
{
Expand Down Expand Up @@ -137,7 +137,7 @@ public JComponent createPanel() throws Exception
panel.add(createSeparator());

panel.add(createElement("PacketProxy CA Certificates","PC/Mac/Linux/Android/iOSの信頼する証明書に登録してください。(拡張子は.crtが望ましいです)"));

JPanel caPanel = new JPanel();
caPanel.setBackground(Color.WHITE);
caPanel.setLayout(new BoxLayout(caPanel, BoxLayout.X_AXIS));
Expand All @@ -149,27 +149,40 @@ public JComponent createPanel() throws Exception
});
ca_combo.setMaximumRowCount(CAFactory.queryExportable().size());
ca_combo.setMaximumSize(new Dimension(500, 30));

JButton b = new JButton("CA証明書の取得");
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
try {
JFileChooser saveFile = new JFileChooser("PacketProxyCA.crt");
saveFile.setAcceptAllFileFilterUsed(false);
saveFile.addChoosableFileFilter(new FileNameExtensionFilter("証明書ファイル (.crt)", "crt"));
saveFile.showSaveDialog(owner);
File file = saveFile.getSelectedFile();
if (file != null) {
CA ca = CAFactory.findByUTF8Name((String)ca_combo.getSelectedItem()).get();
byte[] derData = ca.getCACertificate();
String derPath = file.getAbsolutePath() + ".crt";
try (FileOutputStream fos = new FileOutputStream(derPath)) {
fos.write(derData);
fos.close();
JOptionPane.showMessageDialog(owner, String.format("%sに保存しました!", derPath));
WriteFileChooserWrapper filechooser = new WriteFileChooserWrapper(owner,"crt", "PacketProxyCA.crt");
filechooser.addFileChooserListener(new WriteFileChooserWrapper.FileChooserListener() {
@Override
public void onApproved(File file, String extension) {
try {
CA ca = CAFactory.findByUTF8Name((String)ca_combo.getSelectedItem()).get();
byte[] derData = ca.getCACertificate();
String derPath = file.getAbsolutePath();
try (FileOutputStream fos = new FileOutputStream(derPath)) {
fos.write(derData);
fos.close();
JOptionPane.showMessageDialog(owner, String.format("%sに保存しました!", derPath));
}
}catch (Exception e1) {
e1.printStackTrace();
JOptionPane.showMessageDialog(null, "データの保存に失敗しました。");
}
}

@Override
public void onCanceled() {}

@Override
public void onError() {
JOptionPane.showMessageDialog(null, "データの保存に失敗しました。");
}
}
});
filechooser.showSaveDialog();
} catch (Exception e) {
e.printStackTrace();
}
Expand Down

0 comments on commit b8138a0

Please sign in to comment.