/******************************************************************************* * Copyright (c) 2016 Weasis Team and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Nicolas Roduit - initial API and implementation *******************************************************************************/ package org.weasis.acquire.explorer.gui.list; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.util.List; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import org.weasis.acquire.explorer.AcquireManager; import org.weasis.acquire.explorer.Messages; import org.weasis.acquire.explorer.gui.control.ImportPanel; import org.weasis.acquire.explorer.gui.dialog.AcquireImportDialog; import org.weasis.base.explorer.list.AThumbnailList; import org.weasis.base.explorer.list.IThumbnailModel; import org.weasis.core.api.gui.util.JMVUtils; import org.weasis.core.api.gui.util.WinUtil; import org.weasis.core.api.media.data.ImageElement; import org.weasis.core.api.media.data.MediaElement; import org.weasis.core.ui.util.DefaultAction; @SuppressWarnings("serial") public class AcquireThumbnailList<E extends MediaElement> extends AThumbnailList<E> { private AcquireThumbnailListPane<E> mainPanel; public AcquireThumbnailList() { super(); } public AcquireThumbnailListPane<E> getMainPanel() { return mainPanel; } public void setMainPanel(AcquireThumbnailListPane<E> mainPanel) { this.mainPanel = mainPanel; } @Override public IThumbnailModel<E> newModel() { return new AcquireThumbnailModel<>(this); } @Override public JPopupMenu buidContexMenu(MouseEvent e) { ImportPanel importPanel = AcquireManager.getInstance().getAcquireExplorer().getImportPanel(); List<ImageElement> medias = AcquireManager.toImageElement(getSelected(e)); if (!medias.isEmpty() && !importPanel.isLoading()) { JPopupMenu popupMenu = new JPopupMenu(); popupMenu .add(new JMenuItem(new DefaultAction(Messages.getString("AcquireThumbnailList.import_sel"), event -> { //$NON-NLS-1$ AcquireImportDialog dialog = new AcquireImportDialog(importPanel, medias); JMVUtils.showCenterScreen(dialog, WinUtil.getParentWindow(mainPanel)); }))); return popupMenu; } return null; } @Override public void mouseClickedEvent(MouseEvent e) { if (e.getClickCount() == 2) { // Manage double click ImportPanel importPanel = AcquireManager.getInstance().getAcquireExplorer().getImportPanel(); List<ImageElement> medias = AcquireManager.toImageElement(getSelected(e)); if (!medias.isEmpty() && !importPanel.isLoading()) { AcquireImportDialog dialog = new AcquireImportDialog(importPanel, medias); JMVUtils.showCenterScreen(dialog, WinUtil.getParentWindow(mainPanel)); } } } @Override public void jiThumbnailKeyPressed(KeyEvent e) { switch (e.getKeyCode()) { case KeyEvent.VK_PAGE_DOWN: nextPage(e); break; case KeyEvent.VK_PAGE_UP: lastPage(e); break; case KeyEvent.VK_ENTER: ImportPanel importPanel = AcquireManager.getInstance().getAcquireExplorer().getImportPanel(); final List<ImageElement> selected = AcquireManager.toImageElement(mainPanel.getSelectedValuesList()); if (!selected.isEmpty() && !importPanel.isLoading()) { AcquireImportDialog dialog = new AcquireImportDialog(importPanel, selected); JMVUtils.showCenterScreen(dialog, WinUtil.getParentWindow(mainPanel)); } e.consume(); break; } } }