aboutsummaryrefslogtreecommitdiff
path: root/src/share/classes/javax/swing
diff options
context:
space:
mode:
Diffstat (limited to 'src/share/classes/javax/swing')
-rw-r--r--src/share/classes/javax/swing/DefaultDesktopManager.java17
-rw-r--r--src/share/classes/javax/swing/JTable.java18
-rw-r--r--src/share/classes/javax/swing/border/MatteBorder.java67
-rw-r--r--src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java8
-rw-r--r--src/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java35
-rw-r--r--src/share/classes/javax/swing/plaf/basic/BasicTextUI.java16
-rw-r--r--src/share/classes/javax/swing/plaf/basic/BasicViewportUI.java2
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthTableUI.java8
-rw-r--r--src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java23
-rw-r--r--src/share/classes/javax/swing/text/WrappedPlainView.java64
-rw-r--r--src/share/classes/javax/swing/text/html/parser/html32.bdtdbin16173 -> 0 bytes
11 files changed, 102 insertions, 156 deletions
diff --git a/src/share/classes/javax/swing/DefaultDesktopManager.java b/src/share/classes/javax/swing/DefaultDesktopManager.java
index 923bd5a36..d53152626 100644
--- a/src/share/classes/javax/swing/DefaultDesktopManager.java
+++ b/src/share/classes/javax/swing/DefaultDesktopManager.java
@@ -26,17 +26,13 @@
package javax.swing;
-import java.awt.*;
-import java.beans.PropertyVetoException;
-import java.beans.PropertyChangeEvent;
-import javax.swing.border.Border;
-import java.awt.event.ComponentListener;
-import java.awt.event.ComponentAdapter;
-import java.awt.event.ComponentEvent;
-
+import com.sun.awt.AWTUtilities;
import sun.awt.AWTAccessor;
import sun.awt.SunToolkit;
+import java.awt.*;
+import java.beans.PropertyVetoException;
+
/** This is an implementation of the <code>DesktopManager</code>.
* It currently implements the basic behaviors for managing
* <code>JInternalFrame</code>s in an arbitrary parent.
@@ -318,7 +314,10 @@ public class DefaultDesktopManager implements DesktopManager, java.io.Serializab
dragMode = DEFAULT_DRAG_MODE;
if (p != null) {
String mode = (String)p.getClientProperty("JDesktopPane.dragMode");
- if (mode != null && mode.equals("outline")) {
+ Window window = SwingUtilities.getWindowAncestor(f);
+ if (window != null && !AWTUtilities.isWindowOpaque(window)) {
+ dragMode = DEFAULT_DRAG_MODE;
+ } else if (mode != null && mode.equals("outline")) {
dragMode = OUTLINE_DRAG_MODE;
} else if (mode != null && mode.equals("faster")
&& f instanceof JInternalFrame
diff --git a/src/share/classes/javax/swing/JTable.java b/src/share/classes/javax/swing/JTable.java
index 950b5de50..fd0e4eab6 100644
--- a/src/share/classes/javax/swing/JTable.java
+++ b/src/share/classes/javax/swing/JTable.java
@@ -2583,10 +2583,8 @@ public class JTable extends JComponent implements TableModelListener, Scrollable
* @see #convertColumnIndexToView
*/
public int convertColumnIndexToModel(int viewColumnIndex) {
- if (viewColumnIndex < 0) {
- return viewColumnIndex;
- }
- return getColumnModel().getColumn(viewColumnIndex).getModelIndex();
+ return SwingUtilities2.convertColumnIndexToModel(
+ getColumnModel(), viewColumnIndex);
}
/**
@@ -2603,16 +2601,8 @@ public class JTable extends JComponent implements TableModelListener, Scrollable
* @see #convertColumnIndexToModel
*/
public int convertColumnIndexToView(int modelColumnIndex) {
- if (modelColumnIndex < 0) {
- return modelColumnIndex;
- }
- TableColumnModel cm = getColumnModel();
- for (int column = 0; column < getColumnCount(); column++) {
- if (cm.getColumn(column).getModelIndex() == modelColumnIndex) {
- return column;
- }
- }
- return -1;
+ return SwingUtilities2.convertColumnIndexToView(
+ getColumnModel(), modelColumnIndex);
}
/**
diff --git a/src/share/classes/javax/swing/border/MatteBorder.java b/src/share/classes/javax/swing/border/MatteBorder.java
index f7719abaf..02ca200a0 100644
--- a/src/share/classes/javax/swing/border/MatteBorder.java
+++ b/src/share/classes/javax/swing/border/MatteBorder.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,6 @@ package javax.swing.border;
import java.awt.Graphics;
import java.awt.Insets;
-import java.awt.Rectangle;
import java.awt.Component;
import java.awt.Color;
@@ -133,63 +132,29 @@ public class MatteBorder extends EmptyBorder
g.fillRect(width - insets.right, 0, insets.right, height - insets.bottom);
} else if (tileIcon != null) {
-
int tileW = tileIcon.getIconWidth();
int tileH = tileIcon.getIconHeight();
- int xpos, ypos, startx, starty;
- Graphics cg;
-
- // Paint top matte edge
- cg = g.create();
- cg.setClip(0, 0, width, insets.top);
- for (ypos = 0; insets.top - ypos > 0; ypos += tileH) {
- for (xpos = 0; width - xpos > 0; xpos += tileW) {
- tileIcon.paintIcon(c, cg, xpos, ypos);
- }
- }
- cg.dispose();
-
- // Paint left matte edge
- cg = g.create();
- cg.setClip(0, insets.top, insets.left, height - insets.top);
- starty = insets.top - (insets.top%tileH);
- startx = 0;
- for (ypos = starty; height - ypos > 0; ypos += tileH) {
- for (xpos = startx; insets.left - xpos > 0; xpos += tileW) {
- tileIcon.paintIcon(c, cg, xpos, ypos);
- }
- }
- cg.dispose();
-
- // Paint bottom matte edge
- cg = g.create();
- cg.setClip(insets.left, height - insets.bottom, width - insets.left, insets.bottom);
- starty = (height - insets.bottom) - ((height - insets.bottom)%tileH);
- startx = insets.left - (insets.left%tileW);
- for (ypos = starty; height - ypos > 0; ypos += tileH) {
- for (xpos = startx; width - xpos > 0; xpos += tileW) {
- tileIcon.paintIcon(c, cg, xpos, ypos);
- }
- }
- cg.dispose();
-
- // Paint right matte edge
- cg = g.create();
- cg.setClip(width - insets.right, insets.top, insets.right, height - insets.top - insets.bottom);
- starty = insets.top - (insets.top%tileH);
- startx = width - insets.right - ((width - insets.right)%tileW);
- for (ypos = starty; height - ypos > 0; ypos += tileH) {
- for (xpos = startx; width - xpos > 0; xpos += tileW) {
- tileIcon.paintIcon(c, cg, xpos, ypos);
- }
- }
- cg.dispose();
+ paintEdge(c, g, 0, 0, width - insets.right, insets.top, tileW, tileH);
+ paintEdge(c, g, 0, insets.top, insets.left, height - insets.top, tileW, tileH);
+ paintEdge(c, g, insets.left, height - insets.bottom, width - insets.left, insets.bottom, tileW, tileH);
+ paintEdge(c, g, width - insets.right, 0, insets.right, height - insets.bottom, tileW, tileH);
}
g.translate(-x, -y);
g.setColor(oldColor);
}
+ private void paintEdge(Component c, Graphics g, int x, int y, int width, int height, int tileW, int tileH) {
+ g = g.create(x, y, width, height);
+ int sY = -(y % tileH);
+ for (x = -(x % tileW); x < width; x += tileW) {
+ for (y = sY; y < height; y += tileH) {
+ this.tileIcon.paintIcon(c, g, x, y);
+ }
+ }
+ g.dispose();
+ }
+
/**
* Reinitialize the insets parameter with this Border's current Insets.
* @param c the component for which this border insets value applies
diff --git a/src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java b/src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java
index 2ed72d3b2..0e9e23caf 100644
--- a/src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java
+++ b/src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java
@@ -3524,7 +3524,13 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants {
}
else if (name =="indexForTitle") {
calculatedBaseline = false;
- updateHtmlViews((Integer)e.getNewValue());
+ Integer index = (Integer) e.getNewValue();
+ // remove the current index
+ // to let updateHtmlViews() insert the correct one
+ if (htmlViews != null) {
+ htmlViews.removeElementAt(index);
+ }
+ updateHtmlViews(index);
} else if (name == "tabLayoutPolicy") {
BasicTabbedPaneUI.this.uninstallUI(pane);
BasicTabbedPaneUI.this.installUI(pane);
diff --git a/src/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java b/src/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java
index 8ff6e85b3..1524c03ea 100644
--- a/src/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java
+++ b/src/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java
@@ -98,15 +98,18 @@ public class BasicTableHeaderUI extends TableHeaderUI {
private Cursor otherCursor = resizeCursor;
public void mouseClicked(MouseEvent e) {
+ if (!header.isEnabled()) {
+ return;
+ }
if (e.getClickCount() % 2 == 1 &&
- SwingUtilities.isLeftMouseButton(e)){
+ SwingUtilities.isLeftMouseButton(e)) {
JTable table = header.getTable();
RowSorter sorter;
if (table != null && (sorter = table.getRowSorter()) != null) {
int columnIndex = header.columnAtPoint(e.getPoint());
if (columnIndex != -1) {
columnIndex = table.convertColumnIndexToModel(
- columnIndex);
+ columnIndex);
sorter.toggleSortOrder(columnIndex);
}
}
@@ -140,6 +143,9 @@ public class BasicTableHeaderUI extends TableHeaderUI {
}
public void mousePressed(MouseEvent e) {
+ if (!header.isEnabled()) {
+ return;
+ }
header.setDraggedColumn(null);
header.setResizingColumn(null);
header.setDraggedDistance(0);
@@ -182,6 +188,9 @@ public class BasicTableHeaderUI extends TableHeaderUI {
}
public void mouseMoved(MouseEvent e) {
+ if (!header.isEnabled()) {
+ return;
+ }
if (canResize(getResizingColumn(e.getPoint()), header) !=
(header.getCursor() == resizeCursor)) {
swapCursor();
@@ -190,6 +199,9 @@ public class BasicTableHeaderUI extends TableHeaderUI {
}
public void mouseDragged(MouseEvent e) {
+ if (!header.isEnabled()) {
+ return;
+ }
int mouseX = e.getX();
TableColumn resizingColumn = header.getResizingColumn();
@@ -217,21 +229,23 @@ public class BasicTableHeaderUI extends TableHeaderUI {
if (0 <= newColumnIndex && newColumnIndex < cm.getColumnCount()) {
int width = cm.getColumn(newColumnIndex).getWidth();
if (Math.abs(draggedDistance) > (width / 2)) {
- JTable table = header.getTable();
mouseXOffset = mouseXOffset + direction * width;
header.setDraggedDistance(draggedDistance - direction * width);
//Cache the selected column.
- int selectedIndex = table.convertColumnIndexToModel(
- getSelectedColumnIndex());
+ int selectedIndex =
+ SwingUtilities2.convertColumnIndexToModel(
+ header.getColumnModel(),
+ getSelectedColumnIndex());
//Now do the move.
cm.moveColumn(columnIndex, newColumnIndex);
//Update the selected index.
selectColumn(
- table.convertColumnIndexToView(selectedIndex),
+ SwingUtilities2.convertColumnIndexToView(
+ header.getColumnModel(), selectedIndex),
false);
return;
@@ -244,6 +258,9 @@ public class BasicTableHeaderUI extends TableHeaderUI {
}
public void mouseReleased(MouseEvent e) {
+ if (!header.isEnabled()) {
+ return;
+ }
setDraggedDistance(0, viewIndexForColumn(header.getDraggedColumn()));
header.setResizingColumn(null);
@@ -253,10 +270,16 @@ public class BasicTableHeaderUI extends TableHeaderUI {
}
public void mouseEntered(MouseEvent e) {
+ if (!header.isEnabled()) {
+ return;
+ }
updateRolloverColumn(e);
}
public void mouseExited(MouseEvent e) {
+ if (!header.isEnabled()) {
+ return;
+ }
int oldRolloverColumn = rolloverColumn;
rolloverColumn = -1;
rolloverColumnUpdated(oldRolloverColumn, rolloverColumn);
diff --git a/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java b/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java
index 46a8f9be0..fa226f168 100644
--- a/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java
+++ b/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java
@@ -779,20 +779,16 @@ public abstract class BasicTextUI extends TextUI implements ViewFactory {
if (c instanceof JTextComponent) {
editor = (JTextComponent) c;
+ // common case is background painted... this can
+ // easily be changed by subclasses or from outside
+ // of the component.
+ LookAndFeel.installProperty(editor, "opaque", Boolean.TRUE);
+ LookAndFeel.installProperty(editor, "autoscrolls", Boolean.TRUE);
+
// install defaults
installDefaults();
installDefaults2();
- // This is a workaround as these should not override what synth has
- // set them to
- if (! (this instanceof SynthUI)) {
- // common case is background painted... this can
- // easily be changed by subclasses or from outside
- // of the component.
- LookAndFeel.installProperty(editor, "opaque", Boolean.TRUE);
- LookAndFeel.installProperty(editor, "autoscrolls", Boolean.TRUE);
- }
-
// attach to the model and editor
editor.addPropertyChangeListener(updateHandler);
Document doc = editor.getDocument();
diff --git a/src/share/classes/javax/swing/plaf/basic/BasicViewportUI.java b/src/share/classes/javax/swing/plaf/basic/BasicViewportUI.java
index 30cd816df..7c56e24f2 100644
--- a/src/share/classes/javax/swing/plaf/basic/BasicViewportUI.java
+++ b/src/share/classes/javax/swing/plaf/basic/BasicViewportUI.java
@@ -56,8 +56,8 @@ public class BasicViewportUI extends ViewportUI {
}
public void uninstallUI(JComponent c) {
+ uninstallDefaults(c);
super.uninstallUI(c);
-
}
protected void installDefaults(JComponent c) {
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthTableUI.java b/src/share/classes/javax/swing/plaf/synth/SynthTableUI.java
index 292773a52..86321ac34 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthTableUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthTableUI.java
@@ -361,12 +361,14 @@ public class SynthTableUI extends BasicTableUI
cMax = table.getColumnCount()-1;
}
- // Paint the grid.
- paintGrid(context, g, rMin, rMax, cMin, cMax);
-
// Paint the cells.
paintCells(context, g, rMin, rMax, cMin, cMax);
+ // Paint the grid.
+ // it is important to paint the grid after the cells, otherwise the grid will be overpainted
+ // because in Synth cell renderers are likely to be opaque
+ paintGrid(context, g, rMin, rMax, cMin, cMax);
+
paintDropLines(context, g);
}
diff --git a/src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java b/src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java
index 90fd41e61..74d3d1d53 100644
--- a/src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java
+++ b/src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java
@@ -72,7 +72,28 @@ public class SynthTextPaneUI extends SynthEditorPaneUI {
}
/**
- * @inheritDoc
+ * Installs the UI for a component. This does the following
+ * things.
+ * <ol>
+ * <li>
+ * Sets opaqueness of the associated component according to its style,
+ * if the opaque property has not already been set by the client program.
+ * <li>
+ * Installs the default caret and highlighter into the
+ * associated component. These properties are only set if their
+ * current value is either {@code null} or an instance of
+ * {@link UIResource}.
+ * <li>
+ * Attaches to the editor and model. If there is no
+ * model, a default one is created.
+ * <li>
+ * Creates the view factory and the view hierarchy used
+ * to represent the model.
+ * </ol>
+ *
+ * @param c the editor component
+ * @see BasicTextUI#installUI
+ * @see ComponentUI#installUI
*/
@Override
public void installUI(JComponent c) {
diff --git a/src/share/classes/javax/swing/text/WrappedPlainView.java b/src/share/classes/javax/swing/text/WrappedPlainView.java
index e192c0776..7d01cd904 100644
--- a/src/share/classes/javax/swing/text/WrappedPlainView.java
+++ b/src/share/classes/javax/swing/text/WrappedPlainView.java
@@ -24,8 +24,6 @@
*/
package javax.swing.text;
-import java.util.Vector;
-import java.util.Properties;
import java.awt.*;
import java.lang.ref.SoftReference;
import javax.swing.event.*;
@@ -236,9 +234,6 @@ public class WrappedPlainView extends BoxView implements TabExpander {
Segment segment = SegmentCache.getSharedSegment();
loadText(segment, p0, p1);
int currentWidth = getWidth();
- if (currentWidth == Integer.MAX_VALUE) {
- currentWidth = (int) getDefaultSpan(View.X_AXIS);
- }
if (wordWrap) {
p = p0 + Utilities.getBreakLocation(segment, metrics,
tabBase, tabBase + currentWidth,
@@ -324,53 +319,6 @@ public class WrappedPlainView extends BoxView implements TabExpander {
tabSize = getTabSize() * metrics.charWidth('m');
}
- /**
- * Return reasonable default values for the view dimensions. The standard
- * text terminal size 80x24 is pretty suitable for the wrapped plain view.
- *
- * The size should not be larger than the component housing the view's
- * container.
- */
- private float getDefaultSpan(int axis) {
- Container host = getContainer();
- Component parent = null;
-
- if (host != null) {
- parent = host.getParent();
- }
-
- switch (axis) {
- case View.X_AXIS:
- int defaultWidth = 80 * metrics.getWidths()['M'];
- int parentWidth = 0;
-
- if (parent != null) {
- parentWidth = parent.getWidth();
- }
-
- if (defaultWidth > parentWidth) {
- return parentWidth;
- }
- return defaultWidth;
-
- case View.Y_AXIS:
- int defaultHeight = 24 * metrics.getHeight();
- int parentHeight = 0;
-
- if (parent != null) {
- parentHeight = parent.getHeight();
- }
-
- if (defaultHeight > parentHeight) {
- return parentHeight;
- }
- return defaultHeight;
-
- default:
- throw new IllegalArgumentException("Invalid axis: " + axis);
- }
- }
-
// --- TabExpander methods ------------------------------------------
/**
@@ -605,18 +553,14 @@ public class WrappedPlainView extends BoxView implements TabExpander {
if (width == Integer.MAX_VALUE) {
// We have been initially set to MAX_VALUE, but we don't
// want this as our preferred.
- width = getDefaultSpan(axis);
+ return 100f;
}
return width;
case View.Y_AXIS:
- if (getDocument().getLength() > 0) {
- if ((lineCount < 0) || widthChanging) {
- breakLines(getStartOffset());
- }
- return lineCount * metrics.getHeight();
- } else {
- return getDefaultSpan(axis);
+ if (lineCount < 0 || widthChanging) {
+ breakLines(getStartOffset());
}
+ return lineCount * metrics.getHeight();
default:
throw new IllegalArgumentException("Invalid axis: " + axis);
}
diff --git a/src/share/classes/javax/swing/text/html/parser/html32.bdtd b/src/share/classes/javax/swing/text/html/parser/html32.bdtd
deleted file mode 100644
index a48d51ce8..000000000
--- a/src/share/classes/javax/swing/text/html/parser/html32.bdtd
+++ /dev/null
Binary files differ