1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-05 08:05:24 +02:00

[181563] Fix hardcoded Ctrl+Space for remote shell content assist

This commit is contained in:
Martin Oberhuber 2008-03-04 16:14:19 +00:00
parent 541e789f9a
commit e2d2d5b725
5 changed files with 46 additions and 87 deletions

View file

@ -19,7 +19,8 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.rse.subsystems.shells.core;bundle-version="[3.0.0,4.0.0)",
org.eclipse.rse.subsystems.files.core;bundle-version="[3.0.0,4.0.0)",
org.eclipse.rse.core;bundle-version="[3.0.0,4.0.0)",
org.eclipse.rse.ui;bundle-version="[3.0.0,4.0.0)"
org.eclipse.rse.ui;bundle-version="[3.0.0,4.0.0)",
org.eclipse.core.expressions
Bundle-ActivationPolicy: lazy
Eclipse-LazyStart: true
Export-Package: org.eclipse.rse.internal.shells.ui;x-internal:=true,

View file

@ -13,6 +13,7 @@
#
# Contributors:
# David McKnight (IBM) - [216252] [nls] Resource Strings specific to subsystems should be moved from rse.ui into files.ui / shells.ui / processes.ui where possible
# Radoslav Gerganov (ProSyst) - [181563] Fix hardcoded Ctrl+Space for remote shell content assist
###############################################################################
# NLS_MESSAGEFORMAT_VAR
@ -95,7 +96,4 @@ MSG_UCMD_INVOCATION_EMPTY = The invocation may not be blank
MSG_OPERATION_RUNNING = {0} - Running
MSG_OPERATION_FINISHED = {0} - Finished
ACTION_CONTENT_ASSIST=Content Assist@Ctrl+SPACE
ACTION_CONTENT_ASSIST=Content Assist

View file

@ -1,5 +1,5 @@
/********************************************************************************
* Copyright (c) 2002, 2007 IBM Corporation and others. All rights reserved.
* Copyright (c) 2002, 2008 IBM Corporation and others. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
@ -18,8 +18,9 @@
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
* Martin Oberhuber (Wind River) - [186640] Add IRSESystemType.testProperty()
* Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
* Kevin Doyle (IBM) - [212940] Duplicate Help Context Identifiers
* David McKnight (IBM) - [216252] [api][nls] Resource Strings specific to subsystems should be moved from rse.ui into files.ui / shells.ui / processes.ui where possible
* Kevin Doyle (IBM) - [212940] Duplicate Help Context Identifiers
* David McKnight (IBM) - [216252] [api][nls] Resource Strings specific to subsystems should be moved from rse.ui into files.ui / shells.ui / processes.ui where possible
* Radoslav Gerganov (ProSyst) - [181563] Fix hardcoded Ctrl+Space for remote shell content assist
********************************************************************************/
package org.eclipse.rse.internal.shells.ui.view;
@ -537,6 +538,10 @@ FocusListener
{
return _viewer;
}
SystemCommandEditor getEditor() {
return _inputEntry;
}
public void updateOutput()
{

View file

@ -1,5 +1,5 @@
/********************************************************************************
* Copyright (c) 2002, 2007 IBM Corporation and others. All rights reserved.
* Copyright (c) 2002, 2008 IBM Corporation and others. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
@ -16,8 +16,9 @@
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
* Martin Oberhuber (Wind River) - [174945] Remove obsolete icons from rse.shells.ui
* Martin Oberhuber (Wind River) - [186640] Add IRSESystemType.testProperty()
* David McKnight (IBM) - [165680] "Show in Remote Shell View" does not work
* Kevin Doyle (IBM) - [198534] Shell Menu Enablement Issue's
* David McKnight (IBM) - [165680] "Show in Remote Shell View" does not work
* Kevin Doyle (IBM) - [198534] Shell Menu Enablement Issue's
* Radoslav Gerganov (ProSyst) - [181563] Fix hardcoded Ctrl+Space for remote shell content assist
********************************************************************************/
package org.eclipse.rse.internal.shells.ui.view;
@ -36,7 +37,9 @@ import org.eclipse.jface.action.IStatusLineManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.commands.ActionHandler;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.SelectionChangedEvent;
@ -54,6 +57,7 @@ import org.eclipse.rse.internal.shells.ui.actions.SystemBaseShellAction;
import org.eclipse.rse.internal.ui.SystemResources;
import org.eclipse.rse.services.clientserver.messages.SystemMessage;
import org.eclipse.rse.shells.ui.RemoteCommandHelpers;
import org.eclipse.rse.shells.ui.view.SystemCommandEditor;
import org.eclipse.rse.shells.ui.view.SystemViewRemoteOutputAdapter;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem;
import org.eclipse.rse.subsystems.shells.core.subsystems.IRemoteCmdSubSystem;
@ -78,8 +82,10 @@ import org.eclipse.ui.IActionBars;
import org.eclipse.ui.ISelectionListener;
import org.eclipse.ui.ISelectionService;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.handlers.IHandlerService;
import org.eclipse.ui.part.CellEditorActionHandler;
import org.eclipse.ui.part.ViewPart;
import org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds;
/**
* This is the desktop view wrapper of the System View viewer.
@ -132,8 +138,22 @@ public class SystemCommandsViewPart
}
}
/**
* Content assist action for all remote shells. It is activated with
* the default key binding for content assistance used in the workbench.
*/
class ContentAssistAction extends Action {
public void run() {
if (_folder != null) {
CommandsViewPage currentTabItem = _folder.getCurrentTabItem();
if (currentTabItem != null) {
SystemCommandEditor editor = currentTabItem.getEditor();
editor.doOperation(ISourceViewer.CONTENTASSIST_PROPOSALS);
}
}
}
}
public class ShellAction extends BrowseAction
{
@ -321,6 +341,11 @@ public class SystemCommandsViewPart
ISelectionService selectionService = getSite().getWorkbenchWindow().getSelectionService();
selectionService.addSelectionListener(this);
IHandlerService handlerService = (IHandlerService) getSite().getService(IHandlerService.class);
ContentAssistAction caAction = new ContentAssistAction();
caAction.setActionDefinitionId(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS);
// the handler is automatically deactivated in the dispose() method of this view
handlerService.activateHandler(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS, new ActionHandler(caAction));
SystemWidgetHelpers.setHelp(_folder, RSEUIPlugin.HELPPREFIX + "ucmd0000"); //$NON-NLS-1$

View file

@ -1,5 +1,5 @@
/********************************************************************************
* Copyright (c) 2002, 2007 IBM Corporation and others. All rights reserved.
* Copyright (c) 2002, 2008 IBM Corporation and others. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
@ -14,6 +14,7 @@
* Martin Oberhuber (Wind River) - fix 158765: content assist miss disables enter
* David Dykstal (IBM) - [186589] move user types, user actions, and compile commands
* API to the user actions plugin
* Radoslav Gerganov (ProSyst) - [181563] Fix hardcoded Ctrl+Space for remote shell content assist
********************************************************************************/
package org.eclipse.rse.shells.ui.view;
@ -37,7 +38,6 @@ import org.eclipse.jface.text.ITextOperationTarget;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.jface.text.IWidgetTokenKeeper;
import org.eclipse.jface.text.TextEvent;
import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.jface.text.source.SourceViewer;
import org.eclipse.jface.text.source.SourceViewerConfiguration;
import org.eclipse.jface.viewers.ISelectionChangedListener;
@ -46,12 +46,7 @@ import org.eclipse.rse.internal.ui.SystemResources;
import org.eclipse.rse.internal.ui.view.SystemViewMenuListener;
import org.eclipse.rse.services.clientserver.messages.SystemMessage;
import org.eclipse.rse.ui.validators.ISystemValidator;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.custom.VerifyKeyListener;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.VerifyEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
@ -143,44 +138,6 @@ public class SystemCommandEditor extends SourceViewer
fireModifyEvents(cmdText, errorMessage);
}
});
getTextWidget().addKeyListener(new KeyAdapter()
{
public void keyReleased(KeyEvent e)
{
if (!e.doit)
return;
if (e.stateMask == SWT.CTRL)
{
// DKM - using this now since SWT isn't providing statemask with verify key events
switch (e.character)
{
case ' ' :
//bug 158765: enter may be disabled only when the widget is shown,
//not if content assist is requested (since results may be empty)
//setInCodeAssist(true);
doOperation(ISourceViewer.CONTENTASSIST_PROPOSALS);
//e.doit = false;
break;
case 'z' - 'a' + 1 :
// CTRL-Z
doOperation(ITextOperationTarget.UNDO);
//e.doit = false;
break;
}
}
}
});
prependVerifyKeyListener(new VerifyKeyListener()
{
public void verifyKey(VerifyEvent event)
{
handleVerifyKeyPressed(event);
}
});
initializeActions();
}
public String getCommandText()
@ -257,8 +214,8 @@ public class SystemCommandEditor extends SourceViewer
menu.appendToGroup(
ITextEditorActionConstants.GROUP_EDIT,
(IAction) fGlobalActions.get(ITextEditorActionConstants.SELECT_ALL));
menu.add(new Separator("group.generate")); //$NON-NLS-1$
menu.appendToGroup("group.generate", (IAction) fGlobalActions.get("ContentAssistProposal")); //$NON-NLS-1$ //$NON-NLS-2$
menu.add(new Separator(ITextEditorActionConstants.GROUP_GENERATE));
menu.appendToGroup(ITextEditorActionConstants.GROUP_GENERATE, (IAction) fGlobalActions.get("ContentAssistProposal")); //$NON-NLS-1$
}
private IActionBars getActionBars()
{
@ -303,7 +260,6 @@ public class SystemCommandEditor extends SourceViewer
_caAction.setEnabled(true);
fGlobalActions.put("ContentAssistProposal", _caAction); //$NON-NLS-1$
setActionHandlers();
fSelectionActions.add(ITextEditorActionConstants.CUT);
@ -379,32 +335,6 @@ public class SystemCommandEditor extends SourceViewer
((IUpdate) action).update();
}
}
private void handleVerifyKeyPressed(VerifyEvent event)
{
if (!event.doit)
return;
// DKM - moved to key press handler since for some reason SWT doesn't provide statemask anymore
/*
if (event.character == 0 && (event.keyCode & SWT.KEYCODE_BIT) == 0)
{
return;
}
switch (event.character)
{
case ' ' :
doOperation(ISourceViewer.CONTENTASSIST_PROPOSALS);
event.doit = false;
break;
// CTRL-Z
case (int) 'z' - (int) 'a' + 1 :
doOperation(ITextOperationTarget.UNDO);
event.doit = false;
break;
}
*/
}
public void setInCodeAssist(boolean flag)
{