Skip to content

Commit 064474c

Browse files
hansonrhansonr
authored andcommitted
JSDnD upgrade; JEditorPane, JTextPane initial support
1 parent 5a130f7 commit 064474c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+1111
-607
lines changed

sources/net.sf.j2s.java.core/src/java/awt/Component.java

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2462,7 +2462,7 @@ public Dimension minimumSize() {
24622462
minSize =
24632463
// (peer != null) ?
24642464
// peer.minimumSize() :
2465-
getSize();
2465+
size();
24662466
dim = minSize;
24672467
// }
24682468
}
@@ -3766,8 +3766,11 @@ protected void dispatchEventImplComp(AWTEvent e) {
37663766
/*
37673767
* 2. Allow the Toolkit to pass this to AWTEventListeners.
37683768
*/
3769-
// Toolkit toolkit = Toolkit.getDefaultToolkit();
3770-
// toolkit.notifyAWTEventListeners(e);
3769+
3770+
// SwingJS: This allows a developer to watch any events they wish to follow.
3771+
3772+
Toolkit toolkit = Toolkit.getDefaultToolkit();
3773+
toolkit.notifyAWTEventListeners(e);
37713774

37723775
/*
37733776
* 3. If no one has consumed a key event, allow the KeyboardFocusManager to
@@ -5210,9 +5213,12 @@ protected void processEvent(AWTEvent e) {
52105213
}
52115214

52125215
protected void processEventComp(AWTEvent e) {
5213-
if (e instanceof FocusEvent) {
5216+
boolean isActiveRetarget = /**@j2sNative !!e.dispatch$ ||*/false;
5217+
if (isActiveRetarget || e instanceof ActiveEvent) {
5218+
// SwingJS added because we are bypassing the standard queue
5219+
((ActiveEvent) e).dispatch();
5220+
} else if (e instanceof FocusEvent) {
52145221
processFocusEvent((FocusEvent) e);
5215-
52165222
} else if (e instanceof MouseEvent) {
52175223
switch (e.getID()) {
52185224
case MouseEvent.MOUSE_PRESSED:
@@ -7008,10 +7014,6 @@ public String toString() {
70087014
* java.beans.PropertyChangeListener)
70097015
*/
70107016
public void addPropertyChangeListener(PropertyChangeListener listener) {
7011-
addPropChangeListenerComp(listener);
7012-
}
7013-
7014-
protected void addPropChangeListenerComp(PropertyChangeListener listener) {
70157017
synchronized (getChangeSupportLock()) {
70167018
if (listener == null) {
70177019
return;
@@ -7100,10 +7102,6 @@ public PropertyChangeListener[] getPropertyChangeListeners() {
71007102
* java.beans.PropertyChangeListener)
71017103
*/
71027104
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
7103-
addPropChangeListComp(propertyName, listener);
7104-
}
7105-
7106-
protected void addPropChangeListComp(String propertyName, PropertyChangeListener listener) {
71077105
synchronized (getChangeSupportLock()) {
71087106
if (listener == null) {
71097107
return;

sources/net.sf.j2s.java.core/src/java/awt/Container.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1486,7 +1486,7 @@ public void layout() {
14861486
// The reason we don't care about w&h is that
14871487
// we can be working just with preferences here.
14881488
// This is when getPreferredSize() is copied to getSize()
1489-
if (layoutMgr != null)//BH out 11/16/18 && this.width > 0 && this.height > 0) {
1489+
if (layoutMgr != null)
14901490
layoutMgr.layoutContainer(this);
14911491
}
14921492

@@ -3560,8 +3560,8 @@ public void applyComponentOrientation(ComponentOrientation o) {
35603560
*
35613561
*/
35623562
@Override
3563-
public void addPropertyChangeListener(PropertyChangeListener listener) {
3564-
addPropChangeListenerComp(listener);
3563+
public void addPropertyChangeListener(PropertyChangeListener listener) {
3564+
super.addPropertyChangeListener(listener);
35653565
}
35663566

35673567
/**
@@ -3603,7 +3603,7 @@ public void addPropertyChangeListener(PropertyChangeListener listener) {
36033603
@Override
36043604
public void addPropertyChangeListener(String propertyName,
36053605
PropertyChangeListener listener) {
3606-
addPropChangeListComp(propertyName, listener);
3606+
super.addPropertyChangeListener(propertyName, listener);
36073607
}
36083608

36093609
// Serialization support. A Container is responsible for restoring the

sources/net.sf.j2s.java.core/src/java/awt/JSComponent.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import java.beans.PropertyChangeListener;
3232
import java.util.Arrays;
3333

34-
import javax.swing.ArrayTable;
3534
import javax.swing.JComponent;
3635
import javax.swing.RootPaneContainer;
3736
import javax.swing.UIDefaults;
@@ -42,7 +41,6 @@
4241
import swingjs.JSAppletViewer;
4342
import swingjs.JSFrameViewer;
4443
import swingjs.JSGraphics2D;
45-
import swingjs.api.js.DOMNode;
4644
import swingjs.api.js.HTML5Canvas;
4745
import swingjs.plaf.JSComponentUI;
4846

sources/net.sf.j2s.java.core/src/java/awt/Toolkit.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1256,13 +1256,13 @@ public PrintJob getPrintJob(Frame frame, String jobtitle,
12561256
}
12571257
}
12581258

1259-
//
1260-
// /**
1261-
// * Emits an audio beep.
1262-
// * @since JDK1.1
1263-
// */
1264-
// public abstract void beep();
1265-
//
1259+
1260+
/**
1261+
* Emits an audio beep.
1262+
* @since JDK1.1
1263+
*/
1264+
public abstract void beep();
1265+
12661266
/**
12671267
* Gets the singleton instance of the system Clipboard which interfaces
12681268
* with clipboard facilities provided by the native platform. This

sources/net.sf.j2s.java.core/src/java/awt/event/InputEvent.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,6 @@ public abstract class InputEvent extends ComponentEvent {
192192
*/
193193
protected int modifiers;
194194

195-
public int[] bdata;
196-
197195
/*
198196
* A flag that indicates that this instance can be used to access
199197
* the system clipboard.

sources/net.sf.j2s.java.core/src/java/awt/peer/ComponentPeer.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,9 @@ public interface ComponentPeer {
9090

9191
Point getLocationOnScreen();
9292

93+
// SwingJS -- never called by Java
9394
Dimension getPreferredSize();
94-
95+
//
9596
Dimension getMinimumSize();
9697

9798
ColorModel getColorModel();

sources/net.sf.j2s.java.core/src/javax/swing/JComponent.java

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3274,6 +3274,8 @@ public boolean acceptRequestFocus(Component from, Component to, boolean temporar
32743274
}
32753275
};
32763276

3277+
private static final Object JComponent_TRANSFER_HANDLER = "transfer_handler";
3278+
32773279
/**
32783280
* Returns the titled border text
32793281
*
@@ -4760,7 +4762,55 @@ DropLocation dropLocationForPoint(Point p) {
47604762
return null;
47614763
}
47624764

4763-
public TransferHandler getTransferHandler() {
4765+
/**
4766+
* Sets the {@code TransferHandler}, which provides support for transfer
4767+
* of data into and out of this component via cut/copy/paste and drag
4768+
* and drop. This may be {@code null} if the component does not support
4769+
* data transfer operations.
4770+
* <p>
4771+
* If the new {@code TransferHandler} is not {@code null}, this method
4772+
* also installs a <b>new</b> {@code DropTarget} on the component to
4773+
* activate drop handling through the {@code TransferHandler} and activate
4774+
* any built-in support (such as calculating and displaying potential drop
4775+
* locations). If you do not wish for this component to respond in any way
4776+
* to drops, you can disable drop support entirely either by removing the
4777+
* drop target ({@code setDropTarget(null)}) or by de-activating it
4778+
* ({@code getDropTaget().setActive(false)}).
4779+
* <p>
4780+
* If the new {@code TransferHandler} is {@code null}, this method removes
4781+
* the drop target.
4782+
* <p>
4783+
* Under two circumstances, this method does not modify the drop target:
4784+
* First, if the existing drop target on this component was explicitly
4785+
* set by the developer to a {@code non-null} value. Second, if the
4786+
* system property {@code suppressSwingDropSupport} is {@code true}. The
4787+
* default value for the system property is {@code false}.
4788+
* <p>
4789+
* Please see
4790+
* <a href="https://docs.oracle.com/javase/tutorial/uiswing/dnd/index.html">
4791+
* How to Use Drag and Drop and Data Transfer</a>,
4792+
* a section in <em>The Java Tutorial</em>, for more information.
4793+
*
4794+
* @param newHandler the new {@code TransferHandler}
4795+
*
4796+
* @see TransferHandler
4797+
* @see #getTransferHandler
4798+
* @since 1.4
4799+
* @beaninfo
4800+
* bound: true
4801+
* hidden: true
4802+
* description: Mechanism for transfer of data to and from the component
4803+
*/
4804+
public void setTransferHandler(TransferHandler newHandler) {
4805+
TransferHandler oldHandler = (TransferHandler)getClientProperty(
4806+
JComponent_TRANSFER_HANDLER);
4807+
putClientProperty(JComponent_TRANSFER_HANDLER, newHandler);
4808+
4809+
SwingUtilities.installSwingDropTargetAsNecessary(this, newHandler);
4810+
firePropertyChange("transferHandler", oldHandler, newHandler);
4811+
}
4812+
4813+
public TransferHandler getTransferHandler() {
47644814
return null;
47654815
}
47664816

sources/net.sf.j2s.java.core/src/javax/swing/JEditorPane.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@
2727
*/
2828
package javax.swing;
2929

30+
import java.awt.Component;
31+
import java.awt.Dimension;
32+
import java.awt.Graphics;
33+
import java.awt.Rectangle;
34+
import java.awt.Shape;
3035
import java.io.BufferedInputStream;
3136
import java.io.FilterInputStream;
3237
import java.io.IOException;
@@ -42,16 +47,11 @@
4247
import java.util.Hashtable;
4348
import java.util.Map;
4449

45-
import java.awt.Component;
46-
import java.awt.Dimension;
47-
import java.awt.Graphics;
48-
import java.awt.Rectangle;
49-
import java.awt.Shape;
5050
import javax.swing.event.DocumentEvent;
5151
import javax.swing.event.EventListenerList;
5252
import javax.swing.event.HyperlinkEvent;
5353
import javax.swing.event.HyperlinkListener;
54-
import javax.swing.plaf.TextUI;
54+
import javax.swing.plaf.ComponentUI;
5555
import javax.swing.text.BadLocationException;
5656
import javax.swing.text.BoxView;
5757
import javax.swing.text.Caret;
@@ -67,6 +67,7 @@
6767
import javax.swing.text.View;
6868
import javax.swing.text.ViewFactory;
6969
import javax.swing.text.WrappedPlainView;
70+
7071
import swingjs.JSAbstractDocument;
7172
import swingjs.api.Interface;
7273
import swingjs.api.JSMinimalAbstractDocument;
@@ -1440,7 +1441,7 @@ public Dimension getPreferredSize() {
14401441
Dimension d = getPrefSizeJComp();
14411442
if (getParent() instanceof JViewport) {
14421443
JViewport port = (JViewport)getParent();
1443-
TextUI ui = (TextUI) getUI();
1444+
ComponentUI ui = getUI();
14441445
int prefWidth = d.width;
14451446
int prefHeight = d.height;
14461447
if (! getScrollableTracksViewportWidth()) {
@@ -1578,7 +1579,7 @@ public String getText() {
15781579
public boolean getScrollableTracksViewportWidth() {
15791580
if (getParent() instanceof JViewport) {
15801581
JViewport port = (JViewport)getParent();
1581-
TextUI ui = (TextUI) getUI();
1582+
ComponentUI ui = getUI();
15821583
int w = port.getWidth();
15831584
Dimension min = ui.getMinimumSize(this);
15841585
Dimension max = ui.getMaximumSize(this);
@@ -1601,7 +1602,7 @@ public boolean getScrollableTracksViewportWidth() {
16011602
public boolean getScrollableTracksViewportHeight() {
16021603
if (getParent() instanceof JViewport) {
16031604
JViewport port = (JViewport)getParent();
1604-
TextUI ui = (TextUI) getUI();
1605+
ComponentUI ui = getUI();
16051606
int h = port.getHeight();
16061607
Dimension min = ui.getMinimumSize(this);
16071608
if (h >= min.height) {

sources/net.sf.j2s.java.core/src/javax/swing/JScrollPane.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@
3434
import java.awt.LayoutManager;
3535
import java.awt.Point;
3636
import java.awt.Rectangle;
37+
3738
import javax.swing.border.Border;
38-
import javax.swing.plaf.ScrollPaneUI;
3939
import javax.swing.plaf.UIResource;
4040

4141

@@ -291,12 +291,12 @@ public JScrollPane(Component view, int vsbPolicy, int hsbPolicy)
291291
if (view != null) {
292292
setViewportView(view);
293293
}
294-
setUIProperty("opaque",true);
295-
updateUI();
296294

297295
if (!this.getComponentOrientation().isLeftToRight()) {
298296
viewport.setViewPosition(new Point(Integer.MAX_VALUE, 0));
299297
}
298+
setUIProperty("opaque",true);
299+
updateUI();
300300
}
301301

302302
@Override

sources/net.sf.j2s.java.core/src/javax/swing/SwingUtilities.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import java.awt.FontMetrics;
3636
import java.awt.JSFrame;
3737
import java.awt.Graphics;
38+
import java.awt.GraphicsEnvironment;
3839
import java.awt.HeadlessException;
3940
import java.awt.IllegalComponentStateException;
4041
import java.awt.Image;
@@ -44,6 +45,7 @@
4445
import java.awt.Point;
4546
import java.awt.Rectangle;
4647
import java.awt.Window;
48+
import java.awt.dnd.DropTarget;
4749
import java.awt.event.ActionEvent;
4850
import java.awt.event.InputEvent;
4951
import java.awt.event.KeyEvent;
@@ -96,16 +98,16 @@ public class SwingUtilities implements SwingConstants
9698
*/
9799
static void installSwingDropTargetAsNecessary(Component c,
98100
TransferHandler t) {
99-
//
100-
// if (!getSuppressDropTarget()) {
101-
// DropTarget dropHandler = c.getDropTarget();
102-
// if ((dropHandler == null) || (dropHandler instanceof UIResource)) {
103-
// if (t == null) {
104-
// c.setDropTarget(null);
105-
// } else if (!GraphicsEnvironment.isHeadless()) {
106-
// c.setDropTarget(new TransferHandler.SwingDropTarget(c));
107-
// }
108-
// }
101+
102+
// if (!getSuppressDropTarget()) {
103+
DropTarget dropHandler = c.getDropTarget();
104+
if ((dropHandler == null) || (dropHandler instanceof UIResource)) {
105+
if (t == null) {
106+
c.setDropTarget(null);
107+
} else if (!GraphicsEnvironment.isHeadless()) {
108+
c.setDropTarget(new TransferHandler.SwingDropTarget(c));
109+
}
110+
}
109111
// }
110112
}
111113

0 commit comments

Comments
 (0)