mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-24 09:25:31 +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 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) - [240991] RSE startup creates display on worker thread before workbench.
|
||||
********************************************************************************/
|
||||
|
||||
package org.eclipse.rse.internal.core.model;
|
||||
|
@ -1618,7 +1619,9 @@ public class SystemRegistry implements ISystemRegistry
|
|||
IHost host = op.getHost();
|
||||
ISubSystem[] subsystems = op.getSubSystems();
|
||||
FireNewHostEvents fire = new FireNewHostEvents(host, subsystems, sr);
|
||||
Display.getDefault().asyncExec(fire);
|
||||
if (modelListenerManager.hasListeners())
|
||||
Display.getDefault().asyncExec(fire);
|
||||
|
||||
////Listening to FireNewHostEvents now
|
||||
//SystemPreferencesManager.setConnectionNamesOrder(); // update preferences order list
|
||||
return host;
|
||||
|
|
|
@ -16,13 +16,18 @@
|
|||
* Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
|
||||
* Martin Oberhuber (Wind River) - [215820] Move SystemRegistry implementation to Core
|
||||
* 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;
|
||||
|
||||
import java.util.ArrayList;
|
||||
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.Status;
|
||||
import org.eclipse.core.runtime.jobs.Job;
|
||||
import org.eclipse.rse.core.IRSEPreferenceNames;
|
||||
import org.eclipse.rse.core.RSECorePlugin;
|
||||
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.model.IHost;
|
||||
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
|
||||
|
@ -483,9 +489,23 @@ public class SystemPreferencesManager {
|
|||
alreadyListening = (fModelChangeListeners>0);
|
||||
fModelChangeListeners++;
|
||||
}
|
||||
|
||||
if (!alreadyListening) {
|
||||
fModelChangeListener = new ModelChangeListener();
|
||||
RSECorePlugin.getTheSystemRegistry().addSystemModelChangeListener(fModelChangeListener);
|
||||
Job addListenerJob = new Job("Add Listener"){ //$NON-NLS-1$
|
||||
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