protected void processMousePressedEvent(MouseEvent e) { requestFocusInWindow(); int ex = e.getX(); int ey = e.getY(); Image image = null; float w; Insets insets = getInsets(); int x = insets.left; int n = SnapshotGallery.sharedInstance().size(); for (int i = n - 1; i >= 0; i--) { image = SnapshotGallery.sharedInstance().getThumbnail(i); w = image.getWidth(this); if (ex > x && ex < x + w && ey > insets.top && ey < insets.top + IMAGE_HEIGHT) { SnapshotGallery.sharedInstance().setSelectedIndex(i); repaint(); break; } if (getLayout() instanceof FlowLayout) { x += (int) w + ((FlowLayout) getLayout()).getHgap(); } else { x += (int) w + IMAGE_GAP; } } if (draggable) { if (!ModelerUtilities.isRightClick(e) && e.getClickCount() < 2) { JComponent c = (JComponent) e.getSource(); TransferHandler handler = c.getTransferHandler(); handler.exportAsDrag(c, e, TransferHandler.COPY); } } else { if (!ModelerUtilities.isRightClick(e) && e.getClickCount() >= 2) SnapshotGallery.sharedInstance().invokeSnapshotEditor(this, true, true); } }