Back to index

moin  1.9.0~rc2
FloatingTextField.java
Go to the documentation of this file.
00001 /*
00002  * @(#)FloatingTextField.java 5.1
00003  *
00004  */
00005 
00006 package CH.ifa.draw.util;
00007 
00008 import java.awt.*;
00009 import java.awt.event.*;
00010 
00019 public  class FloatingTextField extends Object {
00020 
00021     private TextArea fEditWidget;
00022 
00023     private Container   fContainer;
00024 
00025     public FloatingTextField() {
00026         fEditWidget = new TextArea(5, 20);
00027     }
00028 
00032     public void createOverlay(Container container) {
00033         createOverlay(container, null);
00034     }
00035 
00040     public void createOverlay(Container container, Font font) {
00041         container.add(fEditWidget, 0);
00042         if (font != null)
00043             fEditWidget.setFont(font);
00044         fContainer = container;
00045        fEditWidget.requestFocus();
00046     }
00047 
00051     public void addActionListener(ActionListener listener) {
00052        throw new RuntimeException("Adding action listener " + listener);
00053        //fEditWidget.addActionListener(listener);
00054     }
00055 
00059     public void removeActionListener(ActionListener listener) {
00060        throw new RuntimeException("Removing action listener " + listener);
00061        // CC removed fEditWidget.removeActionListener(listener);
00062     }
00063 
00067     public void setBounds(Rectangle r, String text) {
00068        fEditWidget.setText(text);
00069         fEditWidget.setBounds(r.x, r.y, r.width, r.height);
00070         fEditWidget.setVisible(true);
00071        fEditWidget.selectAll();
00072        fEditWidget.requestFocus();
00073     }
00074 
00078     public String getText() {
00079         return fEditWidget.getText();
00080     }
00081 
00085     public Dimension getPreferredSize(int rows, int cols) {
00086         return fEditWidget.getPreferredSize(rows, cols);
00087     }
00088 
00092     public void endOverlay() {
00093        fContainer.requestFocus();
00094        if (fEditWidget == null)
00095            return;
00096        fEditWidget.setVisible(false);
00097        fContainer.remove(fEditWidget);
00098 
00099        Rectangle bounds = fEditWidget.getBounds();
00100        fContainer.repaint(bounds.x, bounds.y, bounds.width, bounds.height);
00101     }
00102 }
00103