1/*
2 * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.  Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25package javax.swing.text.html;
26
27import javax.swing.text.*;
28import java.net.URL;
29
30/**
31 * FormSubmitEvent is used to notify interested
32 * parties that a form was submitted.
33 *
34 * @since 1.5
35 * @author    Denis Sharypov
36 */
37@SuppressWarnings("serial") // Superclass is not serializable across versions
38public class FormSubmitEvent extends HTMLFrameHyperlinkEvent {
39
40    /**
41     * Represents an HTML form method type.
42     * <UL>
43     * <LI>{@code GET} corresponds to the GET form method</LI>
44     * <LI>{@code POST} corresponds to the POST from method</LI>
45     * </UL>
46     * @since 1.5
47     */
48    public enum MethodType {
49
50        /**
51         * {@code GET} corresponds to the GET form method
52         */
53        GET,
54
55        /**
56         * {@code POST} corresponds to the POST from method
57         */
58        POST
59    }
60
61    /**
62     * Creates a new object representing an html form submit event.
63     *
64     * @param source the object responsible for the event
65     * @param type the event type
66     * @param targetURL the form action URL
67     * @param sourceElement the element that corresponds to the source
68     *                      of the event
69     * @param targetFrame the Frame to display the document in
70     * @param method the form method type
71     * @param data the form submission data
72     */
73    FormSubmitEvent(Object source, EventType type, URL targetURL,
74                   Element sourceElement, String targetFrame,
75                    MethodType method, String data) {
76        super(source, type, targetURL, sourceElement, targetFrame);
77        this.method = method;
78        this.data = data;
79    }
80
81
82    /**
83     * Gets the form method type.
84     *
85     * @return the form method type, either
86     * <code>Method.GET</code> or <code>Method.POST</code>.
87     */
88    public MethodType getMethod() {
89        return method;
90    }
91
92    /**
93     * Gets the form submission data.
94     *
95     * @return the string representing the form submission data.
96     */
97    public String getData() {
98        return data;
99    }
100
101    private MethodType method;
102    private String data;
103}
104