-
Notifications
You must be signed in to change notification settings - Fork 8
/
BacktrackDialog.java
189 lines (164 loc) · 5.9 KB
/
BacktrackDialog.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.Border;
import java.util.EventObject;
import java.util.Vector;
import java.io.*;
/* Package: GUI */
/******************************
* Copyright (c) 2003,2019 Kevin Lano
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0
*
* SPDX-License-Identifier: EPL-2.0
* *****************************/
public class BacktrackDialog extends JDialog
{ private JPanel bottom;
private JButton okButton, cancelButton;
private BacktrackDialogPanel dialogPanel;
private String defaultName; // stereotype
private String defaultEntity;
private String defaultRole; // for add, remove, setatt, findByatt
private String defaultDescription;
private String extendsUC;
private String newName;
private String newEntity;
private String newRole;
private String newDescription;
private String newExtends;
private String newType;
public BacktrackDialog(JFrame owner)
{ super(owner, true);
setTitle("Define Backtracking");
okButton = new JButton("Ok");
cancelButton = new JButton("Cancel");
ButtonHandler bHandler = new ButtonHandler();
okButton.addActionListener(bHandler);
cancelButton.addActionListener(bHandler);
bottom = new JPanel();
bottom.add(okButton);
bottom.add(cancelButton);
bottom.setBorder(BorderFactory.createEtchedBorder());
dialogPanel = new BacktrackDialogPanel();
getContentPane().setLayout(new BorderLayout());
getContentPane().add(bottom, BorderLayout.SOUTH);
getContentPane().add(dialogPanel, BorderLayout.CENTER);
}
public void setOldFields(String nme, String ename, String rname, String poss)
{ defaultName = nme;
defaultEntity = ename;
defaultRole = rname;
newExtends = poss;
dialogPanel.setOldFields(nme,ename,rname,poss);
}
public void setFields(String nme, String ename, String rname,
String desc, String ext, String typ)
{ newName = nme;
newEntity = ename;
newRole = rname;
newDescription = desc;
newExtends = ext;
newType = typ;
}
public String getName() { return newName; } // use case name
public String getEntity() { return newEntity; } // context entity
public String getRole() { return newRole; } // backtrack condition
public String getDescription() { return newDescription; } // undo statements
public String getParameters() { return newExtends; } // possible choices expression
public String getUseCaseType() { return newType; } // success condition
class BacktrackDialogPanel extends JPanel
{ private JLabel nameLabel;
JTextField nameField; /* name */
private JLabel entityLabel;
JTextField entityField;
private JLabel roleLabel;
JTextField roleField;
JLabel descriptionLabel;
JTextArea descriptionArea;
JLabel extendsLabel;
JTextField extendsField;
JLabel typeLabel;
JTextField typeField;
public BacktrackDialogPanel()
{ nameLabel = new JLabel("Use case name:");
nameField = new JTextField();
nameField.setEditable(true);
entityLabel = new JLabel("Entity:");
entityField = new JTextField();
roleLabel = new JLabel("Backtrack condition:");
roleField = new JTextField();
descriptionLabel = new JLabel("undo statements:");
descriptionArea = new JTextArea();
extendsLabel = new JLabel("Choice expression:");
extendsField = new JTextField();
typeLabel = new JLabel("Success condition:");
typeField = new JTextField();
typeField.setEditable(true);
add(nameLabel);
add(nameField);
add(entityLabel);
add(entityField);
add(roleLabel);
add(roleField);
add(descriptionLabel);
add(descriptionArea);
add(extendsLabel);
add(extendsField);
add(typeLabel);
add(typeField);
}
public void setOldFields(String nme, String entity, String role, String poss)
{ nameField.setText(nme);
entityField.setText(entity);
roleField.setText(role);
descriptionArea.setText("");
extendsField.setText(poss);
}
public Dimension getPreferredSize()
{ return new Dimension(450,300); }
public Dimension getMinimumSize()
{ return new Dimension(450,300); }
public void doLayout()
{ nameLabel.setBounds(10,10,110,30);
nameField.setBounds(120,15,270,20);
entityLabel.setBounds(10,40,110,30);
entityField.setBounds(120,45,270,20);
roleLabel.setBounds(10,70,110,30);
roleField.setBounds(120,75,270,20);
descriptionLabel.setBounds(10,110,90,30);
descriptionArea.setBounds(120,105,300,100);
extendsLabel.setBounds(10,210,90,30);
extendsField.setBounds(120,215,270,20);
typeLabel.setBounds(10,240,90,30);
typeField.setBounds(120,245,270,20);
}
public void reset()
{ nameField.setText("");
entityField.setText("");
roleField.setText("");
descriptionArea.setText("");
extendsField.setText("");
}
} /* inner class */
class ButtonHandler implements ActionListener
{ public void actionPerformed(ActionEvent ev)
{ JButton button = (JButton) ev.getSource();
String label = button.getText();
if ("Ok".equals(label))
{ setFields(dialogPanel.nameField.getText(),
dialogPanel.entityField.getText(),
dialogPanel.roleField.getText(),
dialogPanel.descriptionArea.getText(),
dialogPanel.extendsField.getText(),
dialogPanel.typeField.getText());
}
else
{ setFields(null,null,null,null,null,null); }
dialogPanel.reset();
setVisible(false);
}
}
}