-
Notifications
You must be signed in to change notification settings - Fork 3
/
CHANGELOG
1464 lines (1237 loc) · 54 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
==== 0.91
2012: (Thiago Tonelli)
Declared many classes, methods and fields needed to fully compile original SwingSet for java 1.4 and 6.
Implemented a wrapping identity map in SwingWTUtils. The map keeps track of windows and their peers.
Implemented Frame.getFrames(), which used the identity map to get a Frame based on the available frames.
SwingWTUtils.stopEventDispatchRunning wakes Display up to make sure application does not hang.
Implemented java.awt.Robot partially.
Fixing signatures of JOptionPane.showInputDialog, showMessageDialog, showConfirmDialog and showOptionDialog methods to take Components instead of Containers, like original swing.
Adding Accessible interface to some classes missing it, like JCheckBox, JSlider.
Implemented JColorChooser with a dialog.
Implemented DefaultSingleSelectionModel and refactored JTabbedPane to use it.
Cleaned up code to handle mnemonics and text in buttons. Now wrapper fields carry the separated values, and the peer receives the combined string.
Implemented minimum hierarchy for Accessibility API; fixing duplicated accessibleContext field.
Major refactoring of buttons (AbstractButton, its sub-types, and ButtonGroup). Code was cleaned up, ButtonGroup is now working properly and new features were added.
ToggleButton and its sub-types can now carry icons (using the TOGGLE style in SWT, which does not look great, but at least shows the icon).
Fixed calculation of Component.getLocationOnScreen().
Some documentation for layout managers, Component, Container and size-related classes (added while trying to understand the code).
Refactored BoxLayout to be smarter about recalculations.
Some fixes to size in buttons calculations (e.g., JButtons with HTML should have unlimited max width).
Refactored Component and other classes to use thread-safe pattern without fields and to make code simpler by standardizing peer availability checks.
Optimized computations of size and bounds in Component, specially by avoiding duplicate calls to the peer (e.g., by calling getWidth() and getHeight() instead of computing getSize() and getting the values from the returned dimension).
Changing call to Container.queuedValidate(). Added to Window.create and guarded in Container.doAdd. This ensures that invalidate() is called only once during GUI construction.
Cleaned up old thread safe accessors in JTabbedPane.
In JTabbedPane, if the parent has a preferred size set by the user, use it.
Fixes to TitledBorder, to make it more compact and closer to Swing (in Linux, not sure about other platforms).
Setting default location for Windows to be the origin.
Implemented Container.findComponentAt() to look for the most specific component at a certain point. Use that in mouse over events to compute target.
Implemented Polygon class appropriately. Now Tooltip demo shows correct tooltip depending on the position of the mouse.
IconLabel now gets its background color from a parent.
Stripping HTML code from tooltips since SWT cannot interpret HTML.
Implementing additional icons for buttons.
==== 0.90
2011:
Fixed ImageIO.read(*) methods (SWT throws exception if you try to construct a 0x0 Image).
Added ImageIO.read(File) method and fixed other
Added various stub methods to swingwt.awt.image.* classes.
Added JFileChooser.getIcon() method.
Added Window.isFocused() method.
Reworked Window.pack() logic to work better if the window hasn't yet been shown.
Rewrote JLabels to properly support icons and labels and correct alignment.
Added LabelTypes demo showing different types of labels.
Added FontList demo showing a list of available fonts.
When stripping HTML for JLabels, convert <br>'s to \n's.
Fixed incorrect y position when drawing text in Java2D implementation.
Fixed text drawing transparency in Java2D implementation.
Fixed default title of JOptionPane.showMessageDialog() and made the call block like it's supposed to.
Added various stub methods to Drag and Drop classes.
Added HierarchyListener/HierarchyEvent stub classes and related methods to Component.
Added missing methods on LineBorder and TitledBorder.
TitleBorder vertical text centering will now be based on the Font/size of the title.
Implemented CompoundBorder.
Implement Component.[sg]etAlignment[XY]() methods.
Various fixes to BoxLayout layout algorithms and related class SizeRequirements.
Fixed a problem with Container.removeAll().
Container will now add its components to the layout earlier, so that get*Size() methods can return accurate values before peers are available.
Added a line border to JScrollPanes that do not wrap a JList.
Added class ScrollPaneLayout.
JTree now uses isPathEditable() to tell if a node is editable, which can be overridden by subclasses.
Fixed re-layout of JSplitPane components when adding and/or replacing them.
Fixed Frame.setResizable(false) to work correctly.
Made JComponent.computePreferredSize() take into account the border insets if a platform border isn't in use.
Made JComponent.getInsets() return the border insets if available, or empty Insets otherwise.
Made getMaximumSize() and getMinimumSize() return preferred size if the min/max size hasn't been set explicitly.
Added Insets.toString() method.
Refactored size and location getters and setters to be all be based on getBounds()/setBounds().
Made it easier to override specific ShellListener events on Window subclasses.
JRootPane's getPreferredSize/getMinimumSize()/getMaximumSize() will now return the values of the content pane.
Fixed calling setInedeterminate() on a JProgressBar after the peer has already been created.
Fixed getMaximum()/getMinimum()/getValue() getters on JProgressBar.
Allow JOptionPane.showMessageDialog() with null message,
Fixed FontMetrics to use the correct font.
Added Font.toString().
Added font size conversion code between Swing and SWT fonts, since they do not use the same units.
Component.invalidate() will now invalidate all parents. This is now managed by an invalidation queue in SwingWTUtils.
Implemented JTabbedPane.setSelectedComponent() and JTabbedPane.computePreferredSize().
Added support for alpha values on swingwt.awt.Color.
Fixed swingwt.awt.Color constructors taking float values.
Made background / foreground color methods on Window forward to the root pane.
Refactoring of Component background color setting.
Changed getBackgroundSet() and getForegroundSet() on Component to isBackgroundSet() and isForegroundSet() to match Swing.
Added Component methods isMinimumSizeSet(), isMaximumSizeSet(), isPreferredSizeSet().
Implement JSlider's getMaximumSize().
Fixed signature of SwingUtilities.invokeAndWait().
Made SwingUtilities.invokeLater() print exceptions thrown by the Runnable.
Added support for using Cocoa SWT on Mac OS X.
Fixed NPE when calling getBounds() before peer was created.
Fixed NPE when calling JRootPane.setDefaultButton(null).
Fixed NPE in ImageIcon constructor.
Fixed NPE in SwingWTUtils.getSWTImageFromSwingIcon().
Fixed NPE in UIDefaults.get*() when the property is not found.
2008:
28 Nov
Fix for JSpinner change events and editing JSpinner contents
28 Sep
SWTSwing specific event dispatch handling
24 Sep
More efficient platform checking
Popupmenu invisible event should fire on selection for combo
17 Sep
JScrollBar positioning needs to be done for Swing/Mac as well as Carbon/Mac
2 Jun
Added finalizer destructor for FontMetrics (thanks to Andre Kischkel)
10 Apr
Updated JFileChooser icons and made layout a little nicer (uses margins/spacing)
03 Apr
JList scrollTo broke if the peer wasn't created
27 Mar
JEditorPane won't load new editors over the top of a previous one
(prevents listeners being abandoned silently)
20 Mar
Added JDateTime component to use SWT DateTime (in a swing-y way)
Fixed JFileChooser to use JListTable
16 Mar
JList uses real list again. JListTable can be used for the more complex
rendering. I think this fits in better with the platform ethic (and JListTable
never worked very well on Windows, where the table couldn't autofit)
13 Mar
Subclassed CTabFolder to squash tooltips for JClosableTabbedPane - prevents
them appearing all over JInternalFrames when used as MDI container
Fixed bug in JToolBar that caused two JButtonMappedActions to be created
and left the original JButton disconnected
12 Mar
Fixed setCursor() for Window descendants
Added newTabSelected() method for JDesktopPane (for subclasses)
7 Mar
Allowed override to use push buttons on toolbars
21 Feb
Added default file for native save JFileChooser
17 Feb 2008
Added margins to TableLayout
Updated copyright year
Upgrade to SWT 3.3.1
Deprecated GCJ native build and Makefile
Updated start scripts for new SWT (no lib path as extracted from JAR at run)
3 Sep
Removed drag event fired on MouseReleased
Fixed bug in InputEvent.is<KEY>Down() methods to use the KEY_DOWN_MASK
bitmask tests.
29 Aug
Fixed bug in MouseEvent.getModifiersFromButtons to take into account 3
keyboard modifiers (shift, ctrl, alt) during mouse events.
==== 0.89
21 Aug 2007
Updated copyright year
(Bob Tarling)
Fix for consumed mouse events
4 Oct 2006
(Niklas Gustafsson)
wrong import
4 Oct
(Niklas Gustafsson)
Missing new 1.4 code
More compatibility/stubs
3 Oct
(Niklas Gustafsson)
Many compatibility/stubs, missing classes, missing methods.
13 Sep
After Niklas work on matching some Swing 1.5 features, the build script
can now merge 1.4 and 1.5 sources to make a 1.4 or 1.5 build depending
on build options set.
(Niklas Gustafsson)
Many compatibility/stubs, missing classes, missing methods.
New 1.5 target version of EventListenerList
4 Sep
Compiler target set to 1.4
31 Aug
(Niklas Gustafsson)
Moved the menuListener from JSWTMenuComponent to JMenu, and changed/moved
some of the methods that is about this. Changed some of the conversion,
and fireing event from SWT to SwingWT. ( The is more todo )
29 Aug
Switched awt.Window.dispose to use peer.dispose instead of close - peer.close
under SWT 3.2 seems to trigger some check for the number of open Shells
and terminates the VM (not desirable if you want more than one Swing
frame!)
28 Aug
(Niklas Gustafsson)
JSWTMenuComponent - removed some members that exists in parent component's.
pEnabled/pMnemonics/actionCommand/menuAction/actionListener.
16 Aug
(Niklas Gustafsson)
swingwtx.sound.AudioClipPlayer - A new class that implements AudioClip and
is used by JApplet to play audioClip's.
Applet - the methods getAudioClip / new AudioClip now returns the new
AudioClipPlayer as it's interface AudioClip.
JSWTMenuComponent - processMenuEvent is now calling processItemEvent to
generate itemEvent's.
15 Aug
(Niklas Gustafsson)
JMenu - removed JMenu's components (list ) and is now using comps from
Component.
14 Aug
(Niklas Gustafsson)
JMenuBar / JPopupMenu. > They are using now >comps< to store components in.
I have removed JMenuBar's components (list ) and is using comps
( from Component ).
JMenu - Added missing method getMenuComponent(int p)
JOptionPane.showConfirmDialog() All variant implemented
JTabbedPane setModel() / getModel() compatibility
9 Aug
Fixed Eclipse .project/.classpath files for new layout
Fixed Makefile for new src folder
Fixed GTK2 SWT 3.2 source to build on Linux/GCJ
Window show/hide fix - hiding no longer destroys the window
Image/Text button fix for compatibility with SWT 3.2
Stripped CVS log revisions (pointless now in SVN)
Updated copyright year
(Niklas Gustafsson)
Many compatibility/stubs, MouseInputListener, print classes, plaf
7 Aug
Use of src subdirectory
(Sean Flanigan)
Additional stub methods Component/Container/GraphicsDevice
17 Jul
Update to SWT 3.2
==== 0.88
14 Jul
Fixed default grey on table/list renderers
Fixed bad JList column sizing for win32
28 Mar
Subversion migration under SF
22 Mar
JToolBar adds JButton references for mapped actions
11 Mar 2006
JTextComponent descendants fire KeyPress for mid-click (solves problems
with applications needing to pick up X clipboard pastes)
(Scott Cytacki)
AWTonSwingWT toolkit - SwingWT can be a full AWT toolkit, good enough
to run "real" Swing!
Further implementation of Shape/Transform classes
Further Java2D work
swingwtx.swing.* fixes
3 Aug
(Silvio Moioli)
JSlider fix for negative values
SWTGraphics2DRenderer fix for getRenderingHints()
5 Jul
Component.get/setLocale
Upgrade to SWT 3.1 final
(Niklas Gustafsson) Fix to some bad logic in ActionMap
AbstractButton.set/isRolloverEnabled
Added implementation of TextAction.getFocusedComponent
Fixes to custom.JSWTTable to work correctly with access to
DefaultListSelectionModel
SwingWTUtils.getFocusedComponent() to return a reference to the
currently focused SwingWT component.
21 Jun
(Niklas Stopp) Additional Clipboard constructor
==== 0.87
2 Jun
Cleared up GCJ compilation problems for SWT 3.1M5a on Linux/GTK2
22 Apr
Added additional LSB mountpoints to JFileChooser
Fixed bug where JFileChooser would skip a file for every hidden
file in a UNIX directory
JFileChooser now sorts directories above files
20 Apr
Combo.setItems crashes under GTK2 in 3.1M5a so had to revert
to Combo.add instead (which was previously too slow but seems
to be fixed now)
Upgraded to SWT 3.1M5a for PNG alpha fixes
19 Apr
(David Green) DefaultTreeCellEditor implementation
5 Apr
Failed workaround for MacOSX combo box indent bug (why does nobody
else using SWT/Carbon see this?)
4 Apr
More MacOSX bugs fixed for sizing vertical toolbars and JList
30 Mar
MacOSX sizing bugs in text fields and vertical scrollbars fixed
JComboBox.setMaximumRowCount() now works correctly, mapped to
SWT setVisibleItemCount()
23 Mar
Fixes to AWTSwingWrapper that prevented AWT components having working
events and most of them being added to forms (eek!)
22 Mar
(Mathew McBride) Component.isOpaque()
18 Mar
Fixed GTK bug that causes concurrent modification of Action/MouseEvents.
17 Mar
Bug fixed in JTable.getCellSelectionEnabled() (wrong signature)
10 Mar
Fix to platform browser widget error message instructions for Linux/GTK2
9 Mar
(David Green) Many minor compatibility fixes and improvements
8 Mar
(Mathew McBride) Font.deriveFont implementations
25 Feb
Component.size(), AbstractButton.getLabel() and JTable.editCellAt(int,int)
23 Feb
Added UIDefaults.keys()
22 Feb
JTabbedPane now supports add methods with indexes
Fixed ConcurrentModificationExceptions thrown from cached
JMenuBar/JPopupMenu code
Fixed few strange compilation errors suddenly appeared
15 Feb
JFileChooser.showDialog support
JOptionPane instance support (no dialog creation at present)
JSplitPane.getDividerLocation()
PixelGrabber.grabPixels(ms) throws InterruptedException
swingwtx.swing.MenuElement implemented, with JMenu* implementors
JPopupMenu.getSubElements(), JMenuBar.getSubElements(),
JMenu.getSubElements()
24 Jan
Font family support added (getFontName()/getFamily()/getName())
Proper implementation of GraphicsEnvironment, including screen point
references and getAllFonts()/getAvailableFontFamilyNames()
SwingWTUtils outputs SWT version information
SwingWTBootStrap passes on any extra arguments to the called
application.
==== 0.86.1
20 Jan
JSWTTable has a dependency on JFace - this is not included for
native builds now (there's always something!).
==== 0.86
20 Jan
(Andreas Kiebach)
Alternative custom.JSWTTable implementation which uses the
JFace APIs instead of the "raw" SWT ones.
Overridable hook to awt.Dialog to allow subclasses to
use initDialog to run code immediately after the Dialog
becomes viewable.
13 Jan
Upgraded to SWT 3.1 milestone build. The speed increase to GTK2
applications is RIDICULOUS. SwingSet2 demo now runs at about
10x the speed (or it feels like it) that it did with 3.0
It also uses the new GNOME 2.8 file dialogs (which is nice), has
some KDE3 integration I haven't investigated yet and a native
Spinner control which we could utilise.
11 Jan
(Silvio Moioli)
drawPolyLine(), fillPolygon() and drawPolygon() implementation for
SWT2DGraphicsRenderer class.
4 Jan
(David Barron)
Many compatibility fixes, particularly around JTree/JTable
[ Merry Christmas and a Happy New Year! ]
11 Nov
Image now retrieves SWT display directly to allow applications to use
SwingWT's image handling routines without a display (stops image
manipulation hanging on UNIX from Cron jobs or with no DISPLAY
environment)
10 Nov
JTextPane uses DocumentEvents to trigger updates now. Still need something
less hacky for holding and applying styles, but this is much better.
EditorKits are now supported in limited capacity
Fix to JTextPane caret with keystrokes (doesn't keep shooting back to
the start). Also added CAPS_LOCK as a control key
9 Nov
Formatting/style support for JTextPane/JEditorPane!
New StyledTextDemo to show off JTextPane support - won't be long before
we can run NetBeans!
8 Nov
Fix to JTree to allow creation without a model
Bounds checking on Container.getComponent(index)
4 Nov
New getPixmap() call to look for images on the filesystem or as a
classpath resource depending on if your application is native or not.
(Shaun Jackman)
All system calls use a getPixmap variant that uses the class as context
to look for relative resources (fixes a GCJ problem with compiled-in
resources). Also allows dynamic switching to file-system images.
==== 0.85
2 Nov
Fixed default JTextField/JTextArea sizes
Fixed bug in MacOSX start script for runswingdemo
Scrollpane support in TextEditorPane implementation
JComboBox correctly creates DefaultComboBox models
Working getListeners() in all Component descendants
(Fernando Petrola)
JComponent.getTopLevelAncestor implementation
Bugfix to JComponent client properties methods
Support for string layout modifiers
UIManager.getColor(key) missing
TreeSelectionListener was not extending EventListener
1 Nov
FINALLY found a way to reproduce the not-repainting/shrinking window bug
and squashed it.
Fixed bug that caused the drives box in non-native JFileChooser to not
change directory.
30 Oct
Code cleanup
Further work on using JEditorPane as a proper editor
29 Oct
Cleaned up code surrounding JEditorPane - it is now a thin wrapper around
an EditorPane interface, of which there are now 3 implementations, one
for the platform browser, one for editable content and a fake browser.
Reflection is used to create them, so you can just remove the
swingwtx.swing.editorpanes.PlatformBrowserEditorPane class from the
build if you want to remove SwingWT's dependency on Mozilla (that's one for
the Debian maintainer ;)
It does make it a damn site easier to understand and build on the
editorpane stuff as well.
19 Oct
Fixed native makefile
Patched SWT source for MacOSX and Win32
Fixed binary switches for SWT in CVS
Start of StyledDocument support for JEditorPane
8 Oct
Definitely nailled the resizing shell bug under GTK2
Fixed sizing bug when using accessories with JFileChooser
Trapped fault using null with initialSelectionValue in a JOptionPane
7 Oct
Fixed bug that occasionally caused Windows to open with a 1x1
size under GTK2.
Upgraded to latest SWT 3063 build
Fixed bug in JOptionPane.showInputDialog that prevented
initialSelectionValue appearing for text input
30 Sep
(Dan Naab) Hack to allow button foreground colour under Win32
(Dan Naab) Fixes to JPopup menu events
24 Sep
MacOSX specific improvements to not use the vile-looking
platform toolbuttons, and to ensure Window descendants
appear below the menubar.
(David Jung) Printing Interface/MouseWheel stubs
7 Sep
JScrollPane fixes to Dan's Viewport work
Additional compatibility add methods for JMenuBar
JTable cell rendering fixes - DefaultCellRenderer clears itself
prior to use to prevent images being rendered across all
columns when using the default renderer
6 Sep
(Fernando Petrola) Classloader to dynamically switch Swing for
SwingWT on the fly.
(Petr Slaby) JTree support for Object descendants (instead of just
DefaultMutableTreeNode)
4 Aug
(Dan Naab) InputEvent/JTable improvements
17 Jul
(Dan Naab) JTable rendering work to allow AWT Graphics rendering and
JCheckBox rendering support
==== 0.84
24 Jun
Identified and fixed problems causing SwingSet to fail on MacOSX
23 Jun
MacOSX build script with GCJ and ifdef DARWIN
Event pump fixes for the broken thread model in MacOSX java.
Need to call intialiseMacOSX(Runnable) from your main()
method to work around this. Anything else would have reduced
functionality for Mac users so don't bitch at me.
Additional MacOSX fix to detect when Quit is selected from the
application menu.
22 Jun
SpinnerNumberModel returns last value instead of null when going
outside model bounds
MacOS X scripts use the special "java_swt" hack to start up now.
18 Jun
Fix to JFileChooser to display the current location, and so
JFileChooser(File/String) constructor works again
15 Jun
AbstractButton defaults button text for ActionCommand like Swing
11 Jun
Fix to KeyEvent to read Event.getID() instead of it's own
private eventID var
Fix to Component.setEnabled()/setVisible() that meant the
peer had to be realised to work
Fix to default sizings when dealing with container classes
that don't have layouts (JTabbedPane, etc.) and for
null layouts.
10 Jun
(Dan Naab) Fix to selection for read-only tables
JTable cursors only used when cell selection is enabled
and with editable data (fixes broken rules)
Upgrade to SWT 3.0RC1 now
MacOS X Carbon libraries now included
MacOS X startup files for demos (untested until my Mac arrives)
Native build Makefile updated to work with Cygwin under Win32
9 Jun
(Dan Naab) AWTSwingWrapper class to allow flexibility of
reusing Swing code for AWT components, but allow the
correct AWT hierarchy.
8 Jun
awt.Container.getComponentCount() is thread safe
(Dan Naab) ComponentPeer support and change to getSWTPeer()
7 Jun
(Daniel Spiewak) JToolBar rollover support and JProgressBar
orientation/indeterminate support
SwingWTUtils.setUseSWTFastVirtualTables() call to turn
off the use of virtual tables (still buggy under
Win32 in M8 so off by default for Win32 now)
Fix to awt.Window to correctly fire WINDOW_OPENED events
JTable enables full row selection if there aren't any
editable columns by default now
4 Jun
Fix to Component.SWTEventAdapter.Key events to use
the KeyEvent.translateSWTKey/Modifier() calls
New computePreferredSize() framework to allow any
Component descendant to calculate it's size (base
method in Component uses peer.computeSize())
JTextArea calculates a better preferred size to match
Swing
Fix to positioning of Window descendants so they appear
in the correct place again.
27 May
Alternative MouseEvent.translateSWTButton() to use
bitwise operators.
26 May
(Dan Naab) Window descendants are created when made
visible as with other SwingWT components. This allows
for proper window decorations, non-resizable, etc.
24 May
(Rhyd O'Keeffe) Use of native DirectoryDialog for
JFileChooser.DIRECTORIES_ONLY
12 May
New test cases
Test cases implemented as Mauve in style with bridge
classes to allow us to easily convert and submit
tests to the mauve project. Runtime remains as
JUnit (and build script fixed to fork VM when
running tests to prevent Ant hanging)
11 May
JUnit test framework for SwingWT specific tests
and incorporation into the build process
Fixes to container to set the parent hierarchy even for
non-realised components.
JDesktopPane.setSelectedFrame() support
10 May
JComponent event chain to make JInternalFrames active
when a child receives the focus or is clicked
Start of proper MDI support through JDesktopPane/JInternalFrame
with compatibility JDesktopPane.setTabbedEmulation(true)
method to use old-style tabs
Fix to enable platform borders on JPanel
Fixed container bug that caused null pointer errors when
removing components from containers with no layout manager
(Clemens Eisserer) Real JLayeredPane implementation
ImageIO.read() support
awt.MediaTracker support
==== 0.83
7 May
(Dan Naab) Start of Mauve test integration
Layout fixes to make sure SwingWT behaves just like
Swing with null layouts
Component/Container/JComponent fixes so size/locations
are handled correctly
6 May
JDesktopPane fixes to cope with overloading Component
based add() methods.
All constants now match Swing counterparts for binary
compatibility with inlined constants on existing
AWT/Swing applications.
5 May
Fix to call JComponent.paintComponent() correctly
JComboBox fix to call setSelectedItem() appropriately
on the model as the user changes things
JTree now sends expanded flag correctly to renderers
(and calls renderers on expand/collapse correctly)
awt.Window toFront()/toBack() implementation
(Laurent Martelli)
JComboBox fix for huge performance improvement
with large datasets
Binary compatibility for container.add() methods
BoxLayout fixes
Additional awt.Font methods/constructors
Additional awt.Component/Container methods
Additional awt.Toolkit methods
Additional swing.JComponent methods
JInternalFrame fixes for PropertyVetoException
JTable/JTree stubs and additional methods
JMenu.getPopupMenu() support
Various small bugfixes
Stub ToolTipManager implementation
Additional awt.dnd framework
4 May
Fix to getBounds() for Window descendants
(Laurent Martelli) DefaultMultableTreeNode.getPath(),
DefaultTreeModel EventListener fixes
ImageIcon byte[] constructors and fixes to
Toolkit.createImage(byte[])
Fix to SwingWTUtils.removeHTML() to prevent strings
containing "<" and "<<" etc. being identified as
HTML and broken
Fix to prevent swingwtx.swing.Timer throwing exceptions
PlainDocument/View support and implementation
Correction of text component hierarchy
Fixed lost JTextField in demo
3 May
(Dan Naab) Build script can now build SwingWT with
java.awt/javax.swing
package names instead for free VMs (build with
"ant -Dsun=no" )
30 Apr
GridBagLayout interactions with Container fixed
Moved log to end of Component/SwingWTUtils (two most
changed files in the app)
Stubbed TreeSelectionModel support
Basic JViewport support
Missing JTree selectionPath methods added
Missing JTabbedPane indexOfComponent/Tab getComponentAt
methods
Missing overloaded JMenu.add() methods
Support for MenuListener/MenuEvent
Fix to Window descendants to forward event listeners
to the content pane.
New routines to calculate preferred size of non-realised
SWT peers.
Fixed bug in SwingWTUtils.renderStringHeight() that actually
returned the width.
Fixed bug in mouseDrag/mouseMoved calls (backward logic)
Hack to implement correct mouseDrag event behaviour
29 Apr
Missing JOptionPane constants added
JComponent stub compatibility methods
Additional JTree methods implemented
ImageConsumer/Producer support and Toolkit.createImage()
28 Apr
PlainDocument, StringContent and GapContent implementations
Further fixes to component hierarchy (JInternalFrame, custom
controls, etc.)
Improvements to component dispose() chain
Start of javadoc work
Cleanup of size related calls in awt.Component
27 Apr
build script runs Makefile now
Fixed broken reference to JTable.AUTO_RESIZE_OFF in JTableHeader
Fix to Makefile to support older GCJ (any 3.0 series)
Start of working AbstractDocument support
Fix to component hierarchy so JComponent descends awt.Container
for correct Swing compatibility
25 Apr
Fix to Swing border painting code to not attempt to paint
empty borders around all components - waste of many objects
and breaks SWT mouse events (now creates empty borders on
demand for getBorder() call and only draws borders if
explicitly set).
23 Apr
(Dan Naab) Swing-style border-painting support
Missing showConfirm() signature for JOptionPane
Additional MouseEvent BUTTON constants
JSlider.createStandardLabels() support
FontMetrics thread safety
Component.getFontMetrics() and Toolkit.getFontMetrics() support
MouseMotionAdapter added
Proper *nix Makefile
==== 0.82
21 Apr
Fix to JOptionPane.showInputDialog() size when in text entry mode
Native Linux build script fully working!
Cleaned up a lot of source code
20 Apr
awt.MenuShortcut implemented
Double-buffered component graphics contexts by default
SWTGraphics2DRenderer supports all variants of drawImage() correctly
Native Linux build script/patched SWT source inclusion
Split build into two jars - one for core SwingWT and one for demos
for neatness.
19 Apr
(James Moger) Additional KeyEvent constants
Missing Dialog/JDialog constructors implemented
Component.transferFocus(), Component.transferFocusBackward() support
JComponent.setNextFocusableComponent() stub
Window.isActive() support
Win32 Fix for HTML demo not appearing
Win32 Fix for table editors
Frame repaint bug under GTK2 fixed
custom.JTaskTrayItem implementation for system task tray/notification
Fix to JList relayout bug when new the data updates
Fix to JTable DefaultEditor with combo and fires cell renderers
correctly with table editors
Fix to JTree to use cell renderer from editor update
18 Apr
Dialog repaint bug under GTK2 fixed
JTable now uses the new VIRTUAL tables in 3.0M8 to dynamically map
items from the table model as needed - JTable is now as fast
as real Swing!
Use of new CTabFolder with platform LAF again
Upgrade to 3.0M8
JSpinner implemented
Fix to JPopupMenu to recreate menu peer if the attached parent is
disposed (fixes bug attaching popups to JTable)
16 Apr
(Dan Naab) InputMap support
Fix for when to use TableCursors (only if there's some rows
and at least one of the columns is editable).
Table and Tree cell editing support!
15 Apr
awt.EventQueue implemented
Fix so SwingSet2 source appears correctly on GTK2
JTree default folder/doc images to match Swing
Component correctly caches size/location calls so components don't need
to be moved after frame display
JTable fixes and improvements
(Dan Naab) ComponentUI, UIDefaults/UIManager and Accessibility support.
(Antonio Weber) TableColumnModelListener implementation and support
7 Apr
Whoops - forgot to enable SWT MULTI/SINGLE selection based on new
ListSelectionModel :-)
6 Apr
JButton bug fix to prevent text appearing left aligned
Various fixes have meant that the remaining 2 small parts of
SwingSet2 have worked for a while. ButtonDemo and the
complete ListDemo now work correctly.
ListSelectionModel support for JTable and JList (at last!)
JTable.xShowGrid() support
JTable - some methods missing thread safety
JSplitPane addLeft/addRight were previously not thread-safe
(James Moger) JButton now supports other peer fonts when using
renderText() with images
(Antonio Weber) JFilechooser fix to getSelectedFile() and use
of FileFilter.
31 Mar
(Dan Naab) Component.hasFocus() method
==== 0.81
31 Mar
Fixed custom JFileChooser dialog trim bug
HTML stripper compresses whitespace so text output is much cleaner
awt.Component MouseMotionListener implemented
Fixed JTable disappearing bug in SwingSet
30 Mar
Start scripts for Kaffe/Linux - Kaffe is fully supported with SwingWT 0.81!
Fix to JPanel insets means JPanels with a TitledBorder now size their
inner client area correctly.
awt.Component.minimum/maximumSize() methods now work correctly (fixes
problems with components not expanding in BoxLayout)
awt.event.ComponentAdapter added
Bug fixes to JScrollPane (JTextArea fix) and DefaultTableModel (listeners)
Proper swing.Icon interface support throughout (finally!)
(Thanks to Dan Naab): AWT/Swing event improvements/bug fixes and InputMethodEvent
26 Mar
Fixes to JSplitPane to support setDividerLocation() and for thread safety
Bug in DefaultTreeModel fixed where events weren't firing down to the JTree
awt.SystemColor now fully works and returns real system colours.
23 Mar
SwingWTUtils.setEclipsePlugin(bool) - call this first if your application is
an Eclipse plugin and it will bind SwingWT to an existing SWT event dispatch
thread (in this case Eclipse's) and prevent threading errors.
22 Mar
awt.SystemColor implementation
Implementation of awt.FileDialog
JOptionPane.showOptionDialog implementation
Completed Applet stub implementation
JRootPane incorporated into JWindow, JDialog, JFrame and JInternalFrame correctly
FillLayout layout manager (basically BorderLayout.CENTER but more efficient)
JRootPane and JLayeredPane implementation
21 Mar
awt.Label now supports text and alignment constructor
Graphics subclasses correctly set the fill colour for fill methods
awt.List supports missing methods and constructors now
Dummy Applet and JApplet classes
19 Mar
JFileChooser now has drive boxes so Win32 users can see network shares,
CDROMs, etc.
18 Mar
Fix to JFileChooser for implementation bug in GNU Classpath
JTextComponent and Caret implementation. JTextArea, JTextField and JEditorPane
now descend JTextComponent corrrectly
Fixed interface to prevent deprecation warnings from JClosableTabbedPane
and to keep MDI apps consistent
Fixed JFrame, Frame, JDialog, Dialog, JWindow, Window hierarchy to
correctly match Swing
16 Mar
win32 batch files incorrectly referenced swt-pi.jar
Code tweaks to allow compilation under JDK1.3
12 Mar
AWT Scrollbar class incorrectly named
AWT CheckboxGroup support (thanks to Ryan)
Removed debug messages from custom JFileChooser
Fixed threading issue in AbstractButton/JFileChooser
Stopped memory leaks on destruction/removal of containers
4 Mar
JInternalFrame properties update their peers correctly after creation
==== 0.80
3 Mar
JList threading fixed
Generic error handlers around event dispatchers. This prevents your app
dying unnecessarily in random circumstances.
2 Mar
JTable defaults to grid lines (as Swing does)
Event adapters are now far less resource intensive on anonymous inner
classes (using one big class). Also ensures you can never get multiple
SWT->SwingWT event adapters registered for any one component.
1 Mar
SwingWTUtils removeHTML converts some HTML tags to chars (& etc.)
SwingSet JFileChooser demo now works fully
awt.Window.setLocationRelativeTo(Component) support
awt.Image now supports aspect ratios (negative numbers) for getScaledInstance()
JLabel supports the "null" image
ImageIcon protection to return 0 height/width if no image loaded
Component isShowing()
JComponent now supports Property Change Events
"Real" JFileChooser support with Swing-style accessories/file filters. Native
dialogs are still available by not calling setAccessory()/*FileFilter().
27 Feb
JTable uses synchronous painting (prevents problems with JInternalFrame)
JTable no longer paints twice (due to queued async thread from DefaultTableModel
in constructor).
JScrollPane doesn't do a lot of the complicated setting up if you use
a component that can handle it's own scrollbars.
26 Feb
SWTGraphics2DRenderer now allows access to the underlying SWT GC
24 Feb
JInternalFrame supports contentPane correctly
Window/Frame/Dialog contentPane now uses awt.Container for interfaces
Compatibility methods for Component/JComponent/JTable
Better error message when Mozilla not found (explains how to set it up)
JEditorPane now fires HyperlinkEvent.ENTERED correctly using SWT StatusTextListener
23 Feb
Fixed JScrollPane bug that caused Table/Tree/TextAreas to size incorrectly
for layout managers.
showSelection() (non-swing) routines for JTable/JList
Fixed tabbing bugs in JTextArea
Abstracted different event registers so they can be easily overridden
JLookupPopup correctly sets focus to the popup after appearing
JTree/JTable now support fonts from cell renderers
22 Feb
Using JScrollPane H/VScrollBarPolicy AS NEEDED wasn't showing the scrollbar
at all for TextAreas.
20 Feb
Fixed use of StringBuffer.indexOf in JEditorPane for GCJ/GIJ
JLookupPopup - a new, fast optional replacement for JComboBoxes with lots of data
19 Feb
Fixed newly introduced bug in JTable that prevented rendering
setText() for all components can now accept null as Swing does
JMenuBar descends JComponent correctly now
Stubbed swingwtx.swing.AccessibleContext (also for GCJ/GIJ compatibility)
JTextArea uses the much lighter weight (and GCJ/GIJ compatible) Text peer widget again
Version output on startup (unless turned off with SwingWTUtils.setShowSwingWTInfoOnStartup() )
13 Feb
JTable no longer uses incorrect asynchronous drawing
JComboBox and AbstractButton fixes for non-peer selection
JTable uses dirty flags to track model state. This prevents tables being painted twice
when using setModel() call after it has been added to a container
==== 0.79
12 Feb
No longer throws an ugly runtime error if no Mozilla is available on Linux
JTree expandPath() and collapsePath() supported
JList now supports locationToIndex() and selection colours
JEditorPane Document support for programmatic modification (thanks to Marco Hennings)
7 Feb
Typo correct in swingwtx.swing.Box - createVer(t)ical
3 Feb
JList now stops painting whilst adding listdata to default model