diff --git a/platform/icons/src/process/fs/step_1.png b/platform/icons/src/process/fs/step_1.png new file mode 100644 index 000000000000..a02f0d104b39 Binary files /dev/null and b/platform/icons/src/process/fs/step_1.png differ diff --git a/platform/icons/src/process/fs/step_10.png b/platform/icons/src/process/fs/step_10.png new file mode 100644 index 000000000000..b6bfb992ece4 Binary files /dev/null and b/platform/icons/src/process/fs/step_10.png differ diff --git a/platform/icons/src/process/fs/step_11.png b/platform/icons/src/process/fs/step_11.png new file mode 100644 index 000000000000..a5c85de9aa18 Binary files /dev/null and b/platform/icons/src/process/fs/step_11.png differ diff --git a/platform/icons/src/process/fs/step_12.png b/platform/icons/src/process/fs/step_12.png new file mode 100644 index 000000000000..fe7462e4093e Binary files /dev/null and b/platform/icons/src/process/fs/step_12.png differ diff --git a/platform/icons/src/process/fs/step_13.png b/platform/icons/src/process/fs/step_13.png new file mode 100644 index 000000000000..29ee72483188 Binary files /dev/null and b/platform/icons/src/process/fs/step_13.png differ diff --git a/platform/icons/src/process/fs/step_14.png b/platform/icons/src/process/fs/step_14.png new file mode 100644 index 000000000000..83adfde6df2a Binary files /dev/null and b/platform/icons/src/process/fs/step_14.png differ diff --git a/platform/icons/src/process/fs/step_15.png b/platform/icons/src/process/fs/step_15.png new file mode 100644 index 000000000000..dd7c72f16c71 Binary files /dev/null and b/platform/icons/src/process/fs/step_15.png differ diff --git a/platform/icons/src/process/fs/step_16.png b/platform/icons/src/process/fs/step_16.png new file mode 100644 index 000000000000..a8628ed26f60 Binary files /dev/null and b/platform/icons/src/process/fs/step_16.png differ diff --git a/platform/icons/src/process/fs/step_17.png b/platform/icons/src/process/fs/step_17.png new file mode 100644 index 000000000000..3184821bf5dc Binary files /dev/null and b/platform/icons/src/process/fs/step_17.png differ diff --git a/platform/icons/src/process/fs/step_18.png b/platform/icons/src/process/fs/step_18.png new file mode 100644 index 000000000000..ba0cb9b6147f Binary files /dev/null and b/platform/icons/src/process/fs/step_18.png differ diff --git a/platform/icons/src/process/fs/step_2.png b/platform/icons/src/process/fs/step_2.png new file mode 100644 index 000000000000..116c7739306a Binary files /dev/null and b/platform/icons/src/process/fs/step_2.png differ diff --git a/platform/icons/src/process/fs/step_3.png b/platform/icons/src/process/fs/step_3.png new file mode 100644 index 000000000000..dfd20857736b Binary files /dev/null and b/platform/icons/src/process/fs/step_3.png differ diff --git a/platform/icons/src/process/fs/step_4.png b/platform/icons/src/process/fs/step_4.png new file mode 100644 index 000000000000..a237bd9c4a91 Binary files /dev/null and b/platform/icons/src/process/fs/step_4.png differ diff --git a/platform/icons/src/process/fs/step_5.png b/platform/icons/src/process/fs/step_5.png new file mode 100644 index 000000000000..a9793e2aa4fc Binary files /dev/null and b/platform/icons/src/process/fs/step_5.png differ diff --git a/platform/icons/src/process/fs/step_6.png b/platform/icons/src/process/fs/step_6.png new file mode 100644 index 000000000000..3c7b285e2e5b Binary files /dev/null and b/platform/icons/src/process/fs/step_6.png differ diff --git a/platform/icons/src/process/fs/step_7.png b/platform/icons/src/process/fs/step_7.png new file mode 100644 index 000000000000..103ba21a4677 Binary files /dev/null and b/platform/icons/src/process/fs/step_7.png differ diff --git a/platform/icons/src/process/fs/step_8.png b/platform/icons/src/process/fs/step_8.png new file mode 100644 index 000000000000..03898c63b27a Binary files /dev/null and b/platform/icons/src/process/fs/step_8.png differ diff --git a/platform/icons/src/process/fs/step_9.png b/platform/icons/src/process/fs/step_9.png new file mode 100644 index 000000000000..10c777aca3c0 Binary files /dev/null and b/platform/icons/src/process/fs/step_9.png differ diff --git a/platform/icons/src/process/fs/step_mask.png b/platform/icons/src/process/fs/step_mask.png new file mode 100644 index 000000000000..1a95fada3d49 Binary files /dev/null and b/platform/icons/src/process/fs/step_mask.png differ diff --git a/platform/icons/src/process/fs/step_passive.png b/platform/icons/src/process/fs/step_passive.png new file mode 100644 index 000000000000..e1d490fdbbeb Binary files /dev/null and b/platform/icons/src/process/fs/step_passive.png differ diff --git a/platform/platform-api/src/com/intellij/util/ui/RefreshFileSystemIcon.java b/platform/platform-api/src/com/intellij/util/ui/RefreshFileSystemIcon.java new file mode 100644 index 000000000000..dea652841547 --- /dev/null +++ b/platform/platform-api/src/com/intellij/util/ui/RefreshFileSystemIcon.java @@ -0,0 +1,54 @@ +/* + * Copyright 2000-2012 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.util.ui; + +import com.intellij.openapi.util.IconLoader; + +import javax.swing.*; +import java.awt.*; + +/** + * @author Konstantin Bulenkov + */ +public class RefreshFileSystemIcon extends AnimatedIcon { + private static final Icon[] ICONS = getIcons("/process/fs/step_", 18); + + private static Icon[] getIcons(String path, int count) { + Icon[] icons = new Icon[count]; + for (int i = 0; i < icons.length; i++) { + int index = i + 1; + icons[i] = IconLoader.getIcon(path + index + ".png"); + } + return icons; + } + + public RefreshFileSystemIcon() { + super("Refreshing filesystem", ICONS, EmptyIcon.ICON_16, 800); + } + + @Override + public Dimension getPreferredSize() { + if (!isRunning()) return new Dimension(0, 0); + return super.getPreferredSize(); + } + + @Override + public void paint(Graphics g) { + g.translate(0, -1); + super.paint(g); + g.translate(0, 1); + } +} diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/InfoAndProgressPanel.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/InfoAndProgressPanel.java index 0de178212d6d..7cbd2336fe4d 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/InfoAndProgressPanel.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/InfoAndProgressPanel.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 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. @@ -41,10 +41,7 @@ import com.intellij.ui.components.labels.LinkLabel; import com.intellij.ui.components.labels.LinkListener; import com.intellij.ui.components.panels.Wrapper; import com.intellij.util.Alarm; -import com.intellij.util.ui.AbstractLayoutManager; -import com.intellij.util.ui.AsyncProcessIcon; -import com.intellij.util.ui.EmptyIcon; -import com.intellij.util.ui.UIUtil; +import com.intellij.util.ui.*; import com.intellij.util.ui.update.MergingUpdateQueue; import com.intellij.util.ui.update.Update; import org.jetbrains.annotations.NotNull; @@ -63,7 +60,7 @@ public class InfoAndProgressPanel extends JPanel implements CustomStatusBarWidge private final StatusPanel myInfoPanel = new StatusPanel(); private final JPanel myRefreshAndInfoPanel = new JPanel(); - private final AsyncProcessIcon myProgressIcon; + private final AnimatedIcon myProgressIcon; private final ArrayList myOriginals = new ArrayList(); private final ArrayList myInfos = new ArrayList(); @@ -78,7 +75,7 @@ public class InfoAndProgressPanel extends JPanel implements CustomStatusBarWidge private boolean myShouldClosePopupAndOnProcessFinish; private final Alarm myRefreshAlarm = new Alarm(Alarm.ThreadToUse.SWING_THREAD); - private AsyncProcessIcon myRefreshIcon; + private AnimatedIcon myRefreshIcon; private EmptyIcon myEmptyRefreshIcon; private String myCurrentRequestor; @@ -89,24 +86,25 @@ public class InfoAndProgressPanel extends JPanel implements CustomStatusBarWidge setOpaque(false); - myRefreshIcon = new AsyncProcessIcon("Refreshing filesystem") { - protected Icon getPassiveIcon() { - return myEmptyRefreshIcon; - } - - @Override - public Dimension getPreferredSize() { - if (!isRunning()) return new Dimension(0, 0); - return super.getPreferredSize(); - } - - @Override - public void paint(Graphics g) { - g.translate(0, -1); - super.paint(g); - g.translate(0, 1); - } - }; + myRefreshIcon = new RefreshFileSystemIcon(); + // new AsyncProcessIcon("Refreshing filesystem") { + // protected Icon getPassiveIcon() { + // return myEmptyRefreshIcon; + // } + // + // @Override + // public Dimension getPreferredSize() { + // if (!isRunning()) return new Dimension(0, 0); + // return super.getPreferredSize(); + // } + // + // @Override + // public void paint(Graphics g) { + // g.translate(0, -1); + // super.paint(g); + // g.translate(0, 1); + // } + //}; myRefreshIcon.setPaintPassiveIcon(false); myEmptyRefreshIcon = new EmptyIcon(0, myRefreshIcon.getPreferredSize().height);