/* * Copyright 2016 Nokia Solutions and Networks * Licensed under the Apache License, Version 2.0, * see license.txt file for details. */ package org.robotframework.ide.eclipse.main.plugin.tableeditor.settings; import org.eclipse.swt.events.FocusEvent; import org.eclipse.swt.events.FocusListener; import org.eclipse.ui.IWorkbenchSite; import org.eclipse.ui.contexts.IContextActivation; import org.eclipse.ui.contexts.IContextService; public class SettingsTableFocusListener implements FocusListener { private final String contextId; private final IWorkbenchSite site; private IContextActivation activationToken = null; public SettingsTableFocusListener(final String contextId, final IWorkbenchSite site) { this.contextId = contextId; this.site = site; } @Override public void focusLost(final FocusEvent e) { getContextService(site).deactivateContext(activationToken); } @Override public void focusGained(final FocusEvent e) { activationToken = getContextService(site).activateContext(contextId); } private IContextService getContextService(final IWorkbenchSite site) { return (IContextService) site.getService(IContextService.class); } }