Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
小 白蛋
Intellij Community
Commits
2c8dfc3c
Commit
2c8dfc3c
authored
7 years ago
by
Sergey Malenkov
Browse files
Options
Download
Email Patches
Plain Diff
IDEA-185543: fix NPE for tables
parent
74b3f710
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
platform/platform-api/src/com/intellij/ui/components/JBScrollPane.java
+2
-0
...form-api/src/com/intellij/ui/components/JBScrollPane.java
platform/platform-api/src/com/intellij/ui/components/JBViewport.java
+11
-14
...atform-api/src/com/intellij/ui/components/JBViewport.java
with
13 additions
and
14 deletions
+13
-14
platform/platform-api/src/com/intellij/ui/components/JBScrollPane.java
+
2
-
0
View file @
2c8dfc3c
...
...
@@ -687,7 +687,9 @@ public class JBScrollPane extends JScrollPane {
viewTracksViewportHeight
=
scrollable
.
getScrollableTracksViewportHeight
();
}
Dimension
viewportExtentSize
=
viewport
.
getPreferredSize
();
if
(
viewportExtentSize
==
null
)
viewportExtentSize
=
new
Dimension
();
Dimension
viewPreferredSize
=
view
.
getPreferredSize
();
if
(
viewPreferredSize
==
null
)
viewPreferredSize
=
new
Dimension
();
if
(
view
instanceof
JComponent
&&
!
view
.
isPreferredSizeSet
())
{
Insets
insets
=
JBViewport
.
getViewInsets
((
JComponent
)
view
);
JBInsets
.
removeFrom
(
viewportExtentSize
,
insets
);
...
...
This diff is collapsed.
Click to expand it.
platform/platform-api/src/com/intellij/ui/components/JBViewport.java
+
11
-
14
View file @
2c8dfc3c
...
...
@@ -60,16 +60,8 @@ public class JBViewport extends JViewport implements ZoomableViewport {
public
Dimension
preferredLayoutSize
(
Container
parent
)
{
if
(
parent
instanceof
JViewport
)
{
JViewport
viewport
=
(
JViewport
)
parent
;
Component
view
=
viewport
.
getView
();
if
(
view
instanceof
Scrollable
)
{
Scrollable
scrollable
=
(
Scrollable
)
view
;
if
(
view
instanceof
JList
)
return
getPreferredScrollableViewportSize
((
JList
)
view
);
if
(
view
instanceof
JTree
)
return
getPreferredScrollableViewportSize
((
JTree
)
view
);
return
scrollable
.
getPreferredScrollableViewportSize
();
}
if
(
view
!=
null
)
{
return
view
.
getPreferredSize
();
}
Dimension
size
=
getPreferredScrollableViewportSize
(
viewport
.
getView
());
if
(
size
!=
null
)
return
size
;
// may be null for for tables or custom components
}
return
new
Dimension
();
}
...
...
@@ -517,6 +509,13 @@ public class JBViewport extends JViewport implements ZoomableViewport {
}
}
private
static
Dimension
getPreferredScrollableViewportSize
(
Component
view
)
{
if
(
view
instanceof
JList
)
return
getPreferredScrollableViewportSize
((
JList
)
view
);
if
(
view
instanceof
JTree
)
return
getPreferredScrollableViewportSize
((
JTree
)
view
);
if
(
view
instanceof
Scrollable
)
return
((
Scrollable
)
view
).
getPreferredScrollableViewportSize
();
return
view
==
null
?
null
:
view
.
getPreferredSize
();
}
private
static
Class
<?>
getPreferredScrollableViewportSizeDeclaringClass
(
@NotNull
Scrollable
scrollable
)
{
try
{
return
scrollable
.
getClass
().
getMethod
(
"getPreferredScrollableViewportSize"
).
getDeclaringClass
();
...
...
@@ -526,10 +525,9 @@ public class JBViewport extends JViewport implements ZoomableViewport {
}
}
@NotNull
private
static
Dimension
getPreferredScrollableViewportSize
(
@NotNull
JList
list
)
{
if
(
JList
.
class
!=
getPreferredScrollableViewportSizeDeclaringClass
(
list
))
{
return
list
.
getPreferredScrollableViewportSize
();
return
list
.
getPreferredScrollableViewportSize
();
// may be null
}
Dimension
size
=
list
.
getPreferredSize
();
if
(
size
==
null
)
return
new
Dimension
();
...
...
@@ -572,10 +570,9 @@ public class JBViewport extends JViewport implements ZoomableViewport {
return
size
;
}
@NotNull
private
static
Dimension
getPreferredScrollableViewportSize
(
@NotNull
JTree
tree
)
{
if
(
JTree
.
class
!=
getPreferredScrollableViewportSizeDeclaringClass
(
tree
))
{
return
tree
.
getPreferredScrollableViewportSize
();
return
tree
.
getPreferredScrollableViewportSize
();
// may be null
}
Dimension
size
=
tree
.
getPreferredSize
();
if
(
size
==
null
)
return
new
Dimension
();
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help