6748745: JConsole: plotters don't resize well when the window is resized
authordfuchs
Wed, 17 Sep 2008 13:40:40 +0200
changeset 1233 3b08cf0cab53
parent 1232 7128121645f7
child 1242 5d7e5974cb79
6748745: JConsole: plotters don't resize well when the window is resized Summary: part of the fix was contributed by jfdenise Reviewed-by: jfdenise
jdk/src/share/classes/sun/tools/jconsole/Plotter.java
jdk/src/share/classes/sun/tools/jconsole/inspector/XMBeanAttributes.java
jdk/src/share/classes/sun/tools/jconsole/inspector/XPlotter.java
jdk/src/share/classes/sun/tools/jconsole/inspector/XPlottingViewer.java
--- a/jdk/src/share/classes/sun/tools/jconsole/Plotter.java	Fri Sep 12 23:31:43 2008 -0700
+++ b/jdk/src/share/classes/sun/tools/jconsole/Plotter.java	Wed Sep 17 13:40:40 2008 +0200
@@ -30,18 +30,15 @@
 import java.beans.*;
 import java.io.*;
 import java.lang.reflect.Array;
-import java.text.*;
 import java.util.*;
 
 import javax.accessibility.*;
 import javax.swing.*;
 import javax.swing.border.*;
-import javax.swing.event.*;
 import javax.swing.filechooser.*;
 import javax.swing.filechooser.FileFilter;
 
 import com.sun.tools.jconsole.JConsoleContext;
-import com.sun.tools.jconsole.JConsoleContext.ConnectionState;
 
 import static com.sun.tools.jconsole.JConsoleContext.ConnectionState.*;
 
@@ -130,6 +127,7 @@
     private int bottomMargin = 45;
     private int leftMargin = 65;
     private int rightMargin = 70;
+    private final boolean displayLegend;
 
     public Plotter() {
         this(Unit.NONE, 0);
@@ -139,15 +137,21 @@
         this(unit, 0);
     }
 
+    public Plotter(Unit unit, int decimals) {
+        this(unit,decimals,true);
+    }
+
     // Note: If decimals > 0 then values must be decimally shifted left
     // that many places, i.e. multiplied by Math.pow(10.0, decimals).
-    public Plotter(Unit unit, int decimals) {
+    public Plotter(Unit unit, int decimals, boolean displayLegend) {
+        this.displayLegend = displayLegend;
         setUnit(unit);
         setDecimals(decimals);
 
         enableEvents(AWTEvent.MOUSE_EVENT_MASK);
 
         addMouseListener(new MouseAdapter() {
+            @Override
             public void mousePressed(MouseEvent e) {
                 if (getParent() instanceof PlotterPanel) {
                     getParent().requestFocusInWindow();
@@ -240,6 +244,7 @@
         }
     }
 
+    @Override
     public JPopupMenu getComponentPopupMenu() {
         if (popupMenu == null) {
             popupMenu = new JPopupMenu(Resources.getText("Chart:"));
@@ -330,6 +335,7 @@
         }
     }
 
+    @Override
     public void paintComponent(Graphics g) {
         super.paintComponent(g);
 
@@ -670,7 +676,7 @@
                         curValue += "%";
                     }
                     int valWidth = fm.stringWidth(curValue);
-                    String legend = seq.name;
+                    String legend = (displayLegend?seq.name:"");
                     int legendWidth = fm.stringWidth(legend);
                     if (checkRightMargin(valWidth) || checkRightMargin(legendWidth)) {
                         // Wait for next repaint
@@ -986,10 +992,12 @@
     }
 
     private static class SaveDataFileChooser extends JFileChooser {
+        private static final long serialVersionUID = -5182890922369369669L;
         SaveDataFileChooser() {
             setFileFilter(new FileNameExtensionFilter("CSV file", "csv"));
         }
 
+        @Override
         public void approveSelection() {
             File file = getSelectedFile();
             if (file != null) {
@@ -1034,6 +1042,7 @@
         }
     }
 
+    @Override
     public AccessibleContext getAccessibleContext() {
         if (accessibleContext == null) {
             accessibleContext = new AccessiblePlotter();
@@ -1042,10 +1051,12 @@
     }
 
     protected class AccessiblePlotter extends AccessibleJComponent {
+        private static final long serialVersionUID = -3847205410473510922L;
         protected AccessiblePlotter() {
             setAccessibleName(getText("Plotter.accessibleName"));
         }
 
+        @Override
         public String getAccessibleName() {
             String name = super.getAccessibleName();
 
@@ -1076,6 +1087,7 @@
             return name;
         }
 
+        @Override
         public AccessibleRole getAccessibleRole() {
             return AccessibleRole.CANVAS;
         }
--- a/jdk/src/share/classes/sun/tools/jconsole/inspector/XMBeanAttributes.java	Fri Sep 12 23:31:43 2008 -0700
+++ b/jdk/src/share/classes/sun/tools/jconsole/inspector/XMBeanAttributes.java	Wed Sep 17 13:40:40 2008 +0200
@@ -872,8 +872,8 @@
         MaximizedCellRenderer(Component comp) {
             this.comp = comp;
             Dimension d = comp.getPreferredSize();
-            if (d.getHeight() > 200) {
-                comp.setPreferredSize(new Dimension((int) d.getWidth(), 200));
+            if (d.getHeight() > 220) {
+                comp.setPreferredSize(new Dimension((int) d.getWidth(), 220));
             }
         }
         @Override
--- a/jdk/src/share/classes/sun/tools/jconsole/inspector/XPlotter.java	Fri Sep 12 23:31:43 2008 -0700
+++ b/jdk/src/share/classes/sun/tools/jconsole/inspector/XPlotter.java	Wed Sep 17 13:40:40 2008 +0200
@@ -34,7 +34,7 @@
     JTable table;
     public XPlotter(JTable table,
                     Plotter.Unit unit) {
-        super(unit);
+        super(unit,0,false);
         this.table = table;
     }
     @Override
--- a/jdk/src/share/classes/sun/tools/jconsole/inspector/XPlottingViewer.java	Fri Sep 12 23:31:43 2008 -0700
+++ b/jdk/src/share/classes/sun/tools/jconsole/inspector/XPlottingViewer.java	Wed Sep 17 13:40:40 2008 +0200
@@ -27,14 +27,10 @@
 
 import java.awt.*;
 import java.awt.event.*;
-import java.io.*;
 import java.util.*;
 import java.util.Timer;
 
-import javax.management.*;
 import javax.swing.*;
-import javax.swing.border.*;
-import javax.swing.event.*;
 
 import sun.tools.jconsole.*;
 
@@ -127,6 +123,7 @@
         setBackground(g.getColor());
         plotter.paintComponent(g);
         }*/
+    @Override
     public void actionPerformed(ActionEvent evt) {
         plotterCache.remove(key);
         Timer t = timerCache.remove(key);
@@ -141,9 +138,11 @@
                                  JTable table) {
         final Plotter plotter = new XPlotter(table, Plotter.Unit.NONE) {
                 Dimension prefSize = new Dimension(400, 170);
+            @Override
                 public Dimension getPreferredSize() {
                     return prefSize;
                 }
+            @Override
                 public Dimension getMinimumSize() {
                     return prefSize;
                 }
@@ -183,42 +182,40 @@
         return plotter;
     }
 
-    //Create Plotter display
     private void setupDisplay(Plotter plotter) {
-        //setLayout(new GridLayout(2,0));
-        GridBagLayout gbl = new GridBagLayout();
-        setLayout(gbl);
+        final JPanel buttonPanel = new JPanel();
+        final GridBagLayout gbl = new GridBagLayout();
+        buttonPanel.setLayout(gbl);
+        setLayout(new BorderLayout());
         plotButton = new JButton(Resources.getText("Discard chart"));
         plotButton.addActionListener(this);
         plotButton.setEnabled(true);
 
-        // Add the display to the top four cells
         GridBagConstraints buttonConstraints = new GridBagConstraints();
         buttonConstraints.gridx = 0;
         buttonConstraints.gridy = 0;
         buttonConstraints.fill = GridBagConstraints.VERTICAL;
         buttonConstraints.anchor = GridBagConstraints.CENTER;
         gbl.setConstraints(plotButton, buttonConstraints);
-        add(plotButton);
+        buttonPanel.add(plotButton);
 
-        GridBagConstraints plotterConstraints = new GridBagConstraints();
-        plotterConstraints.gridx = 0;
-        plotterConstraints.gridy = 1;
-        plotterConstraints.weightx = 1;
-        //plotterConstraints.gridwidth = (int) plotter.getPreferredSize().getWidth();
-        //plotterConstraints.gridheight =  (int) plotter.getPreferredSize().getHeight();
-        plotterConstraints.fill = GridBagConstraints.VERTICAL;
-        gbl.setConstraints(plotter, plotterConstraints);
-
-
-        //bordered = new JPanel();
-        //bordered.setPreferredSize(new Dimension(400, 250));
-        //bordered.add(plotButton);
-        //bordered.add(plotter);
-
-        //add(bordered);
-
+        if (attributeName != null && attributeName.length()!=0) {
+            final JPanel plotterLabelPanel = new JPanel();
+            final JLabel label = new JLabel(attributeName);
+            final GridBagLayout gbl2 = new GridBagLayout();
+            plotterLabelPanel.setLayout(gbl2);
+            final GridBagConstraints labelConstraints = new GridBagConstraints();
+            labelConstraints.gridx = 0;
+            labelConstraints.gridy = 0;
+            labelConstraints.fill = GridBagConstraints.VERTICAL;
+            labelConstraints.anchor = GridBagConstraints.CENTER;
+            labelConstraints.ipady = 10;
+            gbl2.setConstraints(label, labelConstraints);
+            plotterLabelPanel.add(label);
+            add(plotterLabelPanel, BorderLayout.NORTH);
+        }
         setPlotter(plotter);
+        add(buttonPanel, BorderLayout.SOUTH);
         repaint();
     }