mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-06 07:45:50 +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.osgi.util.NLS;
|
||||||
|
|
||||||
import org.eclipse.rse.core.subsystems.AbstractConnectorService;
|
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.DaytimeResources;
|
||||||
import org.eclipse.rse.examples.daytime.service.DaytimeService;
|
import org.eclipse.rse.examples.daytime.service.DaytimeService;
|
||||||
import org.eclipse.rse.examples.daytime.service.IDaytimeService;
|
import org.eclipse.rse.examples.daytime.service.IDaytimeService;
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
package org.eclipse.rse.examples.daytime.subsystems;
|
package org.eclipse.rse.examples.daytime.subsystems;
|
||||||
|
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
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.IConnectorService;
|
||||||
import org.eclipse.rse.core.subsystems.SubSystem;
|
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.examples.daytime.service.IDaytimeService;
|
||||||
import org.eclipse.rse.model.IHost;
|
import org.eclipse.rse.model.IHost;
|
||||||
import org.eclipse.rse.model.ISystemMessageObject;
|
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.SystemMessageObject;
|
||||||
|
import org.eclipse.rse.model.SystemResourceChangeEvent;
|
||||||
import org.eclipse.rse.services.clientserver.messages.SystemMessage;
|
import org.eclipse.rse.services.clientserver.messages.SystemMessage;
|
||||||
import org.eclipse.rse.ui.ISystemMessages;
|
import org.eclipse.rse.ui.ISystemMessages;
|
||||||
import org.eclipse.rse.ui.RSEUIPlugin;
|
import org.eclipse.rse.ui.RSEUIPlugin;
|
||||||
|
@ -38,7 +42,16 @@ public class DaytimeSubSystem extends SubSystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initializeSubSystem(IProgressMonitor monitor) {
|
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() {
|
public boolean hasChildren() {
|
||||||
|
@ -50,16 +63,20 @@ public class DaytimeSubSystem extends SubSystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object[] getChildren() {
|
public Object[] getChildren() {
|
||||||
try {
|
if (isConnected()) {
|
||||||
String daytime = fDaytimeService.getTimeOfDay();
|
try {
|
||||||
DaytimeResource node = new DaytimeResource(this);
|
String daytime = fDaytimeService.getTimeOfDay();
|
||||||
node.setDaytime(daytime);
|
DaytimeResource node = new DaytimeResource(this);
|
||||||
return new Object[] { node };
|
node.setDaytime(daytime);
|
||||||
} catch(Exception e) {
|
return new Object[] { node };
|
||||||
SystemMessage msg = RSEUIPlugin.getPluginMessage(ISystemMessages.MSG_CONNECT_FAILED);
|
} catch(Exception e) {
|
||||||
msg.makeSubstitution(getHostName(), e);
|
SystemMessage msg = RSEUIPlugin.getPluginMessage(ISystemMessages.MSG_CONNECT_FAILED);
|
||||||
SystemMessageObject msgobj = new SystemMessageObject(msg, ISystemMessageObject.MSGTYPE_ERROR,this);
|
msg.makeSubstitution(getHostName(), e);
|
||||||
return new Object[] { msgobj };
|
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