mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-09-01 04:33:36 +02:00
[240991] RSE startup creates display on worker thread before workbench.
This commit is contained in:
parent
b02b8e46f3
commit
2d504da454
2 changed files with 26 additions and 3 deletions
|
@ -54,6 +54,7 @@
|
||||||
* David McKnight (IBM) - [234057] Wrong or missing model change event
|
* David McKnight (IBM) - [234057] Wrong or missing model change event
|
||||||
* David Dykstal (IBM) - [227750] do not fire events if there are no listeners
|
* David Dykstal (IBM) - [227750] do not fire events if there are no listeners
|
||||||
* David McKnight (IBM) - [238673] Expansion icon (plus sign) disappears from Work With Libraries entry
|
* David McKnight (IBM) - [238673] Expansion icon (plus sign) disappears from Work With Libraries entry
|
||||||
|
* David McKnight (IBM) - [240991] RSE startup creates display on worker thread before workbench.
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.rse.internal.core.model;
|
package org.eclipse.rse.internal.core.model;
|
||||||
|
@ -1618,7 +1619,9 @@ public class SystemRegistry implements ISystemRegistry
|
||||||
IHost host = op.getHost();
|
IHost host = op.getHost();
|
||||||
ISubSystem[] subsystems = op.getSubSystems();
|
ISubSystem[] subsystems = op.getSubSystems();
|
||||||
FireNewHostEvents fire = new FireNewHostEvents(host, subsystems, sr);
|
FireNewHostEvents fire = new FireNewHostEvents(host, subsystems, sr);
|
||||||
Display.getDefault().asyncExec(fire);
|
if (modelListenerManager.hasListeners())
|
||||||
|
Display.getDefault().asyncExec(fire);
|
||||||
|
|
||||||
////Listening to FireNewHostEvents now
|
////Listening to FireNewHostEvents now
|
||||||
//SystemPreferencesManager.setConnectionNamesOrder(); // update preferences order list
|
//SystemPreferencesManager.setConnectionNamesOrder(); // update preferences order list
|
||||||
return host;
|
return host;
|
||||||
|
|
|
@ -16,13 +16,18 @@
|
||||||
* Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
|
* Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
|
||||||
* Martin Oberhuber (Wind River) - [215820] Move SystemRegistry implementation to Core
|
* Martin Oberhuber (Wind River) - [215820] Move SystemRegistry implementation to Core
|
||||||
* David McKnight (IBM) - [237300] Problem with setDefaultHistory for SystemHistoryCombo.
|
* David McKnight (IBM) - [237300] Problem with setDefaultHistory for SystemHistoryCombo.
|
||||||
|
* David McKnight (IBM) - [240991] RSE startup creates display on worker thread before workbench.
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
package org.eclipse.rse.ui;
|
package org.eclipse.rse.ui;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.eclipse.core.runtime.IProgressMonitor;
|
||||||
|
import org.eclipse.core.runtime.IStatus;
|
||||||
import org.eclipse.core.runtime.Preferences;
|
import org.eclipse.core.runtime.Preferences;
|
||||||
|
import org.eclipse.core.runtime.Status;
|
||||||
|
import org.eclipse.core.runtime.jobs.Job;
|
||||||
import org.eclipse.rse.core.IRSEPreferenceNames;
|
import org.eclipse.rse.core.IRSEPreferenceNames;
|
||||||
import org.eclipse.rse.core.RSECorePlugin;
|
import org.eclipse.rse.core.RSECorePlugin;
|
||||||
import org.eclipse.rse.core.events.ISystemModelChangeEvent;
|
import org.eclipse.rse.core.events.ISystemModelChangeEvent;
|
||||||
|
@ -34,6 +39,7 @@ import org.eclipse.rse.core.events.ISystemResourceChangeEvents;
|
||||||
import org.eclipse.rse.core.events.ISystemResourceChangeListener;
|
import org.eclipse.rse.core.events.ISystemResourceChangeListener;
|
||||||
import org.eclipse.rse.core.model.IHost;
|
import org.eclipse.rse.core.model.IHost;
|
||||||
import org.eclipse.rse.core.model.ISystemRegistry;
|
import org.eclipse.rse.core.model.ISystemRegistry;
|
||||||
|
import org.eclipse.ui.IWorkbench;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A utility class that encapsulates all global preferences for the remote system framework
|
* A utility class that encapsulates all global preferences for the remote system framework
|
||||||
|
@ -483,9 +489,23 @@ public class SystemPreferencesManager {
|
||||||
alreadyListening = (fModelChangeListeners>0);
|
alreadyListening = (fModelChangeListeners>0);
|
||||||
fModelChangeListeners++;
|
fModelChangeListeners++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!alreadyListening) {
|
if (!alreadyListening) {
|
||||||
fModelChangeListener = new ModelChangeListener();
|
Job addListenerJob = new Job("Add Listener"){ //$NON-NLS-1$
|
||||||
RSECorePlugin.getTheSystemRegistry().addSystemModelChangeListener(fModelChangeListener);
|
public IStatus run(IProgressMonitor monitor){
|
||||||
|
IWorkbench wb = RSEUIPlugin.getDefault().getWorkbench();
|
||||||
|
while (wb.getDisplay() == null) {
|
||||||
|
try {
|
||||||
|
Thread.sleep(1000);
|
||||||
|
}
|
||||||
|
catch (InterruptedException e){}
|
||||||
|
}
|
||||||
|
fModelChangeListener = new ModelChangeListener();
|
||||||
|
RSECorePlugin.getTheSystemRegistry().addSystemModelChangeListener(fModelChangeListener);
|
||||||
|
return Status.OK_STATUS;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
addListenerJob.setSystem(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue