/*========================================================================= Program: FusionViewer Module: $RCSfile: FusionControlPanel.java,v $ Language: Java Date: $Date: 2007/02/02 19:27:57 $ Version: $Revision: 1.2 $ Copyright (c) Insightful Corporation. All rights reserved. See Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ package org.fusionviewer.ui; import java.awt.BorderLayout; import javax.swing.JPanel; import javax.swing.JTabbedPane; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import org.fusionviewer.model.FusionDisplayModel; import org.fusionviewer.model.ImageDisplayModel; import org.fusionviewer.model.ImageDisplayModelListener; /**\class FusionControlPanel *\brief Tabbed panel to select visualization modes. */ public class FusionControlPanel extends JPanel implements ChangeListener, ImageDisplayModelListener { private FusionDisplayModel m_model; private JTabbedPane m_rendererSelector; private JPanel m_alphaBlendPanel; private JPanel m_checkerboardPanel; private JPanel m_splitWindowPanel; public FusionControlPanel(FusionDisplayModel model) { m_model = model; m_model.addListener(this); m_alphaBlendPanel = new AlphaBlendPanel(model); m_checkerboardPanel = new CheckerboardPanel(model); m_splitWindowPanel = new SplitWindowPanel(model); m_rendererSelector = new JTabbedPane(); m_rendererSelector.addTab("Blend", m_alphaBlendPanel); m_rendererSelector.addTab("Checkerboard", m_checkerboardPanel); m_rendererSelector.addTab("Split Window", m_splitWindowPanel); m_rendererSelector.addChangeListener(this); setLayout(new BorderLayout()); add(m_rendererSelector); setValuesToModel(); } /* (non-Javadoc) * @see javax.swing.event.ChangeListener#stateChanged(javax.swing.event.ChangeEvent) */ public void stateChanged(ChangeEvent e) { switch (m_rendererSelector.getSelectedIndex()) { case 0: m_model.setFusionMode(FusionDisplayModel.ALPHABLEND_MODE); break; case 1: m_model.setFusionMode(FusionDisplayModel.CHECKERBOARD_MODE); break; case 2: m_model.setFusionMode(FusionDisplayModel.SPLITWINDOW_MODE); break; } } private void setValuesToModel() { switch (m_model.getFusionMode()) { case FusionDisplayModel.ALPHABLEND_MODE: m_rendererSelector.setSelectedIndex(0); break; case FusionDisplayModel.CHECKERBOARD_MODE: m_rendererSelector.setSelectedIndex(1); break; case FusionDisplayModel.SPLITWINDOW_MODE: m_rendererSelector.setSelectedIndex(2); break; } } /* (non-Javadoc) * @see com.insightful.jimage.core.ImageDisplayModelListener#modelChanged(int, com.insightful.jimage.core.ImageDisplayModel) */ public void modelChanged(int type, int planes, ImageDisplayModel source) { if (type == FusionDisplayModel.FUSIONMODE_CHANGED) setValuesToModel(); } }