Browse Source

Move InputFields into their own package.

Foundation work for Action/Alias dialogs to allow control code input.

Issue CLIENT-53

Change-Id: I2a9cc50577050120357d263f2471e8137c78eaae
Reviewed-on: http://gerrit.dmdirc.com/1535
Automatic-Compile: Greg Holmes <greg@dmdirc.com>
Reviewed-by: Greg Holmes <greg@dmdirc.com>
tags/0.6.5
Greg Holmes 13 years ago
parent
commit
0025d6bc58
19 changed files with 167 additions and 20 deletions
  1. 1
    0
      src/com/dmdirc/addons/ui_swing/components/SwingSearchBar.java
  2. 2
    0
      src/com/dmdirc/addons/ui_swing/components/TopicBar.java
  3. 1
    1
      src/com/dmdirc/addons/ui_swing/components/frames/ChannelFrame.java
  4. 1
    1
      src/com/dmdirc/addons/ui_swing/components/frames/CustomInputFrame.java
  5. 1
    1
      src/com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.java
  6. 1
    1
      src/com/dmdirc/addons/ui_swing/components/frames/QueryFrame.java
  7. 1
    1
      src/com/dmdirc/addons/ui_swing/components/frames/ServerFrame.java
  8. 1
    1
      src/com/dmdirc/addons/ui_swing/components/inputfields/SwingInputField.java
  9. 2
    1
      src/com/dmdirc/addons/ui_swing/components/inputfields/SwingInputHandler.java
  10. 1
    1
      src/com/dmdirc/addons/ui_swing/components/inputfields/TextAreaInputField.java
  11. 1
    1
      src/com/dmdirc/addons/ui_swing/components/inputfields/TextFieldInputField.java
  12. 1
    1
      src/com/dmdirc/addons/ui_swing/components/inputfields/TextPaneInputField.java
  13. 133
    0
      src/com/dmdirc/addons/ui_swing/components/inputfields/ValidatingTextFieldInputField.java
  14. 1
    1
      src/com/dmdirc/addons/ui_swing/components/performpanel/PerformPanel.java
  15. 5
    1
      src/com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.java
  16. 9
    3
      src/com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.java
  17. 2
    2
      src/com/dmdirc/addons/ui_swing/dialogs/channelsetting/TopicDisplayPane.java
  18. 2
    2
      src/com/dmdirc/addons/ui_swing/dialogs/paste/PasteDialog.java
  19. 1
    1
      test/com/dmdirc/addons/ui_swing/components/frames/InputTextFrameTest.java

+ 1
- 0
src/com/dmdirc/addons/ui_swing/components/SwingSearchBar.java View File

@@ -24,6 +24,7 @@ package com.dmdirc.addons.ui_swing.components;
24 24
 
25 25
 import com.dmdirc.addons.ui_swing.UIUtilities;
26 26
 import com.dmdirc.addons.ui_swing.actions.SearchAction;
27
+import com.dmdirc.addons.ui_swing.components.ImageButton;
27 28
 import com.dmdirc.addons.ui_swing.components.frames.InputTextFrame;
28 29
 import com.dmdirc.addons.ui_swing.components.frames.TextFrame;
29 30
 import com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField;

+ 2
- 0
src/com/dmdirc/addons/ui_swing/components/TopicBar.java View File

@@ -22,6 +22,8 @@
22 22
 
23 23
 package com.dmdirc.addons.ui_swing.components;
24 24
 
25
+import com.dmdirc.addons.ui_swing.components.inputfields.TextPaneInputField;
26
+import com.dmdirc.addons.ui_swing.components.inputfields.SwingInputHandler;
25 27
 import com.dmdirc.Channel;
26 28
 import com.dmdirc.Topic;
27 29
 import com.dmdirc.addons.ui_swing.SwingController;

+ 1
- 1
src/com/dmdirc/addons/ui_swing/components/frames/ChannelFrame.java View File

@@ -31,7 +31,7 @@ import com.dmdirc.addons.ui_swing.SwingController;
31 31
 import com.dmdirc.addons.ui_swing.UIUtilities;
32 32
 import com.dmdirc.addons.ui_swing.components.NickList;
33 33
 import com.dmdirc.addons.ui_swing.components.SplitPane;
34
-import com.dmdirc.addons.ui_swing.components.SwingInputHandler;
34
+import com.dmdirc.addons.ui_swing.components.inputfields.SwingInputHandler;
35 35
 import com.dmdirc.addons.ui_swing.components.TopicBar;
36 36
 import com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog;
37 37
 import com.dmdirc.commandparser.PopupType;

+ 1
- 1
src/com/dmdirc/addons/ui_swing/components/frames/CustomInputFrame.java View File

@@ -24,7 +24,7 @@ package com.dmdirc.addons.ui_swing.components.frames;
24 24
 
25 25
 import com.dmdirc.WritableFrameContainer;
26 26
 import com.dmdirc.addons.ui_swing.SwingController;
27
-import com.dmdirc.addons.ui_swing.components.SwingInputHandler;
27
+import com.dmdirc.addons.ui_swing.components.inputfields.SwingInputHandler;
28 28
 import com.dmdirc.commandparser.PopupType;
29 29
 import com.dmdirc.commandparser.parsers.CommandParser;
30 30
 import com.dmdirc.ui.interfaces.InputWindow;

+ 1
- 1
src/com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.java View File

@@ -30,7 +30,7 @@ import com.dmdirc.addons.ui_swing.actions.CopyAction;
30 30
 import com.dmdirc.addons.ui_swing.actions.CutAction;
31 31
 import com.dmdirc.addons.ui_swing.actions.InputFieldCopyAction;
32 32
 import com.dmdirc.addons.ui_swing.actions.InputTextFramePasteAction;
33
-import com.dmdirc.addons.ui_swing.components.SwingInputField;
33
+import com.dmdirc.addons.ui_swing.components.inputfields.SwingInputField;
34 34
 import com.dmdirc.addons.ui_swing.dialogs.paste.PasteDialog;
35 35
 import com.dmdirc.commandparser.PopupManager;
36 36
 import com.dmdirc.commandparser.PopupMenu;

+ 1
- 1
src/com/dmdirc/addons/ui_swing/components/frames/QueryFrame.java View File

@@ -23,7 +23,7 @@ package com.dmdirc.addons.ui_swing.components.frames;
23 23
 
24 24
 import com.dmdirc.Query;
25 25
 import com.dmdirc.addons.ui_swing.SwingController;
26
-import com.dmdirc.addons.ui_swing.components.SwingInputHandler;
26
+import com.dmdirc.addons.ui_swing.components.inputfields.SwingInputHandler;
27 27
 import com.dmdirc.commandparser.PopupType;
28 28
 import com.dmdirc.commandparser.parsers.CommandParser;
29 29
 import com.dmdirc.ui.interfaces.QueryWindow;

+ 1
- 1
src/com/dmdirc/addons/ui_swing/components/frames/ServerFrame.java View File

@@ -25,7 +25,7 @@ package com.dmdirc.addons.ui_swing.components.frames;
25 25
 import com.dmdirc.Server;
26 26
 import com.dmdirc.ServerState;
27 27
 import com.dmdirc.addons.ui_swing.SwingController;
28
-import com.dmdirc.addons.ui_swing.components.SwingInputHandler;
28
+import com.dmdirc.addons.ui_swing.components.inputfields.SwingInputHandler;
29 29
 import com.dmdirc.addons.ui_swing.dialogs.serversetting.ServerSettingsDialog;
30 30
 import com.dmdirc.commandparser.PopupType;
31 31
 import com.dmdirc.commandparser.parsers.CommandParser;

src/com/dmdirc/addons/ui_swing/components/SwingInputField.java → src/com/dmdirc/addons/ui_swing/components/inputfields/SwingInputField.java View File

@@ -20,7 +20,7 @@
20 20
  * SOFTWARE.
21 21
  */
22 22
 
23
-package com.dmdirc.addons.ui_swing.components;
23
+package com.dmdirc.addons.ui_swing.components.inputfields;
24 24
 
25 25
 import com.dmdirc.addons.ui_swing.UIUtilities;
26 26
 import com.dmdirc.addons.ui_swing.components.colours.ColourPickerDialog;

src/com/dmdirc/addons/ui_swing/components/SwingInputHandler.java → src/com/dmdirc/addons/ui_swing/components/inputfields/SwingInputHandler.java View File

@@ -20,10 +20,11 @@
20 20
  * SOFTWARE.
21 21
  */
22 22
 
23
-package com.dmdirc.addons.ui_swing.components;
23
+package com.dmdirc.addons.ui_swing.components.inputfields;
24 24
 
25 25
 import com.dmdirc.addons.ui_swing.Apple;
26 26
 import com.dmdirc.addons.ui_swing.UIUtilities;
27
+import com.dmdirc.addons.ui_swing.components.LoggingSwingWorker;
27 28
 import com.dmdirc.commandparser.parsers.CommandParser;
28 29
 import com.dmdirc.logger.ErrorLevel;
29 30
 import com.dmdirc.logger.Logger;

src/com/dmdirc/addons/ui_swing/components/TextAreaInputField.java → src/com/dmdirc/addons/ui_swing/components/inputfields/TextAreaInputField.java View File

@@ -19,7 +19,7 @@
19 19
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 20
  * SOFTWARE.
21 21
  */
22
-package com.dmdirc.addons.ui_swing.components;
22
+package com.dmdirc.addons.ui_swing.components.inputfields;
23 23
 
24 24
 import com.dmdirc.addons.ui_swing.components.colours.ColourPickerDialog;
25 25
 import com.dmdirc.config.IdentityManager;

src/com/dmdirc/addons/ui_swing/components/TextFieldInputField.java → src/com/dmdirc/addons/ui_swing/components/inputfields/TextFieldInputField.java View File

@@ -21,7 +21,7 @@
21 21
  * SOFTWARE.
22 22
  */
23 23
 
24
-package com.dmdirc.addons.ui_swing.components;
24
+package com.dmdirc.addons.ui_swing.components.inputfields;
25 25
 
26 26
 import com.dmdirc.addons.ui_swing.components.colours.ColourPickerDialog;
27 27
 import com.dmdirc.config.IdentityManager;

src/com/dmdirc/addons/ui_swing/components/TextPaneInputField.java → src/com/dmdirc/addons/ui_swing/components/inputfields/TextPaneInputField.java View File

@@ -21,7 +21,7 @@
21 21
  * SOFTWARE.
22 22
  */
23 23
 
24
-package com.dmdirc.addons.ui_swing.components;
24
+package com.dmdirc.addons.ui_swing.components.inputfields;
25 25
 
26 26
 import com.dmdirc.addons.ui_swing.components.colours.ColourPickerDialog;
27 27
 import com.dmdirc.config.IdentityManager;

+ 133
- 0
src/com/dmdirc/addons/ui_swing/components/inputfields/ValidatingTextFieldInputField.java View File

@@ -0,0 +1,133 @@
1
+/*
2
+ * Copyright (c) 2006-2010 Chris Smith, Shane Mc Cormack, Gregory Holmes
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ * of this software and associated documentation files (the "Software"), to deal
6
+ * in the Software without restriction, including without limitation the rights
7
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ * copies of the Software, and to permit persons to whom the Software is
9
+ * furnished to do so, subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in
12
+ * all copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ * SOFTWARE.
21
+ */
22
+
23
+package com.dmdirc.addons.ui_swing.components.inputfields;
24
+
25
+import com.dmdirc.addons.ui_swing.components.colours.ColourPickerDialog;
26
+import com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField;
27
+import com.dmdirc.config.IdentityManager;
28
+import com.dmdirc.ui.interfaces.InputField;
29
+import com.dmdirc.util.validators.Validator;
30
+
31
+import java.awt.event.ActionEvent;
32
+import java.awt.event.ActionListener;
33
+
34
+import javax.swing.JTextField;
35
+import javax.swing.text.BadLocationException;
36
+
37
+/**
38
+ * Extended ValidatingTextField that adds Inputfield support.
39
+ */
40
+public class ValidatingTextFieldInputField extends ValidatingJTextField
41
+        implements InputField {
42
+
43
+    /**
44
+     * A version number for this class. It should be changed whenever the class
45
+     * structure is changed (or anything else that would prevent serialized
46
+     * objects being unserialized with the new class).
47
+     */
48
+    private static final long serialVersionUID = 2;
49
+
50
+    /** Colour picker. */
51
+    protected ColourPickerDialog colourPicker;
52
+
53
+    /**
54
+     * Creates a new text field with the specified validator.
55
+     *
56
+     * @param validator Validator for this textfield
57
+     */
58
+    public ValidatingTextFieldInputField(final Validator<String> validator) {
59
+        super(validator);
60
+    }
61
+
62
+    /**
63
+     * Creates a new text field with the specified validator.
64
+     *
65
+     * @param validator Validator for this textfield
66
+     * @param textField Textfield to use as a base
67
+     */
68
+    public ValidatingTextFieldInputField(final JTextField textField,
69
+            final Validator<String> validator) {
70
+        super(textField, validator);
71
+    }
72
+
73
+    /** {@inheritDoc} */
74
+    @Override
75
+    public void addActionListener(final ActionListener listener) {
76
+        // Ignore request - we don't handle returns for text areas
77
+    }
78
+
79
+    /** {@inheritDoc} */
80
+    @Override
81
+    public void removeActionListener(final ActionListener listener) {
82
+        // Ignore request - we don't handle returns for text areas
83
+    }
84
+
85
+    /** {@inheritDoc} */
86
+    @Override
87
+    public void showColourPicker(final boolean irc, final boolean hex) {
88
+        if (IdentityManager.getGlobalConfig().getOptionBool("general",
89
+                "showcolourdialog")) {
90
+            colourPicker = new ColourPickerDialog(irc, hex);
91
+            colourPicker.addActionListener(new ActionListener() {
92
+
93
+                @Override
94
+                public void actionPerformed(final ActionEvent actionEvent) {
95
+                    try {
96
+                        getDocument().insertString(getCaretPosition(),
97
+                                actionEvent.getActionCommand(), null);
98
+                    } catch (BadLocationException ex) {
99
+                        //Ignore, wont happen
100
+                    }
101
+                    colourPicker.dispose();
102
+                    colourPicker = null;
103
+                }
104
+            });
105
+            colourPicker.display();
106
+            colourPicker.setLocation((int) getLocationOnScreen().getX(),
107
+                    (int) getLocationOnScreen().getY() -
108
+                    colourPicker.getHeight());
109
+        }
110
+    }
111
+
112
+    /** {@inheritDoc} */
113
+    @Override
114
+    public void hideColourPicker() {
115
+        if (colourPicker != null) {
116
+            colourPicker.dispose();
117
+            colourPicker = null;
118
+        }
119
+    }
120
+
121
+    /** {@inheritDoc} */
122
+    @Override
123
+    public int getCaretPosition() {
124
+        return getTextField().getCaretPosition();
125
+    }
126
+
127
+    /** {@inheritDoc} */
128
+    @Override
129
+    public void setCaretPosition(int position) {
130
+        getTextField().setCaretPosition(position);
131
+    }
132
+
133
+}

+ 1
- 1
src/com/dmdirc/addons/ui_swing/components/performpanel/PerformPanel.java View File

@@ -25,7 +25,7 @@ package com.dmdirc.addons.ui_swing.components.performpanel;
25 25
 
26 26
 import com.dmdirc.actions.wrappers.PerformWrapper;
27 27
 import com.dmdirc.actions.wrappers.PerformWrapper.PerformDescription;
28
-import com.dmdirc.addons.ui_swing.components.TextAreaInputField;
28
+import com.dmdirc.addons.ui_swing.components.inputfields.TextAreaInputField;
29 29
 
30 30
 import java.util.Collection;
31 31
 import java.util.Collections;

+ 5
- 1
src/com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.java View File

@@ -23,6 +23,7 @@
23 23
 package com.dmdirc.addons.ui_swing.dialogs.actioneditor;
24 24
 
25 25
 import com.dmdirc.addons.ui_swing.UIUtilities;
26
+import com.dmdirc.addons.ui_swing.components.inputfields.TextAreaInputField;
26 27
 import com.dmdirc.config.IdentityManager;
27 28
 
28 29
 import java.util.TreeSet;
@@ -67,9 +68,12 @@ public class ActionResponsePanel extends JPanel {
67 68
 
68 69
     /** Initialises the components. */
69 70
     private void initComponents() {
70
-        response = new JTextArea();
71
+        response = new TextAreaInputField("");
71 72
         scrollPane = new JScrollPane(response);
72 73
         response.setRows(4);
74
+        //new SwingInputHandler(response, GlobalCommandParser
75
+        //        .getGlobalCommandParser(), inputWindow)
76
+        //        .setTypes(false, false, true,false);
73 77
         formatter = new JComboBox(new DefaultComboBoxModel());
74 78
 
75 79
         ((DefaultComboBoxModel) formatter.getModel()).addElement("No change");

+ 9
- 3
src/com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.java View File

@@ -27,8 +27,11 @@ import com.dmdirc.actions.CoreActionComparison;
27 27
 import com.dmdirc.actions.CoreActionComponent;
28 28
 import com.dmdirc.actions.wrappers.Alias;
29 29
 import com.dmdirc.addons.ui_swing.UIUtilities;
30
+import com.dmdirc.addons.ui_swing.components.inputfields.SwingInputHandler;
31
+import com.dmdirc.addons.ui_swing.components.inputfields.ValidatingTextFieldInputField;
30 32
 import com.dmdirc.addons.ui_swing.components.renderers.ActionComparisonCellRenderer;
31
-import com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField;
33
+import com.dmdirc.commandparser.parsers.CommandParser;
34
+import com.dmdirc.commandparser.parsers.GlobalCommandParser;
32 35
 import com.dmdirc.commandparser.validators.CommandNameValidator;
33 36
 import com.dmdirc.util.validators.FileNameValidator;
34 37
 import com.dmdirc.util.validators.ValidatorChain;
@@ -60,7 +63,7 @@ public final class AliasPanel extends JPanel implements ActionListener {
60 63
      */
61 64
     private static final long serialVersionUID = 2;
62 65
     /** Name field. */
63
-    private final ValidatingJTextField command;
66
+    private final ValidatingTextFieldInputField command;
64 67
     /** argument component combo box. */
65 68
     private final JComboBox argumentComponent;
66 69
     /** Argument number spinner. */
@@ -75,9 +78,12 @@ public final class AliasPanel extends JPanel implements ActionListener {
75 78
     public AliasPanel() {
76 79
         super();
77 80
 
78
-        command = new ValidatingJTextField(new ValidatorChain<String>(
81
+        command = new ValidatingTextFieldInputField(new ValidatorChain<String>(
79 82
                 new CommandNameValidator(), new FileNameValidator()));
80 83
         command.setEnabled(false);
84
+        //new SwingInputHandler(command, GlobalCommandParser
85
+        //        .getGlobalCommandParser(), inputWindow)
86
+        //        .setTypes(false, false, true,false);
81 87
 
82 88
         argumentComponent = new JComboBox(new CoreActionComparison[]{null,
83 89
             CoreActionComparison.INT_GREATER, CoreActionComparison.INT_EQUALS,

+ 2
- 2
src/com/dmdirc/addons/ui_swing/dialogs/channelsetting/TopicDisplayPane.java View File

@@ -28,8 +28,8 @@ import com.dmdirc.Topic;
28 28
 import com.dmdirc.addons.ui_swing.UIUtilities;
29 29
 import com.dmdirc.addons.ui_swing.actions.NoNewlinesPasteAction;
30 30
 import com.dmdirc.addons.ui_swing.actions.TopicEnterAction;
31
-import com.dmdirc.addons.ui_swing.components.SwingInputHandler;
32
-import com.dmdirc.addons.ui_swing.components.TextAreaInputField;
31
+import com.dmdirc.addons.ui_swing.components.inputfields.SwingInputHandler;
32
+import com.dmdirc.addons.ui_swing.components.inputfields.TextAreaInputField;
33 33
 import com.dmdirc.addons.ui_swing.components.text.TextLabel;
34 34
 import com.dmdirc.ui.interfaces.InputWindow;
35 35
 import java.awt.Color;

+ 2
- 2
src/com/dmdirc/addons/ui_swing/dialogs/paste/PasteDialog.java View File

@@ -23,8 +23,8 @@
23 23
 package com.dmdirc.addons.ui_swing.dialogs.paste;
24 24
 
25 25
 import com.dmdirc.addons.ui_swing.UIUtilities;
26
-import com.dmdirc.addons.ui_swing.components.SwingInputHandler;
27
-import com.dmdirc.addons.ui_swing.components.TextAreaInputField;
26
+import com.dmdirc.addons.ui_swing.components.inputfields.SwingInputHandler;
27
+import com.dmdirc.addons.ui_swing.components.inputfields.TextAreaInputField;
28 28
 import com.dmdirc.addons.ui_swing.components.frames.InputTextFrame;
29 29
 import com.dmdirc.addons.ui_swing.components.text.TextLabel;
30 30
 import com.dmdirc.addons.ui_swing.dialogs.StandardDialog;

+ 1
- 1
test/com/dmdirc/addons/ui_swing/components/frames/InputTextFrameTest.java View File

@@ -24,7 +24,7 @@ package com.dmdirc.addons.ui_swing.components.frames;
24 24
 
25 25
 import com.dmdirc.harness.ui.ClassComponentMatcher;
26 26
 import com.dmdirc.harness.ui.DMDircUITestCase;
27
-import com.dmdirc.addons.ui_swing.components.TextAreaInputField;
27
+import com.dmdirc.addons.ui_swing.components.inputfields.TextAreaInputField;
28 28
 import org.junit.Test;
29 29
 import org.uispec4j.Trigger;
30 30
 import org.uispec4j.Window;

Loading…
Cancel
Save