mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-03 23:25:26 +02:00
[180875] applying Kevin Dolye's patch for closing file dialog on double-click
This commit is contained in:
parent
26ca200828
commit
9c7c0f0cac
4 changed files with 97 additions and 1 deletions
|
@ -11,15 +11,23 @@
|
|||
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
|
||||
*
|
||||
* Contributors:
|
||||
* Kevin Doyle (IBM) - Added Double Click Listener that closes dialog on file double click
|
||||
* {Name} (company) - description of contribution.
|
||||
********************************************************************************/
|
||||
|
||||
package org.eclipse.rse.files.ui.dialogs;
|
||||
|
||||
import org.eclipse.jface.viewers.DoubleClickEvent;
|
||||
import org.eclipse.jface.viewers.IDoubleClickListener;
|
||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||
import org.eclipse.rse.core.model.IHost;
|
||||
import org.eclipse.rse.internal.subsystems.files.core.SystemFileResources;
|
||||
import org.eclipse.rse.internal.ui.view.SystemActionViewerFilter;
|
||||
import org.eclipse.rse.internal.ui.view.SystemView;
|
||||
import org.eclipse.rse.ui.dialogs.SystemPromptDialog;
|
||||
import org.eclipse.rse.ui.dialogs.SystemRemoteResourceDialog;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Control;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
|
||||
|
||||
|
@ -55,4 +63,40 @@ public class SystemRemoteFileDialog extends SystemRemoteResourceDialog
|
|||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override of parent.
|
||||
*/
|
||||
protected Control createContents(Composite parent)
|
||||
{
|
||||
Control control = super.createContents(parent);
|
||||
_form.getSystemViewForm().getSystemView().addDoubleClickListener(new IDoubleClickListener() {
|
||||
public void doubleClick(DoubleClickEvent event) {
|
||||
handleDoubleClick(event);
|
||||
}
|
||||
});
|
||||
return control;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles double clicks in viewer.
|
||||
* Closes the dialog if a file is double clicked
|
||||
*/
|
||||
protected void handleDoubleClick(DoubleClickEvent event)
|
||||
{
|
||||
SystemView tree = _form.getSystemViewForm().getSystemView();
|
||||
IStructuredSelection s = (IStructuredSelection) event.getSelection();
|
||||
Object element = s.getFirstElement();
|
||||
if (element == null)
|
||||
return;
|
||||
if (_form.isPageComplete() && !tree.isExpandable(element))
|
||||
{
|
||||
setReturnCode(OK);
|
||||
if (processOK())
|
||||
{
|
||||
okPressed = true;
|
||||
close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -11,10 +11,14 @@
|
|||
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
|
||||
*
|
||||
* Contributors:
|
||||
* Kevin Doyle (IBM) - Added a double click listener that closes the dialog if appropriate
|
||||
* Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType
|
||||
********************************************************************************/
|
||||
|
||||
package org.eclipse.rse.files.ui.dialogs;
|
||||
import org.eclipse.jface.viewers.DoubleClickEvent;
|
||||
import org.eclipse.jface.viewers.IDoubleClickListener;
|
||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||
import org.eclipse.jface.viewers.ViewerFilter;
|
||||
import org.eclipse.rse.core.IRSESystemType;
|
||||
import org.eclipse.rse.core.model.IHost;
|
||||
|
@ -22,6 +26,7 @@ import org.eclipse.rse.files.ui.ISystemAddFileListener;
|
|||
import org.eclipse.rse.files.ui.widgets.SystemSelectRemoteFileOrFolderForm;
|
||||
import org.eclipse.rse.internal.subsystems.files.core.SystemFileResources;
|
||||
import org.eclipse.rse.internal.ui.SystemResources;
|
||||
import org.eclipse.rse.internal.ui.view.SystemView;
|
||||
import org.eclipse.rse.internal.ui.view.SystemViewForm;
|
||||
import org.eclipse.rse.services.clientserver.messages.SystemMessage;
|
||||
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
|
||||
|
@ -404,6 +409,43 @@ public class SystemSelectRemoteFileOrFolderDialog
|
|||
// ------------------
|
||||
// PRIVATE METHODS...
|
||||
// ------------------
|
||||
/**
|
||||
* Private method.
|
||||
* @see SystemPromptDialog#createContents(Composite)
|
||||
*/
|
||||
protected Control createContents(Composite parent)
|
||||
{
|
||||
Control control = super.createContents(parent);
|
||||
form.getSystemViewForm().getSystemView().addDoubleClickListener(new IDoubleClickListener() {
|
||||
public void doubleClick(DoubleClickEvent event) {
|
||||
handleDoubleClick(event);
|
||||
}
|
||||
});
|
||||
return control;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles double clicks in viewer.
|
||||
* Closes the dialog if a file is double clicked
|
||||
*/
|
||||
protected void handleDoubleClick(DoubleClickEvent event)
|
||||
{
|
||||
SystemView tree = form.getSystemViewForm().getSystemView();
|
||||
IStructuredSelection s = (IStructuredSelection) event.getSelection();
|
||||
Object element = s.getFirstElement();
|
||||
if (element == null)
|
||||
return;
|
||||
if (FILE_MODE && form.isPageComplete() && !tree.isExpandable(element))
|
||||
{
|
||||
setReturnCode(OK);
|
||||
if (processOK())
|
||||
{
|
||||
okPressed = true;
|
||||
close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Private method.
|
||||
* @see SystemPromptDialog#getInitialFocusControl()
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
|
||||
*
|
||||
* Contributors:
|
||||
* Kevin Doyle (IBM) - Added getSystemViewForm()
|
||||
* Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType
|
||||
********************************************************************************/
|
||||
|
||||
|
@ -131,6 +132,15 @@ public class SystemResourceSelectionForm implements ISelectionChangedListener
|
|||
return outputObjects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the embedded System Tree object.
|
||||
* Will be null until createControls is called.
|
||||
*/
|
||||
public SystemViewForm getSystemViewForm()
|
||||
{
|
||||
return _systemViewForm;
|
||||
}
|
||||
|
||||
public void createControls(Composite parent)
|
||||
{
|
||||
_container = SystemWidgetHelpers.createComposite(parent, showPropertySheet ? 2 : 1);
|
||||
|
|
|
@ -30,7 +30,7 @@ import org.eclipse.swt.widgets.Shell;
|
|||
|
||||
public abstract class SystemRemoteResourceDialog extends SystemPromptDialog
|
||||
{
|
||||
private SystemResourceSelectionForm _form;
|
||||
protected SystemResourceSelectionForm _form;
|
||||
private SystemResourceSelectionInputProvider _inputProvider;
|
||||
private Object _preSelection;
|
||||
private IValidatorRemoteSelection _selectionValidator;
|
||||
|
|
Loading…
Add table
Reference in a new issue