package gitj.ui.dialogs; import iconlib.IconUtils; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.GroupLayout; import javax.swing.GroupLayout.Alignment; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.LayoutStyle.ComponentPlacement; import git.Repository; import git.Stash; import gitj.tasks.ApplyStashTask; import gitj.tasks.DeleteStashTask; import gitj.ui.MainFrame; @SuppressWarnings("serial") public class DialogStash extends JDialog { private MainFrame parent; private Repository repo; private Stash stash; public DialogStash(MainFrame parent, Repository repo, Stash stash) { setIconImage(IconUtils.getIcon("stash").getImage()); setTitle("Stash " + stash.getStashName()); setAlwaysOnTop(true); setModal(true); this.parent = parent; this.repo = repo; this.stash = stash; setBounds(100, 100, 450, 137); JButton btnCancel = new JButton("Delete"); btnCancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { delete(); cancel(); } }); JButton btnStash = new JButton("Apply"); btnStash.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { apply(); cancel(); } }); GroupLayout groupLayout = new GroupLayout(getContentPane()); groupLayout.setHorizontalGroup( groupLayout.createParallelGroup(Alignment.LEADING) .addGroup(Alignment.TRAILING, groupLayout.createSequentialGroup() .addContainerGap(294, Short.MAX_VALUE) .addComponent(btnStash) .addPreferredGap(ComponentPlacement.RELATED) .addComponent(btnCancel) .addContainerGap()) ); groupLayout.setVerticalGroup( groupLayout.createParallelGroup(Alignment.TRAILING) .addGroup(groupLayout.createSequentialGroup() .addContainerGap(64, Short.MAX_VALUE) .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE) .addComponent(btnCancel) .addComponent(btnStash)) .addContainerGap()) ); getContentPane().setLayout(groupLayout); setLocationRelativeTo(null); } public void apply() { parent.runTask(new ApplyStashTask(repo, stash)); } public void delete() { parent.runTask(new DeleteStashTask(repo, stash)); } public void cancel() { setVisible(false); dispose(); } }