Example usage for org.eclipse.jface.bindings.keys KeySequenceText addPropertyChangeListener

List of usage examples for org.eclipse.jface.bindings.keys KeySequenceText addPropertyChangeListener

Introduction

In this page you can find the example usage for org.eclipse.jface.bindings.keys KeySequenceText addPropertyChangeListener.

Prototype

public final void addPropertyChangeListener(final IPropertyChangeListener listener) 

Source Link

Document

Adds a property change listener to this key sequence widget.

Usage

From source file:net.sourceforge.vrapper.plugin.bindingkeeper.preferences.KeySequenceInput.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {

    Composite composite = (Composite) super.createDialogArea(parent);

    getText().addFocusListener(new FocusListener() {
        @Override//from  w  ww. ja  v a  2s.  c  o  m
        public void focusGained(FocusEvent e) {
            bindingService.setKeyFilterEnabled(false);
        }

        @Override
        public void focusLost(FocusEvent e) {
            bindingService.setKeyFilterEnabled(true);
        }
    });
    getText().addDisposeListener(new DisposeListener() {
        @Override
        public void widgetDisposed(DisposeEvent e) {
            if (!bindingService.isKeyFilterEnabled()) {
                bindingService.setKeyFilterEnabled(true);
            }
        }
    });

    final KeySequenceText keySequenceText = new KeySequenceText(getText());
    keySequenceText.setKeyStrokeLimit(1);
    keySequenceText.addPropertyChangeListener(new IPropertyChangeListener() {
        @Override
        public final void propertyChange(final PropertyChangeEvent event) {
            if (!event.getOldValue().equals(event.getNewValue())) {
                final KeySequence keySequence = keySequenceText.getKeySequence();
                if (!keySequence.isComplete()) {
                    return;
                }

                getText().setSelection(getText().getTextLimit());
            }
        }
    });

    applyDialogFont(composite);
    return composite;

}