package gitj.ui; import iconlib.IconUtils; import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JToolBar; import git.Repository; import gitj.utils.StatusUtils; @SuppressWarnings("serial") public class BookmarkPanel extends JPanel { private BookmarksPanel parent; private Repository repo; private JToolBar b1; private JToolBar b2; public BookmarkPanel(BookmarksPanel parent, Repository repo) { this.parent = parent; this.repo = repo; setLayout(new BorderLayout(0, 0)); reload(); } public Repository getRepository() { return this.repo; } public void reload() { removeAll(); b1 = new JToolBar(); b1.setFloatable(false); add(b1, BorderLayout.NORTH); b2 = new JToolBar(); b2.setFloatable(false); add(b2, BorderLayout.SOUTH); JLabel lblName = new JLabel(repo.getName() + " "); lblName.setIcon(IconUtils.getIcon("icon")); b1.add(lblName); JLabel lblPath = new JLabel(repo.getFolder().getAbsolutePath()); lblPath.setForeground(Color.gray); b1.add(lblPath); for (JLabel label : StatusUtils.getIcons(repo)) { b2.add(label); } b2.add(Box.createHorizontalGlue()); JButton btnRemove = new JButton(); btnRemove.setIcon(IconUtils.getIcon("cross")); btnRemove.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { parent.removeBookmarkPanel(BookmarkPanel.this); } }); b2.add(btnRemove); JButton btnReload = new JButton(); btnReload.setIcon(IconUtils.getIcon("blue-folder-open")); btnReload.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { parent.getParentFrame().loadRepository(repo); } }); b2.add(btnReload); revalidate(); } @Override public boolean equals(Object o) { if (o instanceof BookmarkPanel) { BookmarkPanel panel = (BookmarkPanel) o; return panel.repo.equals(this.repo); } return this == o; } }