From 3baf16db6f1a620814a529953d759dc4d40a2743 Mon Sep 17 00:00:00 2001 From: Vhati Date: Sun, 10 Dec 2017 20:22:21 -0500 Subject: [PATCH] Added text areas to FieldEditorPanel --- .../vhati/modmanager/ui/FieldEditorPanel.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/vhati/modmanager/ui/FieldEditorPanel.java b/src/main/java/net/vhati/modmanager/ui/FieldEditorPanel.java index f47277f..3b4f868 100644 --- a/src/main/java/net/vhati/modmanager/ui/FieldEditorPanel.java +++ b/src/main/java/net/vhati/modmanager/ui/FieldEditorPanel.java @@ -7,6 +7,7 @@ import java.awt.GridBagLayout; import java.awt.Insets; import java.util.HashMap; import java.util.Map; +import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; @@ -28,11 +29,12 @@ import net.vhati.modmanager.ui.RegexDocument; public class FieldEditorPanel extends JPanel { - public enum ContentType { WRAPPED_LABEL, LABEL, STRING, INTEGER, BOOLEAN, SLIDER, COMBO, CHOOSER }; + public enum ContentType { WRAPPED_LABEL, LABEL, STRING, TEXT_AREA, INTEGER, BOOLEAN, SLIDER, COMBO, CHOOSER }; private Map wrappedLabelMap = new HashMap(); private Map labelMap = new HashMap(); private Map stringMap = new HashMap(); + private Map textAreaMap = new HashMap(); private Map intMap = new HashMap(); private Map boolMap = new HashMap(); private Map sliderMap = new HashMap(); @@ -135,6 +137,19 @@ public class FieldEditorPanel extends JPanel { stringMap.put( valueName, valueField ); this.add( valueField, gridC ); } + else if ( contentType == ContentType.TEXT_AREA ) { + gridC.anchor = GridBagConstraints.WEST; + JTextArea valueArea = new JTextArea(); + valueArea.setEditable( true ); + valueArea.setBorder( BorderFactory.createEtchedBorder() ); + valueArea.setLineWrap( true ); + valueArea.setWrapStyleWord( true ); + valueArea.setFocusable( true ); + valueArea.setFont( UIManager.getFont( "TextField.font" ) ); // Override small default font on systemLaf. + + textAreaMap.put( valueName, valueArea ); + this.add( valueArea, gridC ); + } else if ( contentType == ContentType.INTEGER ) { gridC.anchor = GridBagConstraints.WEST; JTextField valueField = new JTextField(); @@ -331,6 +346,10 @@ public class FieldEditorPanel extends JPanel { return stringMap.get( valueName ); } + public JTextArea getTextArea( String valueName ) { + return textAreaMap.get( valueName ); + } + public JTextField getInt( String valueName ) { return intMap.get( valueName ); } @@ -362,6 +381,9 @@ public class FieldEditorPanel extends JPanel { for ( JTextField valueField : stringMap.values() ) valueField.setText( "" ); + for ( JTextArea valueArea : textAreaMap.values() ) + valueArea.setText( "" ); + for ( JTextField valueField : intMap.values() ) valueField.setText( "" ); @@ -386,6 +408,7 @@ public class FieldEditorPanel extends JPanel { wrappedLabelMap.clear(); labelMap.clear(); stringMap.clear(); + textAreaMap.clear(); intMap.clear(); boolMap.clear(); sliderMap.clear();