feat(jdk8): move files to new folder to avoid resources compiled.
This commit is contained in:
175
jdkSrc/jdk8/com/sun/java/swing/plaf/motif/MotifTextUI.java
Normal file
175
jdkSrc/jdk8/com/sun/java/swing/plaf/motif/MotifTextUI.java
Normal file
@@ -0,0 +1,175 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 1998, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
package com.sun.java.swing.plaf.motif;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.text.*;
|
||||
import javax.swing.plaf.*;
|
||||
|
||||
/**
|
||||
* Provides the look and feel features that are common across
|
||||
* the Motif/CDE text LAF implementations.
|
||||
* <p>
|
||||
* <strong>Warning:</strong>
|
||||
* Serialized objects of this class will not be compatible with
|
||||
* future Swing releases. The current serialization support is appropriate
|
||||
* for short term storage or RMI between applications running the same
|
||||
* version of Swing. A future release of Swing will provide support for
|
||||
* long term persistence.
|
||||
*
|
||||
* @author Timothy Prinzing
|
||||
*/
|
||||
public class MotifTextUI {
|
||||
|
||||
/**
|
||||
* Creates the object to use for a caret for all of the Motif
|
||||
* text components. The caret is rendered as an I-beam on Motif.
|
||||
*
|
||||
* @return the caret object
|
||||
*/
|
||||
public static Caret createCaret() {
|
||||
return new MotifCaret();
|
||||
}
|
||||
|
||||
/**
|
||||
* The motif caret is rendered as an I beam.
|
||||
* <p>
|
||||
* <strong>Warning:</strong>
|
||||
* Serialized objects of this class will not be compatible with
|
||||
* future Swing releases. The current serialization support is appropriate
|
||||
* for short term storage or RMI between applications running the same
|
||||
* version of Swing. A future release of Swing will provide support for
|
||||
* long term persistence.
|
||||
*/
|
||||
public static class MotifCaret extends DefaultCaret implements UIResource {
|
||||
|
||||
/**
|
||||
* Called when the component containing the caret gains
|
||||
* focus. This is implemented to repaint the component
|
||||
* so the focus rectangle will be re-rendered, as well
|
||||
* as providing the superclass behavior.
|
||||
*
|
||||
* @param e the focus event
|
||||
* @see FocusListener#focusGained
|
||||
*/
|
||||
public void focusGained(FocusEvent e) {
|
||||
super.focusGained(e);
|
||||
getComponent().repaint();
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the component containing the caret loses
|
||||
* focus. This is implemented to set the caret to visibility
|
||||
* to false.
|
||||
*
|
||||
* @param e the focus event
|
||||
* @see FocusListener#focusLost
|
||||
*/
|
||||
public void focusLost(FocusEvent e) {
|
||||
super.focusLost(e);
|
||||
getComponent().repaint();
|
||||
}
|
||||
|
||||
/**
|
||||
* Damages the area surrounding the caret to cause
|
||||
* it to be repainted. If paint() is reimplemented,
|
||||
* this method should also be reimplemented.
|
||||
*
|
||||
* @param r the current location of the caret, does nothing if null
|
||||
* @see #paint
|
||||
*/
|
||||
protected void damage(Rectangle r) {
|
||||
if (r != null) {
|
||||
x = r.x - IBeamOverhang - 1;
|
||||
y = r.y;
|
||||
width = r.width + (2 * IBeamOverhang) + 3;
|
||||
height = r.height;
|
||||
repaint();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Renders the caret as a vertical line. If this is reimplemented
|
||||
* the damage method should also be reimplemented as it assumes the
|
||||
* shape of the caret is a vertical line. Does nothing if isVisible()
|
||||
* is false. The caret color is derived from getCaretColor() if
|
||||
* the component has focus, else from getDisabledTextColor().
|
||||
*
|
||||
* @param g the graphics context
|
||||
* @see #damage
|
||||
*/
|
||||
public void paint(Graphics g) {
|
||||
if(isVisible()) {
|
||||
try {
|
||||
JTextComponent c = getComponent();
|
||||
Color fg = c.hasFocus() ? c.getCaretColor() :
|
||||
c.getDisabledTextColor();
|
||||
TextUI mapper = c.getUI();
|
||||
int dot = getDot();
|
||||
Rectangle r = mapper.modelToView(c, dot);
|
||||
int x0 = r.x - IBeamOverhang;
|
||||
int x1 = r.x + IBeamOverhang;
|
||||
int y0 = r.y + 1;
|
||||
int y1 = r.y + r.height - 2;
|
||||
g.setColor(fg);
|
||||
g.drawLine(r.x, y0, r.x, y1);
|
||||
g.drawLine(x0, y0, x1, y0);
|
||||
g.drawLine(x0, y1, x1, y1);
|
||||
} catch (BadLocationException e) {
|
||||
// can't render I guess
|
||||
//System.err.println("Can't render caret");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static final int IBeamOverhang = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* Default bindings all keymaps implementing the Motif feel.
|
||||
*/
|
||||
static final JTextComponent.KeyBinding[] defaultBindings = {
|
||||
new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_INSERT,
|
||||
InputEvent.CTRL_MASK),
|
||||
DefaultEditorKit.copyAction),
|
||||
new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_INSERT,
|
||||
InputEvent.SHIFT_MASK),
|
||||
DefaultEditorKit.pasteAction),
|
||||
new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,
|
||||
InputEvent.SHIFT_MASK),
|
||||
DefaultEditorKit.cutAction),
|
||||
new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT,
|
||||
InputEvent.SHIFT_MASK),
|
||||
DefaultEditorKit.selectionBackwardAction),
|
||||
new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT,
|
||||
InputEvent.SHIFT_MASK),
|
||||
DefaultEditorKit.selectionForwardAction),
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user