vcs: Removed unused classes/interfaces
[idea/community.git] / platform / platform-impl / src / com / intellij / openapi / vcs / changes / TabbedRefreshablePanel.java
1 /*
2  * Copyright 2000-2012 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.intellij.openapi.vcs.changes;
17
18 import com.intellij.openapi.util.Disposer;
19 import com.intellij.ui.components.JBTabbedPane;
20
21 import javax.swing.*;
22 import java.awt.*;
23 import java.util.ArrayList;
24 import java.util.List;
25
26 /**
27  * Created with IntelliJ IDEA.
28  * User: Irina.Chernushina
29  * Date: 4/25/12
30  * Time: 4:53 PM
31  */
32 public class TabbedRefreshablePanel implements RefreshablePanel {
33   private final JBTabbedPane myPane;
34   private final JPanel myPanel;
35   private final List<RefreshablePanel> myPanels;
36
37   public TabbedRefreshablePanel() {
38     myPanels = new ArrayList<>();
39     myPane = new JBTabbedPane();
40     myPanel = new JPanel(new BorderLayout());
41     myPanel.add(myPane, BorderLayout.CENTER);
42   }
43
44   public void addTab(final String title, final RefreshablePanel panel) {
45     myPanels.add(panel);
46     myPane.add(title, panel.getPanel());
47   }
48
49   @Override
50   public boolean refreshDataSynch() {
51     for (RefreshablePanel panel : myPanels) {
52       if (! panel.refreshDataSynch()) return false;
53     }
54     return true;
55   }
56
57   @Override
58   public boolean isStillValid(Object o) {
59     for (RefreshablePanel panel : myPanels) {
60       if (! panel.isStillValid(o)) return false;
61     }
62     return true;
63   }
64
65   @Override
66   public void dataChanged() {
67     for (RefreshablePanel panel : myPanels) {
68       panel.dataChanged();
69     }
70   }
71
72   @Override
73   public void refresh() {
74     for (RefreshablePanel panel : myPanels) {
75       panel.refresh();
76     }
77   }
78
79   @Override
80   public JPanel getPanel() {
81     return myPanel;
82   }
83
84   @Override
85   public void away() {
86     for (RefreshablePanel panel : myPanels) {
87       panel.away();
88     }
89   }
90
91   @Override
92   public void dispose() {
93     for (RefreshablePanel panel : myPanels) {
94       Disposer.dispose(panel);
95     }
96   }
97 }