mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-03 14:25:37 +02:00
Automatically expand Daytime subsystem on connect
This commit is contained in:
parent
fc320160ed
commit
66b4cc7750
2 changed files with 28 additions and 12 deletions
|
@ -22,7 +22,6 @@ import org.eclipse.core.runtime.IProgressMonitor;
|
|||
import org.eclipse.osgi.util.NLS;
|
||||
|
||||
import org.eclipse.rse.core.subsystems.AbstractConnectorService;
|
||||
import org.eclipse.rse.core.subsystems.CommunicationsEvent;
|
||||
import org.eclipse.rse.examples.daytime.DaytimeResources;
|
||||
import org.eclipse.rse.examples.daytime.service.DaytimeService;
|
||||
import org.eclipse.rse.examples.daytime.service.IDaytimeService;
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
package org.eclipse.rse.examples.daytime.subsystems;
|
||||
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.swt.widgets.Display;
|
||||
|
||||
import org.eclipse.rse.core.subsystems.IConnectorService;
|
||||
import org.eclipse.rse.core.subsystems.SubSystem;
|
||||
|
@ -19,7 +20,10 @@ import org.eclipse.rse.examples.daytime.model.DaytimeResource;
|
|||
import org.eclipse.rse.examples.daytime.service.IDaytimeService;
|
||||
import org.eclipse.rse.model.IHost;
|
||||
import org.eclipse.rse.model.ISystemMessageObject;
|
||||
import org.eclipse.rse.model.ISystemRegistry;
|
||||
import org.eclipse.rse.model.ISystemResourceChangeEvents;
|
||||
import org.eclipse.rse.model.SystemMessageObject;
|
||||
import org.eclipse.rse.model.SystemResourceChangeEvent;
|
||||
import org.eclipse.rse.services.clientserver.messages.SystemMessage;
|
||||
import org.eclipse.rse.ui.ISystemMessages;
|
||||
import org.eclipse.rse.ui.RSEUIPlugin;
|
||||
|
@ -38,7 +42,16 @@ public class DaytimeSubSystem extends SubSystem {
|
|||
}
|
||||
|
||||
public void initializeSubSystem(IProgressMonitor monitor) {
|
||||
// nothing to do
|
||||
//This is called after connect - expand the daytime node.
|
||||
//May be called in worker thread.
|
||||
//TODO find a more elegant solution for expanding the item, e.g. use implicit connect like filters
|
||||
final ISystemRegistry sr = RSEUIPlugin.getTheSystemRegistry();
|
||||
final SystemResourceChangeEvent event = new SystemResourceChangeEvent(this, ISystemResourceChangeEvents.EVENT_SELECT_EXPAND, null);
|
||||
//TODO bug 150919: postEvent() should not be necessary asynchronously
|
||||
//sr.postEvent(event);
|
||||
Display.getDefault().asyncExec(new Runnable() {
|
||||
public void run() { sr.postEvent(event); }
|
||||
});
|
||||
}
|
||||
|
||||
public boolean hasChildren() {
|
||||
|
@ -50,16 +63,20 @@ public class DaytimeSubSystem extends SubSystem {
|
|||
}
|
||||
|
||||
public Object[] getChildren() {
|
||||
try {
|
||||
String daytime = fDaytimeService.getTimeOfDay();
|
||||
DaytimeResource node = new DaytimeResource(this);
|
||||
node.setDaytime(daytime);
|
||||
return new Object[] { node };
|
||||
} catch(Exception e) {
|
||||
SystemMessage msg = RSEUIPlugin.getPluginMessage(ISystemMessages.MSG_CONNECT_FAILED);
|
||||
msg.makeSubstitution(getHostName(), e);
|
||||
SystemMessageObject msgobj = new SystemMessageObject(msg, ISystemMessageObject.MSGTYPE_ERROR,this);
|
||||
return new Object[] { msgobj };
|
||||
if (isConnected()) {
|
||||
try {
|
||||
String daytime = fDaytimeService.getTimeOfDay();
|
||||
DaytimeResource node = new DaytimeResource(this);
|
||||
node.setDaytime(daytime);
|
||||
return new Object[] { node };
|
||||
} catch(Exception e) {
|
||||
SystemMessage msg = RSEUIPlugin.getPluginMessage(ISystemMessages.MSG_CONNECT_FAILED);
|
||||
msg.makeSubstitution(getHostName(), e);
|
||||
SystemMessageObject msgobj = new SystemMessageObject(msg, ISystemMessageObject.MSGTYPE_ERROR,this);
|
||||
return new Object[] { msgobj };
|
||||
}
|
||||
} else {
|
||||
return new Object[0];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue