-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGenePanel.java
More file actions
184 lines (161 loc) · 5.19 KB
/
GenePanel.java
File metadata and controls
184 lines (161 loc) · 5.19 KB
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
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
Matt Hamada
GUI component holding gene sequence, primers, and Tms
*/
public class GenePanel extends JPanel
{
private JTextArea txtGeneSeq; //holds gene sequence
private JScrollPane geneScroll;
private JPanel geneTextPanel; //subpanel to hold text area
private JPanel calculatedPanel; //holds forward primers and tms
private JPanel forwardPanel; //sub panel for forward tm and primer
private JPanel reversePanel; //sub panel for reverse tm and primer
private JLabel fPrimerLabel; //label forward primer
private JLabel rPrimerLabel; //label reverse primer
private JLabel fTmLabel; //label forward tm
private JLabel rTmLabel; //label reverse tm
private JLabel fEnzLabel; //label forward enzyme
private JLabel rEnzLabel; //label reverse enzyme
private JTextField txtpForward; //calculated forward primer
private JTextField txtTmForward; //calculated forward Tm
private JTextField txtEnzForward; //forward enzyme chosen
private JTextField txtpReverse; //calculated reverse primer
private JTextField txtTmReverse; //calculated reverse Tm
private JTextField txtEnzReverse; //Reverse enzyme chosen
/**
Constructor to build part of GUI. Adds text area for gene sequence
and read only text fields for calculated primers and Tms
*/
public GenePanel()
{
setLayout(new BorderLayout());
//create scrollable text area
geneTextPanel = new JPanel();
txtGeneSeq = new JTextArea(10, 50);
txtGeneSeq.setLineWrap(true);
txtGeneSeq.setFont(new Font("Monospaced", Font.PLAIN, 15));
txtGeneSeq.setToolTipText("Enter gene sequence here.");
txtGeneSeq.setText("Enter gene sequence here.");
//allow for clearing help txt upon click
txtGeneSeq.addMouseListener(new GeneSeqMouseListener());
//txtGeneSeq.setPreferredSize(new Dimension(30, 150));
geneScroll = new JScrollPane(txtGeneSeq);
geneScroll.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
geneTextPanel.add(geneScroll);
add(geneTextPanel, BorderLayout.NORTH);
//add primer and tm text fields and labels
// panel for each directions primer tm combo added to main panel
calculatedPanel = new JPanel(new GridLayout(2, 1));
forwardPanel = new JPanel();
reversePanel = new JPanel();
txtpForward = new JTextField(30);
txtpForward.setEditable(false);
txtpForward.setFont(new Font("Monospaced", Font.PLAIN, 15));
fPrimerLabel = new JLabel("Forward: ");
forwardPanel.add(fPrimerLabel);
forwardPanel.add(txtpForward);
txtTmForward = new JTextField(5);
txtTmForward.setEditable(false);
txtTmForward.setFont(new Font("Monospaced", Font.PLAIN, 15));
fTmLabel = new JLabel("Tm (°C): ");
forwardPanel.add(fTmLabel);
forwardPanel.add(txtTmForward);
fEnzLabel = new JLabel("Enzyme: ");
txtEnzForward = new JTextField(8);
txtEnzForward.setEditable(false);
txtEnzForward.setFont(new Font("Monospaced", Font.PLAIN, 15));
forwardPanel.add(fEnzLabel);
forwardPanel.add(txtEnzForward);
txtpReverse = new JTextField(30);
txtpReverse.setEditable(false);
txtpReverse.setFont(new Font("Monospaced", Font.PLAIN, 15));
rPrimerLabel = new JLabel("Reverse: ");
reversePanel.add(rPrimerLabel);
reversePanel.add(txtpReverse);
txtTmReverse = new JTextField(5);
txtTmReverse.setEditable(false);
txtTmReverse.setFont(new Font("Monospaced", Font.PLAIN, 15));
rTmLabel = new JLabel("Tm (°C): ");
reversePanel.add(rTmLabel);
reversePanel.add(txtTmReverse);
rEnzLabel = new JLabel("Enzyme: ");
txtEnzReverse = new JTextField(8);
txtEnzReverse.setEditable(false);
txtEnzReverse.setFont(new Font("Monospaced", Font.PLAIN, 15));
reversePanel.add(rEnzLabel);
reversePanel.add(txtEnzReverse);
calculatedPanel.add(forwardPanel);
calculatedPanel.add(reversePanel);
add(calculatedPanel, BorderLayout.CENTER);
}
/**
getGeneSequence returns the text in the text area.
@return The text area's text as a String
*/
public String getGeneSequence()
{
return txtGeneSeq.getText();
}
/**
setForwardSequence displays text on the GUI
@param sequence text to be displayed.
*/
public void setForwardSequence(String sequence)
{
txtpForward.setText(sequence);
}
/**
setReverseSequence displays text on the GUI
@param sequence text to be displayed.
*/
public void setReverseSequence(String sequence)
{
txtpReverse.setText(sequence);
}
/**
setForwardTm displays text on the GUI
@param Tm text to be displayed.
*/
public void setForwardTm(String tm)
{
txtTmForward.setText(tm);
}
/**
setReverseTm displays text on the GUI
@param Tm text to be displayed.
*/
public void setReverseTm(String tm)
{
txtTmReverse.setText(tm);
}
/**
setForwardEnzyme displays text on the GUI
@param enzyme text to be displayed.
*/
public void setForwardEnzyme(String enzyme)
{
txtEnzForward.setText(enzyme);
}
/**
setReverseEnzyme displays text on the GUI
@param enzyme text to be displayed.
*/
public void setReverseEnzyme(String enzyme)
{
txtEnzReverse.setText(enzyme);
}
private class GeneSeqMouseListener extends MouseAdapter
{
public void mouseClicked(MouseEvent e)
{
if (txtGeneSeq.getText().equals("Enter gene sequence here."))
{
txtGeneSeq.setText("");
}
}
}
}