CustomerIdEditorSimple.java Sample
This topic inludes the source code for the CustomerIdEditorSimple.java Sample.
Sample Location
This sample is located in the following directory in your WebLogic Workshop installation:
BEA_HOME/weblogic81/samples/workshop/ExtensionDevKit/ControlDevKit/ControlFeatures/propEditor/ide/
Sample Source Code
01 package propEditor.ide;
02
03 import java.util.StringTokenizer;
04 import java.awt.BorderLayout;
05 import java.awt.Component;
06 import javax.swing.JTextField;
07 import javax.swing.JLabel;
08 import javax.swing.JFormattedTextField;
09 import javax.swing.JPanel;
10 import com.bea.ide.control.EditorSupport;
11 import javax.swing.JTextPane;
12 import com.bea.ide.control.AttributeEditorSimple;
13 import com.bea.control.Issue;
14 import com.bea.control.DefaultIssue;
15
16 /*
17 * Represents an attribute editing/validation dialog for the
18 * customer-id attribute.
19 */
20 public class CustomerIdEditorSimple extends JPanel implements AttributeEditorSimple
21 {
22 private JTextField m_field;
23
24 /*
25 * Constructs this dialog using the existing value for
26 * the customer-id attribute.
27 */
28 public CustomerIdEditorSimple(String origValue)
29 {
30 super(new BorderLayout());
31 m_field = new JTextField(origValue);
32 String messageText = "This sample supports the following values: \n" +
33 "987654 987655 \n" +
34 "987658 987659 \n"
35 +"that's all \n";
36 JTextPane valueMessage = new JTextPane();
37 valueMessage.setText(messageText);
38 valueMessage.setBackground(null);
39 valueMessage.setEditable(false);
40 this.add(m_field, BorderLayout.SOUTH);
41 this.add(valueMessage, BorderLayout.NORTH);
42
43 }
44
45 public JFormattedTextField.AbstractFormatter getFormatter()
46 {
47 return null;
48 }
49
50 /*
51 * Returns the component to use for the customer-id
52 * editing dialog. The IDE calls this method to display
53 * the dialog.
54 */
55 public Component getEditorComponent()
56 {
57 return this;
58 }
59
60 /*
61 * Provides a way for the IDE to retrieve the newly
62 * entered attribute value.
63 */
64 public String getNewAttributeValue()
65 {
66 return m_field.getText();
67 }
68
69 /*
70 * Provides a place for code that should execute when the
71 * user clicks OK. This method calls code that validates the
72 * attribute value, ensuring that it is a six-digit numeric
73 * value.
74 */
75 public Issue[] onFinish()
76 {
77 CustIdValidator cIdV = new CustIdValidator();
78 return cIdV.validateId(getNewAttributeValue());
79 }
80
81 /*
82 * Removes any nonnumeric characters in the new attribute value.
83 */
84 private String removeNonNumeric(String stringNumber) {
85 StringBuffer delimiters = new StringBuffer();
86 StringBuffer cleanString = new StringBuffer();
87
88 for (int i = 0; i < stringNumber.length(); i++) {
89 if (stringNumber.charAt(i) < '0' || stringNumber.charAt(i) > '9')
90 delimiters.append(stringNumber.charAt(i));
91 }
92 StringTokenizer tokens = new StringTokenizer(stringNumber, delimiters.toString());
93
94 while(tokens.hasMoreTokens()) {
95 cleanString.append(tokens.nextToken());
96 }
97 return cleanString.toString();
98 }
99 }
|