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

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

Introduction

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

Prototype

public void setKeyStrokeLimit(int keyStrokeLimit) 

Source Link

Document

A mutator for the maximum number of strokes that are permitted in this widget at one time.

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/* www  .j ava 2  s .  co  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;

}

From source file:org.limy.eclipse.qalab.keybind.KeybindWindow.java

License:Open Source License

/**
 * @param comp/*from  ww w  .  ja  v  a  2  s  .  c  o  m*/
 * @param commandId 
 * @param commandBinding 
 * @param commandName
 * @param lastTarget
 * @return 
 * @throws NotDefinedException 
 */
private Control createCommandComp(Composite comp, String commandId, Control lastTarget)
        throws NotDefinedException {

    Binding[] bindings = bindingService.getBindings();

    Binding systemBinding = null;
    Collection<Binding> userBindings = new ArrayList<Binding>();
    for (Binding binding : bindings) {
        ParameterizedCommand command = binding.getParameterizedCommand();

        if (command != null && commandId.equals(command.getId())) {

            if (binding.getType() == Binding.SYSTEM) {
                systemBinding = binding;
            } else {
                userBindings.add(binding);
            }
        }
    }

    Label label = new Label(comp, SWT.NONE);
    label.setText(systemBinding.getParameterizedCommand().getCommand().getDescription());
    label.setLayoutData(FormDataCreater.controlDown(lastTarget, 6, 280));
    label.setFont(new Font(comp.getDisplay(), "Serif", 10, SWT.NORMAL));

    Text text = new Text(comp, SWT.BORDER);
    text.setLayoutData(FormDataCreater.controlDownWithWidth(lastTarget, 4, 288, 100));
    text.setData(systemBinding);

    text.addFocusListener(new FocusListener() {
        public void focusGained(FocusEvent e) {
            bindingService.setKeyFilterEnabled(false);
        }

        public void focusLost(FocusEvent e) {
            bindingService.setKeyFilterEnabled(true);
        }
    });

    KeySequenceText sequenceText = new KeySequenceText(text);
    if (!userBindings.isEmpty()) {
        sequenceText.setKeySequence((KeySequence) userBindings.iterator().next().getTriggerSequence());
    } else {
        sequenceText.setKeySequence((KeySequence) systemBinding.getTriggerSequence());
    }
    sequenceText.setKeyStrokeLimit(4);

    texts.add(text);
    sequenceTexts.add(sequenceText);
    return text;
}