IDEA-101547 Please add a clock in fullscreen mode!

After-review: we add/remove clock when enter/exit full screen mode
This commit is contained in:
Vassiliy Kudryashov
2013-02-27 16:40:50 +04:00
parent 30de173255
commit 955018d9d9
3 changed files with 7 additions and 14 deletions
@@ -371,9 +371,6 @@ public class IdeFrameImpl extends JFrame implements IdeFrame, DataProvider {
statusBar.addWidget(readOnlyAttributePanel, "after Encoding");
}
final ClockPanel clockPanel = new ClockPanel();
statusBar.addWidget(clockPanel, "after " + MemoryUsagePanel.WIDGET_ID);
final InsertOverwritePanel finalInsertOverwritePanel = insertOverwritePanel;
Disposer.register(project, new Disposable() {
public void dispose() {
@@ -381,7 +378,6 @@ public class IdeFrameImpl extends JFrame implements IdeFrame, DataProvider {
statusBar.removeWidget(positionPanel.ID());
statusBar.removeWidget(notificationArea.ID());
statusBar.removeWidget(readOnlyAttributePanel.ID());
statusBar.removeWidget(clockPanel.ID());
if (finalInsertOverwritePanel != null) statusBar.removeWidget(finalInsertOverwritePanel.ID());
((StatusBarEx)statusBar).removeCustomIndicationComponents();
@@ -35,10 +35,13 @@ import com.intellij.openapi.ui.popup.JBPopup;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.NamedJDOMExternalizable;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.openapi.util.registry.Registry;
import com.intellij.openapi.wm.IdeFrame;
import com.intellij.openapi.wm.StatusBar;
import com.intellij.openapi.wm.WindowManagerListener;
import com.intellij.openapi.wm.ex.WindowManagerEx;
import com.intellij.openapi.wm.impl.status.ClockPanel;
import com.intellij.openapi.wm.impl.status.MemoryUsagePanel;
import com.intellij.openapi.wm.impl.welcomeScreen.WelcomeFrame;
import com.intellij.ui.ScreenUtil;
import com.intellij.util.Alarm;
@@ -847,12 +850,16 @@ public final class WindowManagerImpl extends WindowManagerEx implements Applicat
finally {
if (fullScreen) {
frame.setBounds(device.getDefaultConfiguration().getBounds());
if (!Registry.is("ui.no.bangs.and.whistles", false)) {
frame.getStatusBar().addWidget(new ClockPanel(), "before " + MemoryUsagePanel.WIDGET_ID);
}
}
else {
Object o = frame.getRootPane().getClientProperty("oldBounds");
if (o instanceof Rectangle) {
frame.setBounds((Rectangle)o);
}
frame.getStatusBar().removeWidget(ClockPanel.WIDGET_ID);
}
frame.setVisible(true);
frame.getRootPane().putClientProperty(ScreenUtil.DISPOSE_TEMPORARY, null);
@@ -16,9 +16,7 @@
package com.intellij.openapi.wm.impl.status;
import com.intellij.openapi.wm.CustomStatusBarWidget;
import com.intellij.openapi.wm.IdeFrame;
import com.intellij.openapi.wm.StatusBar;
import com.intellij.openapi.wm.impl.IdeFrameImpl;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -53,7 +51,6 @@ public class ClockPanel extends JComponent implements CustomStatusBarWidget {
protected final Calendar myCalendar;
private final Timer myTimer;
private final boolean is24Hours;
private IdeFrameImpl myIdeFrame;
public ClockPanel() {
myCalendar = getInstance();
@@ -74,21 +71,14 @@ public class ClockPanel extends JComponent implements CustomStatusBarWidget {
@Override
public void install(@NotNull StatusBar statusBar) {
IdeFrame frame = statusBar.getFrame();
myIdeFrame = frame instanceof IdeFrameImpl ? (IdeFrameImpl)frame : null;
myTimer.start();
}
@Override
public void dispose() {
myTimer.stop();
myIdeFrame = null;
}
@Override
public boolean isVisible() {
return myIdeFrame != null && myIdeFrame.isInFullScreen();
}
@Override
public JComponent getComponent() {