1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.htmlunit.html;
16
17 import java.io.IOException;
18 import java.io.PrintWriter;
19 import java.util.Map;
20
21 import org.htmlunit.SgmlPage;
22 import org.htmlunit.util.NameValuePair;
23 import org.htmlunit.util.StringUtils;
24
25
26
27
28
29
30
31
32
33
34
35
36
37 public class HtmlSubmitInput extends HtmlInput implements LabelableElement {
38
39
40
41
42 public static final String DEFAULT_VALUE = "Submit Query";
43
44
45
46
47
48
49
50
51 HtmlSubmitInput(final String qualifiedName, final SgmlPage page,
52 final Map<String, DomAttr> attributes) {
53 super(qualifiedName, page, attributes);
54 }
55
56
57
58
59 @Override
60 protected boolean doClickStateUpdate(final boolean shiftKey, final boolean ctrlKey) throws IOException {
61 if (!isDisabled()) {
62 final HtmlForm form = getEnclosingForm();
63 if (form != null) {
64 form.submit(this);
65 return false;
66 }
67 }
68 super.doClickStateUpdate(shiftKey, ctrlKey);
69 return false;
70 }
71
72
73
74
75 @Override
76 public void setValue(final String newValue) {
77 unmarkValueDirty();
78 setDefaultValue(newValue);
79 }
80
81
82
83
84 @Override
85 public void setDefaultChecked(final boolean defaultChecked) {
86
87 }
88
89
90
91
92
93 @Override
94 public void reset() {
95
96 }
97
98
99
100
101 @Override
102 protected void printOpeningTagContentAsXml(final PrintWriter printWriter) {
103 printWriter.print(getTagName());
104
105 for (final DomAttr attribute : getAttributesMap().values()) {
106 final String name = attribute.getNodeName();
107 final String value = attribute.getValue();
108 if (!VALUE_ATTRIBUTE.equals(name) || !DEFAULT_VALUE.equals(value)) {
109 printWriter.print(" ");
110 printWriter.print(name);
111 printWriter.print("=\"");
112 printWriter.print(StringUtils.escapeXmlAttributeValue(value));
113 printWriter.print("\"");
114 }
115 }
116 }
117
118
119
120
121
122
123 @Override
124 public NameValuePair[] getSubmitNameValuePairs() {
125 if (!getNameAttribute().isEmpty() && !hasAttribute(VALUE_ATTRIBUTE)) {
126 return new NameValuePair[]{new NameValuePair(getNameAttribute(), DEFAULT_VALUE)};
127 }
128 return super.getSubmitNameValuePairs();
129 }
130
131
132
133
134 @Override
135 protected boolean isRequiredSupported() {
136 return false;
137 }
138 }