import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.text.*;
import java.net.*;
import java.applet.Applet;
import java.io.*;
import java.awt.image.*;
class ViewPage extends JPanel

//=====================================================
InputMap mapaEntrada;
ActionMap mapaAction ;
HandlerKey hkLeft = new HandlerKey("LeftKey",KeyEvent.VK_LEFT);
HandlerKey hkRight = new HandlerKey("RightKey",KeyEvent.VK_RIGHT);
HandlerKey hkPageUp = new HandlerKey("PageUp",KeyEvent.VK_PAGE_UP);
HandlerKey hkPageDown = new HandlerKey("PageDown",KeyEvent.VK_PAGE_DOWN);
//=================================================
public ViewPage()
{
setLayout(new BorderLayout());
add(series_part,BorderLayout.EAST);//series_part put at right side
add(main_view,BorderLayout.CENTER);
add(image_toolbar,BorderLayout.WEST);
addFocusListener(new FocusAdapter()
{
public void focusGained(FocusEvent e)
{}
});
this.requestFocus();
image_toolbar.setEnabled(false);  mapaEntrada= getInputMap(WHEN_IN_FOCUSED_WINDOW);
 mapaAction = getActionMap();
 mapaEntrada.put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT,0),"LeftKey");
 mapaEntrada.put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT,0),"RightKey");
 mapaEntrada.put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP,0),"PageUp");
 mapaEntrada.put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN,0),"PageDown");
 mapaAction.put("LeftKey",hkLeft);
 mapaAction.put("RightKey",hkRight);
 mapaAction.put("PageUp",hkPageUp);
 mapaAction.put("PageDown",hkPageDown);
scaleWindow.vpInst = this;
}//end of ViewPage()
class HandlerKey extends AbstractAction
{
int nKeyCode=0;
public HandlerKey(String s)
{
super(s);
}
public HandlerKey(String s,int keycode)
{
super(s);
nKeyCode=keycode;
}
public void actionPerformed(ActionEvent e)
{
if(nKeyCode==KeyEvent.VK_LEFT)
{
showDebug("LEFT key stroke");
if(nFirstIndex>0)
{
nFirstIndex--;
//update mainview
main_view.adjustFragment();
}
}
if(nKeyCode==KeyEvent.VK_RIGHT)
{
showDebug("RIGHT key stroke");
if(nFirstIndex<vecFiles.size()-1)
{
nFirstIndex++;
//update mainview
main_view.adjustFragment();
}
}
if(nKeyCode==KeyEvent.VK_PAGE_DOWN)
{//HVW will move a row up
if((nFirstIndex+main_view.cols)<=vecFiles.size()-1)
{
nFirstIndex=nFirstIndex+main_view.cols;
}
else
nFirstIndex=vecFiles.size()-1-main_view.cols;
showDebug("page down"+nFirstIndex+" "+main_view.cols);
main_view.adjustFragment();
}
if(nKeyCode==KeyEvent.VK_PAGE_UP)
{//HVW will move a row up
if(nFirstIndex<main_view.cols)
{
nFirstIndex=0;
}
else
nFirstIndex=nFirstIndex-main_view.cols;
showDebug("page up "+nFirstIndex+" "+main_view.cols);
main_view.adjustFragment();
}
}
}//end of HandlerKey}//end of class ViewPage