Package com.bbn.openmap.gui

Source Code of com.bbn.openmap.gui.DimensionQueryPanel

// **********************************************************************
//
//<copyright>
//
//BBN Technologies, a Verizon Company
//10 Moulton Street
//Cambridge, MA 02138
//(617) 873-8000
//
//Copyright (C) BBNT Solutions LLC. All rights reserved.
//
//</copyright>
//**********************************************************************
//
//$Source:
///cvs/darwars/ambush/aar/src/com/bbn/ambush/mission/MissionHandler.java,v
//$
//$RCSfile: DimensionQueryPanel.java,v $
//$Revision: 1.1.2.3 $
//$Date: 2006/11/14 23:04:53 $
//$Author: kratkiew $
//
//**********************************************************************

package com.bbn.openmap.gui;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;

public class DimensionQueryPanel extends JPanel {

    private JTextField hfield;
    private JTextField vfield;
    private JLabel htext;
    private JLabel vtext;
    private JLabel ptext1;
    private JLabel ptext2;
    public static final String HEIGHT_CMD = "DQP_HEIGHT_CMD";
    public static final String WIDTH_CMD = "DQP_WIDTH_CMD";

    public DimensionQueryPanel() {
        this(0, 0);
    }

    public DimensionQueryPanel(Dimension d) {
        this((int)d.getWidth(), (int)d.getHeight());
    }
   
    public DimensionQueryPanel(int width, int height) {

        htext = new JLabel("Width: ");
        htext.setHorizontalAlignment(SwingConstants.RIGHT);
        vtext = new JLabel("Height: ");
        vtext.setHorizontalAlignment(SwingConstants.RIGHT);
        hfield = new DimensionQueryField(Integer.toString(width), 5);
        hfield.setActionCommand(WIDTH_CMD);
        vfield = new DimensionQueryField(Integer.toString(height), 5);
        vfield.setActionCommand(HEIGHT_CMD);
        ptext1 = new JLabel(" pixels");
        ptext2 = new JLabel(" pixels");
        layoutPanel();
    }

    public void setFieldWidth(int width) {
        hfield.setText(Integer.toString(width));
    }

    public int getFieldWidth() {
        return Integer.parseInt(hfield.getText());
    }

    public void setFieldHeight(int height) {
        vfield.setText(Integer.toString(height));
    }

    public int getFieldHeight() {
        return Integer.parseInt(vfield.getText());
    }

    public void addActionListener(ActionListener al) {
        hfield.addActionListener(al);
        vfield.addActionListener(al);
    }
   
    public void removeActionListener(ActionListener al) {
        hfield.removeActionListener(al);
        vfield.removeActionListener(al);
    }
   
    public void layoutPanel() {

        GridBagLayout gb = new GridBagLayout();
        GridBagConstraints c = new GridBagConstraints();
        setLayout(gb);

        c.insets = new Insets(3, 3, 3, 3);
        c.gridx = 0;
        c.gridy = 0;
        c.fill = GridBagConstraints.NONE;
        c.weightx = 0;
        c.anchor = GridBagConstraints.EAST;

        gb.setConstraints(htext, c);
        add(htext);

        c.gridx = 1;
        c.fill = GridBagConstraints.HORIZONTAL;
        c.weightx = 1f;
        c.anchor = GridBagConstraints.WEST;

        gb.setConstraints(hfield, c);
        add(hfield);

        c.gridx = 2;
        c.fill = GridBagConstraints.NONE;
        c.weightx = 0;
        gb.setConstraints(ptext1, c);
        add(ptext1);

        // Next row

        c.gridx = 0;
        c.gridy = 1;
        c.fill = GridBagConstraints.NONE;
        c.weightx = 0;
        c.anchor = GridBagConstraints.EAST;

        gb.setConstraints(vtext, c);
        add(vtext);

        c.gridx = 1;
        c.fill = GridBagConstraints.HORIZONTAL;
        c.weightx = 1f;
        c.anchor = GridBagConstraints.WEST;

        gb.setConstraints(vfield, c);
        add(vfield);

        c.gridx = 2;
        c.fill = GridBagConstraints.NONE;
        c.weightx = 0;
        gb.setConstraints(ptext2, c);
        add(ptext2);
    }

    /**
     * @param d
     */
    public void setDimension(Dimension d) {
        setFieldWidth((int)d.getWidth());
        setFieldHeight((int)d.getHeight());
    }

    /**
     * @return Dimension of panel.
     */
    public Dimension getDimension() {
        return new Dimension(getFieldWidth(), getFieldHeight());
    }

    /**
     * Customized text field that sends an action event when focus is lost (in
     * addition to when the user hits "enter"). Fixes situations where listeners
     * were not getting dimension updates when user failed to hit enter (a
     * common occurance).
     */
    private class DimensionQueryField extends JTextField implements FocusListener {

        private DimensionQueryField(String text, int columns) {
            super(text, columns);
            this.addFocusListener(this);
}

        public void focusGained(FocusEvent e) {
        }

        public void focusLost(FocusEvent e) {
            fireActionPerformed();
        }
    }
}
TOP

Related Classes of com.bbn.openmap.gui.DimensionQueryPanel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.