diff --git a/source/com/intellij/packageDependencies/ui/DependenciesPanel.java b/source/com/intellij/packageDependencies/ui/DependenciesPanel.java index 7ee2f2c909f4..d5758f0730f7 100644 --- a/source/com/intellij/packageDependencies/ui/DependenciesPanel.java +++ b/source/com/intellij/packageDependencies/ui/DependenciesPanel.java @@ -10,6 +10,8 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.Splitter; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.IconLoader; +import com.intellij.openapi.wm.StatusBar; +import com.intellij.openapi.wm.WindowManager; import com.intellij.packageDependencies.DependenciesBuilder; import com.intellij.packageDependencies.DependencyRule; import com.intellij.packageDependencies.DependencyUISettings; @@ -33,15 +35,12 @@ import javax.swing.tree.TreeSelectionModel; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; -import java.io.IOException; -import java.io.StringReader; import java.util.*; public class DependenciesPanel extends JPanel { private Map> myDependencies; private Map>> myIllegalDependencies; private MyTree myLeftTree = new MyTree(); - private JEditorPane myBrowser = new JEditorPane("text/html", ""); private MyTree myRightTree = new MyTree(); private UsagesPanel myUsagesPanel; @@ -57,7 +56,7 @@ public class DependenciesPanel extends JPanel { private DependenciesBuilder myBuilder; private Content myContent; - private JComponent myLeftTreePanel; + public DependenciesPanel(Project project, final DependenciesBuilder builder) { super(new BorderLayout()); @@ -67,11 +66,8 @@ public class DependenciesPanel extends JPanel { myProject = project; myUsagesPanel = new UsagesPanel(myProject); - hideHintsWhenNothingToShow(); - - Splitter treeSplitter = new Splitter(); - treeSplitter.setFirstComponent(myLeftTreePanel); + treeSplitter.setFirstComponent(ScrollPaneFactory.createScrollPane(myLeftTree)); treeSplitter.setSecondComponent(ScrollPaneFactory.createScrollPane(myRightTree)); Splitter splitter = new Splitter(true); @@ -103,24 +99,23 @@ public class DependenciesPanel extends JPanel { updateRightTreeModel(); final StringBuffer denyRules = new StringBuffer(); final StringBuffer allowRules = new StringBuffer(); - PackageDependenciesNode selectedNode = (PackageDependenciesNode)myLeftTree.getSelectionPath().getLastPathComponent(); - traverseToLeaves(selectedNode, denyRules, allowRules); - try { - if (denyRules.length() + allowRules.length() > 0) { - myBrowser.read(new StringReader("The following rule" + - ((denyRules.length() == 0 || allowRules.length() == 0) ? " is " : "s are ") + - "violated: " + - (denyRules.length() > 0 ? denyRules.toString() : " ") + "
" + - (allowRules.length() > 0 ? allowRules.toString() : " ") + - ""), null); - - } - else { - myBrowser.read(new StringReader("No rules are violated."), null); - } + final TreePath selectionPath = myLeftTree.getSelectionPath(); + if (selectionPath == null){ + return; } - catch (IOException e1) { - //can't be + PackageDependenciesNode selectedNode = (PackageDependenciesNode)selectionPath.getLastPathComponent(); + traverseToLeaves(selectedNode, denyRules, allowRules); + final StatusBar statusBar = WindowManager.getInstance().getStatusBar(myProject); + if (denyRules.length() + allowRules.length() > 0) { + statusBar.setInfo("The following rule" + + ((denyRules.length() == 0 || allowRules.length() == 0) ? " is " : "s are ") + + "violated: " + + (denyRules.length() > 0 ? denyRules.toString() + (allowRules.length() > 0 ? "; " : "") : " ") + + (allowRules.length() > 0 ? allowRules.toString() : " ")); + + } + else { + statusBar.setInfo("No rules are violated"); } } }); @@ -200,23 +195,10 @@ public class DependenciesPanel extends JPanel { private void rebuild() { myIllegalDependencies = myBuilder.getIllegalDependencies(); - hideHintsWhenNothingToShow(); updateLeftTreeModel(); updateRightTreeModel(); } - private void hideHintsWhenNothingToShow() { - if (myIllegalDependencies.isEmpty()) { - myLeftTreePanel = ScrollPaneFactory.createScrollPane(myLeftTree); - } - else { - Splitter leftTreeSplitter = new Splitter(); - leftTreeSplitter.setFirstComponent(ScrollPaneFactory.createScrollPane(myLeftTree)); - leftTreeSplitter.setSecondComponent(ScrollPaneFactory.createScrollPane(myBrowser)); - myLeftTreePanel = leftTreeSplitter; - } - } - private void initTree(final MyTree tree, boolean isRightTree) { tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); tree.setCellRenderer(new MyTreeCellRenderer());