diff --git a/src/ui/CriterionPanel.java b/src/ui/CriterionPanel.java index d746155..9ece7d7 100644 --- a/src/ui/CriterionPanel.java +++ b/src/ui/CriterionPanel.java @@ -6,10 +6,13 @@ import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; +import java.awt.event.FocusAdapter; +import java.awt.event.FocusEvent; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; +import javax.swing.SwingUtilities; import model.Criterion; /** @@ -22,6 +25,8 @@ private final JTextArea txtComment; private final Criterion criterion; + private static Dimension selectedSize; + public CriterionPanel(Criterion criterion) { this.criterion = criterion; @@ -69,6 +74,31 @@ txtComment.setPreferredSize(new Dimension(10, 100)); // need to hardcode height which is annoying... scrollPane.setPreferredSize(new Dimension(10, 20)); + txtComment.addFocusListener(new FocusAdapter() { + + @Override + public void focusGained(FocusEvent fe) { + super.focusGained(fe); + CriterionPanel selectedPanel = CriterionPanel.this; + if (selectedSize == null) { + System.out.println(selectedSize); + } + selectedPanel.setPreferredSize(new Dimension(10, 150)); + selectedPanel.invalidate(); + SwingUtilities.getWindowAncestor(selectedPanel).pack(); + } + + @Override + public void focusLost(FocusEvent fe) { + super.focusLost(fe); + CriterionPanel selectedPanel = CriterionPanel.this; + selectedPanel.setPreferredSize(selectedSize); + selectedPanel.invalidate(); + SwingUtilities.getWindowAncestor(selectedPanel).pack(); + } + + }); + Font font = txtComment.getFont(); Font biggerFont = font.deriveFont(14f); txtComment.setFont(biggerFont); @@ -115,3 +145,4 @@ } } +