Package org.w3c.tools.forms

Source Code of org.w3c.tools.forms.RangedIntegerFieldEditor

// RangedIntegerField.java
// $Id: RangedIntegerField.java,v 1.3 2000/08/16 21:37:49 ylafon Exp $
// (c) COPYRIGHT MIT and INRIA, 1996.
// Please first read the full copyright statement in file COPYRIGHT.html

package org.w3c.tools.forms ;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Event;
import java.awt.Insets;
import java.awt.Panel;
import java.awt.Scrollbar;
import java.awt.TextComponent;
import java.awt.TextField;

class RangedIntegerFieldEditor extends Panel {
    RangedIntegerField field = null ;
    TextField text   = null ;
    Scrollbar slider = null ;
    int       lo     = Integer.MIN_VALUE ;
    int       hi     = Integer.MAX_VALUE ;

    public boolean action (Event evt, Object arg) {
  try {
      Integer ival = new Integer(Integer.parseInt(text.getText()));
      if ( ! field.acceptChange(ival) )
    text.setText(field.getValue().toString()) ;
      return true ;
  } catch (NumberFormatException ex) {
      // This should never happen!
      throw new RuntimeException ("implementation bug !");
  }
    }

    public boolean handleEvent (Event evt) {
  if ( evt.target instanceof Scrollbar ) {
      text.setText(String.valueOf(slider.getValue()));
      return true ;
  } else {
      return super.handleEvent(evt) ;
  }
    }

    public boolean keyDown (Event evt, int key) {
  if ( evt.target instanceof TextField ) {
      switch (key) {
        case 9:
        case 10:
      action(evt, evt.arg) ;
      field.manager.nextField() ;
      return true ;
        case '0': case '1': case '2': case '3': case '4':
        case '5': case '6': case '7': case '8': case '9':
        case Event.LEFT: case Event.RIGHT: case 96: case 127:
      return super.keyDown(evt, key) ;
        default:
      return true ;
      }
  } else {
      return super.keyDown(evt, key) ;
  }
    }

    public Insets insets() {
  return new Insets(5, 5, 5, 8) ;
    }

    RangedIntegerFieldEditor(RangedIntegerField field, int lo, int hi, int v) {
  super() ;
  this.field = field ;
  BorderLayout bl = new BorderLayout() ;
  setLayout(bl) ;
  // Add the text:
  text = new TextField("0") ;
  add ("North", text) ;
  // Add the slider:
  slider = new Scrollbar(Scrollbar.HORIZONTAL, 0, 100, lo, hi) ;
  add ("South", slider) ;
    }
}

public class RangedIntegerField extends IntegerField {
    int hi = Integer.MAX_VALUE ;
    int lo = Integer.MIN_VALUE ;
    RangedIntegerFieldEditor editor = null ;

    /**
     * Get an editor for this field.
     */

    public Component getEditor() {
  if ( editor == null )
      editor = new RangedIntegerFieldEditor(this, lo, hi, getIntValue());
  return editor ;
    }

    public RangedIntegerField(FormManager manager
            , String name, String title
            , int lo, int hi, int val)
  throws IllegalFieldValueException
    {
  super(manager, name, title, val) ;
  this.lo = lo ;
  this.hi = hi ;
    }
}
TOP

Related Classes of org.w3c.tools.forms.RangedIntegerFieldEditor

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.