Cleanup (no static methods in API; code duplication; typos)

This commit is contained in:
Roman Shevchenko
2013-02-19 11:12:44 +01:00
parent e1ca67b70f
commit 94ca434a7d
6 changed files with 49 additions and 49 deletions
@@ -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) {