oxygen mac for developers descargar java eclipse plugins rcp

java - mac - eclipse linux



¿Cómo puedo desactivar Quick Access TextField en la aplicación Eclipse RCP? (5)

hoy cambié mi Eclipse IDE de 3.7 a 4.2 y mi plugin-project tiene una nueva característica en la barra de estado de la interfaz de usuario llamada QuickAccess. Pero no lo necesito, entonces ¿cómo puedo desactivar esta característica, porque la posición de mi barra de botones ha cambiado ...




Lars Vogel acaba de informar en su blog " Porting Eclipse 3.x RCP application to Eclipse 4.4 - now without QuickAccess box ":

El error 411821 ([ QuickAccess ] Contribuye SearchField través de un fragmento u otro medio) ahora está resuelto.
Gracias a René Brandstetter:

Si una aplicación RCP no proporciona el elemento QuickAccess en su modelo, entonces no será visible. Entonces, ¿el valor predeterminado es QuickAcces, no es suficiente? :)

Vea el compromiso 839ee2 para más detalles

Proporcione el " QuickAccess " a través de un fragmento de modelo de aplicación e4 dentro de " org.eclipse.ui.ide.application ".
Esto elimina el campo de búsqueda " QuickAccess " de cada none " org.eclipse.ui.ide.application ".



También podría ocultarlo y hacer que funcione de manera similar a como solía funcionar en Eclipse3.7: cuando el usuario presiona ctrl + 3 aparece la funcionalidad Acceso rápido (En Eclipse4.3, el atajo Ctrl + 3 aún está disponible).

Ejemplo de código que puede agregar a su implementación de WorkbenchWindowAdvisor (para la aplicación Eclipse4.3 rcp)

private IHandlerActivation quickAccessHandlerActivation; @Override public void postWindowOpen() { hideQuickAccess(); } private void hideQuickAccess() { IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); setQuickAccessVisible(window, false); final IHandlerService service = (IHandlerService) window.getService(IHandlerService.class); quickAccessHandlerActivation = service.activateHandler(QUICK_ACCESS_COMMAND_ID, new CustomQuickAccessHandler()); } private void setQuickAccessVisible(IWorkbenchWindow window, boolean visible) { if (window instanceof WorkbenchWindow) { MTrimBar topTrim = ((WorkbenchWindow) window).getTopTrim(); for (MTrimElement element : topTrim.getChildren()) { if (QUICK_ACCESS_ELEMENT_ID.equals(element.getElementId())) { element.setVisible(visible); if (visible) { Composite control = (Composite) element.getWidget(); control.getChildren()[0].addFocusListener(new QuickAccessFocusListener()); } break; } } } } private class QuickAccessFocusListener implements FocusListener { @Override public void focusGained(FocusEvent e) { //not interested } @Override public void focusLost(FocusEvent e) { ((Control) e.widget).removeFocusListener(this); hideQuickAccess(); } } private class CustomQuickAccessHandler extends AbstractHandler { @Override public Object execute(ExecutionEvent event) throws ExecutionException { IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); final IHandlerService service = (IHandlerService) window.getService(IHandlerService.class); setQuickAccessVisible(window, true); if (quickAccessHandlerActivation != null) { service.deactivateHandler(quickAccessHandlerActivation); try { return service.executeCommand(QUICK_ACCESS_COMMAND_ID, null); } catch (NotDefinedException e) { } catch (NotEnabledException e) { } catch (NotHandledException e) { } } return null; } }