use of org.eclipse.wst.server.ui.IServerModule in project sling by apache.
the class ServersActionModeFiddlerActionDelegate method selectionChanged.
@Override
public void selectionChanged(IAction action, ISelection selection) {
server = null;
modules = null;
if (selection != null && (selection instanceof IStructuredSelection)) {
IStructuredSelection iss = (IStructuredSelection) selection;
Object first = iss.getFirstElement();
if (first instanceof IServer) {
server = (IServer) first;
modules = null;
if (iss.size() > 1) {
// verify that all selected elements are of type IServer
Iterator<?> it = iss.iterator();
// skip the first, we have that above already
it.next();
while (it.hasNext()) {
Object next = it.next();
if (!(next instanceof IServer)) {
server = null;
modules = null;
break;
}
}
}
} else if (first instanceof IServerModule) {
modules = new LinkedList<>();
IServerModule module = (IServerModule) first;
modules.add(module.getModule());
server = module.getServer();
if (iss.size() > 1) {
// verify that all selected elements are of type IServerModule
// plus add the module[] to the modules list
Iterator<?> it = iss.iterator();
// skip the first, we have that above already
it.next();
while (it.hasNext()) {
Object next = it.next();
if (!(next instanceof IServerModule)) {
server = null;
module = null;
break;
} else {
module = (IServerModule) next;
modules.add(module.getModule());
}
}
}
}
}
if (server != null) {
if (server.getServerState() != IServer.STATE_STARTED) {
server = null;
modules = null;
}
}
cleanAction.setEnabled(server != null);
publishAction.setEnabled(server != null);
action.setEnabled(true);
final IAction serverRunAction = actionBars.getGlobalActionHandler("org.eclipse.wst.server.run");
final IAction serverDebugAction = actionBars.getGlobalActionHandler("org.eclipse.wst.server.debug");
IAction stopRunAction = actionBars.getGlobalActionHandler("org.eclipse.wst.server.stop");
if (serverRunAction == null || stopRunAction == null || serverDebugAction == null) {
return;
}
// serverRunAction.setHoverImageDescriptor(SharedImages.SLING_LOG);
serverRunAction.setHoverImageDescriptor(SharedImages.RUN_CONNECT);
serverDebugAction.setHoverImageDescriptor(SharedImages.DEBUG_CONNECT);
stopRunAction.setHoverImageDescriptor(SharedImages.DISCONNECT);
findWstPublishAction();
for (ActionContributionItem appendedAction : appendedToolbarActionContributionItems) {
if (!contributionAdded(appendedAction)) {
actionBars.getToolBarManager().add(appendedAction);
}
}
if (wstPublishAction != null) {
wstPublishAction.setVisible(false);
publishActionContributionItem.setVisible(true);
} else {
// otherwise hide it, as it is an unexpected situation
publishActionContributionItem.setVisible(false);
}
final String runText = "Connect to server in run mode";
if (runTooltipListener == null) {
runTooltipListener = new IPropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent event) {
if (event.getProperty().equals(IAction.TOOL_TIP_TEXT)) {
if (!event.getNewValue().equals(runText)) {
serverRunAction.setToolTipText(runText);
}
}
}
};
serverRunAction.addPropertyChangeListener(runTooltipListener);
}
final String debugText = "Connect to server in debug mode";
if (debugTooltipListener == null) {
debugTooltipListener = new IPropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent event) {
if (event.getProperty().equals(IAction.TOOL_TIP_TEXT)) {
if (!event.getNewValue().equals(debugText)) {
serverDebugAction.setToolTipText(debugText);
}
}
}
};
serverDebugAction.addPropertyChangeListener(debugTooltipListener);
}
final String disconnectText = "Disconnect from server";
if (disconnectTooltipListener == null) {
disconnectTooltipListener = new IPropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent event) {
if (event.getProperty().equals(IAction.TOOL_TIP_TEXT)) {
if (!event.getNewValue().equals(disconnectText)) {
serverRunAction.setToolTipText(disconnectText);
}
}
}
};
stopRunAction.addPropertyChangeListener(disconnectTooltipListener);
}
serverRunAction.setToolTipText(runText);
serverDebugAction.setToolTipText(debugText);
stopRunAction.setToolTipText(disconnectText);
}
Aggregations