mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Add 'show' command to build-in server. This command brings IDE to front.
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
package org.jetbrains.ide;
|
||||
|
||||
import com.intellij.openapi.wm.IdeFocusManager;
|
||||
import com.intellij.openapi.wm.IdeFrame;
|
||||
import com.intellij.ui.AppIcon;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.handler.codec.http.FullHttpRequest;
|
||||
import io.netty.handler.codec.http.HttpMethod;
|
||||
import io.netty.handler.codec.http.HttpResponseStatus;
|
||||
import io.netty.handler.codec.http.QueryStringDecoder;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* @author Konstantin Bulenkov
|
||||
*/
|
||||
public class ActivateApplicationHttpService extends RestService {
|
||||
@NotNull
|
||||
@Override
|
||||
protected String getServiceName() {
|
||||
return "show";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isMethodSupported(@NotNull HttpMethod method) {
|
||||
return method == HttpMethod.GET;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public String execute(@NotNull QueryStringDecoder urlDecoder, @NotNull FullHttpRequest request, @NotNull ChannelHandlerContext context)
|
||||
throws IOException {
|
||||
final IdeFrame frame = IdeFocusManager.findInstance().getLastFocusedFrame();
|
||||
if (frame instanceof Window) {
|
||||
sendOk(request, context);
|
||||
Runnable runnable = new Runnable() {
|
||||
public void run() {
|
||||
Window window = (Window)frame;
|
||||
window.toFront();
|
||||
window.requestFocusInWindow();
|
||||
|
||||
AppIcon.getInstance().requestFocus(frame);
|
||||
|
||||
}
|
||||
};
|
||||
//noinspection SSBasedInspection
|
||||
SwingUtilities.invokeLater(runnable);
|
||||
return "Success";
|
||||
}
|
||||
sendStatus(HttpResponseStatus.NOT_FOUND, false, context.channel());
|
||||
return "Can't find IDE Frame";
|
||||
}
|
||||
}
|
||||
@@ -27,6 +27,7 @@
|
||||
<httpRequestHandler implementation="org.jetbrains.ide.XmlRpcServerImpl$XmlRpcRequestHandler"/>
|
||||
<httpRequestHandler implementation="org.jetbrains.ide.ProjectSetRequestHandler"/>
|
||||
<httpRequestHandler implementation="org.jetbrains.ide.DiffHttpService"/>
|
||||
<httpRequestHandler implementation="org.jetbrains.ide.ActivateApplicationHttpService"/>
|
||||
<httpRequestHandler implementation="org.jetbrains.ide.OpenFileHttpService"/>
|
||||
<httpRequestHandler implementation="org.jetbrains.ide.AboutHttpService"/>
|
||||
<httpRequestHandler implementation="org.jetbrains.ide.JetBrainsProtocolHandlerHttpService"/>
|
||||
|
||||
Reference in New Issue
Block a user