package com.elsealabs.xshot.views; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; import com.elsealabs.xshot.file.FileUtil; import com.elsealabs.xshot.file.SaveLocation; import com.elsealabs.xshot.file.SaveLocationPool; public class ViewFileLocation extends JFrame { private JPanel contentPane; private JTextField field_name; private JTextField field_path; private SaveLocation save; private SaveLocationPool pool; public ViewFileLocation(SaveLocation save) { this.save = save; setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); setBounds(100, 100, 480, 180); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JLabel label_name = new JLabel("Location Nick Name"); label_name.setBounds(10, 11, 112, 14); contentPane.add(label_name); JLabel label_path = new JLabel("Location Path"); label_path.setBounds(10, 38, 112, 14); contentPane.add(label_path); field_name = new JTextField(); field_name.setBounds(132, 8, 322, 20); contentPane.add(field_name); field_name.setColumns(10); field_name.setText(save.getName()); field_path = new JTextField(); field_path.setColumns(10); field_path.setBounds(132, 35, 322, 20); contentPane.add(field_path); field_path.setText(save.getPath()); JButton button_path = new JButton("Choose Path"); button_path.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { File file = FileUtil.getUserSaveLocation(new File(field_path.getText()), "Select New Path Location"); field_path.setText(file.toPath().toString()); } }); button_path.setBounds(10, 107, 112, 23); contentPane.add(button_path); JButton button_save = new JButton("Save"); button_save.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (Files.exists(Paths.get(field_path.getText()))) { save.setName(field_name.getText()); save.setPath(field_path.getText()); pool.saveLocation(save); dispose(); } else { setTitle("Path does not exist, can't save!"); } } }); button_save.setBounds(342, 107, 112, 23); contentPane.add(button_save); JButton button_delete = new JButton("Delete"); button_delete.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { save.remove(); } }); button_delete.setBounds(261, 107, 71, 23); contentPane.add(button_delete); JCheckBox check_default = new JCheckBox("Default Location"); check_default.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if (check_default.isSelected()) { save.setDefault(true); check_default.setSelected(true); } else { save.setDefault(false); check_default.setSelected(false); } } }); check_default.setBounds(10, 70, 117, 23); contentPane.add(check_default); JButton btnCancel = new JButton("Cancel"); btnCancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { setVisible(false); dispose(); } }); btnCancel.setBounds(180, 107, 71, 23); contentPane.add(btnCancel); if (save.isDefault()) check_default.setSelected(true); } public void setPool(SaveLocationPool pool) { this.pool = pool; } }