Search in sources :

Example 21 with DocumentListener

use of javax.swing.event.DocumentListener in project intellij-community by JetBrains.

the class CloneDvcsDialog method initListeners.

/**
   * Init components
   */
private void initListeners() {
    FileChooserDescriptor fcd = FileChooserDescriptorFactory.createSingleFolderDescriptor();
    fcd.setShowFileSystemRoots(true);
    fcd.setTitle(DvcsBundle.getString("clone.destination.directory.title"));
    fcd.setDescription(DvcsBundle.getString("clone.destination.directory.description"));
    fcd.setHideIgnored(false);
    myParentDirectory.addActionListener(new ComponentWithBrowseButton.BrowseFolderActionListener<JTextField>(fcd.getTitle(), fcd.getDescription(), myParentDirectory, myProject, fcd, TextComponentAccessor.TEXT_FIELD_WHOLE_TEXT) {

        @Override
        protected VirtualFile getInitialFile() {
            // suggest project base directory only if nothing is typed in the component.
            String text = getComponentText();
            if (text.length() == 0) {
                VirtualFile file = myProject.getBaseDir();
                if (file != null) {
                    return file;
                }
            }
            return super.getInitialFile();
        }
    });
    final DocumentListener updateOkButtonListener = new DocumentAdapter() {

        @Override
        protected void textChanged(DocumentEvent e) {
            updateButtons();
        }
    };
    myParentDirectory.getChildComponent().getDocument().addDocumentListener(updateOkButtonListener);
    String parentDir = getRememberedInputs().getCloneParentDir();
    if (StringUtil.isEmptyOrSpaces(parentDir)) {
        parentDir = ProjectUtil.getBaseDir();
    }
    myParentDirectory.setText(parentDir);
    myDirectoryName.getDocument().addDocumentListener(updateOkButtonListener);
    myTestButton.addActionListener(new ActionListener() {

        public void actionPerformed(final ActionEvent e) {
            test();
        }
    });
    setOKActionEnabled(false);
    myTestButton.setEnabled(false);
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) DocumentListener(javax.swing.event.DocumentListener) ActionListener(java.awt.event.ActionListener) FileChooserDescriptor(com.intellij.openapi.fileChooser.FileChooserDescriptor) ActionEvent(java.awt.event.ActionEvent) DocumentAdapter(com.intellij.ui.DocumentAdapter) DocumentEvent(javax.swing.event.DocumentEvent)

Example 22 with DocumentListener

use of javax.swing.event.DocumentListener in project jabref by JabRef.

the class JTextFieldChangeListenerUtil method addChangeListener.

/**
     * Installs a listener to receive notification when the text of any
     * {@code JTextComponent} is changed. Internally, it installs a
     * {@link DocumentListener} on the text component's {@link Document},
     * and a {@link PropertyChangeListener} on the text component to detect
     * if the {@code Document} itself is replaced.
     *
     * Taken from
     *
     * @param text any text component, such as a {@link JTextField}
     *        or {@link JTextArea}
     * @param changeListener a listener to receive {@link ChangeEvent}s
     *        when the text is changed; the source object for the events
     *        will be the text component
     * @throws NullPointerException if either parameter is null
     */
public static void addChangeListener(JTextComponent text, ChangeListener changeListener) {
    Objects.requireNonNull(text);
    Objects.requireNonNull(changeListener);
    DocumentListener dl = new DocumentListener() {

        private int lastChange;

        private int lastNotifiedChange;

        @Override
        public void insertUpdate(DocumentEvent e) {
            changedUpdate(e);
        }

        @Override
        public void removeUpdate(DocumentEvent e) {
            changedUpdate(e);
        }

        @Override
        public void changedUpdate(DocumentEvent e) {
            lastChange++;
            SwingUtilities.invokeLater(() -> {
                if (lastNotifiedChange != lastChange) {
                    lastNotifiedChange = lastChange;
                    changeListener.stateChanged(new ChangeEvent(text));
                }
            });
        }
    };
    text.addPropertyChangeListener("document", (PropertyChangeEvent e) -> {
        Document d1 = (Document) e.getOldValue();
        Document d2 = (Document) e.getNewValue();
        if (d1 != null) {
            d1.removeDocumentListener(dl);
        }
        if (d2 != null) {
            d2.addDocumentListener(dl);
        }
        dl.changedUpdate(null);
    });
    Document d = text.getDocument();
    if (d != null) {
        d.addDocumentListener(dl);
    }
}
Also used : DocumentListener(javax.swing.event.DocumentListener) PropertyChangeEvent(java.beans.PropertyChangeEvent) ChangeEvent(javax.swing.event.ChangeEvent) PropertyChangeEvent(java.beans.PropertyChangeEvent) DocumentEvent(javax.swing.event.DocumentEvent) Document(javax.swing.text.Document)

Example 23 with DocumentListener

use of javax.swing.event.DocumentListener in project jabref by JabRef.

the class ExternalFileTypeEntryEditor method init.

private void init(ExternalFileType inEntry) {
    entry = inEntry;
    icon.setText(null);
    ButtonGroup bg = new ButtonGroup();
    bg.add(useDefault);
    bg.add(other);
    FormBuilder builder = FormBuilder.create();
    builder.layout(new FormLayout("left:pref, 4dlu, fill:150dlu, 4dlu, fill:pref", "p, 2dlu, p, 2dlu, p, 2dlu, p, 2dlu, p, 2dlu, p"));
    builder.add(Localization.lang("Icon")).xy(1, 1);
    builder.add(icon).xy(3, 1);
    builder.add(Localization.lang("Name")).xy(1, 3);
    builder.add(name).xy(3, 3);
    builder.add(Localization.lang("Extension")).xy(1, 5);
    builder.add(extension).xy(3, 5);
    builder.add(Localization.lang("MIME type")).xy(1, 7);
    builder.add(mimeType).xy(3, 7);
    builder.getPanel().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    builder.add(Localization.lang("Application")).xy(1, 9);
    JButton browseBut = new JButton(Localization.lang("Browse"));
    if (OS.WINDOWS) {
        builder.add(useDefault).xy(3, 9);
        builder.appendRows("2dlu, p");
        JPanel p1 = new JPanel();
        builder.add(p1).xy(1, 11);
        JPanel p2 = new JPanel();
        application.setPreferredSize(new Dimension(300, application.getPreferredSize().height));
        BorderLayout bl = new BorderLayout();
        bl.setHgap(4);
        p2.setLayout(bl);
        p2.add(other, BorderLayout.WEST);
        p2.add(application, BorderLayout.CENTER);
        builder.add(p2).xy(3, 11);
        builder.add(browseBut).xy(5, 11);
    } else {
        builder.add(application).xy(3, 9);
        builder.add(browseBut).xy(5, 9);
    }
    ButtonBarBuilder bb = new ButtonBarBuilder();
    bb.addGlue();
    bb.addButton(ok);
    bb.addButton(cancel);
    bb.addGlue();
    ok.addActionListener(e -> {
        okPressed = true;
        storeSettings(ExternalFileTypeEntryEditor.this.entry);
        diag.dispose();
    });
    cancel.addActionListener(e -> diag.dispose());
    if (OS.WINDOWS) {
        application.getDocument().addDocumentListener(new DocumentListener() {

            private void handle() {
                if (application.getText().isEmpty()) {
                    useDefault.setSelected(true);
                } else {
                    other.setSelected(true);
                }
            }

            @Override
            public void insertUpdate(DocumentEvent documentEvent) {
                handle();
            }

            @Override
            public void removeUpdate(DocumentEvent documentEvent) {
                handle();
            }

            @Override
            public void changedUpdate(DocumentEvent documentEvent) {
                handle();
            }
        });
    }
    String title = editFileTitle;
    if (entry.getName().isEmpty()) {
        title = newFileTitle;
    }
    if (dParent == null) {
        diag = new JDialog(fParent, title, true);
    } else {
        diag = new JDialog(dParent, title, true);
    }
    diag.getContentPane().add(builder.getPanel(), BorderLayout.CENTER);
    diag.getContentPane().add(bb.getPanel(), BorderLayout.SOUTH);
    diag.pack();
    browseBut.addActionListener(browsePressed);
    if (dParent == null) {
        diag.setLocationRelativeTo(fParent);
    } else {
        diag.setLocationRelativeTo(dParent);
    }
    setValues(entry);
}
Also used : FormLayout(com.jgoodies.forms.layout.FormLayout) FormBuilder(com.jgoodies.forms.builder.FormBuilder) JPanel(javax.swing.JPanel) DocumentListener(javax.swing.event.DocumentListener) JButton(javax.swing.JButton) Dimension(java.awt.Dimension) DocumentEvent(javax.swing.event.DocumentEvent) BorderLayout(java.awt.BorderLayout) ButtonGroup(javax.swing.ButtonGroup) ButtonBarBuilder(com.jgoodies.forms.builder.ButtonBarBuilder) JDialog(javax.swing.JDialog)

Example 24 with DocumentListener

use of javax.swing.event.DocumentListener in project processdash by dtuma.

the class EditImportDirectoryPanel method buildMainPanelContents.

protected void buildMainPanelContents() {
    DocumentListener listener = (DocumentListener) EventHandler.create(DocumentListener.class, this, "updateInstruction");
    if (instr.isUrlOnly()) {
        String chooseUrlPrompt = getString("Choose_URL");
        add(indentedComponent(2, new WrappingText(chooseUrlPrompt)));
        add(verticalSpace(1));
        url = new JTextField(instr.getURL());
        url.getDocument().addDocumentListener(listener);
        add(indentedComponent(4, url));
    } else {
        String chooseDirectoryPrompt = getString("Choose_Directory");
        add(indentedComponent(2, new WrappingText(chooseDirectoryPrompt)));
        add(verticalSpace(1));
        directory = new DirectoryChooser();
        directory.getDocument().addDocumentListener(listener);
        add(indentedComponent(4, directory));
    }
    add(verticalSpace(2));
    String choosePrefixPrompt = getString("Choose_Prefix");
    add(indentedComponent(2, new WrappingText(choosePrefixPrompt)));
    add(verticalSpace(1));
    prefix = new JTextField(instr.getPrefix());
    prefix.getDocument().addDocumentListener(listener);
    add(indentedComponent(4, prefix));
    if (fromManagePanel == false) {
        add(verticalSpace(2));
        String makeAutomaticPrompt = getString("Make_Automatic");
        add(indentedComponent(2, new WrappingText(makeAutomaticPrompt)));
        makeAutomatic = new ButtonGroup();
        Box autoButtonBox = Box.createHorizontalBox();
        autoButtonBox.add(createAutomaticButton("Yes"));
        autoButtonBox.add(createAutomaticButton("No"));
        add(indentedComponent(4, autoButtonBox));
    }
    add(verticalSpace(4));
    error = new WrappingText("");
    error.setForeground(Color.red);
    add(error);
}
Also used : DocumentListener(javax.swing.event.DocumentListener) ButtonGroup(javax.swing.ButtonGroup) Box(javax.swing.Box) WrappingText(net.sourceforge.processdash.ui.lib.WrappingText) JTextField(javax.swing.JTextField)

Example 25 with DocumentListener

use of javax.swing.event.DocumentListener in project JMRI by JMRI.

the class AbstractMonFrame method initComponents.

@Override
public void initComponents() throws Exception {
    p = jmri.InstanceManager.getDefault(jmri.UserPreferencesManager.class);
    // the following code sets the frame's initial state
    // NOI18N
    clearButton.setText(Bundle.getMessage("ButtonClearScreen"));
    clearButton.setVisible(true);
    // NOI18N
    clearButton.setToolTipText(Bundle.getMessage("TooltipClearMonHistory"));
    // NOI18N
    freezeButton.setText(Bundle.getMessage("ButtonFreezeScreen"));
    freezeButton.setVisible(true);
    // NOI18N
    freezeButton.setToolTipText(Bundle.getMessage("TooltipStopScroll"));
    // NOI18N
    enterButton.setText(Bundle.getMessage("ButtonAddMessage"));
    enterButton.setVisible(true);
    // NOI18N
    enterButton.setToolTipText(Bundle.getMessage("TooltipAddMessage"));
    monTextPane.setVisible(true);
    // NOI18N
    monTextPane.setToolTipText(Bundle.getMessage("TooltipMonTextPane"));
    monTextPane.setEditable(false);
    // Add document listener to scroll to end when modified if required
    monTextPane.getDocument().addDocumentListener(new DocumentListener() {

        // References to the JTextArea and JCheckBox
        // of this instantiation
        JTextArea ta = monTextPane;

        JCheckBox chk = autoScrollCheckBox;

        @Override
        public void insertUpdate(DocumentEvent e) {
            doAutoScroll(ta, chk.isSelected());
        }

        @Override
        public void removeUpdate(DocumentEvent e) {
            doAutoScroll(ta, chk.isSelected());
        }

        @Override
        public void changedUpdate(DocumentEvent e) {
            doAutoScroll(ta, chk.isSelected());
        }
    });
    // NOI18N
    entryField.setToolTipText(Bundle.getMessage("TooltipEntryPane"));
    // fix a width for current character set
    JTextField t = new JTextField(80);
    int x = jScrollPane1.getPreferredSize().width + t.getPreferredSize().width;
    int y = jScrollPane1.getPreferredSize().height + 10 * t.getPreferredSize().height;
    jScrollPane1.getViewport().add(monTextPane);
    jScrollPane1.setPreferredSize(new Dimension(x, y));
    jScrollPane1.setVisible(true);
    // NOI18N
    startLogButton.setText(Bundle.getMessage("ButtonStartLogging"));
    startLogButton.setVisible(true);
    // NOI18N
    startLogButton.setToolTipText(Bundle.getMessage("TooltipStartLogging"));
    // NOI18N
    stopLogButton.setText(Bundle.getMessage("ButtonStopLogging"));
    stopLogButton.setVisible(true);
    // NOI18N
    stopLogButton.setToolTipText(Bundle.getMessage("TooltipStopLogging"));
    // NOI18N
    rawCheckBox.setText(Bundle.getMessage("ButtonShowRaw"));
    rawCheckBox.setVisible(true);
    // NOI18N
    rawCheckBox.setToolTipText(Bundle.getMessage("TooltipShowRaw"));
    rawCheckBox.setSelected(p.getSimplePreferenceState(rawDataCheck));
    // NOI18N
    timeCheckBox.setText(Bundle.getMessage("ButtonShowTimestamps"));
    timeCheckBox.setVisible(true);
    // NOI18N
    timeCheckBox.setToolTipText(Bundle.getMessage("TooltipShowTimestamps"));
    timeCheckBox.setSelected(p.getSimplePreferenceState(timeStampCheck));
    // NOI18N
    alwaysOnTopCheckBox.setText(Bundle.getMessage("ButtonWindowOnTop"));
    alwaysOnTopCheckBox.setVisible(true);
    // NOI18N
    alwaysOnTopCheckBox.setToolTipText(Bundle.getMessage("TooltipWindowOnTop"));
    alwaysOnTopCheckBox.setSelected(p.getSimplePreferenceState(alwaysOnTopCheck));
    setAlwaysOnTop(alwaysOnTopCheckBox.isSelected());
    // NOI18N
    autoScrollCheckBox.setText(Bundle.getMessage("ButtonAutoScroll"));
    autoScrollCheckBox.setVisible(true);
    // NOI18N
    autoScrollCheckBox.setToolTipText(Bundle.getMessage("TooltipAutoScroll"));
    autoScrollCheckBox.setSelected(!p.getSimplePreferenceState(autoScrollCheck));
    // NOI18N
    openFileChooserButton.setText(Bundle.getMessage("ButtonChooseLogFile"));
    openFileChooserButton.setVisible(true);
    // NOI18N
    openFileChooserButton.setToolTipText(Bundle.getMessage("TooltipChooseLogFile"));
    setTitle(title());
    getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
    // add items to GUI
    getContentPane().add(jScrollPane1);
    JPanel paneA = new JPanel();
    paneA.setLayout(new BoxLayout(paneA, BoxLayout.Y_AXIS));
    JPanel pane1 = new JPanel();
    pane1.setLayout(new BoxLayout(pane1, BoxLayout.X_AXIS));
    pane1.add(clearButton);
    pane1.add(freezeButton);
    pane1.add(rawCheckBox);
    pane1.add(timeCheckBox);
    pane1.add(alwaysOnTopCheckBox);
    paneA.add(pane1);
    JPanel pane2 = new JPanel();
    pane2.setLayout(new BoxLayout(pane2, BoxLayout.X_AXIS));
    pane2.add(openFileChooserButton);
    pane2.add(startLogButton);
    pane2.add(stopLogButton);
    paneA.add(pane2);
    JPanel pane3 = new JPanel();
    pane3.setLayout(new BoxLayout(pane3, BoxLayout.X_AXIS));
    pane3.add(enterButton);
    pane3.add(entryField);
    paneA.add(pane3);
    getContentPane().add(paneA);
    // connect actions to buttons
    clearButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            clearButtonActionPerformed(e);
        }
    });
    startLogButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            startLogButtonActionPerformed(e);
        }
    });
    stopLogButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            stopLogButtonActionPerformed(e);
        }
    });
    openFileChooserButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            openFileChooserButtonActionPerformed(e);
        }
    });
    enterButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            enterButtonActionPerformed(e);
        }
    });
    alwaysOnTopCheckBox.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            setAlwaysOnTop(alwaysOnTopCheckBox.isSelected());
        }
    });
    autoScrollCheckBox.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            doAutoScroll(monTextPane, autoScrollCheckBox.isSelected());
        }
    });
    // set file chooser to a default
    // NOI18N
    logFileChooser.setSelectedFile(new File("monitorLog.txt"));
    // connect to data source
    init();
    // add help menu to window
    addHelpMenu();
    // prevent button areas from expanding
    pack();
    paneA.setMaximumSize(paneA.getSize());
    pack();
}
Also used : DocumentListener(javax.swing.event.DocumentListener) JPanel(javax.swing.JPanel) JTextArea(javax.swing.JTextArea) ActionEvent(java.awt.event.ActionEvent) BoxLayout(javax.swing.BoxLayout) Dimension(java.awt.Dimension) DocumentEvent(javax.swing.event.DocumentEvent) JTextField(javax.swing.JTextField) JCheckBox(javax.swing.JCheckBox) ActionListener(java.awt.event.ActionListener) File(java.io.File)

Aggregations

DocumentListener (javax.swing.event.DocumentListener)73 DocumentEvent (javax.swing.event.DocumentEvent)70 JTextField (javax.swing.JTextField)24 ActionEvent (java.awt.event.ActionEvent)21 ActionListener (java.awt.event.ActionListener)19 JLabel (javax.swing.JLabel)19 JPanel (javax.swing.JPanel)18 Dimension (java.awt.Dimension)16 JButton (javax.swing.JButton)13 JCheckBox (javax.swing.JCheckBox)13 GridBagLayout (java.awt.GridBagLayout)9 ChangeEvent (javax.swing.event.ChangeEvent)9 GridBagConstraints (java.awt.GridBagConstraints)8 Box (javax.swing.Box)8 ChangeListener (javax.swing.event.ChangeListener)8 BoxLayout (javax.swing.BoxLayout)7 ZapTextField (org.zaproxy.zap.utils.ZapTextField)7 BorderLayout (java.awt.BorderLayout)6 Insets (java.awt.Insets)6 FocusEvent (java.awt.event.FocusEvent)6