Skip to content

Commit 2207f32

Browse files
authored
Merge pull request #66 from BobHanson/hanson1
fix for mouse offset in A2SEvent; fix for antialias of images in JSGraphics2D
2 parents c00cdc0 + d0368b8 commit 2207f32

36 files changed

+15551
-854
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
20181001183306
1+
20181007153006
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
20181001183306
1+
20181007153006

sources/net.sf.j2s.core/doc/Differences.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,17 @@
11
Notes
22
=====
33

4+
update 10/1/2018 -- 3.2.4.01
5+
6+
AWT components in SwingJS:
7+
8+
-- can be accessed directly as java.awt Components
9+
-- receive posted events to the component's MouseDown, MouseMove, etc, methods;
10+
-- can also be extended to use (or can alternatively use) Swing MouseListener and MouseAdapter methods;
11+
-- are subclasses of JComponent (JavaScript only, not Java), so also take all the event possibilities of Swing;
12+
-- require explicit graphics.dispose() if getGraphics() is called in any component.
13+
14+
415
update 9/29/2018 -- 3.2.4 adds support for JAXB, changes default for ResourceBundle.getBundle
516
update 9/23/2018 -- 3.2.3 adds support for direct use of java.awt.* components and java.applet.Applet
617
-- no need for switching to a2s.*
File renamed without changes.
File renamed without changes.

sources/net.sf.j2s.core/doc/indistinguishable_signatures.txt renamed to sources/net.sf.j2s.core/unused/indistinguishable_signatures.txt

File renamed without changes.
File renamed without changes.
27.3 KB
Binary file not shown.

sources/net.sf.j2s.java.core/src/a2s/A2SEvent.java

Lines changed: 110 additions & 111 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,15 @@ public A2SEvent(AWTEvent e) {
4040
public void run() {
4141
Event e = this.e;
4242
Component target = (Component) this.target;
43-
if (target instanceof Container)
43+
if (target instanceof Container) {
4444
target = ((Container)target).getMouseEventTarget(e.x, e.y, true, null, false);
45-
45+
Component parent = target;
46+
while (parent != null && parent != this.target) {
47+
e.x -= parent.getX();
48+
e.y -= parent.getY();
49+
parent = parent.getParent();
50+
}
51+
}
4652

4753
/**
4854
* Otherwise the states have not changed
@@ -104,74 +110,69 @@ static int getOldEventKey(KeyEvent e) {
104110
};
105111

106112

107-
/**
108-
* Converts a new event to an old one (used for compatibility).
109-
* If the new event cannot be converted (because no old equivalent
110-
* exists) then this returns null.
111-
*
112-
* Note: this method is here instead of in each individual new
113-
* event class in java.awt.event because we don't want to make
114-
* it public and it needs to be called from java.awt.
115-
*/
116-
static Event convertToOld(AWTEvent e) {
117-
Object src = e.getSource();
118-
int id = e.getID();
119-
int newid = id;
113+
/**
114+
* Converts a new event to an old one (used for compatibility). If the new event
115+
* cannot be converted (because no old equivalent exists) then this returns
116+
* null.
117+
*
118+
* Note: this method is here instead of in each individual new event class in
119+
* java.awt.event because we don't want to make it public and it needs to be
120+
* called from java.awt.
121+
*/
122+
static Event convertToOld(AWTEvent e) {
123+
Object src = e.getSource();
124+
int id = e.getID();
125+
int newid = id;
120126

121-
switch(id) {
122-
case KeyEvent.KEY_PRESSED:
123-
case KeyEvent.KEY_RELEASED:
124-
KeyEvent ke = (KeyEvent)e;
125-
if (ke.isActionKey()) {
126-
newid = (id == KeyEvent.KEY_PRESSED?
127-
Event.KEY_ACTION : Event.KEY_ACTION_RELEASE);
128-
}
129-
int keyCode = ke.getKeyCode();
130-
if (keyCode == KeyEvent.VK_SHIFT ||
131-
keyCode == KeyEvent.VK_CONTROL ||
132-
keyCode == KeyEvent.VK_ALT) {
133-
return null; // suppress modifier keys in old event model.
134-
}
135-
// no mask for button1 existed in old Event - strip it out
136-
return new Event(src, ke.getWhen(), newid, 0, 0,
137-
getOldEventKey(ke),
138-
(ke.getModifiers() & ~InputEvent.BUTTON1_MASK));
127+
switch (id) {
128+
case KeyEvent.KEY_PRESSED:
129+
case KeyEvent.KEY_RELEASED:
130+
KeyEvent ke = (KeyEvent) e;
131+
if (ke.isActionKey()) {
132+
newid = (id == KeyEvent.KEY_PRESSED ? Event.KEY_ACTION : Event.KEY_ACTION_RELEASE);
133+
}
134+
int keyCode = ke.getKeyCode();
135+
if (keyCode == KeyEvent.VK_SHIFT || keyCode == KeyEvent.VK_CONTROL || keyCode == KeyEvent.VK_ALT) {
136+
return null; // suppress modifier keys in old event model.
137+
}
138+
// no mask for button1 existed in old Event - strip it out
139+
return new Event(src, ke.getWhen(), newid, 0, 0, getOldEventKey(ke),
140+
(ke.getModifiers() & ~InputEvent.BUTTON1_MASK));
139141

140-
case MouseEvent.MOUSE_CLICKED:
141-
case MouseEvent.MOUSE_PRESSED:
142-
case MouseEvent.MOUSE_RELEASED:
143-
case MouseEvent.MOUSE_MOVED:
144-
case MouseEvent.MOUSE_DRAGGED:
145-
case MouseEvent.MOUSE_ENTERED:
146-
case MouseEvent.MOUSE_EXITED:
147-
MouseEvent me = (MouseEvent)e;
148-
// no mask for button1 existed in old Event - strip it out
149-
Event olde = new Event(src, me.getWhen(), newid,
150-
me.getX(), me.getY(), 0,
151-
(me.getModifiers() & ~InputEvent.BUTTON1_MASK));
152-
olde.clickCount = me.getClickCount();
153-
return olde;
142+
case MouseEvent.MOUSE_CLICKED:
143+
case MouseEvent.MOUSE_PRESSED:
144+
case MouseEvent.MOUSE_RELEASED:
145+
case MouseEvent.MOUSE_MOVED:
146+
case MouseEvent.MOUSE_DRAGGED:
147+
case MouseEvent.MOUSE_ENTERED:
148+
case MouseEvent.MOUSE_EXITED:
149+
MouseEvent me = (MouseEvent) e;
150+
// no mask for button1 existed in old Event - strip it out
151+
Event olde = new Event(src, me.getWhen(), newid, me.getX(), me.getY(), 0,
152+
(me.getModifiers() & ~InputEvent.BUTTON1_MASK));
153+
olde.clickCount = me.getClickCount();
154+
return olde;
154155

155-
case FocusEvent.FOCUS_GAINED:
156-
return new Event(src, Event.GOT_FOCUS, null);
156+
case FocusEvent.FOCUS_GAINED:
157+
return new Event(src, Event.GOT_FOCUS, null);
157158

158-
case FocusEvent.FOCUS_LOST:
159-
return new Event(src, Event.LOST_FOCUS, null);
159+
case FocusEvent.FOCUS_LOST:
160+
return new Event(src, Event.LOST_FOCUS, null);
160161

161-
case WindowEvent.WINDOW_CLOSING:
162-
case WindowEvent.WINDOW_ICONIFIED:
163-
case WindowEvent.WINDOW_DEICONIFIED:
164-
return new Event(src, newid, null);
162+
case WindowEvent.WINDOW_CLOSING:
163+
case WindowEvent.WINDOW_ICONIFIED:
164+
case WindowEvent.WINDOW_DEICONIFIED:
165+
return new Event(src, newid, null);
165166

166-
case ComponentEvent.COMPONENT_MOVED:
167-
if (src instanceof Frame || src instanceof Dialog) {
168-
Point p = ((Component)src).getLocation();
169-
return new Event(src, 0, Event.WINDOW_MOVED, p.x, p.y, 0, 0);
170-
}
171-
break;
167+
case ComponentEvent.COMPONENT_MOVED:
168+
if (src instanceof Frame || src instanceof Dialog) {
169+
Point p = ((Component) src).getLocation();
170+
return new Event(src, 0, Event.WINDOW_MOVED, p.x, p.y, 0, 0);
171+
}
172+
break;
172173

173-
case ActionEvent.ACTION_PERFORMED:
174-
ActionEvent ae = (ActionEvent)e;
174+
case ActionEvent.ACTION_PERFORMED:
175+
ActionEvent ae = (ActionEvent) e;
175176
String cmd;
176177
if (src instanceof AbstractButton) {
177178
cmd = ((AbstractButton)src).getText();
@@ -180,58 +181,56 @@ static Event convertToOld(AWTEvent e) {
180181
} else {
181182
cmd = ae.getActionCommand();
182183
}
183-
return new Event(src, 0, newid, 0, 0, 0, ae.getModifiers(), cmd);
184+
return new Event(src, 0, newid, 0, 0, 0, ae.getModifiers(), cmd);
184185

185-
case ItemEvent.ITEM_STATE_CHANGED:
186-
ItemEvent ie = (ItemEvent)e;
187-
Object arg;
188-
if (src instanceof List) {
189-
newid = (ie.getStateChange() == ItemEvent.SELECTED?
190-
Event.LIST_SELECT : Event.LIST_DESELECT);
191-
arg = ie.getItem();
192-
} else {
193-
newid = Event.ACTION_EVENT;
194-
if (src instanceof Choice) {
195-
arg = ie.getItem();
186+
case ItemEvent.ITEM_STATE_CHANGED:
187+
ItemEvent ie = (ItemEvent) e;
188+
Object arg;
189+
if (src instanceof List) {
190+
newid = (ie.getStateChange() == ItemEvent.SELECTED ? Event.LIST_SELECT : Event.LIST_DESELECT);
191+
arg = ie.getItem();
192+
} else {
193+
newid = Event.ACTION_EVENT;
194+
if (src instanceof Choice) {
195+
arg = ie.getItem();
196196

197-
} else { // Checkbox
198-
arg = Boolean.valueOf(ie.getStateChange() == ItemEvent.SELECTED);
199-
}
200-
}
201-
return new Event(src, newid, arg);
197+
} else { // Checkbox
198+
arg = Boolean.valueOf(ie.getStateChange() == ItemEvent.SELECTED);
199+
}
200+
}
201+
return new Event(src, newid, arg);
202202

203-
case AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED:
204-
AdjustmentEvent aje = (AdjustmentEvent)e;
205-
switch(aje.getAdjustmentType()) {
206-
case AdjustmentEvent.UNIT_INCREMENT:
207-
newid = Event.SCROLL_LINE_DOWN;
208-
break;
209-
case AdjustmentEvent.UNIT_DECREMENT:
210-
newid = Event.SCROLL_LINE_UP;
211-
break;
212-
case AdjustmentEvent.BLOCK_INCREMENT:
213-
newid = Event.SCROLL_PAGE_DOWN;
214-
break;
215-
case AdjustmentEvent.BLOCK_DECREMENT:
216-
newid = Event.SCROLL_PAGE_UP;
217-
break;
218-
case AdjustmentEvent.TRACK:
219-
if (aje.getValueIsAdjusting()) {
220-
newid = Event.SCROLL_ABSOLUTE;
221-
}
222-
else {
223-
newid = Event.SCROLL_END;
224-
}
225-
break;
226-
default:
227-
return null;
228-
}
229-
return new Event(src, newid, Integer.valueOf(aje.getValue()));
203+
case AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED:
204+
AdjustmentEvent aje = (AdjustmentEvent) e;
205+
switch (aje.getAdjustmentType()) {
206+
case AdjustmentEvent.UNIT_INCREMENT:
207+
newid = Event.SCROLL_LINE_DOWN;
208+
break;
209+
case AdjustmentEvent.UNIT_DECREMENT:
210+
newid = Event.SCROLL_LINE_UP;
211+
break;
212+
case AdjustmentEvent.BLOCK_INCREMENT:
213+
newid = Event.SCROLL_PAGE_DOWN;
214+
break;
215+
case AdjustmentEvent.BLOCK_DECREMENT:
216+
newid = Event.SCROLL_PAGE_UP;
217+
break;
218+
case AdjustmentEvent.TRACK:
219+
if (aje.getValueIsAdjusting()) {
220+
newid = Event.SCROLL_ABSOLUTE;
221+
} else {
222+
newid = Event.SCROLL_END;
223+
}
224+
break;
225+
default:
226+
return null;
227+
}
228+
return new Event(src, newid, Integer.valueOf(aje.getValue()));
230229

231-
default:
232-
}
233-
return null;
234-
}
230+
default:
231+
}
232+
return null;
233+
}
235234

236235
public static Component addListener(JComponent container, Component comp) {
237236
A2SContainer top = (container == null ? null : ((A2SContainer) container.getTopLevelAncestor()));

0 commit comments

Comments
 (0)