fix for checkbox tree rendering under GTK L&F moved to CheckboxTreeBase class to avoid duplications

This commit is contained in:
nik
2011-07-22 14:31:08 +04:00
parent 63662e6478
commit f16604d18b
9 changed files with 9 additions and 56 deletions
@@ -22,7 +22,6 @@ import com.intellij.util.ArrayUtil;
import com.intellij.util.PlatformIcons;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.Convertor;
import com.intellij.util.ui.UIUtil;
import com.intellij.util.ui.tree.TreeUtil;
import com.intellij.xdebugger.XDebuggerBundle;
import org.jetbrains.annotations.NotNull;
@@ -30,9 +29,7 @@ import org.jetbrains.annotations.NotNull;
import javax.swing.*;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
import java.awt.*;
import java.util.*;
import java.util.List;
/**
* @author Eugene Zhuravlev
@@ -614,11 +611,6 @@ public class BreakpointTree extends CheckboxTree {
private static class BreakpointTreeCellRenderer extends CheckboxTreeCellRenderer {
public void customizeRenderer(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
// Fix GTK background
if (UIUtil.isUnderGTKLookAndFeel()){
final Color background = selected ? UIUtil.getTreeSelectionBackground() : UIUtil.getTreeTextBackground();
UIUtil.changeBackGround(this, background);
}
if (value instanceof CheckedTreeNode) {
final CheckedTreeNode node = (CheckedTreeNode)value;
final TreeDescriptor descriptor = getDescriptor(node);
@@ -19,7 +19,6 @@ import com.intellij.ui.CheckboxTree;
import com.intellij.ui.CheckedTreeNode;
import com.intellij.ui.TreeSpeedSearch;
import com.intellij.util.containers.Convertor;
import com.intellij.util.ui.UIUtil;
import com.intellij.util.ui.tree.TreeUtil;
import javax.swing.*;
@@ -91,11 +90,6 @@ public class FrameworksTree extends CheckboxTree {
@Override
public void customizeRenderer(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
// Fix GTK background
if (UIUtil.isUnderGTKLookAndFeel()){
final Color background = selected ? UIUtil.getTreeSelectionBackground() : UIUtil.getTreeTextBackground();
UIUtil.changeBackGround(this, background);
}
if (value instanceof FrameworkSupportNode) {
final FrameworkSupportNode node = (FrameworkSupportNode)value;
getTextRenderer().append(node.getTitle());
@@ -34,7 +34,6 @@ import com.intellij.ui.ScrollPaneFactory;
import com.intellij.ui.SimpleTextAttributes;
import com.intellij.util.Alarm;
import com.intellij.util.ui.ColumnInfo;
import com.intellij.util.ui.UIUtil;
import com.intellij.util.ui.tree.TreeUtil;
import com.intellij.util.ui.update.UiNotifyConnector;
import org.jetbrains.annotations.Nullable;
@@ -641,11 +640,6 @@ class TemplateListPanel extends JPanel {
final boolean hasFocus) {
if (!(value instanceof DefaultMutableTreeNode)) return;
value = ((DefaultMutableTreeNode)value).getUserObject();
// Fix GTK background
if (UIUtil.isUnderGTKLookAndFeel()){
final Color background = selected ? UIUtil.getTreeSelectionBackground() : UIUtil.getTreeTextBackground();
UIUtil.changeBackGround(this, background);
}
if (value instanceof TemplateImpl) {
//getTextRenderer().setIcon(TEMPLATE_ICON);
@@ -24,7 +24,6 @@ import com.intellij.ui.CheckedTreeNode;
import com.intellij.ui.ScrollPaneFactory;
import com.intellij.ui.SimpleTextAttributes;
import com.intellij.util.ArrayUtil;
import com.intellij.util.ui.UIUtil;
import com.intellij.util.ui.tree.TreeUtil;
import org.jetbrains.annotations.Nullable;
@@ -86,11 +85,6 @@ class ToolsPanel extends JPanel {
final boolean hasFocus) {
if (!(value instanceof CheckedTreeNode)) return;
Object object = ((CheckedTreeNode)value).getUserObject();
// Fix GTK background
if (UIUtil.isUnderGTKLookAndFeel()) {
final Color background = selected ? UIUtil.getTreeSelectionBackground() : UIUtil.getTreeTextBackground();
UIUtil.changeBackGround(this, background);
}
if (object instanceof ToolsGroup) {
final String groupName = ((ToolsGroup)object).getName();
@@ -17,6 +17,7 @@
package com.intellij.ui;
import com.intellij.ui.treeStructure.Tree;
import com.intellij.util.ui.UIUtil;
import com.intellij.util.ui.tree.TreeUtil;
import org.jetbrains.annotations.Nullable;
@@ -337,6 +338,11 @@ public class CheckboxTreeBase extends Tree {
myCheckbox.setVisible(false);
}
myTextRenderer.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
// Fix GTK background
if (UIUtil.isUnderGTKLookAndFeel()) {
final Color background = selected ? UIUtil.getTreeSelectionBackground() : UIUtil.getTreeTextBackground();
UIUtil.changeBackGround(this, background);
}
customizeRenderer(tree, value, selected, expanded, leaf, row, hasFocus);
revalidate();
@@ -22,7 +22,6 @@ import com.intellij.pom.Navigatable;
import com.intellij.ui.CheckboxTree;
import com.intellij.ui.CheckedTreeNode;
import com.intellij.ui.SimpleTextAttributes;
import com.intellij.util.ui.UIUtil;
import com.intellij.util.ui.tree.TreeUtil;
import com.intellij.xdebugger.XDebuggerBundle;
import com.intellij.xdebugger.breakpoints.XBreakpoint;
@@ -38,9 +37,7 @@ import javax.swing.*;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeNode;
import javax.swing.tree.TreePath;
import java.awt.*;
import java.util.*;
import java.util.List;
/**
* @author nik
@@ -195,11 +192,6 @@ public class XBreakpointsTree<B extends XBreakpoint<?>> extends CheckboxTree {
private static class BreakpointsTreeCellRenderer extends CheckboxTreeCellRenderer {
@Override
public void customizeRenderer(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
// Fix GTK background
if (UIUtil.isUnderGTKLookAndFeel()){
final Color background = selected ? UIUtil.getTreeSelectionBackground() : UIUtil.getTreeTextBackground();
UIUtil.changeBackGround(this, background);
}
if (value instanceof BreakpointNode) {
BreakpointNode node = (BreakpointNode)value;
XBreakpoint breakpoint = node.getBreakpoint();
@@ -56,7 +56,9 @@ import git4idea.stash.GitChangesSaver;
import git4idea.stash.GitShelveChangesSaver;
import git4idea.stash.GitStashChangesSaver;
import git4idea.ui.GitUIUtil;
import git4idea.update.*;
import git4idea.update.GitUpdateLikeProcess;
import git4idea.update.GitUpdateProcess;
import git4idea.update.UpdatePolicyUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -68,11 +70,9 @@ import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
import static git4idea.ui.GitUIUtil.notifyError;
@@ -882,11 +882,6 @@ public class GitPushActiveBranchesDialog extends DialogWrapper {
myCommitTree = new CheckboxTree(new CheckboxTree.CheckboxTreeCellRenderer() {
@Override
public void customizeRenderer(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
// Fix GTK background
if (UIUtil.isUnderGTKLookAndFeel()) {
final Color background = selected ? UIUtil.getTreeSelectionBackground() : UIUtil.getTreeTextBackground();
UIUtil.changeBackGround(this, background);
}
ColoredTreeCellRenderer r = getTextRenderer();
if (!(value instanceof DefaultMutableTreeNode)) {
// unknown node type
@@ -20,7 +20,6 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.ui.*;
import com.intellij.util.ui.UIUtil;
import com.intellij.util.ui.tree.TreeUtil;
import com.intellij.vcsUtil.VcsFileUtil;
import git4idea.DialogManager;
@@ -29,7 +28,6 @@ import git4idea.config.GitVcsSettings;
import git4idea.i18n.GitBundle;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.util.ArrayList;
import java.util.Collections;
@@ -148,11 +146,6 @@ public class GitConvertFilesDialog extends DialogWrapper {
static class FileTreeCellRenderer extends CheckboxTree.CheckboxTreeCellRenderer {
@Override
public void customizeRenderer(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
// Fix GTK background
if (UIUtil.isUnderGTKLookAndFeel()){
final Color background = selected ? UIUtil.getTreeSelectionBackground() : UIUtil.getTreeTextBackground();
UIUtil.changeBackGround(this, background);
}
ColoredTreeCellRenderer r = getTextRenderer();
if (!(value instanceof CheckedTreeNode)) {
// unknown node type
@@ -25,7 +25,6 @@ import com.intellij.ui.ColoredTreeCellRenderer;
import com.intellij.ui.SimpleTextAttributes;
import com.intellij.ui.treeStructure.Tree;
import com.intellij.util.PlatformIcons;
import com.intellij.util.ui.UIUtil;
import com.intellij.util.ui.tree.TreeUtil;
import git4idea.GitBranch;
import git4idea.GitTag;
@@ -38,7 +37,6 @@ import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashSet;
@@ -245,11 +243,6 @@ public class GitRefspecAddRefsDialog extends DialogWrapper {
final int row,
final boolean hasFocus) {
if (!(value instanceof CheckedTreeNode)) return;
// Fix GTK background
if (UIUtil.isUnderGTKLookAndFeel()) {
final Color background = selected ? UIUtil.getTreeSelectionBackground() : UIUtil.getTreeTextBackground();
UIUtil.changeBackGround(this, background);
}
final CheckedTreeNode node = (CheckedTreeNode)value;
final Object userObject = node.getUserObject();
String text;