Example usage for org.eclipse.jface.bindings Binding getPlatform

List of usage examples for org.eclipse.jface.bindings Binding getPlatform

Introduction

In this page you can find the example usage for org.eclipse.jface.bindings Binding getPlatform.

Prototype

public final String getPlatform() 

Source Link

Document

Returns the platform on which this binding applies.

Usage

From source file:com.google.dart.tools.ui.internal.preferences.DartKeyBindingPersistence.java

License:Open Source License

public Binding findBinding(String commandName, String platform) throws NotDefinedException {
    Binding[] bindings = bindingService.getBindings();
    if (bindings != null) {
        for (Binding binding : bindings) {
            if (binding.getSchemeId().equals(DART_BINDING_SCHEME)) {
                if ((platform != null && platform.equals(binding.getPlatform()))
                        || binding.getPlatform() == null) {
                    ParameterizedCommand pc = binding.getParameterizedCommand();
                    if (pc != null) {
                        Command cmd = pc.getCommand();
                        if (cmd != null) {
                            if (commandName.equals(pc.getName())) {
                                return binding;
                            }/*w w  w.  j a  v  a  2  s  .c om*/
                        }
                    }
                }
            }
        }
    }
    return null;
}

From source file:com.google.dart.tools.ui.internal.preferences.DartKeyBindingPersistence.java

License:Open Source License

private Element createBindingElement(Binding binding, Document document) {
    // binding is known to have a ParameterizedCommand whose command ID matches a registered Command
    String keys = binding.getTriggerSequence().toString();
    String platform = binding.getPlatform();
    String commandName;//w w  w  .  j a  v a2  s  .  c  o  m
    try {
        commandName = binding.getParameterizedCommand().getName();
    } catch (NotDefinedException ex) {
        return null;
    }
    String id = keys + commandName + (platform == null ? "" : platform);
    if (knownBindings.containsKey(id)) {
        if (binding.getType() == Binding.USER) {
            // A SYSTEM binding has already been created
            return null; // do not add it again
        } else {
            // A USER binding has already been created; update its standard key binding
            Element element = knownBindings.get(id);
            element.setAttribute(XML_ATTRIBUTE_KEYS, binding.getTriggerSequence().toString());
            return null;
        }
    }
    Element element = document.createElement(XML_NODE_BINDING);
    element.setAttribute(XML_ATTRIBUTE_KEYS, keys);
    element.setAttribute(XML_ATTRIBUTE_COMMANDID, commandName);
    if (platform != null) {
        element.setAttribute(XML_ATTRIBUTE_PLATFORM, platform);
    }
    knownBindings.put(id, element);
    return element;
}

From source file:com.google.dart.tools.ui.internal.preferences.DartKeyBindingPersistence.java

License:Open Source License

private Binding[] sort(Binding[] bindings) {
    Comparator<Binding> comp = new Comparator<Binding>() {
        @Override/*from ww w  .  j  av a 2  s.c  om*/
        public int compare(Binding b0, Binding b1) {
            ParameterizedCommand c0 = b0.getParameterizedCommand();
            ParameterizedCommand c1 = b1.getParameterizedCommand();
            int k;
            if (c0 == null || c1 == null) {
                if (c0 != c1) {
                    k = c0 == null ? -1 : 1;
                } else {
                    k = 0;
                }
            } else {
                try {
                    k = c0.getCommand().getName().compareTo(c1.getCommand().getName());
                } catch (NotDefinedException ex) {
                    k = 0;
                }
            }
            if (k == 0) {
                String p0 = b0.getPlatform();
                if (p0 == null) {
                    p0 = XML_UNKNOWN;
                }
                String p1 = b1.getPlatform();
                if (p1 == null) {
                    p1 = XML_UNKNOWN;
                }
                k = p0.compareTo(p1);
            }
            if (k == 0) {
                k = b0.getTriggerSequence().toString().compareTo(b1.getTriggerSequence().toString());
            }
            return k;
        }
    };
    Arrays.sort(bindings, comp);
    return bindings;
}

From source file:com.google.eclipse.mechanic.core.keybinding.EclBinding.java

License:Open Source License

public EclBinding(Binding b) {
    this(calculateCid(b), KeyBindings.commandParamMap(b.getParameterizedCommand()), b.getSchemeId(),
            b.getPlatform(), b.getContextId(), b.getTriggerSequence().format(), BindingType.from(b));
}

From source file:com.google.eclipse.mechanic.core.keybinding.KeyBindings.java

License:Open Source License

static KbaChangeSetQualifier qualifierForBinding(Binding binding, Action action) {
    return new KbaChangeSetQualifier(binding.getSchemeId(), binding.getPlatform(), binding.getContextId(),
            action.toString());//from   w  w  w  .  j a v  a2s.  c o m
}

From source file:com.google.eclipse.mechanic.core.keybinding.KeyBindings.java

License:Open Source License

/**
 * Finds a binding in {@code list} that matches the given
 * {@code triggerSequence}, {@code scheme} and {@code cid}. If not found,
 * return {@code null}.//from ww w.  ja va2 s  . c  o m
 */
private static Binding find(Scheme scheme, String platform, KeySequence triggerSequence, String cid,
        Map<String, String> params, List<Binding> list) {
    for (Binding binding : list) {
        if (binding.getSchemeId().equals(scheme.getId())
                && (binding.getTriggerSequence().equals(triggerSequence))
                && Objects.equal(binding.getPlatform(), platform)) {
            ParameterizedCommand param = binding.getParameterizedCommand();
            if (param == null) {
                if (cid == null) {
                    return binding;
                }
                continue;
            }
            Command command = param.getCommand();
            if (cid == null) {
                return command == null ? binding : null;
            }
            if (cid.equals(command.getId())) {
                Map<String, String> temp = commandParamMap(param);
                if (equalMaps(temp, params)) {
                    return binding;
                }
            }
        }
    }
    return null;
}

From source file:com.mulgasoft.emacsplus.execute.CommandHelp.java

License:Open Source License

/**
 * Get the key-binding information for the command
 * //from   w  w w  . j  a v a  2 s  .  c  om
 * @param com
 * @param activep - if true, return only active bindings
 * 
 * @return an array of binding information
 */
public static Binding[] getBindings(Command com, boolean activep) {

    IBindingService binder = (IBindingService) PlatformUI.getWorkbench().getService(IBindingService.class);
    Binding[] bindings = binder.getBindings();
    List<Binding> vbindings = new ArrayList<Binding>();
    String platform = SWT.getPlatform();
    for (Binding bind : bindings) {
        ParameterizedCommand pc = bind.getParameterizedCommand();
        if (pc != null && com.equals(pc.getCommand())) {
            // Only return binding info for applicable platforms
            String plat = bind.getPlatform();
            if (plat == null || platform.equals(plat)) {
                vbindings.add(bind);
            }
        }
    }
    if (activep && !vbindings.isEmpty()) {
        TriggerSequence[] atrigs = binder.getActiveBindingsFor(com.getId());
        List<Binding> abindings = new ArrayList<Binding>();
        for (TriggerSequence trig : atrigs) {
            for (Binding bind : vbindings) {
                if (bind.getTriggerSequence().equals(trig)) {
                    abindings.add(bind);
                    break;
                }
            }
        }
        bindings = abindings.toArray(new Binding[0]);
    } else {
        bindings = vbindings.toArray(new Binding[0]);
    }

    return bindings;
}

From source file:org.eclipse.e4.ui.keybinding.tests.BindingPersistenceTest.java

License:Open Source License

public final void testSinglePlatform() throws Exception {
    // Get the services.
    ICommandService commandService = (ICommandService) fWorkbench.getAdapter(ICommandService.class);
    IBindingService bindingService = (IBindingService) fWorkbench.getAdapter(IBindingService.class);

    ParameterizedCommand about = new ParameterizedCommand(
            commandService.getCommand("org.eclipse.ui.help.aboutAction"), null);
    KeySequence m18A = KeySequence.getInstance("M1+8 A");
    KeySequence m18B = KeySequence.getInstance("M1+8 B");
    int numAboutBindings = 0;

    Binding[] bindings = bindingService.getBindings();
    for (int i = 0; i < bindings.length; i++) {
        final Binding binding = bindings[i];
        if (binding.getType() == Binding.SYSTEM) {
            String platform = binding.getPlatform();
            int idx = (platform == null ? -1 : platform.indexOf(','));
            assertEquals(binding.toString(), -1, idx);
            if (about.equals(binding.getParameterizedCommand())) {
                if (m18A.equals(binding.getTriggerSequence())) {
                    numAboutBindings++;/*from w  w w .  ja  v a  2  s.  c o  m*/
                    assertNull("M+8 A", binding.getPlatform());
                } else if (m18B.equals(binding.getTriggerSequence())) {
                    numAboutBindings++;
                    // assertEquals(Util.WS_CARBON, binding.getPlatform());
                    // temp work around for honouring carbon bindings
                    assertTrue("failure for platform: " + binding.getPlatform(),
                            Util.WS_CARBON.equals(binding.getPlatform())
                                    || Util.WS_COCOA.equals(binding.getPlatform()));
                }
            }
        }
    }
    if (Util.WS_CARBON.equals(SWT.getPlatform()) || Util.WS_COCOA.equals(SWT.getPlatform())) {
        assertEquals(2, numAboutBindings);
    } else {
        assertEquals(1, numAboutBindings);
    }
}

From source file:org.eclipse.e4.ui.keybinding.tests.BindingPersistenceTest.java

License:Open Source License

public final void testBindingTransform() throws Exception {
    ICommandService commandService = (ICommandService) fWorkbench.getAdapter(ICommandService.class);
    IBindingService bindingService = (IBindingService) fWorkbench.getAdapter(IBindingService.class);

    ParameterizedCommand addWS = new ParameterizedCommand(
            commandService.getCommand("org.eclipse.ui.navigate.addToWorkingSet"), null);
    KeySequence m18w = KeySequence.getInstance("M1+8 W");
    KeySequence m28w = KeySequence.getInstance("M2+8 W");
    boolean foundDeleteMarker = false;
    int numOfMarkers = 0;
    Binding[] bindings = bindingService.getBindings();
    for (int i = 0; i < bindings.length; i++) {
        final Binding binding = bindings[i];
        if (binding.getType() == Binding.SYSTEM) {
            String platform = binding.getPlatform();
            int idx = (platform == null ? -1 : platform.indexOf(','));
            assertEquals(binding.toString(), -1, idx);
            if (addWS.equals(binding.getParameterizedCommand())) {
                if (m18w.equals(binding.getTriggerSequence())) {
                    numOfMarkers++;/*from  ww  w  .jav a 2  s  .  c  o m*/
                    assertNull(m18w.format(), binding.getPlatform());
                } else if (m28w.equals(binding.getTriggerSequence())) {
                    numOfMarkers++;
                    assertTrue(platform, Util.WS_CARBON.equals(platform) || Util.WS_COCOA.equals(platform)
                            || Util.WS_GTK.equals(platform) || Util.WS_WIN32.equals(platform));
                }
            } else if (binding.getParameterizedCommand() == null && m18w.equals(binding.getTriggerSequence())) {
                assertTrue(platform, Util.WS_CARBON.equals(platform) || Util.WS_COCOA.equals(platform)
                        || Util.WS_GTK.equals(platform) || Util.WS_WIN32.equals(platform));
                numOfMarkers++;
                foundDeleteMarker = true;
            }
        }
    }
    assertEquals(3, numOfMarkers);
    assertTrue("Unable to find delete marker", foundDeleteMarker);
    TriggerSequence[] activeBindingsFor = bindingService.getActiveBindingsFor(addWS);
    assertEquals(1, activeBindingsFor.length);
}

From source file:org.eclipse.e4.ui.keybinding.tests.BindingPersistenceTest.java

License:Open Source License

public void testDifferentPlatform() throws Exception {

    ICommandService commandService = (ICommandService) fWorkbench.getAdapter(ICommandService.class);
    IBindingService bindingService = (IBindingService) fWorkbench.getAdapter(IBindingService.class);
    ParameterizedCommand backCmd = new ParameterizedCommand(
            commandService.getCommand("org.eclipse.ui.navigate.back"), null);
    Binding[] bindings = bindingService.getBindings();
    for (int i = 0; i < bindings.length; i++) {
        final Binding binding = bindings[i];
        if (binding.getType() != Binding.SYSTEM)
            continue;

        if (backCmd.equals(binding.getParameterizedCommand())) {
            // make sure the modifier is NOT applied
            // this will fail on Photon (but Paul thinks we'll never run the
            // test suite on that platform :-)
            assertEquals(KeySequence.getInstance("M1+8 Q"), binding.getTriggerSequence());
            // and the platform should be null
            assertNull(binding.getPlatform());
            break;
        }/*  w w w.  j a  va  2s .  com*/
    }
}