/*******************************************************************************
* 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.central;
import java.awt.BorderLayout;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import org.osgi.framework.BundleContext;
import org.osgi.framework.FrameworkUtil;
import org.weasis.acquire.explorer.AcquireManager;
import org.weasis.acquire.explorer.Messages;
import org.weasis.acquire.explorer.gui.AcquireToolBar;
import org.weasis.base.viewer2d.EventManager;
import org.weasis.core.api.gui.InsertableUtil;
import org.weasis.core.api.media.data.ImageElement;
import org.weasis.core.api.media.data.MediaSeries;
import org.weasis.core.api.service.BundleTools;
import org.weasis.core.ui.docking.DockableTool;
import org.weasis.core.ui.editor.SeriesViewerEvent;
import org.weasis.core.ui.editor.SeriesViewerEvent.EVENT;
import org.weasis.core.ui.editor.image.ViewerPlugin;
import org.weasis.core.ui.util.ToolBarContainer;
import org.weasis.core.ui.util.Toolbar;
import org.weasis.core.ui.util.WtoolBar;
@SuppressWarnings("serial")
public class ImageGroupPane extends ViewerPlugin<ImageElement> {
public final List<Toolbar> toolBar = Collections.synchronizedList(new ArrayList<Toolbar>(1));
public final AcquireTabPanel tabbedPane = new AcquireTabPanel();
public ImageGroupPane(String pluginName) {
super(pluginName);
// Add standard toolbars
final BundleContext context = FrameworkUtil.getBundle(this.getClass()).getBundleContext();
String bundleName = context.getBundle().getSymbolicName();
String componentName = InsertableUtil.getCName(this.getClass());
String key = "enable"; //$NON-NLS-1$
if (InsertableUtil.getBooleanProperty(BundleTools.SYSTEM_PREFERENCES, bundleName, componentName,
InsertableUtil.getCName(AcquireToolBar.class), key, true)) {
toolBar.add(ToolBarContainer.EMPTY);
}
init();
}
private void init() {
setLayout(new BorderLayout());
add(tabbedPane, BorderLayout.CENTER);
}
@Override
public List<MediaSeries<ImageElement>> getOpenSeries() {
return null;
}
@Override
public void addSeries(MediaSeries<ImageElement> series) {
// Do nothing
}
@Override
public void removeSeries(MediaSeries<ImageElement> series) {
// Do nothing
}
@Override
public JMenu fillSelectedPluginMenu(JMenu menuRoot) {
if (menuRoot != null) {
menuRoot.removeAll();
// JMenuItem item = new JMenuItem("Build a new study");
// item.addActionListener(e -> AcquireManager.GLOBAL.setTag(TagD.get(Tag.StudyInstanceUID),
// UIDUtils.createUID()));
// menuRoot.add(item);
JMenuItem item2 = new JMenuItem(Messages.getString("ImageGroupPane.rm_all")); //$NON-NLS-1$
item2.addActionListener(e -> AcquireManager.getInstance().removeAllImages());
menuRoot.add(item2);
}
return menuRoot;
}
@Override
public synchronized List<Toolbar> getToolBar() {
return toolBar;
}
@Override
public WtoolBar getStatusBar() {
return null;
}
@Override
public List<DockableTool> getToolPanel() {
return null;
}
@Override
public void setSelected(boolean selected) {
if (selected) {
EventManager.getInstance()
.fireSeriesViewerListeners(new SeriesViewerEvent(this, null, null, EVENT.SELECT_VIEW));
tabbedPane.refreshGUI();
}
}
@Override
public void setSelectedAndGetFocus() {
super.setSelectedAndGetFocus();
updateAll();
}
private void updateAll() {
tabbedPane.clearUnusedSeries(AcquireManager.getBySeries());
tabbedPane.setSelected(tabbedPane.getSelected());
tabbedPane.revalidate();
tabbedPane.repaint();
}
}