/**
* Copyright 2014 Comcast Cable Communications Management, LLC
*
* This file is part of CATS.
*
* CATS is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* CATS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with CATS. If not, see <http://www.gnu.org/licenses/>.
*/
package com.comcast.cats.vision.panel.imagecompare;
import static com.comcast.cats.vision.util.CatsVisionConstants.CLEAR_CURRENT_REGION;
import static com.comcast.cats.vision.util.CatsVisionConstants.DELETE_REGION;
import static com.comcast.cats.vision.util.CatsVisionConstants.IMAGE_COMPARE;
import static com.comcast.cats.vision.util.CatsVisionConstants.IMAGE_WINDOW;
import static com.comcast.cats.vision.util.CatsVisionConstants.LOAD_REGION;
import static com.comcast.cats.vision.util.CatsVisionConstants.LOAD_SNAPSHOT;
import static com.comcast.cats.vision.util.CatsVisionConstants.OCR;
import static com.comcast.cats.vision.util.CatsVisionConstants.OPTIONS;
import static com.comcast.cats.vision.util.CatsVisionConstants.SAVE_SNAPSHOT;
import static com.comcast.cats.vision.util.CatsVisionConstants.SAVE_SNAPSHOT_AS;
import static com.comcast.cats.vision.util.CatsVisionConstants.TEST_ALL_IMAGE_COMPARES;
import static com.comcast.cats.vision.util.CatsVisionConstants.TEST_CURRENT_REGION;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.KeyStroke;
import com.comcast.cats.vision.panel.TabbedFrame;
/**
* TabbedFrame for Image Comparison
*
* @author aswathyann
*
*/
public class ImageCompareTabbedFrame extends TabbedFrame
{
/**
*
*/
private static final long serialVersionUID = 6621955049529342705L;
private JMenu menuImageCompare;
private JMenu menuNewRegion;
private JMenuItem menuLoadImage;
private JMenuItem menuSaveImage;
private JMenuItem menuSaveAsImage;
private JMenu menuLoadRegion;
private JMenu menuDeleteRegion;
private JMenuItem menuNewImageCompareRegion;
private JMenuItem menuNewOCRRegion;
private JMenuItem menuClearRegion;
private JMenuItem menuTestCurrentRegion;
private JMenuItem menuTestAllRegions;
private JMenuBar jMenuBar;
public static void main( String[] args )
{
final String IC_DIALOG_NAME = "imageWindow";
final Dimension DIMENSION = new Dimension( 1090, 780 );
ImageCompareTabbedFrame icTabbedFrame = new ImageCompareTabbedFrame( IMAGE_WINDOW, IC_DIALOG_NAME, DIMENSION );
icTabbedFrame.addTab( "macID", new JPanel() );
}
public ImageCompareTabbedFrame( String title, String name, Dimension dimension )
{
super( title, name, dimension );
initView();
}
/**
* Method to set the image on ImageComparePanel.
*
* @param imageComparePanel
* ImageComparePanel
* @param bi
* BufferedImage
*/
public void setImageOnPanel( ImageComparePanel imageComparePanel, BufferedImage bi )
{
RegionDetailsPanel regionDetailsPanel = imageComparePanel.getRegionDetailsPanel();
FreezeVideoPanel freezeVideoPanel = imageComparePanel.getFreezeVideoPanel();
freezeVideoPanel.setImage( bi );
regionDetailsPanel.clearAllRegions();
regionDetailsPanel.clearCurrentRegionDetails();
freezeVideoPanel.clearRegion();
selectTab(imageComparePanel);
}
private void initView()
{
jMenuBar = new JMenuBar();
setJMenuBar( jMenuBar );
menuImageCompare = new JMenu( OPTIONS );
menuImageCompare.setMnemonic( KeyEvent.VK_I );
jMenuBar.add( menuImageCompare );
menuLoadImage = new JMenuItem( LOAD_SNAPSHOT );
menuLoadImage.setMnemonic( KeyEvent.VK_L );
menuImageCompare.add( menuLoadImage );
menuImageCompare.addSeparator();
menuSaveImage = new JMenuItem( SAVE_SNAPSHOT );
menuSaveImage.setEnabled( false );
menuSaveImage.setMnemonic( KeyEvent.VK_S );
menuImageCompare.add( menuSaveImage );
menuSaveAsImage = new JMenuItem( SAVE_SNAPSHOT_AS );
menuSaveAsImage.setMnemonic( KeyEvent.VK_A );
menuSaveAsImage.setEnabled( false );
menuImageCompare.add( menuSaveAsImage );
menuImageCompare.addSeparator();
menuNewRegion = new JMenu( "New Region" );
menuNewRegion.setMnemonic( KeyEvent.VK_R );
menuImageCompare.add( menuNewRegion );
menuNewImageCompareRegion = new JMenuItem( IMAGE_COMPARE );
menuNewRegion.add( menuNewImageCompareRegion );
menuNewOCRRegion = new JMenuItem( OCR );
menuNewRegion.add( menuNewOCRRegion );
menuLoadRegion = new JMenu( LOAD_REGION );
menuLoadRegion.setEnabled( false );
menuImageCompare.add( menuLoadRegion );
menuDeleteRegion = new JMenu( DELETE_REGION );
menuDeleteRegion.setEnabled( false );
menuImageCompare.add( menuDeleteRegion );
menuImageCompare.addSeparator();
menuClearRegion = new JMenuItem( CLEAR_CURRENT_REGION );
menuClearRegion.setEnabled( false );
menuClearRegion.setMnemonic( KeyEvent.VK_C );
menuClearRegion.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_C, ActionEvent.ALT_MASK ) );
menuImageCompare.add( menuClearRegion );
menuTestCurrentRegion = new JMenuItem( TEST_CURRENT_REGION );
menuTestCurrentRegion.setEnabled( false );
menuTestCurrentRegion.setMnemonic( KeyEvent.VK_T );
menuTestCurrentRegion.setDisplayedMnemonicIndex( 0 );
menuTestCurrentRegion.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_T, ActionEvent.ALT_MASK ) );
menuImageCompare.add( menuTestCurrentRegion );
menuTestAllRegions = new JMenuItem( TEST_ALL_IMAGE_COMPARES );
menuTestAllRegions.setEnabled( false );
menuTestAllRegions.setMnemonic( KeyEvent.VK_A );
menuTestAllRegions.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_A, ActionEvent.ALT_MASK ) );
menuImageCompare.add( menuTestAllRegions );
}
public JMenu getMenuImageCompare()
{
return menuImageCompare;
}
public void setMenuImageCompare( JMenu menuImageCompare )
{
this.menuImageCompare = menuImageCompare;
}
public JMenu getMenuNewRegion()
{
return menuNewRegion;
}
public void setMenuNewRegion( JMenu menuNewRegion )
{
this.menuNewRegion = menuNewRegion;
}
public JMenuItem getMenuLoadImage()
{
return menuLoadImage;
}
public void setMenuLoadImage( JMenuItem menuLoadImage )
{
this.menuLoadImage = menuLoadImage;
}
public JMenuItem getMenuSaveImage()
{
return menuSaveImage;
}
public void setMenuSaveImage( JMenuItem menuSaveImage )
{
this.menuSaveImage = menuSaveImage;
}
public JMenuItem getMenuSaveAsImage()
{
return menuSaveAsImage;
}
public void setMenuSaveAsImage( JMenuItem menuSaveAsImage )
{
this.menuSaveAsImage = menuSaveAsImage;
}
public JMenu getMenuLoadRegion()
{
return menuLoadRegion;
}
public void setMenuLoadRegion( JMenu menuLoadRegion )
{
this.menuLoadRegion = menuLoadRegion;
}
public JMenu getMenuDeleteRegion()
{
return menuDeleteRegion;
}
public void setMenuDeleteRegion( JMenu menuDeleteRegion )
{
this.menuDeleteRegion = menuDeleteRegion;
}
public JMenuItem getMenuNewImageCompareRegion()
{
return menuNewImageCompareRegion;
}
public void setMenuNewImageCompareRegion( JMenuItem menuNewImageCompareRegion )
{
this.menuNewImageCompareRegion = menuNewImageCompareRegion;
}
public JMenuItem getMenuNewOCRRegion()
{
return menuNewOCRRegion;
}
public void setMenuNewOCRRegion( JMenuItem menuNewOCRRegion )
{
this.menuNewOCRRegion = menuNewOCRRegion;
}
public JMenuItem getMenuClearRegion()
{
return menuClearRegion;
}
public void setMenuClearRegion( JMenuItem menuClearRegion )
{
this.menuClearRegion = menuClearRegion;
}
public JMenuItem getMenuTestCurrentRegion()
{
return menuTestCurrentRegion;
}
public void setMenuTestCurrentRegion( JMenuItem menuTestCurrentRegion )
{
this.menuTestCurrentRegion = menuTestCurrentRegion;
}
public JMenuItem getMenuTestAllRegions()
{
return menuTestAllRegions;
}
public void setMenuTestAllRegions( JMenuItem menuTestAllRegions )
{
this.menuTestAllRegions = menuTestAllRegions;
}
public JMenuBar getJmenuBar()
{
return jMenuBar;
}
public void setJmenuBar( JMenuBar jMenuBar )
{
this.jMenuBar = jMenuBar;
}
public void addActionListener( ActionListener listener )
{
menuLoadImage.addActionListener( listener );
menuSaveImage.addActionListener( listener );
menuSaveAsImage.addActionListener( listener );
menuNewImageCompareRegion.addActionListener( listener );
menuNewOCRRegion.addActionListener( listener );
menuClearRegion.addActionListener( listener );
menuTestCurrentRegion.addActionListener( listener );
menuTestAllRegions.addActionListener( listener );
}
public void addMouseListener( MouseListener listener )
{
menuLoadRegion.addMouseListener( listener );
menuDeleteRegion.addMouseListener( listener );
}
public void removeActionListener( ActionListener listener )
{
menuLoadImage.removeActionListener( listener );
menuSaveImage.removeActionListener( listener );
menuSaveAsImage.removeActionListener( listener );
menuNewImageCompareRegion.removeActionListener( listener );
menuNewOCRRegion.removeActionListener( listener );
menuClearRegion.removeActionListener( listener );
menuTestCurrentRegion.removeActionListener( listener );
menuTestAllRegions.removeActionListener( listener );
}
public void removeMouseListener( MouseListener listener )
{
menuLoadRegion.removeMouseListener( listener );
menuDeleteRegion.removeMouseListener( listener );
}
}