001: /*--
002:
003: Copyright (C) 2002 Anthony Eden.
004: All rights reserved.
005:
006: Redistribution and use in source and binary forms, with or without
007: modification, are permitted provided that the following conditions
008: are met:
009:
010: 1. Redistributions of source code must retain the above copyright
011: notice, this list of conditions, and the following disclaimer.
012:
013: 2. Redistributions in binary form must reproduce the above copyright
014: notice, this list of conditions, and the disclaimer that follows
015: these conditions in the documentation and/or other materials
016: provided with the distribution.
017:
018: 3. The names "OBE" and "Open Business Engine" must not be used to
019: endorse or promote products derived from this software without prior
020: written permission. For written permission, please contact
021: me@anthonyeden.com.
022:
023: 4. Products derived from this software may not be called "OBE" or
024: "Open Business Engine", nor may "OBE" or "Open Business Engine"
025: appear in their name, without prior written permission from
026: Anthony Eden (me@anthonyeden.com).
027:
028: In addition, I request (but do not require) that you include in the
029: end-user documentation provided with the redistribution and/or in the
030: software itself an acknowledgement equivalent to the following:
031: "This product includes software developed by
032: Anthony Eden (http://www.anthonyeden.com/)."
033:
034: THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
035: WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
036: OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
037: DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT,
038: INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
039: (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
040: SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
041: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
042: STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
043: IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
044: POSSIBILITY OF SUCH DAMAGE.
045:
046: For more information on OBE, please see <http://obe.sourceforge.net/>.
047:
048: */
049:
050: package org.obe.designer.panel;
051:
052: import org.obe.client.api.model.MIMETypes;
053: import org.obe.xpdl.model.misc.Script;
054:
055: import javax.swing.*;
056: import java.awt.*;
057:
058: public class ScriptPanel extends JPanel {
059:
060: public static final String DEFAULT_TYPE = MIMETypes.XPATH;
061:
062: private Script script;
063:
064: private JLabel typeLabel;
065: private JTextField typeField;
066: private JLabel versionLabel;
067: private JTextField versionField;
068: private JLabel grammarLabel;
069: private JTextField grammarField;
070:
071: public ScriptPanel() {
072: init();
073: script = new Script(DEFAULT_TYPE);
074: revert();
075: }
076:
077: public Script getScript() {
078: return script;
079: }
080:
081: public void setScript(Script script) {
082: if (script == null) {
083: this .script = new Script(DEFAULT_TYPE);
084: } else {
085: this .script = script;
086: }
087: revert();
088: }
089:
090: public boolean save() {
091: script.setType(typeField.getText());
092: script.setVersion(versionField.getText());
093: script.setGrammar(grammarField.getText());
094:
095: return true;
096: }
097:
098: public void revert() {
099: if (script == null) {
100: return;
101: }
102:
103: String type = script.getType();
104: if (type != null) {
105: typeField.setText(type);
106: }
107:
108: String version = script.getVersion();
109: if (version != null) {
110: versionField.setText(version);
111: }
112:
113: String grammar = script.getGrammar();
114: if (grammar != null) {
115: grammarField.setText(grammar);
116: }
117: }
118:
119: private void init() {
120: GridBagLayout gbl = new GridBagLayout();
121: GridBagConstraints gbc = new GridBagConstraints();
122: setLayout(gbl);
123:
124: gbc.insets = new Insets(2, 2, 2, 2);
125: gbc.anchor = GridBagConstraints.WEST;
126: gbc.fill = GridBagConstraints.HORIZONTAL;
127:
128: typeLabel = new JLabel("Type");
129: gbc.weightx = 0;
130: gbc.gridwidth = 1;
131: gbl.setConstraints(typeLabel, gbc);
132: add(typeLabel);
133:
134: typeField = new JTextField();
135: gbc.weightx = 1;
136: gbc.gridwidth = GridBagConstraints.REMAINDER;
137: gbl.setConstraints(typeField, gbc);
138: add(typeField);
139:
140: versionLabel = new JLabel("Version");
141: gbc.weightx = 0;
142: gbc.gridwidth = 1;
143: gbl.setConstraints(versionLabel, gbc);
144: add(versionLabel);
145:
146: versionField = new JTextField();
147: gbc.weightx = 1;
148: gbc.gridwidth = GridBagConstraints.REMAINDER;
149: gbl.setConstraints(versionField, gbc);
150: add(versionField);
151:
152: grammarLabel = new JLabel("Grammar");
153: gbc.weightx = 0;
154: gbc.gridwidth = 1;
155: gbl.setConstraints(grammarLabel, gbc);
156: add(grammarLabel);
157:
158: grammarField = new JTextField();
159: gbc.weightx = 1;
160: gbc.gridwidth = GridBagConstraints.REMAINDER;
161: gbl.setConstraints(grammarField, gbc);
162: add(grammarField);
163: }
164:
165: }
|