1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-16 10:08:36 +03:00
occt/samples/java/java/util/IntegerSpin.java
2012-03-05 19:23:40 +04:00

181 lines
4.1 KiB
Java
Executable File

//Title: Geological editor
//Version:
//Copyright: Copyright (c) 1998
//Author: User Interface Group (Nizhny Novgorod)
//Company: EQCC
//Description: Prototype of BRGM project
package util;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class IntegerSpin extends SpinBox
{
int myStep = 1;
int myVal = 0;
int minVal = 0;
int maxVal = 0;
boolean isWrong = false; // true if in the strBuf was putted any string
String strBuf;
//*********************************************************************
public IntegerSpin()
{
super();
txtFld.setText("" + myVal);
}
public IntegerSpin(int aStartVal, int aStep)
{
super();
myVal = aStartVal;
txtFld.setText("" + myVal);
myStep = aStep;
}
//*********************************************************************
public int getStep()
{
return myStep;
}
//*********************************************************************
public void setStep(int aStep)
{
myStep = aStep;
}
//*********************************************************************
public int getValue()
{
return myVal;
}
//*********************************************************************
public void setValue(int aVal)
{
myVal = aVal;
if ((maxVal - minVal) > 0)
{
if (myVal > maxVal) myVal = maxVal;
if (myVal < minVal) myVal = minVal;
}
txtFld.setText("" + myVal);
txtFld.setCaretPosition(0);
}
//*********************************************************************
public void setValue(String aStr)
{
if (aStr.equals("") || aStr.equals("-"))
setValue(0);
else
setValue((new Integer(aStr)).intValue());
}
//*********************************************************************
protected void IncreaseValue()
{
myVal += myStep;
if ((maxVal - minVal) > 0)
if (myVal > maxVal) myVal = maxVal;
txtFld.setText("" + myVal);
txtFld.setCaretPosition(0);
}
//*********************************************************************
protected void DecreaseValue()
{
myVal -= myStep;
if ((maxVal - minVal) > 0)
if (myVal < minVal) myVal = minVal;
txtFld.setText("" + myVal);
txtFld.setCaretPosition(0);
}
//*********************************************************************
public void setMaxValue(int aMax)
{
maxVal = aMax;
}
//*********************************************************************
public void setMinValue(int aMin)
{
minVal = aMin;
}
//*********************************************************************
// KeyListener
//*********************************************************************
public void keyPressed(KeyEvent e)
{
int aKod = e.getKeyCode();
if (aKod == e.VK_MINUS)
{
String aStr = txtFld.getText();
int aPos = aStr.indexOf("-");
if (aPos == -1) // Minus not present
{
if ((txtFld.getCaretPosition()) != 0)
if (!isWrong)
{
isWrong = true;
strBuf = txtFld.getText();
}
}
else if (!isWrong)
{
isWrong = true;
strBuf = txtFld.getText();
}
}
else if (aKod == e.VK_UP)
{
setValue(txtFld.getText());
IncreaseValue();
}
else if (aKod == e.VK_DOWN)
{
setValue(txtFld.getText());
DecreaseValue();
}
else if (!e.isActionKey() && aKod != e.VK_BACK_SPACE)
{
if (!Character.isDigit(e.getKeyChar()))
if (!isWrong)
{
isWrong = true;
strBuf = txtFld.getText();
}
}
}
//*********************************************************************
public void keyReleased(KeyEvent e)
{
if (isWrong)
{
txtFld.setText(strBuf);
strBuf = "";
isWrong = false;
}
}
//*********************************************************************
// FocusListener
//*********************************************************************
public void focusLost(FocusEvent e)
{
setValue(txtFld.getText());
// txtFld.setCaretPosition(0);
}
}