Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
49d9d970
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
49d9d970
编写于
12月 10, 2009
作者:
P
peterz
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6827653: Make Synth UI classes public
Reviewed-by: alexp
上级
8dc74913
变更
67
展开全部
隐藏空白更改
内联
并排
Showing
67 changed file
with
2497 addition
and
1174 deletion
+2497
-1174
src/share/classes/com/sun/java/swing/plaf/gtk/GTKPainter.java
...share/classes/com/sun/java/swing/plaf/gtk/GTKPainter.java
+0
-1
src/share/classes/javax/swing/plaf/ComponentUI.java
src/share/classes/javax/swing/plaf/ComponentUI.java
+10
-10
src/share/classes/javax/swing/plaf/basic/BasicComboBoxEditor.java
...e/classes/javax/swing/plaf/basic/BasicComboBoxEditor.java
+11
-10
src/share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java
...share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java
+25
-20
src/share/classes/javax/swing/plaf/basic/BasicLabelUI.java
src/share/classes/javax/swing/plaf/basic/BasicLabelUI.java
+4
-5
src/share/classes/javax/swing/plaf/basic/BasicListUI.java
src/share/classes/javax/swing/plaf/basic/BasicListUI.java
+7
-7
src/share/classes/javax/swing/plaf/basic/BasicMenuItemUI.java
...share/classes/javax/swing/plaf/basic/BasicMenuItemUI.java
+6
-2
src/share/classes/javax/swing/plaf/basic/BasicScrollBarUI.java
...hare/classes/javax/swing/plaf/basic/BasicScrollBarUI.java
+11
-8
src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java
src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java
+8
-6
src/share/classes/javax/swing/plaf/basic/BasicSpinnerUI.java
src/share/classes/javax/swing/plaf/basic/BasicSpinnerUI.java
+14
-19
src/share/classes/javax/swing/plaf/basic/BasicSplitPaneUI.java
...hare/classes/javax/swing/plaf/basic/BasicSplitPaneUI.java
+6
-6
src/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java
...re/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java
+4
-5
src/share/classes/javax/swing/plaf/basic/BasicTextUI.java
src/share/classes/javax/swing/plaf/basic/BasicTextUI.java
+14
-14
src/share/classes/javax/swing/plaf/basic/BasicToolBarUI.java
src/share/classes/javax/swing/plaf/basic/BasicToolBarUI.java
+2
-2
src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java
src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java
+43
-15
src/share/classes/javax/swing/plaf/basic/DefaultMenuLayout.java
...are/classes/javax/swing/plaf/basic/DefaultMenuLayout.java
+1
-1
src/share/classes/javax/swing/plaf/nimbus/NimbusLookAndFeel.java
...re/classes/javax/swing/plaf/nimbus/NimbusLookAndFeel.java
+29
-1
src/share/classes/javax/swing/plaf/nimbus/package.html
src/share/classes/javax/swing/plaf/nimbus/package.html
+3
-4
src/share/classes/javax/swing/plaf/synth/SynthBorder.java
src/share/classes/javax/swing/plaf/synth/SynthBorder.java
+0
-1
src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java
src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java
+80
-20
src/share/classes/javax/swing/plaf/synth/SynthCheckBoxMenuItemUI.java
...asses/javax/swing/plaf/synth/SynthCheckBoxMenuItemUI.java
+19
-25
src/share/classes/javax/swing/plaf/synth/SynthCheckBoxUI.java
...share/classes/javax/swing/plaf/synth/SynthCheckBoxUI.java
+22
-7
src/share/classes/javax/swing/plaf/synth/SynthColorChooserUI.java
...e/classes/javax/swing/plaf/synth/SynthColorChooserUI.java
+57
-13
src/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java
...share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java
+69
-126
src/share/classes/javax/swing/plaf/synth/SynthDefaultLookup.java
...re/classes/javax/swing/plaf/synth/SynthDefaultLookup.java
+0
-1
src/share/classes/javax/swing/plaf/synth/SynthDesktopIconUI.java
...re/classes/javax/swing/plaf/synth/SynthDesktopIconUI.java
+80
-35
src/share/classes/javax/swing/plaf/synth/SynthDesktopPaneUI.java
...re/classes/javax/swing/plaf/synth/SynthDesktopPaneUI.java
+60
-15
src/share/classes/javax/swing/plaf/synth/SynthEditorPaneUI.java
...are/classes/javax/swing/plaf/synth/SynthEditorPaneUI.java
+41
-13
src/share/classes/javax/swing/plaf/synth/SynthFormattedTextFieldUI.java
...ses/javax/swing/plaf/synth/SynthFormattedTextFieldUI.java
+15
-5
src/share/classes/javax/swing/plaf/synth/SynthInternalFrameTitlePane.java
...s/javax/swing/plaf/synth/SynthInternalFrameTitlePane.java
+0
-5
src/share/classes/javax/swing/plaf/synth/SynthInternalFrameUI.java
.../classes/javax/swing/plaf/synth/SynthInternalFrameUI.java
+68
-21
src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java
src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java
+57
-18
src/share/classes/javax/swing/plaf/synth/SynthListUI.java
src/share/classes/javax/swing/plaf/synth/SynthListUI.java
+47
-22
src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java
...hare/classes/javax/swing/plaf/synth/SynthLookAndFeel.java
+25
-44
src/share/classes/javax/swing/plaf/synth/SynthMenuBarUI.java
src/share/classes/javax/swing/plaf/synth/SynthMenuBarUI.java
+54
-20
src/share/classes/javax/swing/plaf/synth/SynthMenuItemUI.java
...share/classes/javax/swing/plaf/synth/SynthMenuItemUI.java
+61
-16
src/share/classes/javax/swing/plaf/synth/SynthMenuLayout.java
...share/classes/javax/swing/plaf/synth/SynthMenuLayout.java
+5
-20
src/share/classes/javax/swing/plaf/synth/SynthMenuUI.java
src/share/classes/javax/swing/plaf/synth/SynthMenuUI.java
+63
-18
src/share/classes/javax/swing/plaf/synth/SynthOptionPaneUI.java
...are/classes/javax/swing/plaf/synth/SynthOptionPaneUI.java
+67
-13
src/share/classes/javax/swing/plaf/synth/SynthPainter.java
src/share/classes/javax/swing/plaf/synth/SynthPainter.java
+0
-1
src/share/classes/javax/swing/plaf/synth/SynthPanelUI.java
src/share/classes/javax/swing/plaf/synth/SynthPanelUI.java
+63
-11
src/share/classes/javax/swing/plaf/synth/SynthPasswordFieldUI.java
.../classes/javax/swing/plaf/synth/SynthPasswordFieldUI.java
+20
-8
src/share/classes/javax/swing/plaf/synth/SynthPopupMenuUI.java
...hare/classes/javax/swing/plaf/synth/SynthPopupMenuUI.java
+54
-26
src/share/classes/javax/swing/plaf/synth/SynthProgressBarUI.java
...re/classes/javax/swing/plaf/synth/SynthProgressBarUI.java
+68
-11
src/share/classes/javax/swing/plaf/synth/SynthRadioButtonMenuItemUI.java
...es/javax/swing/plaf/synth/SynthRadioButtonMenuItemUI.java
+20
-23
src/share/classes/javax/swing/plaf/synth/SynthRadioButtonUI.java
...re/classes/javax/swing/plaf/synth/SynthRadioButtonUI.java
+22
-6
src/share/classes/javax/swing/plaf/synth/SynthRootPaneUI.java
...share/classes/javax/swing/plaf/synth/SynthRootPaneUI.java
+41
-9
src/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java
...hare/classes/javax/swing/plaf/synth/SynthScrollBarUI.java
+91
-35
src/share/classes/javax/swing/plaf/synth/SynthScrollPaneUI.java
...are/classes/javax/swing/plaf/synth/SynthScrollPaneUI.java
+43
-16
src/share/classes/javax/swing/plaf/synth/SynthSeparatorUI.java
...hare/classes/javax/swing/plaf/synth/SynthSeparatorUI.java
+71
-15
src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java
src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java
+150
-47
src/share/classes/javax/swing/plaf/synth/SynthSpinnerUI.java
src/share/classes/javax/swing/plaf/synth/SynthSpinnerUI.java
+51
-74
src/share/classes/javax/swing/plaf/synth/SynthSplitPaneUI.java
...hare/classes/javax/swing/plaf/synth/SynthSplitPaneUI.java
+49
-18
src/share/classes/javax/swing/plaf/synth/SynthStyle.java
src/share/classes/javax/swing/plaf/synth/SynthStyle.java
+0
-1
src/share/classes/javax/swing/plaf/synth/SynthStyleFactory.java
...are/classes/javax/swing/plaf/synth/SynthStyleFactory.java
+1
-4
src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java
...are/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java
+110
-30
src/share/classes/javax/swing/plaf/synth/SynthTableHeaderUI.java
...re/classes/javax/swing/plaf/synth/SynthTableHeaderUI.java
+61
-19
src/share/classes/javax/swing/plaf/synth/SynthTableUI.java
src/share/classes/javax/swing/plaf/synth/SynthTableUI.java
+50
-15
src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java
...share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java
+51
-23
src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java
...hare/classes/javax/swing/plaf/synth/SynthTextFieldUI.java
+50
-35
src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java
...share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java
+14
-2
src/share/classes/javax/swing/plaf/synth/SynthToggleButtonUI.java
...e/classes/javax/swing/plaf/synth/SynthToggleButtonUI.java
+18
-3
src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java
src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java
+81
-18
src/share/classes/javax/swing/plaf/synth/SynthToolTipUI.java
src/share/classes/javax/swing/plaf/synth/SynthToolTipUI.java
+57
-10
src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java
src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java
+97
-106
src/share/classes/javax/swing/plaf/synth/SynthUI.java
src/share/classes/javax/swing/plaf/synth/SynthUI.java
+10
-2
src/share/classes/javax/swing/plaf/synth/SynthViewportUI.java
...share/classes/javax/swing/plaf/synth/SynthViewportUI.java
+66
-12
未找到文件。
src/share/classes/com/sun/java/swing/plaf/gtk/GTKPainter.java
浏览文件 @
49d9d970
...
...
@@ -24,7 +24,6 @@
*/
package
com.sun.java.swing.plaf.gtk
;
import
sun.swing.plaf.synth.SynthUI
;
import
sun.awt.UNIXToolkit
;
import
javax.swing.plaf.synth.*
;
...
...
src/share/classes/javax/swing/plaf/ComponentUI.java
浏览文件 @
49d9d970
...
...
@@ -60,13 +60,13 @@ public abstract class ComponentUI {
}
/**
* Configures the specified component appropriate for the look and feel.
* Configures the specified component appropriate
ly
for the look and feel.
* This method is invoked when the <code>ComponentUI</code> instance is being installed
* as the UI delegate on the specified component. This method should
* completely configure the component for the look and feel,
* including the following:
* <ol>
* <li>Install
any
default property values for color, fonts, borders,
* <li>Install default property values for color, fonts, borders,
* icons, opacity, etc. on the component. Whenever possible,
* property values initialized by the client program should <i>not</i>
* be overridden.
...
...
@@ -116,7 +116,7 @@ public abstract class ComponentUI {
}
/**
* Paints the specified component appropriate for the look and feel.
* Paints the specified component appropriate
ly
for the look and feel.
* This method is invoked from the <code>ComponentUI.update</code> method when
* the specified component is being painted. Subclasses should override
* this method and use the specified <code>Graphics</code> object to
...
...
@@ -134,15 +134,15 @@ public abstract class ComponentUI {
}
/**
* Notifies this UI delegate that it
'
s time to paint the specified
* Notifies this UI delegate that it
i
s time to paint the specified
* component. This method is invoked by <code>JComponent</code>
* when the specified component is being painted.
*
By default this method will fill the specified component with
*
its background color (if its <code>opaque</code> property is
*
<code>true</code>) and then immediately call <code>paint</code>.
*
In general this method need not be overridden by subclasses;
*
all look-and-feel rendering code should reside in the <code>paint</code>
* method.
*
*
<p>By default this method fills the specified component with
*
its background color if its {@code opaque} property is {@code true},
*
and then immediately calls {@code paint}. In general this method need
*
not be overridden by subclasses; all look-and-feel rendering code should
*
reside in the {@code paint}
method.
*
* @param g the <code>Graphics</code> context in which to paint
* @param c the component being painted;
...
...
src/share/classes/javax/swing/plaf/basic/BasicComboBoxEditor.java
浏览文件 @
49d9d970
...
...
@@ -24,14 +24,10 @@
*/
package
javax.swing.plaf.basic
;
import
javax.swing.*
;
import
javax.swing.ComboBoxEditor
;
import
javax.swing.JTextField
;
import
javax.swing.border.Border
;
import
javax.swing.text.AttributeSet
;
import
javax.swing.text.BadLocationException
;
import
javax.swing.text.PlainDocument
;
import
java.awt.*
;
import
java.awt.Component
;
import
java.awt.event.*
;
import
java.lang.reflect.Method
;
...
...
@@ -73,12 +69,17 @@ public class BasicComboBoxEditor implements ComboBoxEditor,FocusListener {
* @param anObject the displayed value of the editor
*/
public
void
setItem
(
Object
anObject
)
{
if
(
anObject
!=
null
)
{
editor
.
setText
(
anObject
.
toString
());
String
text
;
if
(
anObject
!=
null
)
{
text
=
anObject
.
toString
();
oldValue
=
anObject
;
}
else
{
editor
.
setText
(
""
);
text
=
""
;
}
// workaround for 4530952
if
(!
text
.
equals
(
editor
.
getText
()))
{
editor
.
setText
(
text
);
}
}
...
...
src/share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java
浏览文件 @
49d9d970
...
...
@@ -30,7 +30,6 @@ import java.awt.event.*;
import
javax.swing.*
;
import
javax.accessibility.*
;
import
javax.swing.plaf.*
;
import
javax.swing.border.*
;
import
javax.swing.text.*
;
import
javax.swing.event.*
;
import
java.beans.PropertyChangeListener
;
...
...
@@ -189,19 +188,20 @@ public class BasicComboBoxUI extends ComboBoxUI {
/**
* Indicates whether or not the combo box button should be square.
* If square, then the width and height are equal, and are both set to
* the height of the combo (minus appropriate insets).
* the height of the combo minus appropriate insets.
*
* @since 1.7
*/
pr
ivate
boolean
squareButton
=
true
;
pr
otected
boolean
squareButton
=
true
;
/**
* Optional: if specified, these insets act as padding around the cell
* renderer when laying out and painting the "selected" item in the
* combo box. BasicComboBoxUI uses a single combo box renderer for rendering
* both the main combo box item and also all the items in the dropdown
* for the combo box. padding allows you to specify addition insets in
* addition to those specified by the cell renderer.
* If specified, these insets act as padding around the cell renderer when
* laying out and painting the "selected" item in the combo box. These
* insets add to those specified by the cell renderer.
*
* @since 1.7
*/
pr
ivate
Insets
padding
;
pr
otected
Insets
padding
;
// Used for calculating the default size.
private
static
ListCellRenderer
getDefaultListCellRenderer
()
{
...
...
@@ -345,7 +345,7 @@ public class BasicComboBoxUI extends ComboBoxUI {
}
/**
* Create
and install the
listeners for the combo box and its model.
* Create
s and installs
listeners for the combo box and its model.
* This method is called when the UI is installed.
*/
protected
void
installListeners
()
{
...
...
@@ -379,8 +379,8 @@ public class BasicComboBoxUI extends ComboBoxUI {
}
/**
* Uninstalls the default colors, default font, default renderer,
and default
*
editor into the JComboB
ox.
* Uninstalls the default colors, default font, default renderer,
*
and default editor from the combo b
ox.
*/
protected
void
uninstallDefaults
()
{
LookAndFeel
.
installColorsAndFont
(
comboBox
,
...
...
@@ -391,7 +391,7 @@ public class BasicComboBoxUI extends ComboBoxUI {
}
/**
* Remove the installed listeners from the combo box and its model.
* Remove
s
the installed listeners from the combo box and its model.
* The number and types of listeners removed and in this method should be
* the same that was added in <code>installListeners</code>
*/
...
...
@@ -839,7 +839,7 @@ public class BasicComboBoxUI extends ComboBoxUI {
}
/**
* Creates a
n
button which will be used as the control to show or hide
* Creates a button which will be used as the control to show or hide
* the popup portion of the combo box.
*
* @return a button which represents the popup control
...
...
@@ -1392,12 +1392,17 @@ public class BasicComboBoxUI extends ComboBoxUI {
}
/**
* This has been refactored out in hopes that it may be investigated and
* simplified for the next major release. adding/removing
* the component to the currentValuePane and changing the font may be
* redundant operations.
* Returns the size a component would have if used as a cell renderer.
*
* @param comp a {@code Component} to check
* @return size of the component
* @since 1.7
*/
private
Dimension
getSizeForComponent
(
Component
comp
)
{
protected
Dimension
getSizeForComponent
(
Component
comp
)
{
// This has been refactored out in hopes that it may be investigated and
// simplified for the next major release. adding/removing
// the component to the currentValuePane and changing the font may be
// redundant operations.
currentValuePane
.
add
(
comp
);
comp
.
setFont
(
comboBox
.
getFont
());
Dimension
d
=
comp
.
getPreferredSize
();
...
...
src/share/classes/javax/swing/plaf/basic/BasicLabelUI.java
浏览文件 @
49d9d970
...
...
@@ -141,11 +141,10 @@ public class BasicLabelUI extends LabelUI implements PropertyChangeListener
}
/**
* Paint the label text in the foreground color, if the label
* is opaque then paint the entire background with the background
* color. The Label text is drawn by paintEnabledText() or
* paintDisabledText(). The locations of the label parts are computed
* by layoutCL.
* Paints the label text with the foreground color, if the label is opaque
* then paints the entire background with the background color. The Label
* text is drawn by {@link #paintEnabledText} or {@link #paintDisabledText}.
* The locations of the label parts are computed by {@link #layoutCL}.
*
* @see #paintEnabledText
* @see #paintDisabledText
...
...
src/share/classes/javax/swing/plaf/basic/BasicListUI.java
浏览文件 @
49d9d970
...
...
@@ -685,7 +685,7 @@ public class BasicListUI extends ListUI
/**
* Create
and install
the listeners for the JList, its model, and its
* Create
s and installs
the listeners for the JList, its model, and its
* selectionModel. This method is called at installUI() time.
*
* @see #installUI
...
...
@@ -728,7 +728,7 @@ public class BasicListUI extends ListUI
/**
* Remove
the listeners for
the JList, its model, and its
* Remove
s the listeners from
the JList, its model, and its
* selectionModel. All of the listener fields, are reset to
* null here. This method is called at uninstallUI() time,
* it should be kept in sync with installListeners.
...
...
@@ -764,8 +764,8 @@ public class BasicListUI extends ListUI
/**
* Initialize
JList properties, e.g.
font, foreground, and background,
* and add
the CellRendererPane.
The font, foreground, and background
* Initialize
s list properties such as
font, foreground, and background,
* and add
s the CellRendererPane.
The font, foreground, and background
* properties are only set if their current value is either null
* or a UIResource, other properties are set if the current
* value is null.
...
...
@@ -820,9 +820,9 @@ public class BasicListUI extends ListUI
/**
* Set
the JList properties that haven'
t been explicitly overridden to
*
null.
A property is considered overridden if its current value
* is not a
UIResource
.
* Set
s the list properties that have no
t been explicitly overridden to
*
{@code null}.
A property is considered overridden if its current value
* is not a
{@code UIResource}
.
*
* @see #installDefaults
* @see #uninstallUI
...
...
src/share/classes/javax/swing/plaf/basic/BasicMenuItemUI.java
浏览文件 @
49d9d970
...
...
@@ -32,7 +32,6 @@ import java.beans.PropertyChangeListener;
import
javax.swing.*
;
import
javax.swing.event.*
;
import
javax.swing.border.*
;
import
javax.swing.plaf.*
;
import
javax.swing.text.View
;
...
...
@@ -54,7 +53,12 @@ public class BasicMenuItemUI extends MenuItemUI
protected
Color
disabledForeground
;
protected
Color
acceleratorForeground
;
protected
Color
acceleratorSelectionForeground
;
private
String
acceleratorDelimiter
;
/**
* Accelerator delimiter string, such as {@code '+'} in {@code 'Ctrl+C'}.
* @since 1.7
*/
protected
String
acceleratorDelimiter
;
protected
int
defaultTextIconGap
;
protected
Font
acceleratorFont
;
...
...
src/share/classes/javax/swing/plaf/basic/BasicScrollBarUI.java
浏览文件 @
49d9d970
...
...
@@ -93,10 +93,13 @@ public class BasicScrollBarUI
* scrollbar. */
private
boolean
supportsAbsolutePositioning
;
/** Hint as to what width (when vertical) or height (when horizontal)
/**
* Hint as to what width (when vertical) or height (when horizontal)
* should be.
*
* @since 1.7
*/
pr
ivate
int
scrollBarWidth
;
pr
otected
int
scrollBarWidth
;
private
Handler
handler
;
...
...
@@ -117,18 +120,18 @@ public class BasicScrollBarUI
* number. If negative, then an overlap between the button and track will occur,
* which is useful for shaped buttons.
*
*
TODO This should be made protected in a feature release
*
@since 1.7
*/
pr
ivate
int
incrGap
;
pr
otected
int
incrGap
;
/**
* Distance between the decrement button and the track. This may be a negative
* number. If negative, then an overlap between the button and track will occur,
* which is useful for shaped buttons.
*
*
TODO This should be made protected in a feature release
*
@since 1.7
*/
pr
ivate
int
decrGap
;
pr
otected
int
decrGap
;
static
void
loadActionMap
(
LazyActionMap
map
)
{
map
.
put
(
new
Actions
(
Actions
.
POSITIVE_UNIT_INCREMENT
));
...
...
@@ -586,7 +589,7 @@ public class BasicScrollBarUI
/**
* Return the smallest acceptable size for the thumb. If the scrollbar
* Return
s
the smallest acceptable size for the thumb. If the scrollbar
* becomes so small that this size isn't available, the thumb will be
* hidden.
* <p>
...
...
@@ -601,7 +604,7 @@ public class BasicScrollBarUI
}
/**
* Return the largest acceptable size for the thumb. To create a fixed
* Return
s
the largest acceptable size for the thumb. To create a fixed
* size thumb one make this method and <code>getMinimumThumbSize</code>
* return the same value.
* <p>
...
...
src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java
浏览文件 @
49d9d970
...
...
@@ -1409,9 +1409,10 @@ public class BasicSliderUI extends SliderUI{
}
/**
* Returns a value give a y position. If yPos is past the track at the top or the
* bottom it will set the value to the min or max of the slider, depending if the
* slider is inverted or not.
* Returns the value at the y position. If {@code yPos} is beyond the
* track at the the bottom or the top, this method sets the value to either
* the minimum or maximum value of the slider, depending on if the slider
* is inverted or not.
*/
public
int
valueForYPosition
(
int
yPos
)
{
int
value
;
...
...
@@ -1440,9 +1441,10 @@ public class BasicSliderUI extends SliderUI{
}
/**
* Returns a value give an x position. If xPos is past the track at the left or the
* right it will set the value to the min or max of the slider, depending if the
* slider is inverted or not.
* Returns the value at the x position. If {@code xPos} is beyond the
* track at the left or the right, this method sets the value to either the
* minimum or maximum value of the slider, depending on if the slider is
* inverted or not.
*/
public
int
valueForXPosition
(
int
xPos
)
{
int
value
;
...
...
src/share/classes/javax/swing/plaf/basic/BasicSpinnerUI.java
浏览文件 @
49d9d970
...
...
@@ -268,7 +268,7 @@ public class BasicSpinnerUI extends SpinnerUI
}
/**
* Create a <code>LayoutManager</code> that manages the <code>editor</code>,
* Create
s
a <code>LayoutManager</code> that manages the <code>editor</code>,
* <code>nextButton</code>, and <code>previousButton</code>
* children of the JSpinner. These three children must be
* added with a constraint that identifies their role:
...
...
@@ -286,7 +286,7 @@ public class BasicSpinnerUI extends SpinnerUI
/**
* Create a <code>PropertyChangeListener</code> that can be
* Create
s
a <code>PropertyChangeListener</code> that can be
* added to the JSpinner itself. Typically, this listener
* will call replaceEditor when the "editor" property changes,
* since it's the <code>SpinnerUI's</code> responsibility to
...
...
@@ -302,16 +302,13 @@ public class BasicSpinnerUI extends SpinnerUI
/**
* Create a component that will replace the spinner models value
* with the object returned by <code>spinner.getPreviousValue</code>.
* By default the <code>previousButton</code> is a JButton. This
* method invokes <code>installPreviousButtonListeners</code> to
* install the necessary listeners to update the <code>JSpinner</code>'s
* model in response to a user gesture. If a previousButton isn't needed
* (in a subclass) then override this method to return null.
* Creates a decrement button, i.e. component that replaces the spinner
* value with the object returned by <code>spinner.getPreviousValue</code>.
* By default the <code>previousButton</code> is a {@code JButton}. If the
* decrement button is not needed this method should return {@code null}.
*
* @return a component that will replace the spinner
s model
with the
*
next value in the sequence, or null
* @return a component that will replace the spinner
's value
with the
*
previous value in the sequence, or {@code null}
* @see #installUI
* @see #createNextButton
* @see #installPreviousButtonListeners
...
...
@@ -325,15 +322,13 @@ public class BasicSpinnerUI extends SpinnerUI
/**
* Create a component that will replace the spinner models value
* with the object returned by <code>spinner.getNextValue</code>.
* By default the <code>nextButton</code> is a JButton
* who's <code>ActionListener</code> updates it's <code>JSpinner</code>
* ancestors model. If a nextButton isn't needed (in a subclass)
* then override this method to return null.
* Creates an increment button, i.e. component that replaces the spinner
* value with the object returned by <code>spinner.getNextValue</code>.
* By default the <code>nextButton</code> is a {@code JButton}. If the
* increment button is not needed this method should return {@code null}.
*
* @return a component that will replace the spinner
s model
with the
* next value in the sequence, or
null
* @return a component that will replace the spinner
's value
with the
* next value in the sequence, or
{@code null}
* @see #installUI
* @see #createPreviousButton
* @see #installNextButtonListeners
...
...
src/share/classes/javax/swing/plaf/basic/BasicSplitPaneUI.java
浏览文件 @
49d9d970
...
...
@@ -829,7 +829,7 @@ public class BasicSplitPaneUI extends SplitPaneUI
/**
* Returns the default non continuous layout divider, which is an
* instance
of Canvas that fills the background in
dark gray.
* instance
of {@code Canvas} that fills in the background with
dark gray.
*/
protected
Component
createDefaultNonContinuousLayoutDivider
()
{
return
new
Canvas
()
{
...
...
@@ -1041,11 +1041,11 @@ public class BasicSplitPaneUI extends SplitPaneUI
/**
*
Messaged after the JSplitPane the receiver is providing the look
*
and feel for paints
its children.
*
Called when the specified split pane has finished painting
* its children.
*/
public
void
finishedPaintingChildren
(
JSplitPane
jc
,
Graphics
g
)
{
if
(
jc
==
splitPane
&&
getLastDragLocation
()
!=
-
1
&&
public
void
finishedPaintingChildren
(
JSplitPane
sp
,
Graphics
g
)
{
if
(
sp
==
splitPane
&&
getLastDragLocation
()
!=
-
1
&&
!
isContinuousLayout
()
&&
!
draggingHW
)
{
Dimension
size
=
splitPane
.
getSize
();
...
...
@@ -1062,7 +1062,7 @@ public class BasicSplitPaneUI extends SplitPaneUI
/**
*
Messaged to paint the look and feel.
*
@inheritDoc
*/
public
void
paint
(
Graphics
g
,
JComponent
jc
)
{
if
(!
painted
&&
splitPane
.
getDividerLocation
()<
0
)
{
...
...
src/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java
浏览文件 @
49d9d970
...
...
@@ -306,7 +306,7 @@ public class BasicTableHeaderUI extends TableHeaderUI {
}
/**
* Initialize
JTableHeader properties, e.g.
font, foreground, and background.
* Initialize
s JTableHeader properties such as
font, foreground, and background.
* The font, foreground, and background properties are only set if their
* current value is either null or a UIResource, other properties are set
* if the current value is null.
...
...
@@ -403,9 +403,9 @@ public class BasicTableHeaderUI extends TableHeaderUI {
}
/**
* This method gets called every time
the
rollover column in the table
* header is updated. Every look and feel
supporting
rollover effect
* in table header should override this method and repaint the header.
* This method gets called every time
when a
rollover column in the table
* header is updated. Every look and feel
that supports a
rollover effect
* in
a
table header should override this method and repaint the header.
*
* @param oldColumn the index of the previous rollover column or -1 if the
* mouse was not over a column
...
...
@@ -736,7 +736,6 @@ public class BasicTableHeaderUI extends TableHeaderUI {
}
private
Dimension
createHeaderSize
(
long
width
)
{
TableColumnModel
columnModel
=
header
.
getColumnModel
();
// None of the callers include the intercell spacing, do it here.
if
(
width
>
Integer
.
MAX_VALUE
)
{
width
=
Integer
.
MAX_VALUE
;
...
...
src/share/classes/javax/swing/plaf/basic/BasicTextUI.java
浏览文件 @
49d9d970
...
...
@@ -37,6 +37,7 @@ import javax.swing.text.*;
import
javax.swing.event.*
;
import
javax.swing.border.Border
;
import
javax.swing.plaf.UIResource
;
import
javax.swing.plaf.synth.SynthUI
;
import
sun.swing.DefaultLookup
;
import
sun.awt.AppContext
;
import
javax.swing.plaf.basic.DragRecognitionSupport.BeforeDrag
;
...
...
@@ -221,8 +222,7 @@ public abstract class BasicTextUI extends TextUI implements ViewFactory {
// is ==, which is the case for the windows look and feel.
// Until an appropriate solution is found, the code is being
// reverted to what it was before the original fix.
if
(
this
instanceof
sun
.
swing
.
plaf
.
synth
.
SynthUI
||
(
c
instanceof
JTextArea
))
{
if
(
this
instanceof
SynthUI
||
(
c
instanceof
JTextArea
))
{
return
;
}
Color
background
=
c
.
getBackground
();
...
...
@@ -289,7 +289,7 @@ public abstract class BasicTextUI extends TextUI implements ViewFactory {
protected
abstract
String
getPropertyPrefix
();
/**
* Initializes component properties,
e.g.
font, foreground,
* Initializes component properties,
such as
font, foreground,
* background, caret color, selection color, selected text color,
* disabled text color, and border color. The font, foreground, and
* background properties are only set if their current value is either null
...
...
@@ -377,9 +377,9 @@ public abstract class BasicTextUI extends TextUI implements ViewFactory {
}
/**
* Sets the component properties that have
n't been explicitly overridden to
*
null. A property is considered overridden if its current value
*
is not a UIResource
.
* Sets the component properties that have
not been explicitly overridden
*
to {@code null}. A property is considered overridden if its current
*
value is not a {@code UIResource}
.
*
* @see #installDefaults
* @see #uninstallUI
...
...
@@ -756,18 +756,18 @@ public abstract class BasicTextUI extends TextUI implements ViewFactory {
* things.
* <ol>
* <li>
* Set the associated component to opaque (can be changed
* Set
s
the associated component to opaque (can be changed
* easily by a subclass or on JTextComponent directly),
* which is the most common case. This will cause the
* component's background color to be painted.
* <li>
* Install the default caret and highlighter into the
* Install
s
the default caret and highlighter into the
* associated component.
* <li>
* Attach to the editor and model. If there is no
* Attach
es
to the editor and model. If there is no
* model, a default one is created.
* <li>
*
create
the view factory and the view hierarchy used
*
Creates
the view factory and the view hierarchy used
* to represent the model.
* </ol>
*
...
...
@@ -784,7 +784,7 @@ public abstract class BasicTextUI extends TextUI implements ViewFactory {
// This is a workaround as these should not override what synth has
// set them to
if
(!
(
this
instanceof
sun
.
swing
.
plaf
.
synth
.
SynthUI
))
{
if
(!
(
this
instanceof
SynthUI
))
{
// common case is background painted... this can
// easily be changed by subclasses or from outside
// of the component.
...
...
@@ -857,9 +857,9 @@ public abstract class BasicTextUI extends TextUI implements ViewFactory {
* To prevent this from happening twice, this method is
* reimplemented to simply paint.
* <p>
* <em>NOTE:</em>
Superclass is also not thread-safe in
*
it's rendering of the background, although that's not
*
an issue with the
default rendering.
* <em>NOTE:</em>
NOTE: Superclass is also not thread-safe in its
*
rendering of the background, although that is not an issue with the
* default rendering.
*/
public
void
update
(
Graphics
g
,
JComponent
c
)
{
paint
(
g
,
c
);
...
...
src/share/classes/javax/swing/plaf/basic/BasicToolBarUI.java
浏览文件 @
49d9d970
...
...
@@ -669,7 +669,7 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
/**
* Sets the border of the component to have a rollover border which
* was created by
<code>createRolloverBorder</code>
.
* was created by
the {@link #createRolloverBorder} method
.
*
* @param c component which will have a rollover border installed
* @see #createRolloverBorder
...
...
@@ -709,7 +709,7 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
/**
* Sets the border of the component to have a non-rollover border which
* was created by
<code>createNonRolloverBorder</code>
.
* was created by
the {@link #createNonRolloverBorder} method
.
*
* @param c component which will have a non-rollover border installed
* @see #createNonRolloverBorder
...
...
src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java
浏览文件 @
49d9d970
...
...
@@ -30,16 +30,12 @@ import javax.swing.event.*;
import
java.awt.*
;
import
java.awt.event.*
;
import
java.awt.datatransfer.*
;
import
java.awt.dnd.*
;
import
java.beans.*
;
import
java.io.*
;
import
java.util.Enumeration
;
import
java.util.Hashtable
;
import
java.util.TooManyListenersException
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Comparator
;
import
javax.swing.plaf.ActionMapUIResource
;
import
javax.swing.plaf.ComponentUI
;
import
javax.swing.plaf.UIResource
;
import
javax.swing.plaf.TreeUI
;
...
...
@@ -1244,11 +1240,26 @@ public class BasicTreeUI extends TreeUI
drawingCache
.
clear
();
}
private
boolean
isDropLine
(
JTree
.
DropLocation
loc
)
{
/**
* Tells if a {@code DropLocation} should be indicated by a line between
* nodes. This is meant for {@code javax.swing.DropMode.INSERT} and
* {@code javax.swing.DropMode.ON_OR_INSERT} drop modes.
*
* @param loc a {@code DropLocation}
* @return {@code true} if the drop location should be shown as a line
* @since 1.7
*/
protected
boolean
isDropLine
(
JTree
.
DropLocation
loc
)
{
return
loc
!=
null
&&
loc
.
getPath
()
!=
null
&&
loc
.
getChildIndex
()
!=
-
1
;
}
private
void
paintDropLine
(
Graphics
g
)
{
/**
* Paints the drop line.
*
* @param g {@code Graphics} object to draw on
* @since 1.7
*/
protected
void
paintDropLine
(
Graphics
g
)
{
JTree
.
DropLocation
loc
=
tree
.
getDropLocation
();
if
(!
isDropLine
(
loc
))
{
return
;
...
...
@@ -1262,7 +1273,14 @@ public class BasicTreeUI extends TreeUI
}
}
private
Rectangle
getDropLineRect
(
JTree
.
DropLocation
loc
)
{
/**
* Returns a ubounding box for the drop line.
*
* @param loc a {@code DropLocation}
* @return bounding box for the drop line
* @since 1.7
*/
protected
Rectangle
getDropLineRect
(
JTree
.
DropLocation
loc
)
{
Rectangle
rect
;
TreePath
path
=
loc
.
getPath
();
int
index
=
loc
.
getChildIndex
();
...
...
@@ -1684,7 +1702,7 @@ public class BasicTreeUI extends TreeUI
treeState
.
setExpandedState
(
path
,
true
);
}
}
updateLeadRow
();
updateLead
Selection
Row
();
updateSize
();
}
}
...
...
@@ -2425,11 +2443,21 @@ public class BasicTreeUI extends TreeUI
return
tree
.
getLeadSelectionPath
();
}
private
void
updateLeadRow
()
{
/**
* Updates the lead row of the selection.
* @since 1.7
*/
protected
void
updateLeadSelectionRow
()
{
leadRow
=
getRowForPath
(
tree
,
getLeadSelectionPath
());
}
private
int
getLeadSelectionRow
()
{
/**
* Returns the lead row of the selection.
*
* @return selection lead row
* @since 1.7
*/
protected
int
getLeadSelectionRow
()
{
return
leadRow
;
}
...
...
@@ -3345,7 +3373,7 @@ public class BasicTreeUI extends TreeUI
if
(
changeName
==
JTree
.
LEAD_SELECTION_PATH_PROPERTY
)
{
if
(!
ignoreLAChange
)
{
updateLeadRow
();
updateLead
Selection
Row
();
repaintPath
((
TreePath
)
event
.
getOldValue
());
repaintPath
((
TreePath
)
event
.
getNewValue
());
}
...
...
@@ -3763,7 +3791,7 @@ public class BasicTreeUI extends TreeUI
completeEditing
();
if
(
path
!=
null
&&
tree
.
isVisible
(
path
))
{
treeState
.
setExpandedState
(
path
,
false
);
updateLeadRow
();
updateLead
Selection
Row
();
updateSize
();
}
}
...
...
@@ -3823,7 +3851,7 @@ public class BasicTreeUI extends TreeUI
if
(
treeState
!=
null
&&
e
!=
null
)
{
treeState
.
treeNodesInserted
(
e
);
updateLeadRow
();
updateLead
Selection
Row
();
TreePath
path
=
e
.
getTreePath
();
...
...
@@ -3848,7 +3876,7 @@ public class BasicTreeUI extends TreeUI
if
(
treeState
!=
null
&&
e
!=
null
)
{
treeState
.
treeNodesRemoved
(
e
);
updateLeadRow
();
updateLead
Selection
Row
();
TreePath
path
=
e
.
getTreePath
();
...
...
@@ -3862,7 +3890,7 @@ public class BasicTreeUI extends TreeUI
if
(
treeState
!=
null
&&
e
!=
null
)
{
treeState
.
treeStructureChanged
(
e
);
updateLeadRow
();
updateLead
Selection
Row
();
TreePath
pPath
=
e
.
getTreePath
();
...
...
src/share/classes/javax/swing/plaf/basic/DefaultMenuLayout.java
浏览文件 @
49d9d970
...
...
@@ -34,7 +34,7 @@ import java.awt.Dimension;
/**
* The default layout manager for Popup menus and menubars. This
* class is an extension of BoxLayout which adds the UIResource tag
* so that pl
a
uggable L&Fs can distinguish it from user-installed
* so that pluggable L&Fs can distinguish it from user-installed
* layout managers on menus.
*
* @author Georges Saab
...
...
src/share/classes/javax/swing/plaf/nimbus/NimbusLookAndFeel.java
浏览文件 @
49d9d970
...
...
@@ -257,12 +257,40 @@ public class NimbusLookAndFeel extends SynthLookAndFeel {
/**
* @inheritDoc
* @return
true
* @return
{@code true}
*/
@Override
public
boolean
shouldUpdateStyleOnAncestorChanged
()
{
return
true
;
}
/**
* @inheritDoc
*
* <p>Overridden to return {@code true} when one of the following
* properties change:
* <ul>
* <li>{@code "Nimbus.Overrides"}
* <li>{@code "Nimbus.Overrides.InheritDefaults"}
* <li>{@code "JComponent.sizeVariant"}
* </ul>
*
* @since 1.7
*/
@Override
protected
boolean
shouldUpdateStyleOnEvent
(
PropertyChangeEvent
ev
)
{
String
eName
=
ev
.
getPropertyName
();
// Always update when overrides or size variant change
if
(
"Nimbus.Overrides"
==
eName
||
"Nimbus.Overrides.InheritDefaults"
==
eName
||
"JComponent.sizeVariant"
==
eName
)
{
return
true
;
}
return
super
.
shouldUpdateStyleOnEvent
(
ev
);
}
/**
* <p>Registers a third party component with the NimbusLookAndFeel.</p>
*
...
...
src/share/classes/javax/swing/plaf/nimbus/package.html
浏览文件 @
49d9d970
...
...
@@ -88,12 +88,11 @@ encouraged.
<p><strong>
Note:
</strong>
Most of the Swing API is
<em>
not
</em>
thread safe.
For details, see
<a
href=
"http://java.sun.com/docs/books/tutorial/uiswing/overview/threads.html"
target=
"_top"
>
Threads and Swing
</a>
,
<a
href=
"http://java.sun.com/docs/books/tutorial/uiswing/concurrency/index.html"
target=
"_top"
>
Concurrency in Swing
</a>
,
a section in
<em><a
href=
"http://java.sun.com/docs/books/tutorial/"
target=
"_top"
>
The Java Tutorial
</a></em>
.
target=
"_top"
>
The Java Tutorial
</a></em>
.
@since 1.7
@serial exclude
...
...
src/share/classes/javax/swing/plaf/synth/SynthBorder.java
浏览文件 @
49d9d970
...
...
@@ -29,7 +29,6 @@ import javax.swing.*;
import
javax.swing.text.JTextComponent
;
import
javax.swing.border.*
;
import
javax.swing.plaf.UIResource
;
import
sun.swing.plaf.synth.SynthUI
;
/**
* SynthBorder is a border that delegates to a Painter. The Insets
...
...
src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java
浏览文件 @
49d9d970
...
...
@@ -25,40 +25,49 @@
package
javax.swing.plaf.synth
;
import
java.awt.*
;
import
java.awt.event.*
;
import
java.io.Serializable
;
import
javax.swing.*
;
import
javax.swing.border.*
;
import
java.awt.*
;
import
java.awt.event.*
;
import
java.beans.*
;
import
javax.swing.plaf.*
;
import
javax.swing.plaf.basic.BasicButtonUI
;
import
javax.swing.plaf.basic.BasicHTML
;
import
javax.swing.text.View
;
import
sun.swing.plaf.synth.SynthUI
;
import
sun.swing.plaf.synth.DefaultSynthStyle
;
/**
* Synth's ButtonUI implementation.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JButton}.
*
* @author Scott Violet
* @since 1.7
*/
class
SynthButtonUI
extends
BasicButtonUI
implements
public
class
SynthButtonUI
extends
BasicButtonUI
implements
PropertyChangeListener
,
SynthUI
{
private
SynthStyle
style
;
/**
* Creates a new UI object for the given component.
*
* @param c component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
c
)
{
return
new
SynthButtonUI
();
}
/**
* @inheritDoc
*/
@Override
protected
void
installDefaults
(
AbstractButton
b
)
{
updateStyle
(
b
);
LookAndFeel
.
installProperty
(
b
,
"rolloverEnabled"
,
Boolean
.
TRUE
);
}
/**
* @inheritDoc
*/
@Override
protected
void
installListeners
(
AbstractButton
b
)
{
super
.
installListeners
(
b
);
b
.
addPropertyChangeListener
(
this
);
...
...
@@ -99,11 +108,19 @@ class SynthButtonUI extends BasicButtonUI implements
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallListeners
(
AbstractButton
b
)
{
super
.
uninstallListeners
(
b
);
b
.
removePropertyChangeListener
(
this
);
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallDefaults
(
AbstractButton
b
)
{
SynthContext
context
=
getContext
(
b
,
ENABLED
);
...
...
@@ -112,20 +129,20 @@ class SynthButtonUI extends BasicButtonUI implements
style
=
null
;
}
/**
* @inheritDoc
*/
@Override
public
SynthContext
getContext
(
JComponent
c
)
{
return
getContext
(
c
,
getComponentState
(
c
));
}
SynthContext
getContext
(
JComponent
c
,
int
state
)
{
Region
region
=
getRegion
(
c
);
Region
region
=
SynthLookAndFeel
.
getRegion
(
c
);
return
SynthContext
.
getContext
(
SynthContext
.
class
,
c
,
region
,
style
,
state
);
}
private
Region
getRegion
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getRegion
(
c
);
}
/**
* Returns the current state of the passed in <code>AbstractButton</code>.
*/
...
...
@@ -164,6 +181,10 @@ class SynthButtonUI extends BasicButtonUI implements
return
state
;
}
/**
* @inheritDoc
*/
@Override
public
int
getBaseline
(
JComponent
c
,
int
width
,
int
height
)
{
if
(
c
==
null
)
{
throw
new
NullPointerException
(
"Component must be non-null"
);
...
...
@@ -215,6 +236,10 @@ class SynthButtonUI extends BasicButtonUI implements
// Paint Methods
// ********************************
/**
* @inheritDoc
*/
@Override
public
void
update
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -224,6 +249,10 @@ class SynthButtonUI extends BasicButtonUI implements
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
paint
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -231,6 +260,12 @@ class SynthButtonUI extends BasicButtonUI implements
context
.
dispose
();
}
/**
* Paints the specified component.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
*/
protected
void
paint
(
SynthContext
context
,
Graphics
g
)
{
AbstractButton
b
=
(
AbstractButton
)
context
.
getComponent
();
...
...
@@ -253,19 +288,22 @@ class SynthButtonUI extends BasicButtonUI implements
}
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintButtonBorder
(
context
,
g
,
x
,
y
,
w
,
h
);
}
/**
* Returns the default icon. This should
NOT
callback
* Returns the default icon. This should
not
callback
* to the JComponent.
*
* @param b
AbstractB
utton the icon is associated with
* @param b
b
utton the icon is associated with
* @return default icon
*/
protected
Icon
getDefaultIcon
(
AbstractButton
b
)
{
SynthContext
context
=
getContext
(
b
);
Icon
icon
=
context
.
getStyle
().
getIcon
(
context
,
getPropertyPrefix
()
+
"icon"
);
...
...
@@ -274,7 +312,11 @@ class SynthButtonUI extends BasicButtonUI implements
}
/**
* Returns the Icon to use in painting the button.
* Returns the Icon to use for painting the button. The icon is chosen with
* respect to the current state of the button.
*
* @param b button the icon is associated with
* @return an icon
*/
protected
Icon
getIcon
(
AbstractButton
b
)
{
Icon
icon
=
b
.
getIcon
();
...
...
@@ -374,7 +416,7 @@ class SynthButtonUI extends BasicButtonUI implements
/**
* Returns the amount to shift the text/icon when painting.
*/
pr
otected
int
getTextShiftOffset
(
SynthContext
state
)
{
pr
ivate
int
getTextShiftOffset
(
SynthContext
state
)
{
AbstractButton
button
=
(
AbstractButton
)
state
.
getComponent
();
ButtonModel
model
=
button
.
getModel
();
...
...
@@ -389,6 +431,11 @@ class SynthButtonUI extends BasicButtonUI implements
// ********************************
// Layout Methods
// ********************************
/**
* @inheritDoc
*/
@Override
public
Dimension
getMinimumSize
(
JComponent
c
)
{
if
(
c
.
getComponentCount
()
>
0
&&
c
.
getLayout
()
!=
null
)
{
return
null
;
...
...
@@ -406,6 +453,10 @@ class SynthButtonUI extends BasicButtonUI implements
return
size
;
}
/**
* @inheritDoc
*/
@Override
public
Dimension
getPreferredSize
(
JComponent
c
)
{
if
(
c
.
getComponentCount
()
>
0
&&
c
.
getLayout
()
!=
null
)
{
return
null
;
...
...
@@ -423,6 +474,10 @@ class SynthButtonUI extends BasicButtonUI implements
return
size
;
}
/**
* @inheritDoc
*/
@Override
public
Dimension
getMaximumSize
(
JComponent
c
)
{
if
(
c
.
getComponentCount
()
>
0
&&
c
.
getLayout
()
!=
null
)
{
return
null
;
...
...
@@ -442,7 +497,8 @@ class SynthButtonUI extends BasicButtonUI implements
}
/**
* Returns the Icon used in calculating the pref/min/max size.
* Returns the Icon used in calculating the
* preferred/minimum/maximum size.
*/
protected
Icon
getSizingIcon
(
AbstractButton
b
)
{
Icon
icon
=
getEnabledIcon
(
b
,
b
.
getIcon
());
...
...
@@ -452,6 +508,10 @@ class SynthButtonUI extends BasicButtonUI implements
return
icon
;
}
/**
* @inheritDoc
*/
@Override
public
void
propertyChange
(
PropertyChangeEvent
e
)
{
if
(
SynthLookAndFeel
.
shouldUpdateStyle
(
e
))
{
updateStyle
((
AbstractButton
)
e
.
getSource
());
...
...
src/share/classes/javax/swing/plaf/synth/SynthCheckBoxMenuItemUI.java
浏览文件 @
49d9d970
...
...
@@ -27,56 +27,50 @@ package javax.swing.plaf.synth;
import
java.awt.*
;
import
java.awt.event.*
;
import
javax.swing.*
;
import
javax.swing.plaf.*
;
import
javax.swing.border.*
;
import
java.io.Serializable
;
/**
* Synth's CheckBoxMenuItemUI.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JCheckBoxMenuItem}.
*
* @author Leif Samuelsson
* @author Georges Saab
* @author David Karlton
* @author Arnaud Weber
* @since 1.7
*/
class
SynthCheckBoxMenuItemUI
extends
SynthMenuItemUI
{
public
class
SynthCheckBoxMenuItemUI
extends
SynthMenuItemUI
{
/**
* Creates a new UI object for the given component.
*
* @param c component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
c
)
{
return
new
SynthCheckBoxMenuItemUI
();
}
/**
* @inheritDoc
*/
@Override
protected
String
getPropertyPrefix
()
{
return
"CheckBoxMenuItem"
;
}
public
void
processMouseEvent
(
JMenuItem
item
,
MouseEvent
e
,
MenuElement
path
[],
MenuSelectionManager
manager
)
{
Point
p
=
e
.
getPoint
();
if
(
p
.
x
>=
0
&&
p
.
x
<
item
.
getWidth
()
&&
p
.
y
>=
0
&&
p
.
y
<
item
.
getHeight
())
{
if
(
e
.
getID
()
==
MouseEvent
.
MOUSE_RELEASED
)
{
manager
.
clearSelectedPath
();
item
.
doClick
(
0
);
}
else
{
manager
.
setSelectedPath
(
path
);
}
}
else
if
(
item
.
getModel
().
isArmed
())
{
int
c
=
path
.
length
-
1
;
MenuElement
newPath
[]
=
new
MenuElement
[
c
];
for
(
int
i
=
0
;
i
<
c
;
i
++)
{
newPath
[
i
]
=
path
[
i
];
}
manager
.
setSelectedPath
(
newPath
);
}
}
@Override
void
paintBackground
(
SynthContext
context
,
Graphics
g
,
JComponent
c
)
{
context
.
getPainter
().
paintCheckBoxMenuItemBackground
(
context
,
g
,
0
,
0
,
c
.
getWidth
(),
c
.
getHeight
());
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintCheckBoxMenuItemBorder
(
context
,
g
,
x
,
y
,
w
,
h
);
...
...
src/share/classes/javax/swing/plaf/synth/SynthCheckBoxUI.java
浏览文件 @
49d9d970
...
...
@@ -25,36 +25,51 @@
package
javax.swing.plaf.synth
;
import
javax.swing.*
;
import
java.awt.*
;
import
java.awt.event.*
;
import
javax.swing.plaf.*
;
import
java.io.Serializable
;
import
javax.swing.JComponent
;
import
java.awt.Graphics
;
import
javax.swing.plaf.ComponentUI
;
/**
* Synth's CheckBoxUI.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JCheckBox}.
*
* @author Jeff Dinkins
* @since 1.7
*/
class
SynthCheckBoxUI
extends
SynthRadioButtonUI
{
public
class
SynthCheckBoxUI
extends
SynthRadioButtonUI
{
// ********************************
// Create PLAF
// ********************************
/**
* Creates a new UI object for the given component.
*
* @param b component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
b
)
{
return
new
SynthCheckBoxUI
();
}
/**
* @inheritDoc
*/
@Override
protected
String
getPropertyPrefix
()
{
return
"CheckBox."
;
}
@Override
void
paintBackground
(
SynthContext
context
,
Graphics
g
,
JComponent
c
)
{
context
.
getPainter
().
paintCheckBoxBackground
(
context
,
g
,
0
,
0
,
c
.
getWidth
(),
c
.
getHeight
());
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintCheckBoxBorder
(
context
,
g
,
x
,
y
,
w
,
h
);
...
...
src/share/classes/javax/swing/plaf/synth/SynthColorChooserUI.java
浏览文件 @
49d9d970
...
...
@@ -28,34 +28,39 @@ package javax.swing.plaf.synth;
import
javax.swing.*
;
import
javax.swing.colorchooser.*
;
import
javax.swing.event.*
;
import
javax.swing.border.*
;
import
javax.swing.plaf.*
;
import
javax.swing.plaf.basic.BasicColorChooserUI
;
import
java.util.*
;
import
java.awt.*
;
import
java.awt.image.*
;
import
java.awt.event.*
;
import
java.beans.PropertyChangeEvent
;
import
java.beans.PropertyChangeListener
;
import
java.io.Serializable
;
import
sun.swing.plaf.synth.SynthUI
;
/**
* Synth's ColorChooserUI.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JColorChooser}.
*
* @author Tom Santos
* @author Steve Wilson
* @since 1.7
*/
class
SynthColorChooserUI
extends
BasicColorChooserUI
implements
public
class
SynthColorChooserUI
extends
BasicColorChooserUI
implements
PropertyChangeListener
,
SynthUI
{
private
SynthStyle
style
;
/**
* Creates a new UI object for the given component.
*
* @param c component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
c
)
{
return
new
SynthColorChooserUI
();
}
/**
* @inheritDoc
*/
@Override
protected
AbstractColorChooserPanel
[]
createDefaultChoosers
()
{
SynthContext
context
=
getContext
(
chooser
,
ENABLED
);
AbstractColorChooserPanel
[]
panels
=
(
AbstractColorChooserPanel
[])
...
...
@@ -68,6 +73,10 @@ class SynthColorChooserUI extends BasicColorChooserUI implements
return
panels
;
}
/**
* @inheritDoc
*/
@Override
protected
void
installDefaults
()
{
super
.
installDefaults
();
updateStyle
(
chooser
);
...
...
@@ -79,6 +88,10 @@ class SynthColorChooserUI extends BasicColorChooserUI implements
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallDefaults
()
{
SynthContext
context
=
getContext
(
chooser
,
ENABLED
);
...
...
@@ -88,16 +101,28 @@ class SynthColorChooserUI extends BasicColorChooserUI implements
super
.
uninstallDefaults
();
}
/**
* @inheritDoc
*/
@Override
protected
void
installListeners
()
{
super
.
installListeners
();
chooser
.
addPropertyChangeListener
(
this
);
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallListeners
()
{
chooser
.
removePropertyChangeListener
(
this
);
super
.
uninstallListeners
();
}
/**
* @inheritDoc
*/
@Override
public
SynthContext
getContext
(
JComponent
c
)
{
return
getContext
(
c
,
getComponentState
(
c
));
}
...
...
@@ -107,14 +132,14 @@ class SynthColorChooserUI extends BasicColorChooserUI implements
SynthLookAndFeel
.
getRegion
(
c
),
style
,
state
);
}
private
Region
getRegion
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getRegion
(
c
);
}
private
int
getComponentState
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getComponentState
(
c
);
}
/**
* @inheritDoc
*/
@Override
public
void
update
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -125,6 +150,10 @@ class SynthColorChooserUI extends BasicColorChooserUI implements
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
paint
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -132,14 +161,29 @@ class SynthColorChooserUI extends BasicColorChooserUI implements
context
.
dispose
();
}
/**
* Paints the specified component.
* This implementation does not perform any actions.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
*/
protected
void
paint
(
SynthContext
context
,
Graphics
g
)
{
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintColorChooserBorder
(
context
,
g
,
x
,
y
,
w
,
h
);
}
/**
* @inheritDoc
*/
@Override
public
void
propertyChange
(
PropertyChangeEvent
e
)
{
if
(
SynthLookAndFeel
.
shouldUpdateStyle
(
e
))
{
updateStyle
((
JColorChooser
)
e
.
getSource
());
...
...
src/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java
浏览文件 @
49d9d970
...
...
@@ -27,21 +27,21 @@ package javax.swing.plaf.synth;
import
java.awt.*
;
import
java.awt.event.*
;
import
java.lang.reflect.*
;
import
javax.swing.*
;
import
javax.swing.plaf.*
;
import
javax.swing.event.*
;
import
javax.swing.plaf.basic.*
;
import
java.beans.PropertyChangeListener
;
import
java.beans.PropertyChangeEvent
;
import
sun.swing.plaf.synth.SynthUI
;
/**
* Synth's ComboBoxUI.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JComboBox}.
*
* @author Scott Violet
* @since 1.7
*/
class
SynthComboBoxUI
extends
BasicComboBoxUI
implements
public
class
SynthComboBoxUI
extends
BasicComboBoxUI
implements
PropertyChangeListener
,
SynthUI
{
private
SynthStyle
style
;
private
boolean
useListColors
;
...
...
@@ -93,12 +93,11 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
private
boolean
forceOpaque
=
false
;
/**
* NOTE: This serves the same purpose as the same field in BasicComboBoxUI.
* It is here because I could not give the padding field in
* BasicComboBoxUI protected access in an update release.
* Creates a new UI object for the given component.
*
* @param c component to create UI object for
* @return the UI object
*/
private
Insets
padding
;
public
static
ComponentUI
createUI
(
JComponent
c
)
{
return
new
SynthComboBoxUI
();
}
...
...
@@ -118,21 +117,6 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
@Override
protected
void
installDefaults
()
{
//NOTE: This next line of code was added because, since squareButton in
//BasicComboBoxUI is private, I need to have some way of reading it from UIManager.
//This is an incomplete solution (since it implies that squareButons,
//once set, cannot be reset per state. Probably ok, but not always ok).
//This line of code should be removed at the same time that squareButton
//is made protected in the super class.
super
.
installDefaults
();
//This is here instead of in updateStyle because the value for padding
//needs to remain consistent with the value for padding in
//BasicComboBoxUI. I wouldn't have this value here at all if not
//for the fact that I cannot make "padding" protected in any way
//for an update release. This *should* be fixed in Java 7
padding
=
UIManager
.
getInsets
(
"ComboBox.padding"
);
updateStyle
(
comboBox
);
}
...
...
@@ -142,6 +126,7 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
style
=
SynthLookAndFeel
.
updateStyle
(
context
,
this
);
if
(
style
!=
oldStyle
)
{
padding
=
(
Insets
)
style
.
get
(
context
,
"ComboBox.padding"
);
popupInsets
=
(
Insets
)
style
.
get
(
context
,
"ComboBox.popupInsets"
);
useListColors
=
style
.
getBoolean
(
context
,
"ComboBox.rendererUseListColors"
,
true
);
...
...
@@ -149,6 +134,8 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
"ComboBox.buttonWhenNotEditable"
,
false
);
pressedWhenPopupVisible
=
style
.
getBoolean
(
context
,
"ComboBox.pressedWhenPopupVisible"
,
false
);
squareButton
=
style
.
getBoolean
(
context
,
"ComboBox.squareButton"
,
true
);
if
(
oldStyle
!=
null
)
{
uninstallKeyboardActions
();
...
...
@@ -164,6 +151,9 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
}
}
/**
* @inheritDoc
*/
@Override
protected
void
installListeners
()
{
comboBox
.
addPropertyChangeListener
(
this
);
...
...
@@ -172,6 +162,9 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
super
.
installListeners
();
}
/**
* @inheritDoc
*/
@Override
public
void
uninstallUI
(
JComponent
c
)
{
if
(
popup
instanceof
SynthComboPopup
)
{
...
...
@@ -181,6 +174,9 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
buttonHandler
=
null
;
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallDefaults
()
{
SynthContext
context
=
getContext
(
comboBox
,
ENABLED
);
...
...
@@ -190,6 +186,9 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
style
=
null
;
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallListeners
()
{
editorFocusHandler
.
unregister
();
...
...
@@ -200,6 +199,9 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
super
.
uninstallListeners
();
}
/**
* @inheritDoc
*/
@Override
public
SynthContext
getContext
(
JComponent
c
)
{
return
getContext
(
c
,
getComponentState
(
c
));
...
...
@@ -210,10 +212,6 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
SynthLookAndFeel
.
getRegion
(
c
),
style
,
state
);
}
private
Region
getRegion
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getRegion
(
c
);
}
private
int
getComponentState
(
JComponent
c
)
{
// currently we have a broken situation where if a developer
// takes the border from a JComboBox and sets it on a JTextField
...
...
@@ -252,6 +250,9 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
}
}
/**
* @inheritDoc
*/
@Override
protected
ComboPopup
createPopup
()
{
SynthComboPopup
p
=
new
SynthComboPopup
(
comboBox
);
...
...
@@ -259,11 +260,17 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
return
p
;
}
/**
* @inheritDoc
*/
@Override
protected
ListCellRenderer
createRenderer
()
{
return
new
SynthComboBoxRenderer
();
}
/**
* @inheritDoc
*/
@Override
protected
ComboBoxEditor
createEditor
()
{
return
new
SynthComboBoxEditor
();
...
...
@@ -273,6 +280,9 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
// end UI Initialization
//======================
/**
* @inheritDoc
*/
@Override
public
void
propertyChange
(
PropertyChangeEvent
e
)
{
if
(
SynthLookAndFeel
.
shouldUpdateStyle
(
e
))
{
...
...
@@ -280,6 +290,9 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
}
}
/**
* @inheritDoc
*/
@Override
protected
JButton
createArrowButton
()
{
SynthArrowButton
button
=
new
SynthArrowButton
(
SwingConstants
.
SOUTH
);
...
...
@@ -291,6 +304,9 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
//=================================
// begin ComponentUI Implementation
/**
* @inheritDoc
*/
@Override
public
void
update
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -302,6 +318,9 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
paint
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -310,6 +329,12 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
context
.
dispose
();
}
/**
* Paints the specified component.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
*/
protected
void
paint
(
SynthContext
context
,
Graphics
g
)
{
hasFocus
=
comboBox
.
hasFocus
();
if
(
!
comboBox
.
isEditable
()
)
{
...
...
@@ -318,6 +343,9 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
}
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
...
...
@@ -375,7 +403,7 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
}
/**
* Return the default size of an empty display area of the combo box using
* Return
s
the default size of an empty display area of the combo box using
* the current renderer and font.
*
* This method was overridden to use SynthComboBoxRenderer instead of
...
...
@@ -393,23 +421,6 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
return
new
Dimension
(
d
.
width
,
d
.
height
);
}
/**
* This has been refactored out in hopes that it may be investigated and
* simplified for the next major release. adding/removing
* the component to the currentValuePane and changing the font may be
* redundant operations.
*
* NOTE: This method was copied in its entirety from BasicComboBoxUI. Might
* want to make it protected in BasicComboBoxUI in Java 7
*/
private
Dimension
getSizeForComponent
(
Component
comp
)
{
currentValuePane
.
add
(
comp
);
comp
.
setFont
(
comboBox
.
getFont
());
Dimension
d
=
comp
.
getPreferredSize
();
currentValuePane
.
remove
(
comp
);
return
d
;
}
/**
* From BasicComboBoxRenderer v 1.18.
*
...
...
@@ -478,85 +489,17 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
}
/**
* From BasicCombBoxEditor v 1.24.
*/
private
static
class
SynthComboBoxEditor
implements
ComboBoxEditor
,
UIResource
{
protected
JTextField
editor
;
private
Object
oldValue
;
public
SynthComboBoxEditor
()
{
editor
=
new
JTextField
(
""
,
9
);
editor
.
setName
(
"ComboBox.textField"
);
}
@Override
public
Component
getEditorComponent
()
{
return
editor
;
}
/**
* Sets the item that should be edited.
*
* @param anObject the displayed value of the editor
*/
@Override
public
void
setItem
(
Object
anObject
)
{
String
text
;
if
(
anObject
!=
null
)
{
text
=
anObject
.
toString
();
oldValue
=
anObject
;
}
else
{
text
=
""
;
}
// workaround for 4530952
if
(!
text
.
equals
(
editor
.
getText
()))
{
editor
.
setText
(
text
);
}
}
@Override
public
Object
getItem
()
{
Object
newValue
=
editor
.
getText
();
if
(
oldValue
!=
null
&&
!(
oldValue
instanceof
String
))
{
// The original value is not a string. Should return the value in it's
// original type.
if
(
newValue
.
equals
(
oldValue
.
toString
()))
{
return
oldValue
;
}
else
{
// Must take the value from the editor and get the value and cast it to the new type.
Class
<?>
cls
=
oldValue
.
getClass
();
try
{
Method
method
=
cls
.
getMethod
(
"valueOf"
,
new
Class
[]{
String
.
class
});
newValue
=
method
.
invoke
(
oldValue
,
new
Object
[]
{
editor
.
getText
()});
}
catch
(
Exception
ex
)
{
// Fail silently and return the newValue (a String object)
}
}
}
return
newValue
;
}
@Override
public
void
selectAll
()
{
editor
.
selectAll
();
editor
.
requestFocus
();
}
@Override
public
void
addActionListener
(
ActionListener
l
)
{
editor
.
addActionListener
(
l
);
}
private
static
class
SynthComboBoxEditor
extends
BasicComboBoxEditor
.
UIResource
{
@Override
public
void
removeActionListener
(
ActionListener
l
)
{
editor
.
removeActionListener
(
l
);
@Override
public
JTextField
createEditorComponent
()
{
JTextField
f
=
new
JTextField
(
""
,
9
);
f
.
setName
(
"ComboBox.textField"
);
return
f
;
}
}
/**
* Handles all the logic for treating the combo as a button when it is
* not editable, and when shouldActLikeButton() is true. This class is a
...
...
@@ -620,7 +563,7 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
//------------------------------------------------------------------
/**
*
{@inheritDoc}
*
@inheritDoc
*
* Ensures that isPressed() will return true if the combo is pressed,
* or the arrowButton is pressed, <em>or</em> if the combo popup is
...
...
@@ -634,7 +577,7 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
}
/**
*
{@inheritDoc}
*
@inheritDoc
*
* Ensures that the armed state is in sync with the pressed state
* if shouldActLikeButton is true. Without this method, the arrow
...
...
@@ -649,7 +592,7 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
}
/**
*
{@inheritDoc}
*
@inheritDoc
*
* Ensures that isRollover() will return true if the combo is
* rolled over, or the arrowButton is rolled over.
...
...
@@ -660,7 +603,7 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
}
/**
*
{@inheritDoc}
*
@inheritDoc
*
* Forwards pressed states to the internal "pressed" field
*/
...
...
@@ -671,7 +614,7 @@ class SynthComboBoxUI extends BasicComboBoxUI implements
}
/**
*
{@inheritDoc}
*
@inheritDoc
*
* Forwards rollover states to the internal "over" field
*/
...
...
src/share/classes/javax/swing/plaf/synth/SynthDefaultLookup.java
浏览文件 @
49d9d970
...
...
@@ -27,7 +27,6 @@ package javax.swing.plaf.synth;
import
sun.swing.DefaultLookup
;
import
javax.swing.JComponent
;
import
javax.swing.plaf.ComponentUI
;
import
sun.swing.plaf.synth.SynthUI
;
/**
* SynthDefaultLookup redirects all lookup calls to the SynthContext.
...
...
src/share/classes/javax/swing/plaf/synth/SynthDesktopIconUI.java
浏览文件 @
49d9d970
...
...
@@ -28,36 +28,44 @@ package javax.swing.plaf.synth;
import
java.awt.*
;
import
java.awt.event.*
;
import
javax.swing.*
;
import
javax.swing.event.*
;
import
javax.swing.border.*
;
import
javax.swing.plaf.*
;
import
javax.swing.plaf.basic.BasicDesktopIconUI
;
import
java.beans.*
;
import
java.io.Serializable
;
import
sun.swing.plaf.synth.SynthUI
;
/**
*
Synth L&F for a minimized window
on a desktop.
*
Provides the Synth L&F UI delegate for a minimized internal frame
on a desktop.
*
* @author Joshua Outwater
* @since 1.7
*/
class
SynthDesktopIconUI
extends
BasicDesktopIconUI
implements
SynthUI
,
ActionListener
,
PropertyChangeListener
{
public
class
SynthDesktopIconUI
extends
BasicDesktopIconUI
implements
SynthUI
,
PropertyChangeListener
{
private
SynthStyle
style
;
private
Handler
handler
=
new
Handler
();
/**
* Creates a new UI object for the given component.
*
* @param c component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
c
)
{
return
new
SynthDesktopIconUI
();
}
/**
* @inheritDoc
*/
@Override
protected
void
installComponents
()
{
if
(
UIManager
.
getBoolean
(
"InternalFrame.useTaskBar"
))
{
iconPane
=
new
JToggleButton
(
frame
.
getTitle
(),
frame
.
getFrameIcon
())
{
public
String
getToolTipText
()
{
@Override
public
String
getToolTipText
()
{
return
getText
();
}
public
JPopupMenu
getComponentPopupMenu
()
{
@Override
public
JPopupMenu
getComponentPopupMenu
()
{
return
frame
.
getComponentPopupMenu
();
}
};
...
...
@@ -73,24 +81,37 @@ class SynthDesktopIconUI extends BasicDesktopIconUI implements SynthUI,
desktopIcon
.
add
(
iconPane
,
BorderLayout
.
CENTER
);
}
/**
* @inheritDoc
*/
@Override
protected
void
installListeners
()
{
super
.
installListeners
();
desktopIcon
.
addPropertyChangeListener
(
this
);
if
(
iconPane
instanceof
JToggleButton
)
{
frame
.
addPropertyChangeListener
(
this
);
((
JToggleButton
)
iconPane
).
addActionListener
(
this
);
((
JToggleButton
)
iconPane
).
addActionListener
(
handler
);
}
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallListeners
()
{
if
(
iconPane
instanceof
JToggleButton
)
{
((
JToggleButton
)
iconPane
).
removeActionListener
(
handler
);
frame
.
removePropertyChangeListener
(
this
);
}
desktopIcon
.
removePropertyChangeListener
(
this
);
super
.
uninstallListeners
();
}
/**
* @inheritDoc
*/
@Override
protected
void
installDefaults
()
{
updateStyle
(
desktopIcon
);
}
...
...
@@ -101,6 +122,10 @@ class SynthDesktopIconUI extends BasicDesktopIconUI implements SynthUI,
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallDefaults
()
{
SynthContext
context
=
getContext
(
desktopIcon
,
ENABLED
);
style
.
uninstallDefaults
(
context
);
...
...
@@ -108,12 +133,16 @@ class SynthDesktopIconUI extends BasicDesktopIconUI implements SynthUI,
style
=
null
;
}
/**
* @inheritDoc
*/
@Override
public
SynthContext
getContext
(
JComponent
c
)
{
return
getContext
(
c
,
getComponentState
(
c
));
}
private
SynthContext
getContext
(
JComponent
c
,
int
state
)
{
Region
region
=
getRegion
(
c
);
Region
region
=
SynthLookAndFeel
.
getRegion
(
c
);
return
SynthContext
.
getContext
(
SynthContext
.
class
,
c
,
region
,
style
,
state
);
}
...
...
@@ -122,10 +151,10 @@ class SynthDesktopIconUI extends BasicDesktopIconUI implements SynthUI,
return
SynthLookAndFeel
.
getComponentState
(
c
);
}
Region
getRegion
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getRegion
(
c
);
}
/**
* @inheritDoc
*/
@Override
public
void
update
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -136,6 +165,10 @@ class SynthDesktopIconUI extends BasicDesktopIconUI implements SynthUI,
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
paint
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -143,33 +176,24 @@ class SynthDesktopIconUI extends BasicDesktopIconUI implements SynthUI,
context
.
dispose
();
}
/**
* Paints the specified component. This implementation does nothing.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
*/
protected
void
paint
(
SynthContext
context
,
Graphics
g
)
{
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintDesktopIconBorder
(
context
,
g
,
x
,
y
,
w
,
h
);
}
public
void
actionPerformed
(
ActionEvent
evt
)
{
if
(
evt
.
getSource
()
instanceof
JToggleButton
)
{
// Either iconify the frame or deiconify and activate it.
JToggleButton
button
=
(
JToggleButton
)
evt
.
getSource
();
try
{
boolean
selected
=
button
.
isSelected
();
if
(!
selected
&&
!
frame
.
isIconifiable
())
{
button
.
setSelected
(
true
);
}
else
{
frame
.
setIcon
(!
selected
);
if
(
selected
)
{
frame
.
setSelected
(
true
);
}
}
}
catch
(
PropertyVetoException
e2
)
{
}
}
}
public
void
propertyChange
(
PropertyChangeEvent
evt
)
{
if
(
evt
.
getSource
()
instanceof
JInternalFrame
.
JDesktopIcon
)
{
if
(
SynthLookAndFeel
.
shouldUpdateStyle
(
evt
))
{
...
...
@@ -191,4 +215,25 @@ class SynthDesktopIconUI extends BasicDesktopIconUI implements SynthUI,
}
}
}
private
final
class
Handler
implements
ActionListener
{
public
void
actionPerformed
(
ActionEvent
evt
)
{
if
(
evt
.
getSource
()
instanceof
JToggleButton
)
{
// Either iconify the frame or deiconify and activate it.
JToggleButton
button
=
(
JToggleButton
)
evt
.
getSource
();
try
{
boolean
selected
=
button
.
isSelected
();
if
(!
selected
&&
!
frame
.
isIconifiable
())
{
button
.
setSelected
(
true
);
}
else
{
frame
.
setIcon
(!
selected
);
if
(
selected
)
{
frame
.
setSelected
(
true
);
}
}
}
catch
(
PropertyVetoException
e2
)
{
}
}
}
}
}
src/share/classes/javax/swing/plaf/synth/SynthDesktopPaneUI.java
浏览文件 @
49d9d970
...
...
@@ -29,34 +29,38 @@ import javax.swing.*;
import
javax.swing.border.*
;
import
javax.swing.plaf.*
;
import
javax.swing.plaf.basic.BasicDesktopPaneUI
;
import
java.beans.*
;
import
java.awt.event.*
;
import
java.awt.Dimension
;
import
java.awt.Insets
;
import
java.awt.Graphics
;
import
java.awt.KeyboardFocusManager
;
import
java.awt.*
;
import
java.util.Vector
;
import
sun.swing.plaf.synth.SynthUI
;
/**
* Synth L&F for a desktop.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JDesktopPane}.
*
* @author Joshua Outwater
* @author Steve Wilson
* @since 1.7
*/
class
SynthDesktopPaneUI
extends
BasicDesktopPaneUI
implements
public
class
SynthDesktopPaneUI
extends
BasicDesktopPaneUI
implements
PropertyChangeListener
,
SynthUI
{
private
SynthStyle
style
;
private
TaskBar
taskBar
;
private
DesktopManager
oldDesktopManager
;
/**
* Creates a new UI object for the given component.
*
* @param c component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
c
)
{
return
new
SynthDesktopPaneUI
();
}
/**
* @inheritDoc
*/
@Override
protected
void
installListeners
()
{
super
.
installListeners
();
desktop
.
addPropertyChangeListener
(
this
);
...
...
@@ -68,6 +72,10 @@ class SynthDesktopPaneUI extends BasicDesktopPaneUI implements
}
}
/**
* @inheritDoc
*/
@Override
protected
void
installDefaults
()
{
updateStyle
(
desktop
);
...
...
@@ -114,6 +122,10 @@ class SynthDesktopPaneUI extends BasicDesktopPaneUI implements
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallListeners
()
{
if
(
taskBar
!=
null
)
{
desktop
.
removeComponentListener
(
taskBar
);
...
...
@@ -123,6 +135,10 @@ class SynthDesktopPaneUI extends BasicDesktopPaneUI implements
super
.
uninstallListeners
();
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallDefaults
()
{
SynthContext
context
=
getContext
(
desktop
,
ENABLED
);
...
...
@@ -147,6 +163,10 @@ class SynthDesktopPaneUI extends BasicDesktopPaneUI implements
}
}
/**
* @inheritDoc
*/
@Override
protected
void
installDesktopManager
()
{
if
(
UIManager
.
getBoolean
(
"InternalFrame.useTaskBar"
))
{
desktopManager
=
oldDesktopManager
=
desktop
.
getDesktopManager
();
...
...
@@ -159,6 +179,10 @@ class SynthDesktopPaneUI extends BasicDesktopPaneUI implements
}
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallDesktopManager
()
{
if
(
oldDesktopManager
!=
null
&&
!(
oldDesktopManager
instanceof
UIResource
))
{
desktopManager
=
desktop
.
getDesktopManager
();
...
...
@@ -397,7 +421,10 @@ class SynthDesktopPaneUI extends BasicDesktopPaneUI implements
}
}
/**
* @inheritDoc
*/
@Override
public
SynthContext
getContext
(
JComponent
c
)
{
return
getContext
(
c
,
getComponentState
(
c
));
}
...
...
@@ -407,14 +434,14 @@ class SynthDesktopPaneUI extends BasicDesktopPaneUI implements
SynthLookAndFeel
.
getRegion
(
c
),
style
,
state
);
}
private
Region
getRegion
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getRegion
(
c
);
}
private
int
getComponentState
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getComponentState
(
c
);
}
/**
* @inheritDoc
*/
@Override
public
void
update
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -425,6 +452,10 @@ class SynthDesktopPaneUI extends BasicDesktopPaneUI implements
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
paint
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -432,14 +463,28 @@ class SynthDesktopPaneUI extends BasicDesktopPaneUI implements
context
.
dispose
();
}
/**
* Paints the specified component. This implementation does nothing.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
*/
protected
void
paint
(
SynthContext
context
,
Graphics
g
)
{
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintDesktopPaneBorder
(
context
,
g
,
x
,
y
,
w
,
h
);
}
/**
* @inheritDoc
*/
@Override
public
void
propertyChange
(
PropertyChangeEvent
evt
)
{
if
(
SynthLookAndFeel
.
shouldUpdateStyle
(
evt
))
{
updateStyle
((
JDesktopPane
)
evt
.
getSource
());
...
...
src/share/classes/javax/swing/plaf/synth/SynthEditorPaneUI.java
浏览文件 @
49d9d970
...
...
@@ -31,47 +31,52 @@ import javax.swing.text.*;
import
javax.swing.plaf.*
;
import
javax.swing.plaf.basic.BasicEditorPaneUI
;
import
java.beans.PropertyChangeEvent
;
import
sun.swing.plaf.synth.SynthUI
;
/**
* Provides the
look and feel for a JEditorPane in the
*
Synth look and feel
.
* Provides the
Synth L&F UI delegate for
*
{@link javax.swing.JEditorPane}
.
*
* @author Shannon Hickey
* @since 1.7
*/
class
SynthEditorPaneUI
extends
BasicEditorPaneUI
implements
SynthUI
{
public
class
SynthEditorPaneUI
extends
BasicEditorPaneUI
implements
SynthUI
{
private
SynthStyle
style
;
/*
* I would prefer to use UIResource instad of this.
* Unfortunately Boolean is a final class
*/
private
Boolean
localTrue
=
Boolean
.
TRUE
;
private
Boolean
localFalse
=
Boolean
.
FALSE
;
/**
* Creates a
UI for the JTextPane
.
* Creates a
new UI object for the given component
.
*
* @param c
the JTextPane component
* @return the UI
* @param c
component to create UI object for
* @return the UI
object
*/
public
static
ComponentUI
createUI
(
JComponent
c
)
{
return
new
SynthEditorPaneUI
();
}
/**
* @inheritDoc
*/
@Override
protected
void
installDefaults
()
{
// Installs the text cursor on the component
super
.
installDefaults
();
JComponent
c
=
getComponent
();
Object
clientProperty
=
c
.
getClientProperty
(
JEditorPane
.
HONOR_DISPLAY_PROPERTIES
);
if
(
clientProperty
==
null
||
clientProperty
==
localFalse
)
{
c
.
putClientProperty
(
JEditorPane
.
HONOR_DISPLAY_PROPERTIES
,
localTrue
);
if
(
clientProperty
==
null
)
{
c
.
putClientProperty
(
JEditorPane
.
HONOR_DISPLAY_PROPERTIES
,
localTrue
);
}
updateStyle
(
getComponent
());
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallDefaults
()
{
SynthContext
context
=
getContext
(
getComponent
(),
ENABLED
);
JComponent
c
=
getComponent
();
...
...
@@ -84,7 +89,7 @@ class SynthEditorPaneUI extends BasicEditorPaneUI implements SynthUI {
Object
clientProperty
=
c
.
getClientProperty
(
JEditorPane
.
HONOR_DISPLAY_PROPERTIES
);
if
(
clientProperty
==
localTrue
)
{
getComponent
()
.
putClientProperty
(
JEditorPane
.
HONOR_DISPLAY_PROPERTIES
,
c
.
putClientProperty
(
JEditorPane
.
HONOR_DISPLAY_PROPERTIES
,
Boolean
.
FALSE
);
}
super
.
uninstallDefaults
();
...
...
@@ -100,6 +105,7 @@ class SynthEditorPaneUI extends BasicEditorPaneUI implements SynthUI {
*
* @param evt the property change event
*/
@Override
protected
void
propertyChange
(
PropertyChangeEvent
evt
)
{
if
(
SynthLookAndFeel
.
shouldUpdateStyle
(
evt
))
{
updateStyle
((
JTextComponent
)
evt
.
getSource
());
...
...
@@ -124,6 +130,10 @@ class SynthEditorPaneUI extends BasicEditorPaneUI implements SynthUI {
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
SynthContext
getContext
(
JComponent
c
)
{
return
getContext
(
c
,
getComponentState
(
c
));
}
...
...
@@ -137,6 +147,10 @@ class SynthEditorPaneUI extends BasicEditorPaneUI implements SynthUI {
return
SynthLookAndFeel
.
getComponentState
(
c
);
}
/**
* @inheritDoc
*/
@Override
public
void
update
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -146,10 +160,20 @@ class SynthEditorPaneUI extends BasicEditorPaneUI implements SynthUI {
context
.
dispose
();
}
/**
* Paints the specified component.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
*/
protected
void
paint
(
SynthContext
context
,
Graphics
g
)
{
super
.
paint
(
g
,
getComponent
());
}
/**
* @inheritDoc
*/
@Override
protected
void
paintBackground
(
Graphics
g
)
{
// Overriden to do nothing, all our painting is done from update/paint.
}
...
...
@@ -159,6 +183,10 @@ class SynthEditorPaneUI extends BasicEditorPaneUI implements SynthUI {
c
.
getWidth
(),
c
.
getHeight
());
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintEditorPaneBorder
(
context
,
g
,
x
,
y
,
w
,
h
);
...
...
src/share/classes/javax/swing/plaf/synth/SynthFormattedTextFieldUI.java
浏览文件 @
49d9d970
...
...
@@ -24,16 +24,17 @@
*/
package
javax.swing.plaf.synth
;
import
java.awt.
*
;
import
javax.swing.
*
;
import
java.awt.
Graphics
;
import
javax.swing.
JComponent
;
import
javax.swing.plaf.ComponentUI
;
/**
* Provides the
look and feel implementation
for
*
<code>JFormattedTextField</code>
.
* Provides the
Synth L&F UI delegate
for
*
{@link javax.swing.JFormattedTextField}
.
*
* @since 1.7
*/
class
SynthFormattedTextFieldUI
extends
SynthTextFieldUI
{
public
class
SynthFormattedTextFieldUI
extends
SynthTextFieldUI
{
/**
* Creates a UI for a JFormattedTextField.
*
...
...
@@ -51,15 +52,24 @@ class SynthFormattedTextFieldUI extends SynthTextFieldUI {
*
* @return the name "FormattedTextField"
*/
@Override
protected
String
getPropertyPrefix
()
{
return
"FormattedTextField"
;
}
/**
* @inheritDoc
*/
@Override
void
paintBackground
(
SynthContext
context
,
Graphics
g
,
JComponent
c
)
{
context
.
getPainter
().
paintFormattedTextFieldBackground
(
context
,
g
,
0
,
0
,
c
.
getWidth
(),
c
.
getHeight
());
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintFormattedTextFieldBorder
(
context
,
g
,
x
,
y
,
...
...
src/share/classes/javax/swing/plaf/synth/SynthInternalFrameTitlePane.java
浏览文件 @
49d9d970
...
...
@@ -30,14 +30,9 @@ import java.awt.event.*;
import
javax.swing.*
;
import
javax.swing.plaf.*
;
import
javax.swing.plaf.basic.BasicInternalFrameTitlePane
;
import
javax.swing.border.*
;
import
javax.swing.event.InternalFrameEvent
;
import
java.util.EventListener
;
import
java.beans.PropertyChangeListener
;
import
java.beans.PropertyChangeEvent
;
import
java.beans.VetoableChangeListener
;
import
java.beans.PropertyVetoException
;
import
sun.swing.plaf.synth.SynthUI
;
import
sun.swing.SwingUtilities2
;
/**
...
...
src/share/classes/javax/swing/plaf/synth/SynthInternalFrameUI.java
浏览文件 @
49d9d970
...
...
@@ -27,52 +27,61 @@ package javax.swing.plaf.synth;
import
java.awt.*
;
import
java.awt.event.*
;
import
java.awt.peer.LightweightPeer
;
import
javax.swing.*
;
import
javax.swing.plaf.*
;
import
javax.swing.plaf.basic.BasicInternalFrameUI
;
import
javax.swing.event.*
;
import
java.beans.*
;
import
java.io.Serializable
;
import
sun.swing.plaf.synth.SynthUI
;
/**
* Synth's InternalFrameUI.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JInternalFrame}.
*
* @author David Kloba
* @author Joshua Outwater
* @author Rich Schiavi
* @since 1.7
*/
class
SynthInternalFrameUI
extends
BasicInternalFrameUI
implements
SynthUI
,
PropertyChangeListener
{
public
class
SynthInternalFrameUI
extends
BasicInternalFrameUI
implements
SynthUI
,
PropertyChangeListener
{
private
SynthStyle
style
;
private
static
DesktopManager
sharedDesktopManager
;
private
boolean
componentListenerAdded
=
false
;
private
Rectangle
parentBounds
;
/**
* Creates a new UI object for the given component.
*
* @param b component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
b
)
{
return
new
SynthInternalFrameUI
((
JInternalFrame
)
b
);
}
p
ublic
SynthInternalFrameUI
(
JInternalFrame
b
)
{
p
rotected
SynthInternalFrameUI
(
JInternalFrame
b
)
{
super
(
b
);
}
/**
* @inheritDoc
*/
@Override
public
void
installDefaults
()
{
frame
.
setLayout
(
internalFrameLayout
=
createLayoutManager
());
updateStyle
(
frame
);
}
/**
* @inheritDoc
*/
@Override
protected
void
installListeners
()
{
super
.
installListeners
();
frame
.
addPropertyChangeListener
(
this
);
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallComponents
()
{
if
(
frame
.
getComponentPopupMenu
()
instanceof
UIResource
)
{
frame
.
setComponentPopupMenu
(
null
);
...
...
@@ -80,6 +89,10 @@ class SynthInternalFrameUI extends BasicInternalFrameUI implements SynthUI,
super
.
uninstallComponents
();
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallListeners
()
{
frame
.
removePropertyChangeListener
(
this
);
super
.
uninstallListeners
();
...
...
@@ -104,6 +117,10 @@ class SynthInternalFrameUI extends BasicInternalFrameUI implements SynthUI,
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallDefaults
()
{
SynthContext
context
=
getContext
(
frame
,
ENABLED
);
style
.
uninstallDefaults
(
context
);
...
...
@@ -115,6 +132,10 @@ class SynthInternalFrameUI extends BasicInternalFrameUI implements SynthUI,
}
/**
* @inheritDoc
*/
@Override
public
SynthContext
getContext
(
JComponent
c
)
{
return
getContext
(
c
,
getComponentState
(
c
));
}
...
...
@@ -124,24 +145,28 @@ class SynthInternalFrameUI extends BasicInternalFrameUI implements SynthUI,
SynthLookAndFeel
.
getRegion
(
c
),
style
,
state
);
}
private
Region
getRegion
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getRegion
(
c
);
}
public
int
getComponentState
(
JComponent
c
)
{
private
int
getComponentState
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getComponentState
(
c
);
}
/**
* @inheritDoc
*/
@Override
protected
JComponent
createNorthPane
(
JInternalFrame
w
)
{
titlePane
=
new
SynthInternalFrameTitlePane
(
w
);
titlePane
.
setName
(
"InternalFrame.northPane"
);
return
titlePane
;
}
/**
* @inheritDoc
*/
@Override
protected
ComponentListener
createComponentListener
()
{
if
(
UIManager
.
getBoolean
(
"InternalFrame.useTaskBar"
))
{
return
new
ComponentHandler
()
{
public
void
componentResized
(
ComponentEvent
e
)
{
@Override
public
void
componentResized
(
ComponentEvent
e
)
{
if
(
frame
!=
null
&&
frame
.
isMaximum
())
{
JDesktopPane
desktop
=
(
JDesktopPane
)
e
.
getSource
();
for
(
Component
comp
:
desktop
.
getComponents
())
{
...
...
@@ -168,6 +193,10 @@ class SynthInternalFrameUI extends BasicInternalFrameUI implements SynthUI,
}
}
/**
* @inheritDoc
*/
@Override
public
void
update
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -178,6 +207,10 @@ class SynthInternalFrameUI extends BasicInternalFrameUI implements SynthUI,
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
paint
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -185,15 +218,29 @@ class SynthInternalFrameUI extends BasicInternalFrameUI implements SynthUI,
context
.
dispose
();
}
/**
* Paints the specified component. This implementation does nothing.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
*/
protected
void
paint
(
SynthContext
context
,
Graphics
g
)
{
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintInternalFrameBorder
(
context
,
g
,
x
,
y
,
w
,
h
);
}
/**
* @inheritDoc
*/
@Override
public
void
propertyChange
(
PropertyChangeEvent
evt
)
{
SynthStyle
oldStyle
=
style
;
JInternalFrame
f
=
(
JInternalFrame
)
evt
.
getSource
();
...
...
src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java
浏览文件 @
49d9d970
...
...
@@ -29,38 +29,37 @@ import javax.swing.*;
import
javax.swing.plaf.*
;
import
javax.swing.plaf.basic.*
;
import
javax.swing.text.View
;
import
java.awt.event.ActionEvent
;
import
java.awt.event.ActionListener
;
import
java.awt.Component
;
import
java.awt.Container
;
import
java.awt.Dimension
;
import
java.awt.Rectangle
;
import
java.awt.Insets
;
import
java.awt.Color
;
import
java.awt.Graphics
;
import
java.awt.Font
;
import
java.awt.FontMetrics
;
import
java.beans.PropertyChangeEvent
;
import
java.beans.PropertyChangeListener
;
import
sun.swing.plaf.synth.SynthUI
;
/**
* Synth's LabelUI.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JLabel}.
*
* @author Scott Violet
* @since 1.7
*/
class
SynthLabelUI
extends
BasicLabelUI
implements
SynthUI
{
public
class
SynthLabelUI
extends
BasicLabelUI
implements
SynthUI
{
private
SynthStyle
style
;
/**
* Returns the LabelUI implementation used for the skins look and feel.
*
* @param c component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
c
){
return
new
SynthLabelUI
();
}
/**
* @inheritDoc
*/
@Override
protected
void
installDefaults
(
JLabel
c
)
{
updateStyle
(
c
);
}
...
...
@@ -71,6 +70,10 @@ class SynthLabelUI extends BasicLabelUI implements SynthUI {
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallDefaults
(
JLabel
c
){
SynthContext
context
=
getContext
(
c
,
ENABLED
);
...
...
@@ -79,6 +82,10 @@ class SynthLabelUI extends BasicLabelUI implements SynthUI {
style
=
null
;
}
/**
* @inheritDoc
*/
@Override
public
SynthContext
getContext
(
JComponent
c
)
{
return
getContext
(
c
,
getComponentState
(
c
));
}
...
...
@@ -88,10 +95,6 @@ class SynthLabelUI extends BasicLabelUI implements SynthUI {
SynthLookAndFeel
.
getRegion
(
c
),
style
,
state
);
}
private
Region
getRegion
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getRegion
(
c
);
}
private
int
getComponentState
(
JComponent
c
)
{
int
state
=
SynthLookAndFeel
.
getComponentState
(
c
);
if
(
SynthLookAndFeel
.
selectedUI
==
this
&&
...
...
@@ -101,6 +104,10 @@ class SynthLabelUI extends BasicLabelUI implements SynthUI {
return
state
;
}
/**
* @inheritDoc
*/
@Override
public
int
getBaseline
(
JComponent
c
,
int
width
,
int
height
)
{
if
(
c
==
null
)
{
throw
new
NullPointerException
(
"Component must be non-null"
);
...
...
@@ -153,6 +160,10 @@ class SynthLabelUI extends BasicLabelUI implements SynthUI {
* component. This method is invoked by <code>JComponent</code>
* when the specified component is being painted.
*/
/**
* @inheritDoc
*/
@Override
public
void
update
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -163,6 +174,10 @@ class SynthLabelUI extends BasicLabelUI implements SynthUI {
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
paint
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -170,6 +185,12 @@ class SynthLabelUI extends BasicLabelUI implements SynthUI {
context
.
dispose
();
}
/**
* Paints the specified component.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
*/
protected
void
paint
(
SynthContext
context
,
Graphics
g
)
{
JLabel
label
=
(
JLabel
)
context
.
getComponent
();
Icon
icon
=
(
label
.
isEnabled
())
?
label
.
getIcon
()
:
...
...
@@ -185,11 +206,19 @@ class SynthLabelUI extends BasicLabelUI implements SynthUI {
label
.
getIconTextGap
(),
label
.
getDisplayedMnemonicIndex
(),
0
);
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintLabelBorder
(
context
,
g
,
x
,
y
,
w
,
h
);
}
/**
* @inheritDoc
*/
@Override
public
Dimension
getPreferredSize
(
JComponent
c
)
{
JLabel
label
=
(
JLabel
)
c
;
Icon
icon
=
(
label
.
isEnabled
())
?
label
.
getIcon
()
:
...
...
@@ -207,7 +236,10 @@ class SynthLabelUI extends BasicLabelUI implements SynthUI {
return
size
;
}
/**
* @inheritDoc
*/
@Override
public
Dimension
getMinimumSize
(
JComponent
c
)
{
JLabel
label
=
(
JLabel
)
c
;
Icon
icon
=
(
label
.
isEnabled
())
?
label
.
getIcon
()
:
...
...
@@ -225,6 +257,10 @@ class SynthLabelUI extends BasicLabelUI implements SynthUI {
return
size
;
}
/**
* @inheritDoc
*/
@Override
public
Dimension
getMaximumSize
(
JComponent
c
)
{
JLabel
label
=
(
JLabel
)
c
;
Icon
icon
=
(
label
.
isEnabled
())
?
label
.
getIcon
()
:
...
...
@@ -242,7 +278,10 @@ class SynthLabelUI extends BasicLabelUI implements SynthUI {
return
size
;
}
/**
* @inheritDoc
*/
@Override
public
void
propertyChange
(
PropertyChangeEvent
e
)
{
super
.
propertyChange
(
e
);
if
(
SynthLookAndFeel
.
shouldUpdateStyle
(
e
))
{
...
...
src/share/classes/javax/swing/plaf/synth/SynthListUI.java
浏览文件 @
49d9d970
...
...
@@ -27,38 +27,39 @@ package javax.swing.plaf.synth;
import
javax.swing.*
;
import
javax.swing.border.*
;
import
javax.swing.event.*
;
import
javax.swing.plaf.*
;
import
javax.swing.plaf.basic.*
;
import
javax.swing.text.Position
;
import
java.awt.*
;
import
java.awt.event.*
;
import
java.awt.datatransfer.Transferable
;
import
java.awt.dnd.*
;
import
java.util.ArrayList
;
import
java.util.TooManyListenersException
;
import
java.beans.PropertyChangeListener
;
import
java.beans.PropertyChangeEvent
;
import
sun.swing.plaf.synth.SynthUI
;
/**
* Synth's ListUI.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JList}.
*
* @author Scott Violet
* @since 1.7
*/
class
SynthListUI
extends
BasicListUI
implements
PropertyChangeListener
,
SynthUI
{
public
class
SynthListUI
extends
BasicListUI
implements
PropertyChangeListener
,
SynthUI
{
private
SynthStyle
style
;
private
boolean
useListColors
;
private
boolean
useUIBorder
;
/**
* Creates a new UI object for the given component.
*
* @param list component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
list
)
{
return
new
SynthListUI
();
}
/**
* @inheritDoc
*/
@Override
public
void
update
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -69,27 +70,47 @@ class SynthListUI extends BasicListUI implements PropertyChangeListener,
paint
(
g
,
c
);
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintListBorder
(
context
,
g
,
x
,
y
,
w
,
h
);
}
/**
* @inheritDoc
*/
@Override
protected
void
installListeners
()
{
super
.
installListeners
();
list
.
addPropertyChangeListener
(
this
);
}
/**
* @inheritDoc
*/
@Override
public
void
propertyChange
(
PropertyChangeEvent
e
)
{
if
(
SynthLookAndFeel
.
shouldUpdateStyle
(
e
))
{
updateStyle
((
JList
)
e
.
getSource
());
}
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallListeners
()
{
super
.
uninstallListeners
();
list
.
removePropertyChangeListener
(
this
);
}
/**
* @inheritDoc
*/
@Override
protected
void
installDefaults
()
{
if
(
list
.
getCellRenderer
()
==
null
||
(
list
.
getCellRenderer
()
instanceof
UIResource
))
{
...
...
@@ -135,6 +156,10 @@ class SynthListUI extends BasicListUI implements PropertyChangeListener,
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallDefaults
()
{
super
.
uninstallDefaults
();
...
...
@@ -145,6 +170,10 @@ class SynthListUI extends BasicListUI implements PropertyChangeListener,
style
=
null
;
}
/**
* @inheritDoc
*/
@Override
public
SynthContext
getContext
(
JComponent
c
)
{
return
getContext
(
c
,
getComponentState
(
c
));
}
...
...
@@ -154,27 +183,23 @@ class SynthListUI extends BasicListUI implements PropertyChangeListener,
SynthLookAndFeel
.
getRegion
(
c
),
style
,
state
);
}
private
Region
getRegion
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getRegion
(
c
);
}
private
int
getComponentState
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getComponentState
(
c
);
}
private
class
SynthListCellRenderer
extends
DefaultListCellRenderer
.
UIResource
{
public
String
getName
()
{
@Override
public
String
getName
()
{
return
"List.cellRenderer"
;
}
public
void
setBorder
(
Border
b
)
{
@Override
public
void
setBorder
(
Border
b
)
{
if
(
useUIBorder
||
b
instanceof
SynthBorder
)
{
super
.
setBorder
(
b
);
}
}
public
Component
getListCellRendererComponent
(
JList
list
,
Object
value
,
@Override
public
Component
getListCellRendererComponent
(
JList
list
,
Object
value
,
int
index
,
boolean
isSelected
,
boolean
cellHasFocus
)
{
if
(!
useListColors
&&
(
isSelected
||
cellHasFocus
))
{
SynthLookAndFeel
.
setSelectedUI
((
SynthLabelUI
)
SynthLookAndFeel
.
...
...
@@ -190,7 +215,7 @@ class SynthListUI extends BasicListUI implements PropertyChangeListener,
return
this
;
}
public
void
paint
(
Graphics
g
)
{
@Override
public
void
paint
(
Graphics
g
)
{
super
.
paint
(
g
);
SynthLookAndFeel
.
resetSelectedUI
();
}
...
...
src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java
浏览文件 @
49d9d970
...
...
@@ -234,44 +234,9 @@ public class SynthLookAndFeel extends BasicLookAndFeel {
* <code>shouldUpdateStyleOnAncestorChanged</code> as necessary.
*/
static
boolean
shouldUpdateStyle
(
PropertyChangeEvent
event
)
{
String
eName
=
event
.
getPropertyName
();
if
(
"name"
==
eName
)
{
// Always update on a name change
return
true
;
}
else
if
(
"componentOrientation"
==
eName
)
{
// Always update on a component orientation change
return
true
;
}
else
if
(
"ancestor"
==
eName
&&
event
.
getNewValue
()
!=
null
)
{
// Only update on an ancestor change when getting a valid
// parent and the LookAndFeel wants this.
LookAndFeel
laf
=
UIManager
.
getLookAndFeel
();
return
(
laf
instanceof
SynthLookAndFeel
&&
((
SynthLookAndFeel
)
laf
).
shouldUpdateStyleOnAncestorChanged
());
}
// Note: The following two nimbus based overrides should be refactored
// to be in the Nimbus LAF. Due to constraints in an update release,
// we couldn't actually provide the public API necessary to allow
// NimbusLookAndFeel (a subclass of SynthLookAndFeel) to provide its
// own rules for shouldUpdateStyle.
else
if
(
"Nimbus.Overrides"
==
eName
)
{
// Always update when the Nimbus.Overrides client property has
// been changed
return
true
;
}
else
if
(
"Nimbus.Overrides.InheritDefaults"
==
eName
)
{
// Always update when the Nimbus.Overrides.InheritDefaults
// client property has changed
return
true
;
}
else
if
(
"JComponent.sizeVariant"
==
eName
)
{
// Always update when the JComponent.sizeVariant
// client property has changed
return
true
;
}
return
false
;
LookAndFeel
laf
=
UIManager
.
getLookAndFeel
();
return
(
laf
instanceof
SynthLookAndFeel
&&
((
SynthLookAndFeel
)
laf
).
shouldUpdateStyleOnEvent
(
event
));
}
/**
...
...
@@ -303,12 +268,6 @@ public class SynthLookAndFeel extends BasicLookAndFeel {
* @param c Component to update style for.
*/
public
static
void
updateStyles
(
Component
c
)
{
_updateStyles
(
c
);
c
.
repaint
();
}
// Implementation for updateStyles
private
static
void
_updateStyles
(
Component
c
)
{
if
(
c
instanceof
JComponent
)
{
// Yes, this is hacky. A better solution is to get the UI
// and cast, but JComponent doesn't expose a getter for the UI
...
...
@@ -332,6 +291,7 @@ public class SynthLookAndFeel extends BasicLookAndFeel {
updateStyles
(
child
);
}
}
c
.
repaint
();
}
/**
...
...
@@ -788,6 +748,27 @@ public class SynthLookAndFeel extends BasicLookAndFeel {
return
false
;
}
/**
* Returns whether or not the UIs should update their styles when a
* particular event occurs.
*
* @param ev a {@code PropertyChangeEvent}
* @return whether or not the UIs should update their styles
* @since 1.7
*/
protected
boolean
shouldUpdateStyleOnEvent
(
PropertyChangeEvent
ev
)
{
String
eName
=
ev
.
getPropertyName
();
if
(
"name"
==
eName
||
"componentOrientation"
==
eName
)
{
return
true
;
}
if
(
"ancestor"
==
eName
&&
ev
.
getNewValue
()
!=
null
)
{
// Only update on an ancestor change when getting a valid
// parent and the LookAndFeel wants this.
return
shouldUpdateStyleOnAncestorChanged
();
}
return
false
;
}
/**
* Returns the antialiasing information as specified by the host desktop.
* Antialiasing might be forced off if the desktop is GNOME and the user
...
...
src/share/classes/javax/swing/plaf/synth/SynthMenuBarUI.java
浏览文件 @
49d9d970
...
...
@@ -25,45 +25,49 @@
package
javax.swing.plaf.synth
;
import
javax.swing.*
;
import
javax.swing.event.*
;
import
java.awt.Color
;
import
java.awt.Component
;
import
java.awt.Container
;
import
java.awt.Dimension
;
import
java.awt.Graphics
;
import
java.awt.Insets
;
import
java.awt.Point
;
import
java.awt.Rectangle
;
import
java.awt.event.*
;
import
java.beans.PropertyChangeEvent
;
import
java.beans.PropertyChangeListener
;
import
javax.swing.border.*
;
import
javax.swing.plaf.*
;
import
javax.swing.plaf.basic.*
;
import
sun.swing.plaf.synth.SynthUI
;
/**
* Synth's MenuBarUI.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JMenuBar}.
*
* @author Scott Violet
* @since 1.7
*/
class
SynthMenuBarUI
extends
BasicMenuBarUI
implements
PropertyChangeListener
,
SynthUI
{
public
class
SynthMenuBarUI
extends
BasicMenuBarUI
implements
PropertyChangeListener
,
SynthUI
{
private
SynthStyle
style
;
/**
* Creates a new UI object for the given component.
*
* @param x component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
x
)
{
return
new
SynthMenuBarUI
();
}
/**
* @inheritDoc
*/
@Override
protected
void
installDefaults
()
{
if
(
menuBar
.
getLayout
()
==
null
||
menuBar
.
getLayout
()
instanceof
UIResource
)
{
menuBar
.
setLayout
(
new
Default
MenuLayout
(
menuBar
,
BoxLayout
.
LINE_AXIS
));
menuBar
.
setLayout
(
new
Synth
MenuLayout
(
menuBar
,
BoxLayout
.
LINE_AXIS
));
}
updateStyle
(
menuBar
);
}
/**
* @inheritDoc
*/
@Override
protected
void
installListeners
()
{
super
.
installListeners
();
menuBar
.
addPropertyChangeListener
(
this
);
...
...
@@ -82,6 +86,10 @@ class SynthMenuBarUI extends BasicMenuBarUI implements PropertyChangeListener,
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallDefaults
()
{
SynthContext
context
=
getContext
(
menuBar
,
ENABLED
);
...
...
@@ -90,11 +98,19 @@ class SynthMenuBarUI extends BasicMenuBarUI implements PropertyChangeListener,
style
=
null
;
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallListeners
()
{
super
.
uninstallListeners
();
menuBar
.
removePropertyChangeListener
(
this
);
}
/**
* @inheritDoc
*/
@Override
public
SynthContext
getContext
(
JComponent
c
)
{
return
getContext
(
c
,
getComponentState
(
c
));
}
...
...
@@ -104,14 +120,14 @@ class SynthMenuBarUI extends BasicMenuBarUI implements PropertyChangeListener,
SynthLookAndFeel
.
getRegion
(
c
),
style
,
state
);
}
private
Region
getRegion
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getRegion
(
c
);
}
private
int
getComponentState
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getComponentState
(
c
);
}
/**
* @inheritDoc
*/
@Override
public
void
update
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -122,6 +138,10 @@ class SynthMenuBarUI extends BasicMenuBarUI implements PropertyChangeListener,
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
paint
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -129,14 +149,28 @@ class SynthMenuBarUI extends BasicMenuBarUI implements PropertyChangeListener,
context
.
dispose
();
}
/**
* Paints the specified component. This implementation does nothing.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
*/
protected
void
paint
(
SynthContext
context
,
Graphics
g
)
{
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintMenuBarBorder
(
context
,
g
,
x
,
y
,
w
,
h
);
}
/**
* @inheritDoc
*/
@Override
public
void
propertyChange
(
PropertyChangeEvent
e
)
{
if
(
SynthLookAndFeel
.
shouldUpdateStyle
(
e
))
{
updateStyle
((
JMenuBar
)
e
.
getSource
());
...
...
src/share/classes/javax/swing/plaf/synth/SynthMenuItemUI.java
浏览文件 @
49d9d970
...
...
@@ -24,41 +24,44 @@
*/
package
javax.swing.plaf.synth
;
import
javax.swing.plaf.basic.BasicHTML
;
import
java.awt.*
;
import
java.awt.event.*
;
import
java.beans.PropertyChangeEvent
;
import
java.beans.PropertyChangeListener
;
import
javax.swing.*
;
import
javax.swing.event.*
;
import
javax.swing.border.*
;
import
javax.swing.plaf.*
;
import
javax.swing.plaf.basic.*
;
import
javax.swing.text.View
;
import
sun.swing.plaf.synth.*
;
import
sun.swing.MenuItemLayoutHelper
;
/**
* Synth's MenuItemUI.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JMenuItem}.
*
* @author Georges Saab
* @author David Karlton
* @author Arnaud Weber
* @author Fredrik Lagerblad
* @since 1.7
*/
class
SynthMenuItemUI
extends
BasicMenuItemUI
implements
public
class
SynthMenuItemUI
extends
BasicMenuItemUI
implements
PropertyChangeListener
,
SynthUI
{
private
SynthStyle
style
;
private
SynthStyle
accStyle
;
private
String
acceleratorDelimiter
;
/**
* Creates a new UI object for the given component.
*
* @param c component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
c
)
{
return
new
SynthMenuItemUI
();
}
/**
* @inheritDoc
*/
@Override
public
void
uninstallUI
(
JComponent
c
)
{
super
.
uninstallUI
(
c
);
// Remove values from the parent's Client Properties.
...
...
@@ -69,10 +72,18 @@ class SynthMenuItemUI extends BasicMenuItemUI implements
}
}
/**
* @inheritDoc
*/
@Override
protected
void
installDefaults
()
{
updateStyle
(
menuItem
);
}
/**
* @inheritDoc
*/
@Override
protected
void
installListeners
()
{
super
.
installListeners
();
menuItem
.
addPropertyChangeListener
(
this
);
...
...
@@ -122,6 +133,10 @@ class SynthMenuItemUI extends BasicMenuItemUI implements
accContext
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallDefaults
()
{
SynthContext
context
=
getContext
(
menuItem
,
ENABLED
);
style
.
uninstallDefaults
(
context
);
...
...
@@ -137,11 +152,19 @@ class SynthMenuItemUI extends BasicMenuItemUI implements
super
.
uninstallDefaults
();
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallListeners
()
{
super
.
uninstallListeners
();
menuItem
.
removePropertyChangeListener
(
this
);
}
/**
* @inheritDoc
*/
@Override
public
SynthContext
getContext
(
JComponent
c
)
{
return
getContext
(
c
,
getComponentState
(
c
));
}
...
...
@@ -151,7 +174,7 @@ class SynthMenuItemUI extends BasicMenuItemUI implements
SynthLookAndFeel
.
getRegion
(
c
),
style
,
state
);
}
public
SynthContext
getContext
(
JComponent
c
,
Region
region
)
{
SynthContext
getContext
(
JComponent
c
,
Region
region
)
{
return
getContext
(
c
,
region
,
getComponentState
(
c
,
region
));
}
...
...
@@ -160,10 +183,6 @@ class SynthMenuItemUI extends BasicMenuItemUI implements
region
,
accStyle
,
state
);
}
private
Region
getRegion
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getRegion
(
c
);
}
private
int
getComponentState
(
JComponent
c
)
{
int
state
;
...
...
@@ -186,6 +205,10 @@ class SynthMenuItemUI extends BasicMenuItemUI implements
return
getComponentState
(
c
);
}
/**
* @inheritDoc
*/
@Override
protected
Dimension
getPreferredMenuItemSize
(
JComponent
c
,
Icon
checkIcon
,
Icon
arrowIcon
,
...
...
@@ -203,6 +226,10 @@ class SynthMenuItemUI extends BasicMenuItemUI implements
}
/**
* @inheritDoc
*/
@Override
public
void
update
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -212,6 +239,10 @@ class SynthMenuItemUI extends BasicMenuItemUI implements
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
paint
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -219,6 +250,12 @@ class SynthMenuItemUI extends BasicMenuItemUI implements
context
.
dispose
();
}
/**
* Paints the specified component.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
*/
protected
void
paint
(
SynthContext
context
,
Graphics
g
)
{
SynthContext
accContext
=
getContext
(
menuItem
,
Region
.
MENU_ITEM_ACCELERATOR
);
...
...
@@ -236,11 +273,19 @@ class SynthMenuItemUI extends BasicMenuItemUI implements
SynthGraphicsUtils
.
paintBackground
(
context
,
g
,
c
);
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintMenuItemBorder
(
context
,
g
,
x
,
y
,
w
,
h
);
}
/**
* @inheritDoc
*/
@Override
public
void
propertyChange
(
PropertyChangeEvent
e
)
{
if
(
SynthLookAndFeel
.
shouldUpdateStyle
(
e
))
{
updateStyle
((
JMenuItem
)
e
.
getSource
());
...
...
src/share/classes/javax/swing/plaf/synth/
Default
MenuLayout.java
→
src/share/classes/javax/swing/plaf/synth/
Synth
MenuLayout.java
浏览文件 @
49d9d970
...
...
@@ -25,44 +25,29 @@
package
javax.swing.plaf.synth
;
import
javax.swing.*
;
import
javax.swing.plaf.UIResource
;
import
javax.swing.plaf.basic.DefaultMenuLayout
;
import
javax.swing.JPopupMenu
;
import
java.awt.Container
;
import
java.awt.Dimension
;
/**
* The default layout manager for Popup menus and menubars. This
* class is an extension of BoxLayout which adds the UIResource tag
* so that plauggable L&Fs can distinguish it from user-installed
* layout managers on menus.
*
* Derived from javax.swing.plaf.basic.DefaultMenuLayout
* @inheritDoc
*
* @author Georges Saab
*/
class
DefaultMenuLayout
extends
BoxLayout
implements
UIResource
{
public
Default
MenuLayout
(
Container
target
,
int
axis
)
{
class
SynthMenuLayout
extends
DefaultMenuLayout
{
public
Synth
MenuLayout
(
Container
target
,
int
axis
)
{
super
(
target
,
axis
);
}
public
Dimension
preferredLayoutSize
(
Container
target
)
{
if
(
target
instanceof
JPopupMenu
)
{
JPopupMenu
popupMenu
=
(
JPopupMenu
)
target
;
popupMenu
.
putClientProperty
(
SynthMenuItemLayoutHelper
.
MAX_ACC_OR_ARROW_WIDTH
,
null
);
sun
.
swing
.
MenuItemLayoutHelper
.
clearUsedClientProperties
(
popupMenu
);
if
(
popupMenu
.
getComponentCount
()
==
0
)
{
return
new
Dimension
(
0
,
0
);
}
}
// Make BoxLayout recalculate cached preferred sizes
super
.
invalidateLayout
(
target
);
return
super
.
preferredLayoutSize
(
target
);
}
}
src/share/classes/javax/swing/plaf/synth/SynthMenuUI.java
浏览文件 @
49d9d970
...
...
@@ -25,40 +25,48 @@
package
javax.swing.plaf.synth
;
import
java.awt.*
;
import
java.awt.event.*
;
import
java.beans.*
;
import
javax.swing.*
;
import
javax.swing.event.*
;
import
javax.swing.plaf.*
;
import
javax.swing.plaf.basic.*
;
import
javax.swing.border.*
;
import
java.util.Arrays
;
import
java.util.ArrayList
;
import
sun.swing.plaf.synth.SynthUI
;
import
sun.swing.MenuItemLayoutHelper
;
/**
* Synth's MenuUI.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JMenu}.
*
* @author Georges Saab
* @author David Karlton
* @author Arnaud Weber
* @since 1.7
*/
class
SynthMenuUI
extends
BasicMenuUI
implements
PropertyChangeListener
,
SynthUI
{
public
class
SynthMenuUI
extends
BasicMenuUI
implements
PropertyChangeListener
,
SynthUI
{
private
SynthStyle
style
;
private
SynthStyle
accStyle
;
private
String
acceleratorDelimiter
;
/**
* Creates a new UI object for the given component.
*
* @param x component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
x
)
{
return
new
SynthMenuUI
();
}
/**
* @inheritDoc
*/
@Override
protected
void
installDefaults
()
{
updateStyle
(
menuItem
);
}
/**
* @inheritDoc
*/
@Override
protected
void
installListeners
()
{
super
.
installListeners
();
menuItem
.
addPropertyChangeListener
(
this
);
...
...
@@ -111,6 +119,10 @@ class SynthMenuUI extends BasicMenuUI implements PropertyChangeListener,
accContext
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
uninstallUI
(
JComponent
c
)
{
super
.
uninstallUI
(
c
);
// Remove values from the parent's Client Properties.
...
...
@@ -121,6 +133,10 @@ class SynthMenuUI extends BasicMenuUI implements PropertyChangeListener,
}
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallDefaults
()
{
SynthContext
context
=
getContext
(
menuItem
,
ENABLED
);
style
.
uninstallDefaults
(
context
);
...
...
@@ -136,22 +152,30 @@ class SynthMenuUI extends BasicMenuUI implements PropertyChangeListener,
super
.
uninstallDefaults
();
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallListeners
()
{
super
.
uninstallListeners
();
menuItem
.
removePropertyChangeListener
(
this
);
}
/**
* @inheritDoc
*/
@Override
public
SynthContext
getContext
(
JComponent
c
)
{
return
getContext
(
c
,
getComponentState
(
c
));
}
SynthContext
getContext
(
JComponent
c
,
int
state
)
{
Region
region
=
getRegion
(
c
);
Region
region
=
SynthLookAndFeel
.
getRegion
(
c
);
return
SynthContext
.
getContext
(
SynthContext
.
class
,
c
,
region
,
style
,
state
);
}
public
SynthContext
getContext
(
JComponent
c
,
Region
region
)
{
SynthContext
getContext
(
JComponent
c
,
Region
region
)
{
return
getContext
(
c
,
region
,
getComponentState
(
c
,
region
));
}
...
...
@@ -160,10 +184,6 @@ class SynthMenuUI extends BasicMenuUI implements PropertyChangeListener,
region
,
accStyle
,
state
);
}
private
Region
getRegion
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getRegion
(
c
);
}
private
int
getComponentState
(
JComponent
c
)
{
int
state
;
...
...
@@ -186,6 +206,10 @@ class SynthMenuUI extends BasicMenuUI implements PropertyChangeListener,
return
getComponentState
(
c
);
}
/**
* @inheritDoc
*/
@Override
protected
Dimension
getPreferredMenuItemSize
(
JComponent
c
,
Icon
checkIcon
,
Icon
arrowIcon
,
...
...
@@ -202,7 +226,10 @@ class SynthMenuUI extends BasicMenuUI implements PropertyChangeListener,
return
value
;
}
/**
* @inheritDoc
*/
@Override
public
void
update
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -213,6 +240,10 @@ class SynthMenuUI extends BasicMenuUI implements PropertyChangeListener,
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
paint
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -220,6 +251,12 @@ class SynthMenuUI extends BasicMenuUI implements PropertyChangeListener,
context
.
dispose
();
}
/**
* Paints the specified component. This implementation does nothing.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
*/
protected
void
paint
(
SynthContext
context
,
Graphics
g
)
{
SynthContext
accContext
=
getContext
(
menuItem
,
Region
.
MENU_ITEM_ACCELERATOR
);
...
...
@@ -232,11 +269,19 @@ class SynthMenuUI extends BasicMenuUI implements PropertyChangeListener,
accContext
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintMenuBorder
(
context
,
g
,
x
,
y
,
w
,
h
);
}
/**
* @inheritDoc
*/
@Override
public
void
propertyChange
(
PropertyChangeEvent
e
)
{
if
(
SynthLookAndFeel
.
shouldUpdateStyle
(
e
))
{
updateStyle
((
JMenu
)
e
.
getSource
());
...
...
src/share/classes/javax/swing/plaf/synth/SynthOptionPaneUI.java
浏览文件 @
49d9d970
...
...
@@ -28,34 +28,45 @@ package javax.swing.plaf.synth;
import
java.awt.*
;
import
java.beans.*
;
import
javax.swing.*
;
import
javax.swing.event.*
;
import
javax.swing.plaf.*
;
import
javax.swing.plaf.basic.*
;
import
sun.swing.DefaultLookup
;
import
sun.swing.plaf.synth.SynthUI
;
/**
* Synth's OptionPaneUI.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JOptionPane}.
*
* @author James Gosling
* @author Scott Violet
* @author Amy Fowler
* @since 1.7
*/
class
SynthOptionPaneUI
extends
BasicOptionPaneUI
implements
public
class
SynthOptionPaneUI
extends
BasicOptionPaneUI
implements
PropertyChangeListener
,
SynthUI
{
private
SynthStyle
style
;
/**
* Creates a new BasicOptionPaneUI instance.
*/
* Creates a new UI object for the given component.
*
* @param x component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
x
)
{
return
new
SynthOptionPaneUI
();
}
/**
* @inheritDoc
*/
@Override
protected
void
installDefaults
()
{
updateStyle
(
optionPane
);
}
/**
* @inheritDoc
*/
@Override
protected
void
installListeners
()
{
super
.
installListeners
();
optionPane
.
addPropertyChangeListener
(
this
);
...
...
@@ -80,6 +91,10 @@ class SynthOptionPaneUI extends BasicOptionPaneUI implements
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallDefaults
()
{
SynthContext
context
=
getContext
(
optionPane
,
ENABLED
);
...
...
@@ -88,11 +103,19 @@ class SynthOptionPaneUI extends BasicOptionPaneUI implements
style
=
null
;
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallListeners
()
{
super
.
uninstallListeners
();
optionPane
.
removePropertyChangeListener
(
this
);
}
/**
* @inheritDoc
*/
@Override
protected
void
installComponents
()
{
optionPane
.
add
(
createMessageArea
());
...
...
@@ -108,6 +131,10 @@ class SynthOptionPaneUI extends BasicOptionPaneUI implements
optionPane
.
applyComponentOrientation
(
optionPane
.
getComponentOrientation
());
}
/**
* @inheritDoc
*/
@Override
public
SynthContext
getContext
(
JComponent
c
)
{
return
getContext
(
c
,
getComponentState
(
c
));
}
...
...
@@ -117,14 +144,14 @@ class SynthOptionPaneUI extends BasicOptionPaneUI implements
SynthLookAndFeel
.
getRegion
(
c
),
style
,
state
);
}
private
Region
getRegion
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getRegion
(
c
);
}
private
int
getComponentState
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getComponentState
(
c
);
}
/**
* @inheritDoc
*/
@Override
public
void
update
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -135,6 +162,10 @@ class SynthOptionPaneUI extends BasicOptionPaneUI implements
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
paint
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -142,30 +173,49 @@ class SynthOptionPaneUI extends BasicOptionPaneUI implements
context
.
dispose
();
}
/**
* Paints the specified component. This implementation does nothing.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
*/
protected
void
paint
(
SynthContext
context
,
Graphics
g
)
{
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintOptionPaneBorder
(
context
,
g
,
x
,
y
,
w
,
h
);
}
/**
* @inheritDoc
*/
@Override
public
void
propertyChange
(
PropertyChangeEvent
e
)
{
if
(
SynthLookAndFeel
.
shouldUpdateStyle
(
e
))
{
updateStyle
((
JOptionPane
)
e
.
getSource
());
}
}
/**
* @inheritDoc
*/
@Override
protected
boolean
getSizeButtonsToSameWidth
()
{
return
DefaultLookup
.
getBoolean
(
optionPane
,
this
,
"OptionPane.sameSizeButtons"
,
true
);
}
/**
*
Messaged from installComponents to create a Container containing the
* body of the message. The icon is the created by calling
*
<code>addIcon</code>
.
*
Called from {@link #installComponents} to create a {@code Container}
*
containing the
body of the message. The icon is the created by calling
*
{@link #addIcon}
.
*/
@Override
protected
Container
createMessageArea
()
{
JPanel
top
=
new
JPanel
();
top
.
setName
(
"OptionPane.messageArea"
);
...
...
@@ -206,6 +256,10 @@ class SynthOptionPaneUI extends BasicOptionPaneUI implements
return
top
;
}
/**
* @inheritDoc
*/
@Override
protected
Container
createSeparator
()
{
JSeparator
separator
=
new
JSeparator
(
SwingConstants
.
HORIZONTAL
);
...
...
src/share/classes/javax/swing/plaf/synth/SynthPainter.java
浏览文件 @
49d9d970
...
...
@@ -25,7 +25,6 @@
package
javax.swing.plaf.synth
;
import
java.awt.*
;
import
javax.swing.*
;
/**
* <code>SynthPainter</code> is used for painting portions of
...
...
src/share/classes/javax/swing/plaf/synth/SynthPanelUI.java
浏览文件 @
49d9d970
...
...
@@ -25,29 +25,37 @@
package
javax.swing.plaf.synth
;
import
java.awt.*
;
import
javax.swing.*
;
import
javax.swing.border.*
;
import
javax.swing.plaf.*
;
import
javax.swing.plaf.basic.BasicPanelUI
;
import
java.awt.*
;
import
java.awt.event.*
;
import
java.beans.*
;
import
sun.swing.plaf.synth.SynthUI
;
/**
* Synth's PanelUI.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JPanel}.
*
* @author Steve Wilson
* @since 1.7
*/
class
SynthPanelUI
extends
BasicPanelUI
implements
PropertyChangeListener
,
SynthUI
{
public
class
SynthPanelUI
extends
BasicPanelUI
implements
PropertyChangeListener
,
SynthUI
{
private
SynthStyle
style
;
/**
* Creates a new UI object for the given component.
*
* @param c component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
c
)
{
return
new
SynthPanelUI
();
}
/**
* @inheritDoc
*/
@Override
public
void
installUI
(
JComponent
c
)
{
JPanel
p
=
(
JPanel
)
c
;
...
...
@@ -55,6 +63,10 @@ class SynthPanelUI extends BasicPanelUI implements PropertyChangeListener,
installListeners
(
p
);
}
/**
* @inheritDoc
*/
@Override
public
void
uninstallUI
(
JComponent
c
)
{
JPanel
p
=
(
JPanel
)
c
;
...
...
@@ -62,18 +74,36 @@ class SynthPanelUI extends BasicPanelUI implements PropertyChangeListener,
super
.
uninstallUI
(
c
);
}
/**
* Installs listeners into the panel.
*
* @param p the {@code JPanel} object
*/
protected
void
installListeners
(
JPanel
p
)
{
p
.
addPropertyChangeListener
(
this
);
}
/**
* Uninstalls listeners from the panel.
*
* @param p the {@code JPanel} object
*/
protected
void
uninstallListeners
(
JPanel
p
)
{
p
.
removePropertyChangeListener
(
this
);
}
/**
* @inheritDoc
*/
@Override
protected
void
installDefaults
(
JPanel
p
)
{
updateStyle
(
p
);
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallDefaults
(
JPanel
p
)
{
SynthContext
context
=
getContext
(
p
,
ENABLED
);
...
...
@@ -88,6 +118,10 @@ class SynthPanelUI extends BasicPanelUI implements PropertyChangeListener,
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
SynthContext
getContext
(
JComponent
c
)
{
return
getContext
(
c
,
getComponentState
(
c
));
}
...
...
@@ -97,14 +131,14 @@ class SynthPanelUI extends BasicPanelUI implements PropertyChangeListener,
SynthLookAndFeel
.
getRegion
(
c
),
style
,
state
);
}
private
Region
getRegion
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getRegion
(
c
);
}
private
int
getComponentState
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getComponentState
(
c
);
}
/**
* @inheritDoc
*/
@Override
public
void
update
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -115,6 +149,10 @@ class SynthPanelUI extends BasicPanelUI implements PropertyChangeListener,
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
paint
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -122,15 +160,29 @@ class SynthPanelUI extends BasicPanelUI implements PropertyChangeListener,
context
.
dispose
();
}
/**
* Paints the specified component. This implementation does nothing.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
*/
protected
void
paint
(
SynthContext
context
,
Graphics
g
)
{
// do actual painting
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintPanelBorder
(
context
,
g
,
x
,
y
,
w
,
h
);
}
/**
* @inheritDoc
*/
@Override
public
void
propertyChange
(
PropertyChangeEvent
pce
)
{
if
(
SynthLookAndFeel
.
shouldUpdateStyle
(
pce
))
{
updateStyle
((
JPanel
)
pce
.
getSource
());
...
...
src/share/classes/javax/swing/plaf/synth/SynthPasswordFieldUI.java
浏览文件 @
49d9d970
...
...
@@ -25,21 +25,19 @@
package
javax.swing.plaf.synth
;
import
java.awt.
*
;
import
java.awt.
Graphics
;
import
javax.swing.*
;
import
javax.swing.text.*
;
import
javax.swing.plaf.
*
;
import
javax.swing.plaf.
ComponentUI
;
/**
* Provides the Synth look and feel for a password field.
* The only difference from the standard text field is that
* the view of the text is simply a string of the echo
* character as specified in JPasswordField, rather than the
* real text contained in the field.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JPasswordField}.
*
* @author Shannon Hickey
* @since 1.7
*/
class
SynthPasswordFieldUI
extends
SynthTextFieldUI
{
public
class
SynthPasswordFieldUI
extends
SynthTextFieldUI
{
/**
* Creates a UI for a JPasswordField.
...
...
@@ -58,6 +56,7 @@ class SynthPasswordFieldUI extends SynthTextFieldUI {
*
* @return the name ("PasswordField")
*/
@Override
protected
String
getPropertyPrefix
()
{
return
"PasswordField"
;
}
...
...
@@ -68,20 +67,33 @@ class SynthPasswordFieldUI extends SynthTextFieldUI {
* @param elem the element
* @return the view
*/
@Override
public
View
create
(
Element
elem
)
{
return
new
PasswordView
(
elem
);
}
/**
* @inheritDoc
*/
@Override
void
paintBackground
(
SynthContext
context
,
Graphics
g
,
JComponent
c
)
{
context
.
getPainter
().
paintPasswordFieldBackground
(
context
,
g
,
0
,
0
,
c
.
getWidth
(),
c
.
getHeight
());
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintPasswordFieldBorder
(
context
,
g
,
x
,
y
,
w
,
h
);
}
/**
* @inheritDoc
*/
@Override
protected
void
installKeyboardActions
()
{
super
.
installKeyboardActions
();
ActionMap
map
=
SwingUtilities
.
getUIActionMap
(
getComponent
());
...
...
src/share/classes/javax/swing/plaf/synth/SynthPopupMenuUI.java
浏览文件 @
49d9d970
...
...
@@ -26,49 +26,43 @@
package
javax.swing.plaf.synth
;
import
javax.swing.*
;
import
javax.swing.event.*
;
import
javax.swing.plaf.*
;
import
javax.swing.plaf.basic.*
;
import
javax.swing.border.*
;
import
java.applet.Applet
;
import
java.awt.Component
;
import
java.awt.Container
;
import
java.awt.Dimension
;
import
java.awt.Graphics
;
import
java.awt.KeyboardFocusManager
;
import
java.awt.Window
;
import
java.awt.event.*
;
import
java.awt.AWTEvent
;
import
java.awt.Toolkit
;
import
java.beans.PropertyChangeListener
;
import
java.beans.PropertyChangeEvent
;
import
java.util.*
;
import
sun.swing.plaf.synth.SynthUI
;
/**
* Synth's PopupMenuUI.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JPopupMenu}.
*
* @author Georges Saab
* @author David Karlton
* @author Arnaud Weber
* @since 1.7
*/
class
SynthPopupMenuUI
extends
BasicPopupMenuUI
implements
PropertyChangeListener
,
SynthUI
{
public
class
SynthPopupMenuUI
extends
BasicPopupMenuUI
implements
PropertyChangeListener
,
SynthUI
{
private
SynthStyle
style
;
/**
* Creates a new UI object for the given component.
*
* @param x component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
x
)
{
return
new
SynthPopupMenuUI
();
}
/**
* @inheritDoc
*/
@Override
public
void
installDefaults
()
{
if
(
popupMenu
.
getLayout
()
==
null
||
popupMenu
.
getLayout
()
instanceof
UIResource
)
{
popupMenu
.
setLayout
(
new
DefaultMenuLayout
(
popupMenu
,
BoxLayout
.
Y_AXIS
));
popupMenu
.
setLayout
(
new
SynthMenuLayout
(
popupMenu
,
BoxLayout
.
Y_AXIS
));
}
updateStyle
(
popupMenu
);
}
...
...
@@ -86,11 +80,19 @@ class SynthPopupMenuUI extends BasicPopupMenuUI implements
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
protected
void
installListeners
()
{
super
.
installListeners
();
popupMenu
.
addPropertyChangeListener
(
this
);
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallDefaults
()
{
SynthContext
context
=
getContext
(
popupMenu
,
ENABLED
);
...
...
@@ -103,11 +105,19 @@ class SynthPopupMenuUI extends BasicPopupMenuUI implements
}
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallListeners
()
{
super
.
uninstallListeners
();
popupMenu
.
removePropertyChangeListener
(
this
);
}
/**
* @inheritDoc
*/
@Override
public
SynthContext
getContext
(
JComponent
c
)
{
return
getContext
(
c
,
getComponentState
(
c
));
}
...
...
@@ -117,14 +127,14 @@ class SynthPopupMenuUI extends BasicPopupMenuUI implements
SynthLookAndFeel
.
getRegion
(
c
),
style
,
state
);
}
private
Region
getRegion
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getRegion
(
c
);
}
private
int
getComponentState
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getComponentState
(
c
);
}
/**
* @inheritDoc
*/
@Override
public
void
update
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -135,6 +145,10 @@ class SynthPopupMenuUI extends BasicPopupMenuUI implements
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
paint
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -142,14 +156,28 @@ class SynthPopupMenuUI extends BasicPopupMenuUI implements
context
.
dispose
();
}
/**
* Paints the specified component. This implementation does nothing.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
*/
protected
void
paint
(
SynthContext
context
,
Graphics
g
)
{
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintPopupMenuBorder
(
context
,
g
,
x
,
y
,
w
,
h
);
}
/**
* @inheritDoc
*/
@Override
public
void
propertyChange
(
PropertyChangeEvent
e
)
{
if
(
SynthLookAndFeel
.
shouldUpdateStyle
(
e
))
{
updateStyle
(
popupMenu
);
...
...
src/share/classes/javax/swing/plaf/synth/SynthProgressBarUI.java
浏览文件 @
49d9d970
...
...
@@ -32,16 +32,17 @@ import javax.swing.plaf.*;
import
javax.swing.plaf.basic.BasicProgressBarUI
;
import
java.beans.PropertyChangeListener
;
import
java.beans.PropertyChangeEvent
;
import
sun.swing.plaf.synth.SynthUI
;
import
sun.swing.SwingUtilities2
;
/**
* Synth's ProgressBarUI.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JProgressBar}.
*
* @author Joshua Outwater
* @since 1.7
*/
class
SynthProgressBarUI
extends
BasicProgressBarUI
implements
SynthUI
,
PropertyChangeListener
{
public
class
SynthProgressBarUI
extends
BasicProgressBarUI
implements
SynthUI
,
PropertyChangeListener
{
private
SynthStyle
style
;
private
int
progressPadding
;
private
boolean
rotateText
;
// added for Nimbus LAF
...
...
@@ -49,22 +50,37 @@ class SynthProgressBarUI extends BasicProgressBarUI implements SynthUI,
private
boolean
tileWhenIndeterminate
;
//whether to tile indeterminate painting
private
int
tileWidth
;
//the width of each tile
/**
* Creates a new UI object for the given component.
*
* @param x component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
x
)
{
return
new
SynthProgressBarUI
();
}
/**
* @inheritDoc
*/
@Override
protected
void
installListeners
()
{
super
.
installListeners
();
progressBar
.
addPropertyChangeListener
(
this
);
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallListeners
()
{
super
.
uninstallListeners
();
progressBar
.
removePropertyChangeListener
(
this
);
}
/**
* @inheritDoc
*/
@Override
protected
void
installDefaults
()
{
updateStyle
(
progressBar
);
...
...
@@ -101,6 +117,9 @@ class SynthProgressBarUI extends BasicProgressBarUI implements SynthUI,
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallDefaults
()
{
SynthContext
context
=
getContext
(
progressBar
,
ENABLED
);
...
...
@@ -110,6 +129,10 @@ class SynthProgressBarUI extends BasicProgressBarUI implements SynthUI,
style
=
null
;
}
/**
* @inheritDoc
*/
@Override
public
SynthContext
getContext
(
JComponent
c
)
{
return
getContext
(
c
,
getComponentState
(
c
));
}
...
...
@@ -119,14 +142,13 @@ class SynthProgressBarUI extends BasicProgressBarUI implements SynthUI,
SynthLookAndFeel
.
getRegion
(
c
),
style
,
state
);
}
private
Region
getRegion
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getRegion
(
c
);
}
private
int
getComponentState
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getComponentState
(
c
);
}
/**
* @inheritDoc
*/
@Override
public
int
getBaseline
(
JComponent
c
,
int
width
,
int
height
)
{
super
.
getBaseline
(
c
,
width
,
height
);
...
...
@@ -142,6 +164,9 @@ class SynthProgressBarUI extends BasicProgressBarUI implements SynthUI,
return
-
1
;
}
/**
* @inheritDoc
*/
@Override
protected
Rectangle
getBox
(
Rectangle
r
)
{
if
(
tileWhenIndeterminate
)
{
...
...
@@ -151,6 +176,9 @@ class SynthProgressBarUI extends BasicProgressBarUI implements SynthUI,
}
}
/**
* @inheritDoc
*/
@Override
protected
void
setAnimationIndex
(
int
newValue
)
{
if
(
paintOutsideClip
)
{
...
...
@@ -164,6 +192,9 @@ class SynthProgressBarUI extends BasicProgressBarUI implements SynthUI,
}
}
/**
* @inheritDoc
*/
@Override
public
void
update
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -176,6 +207,9 @@ class SynthProgressBarUI extends BasicProgressBarUI implements SynthUI,
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
paint
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -184,6 +218,12 @@ class SynthProgressBarUI extends BasicProgressBarUI implements SynthUI,
context
.
dispose
();
}
/**
* Paints the specified component.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
*/
protected
void
paint
(
SynthContext
context
,
Graphics
g
)
{
JProgressBar
pBar
=
(
JProgressBar
)
context
.
getComponent
();
int
x
=
0
,
y
=
0
,
width
=
0
,
height
=
0
;
...
...
@@ -261,8 +301,14 @@ class SynthProgressBarUI extends BasicProgressBarUI implements SynthUI,
}
}
protected
void
paintText
(
SynthContext
context
,
Graphics
g
,
String
title
)
{
/**
* Paints the component's text.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
* @param title the text to paint
*/
protected
void
paintText
(
SynthContext
context
,
Graphics
g
,
String
title
)
{
if
(
progressBar
.
isStringPainted
())
{
SynthStyle
style
=
context
.
getStyle
();
Font
font
=
style
.
getFont
(
context
);
...
...
@@ -323,12 +369,20 @@ class SynthProgressBarUI extends BasicProgressBarUI implements SynthUI,
}
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintProgressBarBorder
(
context
,
g
,
x
,
y
,
w
,
h
,
progressBar
.
getOrientation
());
}
/**
* @inheritDoc
*/
@Override
public
void
propertyChange
(
PropertyChangeEvent
e
)
{
if
(
SynthLookAndFeel
.
shouldUpdateStyle
(
e
)
||
"indeterminate"
.
equals
(
e
.
getPropertyName
()))
{
...
...
@@ -336,6 +390,9 @@ class SynthProgressBarUI extends BasicProgressBarUI implements SynthUI,
}
}
/**
* @inheritDoc
*/
@Override
public
Dimension
getPreferredSize
(
JComponent
c
)
{
Dimension
size
=
null
;
...
...
@@ -398,5 +455,5 @@ class SynthProgressBarUI extends BasicProgressBarUI implements SynthUI,
size
.
height
+=
border
.
top
+
border
.
bottom
;
return
size
;
}
}
}
src/share/classes/javax/swing/plaf/synth/SynthRadioButtonMenuItemUI.java
浏览文件 @
49d9d970
...
...
@@ -27,49 +27,46 @@ package javax.swing.plaf.synth;
import
javax.swing.*
;
import
java.awt.*
;
import
java.awt.event.*
;
import
javax.swing.plaf.*
;
import
javax.swing.border.*
;
/**
* Synth's RadioButtonMenuItemUI.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JRadioButtonMenuItem}.
*
* @author Georges Saab
* @author David Karlton
* @since 1.7
*/
class
SynthRadioButtonMenuItemUI
extends
SynthMenuItemUI
{
public
class
SynthRadioButtonMenuItemUI
extends
SynthMenuItemUI
{
/**
* Creates a new UI object for the given component.
*
* @param b component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
b
)
{
return
new
SynthRadioButtonMenuItemUI
();
}
/**
* @inheritDoc
*/
@Override
protected
String
getPropertyPrefix
()
{
return
"RadioButtonMenuItem"
;
}
public
void
processMouseEvent
(
JMenuItem
item
,
MouseEvent
e
,
MenuElement
path
[],
MenuSelectionManager
manager
)
{
Point
p
=
e
.
getPoint
();
if
(
p
.
x
>=
0
&&
p
.
x
<
item
.
getWidth
()
&&
p
.
y
>=
0
&&
p
.
y
<
item
.
getHeight
())
{
if
(
e
.
getID
()
==
MouseEvent
.
MOUSE_RELEASED
)
{
manager
.
clearSelectedPath
();
item
.
doClick
(
0
);
item
.
setArmed
(
false
);
}
else
manager
.
setSelectedPath
(
path
);
}
else
if
(
item
.
getModel
().
isArmed
())
{
MenuElement
newPath
[]
=
new
MenuElement
[
path
.
length
-
1
];
int
i
,
c
;
for
(
i
=
0
,
c
=
path
.
length
-
1
;
i
<
c
;
i
++)
newPath
[
i
]
=
path
[
i
];
manager
.
setSelectedPath
(
newPath
);
}
}
@Override
void
paintBackground
(
SynthContext
context
,
Graphics
g
,
JComponent
c
)
{
context
.
getPainter
().
paintRadioButtonMenuItemBackground
(
context
,
g
,
0
,
0
,
c
.
getWidth
(),
c
.
getHeight
());
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintRadioButtonMenuItemBorder
(
context
,
g
,
x
,
...
...
src/share/classes/javax/swing/plaf/synth/SynthRadioButtonUI.java
浏览文件 @
49d9d970
...
...
@@ -26,42 +26,58 @@
package
javax.swing.plaf.synth
;
import
java.awt.*
;
import
java.awt.event.*
;
import
javax.swing.*
;
import
javax.swing.border.*
;
import
javax.swing.plaf.*
;
import
javax.swing.text.View
;
/**
* Synth's RadioButtonUI.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JRadioButton}.
*
* @author Jeff Dinkins
* @since 1.7
*/
class
SynthRadioButtonUI
extends
SynthToggleButtonUI
{
public
class
SynthRadioButtonUI
extends
SynthToggleButtonUI
{
// ********************************
// Create PLAF
// ********************************
/**
* Creates a new UI object for the given component.
*
* @param b component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
b
)
{
return
new
SynthRadioButtonUI
();
}
/**
* @inheritDoc
*/
@Override
protected
String
getPropertyPrefix
()
{
return
"RadioButton."
;
}
/**
* Returns the Icon used in calculating the pref/min/max size.
* Returns the Icon used in calculating the
* preferred/minimum/maximum size.
*/
@Override
protected
Icon
getSizingIcon
(
AbstractButton
b
)
{
return
getIcon
(
b
);
}
@Override
void
paintBackground
(
SynthContext
context
,
Graphics
g
,
JComponent
c
)
{
context
.
getPainter
().
paintRadioButtonBackground
(
context
,
g
,
0
,
0
,
c
.
getWidth
(),
c
.
getHeight
());
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintRadioButtonBorder
(
context
,
g
,
x
,
y
,
w
,
h
);
...
...
src/share/classes/javax/swing/plaf/synth/SynthRootPaneUI.java
浏览文件 @
49d9d970
...
...
@@ -26,30 +26,43 @@
package
javax.swing.plaf.synth
;
import
java.awt.*
;
import
java.awt.event.ActionEvent
;
import
java.beans.PropertyChangeEvent
;
import
java.beans.PropertyChangeListener
;
import
javax.swing.*
;
import
javax.swing.plaf.*
;
import
javax.swing.plaf.basic.BasicRootPaneUI
;
import
sun.swing.plaf.synth.SynthUI
;
/**
* Synth's RootPaneUI.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JRootPane}.
*
* @author Scott Violet
* @since 1.7
*/
class
SynthRootPaneUI
extends
BasicRootPaneUI
implements
SynthUI
{
public
class
SynthRootPaneUI
extends
BasicRootPaneUI
implements
SynthUI
{
private
SynthStyle
style
;
/**
* Creates a new UI object for the given component.
*
* @param c component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
c
)
{
return
new
SynthRootPaneUI
();
}
/**
* @inheritDoc
*/
@Override
protected
void
installDefaults
(
JRootPane
c
){
updateStyle
(
c
);
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallDefaults
(
JRootPane
root
)
{
SynthContext
context
=
getContext
(
root
,
ENABLED
);
...
...
@@ -58,6 +71,10 @@ class SynthRootPaneUI extends BasicRootPaneUI implements SynthUI {
style
=
null
;
}
/**
* @inheritDoc
*/
@Override
public
SynthContext
getContext
(
JComponent
c
)
{
return
getContext
(
c
,
getComponentState
(
c
));
}
...
...
@@ -67,10 +84,6 @@ class SynthRootPaneUI extends BasicRootPaneUI implements SynthUI {
SynthLookAndFeel
.
getRegion
(
c
),
style
,
state
);
}
private
Region
getRegion
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getRegion
(
c
);
}
private
int
getComponentState
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getComponentState
(
c
);
}
...
...
@@ -88,6 +101,10 @@ class SynthRootPaneUI extends BasicRootPaneUI implements SynthUI {
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
update
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -98,6 +115,10 @@ class SynthRootPaneUI extends BasicRootPaneUI implements SynthUI {
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
paint
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -105,9 +126,19 @@ class SynthRootPaneUI extends BasicRootPaneUI implements SynthUI {
context
.
dispose
();
}
/**
* Paints the specified component. This implementation does nothing.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
*/
protected
void
paint
(
SynthContext
context
,
Graphics
g
)
{
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintRootPaneBorder
(
context
,
g
,
x
,
y
,
w
,
h
);
...
...
@@ -118,6 +149,7 @@ class SynthRootPaneUI extends BasicRootPaneUI implements SynthUI {
* indicates the <code>defaultButton</code> has changed, this will
* reinstall the keyboard actions.
*/
@Override
public
void
propertyChange
(
PropertyChangeEvent
e
)
{
if
(
SynthLookAndFeel
.
shouldUpdateStyle
(
e
))
{
updateStyle
((
JRootPane
)
e
.
getSource
());
...
...
src/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java
浏览文件 @
49d9d970
...
...
@@ -30,41 +30,33 @@ import java.beans.*;
import
javax.swing.*
;
import
javax.swing.plaf.*
;
import
javax.swing.plaf.basic.*
;
import
sun.swing.plaf.synth.SynthUI
;
/**
* Synth's ScrollBarUI.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JScrollBar}.
*
* @author Scott Violet
* @since 1.7
*/
class
SynthScrollBarUI
extends
BasicScrollBarUI
implements
PropertyChangeListener
,
SynthUI
{
public
class
SynthScrollBarUI
extends
BasicScrollBarUI
implements
PropertyChangeListener
,
SynthUI
{
private
SynthStyle
style
;
private
SynthStyle
thumbStyle
;
private
SynthStyle
trackStyle
;
private
boolean
validMinimumThumbSize
;
private
int
scrollBarWidth
;
//These two variables should be removed when the corrosponding ones in BasicScrollBarUI are made protected
private
int
incrGap
;
private
int
decrGap
;
public
static
ComponentUI
createUI
(
JComponent
c
)
{
return
new
SynthScrollBarUI
();
}
/**
* @inheritDoc
*/
@Override
protected
void
installDefaults
()
{
//NOTE: This next line of code was added because, since incrGap and decrGap in
//BasicScrollBarUI are private, I need to have some way of updating them.
//This is an incomplete solution (since it implies that the incrGap and decrGap
//are set once, and not reset per state. Probably ok, but not always ok).
//This line of code should be removed at the same time that incrGap and
//decrGap are removed and made protected in the super class.
super
.
installDefaults
();
trackHighlight
=
NO_HIGHLIGHT
;
if
(
scrollbar
.
getLayout
()
==
null
||
(
scrollbar
.
getLayout
()
instanceof
UIResource
))
{
...
...
@@ -73,6 +65,10 @@ class SynthScrollBarUI extends BasicScrollBarUI implements
updateStyle
(
scrollbar
);
}
/**
* @inheritDoc
*/
@Override
protected
void
configureScrollBarColors
()
{
}
...
...
@@ -137,16 +133,28 @@ class SynthScrollBarUI extends BasicScrollBarUI implements
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
protected
void
installListeners
()
{
super
.
installListeners
();
scrollbar
.
addPropertyChangeListener
(
this
);
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallListeners
()
{
super
.
uninstallListeners
();
scrollbar
.
removePropertyChangeListener
(
this
);
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallDefaults
(){
SynthContext
context
=
getContext
(
scrollbar
,
ENABLED
);
style
.
uninstallDefaults
(
context
);
...
...
@@ -166,9 +174,12 @@ class SynthScrollBarUI extends BasicScrollBarUI implements
super
.
uninstallDefaults
();
}
/**
* @inheritDoc
*/
@Override
public
SynthContext
getContext
(
JComponent
c
)
{
return
getContext
(
c
,
getComponentState
(
c
));
return
getContext
(
c
,
SynthLookAndFeel
.
getComponentState
(
c
));
}
private
SynthContext
getContext
(
JComponent
c
,
int
state
)
{
...
...
@@ -176,14 +187,6 @@ class SynthScrollBarUI extends BasicScrollBarUI implements
SynthLookAndFeel
.
getRegion
(
c
),
style
,
state
);
}
private
Region
getRegion
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getRegion
(
c
);
}
private
int
getComponentState
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getComponentState
(
c
);
}
private
SynthContext
getContext
(
JComponent
c
,
Region
region
)
{
return
getContext
(
c
,
region
,
getComponentState
(
c
,
region
));
}
...
...
@@ -206,6 +209,10 @@ class SynthScrollBarUI extends BasicScrollBarUI implements
return
SynthLookAndFeel
.
getComponentState
(
c
);
}
/**
* @inheritDoc
*/
@Override
public
boolean
getSupportsAbsolutePositioning
()
{
SynthContext
context
=
getContext
(
scrollbar
);
boolean
value
=
style
.
getBoolean
(
context
,
...
...
@@ -214,6 +221,10 @@ class SynthScrollBarUI extends BasicScrollBarUI implements
return
value
;
}
/**
* @inheritDoc
*/
@Override
public
void
update
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -225,6 +236,10 @@ class SynthScrollBarUI extends BasicScrollBarUI implements
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
paint
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -232,6 +247,12 @@ class SynthScrollBarUI extends BasicScrollBarUI implements
context
.
dispose
();
}
/**
* Paints the specified component.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
*/
protected
void
paint
(
SynthContext
context
,
Graphics
g
)
{
SynthContext
subcontext
=
getContext
(
scrollbar
,
Region
.
SCROLL_BAR_TRACK
);
...
...
@@ -243,31 +264,49 @@ class SynthScrollBarUI extends BasicScrollBarUI implements
subcontext
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintScrollBarBorder
(
context
,
g
,
x
,
y
,
w
,
h
,
scrollbar
.
getOrientation
());
}
protected
void
paintTrack
(
SynthContext
ss
,
Graphics
g
,
/**
* Paints the scrollbar track.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
* @param trackBounds bounding box for the track
*/
protected
void
paintTrack
(
SynthContext
context
,
Graphics
g
,
Rectangle
trackBounds
)
{
SynthLookAndFeel
.
updateSubregion
(
ss
,
g
,
trackBounds
);
ss
.
getPainter
().
paintScrollBarTrackBackground
(
ss
,
g
,
trackBounds
.
x
,
SynthLookAndFeel
.
updateSubregion
(
context
,
g
,
trackBounds
);
context
.
getPainter
().
paintScrollBarTrackBackground
(
context
,
g
,
trackBounds
.
x
,
trackBounds
.
y
,
trackBounds
.
width
,
trackBounds
.
height
,
scrollbar
.
getOrientation
());
ss
.
getPainter
().
paintScrollBarTrackBorder
(
ss
,
g
,
trackBounds
.
x
,
context
.
getPainter
().
paintScrollBarTrackBorder
(
context
,
g
,
trackBounds
.
x
,
trackBounds
.
y
,
trackBounds
.
width
,
trackBounds
.
height
,
scrollbar
.
getOrientation
());
}
protected
void
paintThumb
(
SynthContext
ss
,
Graphics
g
,
/**
* Paints the scrollbar thumb.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
* @param thumbBounds bounding box for the thumb
*/
protected
void
paintThumb
(
SynthContext
context
,
Graphics
g
,
Rectangle
thumbBounds
)
{
SynthLookAndFeel
.
updateSubregion
(
ss
,
g
,
thumbBounds
);
SynthLookAndFeel
.
updateSubregion
(
context
,
g
,
thumbBounds
);
int
orientation
=
scrollbar
.
getOrientation
();
ss
.
getPainter
().
paintScrollBarThumbBackground
(
ss
,
g
,
thumbBounds
.
x
,
context
.
getPainter
().
paintScrollBarThumbBackground
(
context
,
g
,
thumbBounds
.
x
,
thumbBounds
.
y
,
thumbBounds
.
width
,
thumbBounds
.
height
,
orientation
);
ss
.
getPainter
().
paintScrollBarThumbBorder
(
ss
,
g
,
thumbBounds
.
x
,
context
.
getPainter
().
paintScrollBarThumbBorder
(
context
,
g
,
thumbBounds
.
x
,
thumbBounds
.
y
,
thumbBounds
.
width
,
thumbBounds
.
height
,
orientation
);
}
...
...
@@ -288,6 +327,7 @@ class SynthScrollBarUI extends BasicScrollBarUI implements
* @see #getMaximumSize
* @see #getMinimumSize
*/
@Override
public
Dimension
getPreferredSize
(
JComponent
c
)
{
Insets
insets
=
c
.
getInsets
();
return
(
scrollbar
.
getOrientation
()
==
JScrollBar
.
VERTICAL
)
...
...
@@ -295,6 +335,10 @@ class SynthScrollBarUI extends BasicScrollBarUI implements
:
new
Dimension
(
48
,
scrollBarWidth
+
insets
.
top
+
insets
.
bottom
);
}
/**
* @inheritDoc
*/
@Override
protected
Dimension
getMinimumThumbSize
()
{
if
(!
validMinimumThumbSize
)
{
if
(
scrollbar
.
getOrientation
()
==
JScrollBar
.
VERTICAL
)
{
...
...
@@ -308,6 +352,10 @@ class SynthScrollBarUI extends BasicScrollBarUI implements
return
minimumThumbSize
;
}
/**
* @inheritDoc
*/
@Override
protected
JButton
createDecreaseButton
(
int
orientation
)
{
SynthArrowButton
synthArrowButton
=
new
SynthArrowButton
(
orientation
)
{
@Override
...
...
@@ -333,6 +381,10 @@ class SynthScrollBarUI extends BasicScrollBarUI implements
return
synthArrowButton
;
}
/**
* @inheritDoc
*/
@Override
protected
JButton
createIncreaseButton
(
int
orientation
)
{
SynthArrowButton
synthArrowButton
=
new
SynthArrowButton
(
orientation
)
{
@Override
...
...
@@ -360,6 +412,10 @@ class SynthScrollBarUI extends BasicScrollBarUI implements
return
synthArrowButton
;
}
/**
* @inheritDoc
*/
@Override
protected
void
setThumbRollover
(
boolean
active
)
{
if
(
isThumbRollover
()
!=
active
)
{
scrollbar
.
repaint
(
getThumbBounds
());
...
...
src/share/classes/javax/swing/plaf/synth/SynthScrollPaneUI.java
浏览文件 @
49d9d970
...
...
@@ -40,24 +40,32 @@ import java.awt.event.ContainerEvent;
import
java.awt.event.FocusListener
;
import
java.awt.event.FocusEvent
;
import
sun.swing.plaf.synth.SynthUI
;
/**
* Synth's ScrollPaneUI.
* Provides the Synth L&F UI delegate for
* {@link javax.swing.JScrollPane}.
*
* @author Scott Violet
* @since 1.7
*/
class
SynthScrollPaneUI
extends
BasicScrollPaneUI
implements
PropertyChangeListener
,
SynthUI
{
public
class
SynthScrollPaneUI
extends
BasicScrollPaneUI
implements
PropertyChangeListener
,
SynthUI
{
private
SynthStyle
style
;
private
boolean
viewportViewHasFocus
=
false
;
private
ViewportViewFocusHandler
viewportViewFocusHandler
;
/**
* Creates a new UI object for the given component.
*
* @param x component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
x
)
{
return
new
SynthScrollPaneUI
();
}
/**
* @inheritDoc
*/
@Override
public
void
update
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -69,6 +77,9 @@ class SynthScrollPaneUI extends BasicScrollPaneUI implements
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
paint
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -77,6 +88,12 @@ class SynthScrollPaneUI extends BasicScrollPaneUI implements
context
.
dispose
();
}
/**
* Paints the specified component.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
*/
protected
void
paint
(
SynthContext
context
,
Graphics
g
)
{
Border
vpBorder
=
scrollpane
.
getViewportBorder
();
if
(
vpBorder
!=
null
)
{
...
...
@@ -85,12 +102,18 @@ class SynthScrollPaneUI extends BasicScrollPaneUI implements
}
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
context
.
getPainter
().
paintScrollPaneBorder
(
context
,
g
,
x
,
y
,
w
,
h
);
}
/**
* @inheritDoc
*/
@Override
protected
void
installDefaults
(
JScrollPane
scrollpane
)
{
updateStyle
(
scrollpane
);
...
...
@@ -114,7 +137,9 @@ class SynthScrollPaneUI extends BasicScrollPaneUI implements
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
protected
void
installListeners
(
JScrollPane
c
)
{
super
.
installListeners
(
c
);
...
...
@@ -129,6 +154,9 @@ class SynthScrollPaneUI extends BasicScrollPaneUI implements
}
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallDefaults
(
JScrollPane
c
)
{
SynthContext
context
=
getContext
(
c
,
ENABLED
);
...
...
@@ -141,7 +169,9 @@ class SynthScrollPaneUI extends BasicScrollPaneUI implements
}
}
/**
* @inheritDoc
*/
@Override
protected
void
uninstallListeners
(
JComponent
c
)
{
super
.
uninstallListeners
(
c
);
...
...
@@ -156,7 +186,10 @@ class SynthScrollPaneUI extends BasicScrollPaneUI implements
}
}
/**
* @inheritDoc
*/
@Override
public
SynthContext
getContext
(
JComponent
c
)
{
return
getContext
(
c
,
getComponentState
(
c
));
}
...
...
@@ -166,12 +199,6 @@ class SynthScrollPaneUI extends BasicScrollPaneUI implements
SynthLookAndFeel
.
getRegion
(
c
),
style
,
state
);
}
private
Region
getRegion
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getRegion
(
c
);
}
private
int
getComponentState
(
JComponent
c
)
{
int
baseState
=
SynthLookAndFeel
.
getComponentState
(
c
);
if
(
viewportViewFocusHandler
!=
null
&&
viewportViewHasFocus
){
...
...
src/share/classes/javax/swing/plaf/synth/SynthSeparatorUI.java
浏览文件 @
49d9d970
...
...
@@ -34,33 +34,51 @@ import javax.swing.plaf.ComponentUI;
import
javax.swing.plaf.SeparatorUI
;
import
javax.swing.plaf.UIResource
;
import
javax.swing.plaf.DimensionUIResource
;
import
sun.swing.plaf.synth.SynthUI
;
/**
*
A Synth L&F implementation of SeparatorUI. This implementation
*
is a "combined" view/controller
.
*
Provides the Synth L&F UI delegate for
*
{@link javax.swing.JSeparator}
.
*
* @author Shannon Hickey
* @author Joshua Outwater
* @since 1.7
*/
class
SynthSeparatorUI
extends
SeparatorUI
implements
PropertyChangeListener
,
SynthUI
{
public
class
SynthSeparatorUI
extends
SeparatorUI
implements
PropertyChangeListener
,
SynthUI
{
private
SynthStyle
style
;
/**
* Creates a new UI object for the given component.
*
* @param c component to create UI object for
* @return the UI object
*/
public
static
ComponentUI
createUI
(
JComponent
c
)
{
return
new
SynthSeparatorUI
();
}
/**
* @inheritDoc
*/
@Override
public
void
installUI
(
JComponent
c
)
{
installDefaults
((
JSeparator
)
c
);
installListeners
((
JSeparator
)
c
);
}
public
void
uninstallDefaults
(
JComponent
c
)
{
/**
* @inheritDoc
*/
@Override
public
void
uninstallUI
(
JComponent
c
)
{
uninstallListeners
((
JSeparator
)
c
);
uninstallDefaults
((
JSeparator
)
c
);
}
/**
* Installs default setting. This method is called when a
* {@code LookAndFeel} is installed.
*/
public
void
installDefaults
(
JSeparator
c
)
{
updateStyle
(
c
);
}
...
...
@@ -88,6 +106,10 @@ class SynthSeparatorUI extends SeparatorUI implements PropertyChangeListener,
context
.
dispose
();
}
/**
* Uninstalls default setting. This method is called when a
* {@code LookAndFeel} is uninstalled.
*/
public
void
uninstallDefaults
(
JSeparator
c
)
{
SynthContext
context
=
getContext
(
c
,
ENABLED
);
...
...
@@ -96,14 +118,26 @@ class SynthSeparatorUI extends SeparatorUI implements PropertyChangeListener,
style
=
null
;
}
/**
* Installs listeners. This method is called when a
* {@code LookAndFeel} is installed.
*/
public
void
installListeners
(
JSeparator
c
)
{
c
.
addPropertyChangeListener
(
this
);
}
/**
* Uninstalls listeners. This method is called when a
* {@code LookAndFeel} is uninstalled.
*/
public
void
uninstallListeners
(
JSeparator
c
)
{
c
.
removePropertyChangeListener
(
this
);
}
/**
* @inheritDoc
*/
@Override
public
void
update
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -116,6 +150,10 @@ class SynthSeparatorUI extends SeparatorUI implements PropertyChangeListener,
context
.
dispose
();
}
/**
* @inheritDoc
*/
@Override
public
void
paint
(
Graphics
g
,
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -123,6 +161,12 @@ class SynthSeparatorUI extends SeparatorUI implements PropertyChangeListener,
context
.
dispose
();
}
/**
* Paints the specified component.
*
* @param context context for the component being painted
* @param g {@code Graphics} object used for painting
*/
protected
void
paint
(
SynthContext
context
,
Graphics
g
)
{
JSeparator
separator
=
(
JSeparator
)
context
.
getComponent
();
context
.
getPainter
().
paintSeparatorForeground
(
context
,
g
,
0
,
0
,
...
...
@@ -130,6 +174,10 @@ class SynthSeparatorUI extends SeparatorUI implements PropertyChangeListener,
separator
.
getOrientation
());
}
/**
* @inheritDoc
*/
@Override
public
void
paintBorder
(
SynthContext
context
,
Graphics
g
,
int
x
,
int
y
,
int
w
,
int
h
)
{
JSeparator
separator
=
(
JSeparator
)
context
.
getComponent
();
...
...
@@ -137,6 +185,10 @@ class SynthSeparatorUI extends SeparatorUI implements PropertyChangeListener,
separator
.
getOrientation
());
}
/**
* @inheritDoc
*/
@Override
public
Dimension
getPreferredSize
(
JComponent
c
)
{
SynthContext
context
=
getContext
(
c
);
...
...
@@ -155,16 +207,28 @@ class SynthSeparatorUI extends SeparatorUI implements PropertyChangeListener,
return
size
;
}
/**
* @inheritDoc
*/
@Override
public
Dimension
getMinimumSize
(
JComponent
c
)
{
return
getPreferredSize
(
c
);
}
/**
* @inheritDoc
*/
@Override
public
Dimension
getMaximumSize
(
JComponent
c
)
{
return
new
Dimension
(
Short
.
MAX_VALUE
,
Short
.
MAX_VALUE
);
}
/**
* @inheritDoc
*/
@Override
public
SynthContext
getContext
(
JComponent
c
)
{
return
getContext
(
c
,
getComponentState
(
c
));
return
getContext
(
c
,
SynthLookAndFeel
.
getComponentState
(
c
));
}
private
SynthContext
getContext
(
JComponent
c
,
int
state
)
{
...
...
@@ -172,14 +236,6 @@ class SynthSeparatorUI extends SeparatorUI implements PropertyChangeListener,
SynthLookAndFeel
.
getRegion
(
c
),
style
,
state
);
}
private
Region
getRegion
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getRegion
(
c
);
}
private
int
getComponentState
(
JComponent
c
)
{
return
SynthLookAndFeel
.
getComponentState
(
c
);
}
public
void
propertyChange
(
PropertyChangeEvent
evt
)
{
if
(
SynthLookAndFeel
.
shouldUpdateStyle
(
evt
))
{
updateStyle
((
JSeparator
)
evt
.
getSource
());
...
...
src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java
浏览文件 @
49d9d970
此差异已折叠。
点击以展开。
src/share/classes/javax/swing/plaf/synth/SynthSpinnerUI.java
浏览文件 @
49d9d970
此差异已折叠。
点击以展开。
src/share/classes/javax/swing/plaf/synth/SynthSplitPaneUI.java
浏览文件 @
49d9d970
此差异已折叠。
点击以展开。
src/share/classes/javax/swing/plaf/synth/SynthStyle.java
浏览文件 @
49d9d970
...
...
@@ -33,7 +33,6 @@ import javax.swing.text.DefaultEditorKit;
import
java.util.HashMap
;
import
java.util.Map
;
import
javax.swing.text.JTextComponent
;
import
sun.swing.plaf.synth.SynthUI
;
/**
* <code>SynthStyle</code> is a set of style properties.
...
...
src/share/classes/javax/swing/plaf/synth/SynthStyleFactory.java
浏览文件 @
49d9d970
...
...
@@ -24,10 +24,7 @@
*/
package
javax.swing.plaf.synth
;
import
java.awt.*
;
import
java.util.*
;
import
javax.swing.plaf.*
;
import
javax.swing.*
;
import
javax.swing.JComponent
;
/**
* Factory used for obtaining <code>SynthStyle</code>s. Each of the
...
...
src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java
浏览文件 @
49d9d970
此差异已折叠。
点击以展开。
src/share/classes/javax/swing/plaf/synth/SynthTableHeaderUI.java
浏览文件 @
49d9d970
此差异已折叠。
点击以展开。
src/share/classes/javax/swing/plaf/synth/SynthTableUI.java
浏览文件 @
49d9d970
此差异已折叠。
点击以展开。
src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java
浏览文件 @
49d9d970
此差异已折叠。
点击以展开。
src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java
浏览文件 @
49d9d970
此差异已折叠。
点击以展开。
src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java
浏览文件 @
49d9d970
此差异已折叠。
点击以展开。
src/share/classes/javax/swing/plaf/synth/SynthToggleButtonUI.java
浏览文件 @
49d9d970
此差异已折叠。
点击以展开。
src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java
浏览文件 @
49d9d970
此差异已折叠。
点击以展开。
src/share/classes/javax/swing/plaf/synth/SynthToolTipUI.java
浏览文件 @
49d9d970
此差异已折叠。
点击以展开。
src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java
浏览文件 @
49d9d970
此差异已折叠。
点击以展开。
src/share/classes/
sun
/swing/plaf/synth/SynthUI.java
→
src/share/classes/
javax
/swing/plaf/synth/SynthUI.java
浏览文件 @
49d9d970
此差异已折叠。
点击以展开。
src/share/classes/javax/swing/plaf/synth/SynthViewportUI.java
浏览文件 @
49d9d970
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录