From 9907eb7d01a0180a02b2c86d4064be66a0e32bd4 Mon Sep 17 00:00:00 2001 From: Julia Beliaeva Date: Fri, 17 Oct 2014 18:55:39 +0400 Subject: [PATCH 1/4] [vcs-log] set correct font for root cell; rename field IDEA-105467 --- .../src/com/intellij/vcs/log/ui/frame/VcsLogGraphTable.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/VcsLogGraphTable.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/VcsLogGraphTable.java index e3b7a8b9c766..ed2f5fe9fca2 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/VcsLogGraphTable.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/VcsLogGraphTable.java @@ -500,6 +500,7 @@ public class VcsLogGraphTable extends JBTable implements TypeSafeDataProvider, C @Override protected void paintComponent(Graphics g) { + setFont(UIManager.getFont("Table.font")); g.setColor(myColor); int width = getWidth(); @@ -572,13 +573,13 @@ public class VcsLogGraphTable extends JBTable implements TypeSafeDataProvider, C private class RootHeaderRenderer implements TableCellRenderer { private final JLabel myRightArrow = new JLabel(AllIcons.General.ComboArrowRight); - private final JLabel myDownArrow = new JLabel("Root", SwingConstants.CENTER); + private final JLabel myRootLabel = new JLabel("Root", SwingConstants.CENTER); @NotNull @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (myUI.isShowRootNames()) { - return myDownArrow; + return myRootLabel; } return myRightArrow; } From f4f70813e5816944122913e747e02307493a1100 Mon Sep 17 00:00:00 2001 From: Julia Beliaeva Date: Fri, 17 Oct 2014 20:01:45 +0400 Subject: [PATCH 2/4] [vcs-log] fix header dimensions + fonts in roots table IDEA-105467 --- .../vcs/log/ui/frame/VcsLogGraphTable.java | 47 +++++++++++++++---- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/VcsLogGraphTable.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/VcsLogGraphTable.java index ed2f5fe9fca2..e41bb8c297c6 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/VcsLogGraphTable.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/VcsLogGraphTable.java @@ -52,15 +52,13 @@ import com.intellij.vcs.log.ui.render.GraphCommitCellRender; import com.intellij.vcs.log.ui.tables.GraphTableModel; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import sun.swing.table.DefaultTableCellHeaderRenderer; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.event.TableModelEvent; -import javax.swing.table.AbstractTableModel; -import javax.swing.table.TableCellRenderer; -import javax.swing.table.TableColumn; -import javax.swing.table.TableModel; +import javax.swing.table.*; import java.awt.*; import java.awt.datatransfer.StringSelection; import java.awt.event.MouseAdapter; @@ -571,17 +569,46 @@ public class VcsLogGraphTable extends JBTable implements TypeSafeDataProvider, C } - private class RootHeaderRenderer implements TableCellRenderer { - private final JLabel myRightArrow = new JLabel(AllIcons.General.ComboArrowRight); - private final JLabel myRootLabel = new JLabel("Root", SwingConstants.CENTER); + private class RootHeaderRenderer extends DefaultTableCellHeaderRenderer { + + private Icon myIcon = AllIcons.General.ComboArrowRight; @NotNull @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { - if (myUI.isShowRootNames()) { - return myRootLabel; + super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); + if (table != null) { + JTableHeader tableHeader = table.getTableHeader(); + if (tableHeader != null) { + setForeground(tableHeader.getForeground()); + setBackground(tableHeader.getBackground()); + setFont(tableHeader.getFont()); + } } - return myRightArrow; + + setBorder(UIManager.getBorder("TableHeader.cellBorder")); + + if (myUI.isShowRootNames()) { + setIcon(null); + setText("Roots"); + } + else { + setIcon(myIcon); + setText(""); + } + return this; + } + + @Override + public Dimension getPreferredSize() { + Dimension dimension = super.getPreferredSize(); + if (getText() == null || getText().isEmpty()) { + setText("Roots"); + dimension.height = super.getPreferredSize().height; + setText(""); + return dimension; + } + return dimension; } } } From b9812a9cc94143d7b42c106d4d16dce67c2a2e58 Mon Sep 17 00:00:00 2001 From: Julia Beliaeva Date: Fri, 17 Oct 2014 19:56:07 +0400 Subject: [PATCH 3/4] [vcs-log] root column unfocused background IDEA-105467 --- .../src/com/intellij/vcs/log/ui/frame/VcsLogGraphTable.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/VcsLogGraphTable.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/VcsLogGraphTable.java index e41bb8c297c6..f7bab5da5033 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/VcsLogGraphTable.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/VcsLogGraphTable.java @@ -490,6 +490,8 @@ public class VcsLogGraphTable extends JBTable implements TypeSafeDataProvider, C @NotNull private Color myColor = UIUtil.getTableBackground(); @NotNull private Color myBorderColor = UIUtil.getTableBackground(); private boolean isNarrow = true; + @NotNull + private TableCellRenderer myRenderer = new DefaultTableCellRenderer(); RootCellRenderer(@NotNull VcsLogUiImpl ui) { super("", CENTER); @@ -540,7 +542,7 @@ public class VcsLogGraphTable extends JBTable implements TypeSafeDataProvider, C //noinspection UseJBColor Color transparentColor = new Color(color.getRed(), color.getGreen(), color.getBlue(), 50); myColor = new JBColor(transparentColor, transparentColor); - myBorderColor = UIUtil.getTableBackground(isSelected); + myBorderColor = myRenderer.getTableCellRendererComponent(table, text, isSelected, hasFocus, row, column).getBackground(); setForeground(UIUtil.getTableForeground(false)); if (myUi.isShowRootNames()) { From ecdd37cc44f9beb6870c78c3432b1fddcdab8292 Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Fri, 17 Oct 2014 20:20:20 +0400 Subject: [PATCH 4/4] EA-61643 - java.lang.ClassCastException: org.jetbrains.jet.lang.psi.JetClass cannot be cast to com.intellij.psi.PsiClass --- .../debugger/ui/impl/watch/FieldDescriptorImpl.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/FieldDescriptorImpl.java b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/FieldDescriptorImpl.java index c36630e3a973..5051750dec60 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/FieldDescriptorImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/FieldDescriptorImpl.java @@ -132,14 +132,13 @@ public class FieldDescriptorImpl extends ValueDescriptorImpl implements FieldDes } if (aClass != null) { - aClass = (PsiClass) aClass.getNavigationElement(); - for (PsiField field : aClass.getFields()) { - if (fieldName.equals(field.getName())) { - if (nearest) { - return DebuggerContextUtil.findNearest(context, field, aClass.getContainingFile()); - } - return SourcePosition.createFromOffset(field.getContainingFile(), field.getTextOffset()); + PsiField field = aClass.findFieldByName(fieldName, false); + if (field != null) { + PsiElement element = field.getNavigationElement(); + if (nearest) { + return DebuggerContextUtil.findNearest(context, element, aClass.getContainingFile()); } + return SourcePosition.createFromOffset(element.getContainingFile(), element.getTextOffset()); } } return null;