/*
 * MapNavigationLayer.java
 *
 * Created on Jul 15, 2009, 2:33:29 PM
 */

package usda.weru.gis.gui;

/**
 *
 * @author Joseph A. Levin <joelevin@weru.ksu.edu>
 */
public class MapNavLayer extends javax.swing.JPanel {
    private static final long serialVersionUID = 1L;
    
    private final MapController c_controller;
    /** Creates new form MapNavigationLayer
	 * @param controller */
    public MapNavLayer(MapController controller) {
        initComponents();
        c_controller = controller;
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        panPanel = new javax.swing.JPanel();
        northPanel = new javax.swing.JPanel();
        panNorth = new javax.swing.JLabel();
        midPanel = new javax.swing.JPanel();
        panWest = new javax.swing.JLabel();
        panEast = new javax.swing.JLabel();
        southPanel = new javax.swing.JPanel();
        panSouth = new javax.swing.JLabel();
        zoomCenterPanel = new javax.swing.JPanel();
        zoomPanel = new javax.swing.JPanel();
        zoomIn = new javax.swing.JLabel();
        zoomOut = new javax.swing.JLabel();
        filler = new javax.swing.JLabel();

        setOpaque(false);

        panPanel.setOpaque(false);
        panPanel.setLayout(new java.awt.BorderLayout());

        northPanel.setOpaque(false);
        northPanel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 0, 0));

        panNorth.setIcon(new javax.swing.ImageIcon(getClass().getResource("/usda/weru/gis/gui/north-mini.png"))); // NOI18N
        java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("usda/weru/gis/gui/Bundle"); // NOI18N
        panNorth.setText(bundle.getString("MapNavLayer.panNorth.text")); // NOI18N
        panNorth.setToolTipText(bundle.getString("MapNavLayer.panNorth.toolTipText")); // NOI18N
        panNorth.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                panNorthMouseClicked(evt);
            }
        });
        northPanel.add(panNorth);

        panPanel.add(northPanel, java.awt.BorderLayout.NORTH);

        midPanel.setOpaque(false);

        panWest.setIcon(new javax.swing.ImageIcon(getClass().getResource("/usda/weru/gis/gui/west-mini.png"))); // NOI18N
        panWest.setText(bundle.getString("MapNavLayer.panWest.text")); // NOI18N
        panWest.setToolTipText(bundle.getString("MapNavLayer.panWest.toolTipText")); // NOI18N
        panWest.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                panWestMouseClicked(evt);
            }
        });

        panEast.setIcon(new javax.swing.ImageIcon(getClass().getResource("/usda/weru/gis/gui/east-mini.png"))); // NOI18N
        panEast.setText(bundle.getString("MapNavLayer.panEast.text")); // NOI18N
        panEast.setToolTipText(bundle.getString("MapNavLayer.panEast.toolTipText")); // NOI18N
        panEast.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                panEastMouseClicked(evt);
            }
        });

        javax.swing.GroupLayout midPanelLayout = new javax.swing.GroupLayout(midPanel);
        midPanel.setLayout(midPanelLayout);
        midPanelLayout.setHorizontalGroup(
            midPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(midPanelLayout.createSequentialGroup()
                .addComponent(panWest)
                .addGap(0, 0, 0)
                .addComponent(panEast))
        );
        midPanelLayout.setVerticalGroup(
            midPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(panWest)
            .addComponent(panEast)
        );

        panPanel.add(midPanel, java.awt.BorderLayout.CENTER);

        southPanel.setOpaque(false);
        southPanel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 0, 0));

        panSouth.setIcon(new javax.swing.ImageIcon(getClass().getResource("/usda/weru/gis/gui/south-mini.png"))); // NOI18N
        panSouth.setText(bundle.getString("MapNavLayer.panSouth.text")); // NOI18N
        panSouth.setToolTipText(bundle.getString("MapNavLayer.panSouth.toolTipText")); // NOI18N
        panSouth.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                panSouthMouseClicked(evt);
            }
        });
        southPanel.add(panSouth);

        panPanel.add(southPanel, java.awt.BorderLayout.SOUTH);

        zoomCenterPanel.setOpaque(false);

        zoomPanel.setOpaque(false);

        zoomIn.setIcon(new javax.swing.ImageIcon(getClass().getResource("/usda/weru/gis/gui/zoom-plus-mini.png"))); // NOI18N
        zoomIn.setText(bundle.getString("MapNavLayer.zoomIn.text")); // NOI18N
        zoomIn.setToolTipText(bundle.getString("MapNavLayer.zoomIn.toolTipText")); // NOI18N
        zoomIn.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                zoomInMouseClicked(evt);
            }
        });

        zoomOut.setIcon(new javax.swing.ImageIcon(getClass().getResource("/usda/weru/gis/gui/zoom-minus-mini.png"))); // NOI18N
        zoomOut.setText(bundle.getString("MapNavLayer.zoomOut.text")); // NOI18N
        zoomOut.setToolTipText(bundle.getString("MapNavLayer.zoomOut.toolTipText")); // NOI18N
        zoomOut.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                zoomOutMouseClicked(evt);
            }
        });

        filler.setBackground(new java.awt.Color(102, 102, 102));
        filler.setText(bundle.getString("MapNavLayer.filler.text")); // NOI18N
        filler.setOpaque(true);

        javax.swing.GroupLayout zoomPanelLayout = new javax.swing.GroupLayout(zoomPanel);
        zoomPanel.setLayout(zoomPanelLayout);
        zoomPanelLayout.setHorizontalGroup(
            zoomPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(zoomOut, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addComponent(filler, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 18, Short.MAX_VALUE)
            .addComponent(zoomIn, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        zoomPanelLayout.setVerticalGroup(
            zoomPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(zoomPanelLayout.createSequentialGroup()
                .addComponent(zoomIn)
                .addGap(0, 0, 0)
                .addComponent(filler, javax.swing.GroupLayout.PREFERRED_SIZE, 12, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 0, 0)
                .addComponent(zoomOut))
        );

        zoomCenterPanel.add(zoomPanel);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(panPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(zoomCenterPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                .addContainerGap(354, Short.MAX_VALUE))
        );

        layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {panPanel, zoomCenterPanel});

        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(panPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(zoomCenterPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(209, Short.MAX_VALUE))
        );
    }// </editor-fold>//GEN-END:initComponents

    private void zoomOutMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_zoomOutMouseClicked
        c_controller.zoomOut(2);
    }//GEN-LAST:event_zoomOutMouseClicked

    private void zoomInMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_zoomInMouseClicked
        c_controller.zoomIn(2);
    }//GEN-LAST:event_zoomInMouseClicked

    private void panNorthMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_panNorthMouseClicked
        c_controller.pan(0, 200);
    }//GEN-LAST:event_panNorthMouseClicked

    private void panEastMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_panEastMouseClicked
        c_controller.pan(-200, 0);
    }//GEN-LAST:event_panEastMouseClicked

    private void panSouthMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_panSouthMouseClicked
        c_controller.pan(0, -200);
    }//GEN-LAST:event_panSouthMouseClicked

    private void panWestMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_panWestMouseClicked
        c_controller.pan(200, 0);
    }//GEN-LAST:event_panWestMouseClicked


    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel filler;
    private javax.swing.JPanel midPanel;
    private javax.swing.JPanel northPanel;
    private javax.swing.JLabel panEast;
    private javax.swing.JLabel panNorth;
    private javax.swing.JPanel panPanel;
    private javax.swing.JLabel panSouth;
    private javax.swing.JLabel panWest;
    private javax.swing.JPanel southPanel;
    private javax.swing.JPanel zoomCenterPanel;
    private javax.swing.JLabel zoomIn;
    private javax.swing.JLabel zoomOut;
    private javax.swing.JPanel zoomPanel;
    // End of variables declaration//GEN-END:variables

}
