mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Cleanup (no static methods in API; code duplication; typos)
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2012 JetBrains s.r.o.
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -198,13 +198,13 @@ public class NewProjectUtil {
|
||||
if (newProject != projectToClose) {
|
||||
ProjectUtil.updateLastProjectLocation(projectFilePath);
|
||||
|
||||
if (WindowManager.isFullScreenSupportedInCurrentOS()) {
|
||||
if (WindowManager.getInstance().isFullScreenSupportedInCurrentOS()) {
|
||||
IdeFocusManager instance = IdeFocusManager.findInstance();
|
||||
IdeFrame lastFocusedFrame = instance.getLastFocusedFrame();
|
||||
if (lastFocusedFrame != null) {
|
||||
boolean fullScreen = WindowManagerEx.getInstanceEx().isFullScreen((Frame)lastFocusedFrame);
|
||||
if (fullScreen) {
|
||||
newProject.putUserData(IdeFrameImpl.SHOULD_OPEN_IN_FULLSCREEN, Boolean.TRUE);
|
||||
newProject.putUserData(IdeFrameImpl.SHOULD_OPEN_IN_FULL_SCREEN, Boolean.TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2012 JetBrains s.r.o.
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -62,8 +62,6 @@ public abstract class WindowManager {
|
||||
return ApplicationManager.getApplication().getComponent(WindowManager.class);
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
public abstract void doNotSuggestAsParent(Window window);
|
||||
|
||||
/**
|
||||
@@ -127,9 +125,9 @@ public abstract class WindowManager {
|
||||
public abstract void removeListener(WindowManagerListener listener);
|
||||
|
||||
/**
|
||||
* @return <code>true</code> if fullscreen mode is supported in current OS
|
||||
* @return <code>true</code> if full screen mode is supported in current OS.
|
||||
*/
|
||||
public static boolean isFullScreenSupportedInCurrentOS() {
|
||||
public boolean isFullScreenSupportedInCurrentOS() {
|
||||
return SystemInfo.isMacOSLion || SystemInfo.isWindows;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2011 JetBrains s.r.o.
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -20,8 +20,8 @@ import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.actionSystem.Presentation;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.wm.IdeFocusManager;
|
||||
import com.intellij.openapi.wm.WindowManager;
|
||||
import com.intellij.openapi.wm.ex.WindowManagerEx;
|
||||
import com.intellij.openapi.wm.impl.IdeFrameImpl;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -49,7 +49,7 @@ public class ToggleFullScreenAction extends AnAction implements DumbAware {
|
||||
public void update(final AnActionEvent e) {
|
||||
final Presentation p = e.getPresentation();
|
||||
|
||||
final boolean isApplicable = (SystemInfo.isMac && SystemInfo.isMacOSLion) || SystemInfo.isWindows;
|
||||
final boolean isApplicable = WindowManager.getInstance().isFullScreenSupportedInCurrentOS();
|
||||
|
||||
p.setVisible(isApplicable);
|
||||
p.setEnabled(isApplicable);
|
||||
|
||||
@@ -71,11 +71,11 @@ import java.io.File;
|
||||
* @author Anton Katilin
|
||||
* @author Vladimir Kondratyev
|
||||
*/
|
||||
|
||||
// Made non-final for Fabrique
|
||||
public class IdeFrameImpl extends JFrame implements IdeFrame, DataProvider {
|
||||
public static final Key<Boolean> SHOULD_OPEN_IN_FULLSCREEN = Key.create("should.open.in.fullscreen");
|
||||
public static final Key<Boolean> SHOULD_OPEN_IN_FULL_SCREEN = Key.create("should.open.in.full.screen");
|
||||
|
||||
private static final String FULL_SCREEN = "FullScreen";
|
||||
|
||||
private String myTitle;
|
||||
|
||||
private String myFileTitle;
|
||||
@@ -88,8 +88,8 @@ public class IdeFrameImpl extends JFrame implements IdeFrame, DataProvider {
|
||||
private final BalloonLayout myBalloonLayout;
|
||||
private static boolean myUpdatingTitle;
|
||||
private MacMainFrameDecorator myFrameDecorator;
|
||||
|
||||
private boolean myRestoreFullscreen;
|
||||
|
||||
private boolean myRestoreFullScreen;
|
||||
|
||||
public IdeFrameImpl(ApplicationInfoEx applicationInfoEx, ActionManagerEx actionManager, UISettings uiSettings, DataManager dataManager,
|
||||
final Application application) {
|
||||
@@ -116,9 +116,9 @@ public class IdeFrameImpl extends JFrame implements IdeFrame, DataProvider {
|
||||
// to show window thumbnail under Macs
|
||||
// http://lists.apple.com/archives/java-dev/2009/Dec/msg00240.html
|
||||
if (SystemInfo.isMac) setIconImage(null);
|
||||
// enable fullscreen titlebar button
|
||||
// enable full screen title bar button
|
||||
if (SystemInfo.isMacOSLion && MacMainFrameDecorator.FULL_SCREEN_AVAILABLE) FullScreenUtilities.setWindowCanFullScreen(this, true);
|
||||
|
||||
|
||||
MouseGestureManager.getInstance().add(this);
|
||||
}
|
||||
|
||||
@@ -189,7 +189,7 @@ public class IdeFrameImpl extends JFrame implements IdeFrame, DataProvider {
|
||||
ApplicationManagerEx.getApplicationEx().exit();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
final Project[] openProjects = ProjectManager.getInstance().getOpenProjects();
|
||||
if (openProjects.length > 1 || (openProjects.length == 1 && SystemInfo.isMacSystemMenu)) {
|
||||
if (myProject != null && myProject.isOpen()) {
|
||||
@@ -257,12 +257,12 @@ public class IdeFrameImpl extends JFrame implements IdeFrame, DataProvider {
|
||||
final Builder builder = new Builder();
|
||||
if (SystemInfo.isMac) {
|
||||
builder.append(fileTitle).append(title)
|
||||
.append(ProjectManager.getInstance().getOpenProjects().length == 0
|
||||
.append(ProjectManager.getInstance().getOpenProjects().length == 0
|
||||
|| ((ApplicationInfoEx)ApplicationInfo.getInstance()).isEAP() && !applicationName.endsWith("SNAPSHOT") ? applicationName : null);
|
||||
} else {
|
||||
builder.append(title).append(fileTitle).append(applicationName);
|
||||
}
|
||||
|
||||
|
||||
frame.setTitle(builder.sb.toString());
|
||||
}
|
||||
finally {
|
||||
@@ -278,7 +278,7 @@ public class IdeFrameImpl extends JFrame implements IdeFrame, DataProvider {
|
||||
|
||||
private static final class Builder {
|
||||
public StringBuilder sb = new StringBuilder();
|
||||
|
||||
|
||||
public Builder append(@Nullable final String s) {
|
||||
if (s == null || s.length() == 0) return this;
|
||||
if (sb.length() > 0) sb.append(" - ");
|
||||
@@ -302,14 +302,14 @@ public class IdeFrameImpl extends JFrame implements IdeFrame, DataProvider {
|
||||
}
|
||||
|
||||
public void setProject(final Project project) {
|
||||
if (WindowManager.isFullScreenSupportedInCurrentOS() && myProject != project && project != null) {
|
||||
myRestoreFullscreen = myProject == null && shouldRestoreFullScreen(project);
|
||||
|
||||
if (WindowManager.getInstance().isFullScreenSupportedInCurrentOS() && myProject != project && project != null) {
|
||||
myRestoreFullScreen = myProject == null && shouldRestoreFullScreen(project);
|
||||
|
||||
if (myProject != null) {
|
||||
storeFullScreenStateIfNeeded(false); // disable for old project
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
myProject = project;
|
||||
if (project != null) {
|
||||
ProjectFrameBounds.getInstance(project); // make sure the service is initialized and its state will be saved
|
||||
@@ -329,23 +329,23 @@ public class IdeFrameImpl extends JFrame implements IdeFrame, DataProvider {
|
||||
if (project == null) {
|
||||
FocusTrackback.release(this);
|
||||
}
|
||||
|
||||
if (isVisible() && myRestoreFullscreen) {
|
||||
|
||||
if (isVisible() && myRestoreFullScreen) {
|
||||
WindowManagerEx.getInstanceEx().setFullScreen(this, true);
|
||||
myRestoreFullscreen = false;
|
||||
myRestoreFullScreen = false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setVisible(boolean b) {
|
||||
super.setVisible(b);
|
||||
|
||||
if (b && myRestoreFullscreen) {
|
||||
|
||||
if (b && myRestoreFullScreen) {
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
WindowManagerEx.getInstanceEx().setFullScreen(IdeFrameImpl.this, true);
|
||||
myRestoreFullscreen = false;
|
||||
myRestoreFullScreen = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -427,22 +427,23 @@ public class IdeFrameImpl extends JFrame implements IdeFrame, DataProvider {
|
||||
}
|
||||
|
||||
public void storeFullScreenStateIfNeeded(boolean state) {
|
||||
if (!WindowManager.isFullScreenSupportedInCurrentOS()) return;
|
||||
|
||||
if (!WindowManager.getInstance().isFullScreenSupportedInCurrentOS()) return;
|
||||
|
||||
if (myProject != null) {
|
||||
PropertiesComponent.getInstance(myProject).setValue(FULL_SCREEN, Boolean.valueOf(state).toString());
|
||||
PropertiesComponent.getInstance(myProject).setValue(FULL_SCREEN, String.valueOf(state));
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean shouldRestoreFullScreen(Project project) {
|
||||
if (!WindowManager.isFullScreenSupportedInCurrentOS() || project == null) return false;
|
||||
return project.getUserData(SHOULD_OPEN_IN_FULLSCREEN) == Boolean.TRUE
|
||||
|| PropertiesComponent.getInstance(project).getBoolean(FULL_SCREEN, false);
|
||||
public static boolean shouldRestoreFullScreen(@Nullable Project project) {
|
||||
return WindowManager.getInstance().isFullScreenSupportedInCurrentOS() &&
|
||||
project != null &&
|
||||
(SHOULD_OPEN_IN_FULL_SCREEN.get(project) == Boolean.TRUE || PropertiesComponent.getInstance(project).getBoolean(FULL_SCREEN, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void paint(Graphics g) {
|
||||
UIUtil.applyRenderingHints(g);
|
||||
//noinspection Since15
|
||||
super.paint(g);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2012 JetBrains s.r.o.
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -186,14 +186,14 @@ public final class WindowManagerImpl extends WindowManagerEx implements Applicat
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
bus.connect().subscribe(AppLifecycleListener.TOPIC, new AppLifecycleListener.Adapter() {
|
||||
@Override
|
||||
public void appClosing() {
|
||||
// save fullscreen window states
|
||||
// save full screen window states
|
||||
if (isFullScreenSupportedInCurrentOS() && GeneralSettings.getInstance().isReopenLastProject()) {
|
||||
Project[] openProjects = ProjectManager.getInstance().getOpenProjects();
|
||||
|
||||
|
||||
if (openProjects.length > 0) {
|
||||
WindowManagerEx wm = WindowManagerEx.getInstanceEx();
|
||||
for (Project project : openProjects) {
|
||||
@@ -821,10 +821,11 @@ public final class WindowManagerImpl extends WindowManagerEx implements Applicat
|
||||
public WindowWatcher getWindowWatcher() {
|
||||
return myWindowWatcher;
|
||||
}
|
||||
|
||||
|
||||
public void setFullScreen(IdeFrameImpl frame, boolean fullScreen) {
|
||||
if (!isFullScreenSupportedInCurrentOS() || frame.isInFullScreen() == fullScreen)
|
||||
if (!isFullScreenSupportedInCurrentOS() || frame.isInFullScreen() == fullScreen) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
if (SystemInfo.isMacOSLion) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2011 JetBrains s.r.o.
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -59,7 +59,7 @@ public class MacMainFrameDecorator implements UISettingsListener, Disposable {
|
||||
}
|
||||
}
|
||||
public static final boolean FULL_SCREEN_AVAILABLE = SystemInfo.isJavaVersionAtLeast("1.6.0_29") && HAS_FULLSCREEN_UTILITIES;
|
||||
|
||||
|
||||
private static boolean SHOWN = false;
|
||||
|
||||
private static Callback SET_VISIBLE_CALLBACK = new Callback() {
|
||||
@@ -157,9 +157,9 @@ public class MacMainFrameDecorator implements UISettingsListener, Disposable {
|
||||
if (rootPane != null) rootPane.putClientProperty(FULL_SCREEN, Boolean.TRUE);
|
||||
if (Patches.APPLE_BUG_ID_10207064) {
|
||||
// fix problem with bottom empty bar
|
||||
// it seems like the title is still visible in fullscreen but the window itself shifted up for titlebar height
|
||||
// it seems like the title is still visible in full screen but the window itself shifted up for title bar height
|
||||
// and the size of the frame is still calculated to be the height of the screen which is wrong
|
||||
// so just add these titlebar height to the frame height once again
|
||||
// so just add these title bar height to the frame height once again
|
||||
Timer timer = new Timer(300, new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
|
||||
Reference in New Issue
Block a user