Integration of OCCT 6.5.0 from SVN
[occt.git] / samples / java / java / ThreadDlg.java
1
2 //Title:        AISDisplayMode sample
3 //Version:      
4 //Copyright:    Copyright (c) 1999
5 //Author:       
6 //Company:      Matra Datavision
7 //Description:  
8
9 import java.awt.*;
10 import java.awt.event.*;
11 import java.util.*;
12 import java.math.*;
13 import javax.swing.*;
14 import javax.swing.event.*;
15 import util.*;
16
17
18 public class ThreadDlg extends StandardDlg
19                                    implements InputMethodListener,
20                                   KeyListener
21 {
22     JTextField txtThread;
23
24     private boolean consume = false;
25     private String strThread = new String("");
26
27     private int myValue = 1;
28     private boolean isOK = false;
29
30   //**********************************************************************
31     public ThreadDlg(Frame parent, int value)
32     {
33       super(parent, "Change the animation thread", true, true, false, true);
34       myValue = value;
35
36       InitDlg();
37
38       strThread = String.valueOf(myValue);
39       txtThread.setText(strThread);
40
41       pack();
42     }
43
44 //**********************************************************************
45     private void InitDlg()
46     {
47       JPanel aPane = new JPanel(new GridLayout(1, 2, 4, 4));
48
49       aPane.add(new JLabel("Angle Increment"));
50
51       txtThread = new JTextField(6);
52       txtThread.addInputMethodListener(this);
53       txtThread.addKeyListener(this);
54       txtThread.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
55       aPane.add(txtThread);
56
57       aPane.setBorder(BorderFactory.createEmptyBorder(5, 7, 5, 7));
58       ControlsPanel.setLayout(new BorderLayout());
59       ControlsPanel.add(aPane, BorderLayout.CENTER);
60       pack();
61       setResizable(false);
62     }
63
64 //**********************************************************************
65     public void OkAction()
66     {
67       Integer value;
68       String newValue;
69
70       newValue = txtThread.getText();
71       value = new Integer(newValue.equals("")? "0" : newValue);
72       myValue = value.intValue();
73
74       isOK = true;
75       dispose();
76     }
77
78 //**********************************************************************
79     public void CancelAction()
80     {
81       isOK = false;
82       dispose();
83     }
84
85
86 //**********************************************************************
87     public int getValue()
88     {
89       return myValue;
90     }
91
92 //**********************************************************************
93     public boolean isOK()
94     {
95       return isOK;
96     }
97
98
99 //=======================================================================//
100 // Key listener interface
101 //=======================================================================//
102   public void keyTyped(KeyEvent event)
103   {
104   }
105
106 //=======================================================================//
107   public void keyPressed(KeyEvent event)
108   {
109     JTextField field = (JTextField) event.getSource();
110
111     int aKod = event.getKeyCode();
112     if (!event.isActionKey() && aKod != event.VK_BACK_SPACE &&
113                                      aKod != event.VK_DELETE)
114     {
115       if (!Character.isDigit(event.getKeyChar()))
116         consume = true;
117     }
118   }
119
120 //=======================================================================//
121   public void keyReleased(KeyEvent event)
122   {
123     JTextField field = (JTextField) event.getSource();
124     String newValue = field.getText();
125
126     if (field.equals(txtThread))
127     {
128       if (!newValue.equals(strThread))
129       {
130         if (consume)
131         {
132           txtThread.setText(strThread);
133           consume = false;
134         }
135         else
136         {
137           strThread = newValue;
138           Integer value = new Integer(newValue.equals("")? "0" : newValue);
139           if (value.intValue()<0)
140           {
141             txtThread.selectAll();
142             JOptionPane.showMessageDialog(this, "Please enter a positive value",
143                                           "Warning!!!", JOptionPane.WARNING_MESSAGE);
144             requestFocus();
145           }
146           else if (value.intValue()>60)
147           {
148             txtThread.selectAll();
149             JOptionPane.showMessageDialog(this, "Please enter an integer between 1 and 60",
150                                           "Warning!!!", JOptionPane.WARNING_MESSAGE);
151             requestFocus();
152           }
153         }
154       }
155     }
156   }
157
158 //=======================================================================//
159 // InputMethod listener interface
160 //=======================================================================//
161   public void inputMethodTextChanged(InputMethodEvent event)
162   {
163     if (consume)
164     {
165       event.consume();
166       consume = false;
167     }
168   }
169
170   public void caretPositionChanged(InputMethodEvent event)
171   {
172   }
173
174 }