author | vlivanov |
Thu, 18 Jan 2018 02:25:18 +0300 | |
changeset 48596 | 860326263d1f |
parent 47216 | 71c04702a3d5 |
permissions | -rw-r--r-- |
2 | 1 |
/* |
14342
8435a30053c1
7197491: update copyright year to match last edit in jdk8 jdk repository
alanb
parents:
12851
diff
changeset
|
2 |
* Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved. |
2 | 3 |
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 |
* |
|
5 |
* This code is free software; you can redistribute it and/or modify it |
|
6 |
* under the terms of the GNU General Public License version 2 only, as |
|
5506 | 7 |
* published by the Free Software Foundation. Oracle designates this |
2 | 8 |
* particular file as subject to the "Classpath" exception as provided |
5506 | 9 |
* by Oracle in the LICENSE file that accompanied this code. |
2 | 10 |
* |
11 |
* This code is distributed in the hope that it will be useful, but WITHOUT |
|
12 |
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
13 |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
14 |
* version 2 for more details (a copy is included in the LICENSE file that |
|
15 |
* accompanied this code). |
|
16 |
* |
|
17 |
* You should have received a copy of the GNU General Public License version |
|
18 |
* 2 along with this work; if not, write to the Free Software Foundation, |
|
19 |
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
|
20 |
* |
|
5506 | 21 |
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
22 |
* or visit www.oracle.com if you need additional information or have any |
|
23 |
* questions. |
|
2 | 24 |
*/ |
55
5ecee29e98d8
6655515: MBeans tab: operation return values of type Component displayed as String
lmalvent
parents:
2
diff
changeset
|
25 |
|
2 | 26 |
package sun.tools.jconsole.inspector; |
27 |
||
28 |
import javax.swing.JTable; |
|
29 |
import javax.swing.JScrollPane; |
|
30 |
import javax.swing.JButton; |
|
31 |
||
32 |
import java.awt.event.MouseListener; |
|
33 |
import java.awt.Component; |
|
34 |
import java.awt.Container; |
|
35 |
||
36 |
import sun.tools.jconsole.MBeansTab; |
|
12851
3334e1c781d0
7017818: NLS: JConsoleResources.java cannot be handled by translation team
egahlin
parents:
5506
diff
changeset
|
37 |
import sun.tools.jconsole.Messages; |
2 | 38 |
|
39 |
public class XDataViewer { |
|
40 |
||
41 |
public static final int OPEN = 1; |
|
42 |
public static final int ARRAY = 2; |
|
43 |
public static final int NUMERIC = 3; |
|
44 |
public static final int NOT_SUPPORTED = 4; |
|
45 |
||
46 |
private MBeansTab tab; |
|
47 |
public XDataViewer(MBeansTab tab) { |
|
48 |
this.tab = tab; |
|
49 |
} |
|
50 |
||
51 |
public static void registerForMouseEvent(Component comp, |
|
52 |
MouseListener mouseListener) { |
|
53 |
if(comp instanceof JScrollPane) { |
|
54 |
JScrollPane pane = (JScrollPane) comp; |
|
55 |
comp = pane.getViewport().getView(); |
|
56 |
} |
|
57 |
if(comp instanceof Container) { |
|
58 |
Container container = (Container) comp; |
|
59 |
Component[] components = container.getComponents(); |
|
60 |
for(int i = 0; i < components.length; i++) { |
|
61 |
registerForMouseEvent(components[i], mouseListener); |
|
62 |
} |
|
63 |
} |
|
64 |
||
65 |
//No registration for XOpenTypedata that are themselves clickable. |
|
66 |
//No registration for JButton that are themselves clickable. |
|
67 |
if(comp != null && |
|
68 |
(!(comp instanceof XOpenTypeViewer.XOpenTypeData) && |
|
69 |
!(comp instanceof JButton)) ) |
|
70 |
comp.addMouseListener(mouseListener); |
|
71 |
} |
|
72 |
||
73 |
public static void dispose(MBeansTab tab) { |
|
74 |
XPlottingViewer.dispose(tab); |
|
75 |
} |
|
76 |
||
77 |
public static boolean isViewableValue(Object value) { |
|
78 |
boolean ret = false; |
|
79 |
if((ret = XArrayDataViewer.isViewableValue(value))) |
|
80 |
return ret; |
|
81 |
if((ret = XOpenTypeViewer.isViewableValue(value))) |
|
82 |
return ret; |
|
83 |
if((ret = XPlottingViewer.isViewableValue(value))) |
|
84 |
return ret; |
|
85 |
||
86 |
return ret; |
|
87 |
} |
|
88 |
||
89 |
public static int getViewerType(Object data) { |
|
90 |
if(XArrayDataViewer.isViewableValue(data)) |
|
91 |
return ARRAY; |
|
92 |
if(XOpenTypeViewer.isViewableValue(data)) |
|
93 |
return OPEN; |
|
94 |
if(XPlottingViewer.isViewableValue(data)) |
|
95 |
return NUMERIC; |
|
96 |
||
97 |
return NOT_SUPPORTED; |
|
98 |
} |
|
99 |
||
100 |
public static String getActionLabel(int type) { |
|
101 |
if(type == ARRAY || |
|
102 |
type == OPEN) |
|
12851
3334e1c781d0
7017818: NLS: JConsoleResources.java cannot be handled by translation team
egahlin
parents:
5506
diff
changeset
|
103 |
return Messages.VISUALIZE; |
2 | 104 |
if(type == NUMERIC) |
12851
3334e1c781d0
7017818: NLS: JConsoleResources.java cannot be handled by translation team
egahlin
parents:
5506
diff
changeset
|
105 |
return Messages.PLOT; |
3334e1c781d0
7017818: NLS: JConsoleResources.java cannot be handled by translation team
egahlin
parents:
5506
diff
changeset
|
106 |
return Messages.EXPAND; |
2 | 107 |
} |
108 |
||
109 |
public Component createOperationViewer(Object value, |
|
110 |
XMBean mbean) { |
|
111 |
if(value instanceof Number) return null; |
|
55
5ecee29e98d8
6655515: MBeans tab: operation return values of type Component displayed as String
lmalvent
parents:
2
diff
changeset
|
112 |
if(value instanceof Component) return (Component) value; |
2 | 113 |
return createAttributeViewer(value, mbean, null, null); |
114 |
} |
|
115 |
||
116 |
public static Component createNotificationViewer(Object value) { |
|
117 |
Component comp = null; |
|
118 |
||
119 |
if(value instanceof Number) return null; |
|
120 |
||
121 |
if((comp = XArrayDataViewer.loadArray(value)) != null) |
|
122 |
return comp; |
|
123 |
||
124 |
if((comp = XOpenTypeViewer.loadOpenType(value)) != null) |
|
125 |
return comp; |
|
126 |
||
127 |
return comp; |
|
128 |
} |
|
129 |
||
130 |
public Component createAttributeViewer(Object value, |
|
131 |
XMBean mbean, |
|
132 |
String attributeName, |
|
133 |
JTable table) { |
|
134 |
Component comp = null; |
|
135 |
if((comp = XArrayDataViewer.loadArray(value)) != null) |
|
136 |
return comp; |
|
137 |
if((comp = XOpenTypeViewer.loadOpenType(value)) != null) |
|
138 |
return comp; |
|
139 |
if((comp = XPlottingViewer.loadPlotting(mbean, |
|
140 |
attributeName, |
|
141 |
value, |
|
142 |
table, |
|
143 |
tab)) != null) |
|
144 |
return comp; |
|
145 |
||
146 |
return comp; |
|
147 |
} |
|
148 |
} |