Commit 9288d112 by Graydon Hoare Committed by Graydon Hoare

ToggleButtonModel.java: Remove dead class.

2004-02-09  Graydon Hoare  <graydon@redhat.com>

	* javax/swing/ToggleButtonModel.java: Remove dead class.
	* javax/swing/plaf/basic/BasicDefaults.java: Remove dead class.
	* javax/swing/plaf/basic/BasicButtonListener.java: New class.
	* javax/swing/plaf/basic/BasicRootPaneUI.java: New class.
	* Makefile.am: Update for new and removed files.
	* Makefile.in: Regenerate.

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java: Initialize default hints.
	* javax/swing/AbstractButton.java
	(AbstractButton): Initialize fields correctly in ctor.
	* javax/swing/JCheckbox.java
	(JCheckBox): Override painting flags.
	* javax/swing/DefaultButtonModel.java: Conform to sun.
	* javax/swing/JComponent.java (paint): Fill with background color
	if available.
	(processComponentKeyEvent)
	(processFocusEvent)
	(processKeyEvent)
	(processMouseMotionEvent): Remove event-consuming empty methods.
	(getUIClassID): Return "ComponentUI" not "JComponent"
	* javax/swing/JFrame.java: Remove some debugging chatter.
	(JFrame): Subscribe to window events.
	* javax/swing/JRadioButton.java
	(JRadioButton): Override painting flags.
	* javax/swing/JRootPane.java
	(JRootPane): Set background from UIDefaults.
	* javax/swing/JToggleButton.java
	(ToggleButtonModel): New inner class.
	(JToggleButton): Override layout alighment.
	* javax/swing/SwingUtilities.java:
	(getLocalBounds): Return width and height, not x and y.
	(calculateInnerArea): Use local bounds, not bounds.
	(layoutCompoundLabel): Provide overridden form.
	(layoutCompoundLabel): Correct bugs.
	* javax/swing/UIDefaults.java: Correct comment.
	* javax/swing/plaf/basic/BasicButtonUI.java:
	Move most logic into defaults, external listener.
	(paintIcon): Implement icon painting.
	(paint): Fix state painting to conform to changes in model.
	* javax/swing/plaf/basic/BasicCheckBoxUI.java:
	Remove most dead/wrong methods.
	(getDefaultIcon): Return defaults.getIcon("CheckBox.icon").
	* javax/swing/plaf/basic/BasicIconFactory.java:
	(DummyIcon): New class.
	(getMenuItemCheckIcon)
	(getMenuItemArrowIcon)
	(getMenuArrowIcon)
	(getCheckBoxMenuItemIcon)
	(getRadioButtonMenuItemIcon)
	(createEmptyFrameIcon): Return DummyIcons, not null.
	(getCheckBoxIcon): Implement an icon that looks like sun's.
	(getRadioButtonIcon): Implement an icon that looks like sun's.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Fix impossible values, add some missing.
	* javax/swing/plaf/basic/BasicPanelUI.java (gap): Remove field.
	* javax/swing/plaf/basic/BasicRadioButtonUI.java:
	Remove most dead/wrong methods.
	(icon): New field.
	(getDefaultIcon): New method.
	* javax/swing/plaf/basic/BasicToggleButtonUI.java:
	Remove most dead/wrong methods.
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(getDefaults): Return super.getDefaults(), not BasicDefaults.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_clearRect):
	Implement "clearing" as drawing, when on pixmap drawables.

	* javax/swing/JButton.java (getUIClassID):
	* javax/swing/JCheckBox.java (getUIClassID):
	* javax/swing/JEditorPane.java (getUIClassID):
	* javax/swing/JLabel.java (getUIClassID):
	* javax/swing/JList.java (getUIClassID):
	* javax/swing/JOptionPane.java (getUIClassID):
	* javax/swing/JPanel.java (getUIClassID):
	* javax/swing/JPasswordField.java (uiClassID):
	* javax/swing/JRadioButton.java (getUIClassID):
	* javax/swing/JRootPane.java (getUIClassID):
	* javax/swing/JScrollPane.java (getUIClassID):
	* javax/swing/JTabbedPane.java (getUIClassID):
	* javax/swing/JToggleButton.java (getUIClassID):
	* javax/swing/JTree.java (getUIClassID):
	* javax/swing/JViewport.java (getUIClassID):
	* javax/swing/text/JTextComponent.java (getUIClassID):
	Return "fooUI" not "Jfoo"

From-SVN: r77686
parent feec8922
2004-02-09 Graydon Hoare <graydon@redhat.com>
* javax/swing/ToggleButtonModel.java: Remove dead class.
* javax/swing/plaf/basic/BasicDefaults.java: Remove dead class.
* javax/swing/plaf/basic/BasicButtonListener.java: New class.
* javax/swing/plaf/basic/BasicRootPaneUI.java: New class.
* Makefile.am: Update for new and removed files.
* Makefile.in: Regenerate.
* gnu/java/awt/peer/gtk/GdkGraphics2D.java: Initialize default hints.
* javax/swing/AbstractButton.java
(AbstractButton): Initialize fields correctly in ctor.
* javax/swing/JCheckbox.java
(JCheckBox): Override painting flags.
* javax/swing/DefaultButtonModel.java: Conform to sun.
* javax/swing/JComponent.java (paint): Fill with background color
if available.
(processComponentKeyEvent)
(processFocusEvent)
(processKeyEvent)
(processMouseMotionEvent): Remove event-consuming empty methods.
(getUIClassID): Return "ComponentUI" not "JComponent"
* javax/swing/JFrame.java: Remove some debugging chatter.
(JFrame): Subscribe to window events.
* javax/swing/JRadioButton.java
(JRadioButton): Override painting flags.
* javax/swing/JRootPane.java
(JRootPane): Set background from UIDefaults.
* javax/swing/JToggleButton.java
(ToggleButtonModel): New inner class.
(JToggleButton): Override layout alighment.
* javax/swing/SwingUtilities.java:
(getLocalBounds): Return width and height, not x and y.
(calculateInnerArea): Use local bounds, not bounds.
(layoutCompoundLabel): Provide overridden form.
(layoutCompoundLabel): Correct bugs.
* javax/swing/UIDefaults.java: Correct comment.
* javax/swing/plaf/basic/BasicButtonUI.java:
Move most logic into defaults, external listener.
(paintIcon): Implement icon painting.
(paint): Fix state painting to conform to changes in model.
* javax/swing/plaf/basic/BasicCheckBoxUI.java:
Remove most dead/wrong methods.
(getDefaultIcon): Return defaults.getIcon("CheckBox.icon").
* javax/swing/plaf/basic/BasicIconFactory.java:
(DummyIcon): New class.
(getMenuItemCheckIcon)
(getMenuItemArrowIcon)
(getMenuArrowIcon)
(getCheckBoxMenuItemIcon)
(getRadioButtonMenuItemIcon)
(createEmptyFrameIcon): Return DummyIcons, not null.
(getCheckBoxIcon): Implement an icon that looks like sun's.
(getRadioButtonIcon): Implement an icon that looks like sun's.
* javax/swing/plaf/basic/BasicLookAndFeel.java
(initComponentDefaults): Fix impossible values, add some missing.
* javax/swing/plaf/basic/BasicPanelUI.java (gap): Remove field.
* javax/swing/plaf/basic/BasicRadioButtonUI.java:
Remove most dead/wrong methods.
(icon): New field.
(getDefaultIcon): New method.
* javax/swing/plaf/basic/BasicToggleButtonUI.java:
Remove most dead/wrong methods.
* javax/swing/plaf/metal/MetalLookAndFeel.java
(getDefaults): Return super.getDefaults(), not BasicDefaults.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
(Java_gnu_java_awt_peer_gtk_GdkGraphics_clearRect):
Implement "clearing" as drawing, when on pixmap drawables.
* javax/swing/JButton.java (getUIClassID):
* javax/swing/JCheckBox.java (getUIClassID):
* javax/swing/JEditorPane.java (getUIClassID):
* javax/swing/JLabel.java (getUIClassID):
* javax/swing/JList.java (getUIClassID):
* javax/swing/JOptionPane.java (getUIClassID):
* javax/swing/JPanel.java (getUIClassID):
* javax/swing/JPasswordField.java (uiClassID):
* javax/swing/JRadioButton.java (getUIClassID):
* javax/swing/JRootPane.java (getUIClassID):
* javax/swing/JScrollPane.java (getUIClassID):
* javax/swing/JTabbedPane.java (getUIClassID):
* javax/swing/JToggleButton.java (getUIClassID):
* javax/swing/JTree.java (getUIClassID):
* javax/swing/JViewport.java (getUIClassID):
* javax/swing/text/JTextComponent.java (getUIClassID):
Return "fooUI" not "Jfoo"
2004-02-11 Michael Koch <konqueror@gmx.de>
* java/net/DatagramSocket.java
......
......@@ -1287,16 +1287,18 @@ javax/swing/border/TitledBorder.java \
javax/swing/GrayFilter.java \
javax/swing/AbstractAction.java \
javax/swing/AbstractButton.java \
javax/swing/plaf/basic/BasicButtonListener.java \
javax/swing/plaf/basic/BasicButtonUI.java \
javax/swing/plaf/basic/BasicCheckBoxUI.java \
javax/swing/plaf/basic/BasicDefaults.java \
javax/swing/plaf/basic/BasicGraphicsUtils.java \
javax/swing/plaf/basic/BasicLabelUI.java \
javax/swing/plaf/basic/BasicListUI.java \
javax/swing/plaf/basic/BasicOptionPaneUI.java \
javax/swing/plaf/basic/BasicPanelUI.java \
javax/swing/plaf/basic/BasicRootPaneUI.java \
javax/swing/plaf/basic/BasicRadioButtonUI.java \
javax/swing/plaf/basic/BasicScrollPaneUI.java \
javax/swing/plaf/basic/BasicSliderUI.java \
javax/swing/plaf/basic/BasicSplitPaneDivider.java \
javax/swing/plaf/basic/BasicSplitPaneUI.java \
javax/swing/plaf/basic/BasicTabbedPaneUI.java \
......@@ -1416,7 +1418,6 @@ javax/swing/Scrollable.java \
javax/swing/SwingConstants.java \
javax/swing/SwingUtilities.java \
javax/swing/Timer.java \
javax/swing/ToggleButtonModel.java \
javax/swing/UIDefaults.java \
javax/swing/UIManager.java \
javax/swing/UnsupportedLookAndFeelException.java \
......
......@@ -158,7 +158,7 @@ public class GdkGraphics2D extends Graphics2D
setFont (new Font("SansSerif", Font.PLAIN, 12));
setTransform (new AffineTransform ());
setStroke (new BasicStroke ());
setRenderingHints (new HashMap ());
setRenderingHints (getDefaultHints());
stateStack = new Stack();
}
......@@ -174,7 +174,7 @@ public class GdkGraphics2D extends Graphics2D
setFont (new Font("SansSerif", Font.PLAIN, 12));
setTransform (new AffineTransform ());
setStroke (new BasicStroke ());
setRenderingHints (new HashMap ());
setRenderingHints (getDefaultHints());
stateStack = new Stack ();
}
......
......@@ -186,19 +186,19 @@ public abstract class AbstractButton extends JComponent
String text;
/** The vertical alignment of the button's text and icon. */
int vert_align = CENTER;
int vert_align;
/** The horizontal alignment of the button's text and icon. */
int hori_align = CENTER;
int hori_align;
/** The horizontal position of the button's text relative to its icon. */
int hori_text_pos = CENTER;
int hori_text_pos;
/** The vertical position of the button's text relative to its icon. */
int vert_text_pos = CENTER;
int vert_text_pos;
/** Whether or not the button paints its border. */
boolean paint_border = true;
boolean paint_border;
/** Whether or not the button paints its focus state. */
boolean paint_focus;
......@@ -487,8 +487,16 @@ public abstract class AbstractButton extends JComponent
model.addChangeListener(changeListener);
model.addItemListener(itemListener);
hori_align = CENTER;
hori_text_pos = TRAILING;
vert_align = CENTER;
vert_text_pos = CENTER;
paint_border = true;
content_area_filled = true;
setAlignmentX(LEFT_ALIGNMENT);
setAlignmentY(CENTER_ALIGNMENT);
addFocusListener(new ButtonFocusListener());
updateUI();
}
......
......@@ -55,15 +55,23 @@ import javax.swing.event.EventListenerList;
* button. The concrete button type holding this state may be a a "toggle"
* button (checkbox, radio button) or a "push" button (menu button, button).
*
* Any change to the model's properties will trigger the firing of a
* ChangeEvent.
* If the model is disabled, only the "selected" property can be changed.
* An attempt to change the "armed", "rollover" or "pressed" properties
* while the model is disabled will be blocked.
*
* Any change to the "pressed" property will trigger the firing of an
* ItemEvent in addition to ChangeEvent.
* Any successful (non-blocked) change to the model's properties will
* trigger the firing of a ChangeEvent.
*
* Any change which causes the enabled, armed and pressed properties to
* simultaneously become <code>true</code> will trigger the firing of an
* ActionEvent in addition to the ChangeEvent.
* Any change to the "selected" property will trigger the firing of an
* ItemEvent in addition to ChangeEvent. This is true whether the model is
* enabled or not.
*
* One other state change is special: the transition from "enabled, armed
* and pressd" to "enabled, armed and not-pressed". This is considered the
* "trailing edge" of a successful mouse click, and therefore fires an
* ActionEvent in addition to a ChangeEvent.
*
* In all other respects this class is just a container of boolean flags.
*
* @author Graydon Hoare (graydon&064;redhat.com)
*/
......@@ -80,9 +88,9 @@ public class DefaultButtonModel implements ButtonModel, Serializable
be pressed or selected unless they are enabled. */
static int ENABLED = 2;
/** State constant indicating that the button has been fully
pressed. This usually happens when a user has released the mouse over a
previously "armed" button. */
/** State constant indicating that the user is holding down the button.
When this transitions from true to false, an ActionEvent may be fired,
depending on the value of the "armed" property.*/
static int PRESSED = 4;
/** State constant indicating that the mouse is currently positioned over
......@@ -108,8 +116,8 @@ public class DefaultButtonModel implements ButtonModel, Serializable
/** The group this model belongs to. Only one button in a group may be
selected at any given time. */
ButtonGroup group;
ButtonGroup group;
/** The key code (one of {@link java.awt.event.KeyEvent} VK_*) used to
press this button via a keyboard interface. */
int mnemonic;
......@@ -120,7 +128,8 @@ public class DefaultButtonModel implements ButtonModel, Serializable
public DefaultButtonModel()
{
stateMask = 0;
stateMask = ENABLED;
mnemonic = java.awt.event.KeyEvent.VK_UNDEFINED;
listenerList = new EventListenerList();
changeEvent = new ChangeEvent(this);
}
......@@ -143,10 +152,10 @@ public class DefaultButtonModel implements ButtonModel, Serializable
* @param l The listener to add
*/
public void addActionListener(ActionListener l)
{
{
listenerList.add(ActionListener.class, l);
}
}
/**
* Remove an ActionListener to the model. Usually only called to
* unsubscribe an AbstractButton's listener to the model.
......@@ -262,13 +271,15 @@ public class DefaultButtonModel implements ButtonModel, Serializable
if (oldstate == newstate)
return;
if ((stateflag != SELECTED)
&& (stateflag != ENABLED)
&& (stateMask & ENABLED) == 0)
return;
stateMask = newstate;
fireStateChanged(changeEvent);
if ((newstate & ENABLED) == 0)
return;
if ((oldstate & SELECTED) == 0
&& (newstate & SELECTED) == SELECTED)
fireItemStateChanged(new ItemEvent(this, ItemEvent.ITEM_STATE_CHANGED,
......@@ -278,27 +289,26 @@ public class DefaultButtonModel implements ButtonModel, Serializable
&& (newstate & SELECTED) == 0)
fireItemStateChanged(new ItemEvent(this, ItemEvent.ITEM_STATE_CHANGED,
null, ItemEvent.DESELECTED));
else if ((newstate & ARMED) == ARMED
&& (newstate & PRESSED) == PRESSED)
{
else if (((oldstate & ARMED) == ARMED && (oldstate & PRESSED) == PRESSED)
&&
((newstate & ARMED) == ARMED && (newstate & PRESSED) == 0))
{
fireActionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED,
actionCommand));
stateMask = stateMask & ~(PRESSED | ARMED);
}
}
}
/**
* Get the value of the model's "armed" property.
*
* @return The current "armed" property
*/
public boolean isArmed()
{
{
return (stateMask & ARMED) == ARMED;
}
}
/**
* Set the value of the model's "armed" property.
*
......@@ -396,7 +406,7 @@ public class DefaultButtonModel implements ButtonModel, Serializable
* @return The current "mnemonic" property
*/
public int getMnemonic()
{
{
return mnemonic;
}
......@@ -406,14 +416,14 @@ public class DefaultButtonModel implements ButtonModel, Serializable
* @param key The new "mnemonic" property
*/
public void setMnemonic(int key)
{
{
if (mnemonic != key)
{
{
mnemonic = key;
fireStateChanged(changeEvent);
}
}
}
/**
* Set the value of the model's "actionCommand" property. This property
* is used as the "command" property of the {@link ActionEvent} fired
......@@ -422,14 +432,14 @@ public class DefaultButtonModel implements ButtonModel, Serializable
* @param s The new "actionCommand" property.
*/
public void setActionCommand(String s)
{
{
if (actionCommand != s)
{
actionCommand = s;
fireStateChanged(changeEvent);
}
}
}
}
/**
* Set the value of the model's "actionCommand" property. This property
* is used as the "command" property of the {@link ActionEvent} fired
......@@ -438,7 +448,7 @@ public class DefaultButtonModel implements ButtonModel, Serializable
* @return The current "actionCommand" property
*/
public String getActionCommand()
{
{
return actionCommand;
}
......@@ -456,6 +466,6 @@ public class DefaultButtonModel implements ButtonModel, Serializable
{
group = g;
fireStateChanged(changeEvent);
}
}
}
}
}
......@@ -98,7 +98,7 @@ public class JButton extends AbstractButton implements Accessible
public String getUIClassID()
{
//Returns a string that specifies the name of the L&F class that renders this component.
return "JButton";
return "ButtonUI";
}
public boolean isDefaultButton()
......
......@@ -70,6 +70,8 @@ public class JCheckBox extends JToggleButton
public JCheckBox(String text, Icon icon)
{
super(text, icon);
paint_border = false;
content_area_filled = false;
}
......@@ -82,7 +84,7 @@ public class JCheckBox extends JToggleButton
public String getUIClassID()
{
//Returns a string that specifies the name of the L&F class that renders this component.
return "JCheckBox";
return "CheckBoxUI";
}
protected String paramString()
......
......@@ -763,9 +763,17 @@ public abstract class JComponent extends Container implements Serializable
if (use_double_buffer)
{
im = createImage (r.width, r.height);
g2 = im.getGraphics ();
g2.clearRect (0, 0, r.width, r.height);
im = createImage (r.width, r.height);
g2 = im.getGraphics ();
if (this.getBackground() != null)
{
Color save = g2.getColor();
g2.setColor(this.getBackground());
g2.fillRect (0, 0, r.width, r.height);
g2.setColor(save);
}
else
g2.clearRect(0, 0, r.width, r.height);
}
paintBorder(g2);
......@@ -837,28 +845,6 @@ public abstract class JComponent extends Container implements Serializable
// Returns a string representation of this JComponent.
return "JComponent";
}
protected void processComponentKeyEvent(KeyEvent e)
{
// Process any key events that the component itself recognizes.
//System.out.println("COMP_KEY-EVENT: " + e);
}
protected void processFocusEvent(FocusEvent e)
{
// Processes focus events occurring on this component by dispatching them to any registered FocusListener objects.
//System.out.println("FOCUS_EVENT: " + e);
}
protected void processKeyEvent(KeyEvent e)
{
// Override processKeyEvent to process events protected
//System.out.println("KEY-EVENT: " + e);
}
public void processMouseMotionEvent(MouseEvent e)
{
// Processes mouse motion events occurring on this component by dispatching them to any registered MouseMotionListener objects.
//System.out.println("COMP_MOUSE-EVENT: " + e + ", MEMORY = " + Runtime.getRuntime().freeMemory());
}
public void registerKeyboardAction(ActionListener anAction,
KeyStroke aKeyStroke,
......@@ -1044,7 +1030,7 @@ public abstract class JComponent extends Container implements Serializable
public String getUIClassID()
{
/// Return the UIDefaults key used to look up the name of the swing.
return "JComponent";
return "ComponentUI";
}
protected void setUI(ComponentUI newUI)
......
......@@ -137,7 +137,7 @@ public class JEditorPane extends JTextComponent
{ return super.getText(); }
public String getUIClassID()
{ return "JEditorPane"; }
{ return "EditorPaneUI"; }
public boolean isFocusCycleRoot()
{ return focus_root; }
......
......@@ -38,6 +38,7 @@ exception statement from your version. */
package javax.swing;
import java.awt.AWTEvent;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
......@@ -105,6 +106,7 @@ public class JFrame extends Frame
protected void frameInit()
{
super.setLayout(new BorderLayout(1, 1));
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
getRootPane(); // will do set/create
}
......@@ -201,9 +203,7 @@ public class JFrame extends Frame
protected void processWindowEvent(WindowEvent e)
{
// System.out.println("PROCESS_WIN_EV-1: " + e);
super.processWindowEvent(e);
// System.out.println("PROCESS_WIN_EV-2: " + e);
switch (e.getID())
{
case WindowEvent.WINDOW_CLOSING:
......@@ -212,13 +212,11 @@ public class JFrame extends Frame
{
case EXIT_ON_CLOSE:
{
System.out.println("user requested exit on close");
System.exit(1);
break;
}
case DISPOSE_ON_CLOSE:
{
System.out.println("user requested dispose on close");
dispose();
break;
}
......
......@@ -148,7 +148,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
{ return text; }
public String getUIClassID()
{ return "JLabel"; }
{ return "LabelUI"; }
public int getVerticalAlignment()
{
......
......@@ -212,7 +212,7 @@ public class JList extends JComponent implements Accessible, Scrollable
public String getUIClassID()
{
return "JList";
return "ListUI";
}
......
......@@ -161,7 +161,7 @@ public class JOptionPane extends JComponent
{ return val; }
public String getUIClassID()
{ return "JOptionPane"; }
{ return "OptionPaneUI"; }
public void setUI(OptionPaneUI ui) {
......
......@@ -85,7 +85,7 @@ public class JPanel extends JComponent implements Accessible
}
public String getUIClassID()
{ return "JPanel"; }
{ return "PanelUI"; }
public void setUI(PanelUI ui) {
......
......@@ -102,7 +102,7 @@ public class JPasswordField extends JTextField {
/**
* uiClassID
*/
private static final String uiClassID = "PasswordFIeldUI";
private static final String uiClassID = "PasswordFieldUI";
/**
* echoChar. Default is 0
......
......@@ -65,6 +65,8 @@ public class JRadioButton extends JToggleButton
public JRadioButton(String text, Icon icon)
{
super(text, icon);
paint_border = false;
content_area_filled = false;
}
......@@ -77,7 +79,7 @@ public class JRadioButton extends JToggleButton
public String getUIClassID()
{
//Returns a string that specifies the name of the L&F class that renders this component.
return "JRadioButton";
return "RadioButtonUI";
}
protected String paramString()
......
......@@ -75,7 +75,6 @@ public class JRootPane extends JComponent
public Dimension preferredLayoutSize ( Container c )
{
Dimension p = super.preferredLayoutSize(c);
System.out.println(" PREF-SIZE from RootLayout = " + p);
return p;
}
}
......@@ -97,7 +96,7 @@ public class JRootPane extends JComponent
/********************************************************/
public String getUIClassID()
{ return "JPanel"; }
{ return "RootPaneUI"; }
void setJMenuBar(JMenuBar m)
......@@ -169,7 +168,7 @@ public class JRootPane extends JComponent
JRootPane()
{
setLayout(createRootLayout());
setBackground(UIManager.getColor("control"));
getGlassPane();
getLayeredPane();
getContentPane();
......
......@@ -86,7 +86,7 @@ public class JScrollPane extends JComponent implements Accessible, ScrollPaneCon
public String getUIClassID()
{
//Returns a string that specifies the name of the L&F class that renders this component.
return "JScrollPane";
return "ScrollPaneUI";
}
public JViewport getViewport()
......
......@@ -102,7 +102,7 @@ public class JTabbedPane extends JComponent implements Accessible, SwingConstant
}
public String getUIClassID()
{ return "JTabbedPane"; }
{ return "TabbedPaneUI"; }
public void setUI(TabbedPaneUI ui) {
......
......@@ -44,66 +44,83 @@ import javax.swing.plaf.ButtonUI;
public class JToggleButton extends AbstractButton implements Accessible
{
public JToggleButton()
{
this(null, null);
}
public JToggleButton(Action a)
{
this();
setAction(a);
}
public JToggleButton(Icon icon)
{
this(null, icon);
}
public JToggleButton(String text)
public class ToggleButtonModel extends DefaultButtonModel
{
public void setPressed(boolean b)
{
this(text, null);
}
if (! isEnabled())
return;
public JToggleButton(String text, Icon icon)
{
this(text, icon, false);
super.setPressed(b);
// setPressed(false) == mouse release on us,
// if we were armed, we flip the selected state.
if (!b && isArmed())
setSelected(! isSelected());
}
}
public JToggleButton()
{
this(null, null);
}
public JToggleButton(Action a)
{
this();
setAction(a);
}
public JToggleButton(Icon icon)
{
this(null, icon);
}
public JToggleButton(String text)
{
this(text, null);
}
public JToggleButton(String text, Icon icon)
{
this(text, icon, false);
}
public JToggleButton (String text, Icon icon, boolean selected)
{
super(text, icon);
public JToggleButton (String text, Icon icon, boolean selected)
{
super(text, icon);
// Create the model
setModel(new ToggleButtonModel());
model.setSelected(selected);
}
hori_align = LEADING;
setModel(new ToggleButtonModel());
model.setSelected(selected);
}
public AccessibleContext getAccessibleContext()
{
//Gets the AccessibleContext associated with this JToggleButton.
return null;
}
public AccessibleContext getAccessibleContext()
{
//Gets the AccessibleContext associated with this JToggleButton.
return null;
}
public String getUIClassID()
{
//Returns a string that specifies the name of the L&F class that renders this component.
return "JToggleButton";
}
public String getUIClassID()
{
//Returns a string that specifies the name of the L&F class that renders this component.
return "ToggleButtonUI";
}
protected String paramString()
{
return "JToggleButton";
}
protected String paramString()
{
return "JToggleButton";
}
public void updateUI()
{
ButtonUI b = (ButtonUI)UIManager.getUI(this);
setUI(b);
}
public void updateUI()
{
ButtonUI b = (ButtonUI)UIManager.getUI(this);
setUI(b);
}
}
......
......@@ -83,7 +83,7 @@ public class JTree extends JComponent implements Scrollable, Accessible
public String getUIClassID()
{
return "JTree";
return "TreeUI";
}
......
......@@ -69,7 +69,7 @@ public class JViewport extends JComponent
public String getUIClassID()
{
return "JViewport";
return "ViewportUI";
}
public void updateUI()
......
......@@ -61,7 +61,7 @@ import javax.swing.plaf.ComponentUI;
/**
* UIDefaults is a database where all settings and interface bindings are
* stored into. An PLAF implementation fills one of these (see for example
* plaf/basic/BasicDefaults.java) with "JButton" -> new BasicButtonUI().
* plaf/basic/BasicLookAndFeel.java) with "ButtonUI" -> new BasicButtonUI().
*
* @author Ronald Veldema (rveldema@cs.vu.nl)
*/
......
......@@ -38,82 +38,28 @@ exception statement from your version. */
package javax.swing.plaf.basic;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Rectangle;
import javax.swing.AbstractButton;
import javax.swing.Icon;
import javax.swing.JComponent;
import javax.swing.UIDefaults;
import javax.swing.UIManager;
import javax.swing.plaf.ComponentUI;
public class BasicCheckBoxUI extends BasicRadioButtonUI
{
public static ComponentUI createUI(final JComponent c) {
return new BasicCheckBoxUI();
}
public void installUI(final JComponent c) {
super.installUI(c);
}
public Dimension getPreferredSize(JComponent c)
{
AbstractButton b = (AbstractButton)c;
Dimension d = BasicGraphicsUtils.getPreferredButtonSize(b, gap);
//System.out.println("^^^^^^^^^^^^^^^^^^^^^^ BASIC-PREF="+d + ",T="+b.text);
return d;
}
protected void paintFocus(Graphics g,
JComponent c,
Rectangle vr,
Rectangle tr,
Rectangle ir)
{
}
protected void paintIcon(Graphics g,
JComponent c,
Rectangle iconRect)
{
}
protected void paintButtonPressed(Graphics g,
JComponent b)
{
Dimension size = b.getSize();
g.setColor(pressedBackgroundColor);
g.fillRect(1,1,size.width-2, size.height-2);
}
protected void paintButtonNormal(Graphics g,
JComponent b)
{
Dimension size = b.getSize();
g.setColor(normalBackgroundColor);
g.fillRect(1,1,size.width-2, size.height-2);
}
protected void paintText(Graphics g,
JComponent c,
Rectangle textRect,
String text)
{
// AbstractButton b = (AbstractButton) c;
// System.out.println("drawing string: " + text + ", at:" + textRect);
g.setColor(textColor);
BasicGraphicsUtils.drawString(g,
text,
0,
textRect.x,
textRect.y);
}
public static ComponentUI createUI(final JComponent c) {
return new BasicCheckBoxUI();
}
public Icon getDefaultIcon()
{
UIDefaults defaults = UIManager.getLookAndFeelDefaults();
return defaults.getIcon("CheckBox.icon");
}
public void installUI(final JComponent c) {
super.installUI(c);
}
}
......
......@@ -39,7 +39,14 @@ exception statement from your version. */
package javax.swing.plaf.basic;
import java.io.Serializable;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Polygon;
import javax.swing.AbstractButton;
import javax.swing.Icon;
import javax.swing.UIDefaults;
import javax.swing.UIManager;
/**
* STUBBED
*/
......@@ -47,39 +54,156 @@ public class BasicIconFactory implements Serializable
{
static final long serialVersionUID = 5605588811185324383L;
static private class DummyIcon
implements Icon
{
public int getIconHeight() { return 10; }
public int getIconWidth() { return 10; }
public void paintIcon(Component c, Graphics g, int x, int y)
{
Color save = g.getColor();
g.setColor(c.getForeground());
g.drawRect(x, y, 10, 10);
g.setColor(save);
}
}
public BasicIconFactory()
{
}
public static Icon getMenuItemCheckIcon()
{
return null;
return new DummyIcon();
}
public static Icon getMenuItemArrowIcon()
{
return null;
return new DummyIcon();
}
public static Icon getMenuArrowIcon()
{
return null;
return new DummyIcon();
}
public static Icon getCheckBoxIcon()
{
return null;
return new Icon()
{
public int getIconHeight()
{
return 10;
}
public int getIconWidth()
{
return 10;
}
public void paintIcon(Component c, Graphics g, int x, int y)
{
if (c instanceof AbstractButton)
{
UIDefaults defaults;
defaults = UIManager.getLookAndFeelDefaults();
Color hi = defaults.getColor("CheckBox.highlight");
Color low = defaults.getColor("CheckBox.darkShadow");
Color sel = defaults.getColor("CheckBox.foreground");
Color dim = defaults.getColor("CheckBox.shadow");
Polygon check = new Polygon(new int[] {x+3, x+3, x+8},
new int[] {y+5, y+9, y+3}, 3);
AbstractButton b = (AbstractButton) c;
Color saved = g.getColor();
if (b.isEnabled())
{
g.setColor(low);
g.drawRect(x, y, 10, 10);
g.setColor(hi);
g.drawRect(x+1, y+1, 10, 10);
if (b.isSelected())
{
g.setColor(sel);
if (b.isSelected())
{
g.drawLine(x+3, y+5, x+3, y+8);
g.drawLine(x+4, y+5, x+4, y+8);
g.drawLine(x+3, y+8, x+8, y+3);
g.drawLine(x+4, y+8, x+8, y+3);
}
}
}
else
{
g.setColor(hi);
g.drawRect(x, y, 10, 10);
if (b.isSelected())
{
g.drawLine(x+3, y+5, x+3, y+9);
g.drawLine(x+3, y+9, x+8, y+3);
}
}
g.setColor(saved);
}
}
};
}
public static Icon getRadioButtonIcon()
{
return null;
return new Icon()
{
public int getIconHeight()
{
return 12;
}
public int getIconWidth()
{
return 12;
}
public void paintIcon(Component c, Graphics g, int x, int y)
{
UIDefaults defaults;
defaults = UIManager.getLookAndFeelDefaults();
Color hi = defaults.getColor("RadioButton.highlight");
Color low = defaults.getColor("RadioButton.darkShadow");
Color sel = defaults.getColor("RadioButton.foreground");
Color dim = defaults.getColor("RadioButton.shadow");
if (c instanceof AbstractButton)
{
AbstractButton b = (AbstractButton) c;
Color saved = g.getColor();
if (b.isEnabled())
{
g.setColor(low);
g.drawOval(x, y, 12, 12);
g.setColor(hi);
g.drawOval(x+1, y+1, 12, 12);
if (b.isSelected())
{
g.setColor(sel);
g.fillOval(x+4, y+4, 6, 6);
}
}
else
{
g.setColor(hi);
g.drawOval(x, y, 12, 12);
if (b.isSelected())
g.fillOval(x+4, y+4, 6, 6);
}
g.setColor(saved);
}
}
};
}
public static Icon getCheckBoxMenuItemIcon()
{
return null;
return new DummyIcon();
}
public static Icon getRadioButtonMenuItemIcon()
{
return null;
return new DummyIcon();
}
public static Icon createEmptyFrameIcon()
{
return null;
return new DummyIcon();
}
} // class BasicIconFactory
......@@ -227,29 +227,40 @@ public abstract class BasicLookAndFeel extends LookAndFeel
{
Object[] uiDefaults;
uiDefaults = new Object[] {
"AbstractUndoableEdit.undoText", "Undo",
"AbstractUndoableEdit.redoText", "Redo",
"Button.background", new ColorUIResource(Color.lightGray),
"Button.border", new BorderUIResource.CompoundBorderUIResource(null,
null),
"Button.border", BorderUIResource.getEtchedBorderUIResource(),
"Button.darkShadow", new ColorUIResource(Color.darkGray),
"Button.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
"SPACE", "pressed",
"released SPACE", "released"
}),
"Button.font", new FontUIResource("Dialog", Font.PLAIN, 12),
"Button.foreground", new ColorUIResource(Color.black),
"Button.highlight", new ColorUIResource(Color.white),
"Button.light", new ColorUIResource(Color.lightGray.brighter()),
"Button.margin", new InsetsUIResource(2, 14, 2, 14),
"Button.shadow", new ColorUIResource(Color.gray),
"Button.textIconGap", new Integer(4),
"Button.textShiftOffset", new Integer(0),
"CheckBox.background", new ColorUIResource(Color.lightGray),
"CheckBox.border", new BorderUIResource.CompoundBorderUIResource(null,
null),
"CheckBox.darkShadow", new ColorUIResource(Color.darkGray),
"CheckBox.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
"SPACE", "pressed",
"released SPACE", "released"
}),
"CheckBox.font", new FontUIResource("Dialog", Font.PLAIN, 12),
"CheckBox.foreground", new ColorUIResource(Color.black),
"CheckBox.highlight", new ColorUIResource(Color.white),
"CheckBox.icon", BasicIconFactory.getCheckBoxIcon(),
"CheckBox.light", new ColorUIResource(Color.lightGray.brighter()),
"CheckBox.margin",new InsetsUIResource(2, 2, 2, 2),
"CheckBox.shadow", new ColorUIResource(Color.gray),
"CheckBox.textIconGap", new Integer(4),
"CheckBox.textShiftOffset", new Integer(0),
"CheckBoxMenuItem.acceleratorFont", new FontUIResource("Dialog",
......@@ -540,7 +551,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel
"PopupMenu.font", new FontUIResource("Dialog", Font.PLAIN, 12),
"PopupMenu.foreground", new ColorUIResource(Color.black),
"ProgressBar.background", new ColorUIResource(Color.lightGray),
"ProgressBar.border", new BorderUIResource.LineBorderUIResource(null),
"ProgressBar.border", new BorderUIResource.LineBorderUIResource(Color.darkGray),
"ProgressBar.cellLength", new Integer(1),
"ProgressBar.cellSpacing", new Integer(0),
"ProgressBar.font", new FontUIResource("Dialog", Font.PLAIN, 12),
......@@ -550,14 +561,18 @@ public abstract class BasicLookAndFeel extends LookAndFeel
"RadioButton.background", new ColorUIResource(Color.lightGray),
"RadioButton.border", new BorderUIResource.CompoundBorderUIResource(null,
null),
"RadioButton.darkShadow", new ColorUIResource(Color.darkGray),
"RadioButton.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
"SPACE", "pressed",
"released SPACE", "released"
}),
"RadioButton.font", new FontUIResource("Dialog", Font.PLAIN, 12),
"RadioButton.foreground", new ColorUIResource(Color.black),
"RadioButton.highlight", new ColorUIResource(Color.white),
"RadioButton.icon", BasicIconFactory.getRadioButtonIcon(),
"RadioButton.light", new ColorUIResource(Color.lightGray.brighter()),
"RadioButton.margin", new InsetsUIResource(2, 2, 2, 2),
"RadioButton.shadow", new ColorUIResource(Color.gray),
"RadioButton.textIconGap", new Integer(4),
"RadioButton.textShiftOffset", new Integer(0),
"RadioButtonMenuItem.acceleratorFont", new FontUIResource("Dialog",
......@@ -742,7 +757,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel
"Table.background", new ColorUIResource(Color.white),
"Table.focusCellBackground", new ColorUIResource(Color.white),
"Table.focusCellForeground", new ColorUIResource(Color.black),
"Table.focusCellHighlightBorder", new BorderUIResource.LineBorderUIResource(null),
"Table.focusCellHighlightBorder", new BorderUIResource.LineBorderUIResource(Color.white),
"Table.font", new FontUIResource("Dialog", Font.PLAIN, 12),
"Table.foreground", new ColorUIResource(Color.black),
"Table.gridColor", new ColorUIResource(Color.gray),
......@@ -849,7 +864,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel
"ToolBar.foreground", new ColorUIResource(Color.black),
"ToolBar.separatorSize", new DimensionUIResource(10, 10),
"ToolTip.background", new ColorUIResource(Color.white),
"ToolTip.border", new BorderUIResource.LineBorderUIResource(null),
"ToolTip.border", new BorderUIResource.LineBorderUIResource(Color.lightGray),
"ToolTip.font", new FontUIResource("SansSerif", Font.PLAIN, 12),
"ToolTip.foreground", new ColorUIResource(Color.black),
"Tree.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
......@@ -860,7 +875,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel
// XXX Don't use gif
"Tree.closedIcon", new IconUIResource(new ImageIcon("icons/TreeClosed.gif")),
"Tree.drawsFocusBorderAroundIcon", Boolean.FALSE,
"Tree.editorBorder", new BorderUIResource.LineBorderUIResource(null),
"Tree.editorBorder", new BorderUIResource.LineBorderUIResource(Color.lightGray),
"Tree.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
"shift PAGE_DOWN", "scrollDownExtendSelection",
"PAGE_DOWN", "scrollDownChangeSelection",
......
......@@ -44,8 +44,6 @@ import javax.swing.plaf.PanelUI;
public class BasicPanelUI extends PanelUI
{
int gap = 3;
public static ComponentUI createUI(JComponent x)
{
return new BasicPanelUI();
......@@ -53,6 +51,6 @@ public class BasicPanelUI extends PanelUI
public void installUI(JComponent c)
{
super.installUI(c);
super.installUI(c);
}
}
......@@ -38,116 +38,42 @@ exception statement from your version. */
package javax.swing.plaf.basic;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Rectangle;
import javax.swing.AbstractButton;
import javax.swing.Icon;
import javax.swing.JComponent;
import javax.swing.UIDefaults;
import javax.swing.UIManager;
import javax.swing.plaf.ComponentUI;
public class BasicRadioButtonUI extends BasicToggleButtonUI
{
int large_circle_width = 20;
int circle_width = large_circle_width - 8; // FIXME: sun == ?
public static ComponentUI createUI(final JComponent c) {
return new BasicRadioButtonUI();
}
protected Icon icon;
public static ComponentUI createUI(final JComponent c) {
return new BasicRadioButtonUI();
}
public BasicRadioButtonUI()
{
icon = getDefaultIcon();
}
public void installUI(final JComponent c) {
super.installUI(c);
if (c instanceof AbstractButton)
{
AbstractButton b = (AbstractButton) c;
b.setIcon(icon);
}
}
public Icon getDefaultIcon()
{
UIDefaults defaults = UIManager.getLookAndFeelDefaults();
return defaults.getIcon("RadioButton.icon");
}
public void installUI(final JComponent c) {
super.installUI(c);
}
public Dimension getPreferredSize(JComponent c)
{
AbstractButton b = (AbstractButton)c;
Dimension d = BasicGraphicsUtils.getPreferredButtonSize(b, gap);
// and add a little something for the circles:
d.width += large_circle_width;
d.height = Math.max(large_circle_width, d.height);
//System.out.println("^^^^^^^^^^^^^^^^^^^^^^ BASIC-PREF="+d + ",T="+b.text);
return d;
}
protected void paintFocus(Graphics g,
JComponent c,
Rectangle vr,
Rectangle tr,
Rectangle ir)
{
}
protected void paintIcon(Graphics g,
JComponent c,
Rectangle iconRect)
{
}
protected void paintButtonPressed(Graphics g,
JComponent b)
{
Dimension size = b.getSize();
paintButtonNormal(g, b);
int x = gap;
int y = gap;
int diffp = 2;
int diff = 3;
g.setColor(textColor);
g.fillArc(x+diffp, y+diffp,
circle_width-diff, circle_width-diff,
0, 360);
}
protected void paintButtonNormal(Graphics g,
JComponent c)
{
AbstractButton b = (AbstractButton) c;
Dimension size = b.getSize();
g.setColor(normalBackgroundColor);
g.fillRect(1,1,size.width-2, size.height-2);
int x = gap;
int y = gap;
g.setColor(pressedBackgroundColor);
g.drawArc(x, y,
circle_width, circle_width,
0, 360);
g.setColor(new Color(255,255,255));
g.drawArc(x, y,
circle_width+1, circle_width+1,
145, 160);
}
protected void paintText(Graphics g,
JComponent c,
Rectangle textRect,
String text)
{
// AbstractButton b = (AbstractButton) c;
//System.out.println("drawing string: " + text + ", " + c.isEnabled());
g.setColor(c.isEnabled() ? textColor : disabledTextColor);
BasicGraphicsUtils.drawString(g,
text,
0,
textRect.x + circle_width + gap,
textRect.y);
}
}
......
......@@ -50,72 +50,7 @@ public class BasicToggleButtonUI extends BasicButtonUI
public static ComponentUI createUI(final JComponent c) {
return new BasicToggleButtonUI();
}
public void installUI(final JComponent c) {
super.installUI(c);
}
public Dimension getPreferredSize(JComponent c)
{
AbstractButton b = (AbstractButton)c;
Dimension d = BasicGraphicsUtils.getPreferredButtonSize(b, gap);
//System.out.println("^^^^^^^^^^^^^^^^^^^^^^ BASIC-PREF="+d + ",T="+b.text);
return d;
}
protected void paintFocus(Graphics g,
JComponent c,
Rectangle vr,
Rectangle tr,
Rectangle ir)
{
}
protected void paintIcon(Graphics g,
JComponent c,
Rectangle iconRect)
{
}
protected void paintButtonPressed(Graphics g,
JComponent b)
{
Dimension size = b.getSize();
g.setColor(pressedBackgroundColor);
g.fillRect(1,1,size.width-2, size.height-2);
}
protected void paintButtonNormal(Graphics g,
JComponent b)
{
Dimension size = b.getSize();
g.setColor(normalBackgroundColor);
g.fillRect(1,1,size.width-2, size.height-2);
}
protected void paintText(Graphics g,
JComponent c,
Rectangle textRect,
String text)
{
// AbstractButton b = (AbstractButton) c;
// System.out.println("drawing string: " + text + ", at:" + textRect);
g.setColor(textColor);
BasicGraphicsUtils.drawString(g,
text,
0,
textRect.x,
textRect.y);
}
}
}
......
......@@ -40,7 +40,6 @@ exception statement from your version. */
package javax.swing.plaf.metal;
import javax.swing.UIDefaults;
import javax.swing.plaf.basic.BasicDefaults;
import javax.swing.plaf.basic.BasicLookAndFeel;
public class MetalLookAndFeel extends BasicLookAndFeel
......@@ -61,7 +60,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel
public UIDefaults getDefaults()
{
if (LAF_defaults == null)
LAF_defaults = new BasicDefaults();
LAF_defaults = super.getDefaults();
// Returns the default values for this look and feel.
return LAF_defaults;
......
......@@ -406,7 +406,7 @@ public abstract class JTextComponent extends JComponent
public String getUIClassID()
{
// Returns a string that specifies the name of the l&f class that renders this component.
return "JTextComponent";
return "TextComponentUI";
}
public int getVerticalAlignment()
{
......
......@@ -316,12 +316,24 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_clearRect
(JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height)
{
struct graphics *g;
GdkGCValues saved;
g = (struct graphics *) NSA_GET_PTR (env, obj);
gdk_threads_enter ();
gdk_window_clear_area ((GdkWindow *)g->drawable,
x + g->x_offset, y + g->y_offset, width, height);
if (GDK_IS_WINDOW (g->drawable))
{
gdk_window_clear_area ((GdkWindow *)g->drawable,
x + g->x_offset, y + g->y_offset, width, height);
}
else
{
gdk_gc_get_values (g->gc, &saved);
gdk_gc_set_foreground (g->gc, &(saved.background));
gdk_draw_rectangle (g->drawable, g->gc, TRUE,
x + g->x_offset, y + g->y_offset, width, height);
gdk_gc_set_foreground (g->gc, &(saved.foreground));
}
gdk_threads_leave ();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment