1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-09 18:56:02 +02:00

[422844] rse.files.ui fails to compile against Eclipse 4.4 Luna

I20131126
This commit is contained in:
Dave McKnight 2013-12-16 14:20:01 -05:00
parent 2e8b377823
commit 94a8a330e1
2 changed files with 50 additions and 42 deletions

View file

@ -1,5 +1,5 @@
/******************************************************************************* /*******************************************************************************
* Copyright (c) 2000, 2008 IBM Corporation and others. * Copyright (c) 2000, 2013 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials * All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0 * are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at * which accompanies this distribution, and is available at
@ -12,10 +12,13 @@
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley. * Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
* *
* Contributors: * Contributors:
* {Name} (company) - description of contribution. * David McKnight (IBM) - [422844] rse.files.ui fails to compile against Eclipse 4.4 Luna I20131126
*******************************************************************************/ *******************************************************************************/
package org.eclipse.rse.internal.files.ui.widgets; package org.eclipse.rse.internal.files.ui.widgets;
import java.lang.reflect.Field;
import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.IStructuredSelection;
@ -23,6 +26,7 @@ import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.rse.subsystems.files.core.subsystems.RemoteFileEmpty; import org.eclipse.rse.subsystems.files.core.subsystems.RemoteFileEmpty;
import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Table;
@ -36,11 +40,10 @@ import org.eclipse.swt.widgets.Composite;
* We subclass this to add some slight additional functionality, including support for * We subclass this to add some slight additional functionality, including support for
* refreshing the contents. * refreshing the contents.
*/ */
public class SystemFileTreeAndListGroup extends org.eclipse.ui.internal.ide.dialogs.ResourceTreeAndListGroup public class SystemFileTreeAndListGroup extends org.eclipse.ui.ide.dialogs.ResourceTreeAndListGroup
{ {
private Object rootObject = null; private Object rootObject = null;
private Object lastSelectedElement = null;
//private ISelectionProvider selectionProvider = null;
// CONSTANTS // CONSTANTS
private static final RemoteFileEmpty EMPTYROOT = new RemoteFileEmpty(); private static final RemoteFileEmpty EMPTYROOT = new RemoteFileEmpty();
@ -122,29 +125,8 @@ public class SystemFileTreeAndListGroup extends org.eclipse.ui.internal.ide.dial
} }
*/ */
} }
} }
/**
* Refesh the contents of the file-selection checkbox viewer.
*/
public void refreshFiles()
{
if (lastSelectedElement != null)
populateListViewer(lastSelectedElement);
}
/**
* Handle the selection of an item in the tree viewer.
* Intercept of parent so we can record the last selected tree node.
* @param event the selection changed event
*/
public void selectionChanged(SelectionChangedEvent event)
{
IStructuredSelection selection = (IStructuredSelection) event.getSelection();
lastSelectedElement = selection.getFirstElement();
//selectionProvider = event.getSelectionProvider();
super.selectionChanged(event);
}
/** /**
* Set the root of the widget to be new Root. Regenerate all of the tables and lists from this * Set the root of the widget to be new Root. Regenerate all of the tables and lists from this
@ -154,7 +136,6 @@ public class SystemFileTreeAndListGroup extends org.eclipse.ui.internal.ide.dial
*/ */
public void setRoot(Object newRoot) public void setRoot(Object newRoot)
{ {
lastSelectedElement = null;
rootObject = newRoot; rootObject = newRoot;
super.setRoot(newRoot); super.setRoot(newRoot);
} }
@ -166,4 +147,20 @@ public class SystemFileTreeAndListGroup extends org.eclipse.ui.internal.ide.dial
{ {
setRoot(EMPTYROOT); setRoot(EMPTYROOT);
} }
/**
* Added this to preserve original behaviour with Luna
*/
public Table getListTable(){
try {
Field f = getClass().getDeclaredField("listViewer"); //$NON-NLS-1$
f.setAccessible(true);
CheckboxTableViewer tableV = (CheckboxTableViewer) f.get(this); //IllegalAccessException
return tableV.getTable();
}
catch (Exception e){
}
return null;
}
} }

View file

@ -20,11 +20,13 @@
* David McKnight (IBM) - [191558] [importexport][efs] Import to Project doesn't work with remote EFS projects * David McKnight (IBM) - [191558] [importexport][efs] Import to Project doesn't work with remote EFS projects
* David McKnight (IBM) - [368465] Import Files -RSE - Cyclic Symbolic Reference problem * David McKnight (IBM) - [368465] Import Files -RSE - Cyclic Symbolic Reference problem
* David McKnight (IBM) - [417033] [import/export] RSE import wizard won't let user to select new source * David McKnight (IBM) - [417033] [import/export] RSE import wizard won't let user to select new source
* David McKnight (IBM) - [422844] rse.files.ui fails to compile against Eclipse 4.4 Luna I20131126
*******************************************************************************/ *******************************************************************************/
package org.eclipse.rse.internal.importexport.files; package org.eclipse.rse.internal.importexport.files;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
@ -56,6 +58,7 @@ import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.window.Window; import org.eclipse.jface.window.Window;
import org.eclipse.osgi.util.NLS; import org.eclipse.osgi.util.NLS;
import org.eclipse.rse.core.model.IHost; import org.eclipse.rse.core.model.IHost;
@ -148,21 +151,25 @@ class RemoteImportWizardPage1 extends WizardResourceImportPage implements Listen
private MinimizedFileSystemElement _element; private MinimizedFileSystemElement _element;
private List _resultsQueried; private List _resultsQueried;
private volatile boolean _isActive = false; private volatile boolean _isActive = false;
private RemoteImportWizardPage1 _page;
private Control _control; private Control _control;
public QueryAllJob(Object fileSystemObject, IImportStructureProvider provider, MinimizedFileSystemElement element, Control control){ //public QueryAllJob(Object fileSystemObject, IImportStructureProvider provider, MinimizedFileSystemElement element, Control control){
public QueryAllJob(Object fileSystemObject, IImportStructureProvider provider, MinimizedFileSystemElement element, RemoteImportWizardPage1 page){
super("Querying All"); //$NON-NLS-1$ super("Querying All"); //$NON-NLS-1$
_fileSystemObject = fileSystemObject; _fileSystemObject = fileSystemObject;
_provider = provider; _provider = provider;
_element = element; _element = element;
_control = control; _page = page;
_resultsQueried = new ArrayList(); _resultsQueried = new ArrayList();
} }
public IStatus run(IProgressMonitor monitor){ public IStatus run(IProgressMonitor monitor){
_isActive = true; _isActive = true;
if (_control == null){
_control = _page.getControl();
}
final Display d = _control.getDisplay(); final Display d = _control.getDisplay();
d.syncExec(new Runnable(){ d.syncExec(new Runnable(){
public void run(){ public void run(){
@ -234,15 +241,18 @@ class RemoteImportWizardPage1 extends WizardResourceImportPage implements Listen
if (element == _element){ if (element == _element){
Display.getDefault().asyncExec(new Runnable(){ Display.getDefault().asyncExec(new Runnable(){
public void run(){ public void run(){
DummyProvider provider = new DummyProvider(); try {
Field treeViewerF = selectionGroup.getClass().getDeclaredField("treeViewer"); //$NON-NLS-1$
ISelection sel1 = new StructuredSelection(_element.getParent()); treeViewerF.setAccessible(true);
SelectionChangedEvent evt1 = new SelectionChangedEvent(provider, sel1); TreeViewer treeV = (TreeViewer) treeViewerF.get(selectionGroup);
selectionGroup.selectionChanged(evt1);
// selection handling to get table populated
ISelection sel2 = new StructuredSelection(_element); treeV.setSelection(new StructuredSelection(_element.getParent()));
SelectionChangedEvent evt2 = new SelectionChangedEvent(provider, sel2); treeV.setSelection(new StructuredSelection(_element));
selectionGroup.selectionChanged(evt2); } catch (NoSuchFieldException e) {
} catch (IllegalAccessException e){
} catch (SecurityException e) {
}
} }
}); });
} }
@ -576,8 +586,9 @@ class RemoteImportWizardPage1 extends WizardResourceImportPage implements Listen
result.setFileSystemObject(fileSystemObject); result.setFileSystemObject(fileSystemObject);
if (_queryAllJob == null){ if (_queryAllJob == null){
_queryAllJob = new QueryAllJob(fileSystemObject, provider, result, getControl()); //_queryAllJob = new QueryAllJob(fileSystemObject, provider, result, getControl());
_queryAllJob.schedule(); _queryAllJob = new QueryAllJob(fileSystemObject, provider, result, this);
_queryAllJob.schedule(1000); // need time for control to be created
} }
////Get the files for the element so as to build the first level ////Get the files for the element so as to build the first level