X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;ds=sidebyside;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2FLocalReaderBook.java;fp=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2FLocalReaderBook.java;h=263601c471797cba8154540a5135269dca7ccb89;hb=9843a5e5c44825ac404f45ddccd6f63e554567a4;hp=c716bd3aa47d75f3d3171aaf3d07f261c154bbad;hpb=10d558d2429c984327f9e5a16933fefe5cc37314;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/reader/LocalReaderBook.java b/src/be/nikiroo/fanfix/reader/LocalReaderBook.java index c716bd3..263601c 100644 --- a/src/be/nikiroo/fanfix/reader/LocalReaderBook.java +++ b/src/be/nikiroo/fanfix/reader/LocalReaderBook.java @@ -47,6 +47,16 @@ class LocalReaderBook extends JPanel { * the {@link LocalReaderBook} itself */ public void action(LocalReaderBook book); + + /** + * A popup menu was requested for this {@link LocalReaderBook}. + * + * @param book + * the {@link LocalReaderBook} itself + * @param e + * the {@link MouseEvent} that generated this call + */ + public void popupRequested(LocalReaderBook book, MouseEvent e); } private static final int COVER_WIDTH = 100; @@ -142,9 +152,15 @@ class LocalReaderBook extends JPanel { listeners = new ArrayList(); addMouseListener(new MouseListener() { public void mouseReleased(MouseEvent e) { + if (e.isPopupTrigger()) { + popup(e); + } } public void mousePressed(MouseEvent e) { + if (e.isPopupTrigger()) { + popup(e); + } } public void mouseExited(MouseEvent e) { @@ -164,20 +180,28 @@ class LocalReaderBook extends JPanel { } else { click(false); } + lastClick = now; } } - }); - } - private void click(boolean doubleClick) { - for (BookActionListener listener : listeners) { - if (doubleClick) { - listener.action(this); - } else { - listener.select(this); + private void click(boolean doubleClick) { + for (BookActionListener listener : listeners) { + if (doubleClick) { + listener.action(LocalReaderBook.this); + } else { + listener.select(LocalReaderBook.this); + } + } } - } + + private void popup(MouseEvent e) { + for (BookActionListener listener : listeners) { + listener.select((LocalReaderBook.this)); + listener.popupRequested(LocalReaderBook.this, e); + } + } + }); } public void addActionListener(BookActionListener listener) { @@ -243,7 +267,7 @@ class LocalReaderBook extends JPanel { g.setColor(Color.green); g.fillOval(clip.x + clip.width - 30, 10, 20, 20); } - + g.setColor(color); g.fillRect(clip.x, clip.y, clip.width, clip.height); }