History

My first initial commit with all of mine experimental changes.

Dmitry Kabak (userdima committed 13 years ago

Commit d37b88d1 parent 3f5b46618352 files · +2598093 −-8690Browse files

Showing the changes to java/pkg/sun/tools/jconsole/OverviewPanel.java (1 of 18352 files). Show all

Unified · Split

java/pkg/sun/tools/jconsole/OverviewPanel.java+117−0
@@ -0,0 +1,117 @@
1/*
2 * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
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
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
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 *
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.
24 */
25
26package sun.tools.jconsole;
27
28import java.awt.*;
29import java.awt.event.*;
30
31import javax.swing.*;
32import javax.swing.border.*;
33
34import static javax.swing.SwingConstants.*;
35import static sun.tools.jconsole.JConsole.*;
36import static sun.tools.jconsole.Resources.*;
37import static sun.tools.jconsole.Utilities.*;
38
39
40@SuppressWarnings("serial")
41abstract class OverviewPanel extends PlotterPanel {
42 private static final Dimension PREFERRED_PLOTTER_SIZE = new Dimension(300, 200);
43 private static final Dimension MINIMUM_PLOTTER_SIZE = new Dimension(200, 150);
44
45 // This is the default view range for all the overview plotters
46 static final int VIEW_RANGE = -1; // Show all data
47
48 static Color PLOTTER_COLOR = IS_GTK ? new Color(231, 111, 80) : null;
49
50 private JLabel infoLabel;
51
52 public OverviewPanel(String title) {
53 this(title, null, null, null);
54 }
55
56 public OverviewPanel(String title, String plotterKey,
57 String plotterName, Plotter.Unit plotterUnit) {
58 super(title);
59 setLayout(new BorderLayout(0, 0));
60
61 if (plotterKey != null && plotterName != null) {
62 Plotter plotter = new Plotter();
63 plotter.setPreferredSize(PREFERRED_PLOTTER_SIZE);
64 plotter.setMinimumSize(MINIMUM_PLOTTER_SIZE);
65 plotter.setViewRange(VIEW_RANGE);
66 if (plotterUnit != null) {
67 plotter.setUnit(plotterUnit);
68 }
69 plotter.createSequence(plotterKey, plotterName, PLOTTER_COLOR, true);
70 setAccessibleName(plotter,
71 getText("OverviewPanel.plotter.accessibleName",
72 title));
73 setPlotter(plotter);
74 }
75 }
76
77
78 public JLabel getInfoLabel() {
79 if (infoLabel == null) {
80 infoLabel = new JLabel("", CENTER) {
81 @Override
82 public void setText(String text) {
83 if (text.startsWith("<html>")) {
84 // Replace spaces with nbsp, except the
85 // last one of two or more (to allow wrapping)
86 StringBuilder buf = new StringBuilder();
87 char[] chars = text.toCharArray();
88 int n = chars.length;
89 for (int i = 0; i < n; i++) {
90 if (chars[i] == ' '
91 && ((i < n-1 && chars[i+1] == ' ')
92 || ((i == 0 || chars[i-1] != ' ')
93 && (i == n-1 || chars[i+1] != ' ')))) {
94 buf.append("&nbsp;");
95 } else {
96 buf.append(chars[i]);
97 }
98 }
99 text = buf.toString();
100 }
101 super.setText(text);
102 }
103 };
104
105 if (IS_GTK) {
106 JPanel southPanel = new JPanel(new BorderLayout());
107 JSeparator separator = new JSeparator(JSeparator.HORIZONTAL);
108 southPanel.add(separator, BorderLayout.NORTH);
109 southPanel.add(infoLabel, BorderLayout.SOUTH);
110 add(southPanel, BorderLayout.SOUTH);
111 } else {
112 add(infoLabel, BorderLayout.SOUTH);
113 }
114 }
115 return infoLabel;
116 }
117}