1
0
Fork 0
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:
David McKnight 2007-05-08 19:44:17 +00:00
parent 26ca200828
commit 9c7c0f0cac
4 changed files with 97 additions and 1 deletions

View file

@ -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();
}
}
}
}

View file

@ -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()

View file

@ -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);

View file

@ -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;