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 ...
Para todos los que tienen el mismo problema, parece que esta nueva característica está codificada y no se puede deshabilitar: / https://bugs.eclipse.org/bugs/show_bug.cgi?id=362420
Vaya a Ayuda -> Instalar nuevo software https://raw.github.com/atlanto/eclipse-4.x-filler/master/pdt_tools.eclipse-4.x-filler.update/
Instale ese complemento y reinicie el Eclipse. El acceso rápido se oculta automáticamente. o bien tiene una opción para ocultar Ventana -> Ocultar acceso rápido.
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
".
Aquí hay una publicación que muestra una forma de ocultarlo con CSS. Verificado con Eclipse 4.3
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;
}
}