diff options
author | cvs2svn <platform-releng-dev@eclipse.org> | 2009-05-08 12:30:00 +0000 |
---|---|---|
committer | cvs2svn <platform-releng-dev@eclipse.org> | 2009-05-08 12:30:00 +0000 |
commit | 9d94e04af5925264174cc1363d1f11750750809a (patch) | |
tree | fa88cc12c8fd81e8df4ac9b36e9fae98e485fa27 /bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse | |
parent | 5261d732b06498a2d24a1dbc2e7297011e78921c (diff) | |
download | eclipse.platform.swt-3547b_2.tar.gz eclipse.platform.swt-3547b_2.tar.xz eclipse.platform.swt-3547b_2.zip |
This commit was manufactured by cvs2svn to create tag 'v3547b_2'.v3547b_2
Sprout from master 2009-05-07 20:38:46 UTC Felipe Heidrich <fheidric> 'Bug 270676: StyledText : text selection stops when mouse cursor leaves the x-axis'
Cherrypick from master 2009-05-08 12:29:59 UTC Kevin Barnes <krbarnes> '/*long*/':
bundles/org.eclipse.swt/Eclipse SWT OLE Win32/win32/org/eclipse/swt/ole/win32/OleClientSite.java
Delete:
bundles/org.eclipse.swt.opengl/.classpath_carbon
bundles/org.eclipse.swt.opengl/.classpath_gtk
bundles/org.eclipse.swt.opengl/.classpath_motif
bundles/org.eclipse.swt.opengl/.classpath_win32
bundles/org.eclipse.swt.opengl/.cvsignore
bundles/org.eclipse.swt.opengl/.project
bundles/org.eclipse.swt.opengl/META-INF/MANIFEST.MF
bundles/org.eclipse.swt.opengl/about.html
bundles/org.eclipse.swt.opengl/carbon/library/agl.c
bundles/org.eclipse.swt.opengl/carbon/library/agl.h
bundles/org.eclipse.swt.opengl/carbon/library/agl_stats.c
bundles/org.eclipse.swt.opengl/carbon/library/agl_stats.h
bundles/org.eclipse.swt.opengl/carbon/library/agl_structs.h
bundles/org.eclipse.swt.opengl/carbon/org/eclipse/swt/internal/opengl/carbon/AGL.java
bundles/org.eclipse.swt.opengl/carbon/org/eclipse/swt/opengl/GLCanvas.java
bundles/org.eclipse.swt.opengl/common/library/gl.c
bundles/org.eclipse.swt.opengl/common/library/gl.h
bundles/org.eclipse.swt.opengl/common/library/gl_stats.c
bundles/org.eclipse.swt.opengl/common/library/gl_stats.h
bundles/org.eclipse.swt.opengl/common/library/gl_structs.c
bundles/org.eclipse.swt.opengl/common/library/gl_structs.h
bundles/org.eclipse.swt.opengl/common/library/glu.c
bundles/org.eclipse.swt.opengl/common/library/glu.h
bundles/org.eclipse.swt.opengl/common/library/glu_stats.c
bundles/org.eclipse.swt.opengl/common/library/glu_stats.h
bundles/org.eclipse.swt.opengl/common/library/glu_structs.c
bundles/org.eclipse.swt.opengl/common/library/glu_structs.h
bundles/org.eclipse.swt.opengl/common/library/swt.c
bundles/org.eclipse.swt.opengl/common/library/swt.h
bundles/org.eclipse.swt.opengl/common/org/eclipse/opengl/GL.java
bundles/org.eclipse.swt.opengl/common/org/eclipse/opengl/GLU.java
bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/GLData.java
bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/ImageDataUtil.java
bundles/org.eclipse.swt.opengl/common/org/eclipse/swt/opengl/Library.java
bundles/org.eclipse.swt.opengl/gtk/library/build.sh
bundles/org.eclipse.swt.opengl/gtk/library/glx.c
bundles/org.eclipse.swt.opengl/gtk/library/glx.h
bundles/org.eclipse.swt.opengl/gtk/library/glx_stats.c
bundles/org.eclipse.swt.opengl/gtk/library/glx_stats.h
bundles/org.eclipse.swt.opengl/gtk/library/glx_structs.c
bundles/org.eclipse.swt.opengl/gtk/library/glx_structs.h
bundles/org.eclipse.swt.opengl/gtk/library/make_linux.mak
bundles/org.eclipse.swt.opengl/gtk/library/structs.c
bundles/org.eclipse.swt.opengl/gtk/library/structs.h
bundles/org.eclipse.swt.opengl/gtk/org/eclipse/swt/internal/opengl/gtk/GLX.java
bundles/org.eclipse.swt.opengl/gtk/org/eclipse/swt/internal/opengl/gtk/XVisualInfo.java
bundles/org.eclipse.swt.opengl/gtk/org/eclipse/swt/opengl/GLCanvas.java
bundles/org.eclipse.swt.opengl/motif/library/build.sh
bundles/org.eclipse.swt.opengl/motif/library/glx.c
bundles/org.eclipse.swt.opengl/motif/library/make_aix.mak
bundles/org.eclipse.swt.opengl/motif/library/make_hpux.mak
bundles/org.eclipse.swt.opengl/motif/library/make_linux.mak
bundles/org.eclipse.swt.opengl/motif/library/make_solaris.mak
bundles/org.eclipse.swt.opengl/motif/library/structs.c
bundles/org.eclipse.swt.opengl/motif/library/structs.h
bundles/org.eclipse.swt.opengl/motif/org/eclipse/swt/opengl/GLContext.java
bundles/org.eclipse.swt.opengl/motif/org/eclipse/swt/opengl/internal/motif/XGL.java
bundles/org.eclipse.swt.opengl/motif/org/eclipse/swt/opengl/internal/motif/XVisualInfo.java
bundles/org.eclipse.swt.opengl/plugin.properties
bundles/org.eclipse.swt.opengl/plugin.xml
bundles/org.eclipse.swt.opengl/win32/library/build.bat
bundles/org.eclipse.swt.opengl/win32/library/glw.c
bundles/org.eclipse.swt.opengl/win32/library/make_win32.mak
bundles/org.eclipse.swt.opengl/win32/library/structs.c
bundles/org.eclipse.swt.opengl/win32/library/structs.h
bundles/org.eclipse.swt.opengl/win32/library/swt.rc
bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/GLCanvas.java
bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/internal/win32/LAYERPLANEDESCRIPTOR.java
bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/internal/win32/PIXELFORMATDESCRIPTOR.java
bundles/org.eclipse.swt.opengl/win32/org/eclipse/swt/opengl/internal/win32/WGL.java
bundles/org.eclipse.swt.tools/.classpath
bundles/org.eclipse.swt.tools/.cvsignore
bundles/org.eclipse.swt.tools/.project
bundles/org.eclipse.swt.tools/.settings/org.eclipse.jdt.core.prefs
bundles/org.eclipse.swt.tools/Icon Exe/org/eclipse/swt/tools/internal/IconExe.java
bundles/org.eclipse.swt.tools/Icon Exe/org/eclipse/swt/tools/internal/test_16_4.bmp
bundles/org.eclipse.swt.tools/Icon Exe/org/eclipse/swt/tools/internal/test_16_8.bmp
bundles/org.eclipse.swt.tools/Icon Exe/org/eclipse/swt/tools/internal/test_32_4.bmp
bundles/org.eclipse.swt.tools/Icon Exe/org/eclipse/swt/tools/internal/test_32_8.bmp
bundles/org.eclipse.swt.tools/Icon Exe/org/eclipse/swt/tools/internal/test_48_4.bmp
bundles/org.eclipse.swt.tools/Icon Exe/org/eclipse/swt/tools/internal/test_48_8.bmp
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTClass.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTField.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTItem.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTMethod.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTParameter.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTType.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/AbstractItem.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/CleanupClass.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/CleanupConstants.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/CleanupNatives.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ConstantsGenerator.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/EmbedMetaData.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/Flags.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIClass.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIField.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIGenerator.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIGeneratorApp.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIGeneratorAppUI.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIItem.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIMethod.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIParameter.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIType.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/LockGenerator.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/MetaData.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/MetaDataGenerator.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/NativesGenerator.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ProgressMonitor.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectClass.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectField.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectItem.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectMethod.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectParameter.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectType.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/SizeofGenerator.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/StatsGenerator.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/StructsGenerator.java
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.accessibility.gtk.properties
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.cairo.properties
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.gnome.properties
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.gtk.properties
bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.properties
bundles/org.eclipse.swt.tools/META-INF/MANIFEST.MF
bundles/org.eclipse.swt.tools/Mac Generation/org/eclipse/swt/tools/internal/DOMWriter.java
bundles/org.eclipse.swt.tools/Mac Generation/org/eclipse/swt/tools/internal/MacGenerator.java
bundles/org.eclipse.swt.tools/Mac Generation/org/eclipse/swt/tools/internal/MacGeneratorUI.java
bundles/org.eclipse.swt.tools/Mozilla Generation/org/eclipse/swt/tools/internal/MozillaGenerator.java
bundles/org.eclipse.swt.tools/NativeStats/org/eclipse/swt/tools/internal/NativeStats.java
bundles/org.eclipse.swt.tools/Sleak/org/eclipse/swt/tools/internal/Sleak.java
bundles/org.eclipse.swt.tools/about.html
bundles/org.eclipse.swt.tools/build.properties
bundles/org.eclipse.swt.tools/icons/mac.gif
bundles/org.eclipse.swt.tools/plugin.properties
bundles/org.eclipse.swt.tools/plugin.xml
bundles/org.eclipse.swt.tools/src/org/eclipse/swt/tools/Activator.java
bundles/org.eclipse.swt.tools/src/org/eclipse/swt/tools/builders/Check64CompilationParticipant.java
bundles/org.eclipse.swt.tools/src/org/eclipse/swt/tools/builders/Check64EnableAction.java
bundles/org.eclipse.swt.tools/src/org/eclipse/swt/tools/builders/JNIBuilder.java
bundles/org.eclipse.swt.tools/src/org/eclipse/swt/tools/views/MacGeneratorView.java
bundles/org.eclipse.swt.tools/templates/jnitemplates.properties
bundles/org.eclipse.swt.tools/templates/jnitemplates.xml
examples/org.eclipse.swt.examples.browser.demos/.classpath
examples/org.eclipse.swt.examples.browser.demos/.project
examples/org.eclipse.swt.examples.browser.demos/.settings/org.eclipse.jdt.core.prefs
examples/org.eclipse.swt.examples.browser.demos/about.html
examples/org.eclipse.swt.examples.browser.demos/build.properties
examples/org.eclipse.swt.examples.browser.demos/css1/back1.jpg
examples/org.eclipse.swt.examples.browser.demos/css1/back2.jpg
examples/org.eclipse.swt.examples.browser.demos/css1/black.gif
examples/org.eclipse.swt.examples.browser.demos/css1/board1.jpg
examples/org.eclipse.swt.examples.browser.demos/css1/empty.gif
examples/org.eclipse.swt.examples.browser.demos/css1/line1.gif
examples/org.eclipse.swt.examples.browser.demos/css1/style.css
examples/org.eclipse.swt.examples.browser.demos/css1/wall.gif
examples/org.eclipse.swt.examples.browser.demos/css1/welcome.html
examples/org.eclipse.swt.examples.browser.demos/css1/white.gif
examples/org.eclipse.swt.examples.browser.demos/css2/Back640x440.gif
examples/org.eclipse.swt.examples.browser.demos/css2/black_chip.gif
examples/org.eclipse.swt.examples.browser.demos/css2/line1.gif
examples/org.eclipse.swt.examples.browser.demos/css2/style.css
examples/org.eclipse.swt.examples.browser.demos/css2/texture_cells.gif
examples/org.eclipse.swt.examples.browser.demos/css2/wall_chip.gif
examples/org.eclipse.swt.examples.browser.demos/css2/welcome.html
examples/org.eclipse.swt.examples.browser.demos/css2/white_chip.gif
examples/org.eclipse.swt.examples.browser.demos/css3/Back640x440.gif
examples/org.eclipse.swt.examples.browser.demos/css3/black_pawn.gif
examples/org.eclipse.swt.examples.browser.demos/css3/line1.gif
examples/org.eclipse.swt.examples.browser.demos/css3/style.css
examples/org.eclipse.swt.examples.browser.demos/css3/texture_cells.gif
examples/org.eclipse.swt.examples.browser.demos/css3/wall_pawn.gif
examples/org.eclipse.swt.examples.browser.demos/css3/welcome.html
examples/org.eclipse.swt.examples.browser.demos/css3/white_pawn.gif
examples/org.eclipse.swt.examples.browser.demos/css4/Back640x440.gif
examples/org.eclipse.swt.examples.browser.demos/css4/blue_people.gif
examples/org.eclipse.swt.examples.browser.demos/css4/gold_people.gif
examples/org.eclipse.swt.examples.browser.demos/css4/line1.gif
examples/org.eclipse.swt.examples.browser.demos/css4/style.css
examples/org.eclipse.swt.examples.browser.demos/css4/texture_cells.gif
examples/org.eclipse.swt.examples.browser.demos/css4/wall_people.gif
examples/org.eclipse.swt.examples.browser.demos/css4/welcome.html
examples/org.eclipse.swt.examples.browser.demos/doc-html/swt_browser_demos_ex.html
examples/org.eclipse.swt.examples.browser.demos/icons/pawn.gif
examples/org.eclipse.swt.examples.browser.demos/plugin.properties
examples/org.eclipse.swt.examples.browser.demos/plugin.xml
examples/org.eclipse.swt.examples.browser.demos/src/org/eclipse/swt/examples/browser/demos/BrowserDemoPlugin.java
examples/org.eclipse.swt.examples.browser.demos/src/org/eclipse/swt/examples/browser/demos/Pawns.java
examples/org.eclipse.swt.examples.browser.demos/src/org/eclipse/swt/examples/browser/demos/views/BrowserDemoView.java
examples/org.eclipse.swt.examples.browser.demos/src/org/eclipse/swt/examples/browser/demos/views/EditorTab.java
examples/org.eclipse.swt.examples.browser.demos/src/org/eclipse/swt/examples/browser/demos/views/PawnTab.java
examples/org.eclipse.swt.examples.browser/.classpath
examples/org.eclipse.swt.examples.browser/.cvsignore
examples/org.eclipse.swt.examples.browser/.project
examples/org.eclipse.swt.examples.browser/.settings/org.eclipse.jdt.core.prefs
examples/org.eclipse.swt.examples.browser/about.html
examples/org.eclipse.swt.examples.browser/build.properties
examples/org.eclipse.swt.examples.browser/doc-html/swt_browser_ex.html
examples/org.eclipse.swt.examples.browser/icons/browser_example.gif
examples/org.eclipse.swt.examples.browser/plugin.properties
examples/org.eclipse.swt.examples.browser/plugin.xml
examples/org.eclipse.swt.examples.browser/src/import.properties
examples/org.eclipse.swt.examples.browser/src/org/eclipse/swt/examples/browserexample/BrowserPlugin.java
examples/org.eclipse.swt.examples.browser/src/org/eclipse/swt/examples/browserexample/BrowserView.java
examples/org.eclipse.swt.examples.controls/.classpath
examples/org.eclipse.swt.examples.controls/.cvsignore
examples/org.eclipse.swt.examples.controls/.project
examples/org.eclipse.swt.examples.controls/.settings/org.eclipse.jdt.core.prefs
examples/org.eclipse.swt.examples.controls/about.html
examples/org.eclipse.swt.examples.controls/build.properties
examples/org.eclipse.swt.examples.controls/doc-html/swt_controls_ex.html
examples/org.eclipse.swt.examples.controls/doc-html/swt_customcontrols_ex.html
examples/org.eclipse.swt.examples.controls/icons/controls_example.gif
examples/org.eclipse.swt.examples.controls/plugin.properties
examples/org.eclipse.swt.examples.controls/plugin.xml
examples/org.eclipse.swt.examples.controls/src/import.properties
examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ControlPlugin.java
examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/ControlView.java
examples/org.eclipse.swt.examples.controls/src/org/eclipse/swt/examples/controls/CustomControlView.java
examples/org.eclipse.swt.examples.launcher/.classpath
examples/org.eclipse.swt.examples.launcher/.cvsignore
examples/org.eclipse.swt.examples.launcher/.project
examples/org.eclipse.swt.examples.launcher/.settings/org.eclipse.jdt.core.prefs
examples/org.eclipse.swt.examples.launcher/about.html
examples/org.eclipse.swt.examples.launcher/build.properties
examples/org.eclipse.swt.examples.launcher/doc-html/swt_launcher_ex.html
examples/org.eclipse.swt.examples.launcher/doc/org.eclipse.swt.examples.launcher.launchItems.html
examples/org.eclipse.swt.examples.launcher/icons/closedFolder.gif
examples/org.eclipse.swt.examples.launcher/icons/generic_example.gif
examples/org.eclipse.swt.examples.launcher/icons/launcher_example.gif
examples/org.eclipse.swt.examples.launcher/icons/openFolder.gif
examples/org.eclipse.swt.examples.launcher/plugin.properties
examples/org.eclipse.swt.examples.launcher/plugin.xml
examples/org.eclipse.swt.examples.launcher/schema/org.eclipse.swt.examples.launcher.launchItems.exsd
examples/org.eclipse.swt.examples.launcher/src/import.properties
examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/ItemDescriptor.java
examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/ItemTreeNode.java
examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/LauncherPlugin.java
examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/LauncherView.java
examples/org.eclipse.swt.examples.launcher/src/org/eclipse/swt/examples/launcher/SplitLayout.java
examples/org.eclipse.swt.examples.layouts/.classpath
examples/org.eclipse.swt.examples.layouts/.cvsignore
examples/org.eclipse.swt.examples.layouts/.project
examples/org.eclipse.swt.examples.layouts/.settings/org.eclipse.jdt.core.prefs
examples/org.eclipse.swt.examples.layouts/about.html
examples/org.eclipse.swt.examples.layouts/build.properties
examples/org.eclipse.swt.examples.layouts/doc-html/swt_layout_ex.html
examples/org.eclipse.swt.examples.layouts/icons/layouts_example.gif
examples/org.eclipse.swt.examples.layouts/plugin.properties
examples/org.eclipse.swt.examples.layouts/plugin.xml
examples/org.eclipse.swt.examples.layouts/src/import.properties
examples/org.eclipse.swt.examples.layouts/src/org/eclipse/swt/examples/layouts/LayoutPlugin.java
examples/org.eclipse.swt.examples.layouts/src/org/eclipse/swt/examples/layouts/LayoutView.java
examples/org.eclipse.swt.examples.ole.win32/.classpath
examples/org.eclipse.swt.examples.ole.win32/.cvsignore
examples/org.eclipse.swt.examples.ole.win32/.project
examples/org.eclipse.swt.examples.ole.win32/.settings/org.eclipse.jdt.core.prefs
examples/org.eclipse.swt.examples.ole.win32/about.html
examples/org.eclipse.swt.examples.ole.win32/build.properties
examples/org.eclipse.swt.examples.ole.win32/doc-html/swt_ole_ex.html
examples/org.eclipse.swt.examples.ole.win32/icons/backward_nav.gif
examples/org.eclipse.swt.examples.ole.win32/icons/forward_nav.gif
examples/org.eclipse.swt.examples.ole.win32/icons/home_nav.gif
examples/org.eclipse.swt.examples.ole.win32/icons/refresh_nav.gif
examples/org.eclipse.swt.examples.ole.win32/icons/search_nav.gif
examples/org.eclipse.swt.examples.ole.win32/icons/stop_nav.gif
examples/org.eclipse.swt.examples.ole.win32/icons/webbrowser_example.gif
examples/org.eclipse.swt.examples.ole.win32/plugin.properties
examples/org.eclipse.swt.examples.ole.win32/plugin.xml
examples/org.eclipse.swt.examples.ole.win32/src/import.properties
examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/OLEExample.java
examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/OleBrowserView.java
examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/OlePlugin.java
examples/org.eclipse.swt.examples.ole.win32/src/org/eclipse/swt/examples/ole/win32/OleWebBrowser.java
examples/org.eclipse.swt.examples.paint/.classpath
examples/org.eclipse.swt.examples.paint/.cvsignore
examples/org.eclipse.swt.examples.paint/.project
examples/org.eclipse.swt.examples.paint/.settings/org.eclipse.jdt.core.prefs
examples/org.eclipse.swt.examples.paint/about.html
examples/org.eclipse.swt.examples.paint/build.properties
examples/org.eclipse.swt.examples.paint/doc-html/swt_paint_ex.html
examples/org.eclipse.swt.examples.paint/icons/paint_example.gif
examples/org.eclipse.swt.examples.paint/plugin.properties
examples/org.eclipse.swt.examples.paint/plugin.xml
examples/org.eclipse.swt.examples.paint/src/import.properties
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintPlugin.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintView.java
examples/org.eclipse.swt.examples/.classpath
examples/org.eclipse.swt.examples/.classpath_flex
examples/org.eclipse.swt.examples/.cvsignore
examples/org.eclipse.swt.examples/.project
examples/org.eclipse.swt.examples/.settings/org.eclipse.jdt.core.prefs
examples/org.eclipse.swt.examples/.settings/org.eclipse.pde.prefs
examples/org.eclipse.swt.examples/about.html
examples/org.eclipse.swt.examples/build.properties
examples/org.eclipse.swt.examples/doc-html/swt_addressbook_ex.html
examples/org.eclipse.swt.examples/doc-html/swt_browser_ex.html
examples/org.eclipse.swt.examples/doc-html/swt_clipboard_ex.html
examples/org.eclipse.swt.examples/doc-html/swt_controls_ex.html
examples/org.eclipse.swt.examples/doc-html/swt_customcontrols_ex.html
examples/org.eclipse.swt.examples/doc-html/swt_dnd_ex.html
examples/org.eclipse.swt.examples/doc-html/swt_fileviewer_ex.html
examples/org.eclipse.swt.examples/doc-html/swt_helloworld_ex.html
examples/org.eclipse.swt.examples/doc-html/swt_hoverhelp_ex.html
examples/org.eclipse.swt.examples/doc-html/swt_imageanalyzer_ex.html
examples/org.eclipse.swt.examples/doc-html/swt_javaviewer_ex.html
examples/org.eclipse.swt.examples/doc-html/swt_launcher_ex.html
examples/org.eclipse.swt.examples/doc-html/swt_layout_ex.html
examples/org.eclipse.swt.examples/doc-html/swt_manual_setup.html
examples/org.eclipse.swt.examples/doc-html/swt_paint_ex.html
examples/org.eclipse.swt.examples/doc-html/swt_texteditor_ex.html
examples/org.eclipse.swt.examples/plugin.properties
examples/org.eclipse.swt.examples/plugin.xml
examples/org.eclipse.swt.examples/src/examples_accessibility.properties
examples/org.eclipse.swt.examples/src/examples_addressbook.properties
examples/org.eclipse.swt.examples/src/examples_browser.properties
examples/org.eclipse.swt.examples/src/examples_control.properties
examples/org.eclipse.swt.examples/src/examples_fileviewer.properties
examples/org.eclipse.swt.examples/src/examples_graphics.properties
examples/org.eclipse.swt.examples/src/examples_helloworld.properties
examples/org.eclipse.swt.examples/src/examples_hoverhelp.properties
examples/org.eclipse.swt.examples/src/examples_images.properties
examples/org.eclipse.swt.examples/src/examples_javaviewer.properties
examples/org.eclipse.swt.examples/src/examples_layout.properties
examples/org.eclipse.swt.examples/src/examples_paint.properties
examples/org.eclipse.swt.examples/src/examples_texteditor.properties
examples/org.eclipse.swt.examples/src/import.properties
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/accessibility/AccessibleShapesExample.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/accessibility/ControlsWithAccessibleNamesExample.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/accessibility/ControlsWithLabelsExample.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/accessibility/Shape.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/accessibility/SimpleButtonNameExample.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/accessibility/run.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/accessibility/run_wiz.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/AddressBook.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/DataEntryDialog.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/FindListener.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/SearchDialog.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/BrowserExample.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/document.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse01.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse02.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse03.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse04.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse05.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse06.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse07.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse08.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse09.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse10.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse11.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse12.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/ClipboardExample.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyType.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyTypeTransfer.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/AlignableTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/BrowserTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ButtonTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CComboTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CLabelTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CTabFolderTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CanvasTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ComboTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ControlExample.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CoolBarTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CustomControlExample.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/DateTimeTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/DialogTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ExpandBarTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/GroupTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/LabelTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/LinkTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ListTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/MenuTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ProgressBarTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/RangeTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashFormTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ScaleTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ScrollableTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ShellTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SliderTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SpinnerTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/StyledTextTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/Tab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TabFolderTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TableTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TextTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ToolBarTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ToolTipTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TreeTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/backgroundImage.png
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold_mask.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/browser-content.html
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/closedFolder.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/italic.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/italic_mask.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/openFolder.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/parentBackgroundImage.png
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red_mask.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/strikeout.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/strikeout_mask.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/target.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/underline.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/underline_mask.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow_mask.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/DNDExample.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/openFolder.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/FileViewer.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/IconCache.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Copy.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Cut.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Delete.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Parent.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Paste.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Print.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Refresh.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Rename.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Search.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/generic_example.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedDrive.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedFolder.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_File.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenDrive.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenFolder.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/AdvancedGraphics.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/AlphaTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/AnimatedGraphicsTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/BallTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/BlackHoleTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CardsTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ColorListener.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ColorMenu.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CountDownTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CurvesSWTTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CurvesTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CustomAlphaTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CustomFontTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/FontBounceTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GradientDialog.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GradientTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GraphicAntialiasTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GraphicsBackground.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GraphicsExample.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GraphicsTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ImageFlipTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ImageScaleTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ImageTransformTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/InterpolationTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/IntroTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/LineCapTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/LineJoinTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/LineStyleTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/LineTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/MazeTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/PathClippingAnimTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/PathClippingTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/PathTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/RGBTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/RegionClippingTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ShapesTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/SpiralTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/StarPolyTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/TextAntialiasTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ace_club.jpg
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ace_diamond.jpg
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ace_hearts.jpg
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ace_spade.jpg
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/alpha_img1.png
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/alpha_img2.png
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/back.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/cube.png
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/db.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/font.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/help.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/home_nav.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/houses.png
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/irmaos.jpg
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/maze.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/next.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ovals.png
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/pattern1.jpg
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/pattern2.jpg
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/pattern3.jpg
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/pause.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/play.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/swap.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/swt.png
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/task.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld1.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld2.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld3.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld4.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld5.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/HoverHelp.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/information.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/warning.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaLineStyler.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaViewer.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FillLayoutTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/GridLayoutTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/LayoutExample.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/RowLayoutTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/StackLayoutTab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/Tab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/AirbrushTool.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/BasicPaintSession.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/ContainerFigure.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/ContinuousPaintSession.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/DragPaintSession.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/EllipseFigure.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/EllipseTool.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/Figure.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/FigureDrawContext.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/LineFigure.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/LineTool.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PaintExample.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PaintSession.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PaintSurface.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PaintTool.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PencilTool.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PointFigure.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PolyLineTool.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/RectangleFigure.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/RectangleTool.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/RoundedRectangleFigure.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/RoundedRectangleTool.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SegmentedPaintSession.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SolidEllipseFigure.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SolidPolygonFigure.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SolidRectangleFigure.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SolidRoundedRectangleFigure.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/TextFigure.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/TextTool.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/Tool.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/ToolSettings.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/fill_none.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/fill_outline.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/fill_solid.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/linestyle_dash.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/linestyle_dashdot.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/linestyle_dot.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/linestyle_solid.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/options_font.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_airbrush.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_ellipse.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_line.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_pencil.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_polyline.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_rectangle.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_roundedrectangle.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_text.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/TextEditor.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold.ico
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/center.ico
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/copy.ico
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/cut.ico
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/font_big.ico
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/font_sml.ico
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/fullscrn.ico
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/italic.ico
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/justify.ico
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/left.ico
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/link_obj.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/para_bul.ico
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/para_num.ico
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/paste.ico
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/resize.ico
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/right.ico
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/strikeout.ico
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/styles.txt
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/text.txt
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/text4.txt
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/textBackground.ico
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/textForeground.ico
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/underline.ico
examples/org.eclipse.swt.opengl.examples/.classpath
examples/org.eclipse.swt.opengl.examples/.cvsignore
examples/org.eclipse.swt.opengl.examples/.project
examples/org.eclipse.swt.opengl.examples/about.html
examples/org.eclipse.swt.opengl.examples/build.properties
examples/org.eclipse.swt.opengl.examples/plugin.properties
examples/org.eclipse.swt.opengl.examples/plugin.xml
examples/org.eclipse.swt.opengl.examples/src/examples_opengl.properties
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/AntialiasingTab.java
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/AreaTab.java
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/ColorSelectionGroup.java
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/FogTab.java
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/GradientTab.java
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/IColorSelectionListener.java
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/ImageDataUtil.java
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/LWJGLExample.java
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/LightTab.java
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/NurbTab.java
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/ObjectsTab.java
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/OpenGLExample.java
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/OpenGLTab.java
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/ReflectionTab.java
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/StencilTab.java
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/TextureTab.java
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/TransparencyTab.java
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/Ball.jpg
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/Box.bmp
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/Floor.jpg
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/splash.bmp
examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/images/untitled.jpg
examples/org.eclipse.swt.snippets/.classpath
examples/org.eclipse.swt.snippets/.cvsignore
examples/org.eclipse.swt.snippets/.project
examples/org.eclipse.swt.snippets/about.html
examples/org.eclipse.swt.snippets/build.properties
examples/org.eclipse.swt.snippets/plugin.properties
examples/org.eclipse.swt.snippets/plugin.xml
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet1.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet10.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet100.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet101.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet102.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet103.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet104.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet105.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet106.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet107.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet108.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet109.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet11.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet110.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet111.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet112.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet113.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet114.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet115.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet116.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet117.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet118.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet119.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet12.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet120.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet121.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet122.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet123.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet124.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet125.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet126.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet127.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet128.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet129.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet13.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet130.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet131.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet132.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet133.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet134.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet135.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet136.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet137.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet138.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet139.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet14.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet140.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet141.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet142.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet143.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet144.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet145.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet146.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet147.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet148.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet149.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet15.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet150.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet151.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet152.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet153.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet154.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet155.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet156.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet157.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet158.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet159.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet16.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet160.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet161.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet162.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet163.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet164.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet165.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet166.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet167.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet168.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet169.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet17.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet170.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet171.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet172.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet173.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet174.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet175.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet176.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet177.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet178.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet179.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet18.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet180.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet181.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet182.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet183.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet184.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet185.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet186.html
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet186.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet187.html
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet187.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet188.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet189.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet19.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet190.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet191.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet192.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet193.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet194.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet195.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet196.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet197.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet198.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet199.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet2.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet20.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet200.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet201.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet202.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet203.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet204.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet205.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet206.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet207.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet208.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet209.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet21.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet210.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet211.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet212.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet213.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet214.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet215.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet216.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet217.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet218.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet219.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet22.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet220.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet221.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet222.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet223.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet224.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet225.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet226.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet227.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet228.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet229.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet23.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet230.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet231.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet232.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet233.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet234.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet235.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet236.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet237.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet238.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet239.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet24.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet240.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet241.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet242.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet243.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet244.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet245.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet246.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet247.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet248.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet249.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet25.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet250.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet251.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet252.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet253.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet254.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet256.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet257.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet258.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet259.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet26.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet260.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet261.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet262.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet263.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet264.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet265.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet266.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet267.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet268.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet269.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet27.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet270.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet271.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet272.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet273.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet274.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet275.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet276.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet277.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet278.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet279.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet28.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet280.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet281.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet282.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet283.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet284.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet285.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet286.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet287.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet288.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet289.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet29.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet290.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet291.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet292.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet293.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet294.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet295.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet296.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet297.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet298.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet299.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet3.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet30.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet300.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet301.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet302.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet303.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet304.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet305.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet306.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet307.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet308.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet309.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet31.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet310.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet311.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet312.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet313.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet314.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet315.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet316.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet317.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet318.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet32.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet33.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet34.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet35.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet36.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet37.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet38.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet39.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet4.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet40.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet41.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet42.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet43.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet44.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet45.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet46.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet47.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet48.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet49.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet5.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet50.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet51.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet52.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet53.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet54.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet55.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet56.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet57.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet58.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet59.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet6.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet60.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet61.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet62.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet63.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet64.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet65.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet66.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet67.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet68.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet69.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet7.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet70.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet71.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet72.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet73.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet74.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet75.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet76.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet77.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet78.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet79.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet8.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet80.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet81.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet82.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet83.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet84.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet85.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet86.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet87.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet88.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet89.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet9.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet90.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet91.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet92.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet93.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet94.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet95.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet96.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet97.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet98.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet99.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/SnippetLauncher.java
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/eclipse.png
tests/org.eclipse.swt.tests/.classpath
tests/org.eclipse.swt.tests/.cvsignore
tests/org.eclipse.swt.tests/.project
tests/org.eclipse.swt.tests/.settings/org.eclipse.jdt.core.prefs
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllBrowserTests.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllCarbonTests.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllCocoaTests.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllGraphicsTests.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllGtkTests.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllMotifTests.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllTests.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllWidgetTests.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/ConsistencyUtility.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/EmulatedWidgetsTests.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/StyledTextContentSpec.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/SwtJunit.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/SwtTestCase.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_SWT.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_SWTError.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_SWTException.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_accessibility_ACC.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_accessibility_Accessible.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_accessibility_AccessibleAdapter.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_accessibility_AccessibleControlAdapter.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_accessibility_AccessibleControlEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_accessibility_AccessibleControlListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_accessibility_AccessibleEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_accessibility_AccessibleListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_accessibility_AccessibleTextAdapter.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_accessibility_AccessibleTextEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_accessibility_AccessibleTextListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_awt_SWT_AWT.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_Browser.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_CloseWindowListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_LocationAdapter.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_LocationListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_OpenWindowListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_ProgressAdapter.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_ProgressListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_StatusTextListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_TitleListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_VisibilityWindowAdapter.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_VisibilityWindowListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_AnimatedProgress.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_BidiSegmentEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_BidiSegmentListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_BusyIndicator.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_CCombo.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_CLabel.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_CTabFolder.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_CTabFolderAdapter.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_CTabFolderEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_CTabFolderListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_CTabItem.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_ControlEditor.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_ExtendedModifyEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_ExtendedModifyListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_LineBackgroundEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_LineBackgroundListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_LineStyleEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_LineStyleListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_PopupList.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_ST.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_SashForm.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_ScrolledComposite.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StackLayout.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StyleRange.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StyledText.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StyledTextContent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_TableCursor.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_TableEditor.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_TableTree.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_TableTreeEditor.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_TableTreeItem.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_TextChangeListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_TextChangedEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_TextChangingEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_TreeEditor.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_VerifyKeyListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_ViewForm.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_ByteArrayTransfer.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_Clipboard.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_DND.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_DragSource.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_DragSourceAdapter.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_DragSourceEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_DragSourceListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_DropTarget.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_DropTargetAdapter.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_DropTargetEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_DropTargetListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_FileTransfer.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_RTFTransfer.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_TextTransfer.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_Transfer.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_dnd_TransferData.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_ArmEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_ArmListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_ControlAdapter.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_ControlEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_ControlListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_DisposeEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_DisposeListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_FocusAdapter.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_FocusEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_FocusListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_HelpEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_HelpListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_KeyAdapter.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_KeyEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_KeyListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_MenuAdapter.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_MenuEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_MenuListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_ModifyEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_ModifyListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_MouseAdapter.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_MouseEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_MouseListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_MouseMoveListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_MouseTrackAdapter.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_MouseTrackListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_PaintEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_PaintListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_SelectionAdapter.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_SelectionEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_SelectionListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_ShellAdapter.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_ShellEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_ShellListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_TraverseEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_TraverseListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_TreeAdapter.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_TreeEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_TreeListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_TypedEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_VerifyEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_events_VerifyListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_Color.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_Cursor.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_Device.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_DeviceData.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_Drawable.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_Font.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_FontData.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_FontMetrics.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_GC.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_GCData.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_Image.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_ImageData.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_ImageLoader.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_ImageLoaderEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_ImageLoaderListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_PaletteData.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_Point.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_RGB.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_Rectangle.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_graphics_Region.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_layout_FillLayout.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_layout_FormAttachment.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_layout_FormData.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_layout_FormLayout.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_layout_GridData.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_layout_GridLayout.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_layout_RowData.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_layout_RowLayout.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_ole_win32_OLE.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_ole_win32_OleAutomation.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_ole_win32_OleClientSite.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_ole_win32_OleControlSite.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_ole_win32_OleEvent.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_ole_win32_OleFrame.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_ole_win32_OleFunctionDescription.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_ole_win32_OleListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_ole_win32_OleParameterDescription.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_ole_win32_OlePropertyDescription.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_ole_win32_Variant.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_printing_PrintDialog.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_printing_Printer.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_printing_PrinterData.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_program_Program.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Button.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Canvas.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Caret.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_ColorDialog.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Combo.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Composite.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Control.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_CoolBar.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_CoolItem.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_DateTime.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Decorations.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Dialog.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_DirectoryDialog.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Display.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Event.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_ExpandBar.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_ExpandItem.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_FileDialog.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_FontDialog.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Group.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Item.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Label.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Layout.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Link.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_List.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Listener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Menu.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_MenuItem.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_MessageBox.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Monitor.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_ProgressBar.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Sash.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Scale.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_ScrollBar.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Scrollable.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Shell.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Slider.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Synchronizer.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_TabFolder.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_TabItem.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Table.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_TableColumn.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_TableItem.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Text.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_ToolBar.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_ToolItem.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Tracker.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Tree.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_TreeColumn.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_TreeItem.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_TypedListener.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_widgets_Widget.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/browser/Browser1.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/browser/Browser2.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/browser/Browser3.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/browser/Browser4.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/browser/Browser5.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/browser/Browser6.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/browser/Browser7.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/browser/Browser8.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/browser/Test_BrowserSuite.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/corrupt.bmp
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/corrupt.gif
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/corrupt.jpg
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/corrupt.png
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/corruptBadBitDepth.png
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/empty.txt
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/folder.bmp
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/folder.gif
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/folder.jpg
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/folder.png
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/folderOpen.bmp
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/folderOpen.gif
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/folderOpen.jpg
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/folderOpen.png
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/interlaced_target.png
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/junitGen.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/performance/PerformanceTests.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/performance/SwtPerformanceTestCase.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/performance/Test_situational.java
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/target.bmp
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/target.gif
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/target.jpg
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/target.png
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/transparent.png
tests/org.eclipse.swt.tests/META-INF/MANIFEST.MF
tests/org.eclipse.swt.tests/about.html
tests/org.eclipse.swt.tests/build.properties
tests/org.eclipse.swt.tests/data/browser3.html
tests/org.eclipse.swt.tests/data/browser4.html
tests/org.eclipse.swt.tests/data/browser4a.html
tests/org.eclipse.swt.tests/data/browser5.html
tests/org.eclipse.swt.tests/data/browser6.html
tests/org.eclipse.swt.tests/data/browser7.html
tests/org.eclipse.swt.tests/data/browser9.html
tests/org.eclipse.swt.tests/data/corrupt.bmp
tests/org.eclipse.swt.tests/data/corrupt.gif
tests/org.eclipse.swt.tests/data/corrupt.jpg
tests/org.eclipse.swt.tests/data/corrupt.png
tests/org.eclipse.swt.tests/data/corruptBadBitDepth.png
tests/org.eclipse.swt.tests/data/empty.txt
tests/org.eclipse.swt.tests/data/folder.bmp
tests/org.eclipse.swt.tests/data/folder.gif
tests/org.eclipse.swt.tests/data/folder.jpg
tests/org.eclipse.swt.tests/data/folder.png
tests/org.eclipse.swt.tests/data/folderOpen.bmp
tests/org.eclipse.swt.tests/data/folderOpen.gif
tests/org.eclipse.swt.tests/data/folderOpen.jpg
tests/org.eclipse.swt.tests/data/folderOpen.png
tests/org.eclipse.swt.tests/data/target.bmp
tests/org.eclipse.swt.tests/data/target.gif
tests/org.eclipse.swt.tests/data/target.jpg
tests/org.eclipse.swt.tests/data/target.png
tests/org.eclipse.swt.tests/data/transparent.png
tests/org.eclipse.swt.tests/plugin.properties
tests/org.eclipse.swt.tests/test.xml
Diffstat (limited to 'bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse')
41 files changed, 0 insertions, 6921 deletions
diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTClass.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTClass.java deleted file mode 100644 index 219da194fe..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTClass.java +++ /dev/null @@ -1,190 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2008 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.io.File; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.ASTParser; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.FieldDeclaration; -import org.eclipse.jdt.core.dom.ImportDeclaration; -import org.eclipse.jdt.core.dom.Javadoc; -import org.eclipse.jdt.core.dom.MethodDeclaration; -import org.eclipse.jdt.core.dom.TagElement; -import org.eclipse.jdt.core.dom.TypeDeclaration; -import org.eclipse.jdt.core.dom.VariableDeclarationFragment; -import org.eclipse.swt.tools.internal.ASTType.TypeResolver; - -public class ASTClass extends ASTItem implements JNIClass { - String sourcePath; - MetaData metaData; - - ASTClass superclass; - ASTField[] fields; - ASTMethod[] methods; - String name, simpleName, superclassName, packageName; - String[] imports; - String data; - int start; - - TypeResolver resolver = new TypeResolver() { - public String findPath(String simpleName) { - if (simpleName.equals(ASTClass.this.simpleName)) return sourcePath; - String basePath = sourcePath.substring(0, sourcePath.length() - name.length() - ".java".length()); - File file = new File(basePath + packageName.replace('.', '/') + "/" + simpleName + ".java"); - if (file.exists()) { - return file.getAbsolutePath(); - } - for (int i = 0; i < imports.length; i++) { - file = new File(basePath + imports[i].replace('.', '/') + "/" + simpleName + ".java"); - if (file.exists()) { - return file.getAbsolutePath(); - } - } - return ""; - } - public String resolve(String simpleName) { - if (simpleName.equals(ASTClass.this.simpleName)) return packageName + "." + simpleName; - String basePath = sourcePath.substring(0, sourcePath.length() - name.length() - ".java".length()); - File file = new File(basePath + packageName.replace('.', '/') + "/" + simpleName + ".java"); - if (file.exists()) { - return packageName + "." + simpleName; - } - for (int i = 0; i < imports.length; i++) { - file = new File(basePath + imports[i].replace('.', '/') + "/" + simpleName + ".java"); - if (file.exists()) { - return imports[i] + "." + simpleName; - } - } - return simpleName; - } - }; - -public ASTClass(String sourcePath, MetaData metaData) { - this.sourcePath = sourcePath; - this.metaData = metaData; - - String source = JNIGenerator.loadFile(sourcePath); - ASTParser parser = ASTParser.newParser(AST.JLS3); - parser.setSource(source.toCharArray()); - CompilationUnit unit = (CompilationUnit)parser.createAST(null); - TypeDeclaration type = (TypeDeclaration)unit.types().get(0); - simpleName = type.getName().getIdentifier(); - packageName = unit.getPackage().getName().getFullyQualifiedName(); - name = packageName + "." + simpleName; - superclassName = type.getSuperclassType() != null ? type.getSuperclassType().toString() : null; - List imports = unit.imports(); - this.imports = new String[imports.size()]; - int count = 0; - for (Iterator iterator = imports.iterator(); iterator.hasNext();) { - ImportDeclaration imp = (ImportDeclaration) iterator.next(); - this.imports[count++] = imp.getName().getFullyQualifiedName(); - } - start = type.getStartPosition(); - - Javadoc doc = type.getJavadoc(); - List tags = null; - if (doc != null) { - tags = doc.tags(); - for (Iterator iterator = tags.iterator(); iterator.hasNext();) { - TagElement tag = (TagElement) iterator.next(); - if ("@jniclass".equals(tag.getTagName())) { - String data = tag.fragments().get(0).toString(); - setMetaData(data); - break; - } - } - } - - FieldDeclaration[] fields = type.getFields(); - ArrayList fid = new ArrayList(); - for (int i = 0; i < fields.length; i++) { - FieldDeclaration field = fields[i]; - List fragments = field.fragments(); - for (Iterator iterator = fragments.iterator(); iterator.hasNext();) { - VariableDeclarationFragment fragment = (VariableDeclarationFragment) iterator.next(); - fid.add(new ASTField(this, source, field, fragment)); - } - } - this.fields = (ASTField[])fid.toArray(new ASTField[fid.size()]); - MethodDeclaration[] methods = type.getMethods(); - ArrayList mid = new ArrayList(); - for (int i = 0; i < methods.length; i++) { - if (methods[i].getReturnType2() == null) continue; - mid.add(new ASTMethod(this, source, methods[i])); - } - this.methods = (ASTMethod[])mid.toArray(new ASTMethod[mid.size()]); -} - -public int hashCode() { - return getName().hashCode(); -} - -public boolean equals(Object obj) { - if (this == obj) return true; - if (!(obj instanceof ASTClass)) return false; - return ((ASTClass)obj).getName().equals(getName()); -} - -public JNIField[] getDeclaredFields() { - JNIField[] result = new JNIField[fields.length]; - System.arraycopy(fields, 0, result, 0, result.length); - return result; -} - -public JNIMethod[] getDeclaredMethods() { - JNIMethod[] result = new JNIMethod[methods.length]; - System.arraycopy(methods, 0, result, 0, result.length); - return result; -} - -public String getName() { - return name; -} - -public JNIClass getSuperclass() { - if (superclassName == null) return new ReflectClass(Object.class); - if (superclass != null) return superclass; - String sourcePath = resolver.findPath(superclassName); - return superclass = new ASTClass(sourcePath, metaData); -} - -public String getSimpleName() { - return simpleName; -} - -public String getExclude() { - return (String)getParam("exclude"); -} - -public String getMetaData() { - if (data != null) return data; - String key = JNIGenerator.toC(getName()); - return metaData.getMetaData(key, ""); -} - -public void setExclude(String str) { - setParam("exclude", str); -} - -public void setMetaData(String value) { - data = value; -} - -public String toString() { - return getName(); -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTField.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTField.java deleted file mode 100644 index 272dce0a90..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTField.java +++ /dev/null @@ -1,137 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2008 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.util.Iterator; -import java.util.List; - -import org.eclipse.jdt.core.dom.FieldDeclaration; -import org.eclipse.jdt.core.dom.Javadoc; -import org.eclipse.jdt.core.dom.TagElement; -import org.eclipse.jdt.core.dom.VariableDeclarationFragment; - -public class ASTField extends ASTItem implements JNIField { - ASTClass declaringClass; - String name; - int modifiers; - ASTType type, type64; - String data; - int start; - -public ASTField(ASTClass declaringClass, String source, FieldDeclaration field, VariableDeclarationFragment fragment) { - this.declaringClass = declaringClass; - name = fragment.getName().getIdentifier(); - modifiers = field.getModifiers(); - start = field.getStartPosition(); - - Javadoc doc = field.getJavadoc(); - List tags = null; - if (doc != null) { - tags = doc.tags(); - for (Iterator iterator = tags.iterator(); iterator.hasNext();) { - TagElement tag = (TagElement) iterator.next(); - if ("@field".equals(tag.getTagName())) { - String data = tag.fragments().get(0).toString(); - setMetaData(data); - break; - } - } - } - type = new ASTType(declaringClass.resolver, field.getType(), fragment.getExtraDimensions()); - type64 = this.type; - if (GEN64) { - String s = source.substring(field.getStartPosition(), field.getStartPosition() + field.getLength()); - if (type.isType("int") && s.indexOf("int /*long*/") != -1) type64 = new ASTType("J"); - else if (type.isType("float") && s.indexOf("float /*double*/") != -1) type64 = new ASTType("D"); - else if (type.isType("[I") && (s.indexOf("int /*long*/") != -1 || s.indexOf("int[] /*long[]*/") != -1)) type64 = new ASTType("[J"); - else if (type.isType("[F") && (s.indexOf("float /*double*/") != -1|| s.indexOf("float[] /*double[]*/") != -1)) type64 = new ASTType("[D"); - else if (type.isType("long") && s.indexOf("long /*int*/") != -1) type = new ASTType("I"); - else if (type.isType("double") && s.indexOf("double /*float*/") != -1) type = new ASTType("F"); - else if (type.isType("[J") && (s.indexOf("long /*int*/") != -1|| s.indexOf("long[] /*int[]*/") != -1)) type = new ASTType("[I"); - else if (type.isType("[D") && (s.indexOf("double /*float*/") != -1|| s.indexOf("double[] /*float[]*/") != -1)) type = new ASTType("[F"); - } -} - -public int hashCode() { - return getName().hashCode(); -} - -public boolean equals(Object obj) { - if (this == obj) return true; - if (!(obj instanceof ASTField)) return false; - return ((ASTField)obj).getName().equals(getName()); -} - -public JNIClass getDeclaringClass() { - return declaringClass; -} - -public int getModifiers() { - return modifiers; -} - -public String getName() { - return name; -} - -public JNIType getType() { - return type; -} - -public JNIType getType64() { - return type64; -} - -public String getAccessor() { - return (String)getParam("accessor"); -} - -public String getCast() { - String cast = ((String)getParam("cast")).trim(); - if (cast.length() > 0) { - if (!cast.startsWith("(")) cast = "(" + cast; - if (!cast.endsWith(")")) cast = cast + ")"; - } - return cast; -} - -public String getExclude() { - return (String)getParam("exclude"); -} - -public String getMetaData() { - if (data != null) return data; - String className = getDeclaringClass().getSimpleName(); - String key = className + "_" + getName(); - return declaringClass.metaData.getMetaData(key, ""); -} - -public void setAccessor(String str) { - setParam("accessor", str); -} - -public void setCast(String str) { - setParam("cast", str); -} - -public void setExclude(String str) { - setParam("exclude", str); -} - -public void setMetaData(String value) { - data = value; -} - -public String toString() { - return getName(); -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTItem.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTItem.java deleted file mode 100644 index 51965b92f1..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTItem.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.eclipse.swt.tools.internal; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.Set; - -public abstract class ASTItem extends AbstractItem { - -public String flatten() { - checkParams(); - StringBuffer buffer = new StringBuffer(); - Set set = params.keySet(); - String[] keys = (String[])set.toArray(new String[set.size()]); - Arrays.sort(keys); - for (int j = 0; j < keys.length; j++) { - String key = keys[j]; - Object value = params.get(key); - String valueStr = ""; - if (value instanceof String) { - valueStr = (String)value; - } else if (value instanceof String[]) { - String[] values = (String[])value; - StringBuffer valueBuffer = new StringBuffer(); - for (int i = 0; i < values.length; i++) { - if (i != 0) valueBuffer.append(" "); - valueBuffer.append(values[i]); - } - valueStr = valueBuffer.toString(); - } else { - valueStr = value.toString(); - } - if (valueStr.length() > 0) { - if (buffer.length() != 0) buffer.append(","); - buffer.append(key); - buffer.append("="); - buffer.append(valueStr); - } - } - return buffer.toString(); -} - -public void parse(String str) { - this.params = new HashMap(); - if (str.length() == 0) return; - String[] params = split(str, ","); - for (int i = 0; i < params.length; i++) { - String param = params[i]; - int equals = param.indexOf('='); - if (equals == -1) { - System.out.println("Error: " + str + " param " + param); - } - String key = param.substring(0, equals).trim(); - String value = param.substring(equals + 1).trim(); - setParam(key, value); - } -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTMethod.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTMethod.java deleted file mode 100644 index 0708c169a8..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTMethod.java +++ /dev/null @@ -1,204 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2008 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.lang.reflect.Modifier; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.jdt.core.dom.Javadoc; -import org.eclipse.jdt.core.dom.MethodDeclaration; -import org.eclipse.jdt.core.dom.SingleVariableDeclaration; -import org.eclipse.jdt.core.dom.TagElement; - -public class ASTMethod extends ASTItem implements JNIMethod { - String name, qualifiedName; - int modifiers; - ASTClass declaringClass; - ASTType[] paramTypes, paramTypes64; - ASTType returnType, returnType64; - ASTParameter[] parameters; - Boolean unique; - String data; - int start; - -public ASTMethod(ASTClass declaringClass, String source, MethodDeclaration method) { - this.declaringClass = declaringClass; - - name = method.getName().getIdentifier(); - modifiers = method.getModifiers(); - start = method.getStartPosition(); - - Javadoc doc = method.getJavadoc(); - List tags = null; - if (doc != null) { - tags = doc.tags(); - for (Iterator iterator = tags.iterator(); iterator.hasNext();) { - TagElement tag = (TagElement) iterator.next(); - if ("@method".equals(tag.getTagName())) { - String data = tag.fragments().get(0).toString(); - setMetaData(data); - break; - } - } - } - returnType = new ASTType(declaringClass.resolver, method.getReturnType2(), method.getExtraDimensions()); - returnType64 = returnType; - if (GEN64) { - String s = source.substring(method.getReturnType2().getStartPosition(), method.getName().getStartPosition()); - if (returnType.isType("int") && s.indexOf("int /*long*/") != -1) returnType64 = new ASTType("J"); - else if (returnType.isType("float") && s.indexOf("float /*double*/") != -1) returnType64 = new ASTType("D"); - else if (returnType.isType("[I") && (s.indexOf("int /*long*/") != -1 || s.indexOf("int[] /*long[]*/") != -1)) returnType64 = new ASTType("[J"); - else if (returnType.isType("[F") && (s.indexOf("float /*double*/") != -1|| s.indexOf("float[] /*double[]*/") != -1)) returnType64 = new ASTType("[D"); - else if (returnType.isType("long") && s.indexOf("long /*int*/") != -1) returnType = new ASTType("I"); - else if (returnType.isType("double") && s.indexOf("double /*float*/") != -1) returnType = new ASTType("F"); - else if (returnType.isType("[J") && (s.indexOf("long /*int*/") != -1|| s.indexOf("long[] /*int[]*/") != -1)) returnType = new ASTType("[I"); - else if (returnType.isType("[D") && (s.indexOf("double /*float*/") != -1|| s.indexOf("double[] /*float[]*/") != -1)) returnType = new ASTType("[F"); - } - - List parameters = method.parameters(); - paramTypes = new ASTType[parameters.size()]; - paramTypes64 = new ASTType[parameters.size()]; - this.parameters = new ASTParameter[paramTypes.length]; - int i = 0; - for (Iterator iterator = parameters.iterator(); iterator.hasNext(); i++) { - SingleVariableDeclaration param = (SingleVariableDeclaration) iterator.next(); - paramTypes[i] = new ASTType(declaringClass.resolver, param.getType(), param.getExtraDimensions()); - paramTypes64[i] = paramTypes[i]; - this.parameters[i] = new ASTParameter(this, i, param.getName().getIdentifier()); - if (GEN64) { - String s = source.substring(param.getStartPosition(), param.getStartPosition() + param.getLength()); - if (paramTypes[i].isType("int") && s.indexOf("int /*long*/") != -1) paramTypes64[i] = new ASTType("J"); - else if (paramTypes[i].isType("float") && s.indexOf("float /*double*/") != -1) paramTypes64[i] = new ASTType("D"); - else if (paramTypes[i].isType("[I") && (s.indexOf("int /*long*/") != -1 || s.indexOf("int[] /*long[]*/") != -1)) paramTypes64[i] = new ASTType("[J"); - else if (paramTypes[i].isType("[F") && (s.indexOf("float /*double*/") != -1|| s.indexOf("float[] /*double[]*/") != -1)) paramTypes64[i] = new ASTType("[D"); - else if (paramTypes[i].isType("long") && s.indexOf("long /*int*/") != -1) paramTypes[i] = new ASTType("I"); - else if (paramTypes[i].isType("double") && s.indexOf("double /*float*/") != -1) paramTypes[i] = new ASTType("F"); - else if (paramTypes[i].isType("[J") && (s.indexOf("long /*int*/") != -1|| s.indexOf("long[] /*int[]*/") != -1)) paramTypes[i] = new ASTType("[I"); - else if (paramTypes[i].isType("[D") && (s.indexOf("double /*float*/") != -1|| s.indexOf("double[] /*float[]*/") != -1)) paramTypes[i] = new ASTType("[F"); - } - if (tags != null) { - String name = param.getName().getIdentifier(); - for (Iterator iterator1 = tags.iterator(); iterator1.hasNext();) { - TagElement tag = (TagElement) iterator1.next(); - if ("@param".equals(tag.getTagName())) { - List fragments = tag.fragments(); - if (name.equals(fragments.get(0).toString())) { - String data = fragments.get(1).toString(); - this.parameters[i].setMetaData(data); - } - } - } - } - } -} - -public JNIClass getDeclaringClass() { - return declaringClass; -} - -public int getModifiers() { - return modifiers; -} - -public String getName() { - return name; -} - -public boolean isNativeUnique() { - if (unique != null) return unique.booleanValue(); - boolean result = true; - String name = getName(); - JNIMethod[] methods = declaringClass.getDeclaredMethods(); - for (int i = 0; i < methods.length; i++) { - JNIMethod mth = methods[i]; - if ((mth.getModifiers() & Modifier.NATIVE) != 0 && - this != mth && !this.equals(mth) && - name.equals(mth.getName())) - { - result = false; - break; - } - } - unique = new Boolean(result); - return result; -} - -public JNIType[] getParameterTypes() { - return paramTypes; -} - -public JNIType[] getParameterTypes64() { - return paramTypes64; -} - -public JNIParameter[] getParameters() { - return this.parameters; -} - -public JNIType getReturnType() { - return returnType; -} - -public JNIType getReturnType64() { - return returnType64; -} - -public String getAccessor() { - return (String)getParam("accessor"); -} - -public String getExclude() { - return (String)getParam("exclude"); -} - -public String getMetaData() { - if (data != null) return data; - String className = getDeclaringClass().getSimpleName(); - String key = className + "_" + JNIGenerator.getFunctionName(this); - MetaData metaData = declaringClass.metaData; - String value = metaData.getMetaData(key, null); - if (value == null) { - key = className + "_" + getName(); - value = metaData.getMetaData(key, null); - } - /* - * Support for lock. - */ - if (value == null && getName().startsWith("_")) { - key = className + "_" + JNIGenerator.getFunctionName(this).substring(2); - value = metaData.getMetaData(key, null); - if (value == null) { - key = className + "_" + getName().substring(1); - value = metaData.getMetaData(key, null); - } - } - if (value == null) value = ""; - return value; -} - -public void setAccessor(String str) { - setParam("accessor", str); -} - -public void setExclude(String str) { - setParam("exclude", str); -} - -public void setMetaData(String value) { - data = value; -} - -public String toString() { - return getName(); -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTParameter.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTParameter.java deleted file mode 100644 index ee217a568d..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTParameter.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2008 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -public class ASTParameter extends ASTItem implements JNIParameter { - ASTMethod method; - int parameter; - String name; - String data; - -public ASTParameter(ASTMethod method, int parameter, String name) { - this.method = method; - this.parameter = parameter; - this.name = name; -} - -public String getCast() { - String cast = ((String)getParam("cast")).trim(); - if (cast.length() > 0) { - if (!cast.startsWith("(")) cast = "(" + cast; - if (!cast.endsWith(")")) cast = cast + ")"; - } - return cast; -} - -public String getMetaData() { - if (data != null) return data; - String className = method.getDeclaringClass().getSimpleName(); - String key = className + "_" + JNIGenerator.getFunctionName(method) + "_" + parameter; - MetaData metaData = method.declaringClass.metaData; - String value = metaData.getMetaData(key, null); - if (value == null) { - key = className + "_" + method.getName() + "_" + parameter; - value = metaData.getMetaData(key, null); - } - /* - * Support for lock. - */ - if (value == null && method.getName().startsWith("_")) { - key = className + "_" + JNIGenerator.getFunctionName(method).substring(2) + "_" + parameter; - value = metaData.getMetaData(key, null); - if (value == null) { - key = className + "_" + method.getName().substring(1) + "_" + parameter; - value = metaData.getMetaData(key, null); - } - } - if (value == null) value = ""; - return value; -} - -public JNIMethod getMethod() { - return method; -} - -public String getName() { - return name; -} - -public JNIClass getTypeClass() { - ASTType type = (ASTType)getType(); - ASTClass declaringClass = method.declaringClass; - String sourcePath = declaringClass.resolver.findPath(type.getSimpleName()); - return new ASTClass(sourcePath, declaringClass.metaData); -} - -public JNIType getType() { - return method.getParameterTypes()[parameter]; -} - -public JNIType getType64() { - return method.getParameterTypes64()[parameter]; -} - -public int getParameter() { - return parameter; -} - -public void setCast(String str) { - setParam("cast", str); -} - -public void setMetaData(String value) { - data = value; -} -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTType.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTType.java deleted file mode 100644 index a98ac50d91..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTType.java +++ /dev/null @@ -1,214 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2008 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import org.eclipse.jdt.core.dom.ArrayType; -import org.eclipse.jdt.core.dom.Type; - -public class ASTType implements JNIType { - - static interface TypeResolver { - public String findPath(String simpleName); - public String resolve(String simpleName); - } - - String name; - -public ASTType(String name) { - this.name = name; -} - -public ASTType(TypeResolver resolver, Type type, int extraDimensions) { - name = from(resolver, type, extraDimensions); -} - -String from(TypeResolver resolver, Type type, int extraDimensions) { - String name = ""; - String str = type.toString(); - if (type.isPrimitiveType()) { - if (str.equals("void")) name = "V"; - else if (str.equals("int")) name = "I"; - else if (str.equals("boolean")) name = "Z"; - else if (str.equals("long")) name = "J"; - else if (str.equals("short")) name = "S"; - else if (str.equals("char")) name = "C"; - else if (str.equals("byte")) name = "B"; - else if (str.equals("float")) name = "F"; - else if (str.equals("double")) name = "D"; - } else if (type.isArrayType()) { - ArrayType arrayType = (ArrayType)type; - name = from(resolver, arrayType.getElementType(), arrayType.getDimensions()); - } else if (str.indexOf('.') != -1) { - name = "L" + type.toString().replace('.', '/') + ";"; - } else if (str.equals("String")){ - name = "Ljava/lang/String;"; - } else if (str.equals("Class")){ - name = "Ljava/lang/Class;"; - } else if (str.equals("Object")){ - name = "Ljava/lang/Object;"; - } else { - String qualifiedName = resolver != null ? resolver.resolve(str) : str; - name = "L" + qualifiedName.replace('.', '/') + ";"; - } - for (int i = 0; i < extraDimensions; i++) { - name = "[" + name; - } - return name; -} - -public boolean equals(Object obj) { - if (obj == this) return true; - if (!(obj instanceof ASTType)) return false; - return ((ASTType)obj).name.equals(name); -} - -public JNIType getComponentType() { - if (!name.startsWith("[")) throw new RuntimeException(); - return new ASTType(name.substring(1)); -} - -public String getName() { - if (isPrimitive()) { - if (name.equals("V")) return "void"; - if (name.equals("I")) return "int"; - if (name.equals("Z")) return "boolean"; - if (name.equals("J")) return "long"; - if (name.equals("S")) return "short"; - if (name.equals("C")) return "char"; - if (name.equals("B")) return "byte"; - if (name.equals("F")) return "float"; - if (name.equals("D")) return "double"; - } - if (isArray()) return name; - return name.substring(1, name.length() - 1).replace('/', '.'); -} - -public String getSimpleName() { - String name = getName(); - if (isArray() || isPrimitive()) return name; - int index = name.lastIndexOf('.') + 1; - return name.substring(index, name.length()); -} - -public String getTypeSignature(boolean define) { - if (isPrimitive()) { - if (define) { - if (name.equals("I")) return "I_J"; - if (name.equals("J")) return "I_J"; - if (name.equals("F")) return "F_D"; - if (name.equals("D")) return "F_D"; - } - return name; - } - if (isArray()) { - if (define) return getComponentType().getTypeSignature(define) + "Array"; - return "[" + getComponentType().getTypeSignature(define); - } - return name; -} - -public String getTypeSignature1(boolean define) { - if (isPrimitive()) { - if (name.equals("V")) return "Void"; - if (name.equals("I")) return define ? "IntLong" : "Int"; - if (name.equals("Z")) return "Boolean"; - if (name.equals("J")) return define ? "IntLong" : "Long"; - if (name.equals("S")) return "Short"; - if (name.equals("C")) return "Char"; - if (name.equals("B")) return "Byte"; - if (name.equals("F")) return define ? "FloatDouble" : "Float"; - if (name.equals("D")) return define ? "FloatDouble" : "Double"; - } - if (name.equals("Ljava/lang/String;")) return "String"; - return "Object"; -} - -public String getTypeSignature2(boolean define) { - if (isPrimitive()) { - if (name.equals("V")) return "void"; - if (name.equals("I")) return define ? "jintLong" : "jint"; - if (name.equals("Z")) return "jboolean"; - if (name.equals("J")) return define ? "jintLong" : "jlong"; - if (name.equals("S")) return "jshort"; - if (name.equals("C")) return "jchar"; - if (name.equals("B")) return "jbyte"; - if (name.equals("F")) return define ? "jfloatDouble" : "jfloat"; - if (name.equals("D")) return define ? "jfloatDouble" : "jdouble"; - } - if (name.equals("Ljava/lang/String;")) return "jstring"; - if (name.equals("Ljava/lang/Class;")) return "jclass"; - if (isArray()) { - return getComponentType().getTypeSignature2(define) + "Array"; - } - return "jobject"; -} - -public String getTypeSignature3(boolean define) { - if (isPrimitive()) { - if (name.equals("V")) return "void"; - if (name.equals("I")) return "int"; - if (name.equals("Z")) return "boolean"; - if (name.equals("J")) return "long"; - if (name.equals("S")) return "short"; - if (name.equals("C")) return "char"; - if (name.equals("B")) return "byte"; - if (name.equals("F")) return "float"; - if (name.equals("D")) return "double"; - } - if (name.equals("Ljava/lang/String;")) return "String"; - if (isArray()) { - return getComponentType().getTypeSignature3(define) + "[]"; - } - return getName(); -} - -public String getTypeSignature4(boolean define, boolean struct) { - if (isPrimitive()) { - if (name.equals("V")) return "void"; - if (name.equals("I")) return define ? "jintLong" : "jint"; - if (name.equals("Z")) return "jboolean"; - if (name.equals("J")) return define ? "jintLong" : "jlong"; - if (name.equals("S")) return "jshort"; - if (name.equals("C")) return "jchar"; - if (name.equals("B")) return "jbyte"; - if (name.equals("F")) return define ? "jfloatDouble" : "jfloat"; - if (name.equals("D")) return define ? "jfloatDouble" : "jdouble"; - } - if (name.equals("Ljava/lang/String;")) return "jstring"; - if (isArray()) { - String sig = getComponentType().getTypeSignature4(define, struct); - return struct ? sig : sig + " *"; - } - String sig = getSimpleName(); - return struct ? sig : sig + " *"; -} - -public int hashCode() { - return name.hashCode(); -} - -public boolean isArray() { - return name.startsWith("["); -} - -public boolean isPrimitive() { - return !name.startsWith("L") && !name.startsWith("["); -} - -public boolean isType(String type) { - return getName().equals(type); -} - -public String toString() { - return name; -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/AbstractItem.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/AbstractItem.java deleted file mode 100644 index 883c854471..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/AbstractItem.java +++ /dev/null @@ -1,80 +0,0 @@ -package org.eclipse.swt.tools.internal; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; - -public abstract class AbstractItem implements JNIItem { - - HashMap params; - -static String[] split(String str, String separator) { - return JNIGenerator.split(str, separator); -} - -void checkParams() { - if (params != null) return; - parse(getMetaData()); -} - -public abstract String flatten(); - -public String[] getFlags() { - Object flags = getParam("flags"); - if (flags == null) return new String[0]; - if (flags instanceof String[]) return (String[])flags; - String[] result = split((String)flags, " "); - setParam("flags", result); - return result; -} - -public boolean getFlag(String flag) { - String[] flags = getFlags(); - for (int i = 0; i < flags.length; i++) { - if (flags[i].equals(flag)) return true; - } - return false; -} - -public abstract String getMetaData(); - -public Object getParam(String key) { - checkParams(); - Object value = params.get(key); - return value == null ? "" : value; -} - -public boolean getGenerate() { - return !getFlag(FLAG_NO_GEN); -} - -public void setFlags(String[] flags) { - setParam("flags", flags); -} - -public abstract void parse(String str); - -public void setFlag(String flag, boolean value) { - String[] flags = getFlags(); - HashSet set = new HashSet(Arrays.asList(flags)); - if (value) { - set.add(flag); - } else { - set.remove(flag); - } - setFlags((String[])set.toArray(new String[set.size()])); -} - -public void setGenerate(boolean value) { - setFlag(FLAG_NO_GEN, !value); -} - -public abstract void setMetaData(String value); - -public void setParam(String key, Object value) { - checkParams(); - params.put(key, value); - setMetaData(flatten()); -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/CleanupClass.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/CleanupClass.java deleted file mode 100644 index ee81cd249c..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/CleanupClass.java +++ /dev/null @@ -1,127 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.io.*; -import java.util.*; - -public abstract class CleanupClass extends JNIGenerator { - -String classSourcePath; -String[] sourcePath; -String classSource; -Hashtable files; -int usedCount, unusedCount; - -String[] getArgNames(JNIMethod method) { - int n_args = method.getParameters().length; - if (n_args == 0) return new String[0]; - String name = method.getName(); - String params = ""; - int index = 0; - while (true) { - index = classSource.indexOf(name, index + 1); - if (!Character.isWhitespace(classSource.charAt(index - 1))) continue; - if (index == -1) return null; - int parantesesStart = classSource.indexOf("(", index); - if (classSource.substring(index + name.length(), parantesesStart).trim().length() == 0) { - int parantesesEnd = classSource.indexOf(")", parantesesStart); - params = classSource.substring(parantesesStart + 1, parantesesEnd); - break; - } - } - String[] names = new String[n_args]; - StringTokenizer tk = new StringTokenizer(params, ","); - for (int i = 0; i < names.length; i++) { - String s = tk.nextToken().trim(); - StringTokenizer tk1 = new StringTokenizer(s, " "); - String s1 = null; - while (tk1.hasMoreTokens()) { - s1 = tk1.nextToken(); - } - names[i] = s1.trim(); - } - return names; -} - - -void loadClassSource() { - if (classSourcePath == null) return; - File f = new File(classSourcePath); - classSource = loadFile(f); -} - -void loadFiles () { - // BAD - holds on to a lot of memory - if (sourcePath == null) return; - files = new Hashtable (); - for (int i = 0; i < sourcePath.length; i++) { - File file = new File(sourcePath[i]); - if (file.exists()) { - if (!file.isDirectory()) { - if (file.getAbsolutePath().endsWith(".java")) { - files.put(file, loadFile(file)); - } - } else { - loadDirectory(file); - } - } - } -} - -String loadFile (File file) { - try { - FileReader fr = new FileReader(file); - BufferedReader br = new BufferedReader(fr); - StringBuffer str = new StringBuffer(); - char[] buffer = new char[1024]; - int read; - while ((read = br.read(buffer)) != -1) { - str.append(buffer, 0, read); - } - fr.close(); - return str.toString(); - } catch (IOException e) { - e.printStackTrace(System.out); - } - return ""; -} - -void loadDirectory(File file) { - String[] entries = file.list(); - for (int i = 0; i < entries.length; i++) { - String entry = entries[i]; - File f = new File(file, entry); - if (!f.isDirectory()) { - if (f.getAbsolutePath().endsWith(".java")) { - files.put(f, loadFile(f)); - } - } else { - loadDirectory(f); - } - } -} - -public void generate(JNIClass clazz) { - loadFiles (); - loadClassSource(); -} - -public void setSourcePath(String[] sourcePath) { - this.sourcePath = sourcePath; - files = null; -} - -public void setClassSourcePath(String classSourcePath) { - this.classSourcePath = classSourcePath; -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/CleanupConstants.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/CleanupConstants.java deleted file mode 100644 index 1f0ade3d31..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/CleanupConstants.java +++ /dev/null @@ -1,96 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.lang.reflect.Modifier; -import java.util.*; - -public class CleanupConstants extends CleanupClass { - -String getFieldValue(JNIField field) { - String name = field.getName(); - int index = 0; - while (true) { - index = classSource.indexOf(name, index + 1); - if (index == -1) return null; - int equalsIndex = classSource.indexOf("=", index); - if (classSource.substring(index + name.length(), equalsIndex).trim().length() == 0) { - int semiIndex = classSource.indexOf(";", equalsIndex); - return classSource.substring(equalsIndex + 1, semiIndex).trim(); - } - } -} - -public void generate(JNIClass clazz) { - unusedCount = usedCount = 0; - super.generate(clazz); - JNIField[] fields = clazz.getDeclaredFields(); - generate(fields); - output("used=" + usedCount + " unused=" + unusedCount + " total=" + (unusedCount + usedCount)); -} - -public void generate(JNIField[] fields) { - sort(fields); - for (int i = 0; i < fields.length; i++) { - JNIField field = fields[i]; - if ((field.getModifiers() & Modifier.FINAL) == 0) continue; - generate(field); - } -} - -public void generate(JNIField field) { - String name = field.getName(); - Enumeration keys = files.keys(); - while (keys.hasMoreElements()) { - Object key = keys.nextElement(); - String str = (String)files.get(key); - if (str.indexOf(name) != -1) { - int modifiers = field.getModifiers(); - String modifiersStr = Modifier.toString(modifiers); - output("\t"); - output(modifiersStr); - if (modifiersStr.length() > 0) output(" "); - output(field.getType().getTypeSignature3(false)); - output(" " ); - output(field.getName()); - output(" = "); - output(getFieldValue(field)); - outputln(";"); - usedCount++; - return; - } - } - unusedCount++; - //output("NOT USED=" + field.toString() + " \n"); -} - -public static void main(String[] args) { - if (args.length < 3) { - System.out.println("Usage: java CleanupConstants <OS className> <class source> <src path1> <src path2>"); - return; - } - try { - CleanupConstants gen = new CleanupConstants(); - String clazzName = args[0]; - String classSource = args[1]; - String[] sourcePath = new String[args.length - 2]; - System.arraycopy(args, 2, sourcePath, 0, sourcePath.length); - Class clazz = Class.forName(clazzName); - gen.setSourcePath(sourcePath); - gen.setClassSourcePath(classSource); - gen.generate(new ReflectClass(clazz)); - } catch (Exception e) { - System.out.println("Problem"); - e.printStackTrace(System.out); - } -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/CleanupNatives.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/CleanupNatives.java deleted file mode 100644 index a0c4e9d484..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/CleanupNatives.java +++ /dev/null @@ -1,95 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.util.*; -import java.lang.reflect.*; - -public class CleanupNatives extends CleanupClass { - -public CleanupNatives() { -} - -public void generate(JNIClass clazz) { - unusedCount = usedCount = 0; - super.generate(clazz); - JNIMethod[] methods = clazz.getDeclaredMethods(); - generate(methods); - output("used=" + usedCount + " unused=" + unusedCount + " total=" + (unusedCount + usedCount)); -} - -public void generate(JNIMethod[] methods) { - sort(methods); - for (int i = 0; i < methods.length; i++) { - JNIMethod method = methods[i]; - if ((method.getModifiers() & Modifier.NATIVE) == 0) continue; - generate(method); - } -} - -public void generate(JNIMethod method) { - String name = method.getName(); - Enumeration keys = files.keys(); - while (keys.hasMoreElements()) { - Object key = keys.nextElement(); - String str = (String)files.get(key); - if (str.indexOf(name) != -1) { -// int modifiers = method.getModifiers(); -// Class clazz = method.getDeclaringClass(); -// String modifiersStr = Modifier.toString(modifiers); -// output(modifiersStr); -// if (modifiersStr.length() > 0) output(" "); -// output(getTypeSignature3(method.getReturnType())); -// output(" " ); -// output(method.getName()); -// output("("); -// Class[] paramTypes = method.getParameterTypes(); -// String[] paramNames = getArgNames(method); -// for (int i = 0; i < paramTypes.length; i++) { -// Class paramType = paramTypes[i]; -// if (i != 0) output(", "); -// String sig = getTypeSignature3(paramType); -// if (clazz.getPackage().equals(paramType.getPackage())) sig = getClassName(paramType); -// output(sig); -// output(" "); -// output(paramNames[i]); -// } -// outputln(");"); - usedCount++; - return; - } - } - unusedCount++; - output("NOT USED=" + method.toString() + "\n"); -} - -public static void main(String[] args) { - if (args.length < 2) { - System.out.println("Usage: java CleanupNatives <OS className> <OS class source> <src path0> <src path1>"); - return; - } - try { - CleanupNatives gen = new CleanupNatives(); - String clazzName = args[0]; - String classSource = args[1]; - String[] sourcePath = new String[args.length - 2]; - System.arraycopy(args, 2, sourcePath, 0, sourcePath.length); - Class clazz = Class.forName(clazzName); - gen.setSourcePath(sourcePath); - gen.setClassSourcePath(classSource); - gen.generate(new ReflectClass(clazz)); - } catch (Exception e) { - System.out.println("Problem"); - e.printStackTrace(System.out); - } -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ConstantsGenerator.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ConstantsGenerator.java deleted file mode 100644 index 83bc94bbc6..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ConstantsGenerator.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.lang.reflect.Modifier; - -public class ConstantsGenerator extends JNIGenerator { - -public void generate(JNIClass clazz) { - JNIField[] fields = clazz.getDeclaredFields(); - generate(fields); -} - -public void generate(JNIField[] fields) { - sort(fields); - outputln("int main() {"); - for (int i = 0; i < fields.length; i++) { - JNIField field = fields[i]; - if ((field.getModifiers() & Modifier.FINAL) == 0) continue; - generate(field); - } - outputln("}"); -} - -public void generate(JNIField field) { - JNIType type = field.getType(); - output("\tprintf(\"public static final "); - output(field.getType().getTypeSignature3(false)); - output(" "); - output(field.getName()); - output(" = "); - if (type.isType("java.lang.String") || type.isType("[B")) output("\"%s\""); - else output("0x%x"); - output(";\\n\", "); - output(field.getName()); - outputln(");"); -} - -public static void main(String[] args) { - if (args.length < 1) { - System.out.println("Usage: java ConstantsGenerator <className1> <className2>"); - return; - } - try { - ConstantsGenerator gen = new ConstantsGenerator(); - for (int i = 0; i < args.length; i++) { - String clazzName = args[i]; - Class clazz = Class.forName(clazzName); - gen.generate(new ReflectClass(clazz)); - } - } catch (Exception e) { - System.out.println("Problem"); - e.printStackTrace(System.out); - } -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/EmbedMetaData.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/EmbedMetaData.java deleted file mode 100644 index 9d018cb14d..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/EmbedMetaData.java +++ /dev/null @@ -1,152 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.io.BufferedInputStream; -import java.io.ByteArrayInputStream; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.lang.reflect.Modifier; -import java.util.Collections; -import java.util.Iterator; -import java.util.Set; -import java.util.TreeMap; -import java.util.ArrayList; - -public class EmbedMetaData extends JNIGenerator { - TreeMap inserts; - -public void generate(JNIClass clazz) { - inserts = new TreeMap(); - String data = ((AbstractItem)clazz).flatten(); - if (data != null && data.length() != 0) { - String doc = "/** @jniclass " + data + " */" + delimiter; - inserts.put(new Integer(((ASTClass)clazz).start), doc); - } - JNIField[] fields = clazz.getDeclaredFields(); - generate(fields); - JNIMethod[] methods = clazz.getDeclaredMethods(); - generate(methods); - if (inserts.size() == 0) return; - String sourcePath = ((ASTClass)clazz).sourcePath; - String source = JNIGenerator.loadFile(sourcePath); - Set set = inserts.keySet(); - ArrayList keys = new ArrayList(); - keys.addAll(set); - Collections.reverse(keys); - StringBuffer buffer = new StringBuffer(source); - for (Iterator iterator = keys.iterator(); iterator.hasNext();) { - Integer index = (Integer) iterator.next(); - String doc = (String)inserts.get(index); - buffer.insert(index.intValue(), doc); - } - try { - output(buffer.toString().getBytes(), sourcePath); - } catch (Exception e) { - e.printStackTrace(); - } - inserts = null; -} - -boolean compare(InputStream is1, InputStream is2) throws IOException { - while (true) { - int c1 = is1.read(); - int c2 = is2.read(); - if (c1 != c2) return false; - if (c1 == -1) break; - } - return true; -} - -void output(byte[] bytes, String fileName) throws IOException { - FileInputStream is = null; - try { - is = new FileInputStream(fileName); - if (compare(new ByteArrayInputStream(bytes), new BufferedInputStream(is))) return; - } catch (FileNotFoundException e) { - } finally { - try { - if (is != null) is.close(); - } catch (IOException e) {} - } - FileOutputStream out = new FileOutputStream(fileName); - out.write(bytes); - out.close(); -} - -public void generate(JNIField[] fields) { - for (int i = 0; i < fields.length; i++) { - JNIField field = fields[i]; - int mods = field.getModifiers(); - if ((mods & Modifier.PUBLIC) == 0) continue; - if ((mods & Modifier.FINAL) != 0) continue; - if ((mods & Modifier.STATIC) != 0) continue; - generate(field); - } -} - -public void generate(JNIField field) { - //wrap cast with parentheses - field.setCast(field.getCast()); - String data = ((AbstractItem)field).flatten(); - if (data != null && data.length() != 0) { - String doc = "/** @field " + data + " */" + delimiter + "\t"; - inserts.put(new Integer(((ASTField)field).start), doc); - } -} - -public void generate(JNIMethod[] methods) { - for (int i = 0; i < methods.length; i++) { - JNIMethod method = methods[i]; - if ((method.getModifiers() & Modifier.NATIVE) == 0) continue; - generate(method); - } -} - -public void generate(JNIMethod method) { - ArrayList tags = new ArrayList(); - String data = ((AbstractItem)method).flatten(); - if (data != null && data.length() != 0) { - tags.add("@method " + data); - } - JNIParameter[] params = method.getParameters(); - for (int i = 0; i < params.length; i++) { - ASTParameter param = (ASTParameter)params[i]; - //wrap cast with parentheses - param.setCast(param.getCast()); - data = ((AbstractItem)param).flatten(); - if (data != null && data.length() != 0) { - tags.add("@param " + param.getName() + " " + data); - } - } - if (tags.size() == 0) return; - if (tags.size() == 1) { - String doc = "/** " + (String)tags.get(0) + " */" + delimiter; - inserts.put(new Integer(((ASTMethod)method).start), doc); - } else { - StringBuffer buffer = new StringBuffer(); - buffer.append("/**"); - buffer.append(delimiter); - for (Iterator iterator = tags.iterator(); iterator.hasNext();) { - String tag = (String) iterator.next(); - buffer.append(" * "); - buffer.append(tag); - buffer.append(delimiter); - } - buffer.append(" */"); - buffer.append(delimiter); - inserts.put(new Integer(((ASTMethod)method).start), buffer.toString()); - } -} -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/Flags.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/Flags.java deleted file mode 100644 index 770f869da0..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/Flags.java +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -public interface Flags { - - public static final String FLAG_NO_GEN = "no_gen"; - public static final String FLAG_NO_IN = "no_in"; - public static final String FLAG_NO_OUT = "no_out"; - public static final String FLAG_NO_WINCE = "no_wince"; - public static final String FLAG_CRITICAL = "critical"; - public static final String FLAG_INIT = "init"; - public static final String FLAG_STRUCT = "struct"; - public static final String FLAG_UNICODE = "unicode"; - public static final String FLAG_SENTINEL = "sentinel"; - public static final String FLAG_CPP = "cpp"; - public static final String FLAG_NEW = "new"; - public static final String FLAG_DELETE ="delete"; - public static final String FLAG_CONST = "const"; - public static final String FLAG_CAST = "cast"; - public static final String FLAG_DYNAMIC = "dynamic"; - public static final String FLAG_JNI = "jni"; - public static final String FLAG_ADDRESS = "address"; - public static final String FLAG_GCNEW = "gcnew"; - public static final String FLAG_GCOBJECT = "gcobject"; - public static final String FLAG_SETTER = "setter"; - public static final String FLAG_GETTER = "getter"; - public static final String FLAG_ADDER = "adder"; -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIClass.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIClass.java deleted file mode 100644 index 70ad183c5c..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIClass.java +++ /dev/null @@ -1,30 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2008 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -public interface JNIClass extends JNIItem { - -public static String[] FLAGS = {FLAG_NO_GEN, FLAG_CPP}; - -public String getName(); - -public String getSimpleName(); - -public JNIClass getSuperclass(); - -public JNIField[] getDeclaredFields(); - -public JNIMethod[] getDeclaredMethods(); - -public String getExclude(); - -public void setExclude(String str); -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIField.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIField.java deleted file mode 100644 index 5e36593c3e..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIField.java +++ /dev/null @@ -1,38 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2008 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -public interface JNIField extends JNIItem { - -public static final String[] FLAGS = {FLAG_NO_GEN, FLAG_NO_WINCE}; - -public String getName(); - -public int getModifiers(); - -public JNIType getType(); - -public JNIType getType64(); - -public JNIClass getDeclaringClass(); - -public String getAccessor(); - -public String getCast(); - -public String getExclude(); - -public void setAccessor(String str); - -public void setCast(String str); - -public void setExclude(String str); -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIGenerator.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIGenerator.java deleted file mode 100644 index 7d7f6fbb2e..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIGenerator.java +++ /dev/null @@ -1,264 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.io.*; -import java.lang.reflect.Modifier; -import java.util.*; - -public abstract class JNIGenerator implements Flags { - - JNIClass mainClass; - JNIClass[] classes; - MetaData metaData; - boolean isCPP; - String delimiter; - PrintStream output; - ProgressMonitor progress; - - static final String JNI64 = "JNI64"; - -public JNIGenerator() { - delimiter = System.getProperty("line.separator"); - output = System.out; - metaData = new MetaData(new Properties()); -} - -String fixDelimiter(String str) { - if (delimiter.equals("\n")) return str; - int index = 0, length = str.length(); - StringBuffer buffer = new StringBuffer(); - while (index != -1) { - int start = index; - index = str.indexOf('\n', start); - if (index == -1) { - buffer.append(str.substring(start, length)); - } else { - buffer.append(str.substring(start, index)); - buffer.append(delimiter); - index++; - } - } - return buffer.toString(); -} - -static String getFunctionName(JNIMethod method) { - return getFunctionName(method, method.getParameterTypes()); -} - -static String getFunctionName(JNIMethod method, JNIType[] paramTypes) { - if ((method.getModifiers() & Modifier.NATIVE) == 0) return method.getName(); - String function = toC(method.getName()); - if (!method.isNativeUnique()) { - StringBuffer buffer = new StringBuffer(); - buffer.append(function); - buffer.append("__"); - for (int i = 0; i < paramTypes.length; i++) { - JNIType paramType = paramTypes[i]; - buffer.append(toC(paramType.getTypeSignature(false))); - } - return buffer.toString(); - } - return function; -} - -static String loadFile (String file) { - try { - FileReader fr = new FileReader(file); - BufferedReader br = new BufferedReader(fr); - StringBuffer str = new StringBuffer(); - char[] buffer = new char[1024]; - int read; - while ((read = br.read(buffer)) != -1) { - str.append(buffer, 0, read); - } - fr.close(); - return str.toString(); - } catch (IOException e) { - throw new RuntimeException("File not found:" + file, e); - } -} - -static void sort(JNIMethod[] methods) { - Arrays.sort(methods, new Comparator() { - public int compare(Object a, Object b) { - JNIMethod mth1 = (JNIMethod)a; - JNIMethod mth2 = (JNIMethod)b; - int result = mth1.getName().compareTo(mth2.getName()); - return result != 0 ? result : getFunctionName(mth1).compareTo(getFunctionName(mth2)); - } - }); -} - -static void sort(JNIField[] fields) { - Arrays.sort(fields, new Comparator() { - public int compare(Object a, Object b) { - return ((JNIField)a).getName().compareTo(((JNIField)b).getName()); - } - }); -} - -static void sort(JNIClass[] classes) { - Arrays.sort(classes, new Comparator() { - public int compare(Object a, Object b) { - return ((JNIClass)a).getName().compareTo(((JNIClass)b).getName()); - } - }); -} - -static String[] split(String str, String separator) { - StringTokenizer tk = new StringTokenizer(str, separator); - ArrayList result = new ArrayList(); - while (tk.hasMoreElements()) { - result.add(tk.nextElement()); - } - return (String[])result.toArray(new String[result.size()]); -} - -static String toC(String str) { - int length = str.length(); - StringBuffer buffer = new StringBuffer(length * 2); - for (int i = 0; i < length; i++) { - char c = str.charAt(i); - switch (c) { - case '_': buffer.append("_1"); break; - case ';': buffer.append("_2"); break; - case '[': buffer.append("_3"); break; - case '.': buffer.append("_"); break; - case '/': buffer.append("_"); break; - default: buffer.append(c); - } - } - return buffer.toString(); -} - -public abstract void generate(JNIClass clazz); - -public void generateCopyright() { -} - -public void generateIncludes() { -} - -public void generate() { - if (classes == null) return; - generateCopyright(); - generateIncludes(); - sort(classes); - for (int i = 0; i < classes.length; i++) { - JNIClass clazz = classes[i]; - if (clazz.getFlag(FLAG_CPP)) { - isCPP = true; - break; - } - } - for (int i = 0; i < classes.length; i++) { - JNIClass clazz = classes[i]; - if (getGenerate(clazz)) generate(clazz); - if (progress != null) progress.step(); - } - output.flush(); -} - -public void generateMetaData(String key) { - MetaData mt = getMetaData(); - String data = mt.getMetaData(key, null); - if (data == null) return; - if (data.length() == 0) return; - outputln(fixDelimiter(data)); -} - -public JNIClass[] getClasses() { - return classes; -} - -public boolean getCPP() { - return isCPP; -} - -public String getDelimiter() { - return delimiter; -} - -public String getExtension() { - return getCPP() ? ".cpp" : ".c"; -} - -public String getFileName() { - return getOutputName() + getSuffix() + getExtension(); -} - -protected boolean getGenerate(JNIItem item) { - return item.getGenerate(); -} - -public PrintStream getOutput() { - return output; -} - -public String getOutputName() { - return getMainClass().getSimpleName().toLowerCase(); -} - -public JNIClass getMainClass() { - return mainClass; -} - -public MetaData getMetaData() { - return metaData; -} - -public ProgressMonitor getProgressMonitor() { - return progress; -} - -public String getSuffix() { - return ""; -} - -public void output(String str) { - output.print(str); -} - -public void outputln() { - output(getDelimiter()); -} - -public void outputln(String str) { - output(str); - output(getDelimiter()); -} - -public void setClasses(JNIClass[] classes) { - this.classes = classes; -} - -public void setDelimiter(String delimiter) { - this.delimiter = delimiter; -} - -public void setMainClass(JNIClass mainClass) { - this.mainClass = mainClass; -} - -public void setMetaData(MetaData data) { - metaData = data; -} - -public void setOutput(PrintStream output) { - this.output = output; -} - -public void setProgressMonitor(ProgressMonitor progress) { - this.progress = progress; -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIGeneratorApp.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIGeneratorApp.java deleted file mode 100644 index b194306a93..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIGeneratorApp.java +++ /dev/null @@ -1,523 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.io.*; -import java.lang.reflect.*; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.zip.*; -import java.util.Arrays; - -import org.eclipse.swt.SWT; - -public class JNIGeneratorApp { - - JNIClass mainClass; - JNIClass[] classes; - ProgressMonitor progress; - String mainClassName, outputDir, classpath; - MetaData metaData; - - static boolean USE_AST = true; - -public JNIGeneratorApp() { -} - -public String getClasspath() { - return classpath; -} - -public JNIClass getMainClass() { - return mainClass; -} - -public String getMainClassName() { - return mainClassName; -} - -public MetaData getMetaData() { - return metaData; -} - -String getMetaDataDir() { - return "./JNI Generation/org/eclipse/swt/tools/internal/"; -} - -public String getOutputDir() { - return outputDir; -} - -public void generateAll() { - String mainClasses = new MetaData(getDefaultMainClass()).getMetaData("swt_main_classes", null); - if (mainClasses != null) { - String[] list = JNIGenerator.split(mainClasses, ","); - for (int i = 0; i < list.length; i += 2) { - String className = list[i].trim(); - if (!USE_AST) { - try { - Class.forName(className, false, getClass().getClassLoader()); - } catch (Throwable e) { - continue; - } - } - System.out.println("Generating \"" + className + "\""); - setMainClassName(className); - generate(); - } - } -} - -void generateSTATS_C(JNIClass[] classes) { - try { - StatsGenerator gen = new StatsGenerator(false); - gen.setMainClass(mainClass); - gen.setClasses(classes); - gen.setMetaData(metaData); - gen.setProgressMonitor(progress); - ByteArrayOutputStream out = new ByteArrayOutputStream(); - gen.setOutput(new PrintStream(out)); - gen.generate(); - if (out.size() > 0) output(out.toByteArray(), outputDir + gen.getFileName()); - } catch (Exception e) { - System.out.println("Problem"); - e.printStackTrace(System.out); - } -} - -void generateSTATS_H(JNIClass[] classes) { - try { - StatsGenerator gen = new StatsGenerator(true); - gen.setMainClass(mainClass); - gen.setClasses(classes); - gen.setMetaData(metaData); - gen.setProgressMonitor(progress); - ByteArrayOutputStream out = new ByteArrayOutputStream(); - gen.setOutput(new PrintStream(out)); - gen.generate(); - if (out.size() > 0) output(out.toByteArray(), outputDir + gen.getFileName()); - } catch (Exception e) { - System.out.println("Problem"); - e.printStackTrace(System.out); - } -} - -void generateSTRUCTS_H(JNIClass[] classes) { - try { - StructsGenerator gen = new StructsGenerator(true); - gen.setMainClass(mainClass); - gen.setClasses(classes); - gen.setMetaData(metaData); - gen.setProgressMonitor(progress); - ByteArrayOutputStream out = new ByteArrayOutputStream(); - gen.setOutput(new PrintStream(out)); - gen.generate(); - if (out.size() > 0) output(out.toByteArray(), outputDir + gen.getFileName()); - } catch (Exception e) { - System.out.println("Problem"); - e.printStackTrace(System.out); - } - -} - -void generateSTRUCTS_C(JNIClass[] classes) { - try { - StructsGenerator gen = new StructsGenerator(false); - gen.setMainClass(mainClass); - gen.setClasses(classes); - gen.setMetaData(metaData); - gen.setProgressMonitor(progress); - ByteArrayOutputStream out = new ByteArrayOutputStream(); - gen.setOutput(new PrintStream(out)); - gen.generate(); - if (out.size() > 0) output(out.toByteArray(), outputDir + gen.getFileName()); - } catch (Exception e) { - System.out.println("Problem"); - e.printStackTrace(System.out); - } - -} - -void generateSWT_C(JNIClass[] classes) { - try { - NativesGenerator gen = new NativesGenerator(); - gen.setMainClass(mainClass); - gen.setClasses(classes); - gen.setMetaData(metaData); - gen.setProgressMonitor(progress); - ByteArrayOutputStream out = new ByteArrayOutputStream(); - gen.setOutput(new PrintStream(out)); - gen.generate(); - if (out.size() > 0) output(out.toByteArray(), outputDir + gen.getFileName()); - } catch (Exception e) { - System.out.println("Problem"); - e.printStackTrace(System.out); - } -} - - -void generateMetaData(JNIClass[] classes) { - try { - MetaDataGenerator gen = new MetaDataGenerator(); - gen.setMainClass(mainClass); - gen.setClasses(classes); - gen.setMetaData(metaData); - gen.setProgressMonitor(progress); - ByteArrayOutputStream out = new ByteArrayOutputStream(); - gen.setOutput(new PrintStream(out)); - if (new File(getMetaDataDir() + gen.getFileName()).exists()) { - gen.generate(); - if (!new File(getMetaDataDir()).exists()) { - System.out.println("Warning: Meta data output dir does not exist"); - return; - } - if (out.size() > 0) output(out.toByteArray(), getMetaDataDir() + gen.getFileName()); - } - } catch (Exception e) { - System.out.println("Problem"); - e.printStackTrace(System.out); - } -} - -void generateEmbededMetaData(JNIClass[] classes) { - try { - EmbedMetaData gen = new EmbedMetaData(); - gen.setMainClass(mainClass); - gen.setClasses(classes); - gen.setMetaData(metaData); - gen.generate(); - } catch (Exception e) { - System.out.println("Problem"); - e.printStackTrace(System.out); - } -} - -public void generate() { - generate(null); -} - -public void generate(ProgressMonitor progress) { - if (mainClass == null) return; - if (progress != null) progress.setMessage("Initializing..."); - JNIClass[] classes = getClasses(); - JNIClass[] natives = getNativesClasses(classes); - JNIClass[] structs = getStructureClasses(classes); - this.progress = progress; - if (progress != null) { - int nativeCount = 0; - for (int i = 0; i < natives.length; i++) { - JNIClass clazz = natives[i]; - JNIMethod[] methods = clazz.getDeclaredMethods(); - for (int j = 0; j < methods.length; j++) { - JNIMethod method = methods[j]; - if ((method.getModifiers() & Modifier.NATIVE) == 0) continue; - nativeCount++; - } - } - int total = nativeCount * 4; - total += classes.length; - total += natives.length * (3); - total += structs.length * 2; - progress.setTotal(total); - progress.setMessage("Generating structs.h ..."); - } - generateSTRUCTS_H(structs); - if (progress != null) progress.setMessage("Generating structs.c ..."); - generateSTRUCTS_C(structs); - if (progress != null) progress.setMessage("Generating natives ..."); - generateSWT_C(natives); - if (progress != null) progress.setMessage("Generating stats.h ..."); - generateSTATS_H(natives); - if (progress != null) progress.setMessage("Generating stats.c ..."); - generateSTATS_C(natives); - if (progress != null) progress.setMessage("Generating meta data ..."); - generateMetaData(classes); -// if (progress != null) progress.setMessage("Generating embeded meta data ..."); -// generateEmbededMetaData(classes); - if (progress != null) progress.setMessage("Done."); - this.progress = null; -} - -boolean compare(InputStream is1, InputStream is2) throws IOException { - while (true) { - int c1 = is1.read(); - int c2 = is2.read(); - if (c1 != c2) return false; - if (c1 == -1) break; - } - return true; -} - -void output(byte[] bytes, String fileName) throws IOException { - FileInputStream is = null; - try { - is = new FileInputStream(fileName); - if (compare(new ByteArrayInputStream(bytes), new BufferedInputStream(is))) return; - } catch (FileNotFoundException e) { - } finally { - try { - if (is != null) is.close(); - } catch (IOException e) {} - } - FileOutputStream out = new FileOutputStream(fileName); - out.write(bytes); - out.close(); -} - -String getPackageName(String className) { - int dot = mainClassName.lastIndexOf('.'); - if (dot == -1) return ""; - return mainClassName.substring(0, dot); -} - -String[] getClassNames(String mainClassName) { - String pkgName = getPackageName(mainClassName); - String classpath = getClasspath(); - if (classpath == null) classpath = System.getProperty("java.class.path"); - String pkgPath = pkgName.replace('.', File.separatorChar); - String pkgZipPath = pkgName.replace('.', '/'); - ArrayList classes = new ArrayList(); - int start = 0; - int index = 0; - while (index < classpath.length()) { - index = classpath.indexOf(File.pathSeparatorChar, start); - if (index == -1) index = classpath.length(); - String path = classpath.substring(start, index); - if (path.toLowerCase().endsWith(".jar")) { - ZipFile zipFile = null; - try { - zipFile = new ZipFile(path); - Enumeration entries = zipFile.entries(); - while (entries.hasMoreElements()) { - ZipEntry entry = (ZipEntry)entries.nextElement(); - String name = entry.getName(); - if (name.startsWith(pkgZipPath) && name.indexOf('/', pkgZipPath.length() + 1) == -1 && name.endsWith(".class")) { - String className = name.substring(pkgZipPath.length() + 1, name.length() - 6); - className.replace('/', '.'); - classes.add(className); - } - } - } catch (IOException e) { - } finally { - try { - if (zipFile != null) zipFile.close(); - } catch (IOException ex) {} - } - } else { - File file = new File(path + File.separator + pkgPath); - if (file.exists()) { - String[] entries = file.list(); - for (int i = 0; i < entries.length; i++) { - String entry = entries[i]; - File f = new File(file, entry); - if (!f.isDirectory()) { - if (f.getAbsolutePath().endsWith(".class")) { - String className = entry.substring(0, entry.length() - 6); - classes.add(className); - } - } - } - } - } - start = index + 1; - } - return (String[])classes.toArray(new String[classes.size()]); -} - -public JNIClass[] getClasses() { - if (classes != null) return classes; - if (mainClassName == null) return new JNIClass[0]; - if (USE_AST) return getASTClasses(); - String[] classNames = getClassNames(mainClassName); - Arrays.sort(classNames); - String packageName = getPackageName(mainClassName); - JNIClass[] classes = new JNIClass[classNames.length]; - for (int i = 0; i < classNames.length; i++) { - String className = classNames[i]; - try { - String qualifiedName = packageName + "." + className; - if (qualifiedName.equals(mainClassName)) { - classes[i] = mainClass; - } else { - String sourcePath = new File(outputDir).getParent() + "/" + qualifiedName.replace('.', '/') + ".java"; - classes[i] = new ReflectClass(Class.forName(qualifiedName, false, getClass().getClassLoader()), metaData, sourcePath); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - return classes; -} - -public JNIClass[] getASTClasses() { - if (classes != null) return classes; - if (mainClassName == null) return new JNIClass[0]; - String root = new File(outputDir).getParent(); - String mainPath = new File(root + "/" + mainClassName.replace('.', '/') + ".java").getAbsolutePath(); - ArrayList classes = new ArrayList(); - String packageName = getPackageName(mainClassName); - File dir = new File(root + "/" + packageName.replace('.', '/')); - File[] files = dir.listFiles(); - for (int i = 0; i < files.length; i++) { - File file = files[i]; - try { - String path = file.getAbsolutePath().replace('\\', '/'); - if (path.endsWith(".java")) { - if (mainPath.equals(path)){ - classes.add(mainClass); - } else { - classes.add(new ASTClass(path, metaData)); - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } - return (JNIClass[])classes.toArray(new JNIClass[classes.size()]); -} - -public JNIClass[] getNativesClasses(JNIClass[] classes) { - if (mainClass == null) return new JNIClass[0]; - ArrayList result = new ArrayList(); - for (int i = 0; i < classes.length; i++) { - JNIClass clazz = classes[i]; - JNIMethod[] methods = clazz.getDeclaredMethods(); - for (int j = 0; j < methods.length; j++) { - JNIMethod method = methods[j]; - int mods = method.getModifiers(); - if ((mods & Modifier.NATIVE) != 0) { - result.add(clazz); - break; - } - } - } - return (JNIClass[])result.toArray(new JNIClass[result.size()]); -} - -public JNIClass[] getStructureClasses(JNIClass[] classes) { - if (mainClass == null) return new JNIClass[0]; - ArrayList result = new ArrayList(); - outer: - for (int i = 0; i < classes.length; i++) { - JNIClass clazz = classes[i]; - JNIMethod[] methods = clazz.getDeclaredMethods(); - for (int j = 0; j < methods.length; j++) { - JNIMethod method = methods[j]; - int mods = method.getModifiers(); - if ((mods & Modifier.NATIVE) != 0) continue outer; - } - JNIField[] fields = clazz.getDeclaredFields(); - boolean hasPublicFields = false; - for (int j = 0; j < fields.length; j++) { - JNIField field = fields[j]; - int mods = field.getModifiers(); - if ((mods & Modifier.PUBLIC) != 0 && (mods & Modifier.STATIC) == 0) { - hasPublicFields = true; - break; - } - } - if (!hasPublicFields) continue; - result.add(clazz); - } - return (JNIClass[])result.toArray(new JNIClass[result.size()]); -} - -public void setClasspath(String classpath) { - this.classpath = classpath; -} - -public void setMainClass(JNIClass mainClass) { - this.mainClass = mainClass; -} - -public void setMetaData(MetaData data) { - this.metaData = data; -} - -public void setClasses(JNIClass[] classes) { - this.classes = classes; -} - -public void setMainClassName(String str) { - mainClassName = str; - metaData = new MetaData(mainClassName); - String mainClasses = getMetaData().getMetaData("swt_main_classes", null); - if (mainClasses != null) { - String[] list = JNIGenerator.split(mainClasses, ","); - for (int i = 0; i < list.length; i += 2) { - if (mainClassName.equals(list[i].trim())) { - setOutputDir(list[i + 1].trim()); - } - } - } - if (mainClassName != null) { - try { - String sourcePath = new File(outputDir).getParent() + "/" + mainClassName.replace('.', '/') + ".java"; - if (USE_AST) { - mainClass = new ASTClass(sourcePath, metaData); - } else { - mainClass = new ReflectClass(Class.forName(mainClassName, false, getClass().getClassLoader()), metaData, sourcePath); - } - } catch (Exception e) { - e.printStackTrace(); - } - } -} -public void setMainClassName(String str, String outputDir) { - mainClassName = str; - setOutputDir(outputDir); - metaData = new MetaData(mainClassName); - try { - String sourcePath = new File(this.outputDir).getParent() + "/" + mainClassName.replace('.', '/') + ".java"; - if (USE_AST) { - mainClass = new ASTClass(sourcePath, metaData); - } else { - mainClass = new ReflectClass(Class.forName(mainClassName, false, getClass().getClassLoader()), metaData, sourcePath); - } - } catch (Exception e) { - e.printStackTrace(); - } -} - -public void setOutputDir(String str) { - if (str != null) { - if (!str.endsWith("\\") && !str.endsWith("/") ) { - str += File.separator; - } - } - outputDir = str.replace('\\', '/'); -} - -public static String getDefaultMainClass() { - return "org.eclipse.swt.internal." + getDefaultPlatform() + ".OS"; -} - -public static String getDefaultPlatform() { - return SWT.getPlatform(); -} - -public static void main(String[] args) { - JNIGeneratorApp gen = new JNIGeneratorApp (); - if (args.length == 1 && (args[0].equals("*") || args[0].equals("all"))) { - gen.generateAll(); - return; - } - if (args.length > 0) { - gen.setMainClassName(args[0]); - if (args.length > 1) gen.setOutputDir(args[1]); - if (args.length > 2) gen.setClasspath(args[2]); - } else { - gen.setMainClassName(getDefaultMainClass()); - } - gen.generate(); -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIGeneratorAppUI.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIGeneratorAppUI.java deleted file mode 100644 index ff548e5c0f..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIGeneratorAppUI.java +++ /dev/null @@ -1,1241 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.io.*; -import java.lang.reflect.*; - -import org.eclipse.swt.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.custom.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.layout.*; - -public class JNIGeneratorAppUI { - - Display display; - Shell shell; - - Composite actionsPanel; - Combo mainClassCb, outputDirCb; - Table classesLt, membersLt, paramsLt; - ProgressBar progressBar; - Label progressLabel; - FileDialog fileDialog; - - TableEditor paramTextEditor, memberTextEditor, classTextEditor; - FlagsEditor paramListEditor, memberListEditor, classListEditor; - Text paramEditorTx, memberEditorTx, classEditorTx; - List paramEditorLt, memberEditorLt, classEditorLt; - - static class FlagsEditor { - Table parent; - int column = -1; - TableItem item; - - public FlagsEditor(Table parent) { - this.parent = parent; - } - - public int getColumn() { - return column; - } - - public TableItem getItem() { - return item; - } - - public void setColumn(int column) { - this.column = column; - } - - public void setItem(TableItem item) { - this.item = item; - } - } - - JNIGeneratorApp app; - - static final int CLASS_NAME_COLUMN = 0; - static final int CLASS_FLAGS_COLUMN = 1; - static final int CLASS_EXCLUDE_COLUMN = 2; - - static final int FIELD_NAME_COLUMN = 0; - static final int FIELD_FLAGS_COLUMN = 1; - static final int FIELD_CAST_COLUMN = 2; - static final int FIELD_ACCESSOR_COLUMN = 3; - static final int FIELD_EXCLUDE_COLUMN = 4; - - static final int METHOD_NAME_COLUMN = 0; - static final int METHOD_FLAGS_COLUMN = 1; - static final int METHOD_ACCESSOR_COLUMN = 2; - static final int METHOD_EXCLUDE_COLUMN = 3; - - static final int PARAM_INDEX_COLUMN = 0; - static final int PARAM_TYPE_COLUMN = 1; - static final int PARAM_FLAGS_COLUMN = 2; - static final int PARAM_CAST_COLUMN = 3; - -public JNIGeneratorAppUI() { - this (new JNIGeneratorApp()); -} - -public JNIGeneratorAppUI(JNIGeneratorApp app) { - this.app = app; -} - -void cleanup() { - display.dispose(); -} - -void generateStructsHeader () { - StructsGenerator gen = new StructsGenerator(true); - gen.setMainClass(app.getMainClass()); - gen.setMetaData(app.getMetaData()); - gen.setClasses(getSelectedClasses()); - gen.generate(); -} - -void generateStructs () { - StructsGenerator gen = new StructsGenerator(false); - gen.setMainClass(app.getMainClass()); - gen.setMetaData(app.getMetaData()); - gen.setClasses(getSelectedClasses()); - gen.generate(); -} - -void generateSizeof () { - SizeofGenerator gen = new SizeofGenerator(); - gen.setMainClass(app.getMainClass()); - gen.setMetaData(app.getMetaData()); - gen.setClasses(getSelectedClasses()); - gen.generate(); -} - -void generateMetaData () { - MetaDataGenerator gen = new MetaDataGenerator(); - gen.setMainClass(app.getMainClass()); - gen.setMetaData(app.getMetaData()); - JNIMethod[] methods = getSelectedMethods(); - if (methods.length != 0) { - gen.generate(methods); - } else { - gen.setClasses(getSelectedClasses()); - gen.generate(); - } -} - -void generateNatives () { - NativesGenerator gen = new NativesGenerator(); - gen.setMainClass(app.getMainClass()); - gen.setMetaData(app.getMetaData()); - JNIMethod[] methods = getSelectedMethods(); - if (methods.length != 0) { - gen.generate(methods); - } else { - gen.setClasses(getSelectedClasses()); - gen.generate(); - } -} - -void generateAll() { - if (!updateOutputDir()) return; - Cursor cursor = display.getSystemCursor(SWT.CURSOR_WAIT); - shell.setCursor(cursor); - shell.setEnabled(false); - Control[] children = actionsPanel.getChildren(); - for (int i = 0; i < children.length; i++) { - Control child = children[i]; - if (child instanceof Button) child.setEnabled(false); - } - boolean showProgress = true; - final boolean finalShowProgress = showProgress; /* avoid dead code warning below */ - if (showProgress) { - progressLabel.setText(""); - progressBar.setSelection(0); - progressLabel.setVisible(true); - progressBar.setVisible(true); - } - final boolean[] done = new boolean[1]; - new Thread() { - public void run() { - try { - app.generate(!finalShowProgress ? null : new ProgressMonitor() { - int total, step, maximum = 100; - public void setTotal(final int total) { - this.total = total; - display.syncExec(new Runnable() { - public void run() { - progressBar.setMaximum(maximum); - } - }); - } - public void step() { - int oldValue = step * maximum / total; - step++; - final int newValue = step * maximum / total; - if (oldValue == newValue) return; - display.syncExec(new Runnable() { - public void run() { - progressBar.setSelection(newValue); - } - }); - } - public void setMessage(final String message) { - display.syncExec(new Runnable() { - public void run() { - progressLabel.setText(message); - progressLabel.update(); - } - }); - } - }); - } finally { - done[0] = true; - display.wake(); - } - } - }.start(); - while (!done[0]) { - if (!display.readAndDispatch()) display.sleep(); - } - for (int i = 0; i < children.length; i++) { - Control child = children[i]; - if (child instanceof Button) child.setEnabled(true); - } - if (showProgress) { - progressBar.setVisible(false); - progressLabel.setVisible(false); - } - shell.setEnabled(true); - shell.setCursor(null); -} - -void generateConstants () { - ConstantsGenerator gen = new ConstantsGenerator(); - gen.setMainClass(app.getMainClass()); - gen.setMetaData(app.getMetaData()); - JNIField[] fields = getSelectedFields(); - if (fields.length != 0) { - gen.generate(fields); - } else { - gen.setClasses(getSelectedClasses()); - gen.generate(); - } -} - -JNIClass[] getSelectedClasses() { - TableItem[] items = classesLt.getSelection(); - JNIClass[] classes = new JNIClass[items.length]; - for (int i = 0; i < items.length; i++) { - TableItem item = items[i]; - classes[i] = (JNIClass)item.getData(); - } - return classes; -} - -JNIMethod[] getSelectedMethods() { - TableItem[] selection = membersLt.getSelection(); - JNIMethod[] methods = new JNIMethod[selection.length]; - int count = 0; - for (int i = 0; i < selection.length; i++) { - TableItem item = selection [i]; - Object data = item.getData(); - if (data instanceof JNIMethod) { - methods[count++] = (JNIMethod)data; - } - } - if (count != methods.length) { - JNIMethod[] result = new JNIMethod[count]; - System.arraycopy(methods, 0, result, 0, count); - methods = result; - } - return methods; -} - -JNIField[] getSelectedFields() { - TableItem[] selection = membersLt.getSelection(); - JNIField[] fields = new JNIField[selection.length]; - int count = 0; - for (int i = 0; i < selection.length; i++) { - TableItem item = selection [i]; - Object data = item.getData(); - if (data instanceof JNIField) { - fields[count++] = (JNIField)data; - } - } - if (count != fields.length) { - JNIField[] result = new JNIField[count]; - System.arraycopy(fields, 0, result, 0, count); - fields = result; - } - return fields; -} - -public void open () { - display = new Display(); - shell = new Shell(display); - shell.setText("JNI Generator"); - - GridData data; - GridLayout shellLayout = new GridLayout(); - shellLayout.numColumns = 2; - shell.setLayout(shellLayout); - - Composite panel = new Composite(shell, SWT.NONE); - data = new GridData(GridData.FILL_BOTH); - panel.setLayoutData(data); - - GridLayout panelLayout = new GridLayout(); - panelLayout.numColumns = 1; - panel.setLayout(panelLayout); - - Listener updateMainClassListener = new Listener() { - public void handleEvent(Event e) { - updateMainClass(); - if (!updateOutputDir()) return; - updateClasses(); - updateMembers(); - updateParameters(); - } - }; - createMainClassPanel(panel, updateMainClassListener); - createClassesPanel(panel); - createMembersPanel(panel); - createParametersPanel(panel); - createActionButtons(shell); - - Point preferredSize = shell.computeSize(SWT.DEFAULT, SWT.DEFAULT); - shell.setSize(shell.getSize().x, preferredSize.y); - - updateMainClass(); - updateClasses(); - updateMembers(); - updateParameters(); -} - -void createMainClassPanel(Composite panel, Listener updateListener) { - Label mainClassLb = new Label(panel, SWT.NONE); - mainClassLb.setText("&Main Class:"); - - GridData data; - mainClassCb = new Combo(panel, SWT.DROP_DOWN); - String mainClass = app.getMainClassName(); - mainClassCb.setText(mainClass == null ? "" : mainClass); - data = new GridData(GridData.FILL_HORIZONTAL); - mainClassCb.setLayoutData(data); - mainClassCb.addListener(SWT.Selection, updateListener); - mainClassCb.addListener(SWT.DefaultSelection, updateListener); - - Label outputDirLb = new Label(panel, SWT.NONE); - outputDirLb.setText("&Output Dir:"); - - outputDirCb = new Combo(panel, SWT.DROP_DOWN); - String outputDir = app.getOutputDir(); - outputDirCb.setText(outputDir == null ? "" : outputDir); - data = new GridData(GridData.FILL_HORIZONTAL); - outputDirCb.setLayoutData(data); - outputDirCb.addListener(SWT.Selection, updateListener); - outputDirCb.addListener(SWT.DefaultSelection, updateListener); - - String mainClasses = app.getMetaData().getMetaData("swt_main_classes", null); - if (mainClasses != null) { - String[] list = JNIGenerator.split(mainClasses, ","); - for (int i = 0; i < list.length; i += 2) { - String className = list[i].trim(); - try { - Class.forName(className, false, getClass().getClassLoader()); - mainClassCb.add(className); - outputDirCb.add(list[i + 1].trim()); - } catch (Exception e) {} - } - } -} - -void createClassesPanel(Composite panel) { - Label classesLb = new Label(panel, SWT.NONE); - classesLb.setText("&Classes:"); - - GridData data; - classesLt = new Table(panel, SWT.CHECK | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION); - data = new GridData(GridData.FILL_BOTH); - data.heightHint = classesLt.getItemHeight() * 6; - classesLt.setLayoutData(data); - classesLt.setHeaderVisible(true); - classesLt.addListener(SWT.Selection, new Listener() { - public void handleEvent(Event e) { - if (e.detail == SWT.CHECK) { - updateGenerate((TableItem)e.item); - } else { - updateMembers(); - updateParameters(); - } - } - }); - TableColumn column; - column = new TableColumn(classesLt, SWT.NONE, CLASS_NAME_COLUMN); - column.setText("Class"); - column = new TableColumn(classesLt, SWT.NONE, CLASS_FLAGS_COLUMN); - column.setText("Flags"); - /* - column = new TableColumn(classesLt, SWT.NONE, CLASS_EXCLUDE_COLUMN); - column.setText("Exclude"); - */ - - classTextEditor = new TableEditor(classesLt); - classTextEditor.grabHorizontal = true; - classEditorTx = new Text(classesLt, SWT.SINGLE); - classTextEditor.setEditor(classEditorTx); - Listener classTextListener = new Listener() { - public void handleEvent(Event e) { - if (e.type == SWT.Traverse) { - switch (e.detail) { - case SWT.TRAVERSE_ESCAPE: - classTextEditor.setItem(null); - break; - default: - return; - } - } - classEditorTx.setVisible(false); - TableItem item = classTextEditor.getItem(); - if (item == null) return; - int column = classTextEditor.getColumn(); - JNIClass clazz = (JNIClass)item.getData(); - if (column == CLASS_EXCLUDE_COLUMN) { - String text = classEditorTx.getText(); - clazz.setExclude(text); - item.setText(column, clazz.getExclude()); - classesLt.getColumn(column).pack(); - } - } - }; - classEditorTx.addListener(SWT.DefaultSelection, classTextListener); - classEditorTx.addListener(SWT.FocusOut, classTextListener); - classEditorTx.addListener(SWT.Traverse, classTextListener); - - final Shell floater = new Shell(shell, SWT.NO_TRIM); - floater.setLayout(new FillLayout()); - classListEditor = new FlagsEditor(classesLt); - classEditorLt = new List(floater, SWT.MULTI | SWT.BORDER); - classEditorLt.setItems(JNIClass.FLAGS); - floater.pack(); - floater.addListener(SWT.Close, new Listener() { - public void handleEvent(Event e) { - classListEditor.setItem(null); - e.doit = false; - floater.setVisible(false); - } - }); - Listener classesListListener = new Listener() { - public void handleEvent(Event e) { - if (e.type == SWT.Traverse) { - switch (e.detail) { - case SWT.TRAVERSE_RETURN: - break; - default: - return; - } - } - floater.setVisible(false); - TableItem item = classListEditor.getItem(); - if (item == null) return; - int column = classListEditor.getColumn(); - JNIClass clazz = (JNIClass)item.getData(); - if (column == CLASS_FLAGS_COLUMN) { - String[] flags = classEditorLt.getSelection(); - clazz.setFlags(flags); - item.setText(column, getFlagsString(clazz.getFlags())); - item.setChecked(clazz.getGenerate()); - classesLt.getColumn(column).pack(); - } - } - }; - classEditorLt.addListener(SWT.DefaultSelection, classesListListener); - classEditorLt.addListener(SWT.FocusOut, classesListListener); - classEditorLt.addListener(SWT.Traverse, classesListListener); - - classesLt.addListener(SWT.MouseDown, new Listener() { - public void handleEvent(final Event e) { - e.display.asyncExec (new Runnable () { - public void run () { - if (classesLt.isDisposed ()) return; - if (e.button != 1) return; - Point pt = new Point(e.x, e.y); - TableItem item = classesLt.getItem(pt); - if (item == null) return; - int column = -1; - for (int i = 0; i < classesLt.getColumnCount(); i++) { - if (item.getBounds(i).contains(pt)) { - column = i; - break; - } - } - if (column == -1) return; - JNIClass data = (JNIClass)item.getData(); - if (column == CLASS_EXCLUDE_COLUMN) { - classTextEditor.setColumn(column); - classTextEditor.setItem(item); - classEditorTx.setText(data.getExclude()); - classEditorTx.selectAll(); - classEditorTx.setVisible(true); - classEditorTx.setFocus(); - } else if (column == CLASS_FLAGS_COLUMN) { - classListEditor.setColumn(column); - classListEditor.setItem(item); - classEditorLt.setSelection(data.getFlags()); - floater.setLocation(classesLt.toDisplay(e.x, e.y)); - floater.setVisible(true); - classEditorLt.setFocus(); - } - } - }); - } - }); -} - -void createMembersPanel(Composite panel) { - GridData data; - Composite comp = new Composite(panel, SWT.NONE); - data = new GridData(GridData.FILL_HORIZONTAL); - comp.setLayoutData(data); - GridLayout layout = new GridLayout(2, false); - layout.marginWidth = layout.marginHeight = 0; - comp.setLayout(layout); - Label membersLb = new Label(comp, SWT.NONE); - membersLb.setText("Mem&bers [regex]:"); - final Text searchText = new Text(comp, SWT.SINGLE | SWT.SEARCH); - searchText.setText(".*"); - data = new GridData(GridData.FILL_HORIZONTAL); - searchText.setLayoutData(data); - searchText.addListener(SWT.DefaultSelection, new Listener() { - boolean match (int index, String pattern) { - TableItem item = membersLt.getItem(index); - String text = item.getText(); - try { - if (text.matches(pattern)) { - membersLt.setSelection(index); - return true; - } - } catch (Exception ex) {} - return false; - } - public void handleEvent(Event e) { - String pattern = searchText.getText(); - int selection = membersLt.getSelectionIndex(); - int count = membersLt.getItemCount(); - selection++; - for (int i = selection; i < count; i++) { - if (match (i, pattern)) return; - } - for (int i = 0; i < selection; i++) { - if (match (i, pattern)) return; - } - } - }); - - membersLt = new Table(panel, SWT.CHECK | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION); - data = new GridData(GridData.FILL_BOTH); - data.heightHint = membersLt.getItemHeight() * 6; - membersLt.setLayoutData(data); - membersLt.addListener(SWT.Selection, new Listener() { - public void handleEvent(Event e) { - if (e.detail == SWT.CHECK) { - updateGenerate((TableItem)e.item); - } else { - updateParameters(); - } - } - }); - - memberTextEditor = new TableEditor(membersLt); - memberTextEditor.grabHorizontal = true; - memberEditorTx = new Text(membersLt, SWT.SINGLE); - memberTextEditor.setEditor(memberEditorTx); - Listener memberTextListener = new Listener() { - public void handleEvent(Event e) { - if (e.type == SWT.Traverse) { - switch (e.detail) { - case SWT.TRAVERSE_ESCAPE: - memberTextEditor.setItem(null); - break; - default: - return; - } - } - memberEditorTx.setVisible(false); - TableItem item = memberTextEditor.getItem(); - if (item == null) return; - int column = memberTextEditor.getColumn(); - JNIItem memberData = (JNIItem)item.getData(); - String text = memberEditorTx.getText(); - if (memberData instanceof JNIField) { - JNIField field = (JNIField)memberData; - switch (column) { - case FIELD_CAST_COLUMN: { - field.setCast(text); - item.setText(column, field.getCast()); - break; - } - case FIELD_ACCESSOR_COLUMN: { - field.setAccessor(text.equals(field.getName()) ? "" : text); - item.setText(column, field.getAccessor()); - break; - } - case FIELD_EXCLUDE_COLUMN: { - field.setExclude(text); - item.setText(column, field.getExclude()); - break; - } - } - membersLt.getColumn(column).pack(); - } else if (memberData instanceof JNIMethod) { - JNIMethod method = (JNIMethod)memberData; - switch (column) { - case METHOD_ACCESSOR_COLUMN: { - method.setAccessor(text.equals(method.getName()) ? "" : text); - item.setText(column, method.getAccessor()); - break; - } - case METHOD_EXCLUDE_COLUMN: { - method.setExclude(text); - item.setText(column, method.getExclude()); - break; - } - } - membersLt.getColumn(column).pack(); - } - } - }; - memberEditorTx.addListener(SWT.DefaultSelection, memberTextListener); - memberEditorTx.addListener(SWT.FocusOut, memberTextListener); - memberEditorTx.addListener(SWT.Traverse, memberTextListener); - - final Shell floater = new Shell(shell, SWT.NO_TRIM); - floater.setLayout(new FillLayout()); - memberListEditor = new FlagsEditor(membersLt); - memberEditorLt = new List(floater, SWT.MULTI | SWT.BORDER); - floater.addListener(SWT.Close, new Listener() { - public void handleEvent(Event e) { - memberListEditor.setItem(null); - e.doit = false; - floater.setVisible(false); - } - }); - Listener memberListListener = new Listener() { - public void handleEvent(Event e) { - if (e.type == SWT.Traverse) { - switch (e.detail) { - case SWT.TRAVERSE_RETURN: - break; - default: - return; - } - } - floater.setVisible(false); - TableItem item = memberListEditor.getItem(); - if (item == null) return; - int column = memberListEditor.getColumn(); - JNIItem data = (JNIItem)item.getData(); - String[] flags = memberEditorLt.getSelection(); - data.setFlags(flags); - item.setText(column, getFlagsString(data.getFlags())); - item.setChecked(data.getGenerate()); - membersLt.getColumn(column).pack(); - } - }; - memberEditorLt.addListener(SWT.DefaultSelection, memberListListener); - memberEditorLt.addListener(SWT.FocusOut, memberListListener); - memberEditorLt.addListener(SWT.Traverse, memberListListener); - - membersLt.addListener(SWT.MouseDown, new Listener() { - public void handleEvent(final Event e) { - e.display.asyncExec (new Runnable () { - public void run () { - if (membersLt.isDisposed ()) return; - if (e.button != 1) return; - Point pt = new Point(e.x, e.y); - TableItem item = membersLt.getItem(pt); - if (item == null) return; - int column = -1; - for (int i = 0; i < membersLt.getColumnCount(); i++) { - if (item.getBounds(i).contains(pt)) { - column = i; - break; - } - } - if (column == -1) return; - Object itemData = item.getData(); - if (itemData instanceof JNIField) { - JNIField field = (JNIField)itemData; - if (column == FIELD_CAST_COLUMN || column == FIELD_ACCESSOR_COLUMN || column == FIELD_EXCLUDE_COLUMN) { - memberTextEditor.setColumn(column); - memberTextEditor.setItem(item); - String text = ""; - switch (column) { - case FIELD_CAST_COLUMN: text = field.getCast(); break; - case FIELD_ACCESSOR_COLUMN: { - text = field.getAccessor(); - if (text.length() == 0) { - text = field.getName(); - int index = text.lastIndexOf('_'); - if (index != -1) { - char[] chars = text.toCharArray(); - chars[index] = '.'; - text = new String(chars); - } - } - break; - } - case FIELD_EXCLUDE_COLUMN: text = field.getExclude(); break; - } - memberEditorTx.setText(text); - memberEditorTx.selectAll(); - memberEditorTx.setVisible(true); - memberEditorTx.setFocus(); - } else if (column == FIELD_FLAGS_COLUMN) { - memberListEditor.setColumn(column); - memberListEditor.setItem(item); - memberEditorLt.setItems(JNIField.FLAGS); - memberEditorLt.setSelection(field.getFlags()); - floater.setLocation(membersLt.toDisplay(e.x, e.y)); - floater.pack(); - floater.setVisible(true); - memberEditorLt.setFocus(); - } - } else if (itemData instanceof JNIMethod) { - JNIMethod method = (JNIMethod)itemData; - if (column == METHOD_EXCLUDE_COLUMN || column == METHOD_ACCESSOR_COLUMN) { - memberTextEditor.setColumn(column); - memberTextEditor.setItem(item); - String text = ""; - switch (column) { - case METHOD_ACCESSOR_COLUMN: { - text = method.getAccessor(); - if (text.length() == 0) text = method.getName(); - break; - } - case METHOD_EXCLUDE_COLUMN: text = method.getExclude(); break; - } - memberEditorTx.setText(text); - memberEditorTx.selectAll(); - memberEditorTx.setVisible(true); - memberEditorTx.setFocus(); - } else if (column == METHOD_FLAGS_COLUMN) { - memberListEditor.setColumn(column); - memberListEditor.setItem(item); - memberEditorLt.setItems(JNIMethod.FLAGS); - memberEditorLt.setSelection(method.getFlags()); - floater.setLocation(membersLt.toDisplay(e.x, e.y)); - floater.pack(); - floater.setVisible(true); - memberEditorLt.setFocus(); - } - } - } - }); - } - }); -} - -void createParametersPanel(Composite panel) { - Label paramsLb = new Label(panel, SWT.NONE); - paramsLb.setText("&Parameters:"); - - GridData data; - paramsLt = new Table(panel, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION); - data = new GridData(GridData.FILL_BOTH); - int itemHeight = paramsLt.getItemHeight(); - data.heightHint = itemHeight * 6; - paramsLt.setLayoutData(data); - paramsLt.addListener(SWT.Selection, new Listener() { - public void handleEvent(Event e) { - if (e.detail == SWT.CHECK) { - updateGenerate((TableItem)e.item); - } - } - }); - - TableColumn column; - column = new TableColumn(paramsLt, SWT.NONE, PARAM_INDEX_COLUMN); - column = new TableColumn(paramsLt, SWT.NONE, PARAM_TYPE_COLUMN); - column.setText("Type"); - column = new TableColumn(paramsLt, SWT.NONE, PARAM_FLAGS_COLUMN); - column.setText("Flags"); - column = new TableColumn(paramsLt, SWT.NONE, PARAM_CAST_COLUMN); - column.setText("Cast"); - - paramTextEditor = new TableEditor(paramsLt); - paramTextEditor.grabHorizontal = true; - paramEditorTx = new Text(paramsLt, SWT.SINGLE); - paramTextEditor.setEditor(paramEditorTx); - Listener paramTextListener = new Listener() { - public void handleEvent(Event e) { - if (e.type == SWT.Traverse) { - switch (e.detail) { - case SWT.TRAVERSE_ESCAPE: - paramTextEditor.setItem(null); - break; - default: - return; - } - } - paramEditorTx.setVisible(false); - TableItem item = paramTextEditor.getItem(); - if (item == null) return; - int column = paramTextEditor.getColumn(); - JNIParameter param = (JNIParameter)item.getData(); - if (column == PARAM_CAST_COLUMN) { - String text = paramEditorTx.getText(); - param.setCast(text); - item.setText(column, param.getCast()); - paramsLt.getColumn(column).pack(); - } - } - }; - paramEditorTx.addListener(SWT.DefaultSelection, paramTextListener); - paramEditorTx.addListener(SWT.FocusOut, paramTextListener); - paramEditorTx.addListener(SWT.Traverse, paramTextListener); - - final Shell floater = new Shell(shell, SWT.NO_TRIM); - floater.setLayout(new FillLayout()); - paramListEditor = new FlagsEditor(paramsLt); - paramEditorLt = new List(floater, SWT.MULTI | SWT.BORDER); - paramEditorLt.setItems(JNIParameter.FLAGS); - floater.pack(); - floater.addListener(SWT.Close, new Listener() { - public void handleEvent(Event e) { - paramListEditor.setItem(null); - e.doit = false; - floater.setVisible(false); - } - }); - Listener paramListListener = new Listener() { - public void handleEvent(Event e) { - if (e.type == SWT.Traverse) { - switch (e.detail) { - case SWT.TRAVERSE_RETURN: - break; - default: - return; - } - } - floater.setVisible(false); - TableItem item = paramListEditor.getItem(); - if (item == null) return; - int column = paramListEditor.getColumn(); - JNIParameter param = (JNIParameter)item.getData(); - if (column == PARAM_FLAGS_COLUMN) { - String[] flags = paramEditorLt.getSelection(); - param.setFlags(flags); - item.setText(column, getFlagsString(param.getFlags())); - paramsLt.getColumn(column).pack(); - } - } - }; - paramEditorLt.addListener(SWT.DefaultSelection, paramListListener); - paramEditorLt.addListener(SWT.FocusOut, paramListListener); - paramEditorLt.addListener(SWT.Traverse, paramListListener); - - paramsLt.addListener(SWT.MouseDown, new Listener() { - public void handleEvent(final Event e) { - e.display.asyncExec (new Runnable () { - public void run () { - if (paramsLt.isDisposed ()) return; - if (e.button != 1) return; - Point pt = new Point(e.x, e.y); - TableItem item = paramsLt.getItem(pt); - if (item == null) return; - int column = -1; - for (int i = 0; i < paramsLt.getColumnCount(); i++) { - if (item.getBounds(i).contains(pt)) { - column = i; - break; - } - } - if (column == -1) return; - JNIParameter param = (JNIParameter)item.getData(); - if (column == PARAM_CAST_COLUMN) { - paramTextEditor.setColumn(column); - paramTextEditor.setItem(item); - paramEditorTx.setText(param.getCast()); - paramEditorTx.selectAll(); - paramEditorTx.setVisible(true); - paramEditorTx.setFocus(); - } else if (column == PARAM_FLAGS_COLUMN) { - paramListEditor.setColumn(column); - paramListEditor.setItem(item); - paramEditorLt.setSelection(param.getFlags()); - floater.setLocation(paramsLt.toDisplay(e.x, e.y)); - floater.setVisible(true); - paramEditorLt.setFocus(); - } - } - }); - } - }); -} - -Button createActionButton(Composite parent, String text, Listener listener) { - Button action = new Button(parent, SWT.PUSH); - action.setText(text); - GridData data = new GridData(GridData.FILL_HORIZONTAL); - action.setLayoutData(data); - action.addListener(SWT.Selection, listener); - return action; -} - -void createActionButtons(Composite parent) { - actionsPanel = new Composite(parent, SWT.NONE); - - GridData data = new GridData(GridData.FILL_VERTICAL); - actionsPanel.setLayoutData(data); - - GridLayout actionsLayout = new GridLayout(); - actionsLayout.numColumns = 1; - actionsPanel.setLayout(actionsLayout); - - createActionButton(actionsPanel, "Generate &All", new Listener() { - public void handleEvent(Event e) { - generateAll(); - } - }); - - Label separator = new Label(actionsPanel, SWT.SEPARATOR | SWT.HORIZONTAL); - data = new GridData(GridData.FILL_HORIZONTAL); - separator.setLayoutData(data); - separator = new Label(actionsPanel, SWT.SEPARATOR | SWT.HORIZONTAL); - data = new GridData(GridData.FILL_HORIZONTAL); - separator.setLayoutData(data); - - createActionButton(actionsPanel, "Generate Structs &Header", new Listener() { - public void handleEvent(Event e) { - generateStructsHeader(); - } - }); - createActionButton(actionsPanel, "Generate &Structs", new Listener() { - public void handleEvent(Event e) { - generateStructs(); - } - }); - createActionButton(actionsPanel, "Generate &Natives", new Listener() { - public void handleEvent(Event e) { - generateNatives(); - } - }); - createActionButton(actionsPanel, "Generate Meta &Data", new Listener() { - public void handleEvent(Event e) { - generateMetaData(); - } - }); - createActionButton(actionsPanel, "Generate Cons&tants", new Listener() { - public void handleEvent(Event e) { - generateConstants(); - } - }); - createActionButton(actionsPanel, "Generate Si&zeof", new Listener() { - public void handleEvent(Event e) { - generateSizeof(); - } - }); - - Composite filler = new Composite(actionsPanel, SWT.NONE); - filler.setLayoutData(new GridData(GridData.FILL_BOTH)); - - progressLabel = new Label(actionsPanel, SWT.NONE); - data = new GridData(GridData.FILL_HORIZONTAL); - progressLabel.setLayoutData(data); - progressLabel.setVisible(false); - - progressBar = new ProgressBar(actionsPanel, SWT.NONE); - data = new GridData(GridData.FILL_HORIZONTAL); - progressBar.setLayoutData(data); - progressBar.setVisible(false); -} - -public void run() { - shell.open(); - MessageBox box = new MessageBox(shell, SWT.YES | SWT.NO); - box.setText("Warning"); - box.setMessage("This tool is obsolete as of Eclipse 3.5 M2.\nThe meta data has been embedded in java source files.\nThere is a new plugin tool that replaces this tool.\nSee http://www.eclipse.org/swt/jnigen.php.\n\n Continue?"); - int result = box.open(); - if (result == SWT.NO) { - shell.dispose(); - } - while (!shell.isDisposed()) { - if (!display.readAndDispatch()) display.sleep (); - } - cleanup(); -} - -String getPackageString(String className) { - int dot = app.getMainClassName().lastIndexOf('.'); - if (dot == -1) return ""; - return app.getMainClassName().substring(0, dot); -} - -String getClassString(JNIType type) { - String name = type.getTypeSignature3(false); - int index = name.lastIndexOf('.'); - if (index == -1) return name; - return name.substring(index + 1, name.length()); -} - -String getFlagsString(String[] flags) { - if (flags.length == 0) return ""; - StringBuffer buffer = new StringBuffer(); - for (int j = 0; j < flags.length; j++) { - String flag = flags[j]; - if (buffer.length() != 0) buffer.append(", "); - buffer.append(flag); - } - return buffer.toString(); -} - -String getMethodString(JNIMethod method) { - String pkgName = getPackageString(method.getDeclaringClass().getName()); - StringBuffer buffer = new StringBuffer(); - buffer.append(method.getName()); - buffer.append("("); - JNIParameter[] params = method.getParameters(); - for (int i = 0; i < params.length; i++) { - JNIParameter param = params[i]; - if (i != 0) buffer.append(","); - String string = param.getType().getTypeSignature3(false); - if (string.startsWith(pkgName)) string = string.substring(pkgName.length() + 1); - buffer.append(string); - } - buffer.append(")"); - return buffer.toString(); -} - -String getFieldString(JNIField field) { - return field.getName(); -} - -void updateClasses() { - classesLt.removeAll(); - JNIClass[] classes = app.getClasses(); - int mainIndex = 0; - for (int i = 0; i < classes.length; i++) { - JNIClass clazz = classes[i]; - if (clazz.equals(app.getMainClass())) mainIndex = i; - TableItem item = new TableItem(classesLt, SWT.NONE); - item.setData(clazz); - item.setText(CLASS_NAME_COLUMN, clazz.getSimpleName()); - item.setText(CLASS_FLAGS_COLUMN, getFlagsString(clazz.getFlags())); - item.setChecked(clazz.getGenerate()); - } - TableColumn[] columns = classesLt.getColumns(); - for (int i = 0; i < columns.length; i++) { - TableColumn column = columns[i]; - column.pack(); - } - classesLt.setSelection(mainIndex); -} - -void updateMembers() { - membersLt.removeAll(); - membersLt.setHeaderVisible(false); - TableColumn[] columns = membersLt.getColumns(); - for (int i = 0; i < columns.length; i++) { - TableColumn column = columns[i]; - column.dispose(); - } - int[] indices = classesLt.getSelectionIndices(); - if (indices.length != 1) return; - TableItem classItem = classesLt.getItem(indices[0]); - JNIClass clazz = (JNIClass)classItem.getData(); - boolean hasNatives = false; - JNIMethod[] methods = clazz.getDeclaredMethods(); - for (int i = 0; i < methods.length; i++) { - JNIMethod method = methods[i]; - int mods = method.getModifiers(); - if (hasNatives =((mods & Modifier.NATIVE) != 0)) break; - } - membersLt.setRedraw(false); - if (hasNatives) { - TableColumn column; - column = new TableColumn(membersLt, SWT.NONE, METHOD_NAME_COLUMN); - column.setText("Method"); - column = new TableColumn(membersLt, SWT.NONE, METHOD_FLAGS_COLUMN); - column.setText("Flags"); - column = new TableColumn(membersLt, SWT.NONE, METHOD_ACCESSOR_COLUMN); - column.setText("Accessor"); - /* - column = new TableColumn(membersLt, SWT.NONE, METHOD_EXCLUDE_COLUMN); - column.setText("Exclude"); - */ - JNIGenerator.sort(methods); - for (int i = 0; i < methods.length; i++) { - JNIMethod method = methods[i]; - if ((method.getModifiers() & Modifier.NATIVE) == 0) continue; - TableItem item = new TableItem(membersLt, SWT.NONE); - item.setData(method); - item.setText(METHOD_NAME_COLUMN, getMethodString(method)); - item.setChecked(method.getGenerate()); - item.setText(METHOD_FLAGS_COLUMN, getFlagsString(method.getFlags())); - item.setText(METHOD_ACCESSOR_COLUMN, method.getAccessor()); - /* - item.setText(METHOD_EXCLUDE_COLUMN, methodData.getExclude()); - */ - } - } else { - TableColumn column; - column = new TableColumn(membersLt, SWT.NONE, FIELD_NAME_COLUMN); - column.setText("Field"); - column = new TableColumn(membersLt, SWT.NONE, FIELD_FLAGS_COLUMN); - column.setText("Flags"); - column = new TableColumn(membersLt, SWT.NONE, FIELD_CAST_COLUMN); - column.setText("Cast"); - column = new TableColumn(membersLt, SWT.NONE, FIELD_ACCESSOR_COLUMN); - column.setText("Accessor"); - /* - column = new TableColumn(membersLt, SWT.NONE, FIELD_EXCLUDE_COLUMN); - column.setText("Exclude"); - */ - JNIField[] fields = clazz.getDeclaredFields(); - for (int i = 0; i < fields.length; i++) { - JNIField field = fields[i]; - int mods = field.getModifiers(); - if (((mods & Modifier.PUBLIC) == 0) || - ((mods & Modifier.FINAL) != 0) || - ((mods & Modifier.STATIC) != 0)) continue; - TableItem item = new TableItem(membersLt, SWT.NONE); - item.setData(field); - item.setText(FIELD_NAME_COLUMN, getFieldString(field)); - item.setChecked(field.getGenerate()); - item.setText(FIELD_CAST_COLUMN, field.getCast()); - item.setText(FIELD_FLAGS_COLUMN, getFlagsString(field.getFlags())); - item.setText(FIELD_ACCESSOR_COLUMN, field.getAccessor()); - /* - item.setText(FIELD_EXCLUDE_COLUMN, fieldData.getExclude()); - */ - } - } - columns = membersLt.getColumns(); - for (int i = 0; i < columns.length; i++) { - TableColumn column = columns[i]; - column.pack(); - } - membersLt.setHeaderVisible(true); - membersLt.setRedraw(true); -} - -void updateParameters() { - paramsLt.removeAll(); - int[] indices = membersLt.getSelectionIndices(); - if (indices.length != 1) { - paramsLt.setHeaderVisible(false); - return; - } - TableItem memberItem = membersLt.getItem(indices[0]); - Object data = memberItem.getData(); - if (!(data instanceof JNIMethod)) return; - paramsLt.setRedraw(false); - JNIMethod method = (JNIMethod)data; - JNIParameter[] params = method.getParameters(); - for (int i = 0; i < params.length; i++) { - JNIParameter param = params[i]; - TableItem item = new TableItem(paramsLt, SWT.NONE); - item.setData(param); - item.setText(PARAM_INDEX_COLUMN, String.valueOf(i)); - item.setText(PARAM_TYPE_COLUMN, getClassString(param.getType())); - item.setText(PARAM_CAST_COLUMN, param.getCast()); - item.setText(PARAM_FLAGS_COLUMN, getFlagsString(param.getFlags())); - } - TableColumn[] columns = paramsLt.getColumns(); - for (int i = 0; i < columns.length; i++) { - TableColumn column = columns[i]; - column.pack(); - } - paramsLt.setRedraw(true); - paramsLt.setHeaderVisible(true); -} - -void updateGenerate(TableItem item) { - JNIItem itemData = (JNIItem)item.getData(); - itemData.setGenerate(item.getChecked()); -// MetaData metaData = app.getMetaData(); -// if (itemData instanceof JNIClass) { -// ClassData data = (ClassData)itemData; -// metaData.setMetaData(data.getClazz(), data); -// } else if (itemData instanceof FieldData) { -// FieldData data = (FieldData)itemData; -// item.setText(FIELD_FLAGS_COLUMN, getFlagsString(data.getFlags())); -// metaData.setMetaData(data.getField(), data); -// } else if (itemData instanceof MethodData) { -// MethodData data = (MethodData)itemData; -// item.setText(METHOD_FLAGS_COLUMN, getFlagsString(data.getFlags())); -// metaData.setMetaData(data.getMethod(), data); -// } else if (itemData instanceof ParameterData) { -// ParameterData data = (ParameterData)itemData; -// item.setText(PARAM_FLAGS_COLUMN, getFlagsString(data.getFlags())); -// metaData.setMetaData(data.getMethod(), data.getParameter(), data); -// } -} - -boolean updateOutputDir() { - String outputDirStr = outputDirCb.getText(); - File file = new File(outputDirStr); - if (!file.exists()) { - MessageBox dialog = new MessageBox(shell, SWT.OK | SWT.ICON_ERROR); - dialog.setMessage("Output directory does not exist."); - dialog.open(); - return false; - } - if (!file.isDirectory()) { - MessageBox dialog = new MessageBox(shell, SWT.OK | SWT.ICON_ERROR); - dialog.setMessage("Output directory is not a directory."); - dialog.open(); - return false; - } - if (outputDirStr.length() > 0) { - if (!outputDirStr.equals(app.getOutputDir())) { - app.setOutputDir(outputDirStr); - } - if (outputDirCb.indexOf(outputDirStr) == -1) { - outputDirCb.add(outputDirStr); - } - } - return true; -} - -void updateMainClass() { - String mainClassStr = mainClassCb.getText(); - if (mainClassStr.length() > 0) { - if (!mainClassStr.equals(app.getMainClassName())) { - app.setMainClassName(mainClassStr); - } - if (mainClassCb.indexOf(mainClassStr) == -1) { - mainClassCb.add(mainClassStr); - } - if (app.getOutputDir() != null) { - int index = outputDirCb.indexOf(app.getOutputDir()); - if (index != -1) outputDirCb.select(index); - } - } -} - -public static void main(String[] args) { - JNIGeneratorApp gen = new JNIGeneratorApp (); - if (args.length > 0) { - gen.setMainClassName(args[0]); - if (args.length > 1) gen.setOutputDir(args[1]); - } else { - gen.setMainClassName(JNIGeneratorApp.getDefaultMainClass()); - } - JNIGeneratorAppUI ui = new JNIGeneratorAppUI(gen); - ui.open(); - ui.run(); -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIItem.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIItem.java deleted file mode 100644 index 7c9bac9a8d..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIItem.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.eclipse.swt.tools.internal; - -public interface JNIItem extends Flags { - - public static final boolean GEN64 = true; - -public String[] getFlags(); - -public boolean getFlag(String flag); - -public Object getParam(String key); - -public boolean getGenerate(); - -public void setFlags(String[] flags); - -public void setFlag(String flag, boolean value); - -public void setGenerate(boolean value); - -public void setParam(String key, Object value); - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIMethod.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIMethod.java deleted file mode 100644 index ab41c6c68f..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIMethod.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2008 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -public interface JNIMethod extends JNIItem { - - public static final String[] FLAGS = {FLAG_NO_GEN, FLAG_ADDRESS, FLAG_CONST, FLAG_DYNAMIC, FLAG_JNI, FLAG_CAST, FLAG_CPP, FLAG_NEW, FLAG_DELETE, FLAG_GCNEW, FLAG_GCOBJECT, FLAG_SETTER, FLAG_GETTER, FLAG_ADDER}; - -public String getName(); - -public int getModifiers(); - -public boolean isNativeUnique(); - -public JNIParameter[] getParameters(); - -public JNIType getReturnType(); - -public JNIType getReturnType64(); - -public JNIType[] getParameterTypes(); - -public JNIType[] getParameterTypes64(); - -public JNIClass getDeclaringClass(); - -public String getAccessor(); - -public String getExclude(); - -public void setAccessor(String str); - -public void setExclude(String str); -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIParameter.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIParameter.java deleted file mode 100644 index 364a7027e7..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIParameter.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.eclipse.swt.tools.internal; - -public interface JNIParameter extends JNIItem { - - public static final String[] FLAGS = {FLAG_NO_IN, FLAG_NO_OUT, FLAG_CRITICAL, FLAG_INIT, FLAG_STRUCT, FLAG_UNICODE, FLAG_SENTINEL, FLAG_GCOBJECT}; - -public String getCast(); - -public JNIMethod getMethod(); - -public int getParameter(); - -public JNIClass getTypeClass(); - -public JNIType getType(); - -public JNIType getType64(); - -public void setCast(String str); -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIType.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIType.java deleted file mode 100644 index aad29811ef..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIType.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.eclipse.swt.tools.internal; - -public interface JNIType { - -public boolean isPrimitive(); - -public boolean isArray(); - -public JNIType getComponentType(); - -public boolean isType(String type); - -public String getName(); - -public String getSimpleName(); - -public String getTypeSignature(boolean define); - -public String getTypeSignature1(boolean define); - -public String getTypeSignature2(boolean define); - -public String getTypeSignature3(boolean define); - -public String getTypeSignature4(boolean define, boolean struct); - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/LockGenerator.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/LockGenerator.java deleted file mode 100644 index 11affd6276..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/LockGenerator.java +++ /dev/null @@ -1,143 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.lang.reflect.Modifier; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class LockGenerator extends CleanupClass { - -public LockGenerator() { -} - -String getParams(JNIMethod method) { - int n_args = method.getParameters().length; - if (n_args == 0) return ""; - String name = method.getName(); - String params = ""; - int index = 0; - while (true) { - index = classSource.indexOf(name, index + 1); - if (!Character.isWhitespace(classSource.charAt(index - 1))) continue; - if (index == -1) return null; - int parantesesStart = classSource.indexOf("(", index); - if (classSource.substring(index + name.length(), parantesesStart).trim().length() == 0) { - int parantesesEnd = classSource.indexOf(")", parantesesStart); - params = classSource.substring(parantesesStart + 1, parantesesEnd); - break; - } - } - return params; -} - -String getReturn(JNIMethod method) { - JNIType returnType = method.getReturnType(); - if (!returnType.isType("int")) return returnType.getTypeSignature3(false); - String modifierStr = Modifier.toString(method.getModifiers()); - String name = method.getName(); - Pattern p = Pattern.compile(modifierStr + ".*" + name + ".*(.*)"); - Matcher m = p.matcher(classSource); - if (m.find()) { - String methodStr = classSource.substring(m.start(), m.end()); - int index = methodStr.indexOf("/*long*/"); - if (index != -1 && index < methodStr.indexOf(name)) { - return new ReflectType(Integer.TYPE).getTypeSignature3(false) + " /*long*/"; - } - } - return new ReflectType(Integer.TYPE).getTypeSignature3(false); -} - -public void generate(JNIClass clazz) { - super.generate(clazz); - JNIMethod[] methods = clazz.getDeclaredMethods(); - generate(methods); -} - -public void generate(JNIMethod[] methods) { - sort(methods); - for (int i = 0; i < methods.length; i++) { - JNIMethod method = methods[i]; - if ((method.getModifiers() & Modifier.NATIVE) == 0) continue; - generate(method); - } -} - -public void generate(JNIMethod method) { - int modifiers = method.getModifiers(); - boolean lock = (modifiers & Modifier.SYNCHRONIZED) != 0; - String returnStr = getReturn(method); - String paramsStr = getParams(method); - if (lock) { - String modifiersStr = Modifier.toString(modifiers & ~Modifier.SYNCHRONIZED); - output(modifiersStr); - if (modifiersStr.length() > 0) output(" "); - output(returnStr); - output(" _"); - output(method.getName()); - output("("); - output(paramsStr); - outputln(");"); - } - String modifiersStr = Modifier.toString(modifiers & ~(Modifier.SYNCHRONIZED | (lock ? Modifier.NATIVE : 0))); - output(modifiersStr); - if (modifiersStr.length() > 0) output(" "); - output(returnStr); - output(" "); - output(method.getName()); - output("("); - output(paramsStr); - output(")"); - if (lock) { - outputln(" {"); - outputln("\tlock.lock();"); - outputln("\ttry {"); - output("\t\t"); - if (!method.getReturnType().isType("void")) { - output("return "); - } - output("_"); - output(method.getName()); - output("("); - String[] paramNames = getArgNames(method); - for (int i = 0; i < paramNames.length; i++) { - if (i != 0) output(", "); - output(paramNames[i]); - } - outputln(");"); - outputln("\t} finally {"); - outputln("\t\tlock.unlock();"); - outputln("\t}"); - outputln("}"); - } else { - outputln(";"); - } -} - -public static void main(String[] args) { - if (args.length < 2) { - System.out.println("Usage: java LockGenerator <OS className> <OS class source>"); - return; - } - try { - LockGenerator gen = new LockGenerator(); - String clazzName = args[0]; - String classSource = args[1]; - Class clazz = Class.forName(clazzName); - gen.setClassSourcePath(classSource); - gen.generate(new ReflectClass(clazz)); - } catch (Exception e) { - System.out.println("Problem"); - e.printStackTrace(System.out); - } -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/MetaData.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/MetaData.java deleted file mode 100644 index 01d464b559..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/MetaData.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Properties; - -public class MetaData { - - Properties data; - -public MetaData(String mainClass) { - data = new Properties(); - int index = 0; - Class clazz = getClass(); - int length = mainClass.length(); - while (index < length) { - index = mainClass.indexOf('.', index); - if (index == -1) index = length; - InputStream is = clazz.getResourceAsStream(mainClass.substring(0, index) + ".properties"); - if (is != null) { - try { - data.load(is); - } catch (IOException e) { - } finally { - try { - is.close(); - } catch (IOException e) {} - } - - } - index++; - } -} - -public MetaData(Properties data) { - this.data = data; -} - -public String getMetaData(String key, String defaultValue) { - return data.getProperty(key, defaultValue); -} - -public void setMetaData(String key, String value) { - data.setProperty(key, value); -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/MetaDataGenerator.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/MetaDataGenerator.java deleted file mode 100644 index d90c66344e..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/MetaDataGenerator.java +++ /dev/null @@ -1,104 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.lang.reflect.Modifier; - -public class MetaDataGenerator extends JNIGenerator { - -public void generateCopyright() { - generateMetaData("swt_properties_copyright"); -} - -public void generate(JNIClass clazz) { - output(toC(clazz.getName())); - output("="); - output(((AbstractItem)clazz).flatten()); - outputln(); - JNIField[] fields = clazz.getDeclaredFields(); - generate(fields); - JNIMethod[] methods = clazz.getDeclaredMethods(); - generate(methods); - outputln(); -} - -public void generate(JNIField[] fields) { - for (int i = 0; i < fields.length; i++) { - JNIField field = fields[i]; - int mods = field.getModifiers(); - if ((mods & Modifier.PUBLIC) == 0) continue; - if ((mods & Modifier.FINAL) != 0) continue; - if ((mods & Modifier.STATIC) != 0) continue; - generate(field); - outputln(); - } -} - -public void generate(JNIField field) { - output(field.getDeclaringClass().getSimpleName()); - output("_"); - output(field.getName()); - output("="); - output(((AbstractItem)field).flatten()); -} - -public void generate(JNIMethod[] methods) { - sort(methods); - for (int i = 0; i < methods.length; i++) { - JNIMethod method = methods[i]; - if ((method.getModifiers() & Modifier.NATIVE) == 0) continue; - generate(method); - outputln(); - if (progress != null) progress.step(); - } -} - -public void generate(JNIMethod method) { - StringBuffer buffer = new StringBuffer(); - buffer.append(method.getDeclaringClass().getSimpleName()); - buffer.append("_"); - if (method.isNativeUnique()) { - buffer.append(method.getName()); - } else { - buffer.append(getFunctionName(method)); - } - String key = buffer.toString(); - output(key); - output("="); - output(((AbstractItem)method).flatten()); - outputln(); - JNIParameter[] params = method.getParameters(); - for (int i = 0; i < params.length; i++) { - output(key); - output("_"); - output(i + "="); - output(((AbstractItem)params[i]).flatten()); - outputln(); - } -} - -public String getExtension() { - return ".properties"; -} - -protected boolean getGenerate(JNIItem item) { - return true; -} - -public String getOutputName() { - return getMainClass().getName(); -} - -protected boolean getGenerate(JNIClass clazz) { - return true; -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/NativesGenerator.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/NativesGenerator.java deleted file mode 100644 index 60d7bbce57..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/NativesGenerator.java +++ /dev/null @@ -1,982 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.lang.reflect.Modifier; -import java.util.HashSet; -import java.util.Iterator; - -public class NativesGenerator extends JNIGenerator { - -boolean enterExitMacro; - -public NativesGenerator() { - enterExitMacro = true; -} - -public void generateCopyright() { - generateMetaData("swt_copyright"); -} - -public void generateIncludes() { - String outputName = getOutputName(); - outputln("#include \"swt.h\""); - output("#include \""); - output(outputName); - outputln("_structs.h\""); - output("#include \""); - output(outputName); - outputln("_stats.h\""); - outputln(); -} - -public void generate(JNIClass clazz, String methodName) { - JNIMethod[] methods = clazz.getDeclaredMethods(); - int count = 0; - for (int i = 0; i < methods.length; i++) { - if (methods[i].getName().startsWith(methodName)) count++; - } - JNIMethod[] result = new JNIMethod[count]; - count = 0; - for (int i = 0; i < methods.length; i++) { - if (methods[i].getName().startsWith(methodName)) result[count++] = methods[i]; - } - generate(result); -} - -public void generate(JNIClass clazz) { - JNIMethod[] methods = clazz.getDeclaredMethods(); - int i = 0; - for (; i < methods.length; i++) { - JNIMethod method = methods[i]; - if ((method.getModifiers() & Modifier.NATIVE) != 0) break; - } - if (i == methods.length) return; - sort(methods); - generateNativeMacro(clazz); - generateExcludes(methods); - generate(methods); -} - -public void generate(JNIMethod[] methods) { - sort(methods); - for (int i = 0; i < methods.length; i++) { - JNIMethod method = methods[i]; - if ((method.getModifiers() & Modifier.NATIVE) == 0) continue; - generate(method); - if (progress != null) progress.step(); - } -} - -boolean isStruct(String flagsStr) { - String[] flags = split(flagsStr, " "); - for (int i = 0; i < flags.length; i++) { - if (flags[i].equals(Flags.FLAG_STRUCT)) return true; - } - return false; -} - -void generateCallback(JNIMethod method, String function, JNIParameter[] params, JNIType returnType) { - output("static jintLong "); - output(function); - outputln(";"); - output("static "); - String[] types = split((String)method.getParam("callback_types"), ";"); - String[] flags = split((String)method.getParam("callback_flags"), ";"); - output(types[0]); - output(" "); - output("proc_"); - output(function); - output("("); - boolean first = true; - for (int i = 1; i < types.length; i++) { - if (!first) output(", "); - output(types[i]); - output(" "); - output("arg"); - output(String.valueOf(i - 1)); - first = false; - } - outputln(") {"); - - output("\t"); - if (isStruct(flags[0])) { - output(types[0]); - output("* lprc = "); - } else if (!types[0].equals("void")) { - output("return "); - } - output("(("); - output(types[0]); - if (isStruct(flags[0])) output("*"); - output(" (*)("); - first = true; - for (int i = 1; i < types.length; i++) { - if (!first) output(", "); - first = false; - output(types[i]); - if (isStruct(flags[i])) output("*"); - } - output("))"); - output(function); - output(")("); - first = true; - for (int i = 1; i < types.length; i++) { - if (!first) output(", "); - first = false; - if (isStruct(flags[i])) output("&"); - output("arg"); - output(String.valueOf(i -1)); - } - outputln(");"); - if (isStruct(flags[0])) { - output("\t"); - output(types[0]); - outputln(" rc;"); - outputln("\tif (lprc) {"); - outputln("\t\trc = *lprc;"); - outputln("\t\tfree(lprc);"); - outputln("\t} else {"); - output("\t\tmemset(&rc, 0, sizeof("); - output(types[0]); - outputln("));"); - outputln("\t}"); - outputln("\treturn rc;"); - } - outputln("}"); - - output("static jintLong "); - output(method.getName()); - outputln("(jintLong func) {"); - output("\t"); - output(function); - outputln(" = func;"); - output("\treturn (jintLong)proc_"); - output(function); - outputln(";"); - outputln("}"); -} - -public void generate(JNIMethod method) { - if (method.getFlag(FLAG_NO_GEN)) return; - JNIType returnType = method.getReturnType(), returnType64 = method.getReturnType64(); - if (!(returnType.isType("void") || returnType.isPrimitive() || isSystemClass(returnType) || returnType.isType("java.lang.String"))) { - output("Warning: bad return type. :"); - outputln(method.toString()); - return; - } - JNIParameter[] params = method.getParameters(); - String function = getFunctionName(method), function64 = getFunctionName(method, method.getParameterTypes64()); - generateSourceStart(function, function64); - boolean sameFunction = function.equals(function64); - if (!sameFunction) { - output("#ifndef "); - output(JNI64); - outputln(); - } - if (isCPP) { - output("extern \"C\" "); - generateFunctionPrototype(method, function, params, returnType, returnType64, true); - outputln(";"); - } - if (function.startsWith("CALLBACK_")) { - generateCallback(method, function, params, returnType); - } - generateFunctionPrototype(method, function, params, returnType, returnType64, !sameFunction); - if (!function.equals(function64)) { - outputln(); - outputln("#else"); - if (isCPP) { - output("extern \"C\" "); - generateFunctionPrototype(method, function64, params, returnType, returnType64, true); - outputln(";"); - } - generateFunctionPrototype(method, function64, params, returnType, returnType64, !sameFunction); - outputln(); - outputln("#endif"); - } - generateFunctionBody(method, function, function64, params, returnType, returnType64); - generateSourceEnd(function); - outputln(); -} - -public void setEnterExitMacro(boolean enterExitMacro) { - this.enterExitMacro = enterExitMacro; -} - -void generateExcludes(JNIMethod[] methods) { - HashSet excludes = new HashSet(); - for (int i = 0; i < methods.length; i++) { - JNIMethod method = methods[i]; - if ((method.getModifiers() & Modifier.NATIVE) == 0) continue; - String exclude = method.getExclude(); - if (exclude.length() != 0) { - excludes.add(exclude); - } - } - for (Iterator iter = excludes.iterator(); iter.hasNext();) { - String exclude = (String)iter.next(); - outputln(exclude); - for (int i = 0; i < methods.length; i++) { - JNIMethod method = methods[i]; - if ((method.getModifiers() & Modifier.NATIVE) == 0) continue; - String methodExclude = method.getExclude(); - if (exclude.equals(methodExclude)) { - output("#define NO_"); - outputln(getFunctionName(method)); - } - } - outputln("#endif"); - outputln(); - } -} - -void generateNativeMacro(JNIClass clazz) { - output("#define "); - output(clazz.getSimpleName()); - output("_NATIVE(func) Java_"); - output(toC(clazz.getName())); - outputln("_##func"); - outputln(); -} - -boolean generateGetParameter(JNIMethod method, JNIParameter param, boolean critical, int indent) { - JNIType paramType = param.getType(), paramType64 = param.getType64(); - if (paramType.isPrimitive() || isSystemClass(paramType)) return false; - String iStr = String.valueOf(param.getParameter()); - for (int j = 0; j < indent; j++) output("\t"); - output("if (arg"); - output(iStr); - output(") if ((lparg"); - output(iStr); - output(" = "); - if (paramType.isArray()) { - JNIType componentType = paramType.getComponentType(); - if (componentType.isPrimitive()) { - if (critical) { - if (isCPP) { - output("("); - output(componentType.getTypeSignature2(!paramType.equals(paramType64))); - output("*)"); - output("env->GetPrimitiveArrayCritical(arg"); - } else { - output("(*env)->GetPrimitiveArrayCritical(env, arg"); - } - output(iStr); - output(", NULL)"); - } else { - if (isCPP) { - output("env->Get"); - } else { - output("(*env)->Get"); - } - output(componentType.getTypeSignature1(!paramType.equals(paramType64))); - if (isCPP) { - output("ArrayElements(arg"); - } else { - output("ArrayElements(env, arg"); - } - output(iStr); - output(", NULL)"); - } - } else { - throw new Error("not done"); - } - } else if (paramType.isType("java.lang.String")) { - if (param.getFlag(FLAG_UNICODE)) { - if (isCPP) { - output("env->GetStringChars(arg"); - } else { - output("(*env)->GetStringChars(env, arg"); - } - output(iStr); - output(", NULL)"); - } else { - if (isCPP) { - output("env->GetStringUTFChars(arg"); - } else { - output("(*env)->GetStringUTFChars(env, arg"); - } - output(iStr); - output(", NULL)"); - } - } else { - if (param.getFlag(FLAG_NO_IN)) { - output("&_arg"); - output(iStr); - } else { - output("get"); - output(paramType.getSimpleName()); - output("Fields(env, arg"); - output(iStr); - output(", &_arg"); - output(iStr); - output(")"); - } - } - outputln(") == NULL) goto fail;"); - return true; -} - -void generateSetParameter(JNIParameter param, boolean critical) { - JNIType paramType = param.getType(), paramType64 = param.getType64(); - if (paramType.isPrimitive() || isSystemClass(paramType)) return; - String iStr = String.valueOf(param.getParameter()); - if (paramType.isArray()) { - output("\tif (arg"); - output(iStr); - output(" && lparg"); - output(iStr); - output(") "); - JNIType componentType = paramType.getComponentType(); - if (componentType.isPrimitive()) { - if (critical) { - if (isCPP) { - output("env->ReleasePrimitiveArrayCritical(arg"); - } else { - output("(*env)->ReleasePrimitiveArrayCritical(env, arg"); - } - output(iStr); - } else { - if (isCPP) { - output("env->Release"); - } else { - output("(*env)->Release"); - } - output(componentType.getTypeSignature1(!paramType.equals(paramType64))); - if (isCPP) { - output("ArrayElements(arg"); - } else { - output("ArrayElements(env, arg"); - } - output(iStr); - } - output(", lparg"); - output(iStr); - output(", "); - if (param.getFlag(FLAG_NO_OUT)) { - output("JNI_ABORT"); - } else { - output("0"); - } - output(");"); - } else { - throw new Error("not done"); - } - outputln(); - } else if (paramType.isType("java.lang.String")) { - output("\tif (arg"); - output(iStr); - output(" && lparg"); - output(iStr); - output(") "); - if (param.getFlag(FLAG_UNICODE)) { - if (isCPP) { - output("env->ReleaseStringChars(arg"); - } else { - output("(*env)->ReleaseStringChars(env, arg"); - } - } else { - if (isCPP) { - output("env->ReleaseStringUTFChars(arg"); - } else { - output("(*env)->ReleaseStringUTFChars(env, arg"); - } - } - output(iStr); - output(", lparg"); - output(iStr); - outputln(");"); - } else { - if (!param.getFlag(FLAG_NO_OUT)) { - output("\tif (arg"); - output(iStr); - output(" && lparg"); - output(iStr); - output(") "); - output("set"); - output(paramType.getSimpleName()); - output("Fields(env, arg"); - output(iStr); - output(", lparg"); - output(iStr); - outputln(");"); - } - } -} - -void generateEnterExitMacro(JNIMethod method, String function, String function64, boolean enter) { - if (!enterExitMacro) return; - if (!function.equals(function64)) { - output("#ifndef "); - output(JNI64); - outputln(); - } - output("\t"); - output(method.getDeclaringClass().getSimpleName()); - output("_NATIVE_"); - output(enter ? "ENTER" : "EXIT"); - output("(env, that, "); - output(function); - outputln("_FUNC);"); - if (!function.equals(function64)) { - outputln("#else"); - output("\t"); - output(method.getDeclaringClass().getSimpleName()); - output("_NATIVE_"); - output(enter ? "ENTER" : "EXIT"); - output("(env, that, "); - output(function64); - outputln("_FUNC);"); - outputln("#endif"); - } -} - -boolean generateLocalVars(JNIMethod method, JNIParameter[] params, JNIType returnType, JNIType returnType64) { - boolean needsReturn = enterExitMacro; - for (int i = 0; i < params.length; i++) { - JNIParameter param = params[i]; - JNIType paramType = param.getType(), paramType64 = param.getType64(); - if (paramType.isPrimitive() || isSystemClass(paramType)) continue; - output("\t"); - if (paramType.isArray()) { - JNIType componentType = paramType.getComponentType(); - if (componentType.isPrimitive()) { - output(componentType.getTypeSignature2(!paramType.equals(paramType64))); - output(" *lparg" + i); - output("=NULL;"); - } else { - throw new Error("not done"); - } - } else if (paramType.isType("java.lang.String")) { - if (param.getFlag(FLAG_UNICODE)) { - output("const jchar *lparg" + i); - } else { - output("const char *lparg" + i); - } - output("= NULL;"); - } else { - if (param.getTypeClass().getFlag(Flags.FLAG_STRUCT)) { - output("struct "); - } - output(paramType.getSimpleName()); - output(" _arg" + i); - if (param.getFlag(FLAG_INIT)) output("={0}"); - output(", *lparg" + i); - output("=NULL;"); - } - outputln(); - needsReturn = true; - } - if (needsReturn) { - if (!returnType.isType("void")) { - output("\t"); - output(returnType.getTypeSignature2(!returnType.equals(returnType64))); - outputln(" rc = 0;"); - } - } - return needsReturn; -} - -boolean generateGetters(JNIMethod method, JNIParameter[] params) { - boolean genFailTag = false; - int criticalCount = 0; - for (int i = 0; i < params.length; i++) { - JNIParameter param = params[i]; - if (!isCritical(param)) { - genFailTag |= generateGetParameter(method, param, false, 1); - } else { - criticalCount++; - } - } - if (criticalCount != 0) { - outputln("#ifdef JNI_VERSION_1_2"); - outputln("\tif (IS_JNI_1_2) {"); - for (int i = 0; i < params.length; i++) { - JNIParameter param = params[i]; - if (isCritical(param)) { - genFailTag |= generateGetParameter(method, param, true, 2); - } - } - outputln("\t} else"); - outputln("#endif"); - outputln("\t{"); - for (int i = 0; i < params.length; i++) { - JNIParameter param = params[i]; - if (isCritical(param)) { - genFailTag |= generateGetParameter(method, param, false, 2); - } - } - outputln("\t}"); - } - return genFailTag; -} - -void generateSetters(JNIMethod method, JNIParameter[] params) { - int criticalCount = 0; - for (int i = params.length - 1; i >= 0; i--) { - JNIParameter param = params[i]; - if (isCritical(param)) { - criticalCount++; - } - } - if (criticalCount != 0) { - outputln("#ifdef JNI_VERSION_1_2"); - outputln("\tif (IS_JNI_1_2) {"); - for (int i = params.length - 1; i >= 0; i--) { - JNIParameter param = params[i]; - if (isCritical(param)) { - output("\t"); - generateSetParameter(param, true); - } - } - outputln("\t} else"); - outputln("#endif"); - outputln("\t{"); - for (int i = params.length - 1; i >= 0; i--) { - JNIParameter param = params[i]; - if (isCritical(param)) { - output("\t"); - generateSetParameter(param, false); - } - } - outputln("\t}"); - } - for (int i = params.length - 1; i >= 0; i--) { - JNIParameter param = params[i]; - if (!isCritical(param)) { - generateSetParameter(param, false); - } - } -} - -void generateDynamicFunctionCall(JNIMethod method, JNIParameter[] params, JNIType returnType, JNIType returnType64, boolean needsReturn) { - outputln("/*"); - generateFunctionCall(method, params, returnType, returnType64, needsReturn); - outputln("*/"); - outputln("\t{"); - - String name = method.getName(); - if (name.startsWith("_")) name = name.substring(1); - output("\t\tLOAD_FUNCTION(fp, "); - output(name); - outputln(")"); - outputln("\t\tif (fp) {"); - output("\t\t"); - generateFunctionCallLeftSide(method, returnType, returnType64, needsReturn); - output("(("); - output(returnType.getTypeSignature2(!returnType.equals(returnType64))); - output(" (CALLING_CONVENTION*)("); - for (int i = 0; i < params.length; i++) { - if (i != 0) output(", "); - JNIParameter param = params[i]; - String cast = param.getCast(); - boolean isStruct = param.getFlag(FLAG_STRUCT); - if (cast.length() > 2) { - cast = cast.substring(1, cast.length() - 1); - if (isStruct) { - int index = cast.lastIndexOf('*'); - if (index != -1) cast = cast.substring(0, index).trim(); - } - output(cast); - } else { - JNIType paramType = param.getType(), paramType64 = param.getType64(); - output(paramType.getTypeSignature4(!paramType.equals(paramType64), isStruct)); - } - } - output("))"); - output("fp"); - output(")"); - generateFunctionCallRightSide(method, params, 0); - output(";"); - outputln(); - outputln("\t\t}"); - outputln("\t}"); -} - -void generateFunctionCallLeftSide(JNIMethod method, JNIType returnType, JNIType returnType64, boolean needsReturn) { - output("\t"); - if (!returnType.isType("void")) { - if (needsReturn) { - output("rc = "); - } else { - output("return "); - } - output("("); - output(returnType.getTypeSignature2(!returnType.equals(returnType64))); - output(")"); - } - if (method.getFlag(FLAG_ADDRESS)) { - output("&"); - } - if (method.getFlag(FLAG_JNI)) { - output(isCPP ? "env->" : "(*env)->"); - } -} - -void generateFunctionCallRightSide(JNIMethod method, JNIParameter[] params, int paramStart) { - if (!method.getFlag(FLAG_CONST)) { - output("("); - if (method.getFlag(FLAG_JNI)) { - if (!isCPP) output("env, "); - } - for (int i = paramStart; i < params.length; i++) { - JNIParameter param = params[i]; - if (i != paramStart) output(", "); - if (param.getFlag(FLAG_STRUCT)) output("*"); - output(param.getCast()); - if (param.getFlag(FLAG_GCOBJECT)) output("TO_OBJECT("); - if (i == params.length - 1 && param.getFlag(FLAG_SENTINEL)) { - output("NULL"); - } else { - JNIType paramType = param.getType(); - if (!paramType.isPrimitive() && !isSystemClass(paramType)) output("lp"); - output("arg" + i); - } - if (param.getFlag(FLAG_GCOBJECT)) output(")"); - } - output(")"); - } -} - -void generateFunctionCall(JNIMethod method, JNIParameter[] params, JNIType returnType, JNIType returnType64, boolean needsReturn) { - String name = method.getName(); - String copy = (String)method.getParam("copy"); - boolean makeCopy = copy.length() != 0 && isCPP && !returnType.isType("void"); - if (makeCopy) { - output("\t"); - output(copy); - output(" temp = "); - } else { - generateFunctionCallLeftSide(method, returnType, returnType64, needsReturn); - } - int paramStart = 0; - if (name.startsWith("_")) name = name.substring(1); - - boolean objc_struct = false; - if (name.equals("objc_msgSend_stret") || name.equals("objc_msgSendSuper_stret")) objc_struct = true; - if (objc_struct) { - outputln("if (sizeof(_arg0) > STRUCT_SIZE_LIMIT) {"); - generate_objc_msgSend_stret (method, params, name); - paramStart = 1; - } else if (name.equalsIgnoreCase("call")) { - output("("); - String cast = params[0].getCast(); - if (cast.length() != 0 && !cast.equals("()")) { - output(cast); - } else { - output("("); - output(returnType.getTypeSignature2(!returnType.equals(returnType64))); - output(" (*)())"); - } - output("arg0)"); - paramStart = 1; - } else if (name.startsWith("VtblCall") || name.startsWith("_VtblCall")) { - output("(("); - output(returnType.getTypeSignature2(!returnType.equals(returnType64))); - output(" (STDMETHODCALLTYPE *)("); - for (int i = 1; i < params.length; i++) { - if (i != 1) output(", "); - JNIParameter param = params[i]; - JNIType paramType = param.getType(), paramType64 = param.getType64(); - output(paramType.getTypeSignature4(!paramType.equals(paramType64), false)); - } - output("))(*("); - JNIType paramType = params[1].getType(), paramType64 = params[1].getType64(); - output(paramType.getTypeSignature4(!paramType.equals(paramType64), false)); - output(" **)arg1)[arg0])"); - paramStart = 1; - } else if (method.getFlag(FLAG_CPP) || method.getFlag(FLAG_SETTER) || method.getFlag(FLAG_GETTER) || method.getFlag(FLAG_ADDER)) { - if (method.getFlag(FLAG_GCOBJECT)) { - output("TO_HANDLE("); - } - output("("); - JNIParameter param = params[0]; - if (param.getFlag(FLAG_STRUCT)) output("*"); - String cast = param.getCast(); - if (cast.length() != 0 && !cast.equals("()")) { - output(cast); - } - if (param.getFlag(FLAG_GCOBJECT)) { - output("TO_OBJECT("); - } - output("arg0"); - if (param.getFlag(FLAG_GCOBJECT)) { - output(")"); - } - output(")->"); - String accessor = method.getAccessor(); - if (accessor.length() != 0) { - output(accessor); - } else { - int index = -1; - if ((index = name.indexOf('_')) != -1) { - output(name.substring(index + 1, name.length())); - } else { - output(name); - } - } - paramStart = 1; - } else if (method.getFlag(FLAG_GCNEW)) { - output("TO_HANDLE(gcnew "); - String accessor = method.getAccessor(); - if (accessor.length() != 0) { - output(accessor); - } else { - int index = -1; - if ((index = name.indexOf('_')) != -1) { - output(name.substring(index + 1)); - } else { - output(name); - } - } - } else if (method.getFlag(FLAG_NEW)) { - output("new "); - String accessor = method.getAccessor(); - if (accessor.length() != 0) { - output(accessor); - } else { - int index = -1; - if ((index = name.indexOf('_')) != -1) { - output(name.substring(0, index)); - } else { - output(name); - } - } - } else if (method.getFlag(FLAG_DELETE)) { - output("delete "); - JNIParameter param = params[0]; - String cast = param.getCast(); - if (cast.length() != 0 && !cast.equals("()")) { - output(cast); - } else { - output("("); - output(name.substring(0, name.indexOf("_"))); - output(" *)"); - } - outputln("arg0;"); - return; - } else { - if (method.getFlag(FLAG_GCOBJECT)) { - output("TO_HANDLE("); - } - if (method.getFlag(Flags.FLAG_CAST)) { - output("(("); - String returnCast = returnType.getTypeSignature2(!returnType.equals(returnType64)); - if (name.equals("objc_msgSend_bool") && returnCast.equals("jboolean")) { - returnCast = "BOOL"; - } - output(returnCast); - output(" (*)("); - for (int i = 0; i < params.length; i++) { - if (i != 0) output(", "); - JNIParameter param = params[i]; - String cast = param.getCast(); - if (cast != null && cast.length() != 0) { - if (cast.startsWith("(")) cast = cast.substring(1); - if (cast.endsWith(")")) cast = cast.substring(0, cast.length() - 1); - output(cast); - } else { - JNIType paramType = param.getType(), paramType64 = param.getType64(); - if (!(paramType.isPrimitive() || paramType.isArray())) { - if (param.getTypeClass().getFlag(FLAG_STRUCT)) { - output("struct "); - } - } - output(paramType.getTypeSignature4(!paramType.equals(paramType64), param.getFlag(FLAG_STRUCT))); - } - } - output("))"); - } - String accessor = method.getAccessor(); - if (accessor.length() != 0) { - output(accessor); - } else { - output(name); - } - if (method.getFlag(Flags.FLAG_CAST)) { - output(")"); - } - } - if ((method.getFlag(FLAG_SETTER) && params.length == 3) || (method.getFlag(FLAG_GETTER) && params.length == 2)) { - output("[arg1]"); - paramStart++; - } - if (method.getFlag(FLAG_SETTER)) output(" = "); - if (method.getFlag(FLAG_ADDER)) output(" += "); - if (!method.getFlag(FLAG_GETTER)) { - generateFunctionCallRightSide(method, params, paramStart); - } - if (method.getFlag(FLAG_GCNEW) || method.getFlag(FLAG_GCOBJECT)) { - output(")"); - } - output(";"); - outputln(); - if (makeCopy) { - outputln("\t{"); - output("\t\t"); - output(copy); - output("* copy = new "); - output(copy); - outputln("();"); - outputln("\t\t*copy = temp;"); - output("\t\trc = "); - output("("); - output(returnType.getTypeSignature2(!returnType.equals(returnType64))); - output(")"); - outputln("copy;"); - outputln("\t}"); - } - if (objc_struct) { - outputln("\t} else {"); - generate_objc_msgSend_stret (method, params, name.substring(0, name.length() - "_stret".length())); - generateFunctionCallRightSide(method, params, 1); - outputln(";"); - outputln("\t}"); - } -} - -void generate_objc_msgSend_stret (JNIMethod method, JNIParameter[] params, String func) { - output("\t\t*lparg0 = (*("); - JNIType paramType = params[0].getType(), paramType64 = params[0].getType64(); - output(paramType.getTypeSignature4(!paramType.equals(paramType64), true)); - output(" (*)("); - for (int i = 1; i < params.length; i++) { - if (i != 1) output(", "); - JNIParameter param = params[i]; - String cast = param.getCast(); - if (cast != null && cast.length() != 0) { - if (cast.startsWith("(")) cast = cast.substring(1); - if (cast.endsWith(")")) cast = cast.substring(0, cast.length() - 1); - output(cast); - } else { - paramType = param.getType(); paramType64 = param.getType64(); - if (!(paramType.isPrimitive() || paramType.isArray())) { - if (param.getTypeClass().getFlag(FLAG_STRUCT)) { - output("struct "); - } - } - output(paramType.getTypeSignature4(!paramType.equals(paramType64), param.getFlag(FLAG_STRUCT))); - } - } - output("))"); - output(func); - output(")"); -} - -void generateReturn(JNIMethod method, JNIType returnType, boolean needsReturn) { - if (needsReturn && !returnType.isType("void")) { - outputln("\treturn rc;"); - } -} - -void generateMemmove(JNIMethod method, String function, String function64, JNIParameter[] params) { - generateEnterExitMacro(method, function, function64, true); - output("\t"); - boolean get = params[0].getType().isPrimitive(); - String className = params[get ? 1 : 0].getType().getSimpleName(); - output(get ? "if (arg1) get" : "if (arg0) set"); - output(className); - output(get ? "Fields(env, arg1, (" : "Fields(env, arg0, ("); - output(className); - output(get ? " *)arg0)" : " *)arg1)"); - outputln(";"); - generateEnterExitMacro(method, function, function64, false); -} - -void generateFunctionBody(JNIMethod method, String function, String function64, JNIParameter[] params, JNIType returnType, JNIType returnType64) { - outputln("{"); - - /* Custom GTK memmoves. */ - String name = method.getName(); - if (name.startsWith("_")) name = name.substring(1); - boolean isMemove = (name.equals("memmove") || name.equals("MoveMemory")) && params.length == 2 && returnType.isType("void"); - if (isMemove) { - generateMemmove(method, function, function64, params); - } else { - boolean needsReturn = generateLocalVars(method, params, returnType, returnType64); - generateEnterExitMacro(method, function, function64, true); - boolean genFailTag = generateGetters(method, params); - if (method.getFlag(FLAG_DYNAMIC)) { - generateDynamicFunctionCall(method, params, returnType, returnType64, needsReturn); - } else { - generateFunctionCall(method, params, returnType, returnType64, needsReturn); - } - if (genFailTag) outputln("fail:"); - generateSetters(method, params); - generateEnterExitMacro(method, function, function64, false); - generateReturn(method, returnType, needsReturn); - } - - outputln("}"); -} - -void generateFunctionPrototype(JNIMethod method, String function, JNIParameter[] params, JNIType returnType, JNIType returnType64, boolean singleLine) { - output("JNIEXPORT "); - output(returnType.getTypeSignature2(!returnType.equals(returnType64))); - output(" JNICALL "); - output(method.getDeclaringClass().getSimpleName()); - output("_NATIVE("); - output(function); - if (singleLine) { - output(")"); - output("(JNIEnv *env, "); - } else { - outputln(")"); - output("\t(JNIEnv *env, "); - } - if ((method.getModifiers() & Modifier.STATIC) != 0) { - output("jclass"); - } else { - output("jobject"); - } - output(" that"); - for (int i = 0; i < params.length; i++) { - output(", "); - JNIType paramType = params[i].getType(), paramType64 = params[i].getType64(); - output(paramType.getTypeSignature2(!paramType.equals(paramType64))); - output(" arg" + i); - } - output(")"); - if (!singleLine) outputln(); -} - -void generateSourceStart(String function, String function64) { - if (function.equals(function64)) { - output("#ifndef NO_"); - outputln(function); - } else { - output("#if (!defined(NO_"); - output(function); - output(") && !defined("); - output(JNI64); - output(")) || (!defined(NO_"); - output(function64); - output(") && defined("); - output(JNI64); - outputln("))"); - } -} - -void generateSourceEnd(String function) { - outputln("#endif"); -} - -boolean isCritical(JNIParameter param) { - JNIType paramType = param.getType(); - return paramType.isArray() && paramType.getComponentType().isPrimitive() && param.getFlag(FLAG_CRITICAL); -} - -boolean isSystemClass(JNIType type) { - return type.isType("java.lang.Object") || type.isType("java.lang.Class") ; -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ProgressMonitor.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ProgressMonitor.java deleted file mode 100644 index c34cf75c38..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ProgressMonitor.java +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -public interface ProgressMonitor { - -public void setTotal(int total); -public void setMessage(String message); -public void step(); - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectClass.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectClass.java deleted file mode 100644 index 64321d1c16..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectClass.java +++ /dev/null @@ -1,125 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2008 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.io.File; -import java.lang.reflect.Field; -import java.lang.reflect.Method; - -import org.eclipse.jdt.core.dom.AST; -import org.eclipse.jdt.core.dom.ASTParser; -import org.eclipse.jdt.core.dom.CompilationUnit; - -public class ReflectClass extends ReflectItem implements JNIClass { - Class clazz; - ReflectField[] fields; - ReflectMethod[] methods; - MetaData metaData; - String sourcePath; - -public ReflectClass(Class clazz) { - this(clazz, null, null); -} - -public ReflectClass(Class clazz, MetaData data, String sourcePath) { - this.clazz = clazz; - this.metaData = data; - this.sourcePath = sourcePath; -} - -void checkMembers() { - if (fields != null) return; - String source = null; - CompilationUnit unit = null; - if (JNIItem.GEN64) { - source = JNIGenerator.loadFile(sourcePath); - ASTParser parser = ASTParser.newParser(AST.JLS3); - parser.setSource(source.toCharArray()); - unit = (CompilationUnit)parser.createAST(null); - } - Field[] fields = clazz.getDeclaredFields(); - this.fields = new ReflectField[fields.length]; - for (int i = 0; i < fields.length; i++) { - this.fields[i] = new ReflectField(this, fields[i], source, unit); - } - Method[] methods = clazz.getDeclaredMethods(); - this.methods = new ReflectMethod[methods.length]; - for (int i = 0; i < methods.length; i++) { - this.methods[i] = new ReflectMethod(this, methods[i], source, unit); - } -} - -public int hashCode() { - return clazz.hashCode(); -} - -public boolean equals(Object obj) { - if (!(obj instanceof ReflectClass)) return false; - return ((ReflectClass)obj).clazz.equals(clazz); -} - -public JNIField[] getDeclaredFields() { - checkMembers(); - JNIField[] result = new JNIField[fields.length]; - System.arraycopy(fields, 0, result, 0, result.length); - return result; -} - -public JNIMethod[] getDeclaredMethods() { - checkMembers(); - JNIMethod[] result = new JNIMethod[methods.length]; - System.arraycopy(methods, 0, result, 0, result.length); - return result; -} - -public String getName() { - return clazz.getName(); -} - -public JNIClass getSuperclass() { - Class superclazz = clazz.getSuperclass(); - String path = new File(sourcePath).getParent() + "/" + getSimpleName(superclazz) + ".java"; - return new ReflectClass(superclazz, metaData, path); -} - -String getSimpleName(Class type) { - String name = type.getName(); - int index = name.lastIndexOf('.') + 1; - return name.substring(index, name.length()); -} - -public String getSimpleName() { - return getSimpleName(clazz); -} - -public String getExclude() { - return (String)getParam("exclude"); -} - -public String getMetaData() { - String key = JNIGenerator.toC(clazz.getName()); - return metaData.getMetaData(key, ""); -} - -public void setExclude(String str) { - setParam("exclude", str); -} - -public void setMetaData(String value) { - String key = JNIGenerator.toC(clazz.getName()); - metaData.setMetaData(key, value); -} - -public String toString() { - return clazz.toString(); -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectField.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectField.java deleted file mode 100644 index 350662fd5e..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectField.java +++ /dev/null @@ -1,133 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2008 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.io.File; -import java.lang.reflect.Field; -import java.util.Iterator; - -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.FieldDeclaration; -import org.eclipse.jdt.core.dom.TypeDeclaration; -import org.eclipse.jdt.core.dom.VariableDeclarationFragment; - -public class ReflectField extends ReflectItem implements JNIField { - Field field; - ReflectType type, type64; - ReflectClass declaringClass; - -public ReflectField(ReflectClass declaringClass, Field field, String source, CompilationUnit unit) { - this.declaringClass = declaringClass; - this.field = field; - Class clazz = field.getType(); - type = new ReflectType(clazz); - type64 = type; - boolean changes = canChange64(clazz); - if (changes && new File(declaringClass.sourcePath).exists()) { - TypeDeclaration type1 = (TypeDeclaration)unit.types().get(0); - Class result = null; - FieldDeclaration[] fields = type1.getFields(); - for (int i = 0; i < fields.length && result == null; i++) { - FieldDeclaration node = fields[i]; - for (Iterator iterator = node.fragments().iterator(); iterator.hasNext();) { - VariableDeclarationFragment decl = (VariableDeclarationFragment) iterator.next(); - if (decl.getName().getIdentifier().equals(field.getName())) { - String s = source.substring(node.getStartPosition(), node.getStartPosition() + node.getLength()); - if (clazz == int.class && s.indexOf("int /*long*/") != -1) type64 = new ReflectType(long.class); - else if (clazz == float.class && s.indexOf("float /*double*/") != -1) type64 = new ReflectType(double.class); - else if (clazz == int[].class && (s.indexOf("int /*long*/") != -1 || s.indexOf("int[] /*long[]*/") != -1)) type64 = new ReflectType(long[].class); - else if (clazz == float[].class && (s.indexOf("float /*double*/") != -1|| s.indexOf("float[] /*double[]*/") != -1)) type = new ReflectType(double[].class); - else if (clazz == long.class && s.indexOf("long /*int*/") != -1) type = new ReflectType(int.class); - else if (clazz == double.class && s.indexOf("double /*float*/") != -1) type = new ReflectType(float.class); - else if (clazz == long[].class && (s.indexOf("long /*int*/") != -1|| s.indexOf("long[] /*int[]*/") != -1)) type = new ReflectType(int[].class); - else if (clazz == double[].class && (s.indexOf("double /*float*/") != -1|| s.indexOf("double[] /*float[]*/") != -1)) type = new ReflectType(float[].class); - break; - } - } - } - } -} - -public int hashCode() { - return field.hashCode(); -} - -public boolean equals(Object obj) { - if (!(obj instanceof ReflectField)) return false; - return ((ReflectField)obj).field.equals(field); -} - -public JNIClass getDeclaringClass() { - return declaringClass; -} - -public int getModifiers() { - return field.getModifiers(); -} - -public String getName() { - return field.getName(); -} - -public JNIType getType() { - return type; -} - -public JNIType getType64() { - return type64; -} - -public String getAccessor() { - return (String)getParam("accessor"); -} - -public String getCast() { - String cast = ((String)getParam("cast")).trim(); - if (cast.length() > 0) { - if (!cast.startsWith("(")) cast = "(" + cast; - if (!cast.endsWith(")")) cast = cast + ")"; - } - return cast; -} - -public String getExclude() { - return (String)getParam("exclude"); -} - -public String getMetaData() { - String className = getDeclaringClass().getSimpleName(); - String key = className + "_" + field.getName(); - return declaringClass.metaData.getMetaData(key, ""); -} - -public void setAccessor(String str) { - setParam("accessor", str); -} - -public void setCast(String str) { - setParam("cast", str); -} - -public void setExclude(String str) { - setParam("exclude", str); -} - -public void setMetaData(String value) { - String className = declaringClass.getSimpleName(); - String key = className + "_" + field.getName(); - declaringClass.metaData.setMetaData(key, value); -} - -public String toString() { - return field.toString(); -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectItem.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectItem.java deleted file mode 100644 index 299de3a588..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectItem.java +++ /dev/null @@ -1,96 +0,0 @@ -package org.eclipse.swt.tools.internal; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.Set; - -public abstract class ReflectItem extends AbstractItem { - -static boolean convertTo32Bit(JNIType[] paramTypes, boolean floatingPointTypes) { - boolean changed = false; - for (int i = 0; i < paramTypes.length; i++) { - JNIType paramType = paramTypes[i]; - if (paramType.isType("long")) { - paramTypes[i] = new ReflectType(Integer.TYPE); - changed = true; - } - if (paramType.isType("[J")) { - paramTypes[i] = new ReflectType(int[].class); - changed = true; - } - if (floatingPointTypes) { - if (paramType.isType("double")) { - paramTypes[i] = new ReflectType(Float.TYPE); - changed = true; - } - if (paramType.isType("[D")) { - paramTypes[i] = new ReflectType(float[].class); - changed = true; - } - } - } - return changed; -} - -boolean canChange64(Class clazz) { - if (!GEN64) return false; - return clazz == Integer.TYPE || - clazz == Long.TYPE || - clazz == Float.TYPE || - clazz == Double.TYPE || - clazz == int[].class || - clazz == long[].class || - clazz == float[].class || - clazz == double[].class; -} - -public String flatten() { - checkParams(); - StringBuffer buffer = new StringBuffer(); - Set set = params.keySet(); - String[] keys = (String[])set.toArray(new String[set.size()]); - Arrays.sort(keys); - for (int j = 0; j < keys.length; j++) { - String key = keys[j]; - Object value = params.get(key); - String valueStr = ""; - if (value instanceof String) { - valueStr = (String)value; - } else if (value instanceof String[]) { - String[] values = (String[])value; - StringBuffer valueBuffer = new StringBuffer(); - for (int i = 0; i < values.length; i++) { - if (i != 0) valueBuffer.append(" "); - valueBuffer.append(values[i]); - } - valueStr = valueBuffer.toString(); - } else { - valueStr = value.toString(); - } - if (valueStr.length() > 0) { - if (buffer.length() != 0) buffer.append(","); - buffer.append(key); - buffer.append("="); - buffer.append(valueStr); - } - } - return buffer.toString(); -} - -public void parse(String str) { - this.params = new HashMap(); - if (str.length() == 0) return; - String[] params = split(str, ","); - for (int i = 0; i < params.length; i++) { - String param = params[i]; - int equals = param.indexOf('='); - if (equals == -1) { - System.out.println("Error: " + str + " param " + param); - } - String key = param.substring(0, equals).trim(); - String value = param.substring(equals + 1).trim(); - setParam(key, value); - } -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectMethod.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectMethod.java deleted file mode 100644 index 2120a29d56..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectMethod.java +++ /dev/null @@ -1,240 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2008 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.io.File; -import java.lang.reflect.Method; -import java.util.List; - -import org.eclipse.jdt.core.dom.ASTNode; -import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jdt.core.dom.MethodDeclaration; -import org.eclipse.jdt.core.dom.Modifier; -import org.eclipse.jdt.core.dom.SingleVariableDeclaration; -import org.eclipse.jdt.core.dom.TypeDeclaration; - -public class ReflectMethod extends ReflectItem implements JNIMethod { - Method method; - ReflectType returnType, returnType64; - ReflectType[] paramTypes, paramTypes64; - ReflectClass declaringClass; - Boolean unique; - -public ReflectMethod(ReflectClass declaringClass, Method method, String source, CompilationUnit unit) { - this.method = method; - this.declaringClass = declaringClass; - Class returnType = method.getReturnType(); - Class[] paramTypes = method.getParameterTypes(); - this.returnType = new ReflectType(returnType); - this.returnType64 = this.returnType; - this.paramTypes = new ReflectType[paramTypes.length]; - this.paramTypes64 = new ReflectType[paramTypes.length]; - for (int i = 0; i < this.paramTypes.length; i++) { - this.paramTypes[i] = this.paramTypes64[i] = new ReflectType(paramTypes[i]); - } - boolean changes = false; - if ((method.getModifiers() & Modifier.NATIVE) != 0) { - changes = canChange64(returnType); - if (!changes) { - for (int i = 0; i < paramTypes.length && !changes; i++) { - changes |= canChange64(paramTypes[i]); - } - } - } - if (changes && new File(declaringClass.sourcePath).exists()) { - String name = method.getName(); - TypeDeclaration type = (TypeDeclaration)unit.types().get(0); - MethodDeclaration decl = null; - MethodDeclaration[] methods = type.getMethods(); - for (int i = 0; i < methods.length && decl == null; i++) { - MethodDeclaration node = methods[i]; - if (node.getName().getIdentifier().equals(name)) { - if (!declaringClass.getSimpleName(returnType).equals(node.getReturnType2().toString())) continue; - List parameters = node.parameters(); - if (parameters.size() != paramTypes.length) continue; - decl = node; - for (int j = 0; j < paramTypes.length; j++) { - if (!declaringClass.getSimpleName(paramTypes[j]).equals(((SingleVariableDeclaration)parameters.get(j)).getType().toString())) { - decl = null; - break; - } - } - } - } - for (int i = 0; i < paramTypes.length; i++) { - if (canChange64(paramTypes[i])) { - Class clazz = paramTypes[i]; - SingleVariableDeclaration node = (SingleVariableDeclaration)decl.parameters().get(i); - String s = source.substring(node.getStartPosition(), node.getStartPosition() + node.getLength()); - if (clazz == int.class && s.indexOf("int /*long*/") != -1) this.paramTypes64[i] = new ReflectType(long.class); - else if (clazz == int[].class && (s.indexOf("int /*long*/") != -1 || s.indexOf("int[] /*long[]*/") != -1)) this.paramTypes64[i] = new ReflectType(long[].class); - else if (clazz == float.class && s.indexOf("float /*double*/") != -1) this.paramTypes64[i] = new ReflectType(double.class); - else if (clazz == float[].class && (s.indexOf("float /*double*/") != -1|| s.indexOf("float[] /*double[]*/") != -1)) this.paramTypes64[i] = new ReflectType(double[].class); - else if (clazz == long.class && s.indexOf("long /*int*/") != -1) this.paramTypes[i] = new ReflectType(int.class); - else if (clazz == long[].class && (s.indexOf("long /*int*/") != -1|| s.indexOf("long[] /*int[]*/") != -1)) this.paramTypes[i] = new ReflectType(int[].class); - else if (clazz == double.class && s.indexOf("double /*float*/") != -1) this.paramTypes[i] = new ReflectType(float.class); - else if (clazz == double[].class && (s.indexOf("double /*float*/") != -1|| s.indexOf("double[] /*float[]*/") != -1)) this.paramTypes[i] = new ReflectType(float[].class); - } - } - if (canChange64(returnType)) { - Class clazz = returnType; - ASTNode node = decl.getReturnType2(); - String s = source.substring(node.getStartPosition(), decl.getName().getStartPosition()); - if (clazz == int.class && s.indexOf("int /*long*/") != -1) this.returnType64 = new ReflectType(long.class); - else if (clazz == int[].class && (s.indexOf("int /*long*/") != -1 || s.indexOf("int[] /*long[]*/") != -1)) this.returnType64 = new ReflectType(long[].class); - else if (clazz == float.class && s.indexOf("float /*double*/") != -1) this.returnType64 = new ReflectType(double.class); - else if (clazz == float[].class && (s.indexOf("float /*double*/") != -1|| s.indexOf("float[] /*double[]*/") != -1)) this.returnType64 = new ReflectType(double[].class); - else if (clazz == long.class && s.indexOf("long /*int*/") != -1) this.returnType = new ReflectType(int.class); - else if (clazz == long[].class && (s.indexOf("long /*int*/") != -1|| s.indexOf("long[] /*int[]*/") != -1)) this.returnType = new ReflectType(int[].class); - else if (clazz == double.class && s.indexOf("double /*float*/") != -1) this.returnType = new ReflectType(float.class); - else if (clazz == double[].class && (s.indexOf("double /*float*/") != -1|| s.indexOf("double[] /*float[]*/") != -1)) this.returnType = new ReflectType(float[].class); - } - } -} - -public int hashCode() { - return method.hashCode(); -} - -public boolean equals(Object obj) { - if (!(obj instanceof ReflectMethod)) return false; - return ((ReflectMethod)obj).method.equals(method); -} - -public JNIClass getDeclaringClass() { - return declaringClass; -} - -public int getModifiers() { - return method.getModifiers(); -} - -public String getName() { - return method.getName(); -} - -public boolean isNativeUnique() { - if (unique != null) return unique.booleanValue(); - boolean result = true; - String name = getName(); - JNIMethod[] methods = declaringClass.getDeclaredMethods(); - for (int i = 0; i < methods.length; i++) { - JNIMethod mth = methods[i]; - if ((mth.getModifiers() & Modifier.NATIVE) != 0 && - this != mth && !this.equals(mth) && - name.equals(mth.getName())) - { - result = false; - break; - } - } - unique = new Boolean(result); - return result; -} - -public JNIType[] getParameterTypes() { - return paramTypes; -} - -public JNIType[] getParameterTypes64() { - return paramTypes64; -} - -public JNIParameter[] getParameters() { - Class[] paramTypes = method.getParameterTypes(); - ReflectParameter[] result = new ReflectParameter[paramTypes.length]; - for (int i = 0; i < paramTypes.length; i++) { - result[i] = new ReflectParameter(this, i); - } - return result; -} - -public JNIType getReturnType() { - return returnType; -} - -public JNIType getReturnType64() { - return returnType64; -} - -public String getAccessor() { - return (String)getParam("accessor"); -} - -public String getExclude() { - return (String)getParam("exclude"); -} - -public String getMetaData() { - String className = getDeclaringClass().getSimpleName(); - String key = className + "_" + JNIGenerator.getFunctionName(this); - MetaData metaData = declaringClass.metaData; - String value = metaData.getMetaData(key, null); - if (value == null) { - key = className + "_" + method.getName(); - value = metaData.getMetaData(key, null); - } - /* - * Support for 64 bit port. - */ - if (value == null) { - JNIType[] paramTypes = getParameterTypes(); - if (convertTo32Bit(paramTypes, true)) { - key = className + "_" + JNIGenerator.getFunctionName(this, paramTypes); - value = metaData.getMetaData(key, null); - } - if (value == null) { - paramTypes = getParameterTypes(); - if (convertTo32Bit(paramTypes, false)) { - key = className + "_" + JNIGenerator.getFunctionName(this, paramTypes); - value = metaData.getMetaData(key, null); - } - } - } - /* - * Support for lock. - */ - if (value == null && method.getName().startsWith("_")) { - key = className + "_" + JNIGenerator.getFunctionName(this).substring(2); - value = metaData.getMetaData(key, null); - if (value == null) { - key = className + "_" + method.getName().substring(1); - value = metaData.getMetaData(key, null); - } - } - if (value == null) value = ""; - return value; -} - -public void setAccessor(String str) { - setParam("accessor", str); -} - -public void setExclude(String str) { - setParam("exclude", str); -} - -public void setMetaData(String value) { - String key; - String className = declaringClass.getSimpleName(); - if (isNativeUnique()) { - key = className + "_" + method.getName (); - } else { - key = className + "_" + JNIGenerator.getFunctionName(this); - } - declaringClass.metaData.setMetaData(key, value); -} - -public String toString() { - return method.toString(); -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectParameter.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectParameter.java deleted file mode 100644 index 1ec4593e22..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectParameter.java +++ /dev/null @@ -1,102 +0,0 @@ -package org.eclipse.swt.tools.internal; - -import java.io.File; - -public class ReflectParameter extends ReflectItem implements JNIParameter { - ReflectMethod method; - int parameter; - -public ReflectParameter(ReflectMethod method, int parameter) { - this.method = method; - this.parameter = parameter; -} - -public String getCast() { - String cast = ((String)getParam("cast")).trim(); - if (cast.length() > 0) { - if (!cast.startsWith("(")) cast = "(" + cast; - if (!cast.endsWith(")")) cast = cast + ")"; - } - return cast; -} - -public String getMetaData() { - String className = method.getDeclaringClass().getSimpleName(); - String key = className + "_" + JNIGenerator.getFunctionName(method) + "_" + parameter; - MetaData metaData = method.declaringClass.metaData; - String value = metaData.getMetaData(key, null); - if (value == null) { - key = className + "_" + method.getName() + "_" + parameter; - value = metaData.getMetaData(key, null); - } - /* - * Support for 64 bit port. - */ - if (value == null) { - JNIType[] paramTypes = method.getParameterTypes(); - if (ReflectItem.convertTo32Bit(paramTypes, true)) { - key = className + "_" + JNIGenerator.getFunctionName(method, paramTypes) + "_" + parameter; - value = metaData.getMetaData(key, null); - } - if (value == null) { - paramTypes = method.getParameterTypes(); - if (ReflectItem.convertTo32Bit(paramTypes, false)) { - key = className + "_" + JNIGenerator.getFunctionName(method, paramTypes) + "_" + parameter; - value = metaData.getMetaData(key, null); - } - } - } - /* - * Support for lock. - */ - if (value == null && method.getName().startsWith("_")) { - key = className + "_" + JNIGenerator.getFunctionName(method).substring(2) + "_" + parameter; - value = metaData.getMetaData(key, null); - if (value == null) { - key = className + "_" + method.getName().substring(1) + "_" + parameter; - value = metaData.getMetaData(key, null); - } - } - if (value == null) value = ""; - return value; -} - -public JNIMethod getMethod() { - return method; -} - -public JNIClass getTypeClass() { - ReflectType type = (ReflectType)getType(); - ReflectClass declaringClass = method.declaringClass; - String sourcePath = declaringClass.sourcePath; - sourcePath = new File(sourcePath).getParent() + "/" + type.getSimpleName() + ".java"; - return new ReflectClass(type.clazz, declaringClass.metaData, sourcePath); -} - -public JNIType getType() { - return method.getParameterTypes()[parameter]; -} - -public JNIType getType64() { - return method.getParameterTypes64()[parameter]; -} - -public int getParameter() { - return parameter; -} - -public void setCast(String str) { - setParam("cast", str); -} - -public void setMetaData(String value) { - String key; - String className = method.getDeclaringClass().getSimpleName(); - if (method.isNativeUnique()) { - key = className + "_" + method.getName () + "_" + parameter; - } else { - key = className + "_" + JNIGenerator.getFunctionName(method) + "_" + parameter; - } - method.declaringClass.metaData.setMetaData(key, value); -} -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectType.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectType.java deleted file mode 100644 index 6c0a51df9d..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectType.java +++ /dev/null @@ -1,132 +0,0 @@ -package org.eclipse.swt.tools.internal; - -public class ReflectType implements JNIType { - Class clazz; - -public ReflectType(Class clazz) { - this.clazz = clazz; -} - -public boolean equals(Object obj) { - if (obj == this) return true; - if (!(obj instanceof ReflectType)) return false; - return ((ReflectType)obj).clazz == clazz; -} - -public JNIType getComponentType() { - return new ReflectType(clazz.getComponentType()); -} - -public String getName() { - return clazz.getName(); -} - -public String getSimpleName() { - String name = clazz.getName(); - int index = name.lastIndexOf('.') + 1; - return name.substring(index, name.length()); -} - -public String getTypeSignature(boolean define) { - if (clazz == Void.TYPE) return "V"; - if (clazz == Integer.TYPE) return define ? "I_J" : "I"; - if (clazz == Boolean.TYPE) return "Z"; - if (clazz == Long.TYPE) return define ? "J_J" : "J"; - if (clazz == Short.TYPE) return "S"; - if (clazz == Character.TYPE) return "C"; - if (clazz == Byte.TYPE) return "B"; - if (clazz == Float.TYPE) return define ? "F_D" : "F"; - if (clazz == Double.TYPE) return define ? "F_D" : "D"; - if (clazz == String.class) return "Ljava/lang/String;"; - if (clazz.isArray()) { - if (define) return getComponentType().getTypeSignature(define) + "Array"; - return "[" + getComponentType().getTypeSignature(define); - } - return "L" + clazz.getName().replace('.', '/') + ";"; -} - -public String getTypeSignature1(boolean define) { - if (clazz == Void.TYPE) return "Void"; - if (clazz == Integer.TYPE) return define ? "IntLong" : "Int"; - if (clazz == Boolean.TYPE) return "Boolean"; - if (clazz == Long.TYPE) return define ? "IntLong" : "Long"; - if (clazz == Short.TYPE) return "Short"; - if (clazz == Character.TYPE) return "Char"; - if (clazz == Byte.TYPE) return "Byte"; - if (clazz == Float.TYPE) return define ? "FloatDouble" : "Float"; - if (clazz == Double.TYPE) return define ? "FloatDouble" : "Double"; - if (clazz == String.class) return "String"; - return "Object"; -} - -public String getTypeSignature2(boolean define) { - if (clazz == Void.TYPE) return "void"; - if (clazz == Integer.TYPE) return define ? "jintLong" : "jint"; - if (clazz == Boolean.TYPE) return "jboolean"; - if (clazz == Long.TYPE) return define ? "jintLong" : "jlong"; - if (clazz == Short.TYPE) return "jshort"; - if (clazz == Character.TYPE) return "jchar"; - if (clazz == Byte.TYPE) return "jbyte"; - if (clazz == Float.TYPE) return define ? "jfloatDouble" : "jfloat"; - if (clazz == Double.TYPE) return define ? "jfloatDouble" : "jdouble"; - if (clazz == String.class) return "jstring"; - if (clazz == Class.class) return "jclass"; - if (clazz.isArray()) { - return getComponentType().getTypeSignature2(define) + "Array"; - } - return "jobject"; -} - -public String getTypeSignature3(boolean define) { - if (clazz == Void.TYPE) return "void"; - if (clazz == Integer.TYPE) return "int"; - if (clazz == Boolean.TYPE) return "boolean"; - if (clazz == Long.TYPE) return "long"; - if (clazz == Short.TYPE) return "short"; - if (clazz == Character.TYPE) return "char"; - if (clazz == Byte.TYPE) return "byte"; - if (clazz == Float.TYPE) return "float"; - if (clazz == Double.TYPE) return "double"; - if (clazz == String.class) return "String"; - if (clazz.isArray()) { - return getComponentType().getTypeSignature3(define) + "[]"; - } - return clazz.getName(); -} - -public String getTypeSignature4(boolean define, boolean struct) { - if (clazz == Void.TYPE) return "void"; - if (clazz == Integer.TYPE) return define ? "jintLong" : "jint"; - if (clazz == Boolean.TYPE) return "jboolean"; - if (clazz == Long.TYPE) return define ? "jintLong" : "jlong"; - if (clazz == Short.TYPE) return "jshort"; - if (clazz == Character.TYPE) return "jchar"; - if (clazz == Byte.TYPE) return "jbyte"; - if (clazz == Float.TYPE) return define ? "jfloatDouble" : "jfloat"; - if (clazz == Double.TYPE) return define ? "jfloatDouble" : "jdouble"; - if (clazz == String.class) return "jstring"; - if (clazz.isArray()) { - String sig = getComponentType().getTypeSignature4(define, struct); - return struct ? sig : sig + " *"; - } - String sig = getSimpleName(); - return struct ? sig : sig + " *"; -} - -public int hashCode() { - return clazz.hashCode(); -} - -public boolean isArray() { - return clazz.isArray(); -} - -public boolean isPrimitive() { - return clazz.isPrimitive(); -} - -public boolean isType(String type) { - return clazz.getName().equals(type); -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/SizeofGenerator.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/SizeofGenerator.java deleted file mode 100644 index 408b220c76..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/SizeofGenerator.java +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.lang.reflect.Modifier; - -public class SizeofGenerator extends JNIGenerator { - - -public void generate(JNIClass clazz) { - String className = clazz.getSimpleName(); - output("\tprintf(\""); - output(className); - output("=%d\\n\", sizeof("); - output(className); - outputln("));"); -// Field[] fields = clazz.getDeclaredFields(); -// generate(fields); -} - -public void generate() { - outputln("int main() {"); - super.generate(); - outputln("}"); -} - -public void generate(JNIField[] fields) { - sort(fields); - for (int i = 0; i < fields.length; i++) { - JNIField field = fields[i]; - if ((field.getModifiers() & Modifier.FINAL) == 0) continue; - generate(field); - } -} - -public void generate(JNIField field) { - output("\tprintf(\""); - output(field.getName()); - output("=%d\\n\", sizeof("); - output(field.getName()); - outputln("));"); -} - -public static void main(String[] args) { - if (args.length < 1) { - System.out.println("Usage: java SizeofGenerator <className1> <className2>"); - return; - } - try { - SizeofGenerator gen = new SizeofGenerator(); - for (int i = 0; i < args.length; i++) { - String clazzName = args[i]; - Class clazz = Class.forName(clazzName); - gen.generate(new ReflectClass(clazz)); - } - } catch (Exception e) { - System.out.println("Problem"); - e.printStackTrace(System.out); - } -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/StatsGenerator.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/StatsGenerator.java deleted file mode 100644 index 664f408219..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/StatsGenerator.java +++ /dev/null @@ -1,224 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.lang.reflect.Modifier; - -public class StatsGenerator extends JNIGenerator { - - boolean header; - -public StatsGenerator(boolean header) { - this.header = header; -} - -public void generateCopyright() { - generateMetaData("swt_copyright"); -} - -public void generateIncludes() { - if (!header) { - outputln("#include \"swt.h\""); - output("#include \""); - output(getOutputName()); - outputln("_stats.h\""); - outputln(); - } -} - -public void generate(JNIClass clazz) { - if (header) { - generateHeaderFile(clazz); - } else { - generateSourceFile(clazz); - } -} - -public String getExtension() { - return header ? ".h" : super.getExtension(); -} - -public String getSuffix() { - return "_stats"; -} - -void generateHeaderFile(JNIClass clazz){ - generateNATIVEMacros(clazz); - JNIMethod[] methods = clazz.getDeclaredMethods(); - sort(methods); - generateFunctionEnum(methods); -} - -void generateNATIVEMacros(JNIClass clazz) { - String className = clazz.getSimpleName(); - outputln("#ifdef NATIVE_STATS"); - output("extern int "); - output(className); - outputln("_nativeFunctionCount;"); - output("extern int "); - output(className); - outputln("_nativeFunctionCallCount[];"); - output("extern char* "); - output(className); - outputln("_nativeFunctionNames[];"); - output("#define "); - output(className); - output("_NATIVE_ENTER(env, that, func) "); - output(className); - outputln("_nativeFunctionCallCount[func]++;"); - output("#define "); - output(className); - outputln("_NATIVE_EXIT(env, that, func) "); - outputln("#else"); - output("#ifndef "); - output(className); - outputln("_NATIVE_ENTER"); - output("#define "); - output(className); - outputln("_NATIVE_ENTER(env, that, func) "); - outputln("#endif"); - output("#ifndef "); - output(className); - outputln("_NATIVE_EXIT"); - output("#define "); - output(className); - outputln("_NATIVE_EXIT(env, that, func) "); - outputln("#endif"); - outputln("#endif"); - outputln(); -} - -void generateSourceFile(JNIClass clazz) { - outputln("#ifdef NATIVE_STATS"); - outputln(); - JNIMethod[] methods = clazz.getDeclaredMethods(); - int methodCount = 0; - for (int i = 0; i < methods.length; i++) { - JNIMethod method = methods[i]; - if ((method.getModifiers() & Modifier.NATIVE) == 0) continue; - methodCount++; - } - String className = clazz.getSimpleName(); - output("int "); - output(className); - output("_nativeFunctionCount = "); - output(String.valueOf(methodCount)); - outputln(";"); - output("int "); - output(className); - output("_nativeFunctionCallCount["); - output(String.valueOf(methodCount)); - outputln("];"); - output("char * "); - output(className); - outputln("_nativeFunctionNames[] = {"); - sort(methods); - for (int i = 0; i < methods.length; i++) { - JNIMethod method = methods[i]; - if ((method.getModifiers() & Modifier.NATIVE) == 0) continue; - String function = getFunctionName(method), function64 = getFunctionName(method, method.getParameterTypes64()); - if (!function.equals(function64)) { - output("#ifndef "); - output(JNI64); - outputln(); - } - output("\t\""); - output(function); - outputln("\","); - if (!function.equals(function64)) { - outputln("#else"); - output("\t\""); - output(function64); - outputln("\","); - outputln("#endif"); - } - if (progress != null) progress.step(); - } - outputln("};"); - outputln(); - generateStatsNatives(className); - outputln(); - outputln("#endif"); -} - -void generateStatsNatives(String className) { - outputln("#define STATS_NATIVE(func) Java_org_eclipse_swt_tools_internal_NativeStats_##func"); - outputln(); - - output("JNIEXPORT jint JNICALL STATS_NATIVE("); - output(toC(className + "_GetFunctionCount")); - outputln(")"); - outputln("\t(JNIEnv *env, jclass that)"); - outputln("{"); - output("\treturn "); - output(className); - outputln("_nativeFunctionCount;"); - outputln("}"); - outputln(); - - output("JNIEXPORT jstring JNICALL STATS_NATIVE("); - output(toC(className + "_GetFunctionName")); - outputln(")"); - outputln("\t(JNIEnv *env, jclass that, jint index)"); - outputln("{"); - output("\treturn "); - if (isCPP) { - output("env->NewStringUTF("); - } else { - output("(*env)->NewStringUTF(env, "); - } - output(className); - outputln("_nativeFunctionNames[index]);"); - outputln("}"); - outputln(); - - output("JNIEXPORT jint JNICALL STATS_NATIVE("); - output(toC(className + "_GetFunctionCallCount")); - outputln(")"); - outputln("\t(JNIEnv *env, jclass that, jint index)"); - outputln("{"); - output("\treturn "); - output(className); - outputln("_nativeFunctionCallCount[index];"); - outputln("}"); -} - -void generateFunctionEnum(JNIMethod[] methods) { - if (methods.length == 0) return; - outputln("typedef enum {"); - for (int i = 0; i < methods.length; i++) { - JNIMethod method = methods[i]; - if ((method.getModifiers() & Modifier.NATIVE) == 0) continue; - String function = getFunctionName(method), function64 = getFunctionName(method, method.getParameterTypes64()); - if (!function.equals(function64)) { - output("#ifndef "); - output(JNI64); - outputln(); - } - output("\t"); - output(function); - outputln("_FUNC,"); - if (!function.equals(function64)) { - outputln("#else"); - output("\t"); - output(function64); - outputln("_FUNC,"); - outputln("#endif"); - } - if (progress != null) progress.step(); - } - JNIClass clazz = methods[0].getDeclaringClass(); - output("} "); - output(clazz.getSimpleName()); - outputln("_FUNCS;"); -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/StructsGenerator.java b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/StructsGenerator.java deleted file mode 100644 index beefb06b2b..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/StructsGenerator.java +++ /dev/null @@ -1,579 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tools.internal; - -import java.lang.reflect.Modifier; -import java.util.HashSet; -import java.util.Iterator; - -public class StructsGenerator extends JNIGenerator { - -boolean header; - -static final boolean GLOBAL_REF = false; - -public StructsGenerator(boolean header) { - this.header = header; -} - -public void generateCopyright() { - generateMetaData("swt_copyright"); -} - -public void generateIncludes() { - if (header) { - output("#include \""); - output(getOutputName()); - outputln(".h\""); - } else { - outputln("#include \"swt.h\""); - output("#include \""); - output(getOutputName()); - outputln("_structs.h\""); - } - outputln(); -} - -public void generate(JNIClass clazz) { - int j = 0; - JNIField[] fields = clazz.getDeclaredFields(); - for (; j < fields.length; j++) { - JNIField field = fields[j]; - int mods = field.getModifiers(); - if ((mods & Modifier.PUBLIC) != 0 && (mods & Modifier.STATIC) == 0) { - break; - } - } - if (j == fields.length) return; - if (header) { - generateHeaderFile(clazz); - } else { - generateSourceFile(clazz); - } -} - -public void generate() { - if (!header && getClasses().length == 0) return; - super.generate(); -} - -public String getExtension() { - return header ? ".h" : super.getExtension(); -} - -public String getSuffix() { - return "_structs"; -} - -void generateExcludes(JNIClass[] classes) { - HashSet excludes = new HashSet(); - for (int i = 0; i < classes.length; i++) { - JNIClass clazz = classes[i]; - String exclude = clazz.getExclude(); - if (exclude.length() != 0) { - excludes.add(exclude); - } - } - for (Iterator iter = excludes.iterator(); iter.hasNext();) { - String exclude = (String)iter.next(); - outputln(exclude); - for (int i = 0; i < classes.length; i++) { - JNIClass clazz = classes[i]; - String classExclude = clazz.getExclude(); - if (exclude.equals(classExclude)) { - output("#define NO_"); - outputln(clazz.getSimpleName()); - } - } - outputln("#endif"); - outputln(); - } -} - -void generateHeaderFile(JNIClass clazz) { - generateSourceStart(clazz); - generatePrototypes(clazz); - generateBlankMacros(clazz); - generateSourceEnd(clazz); - outputln(); -} - -void generateSourceFile(JNIClass clazz) { - generateSourceStart(clazz); - generateFIDsStructure(clazz); - outputln(); - generateGlobalVar(clazz); - outputln(); - generateFunctions(clazz); - generateSourceEnd(clazz); - outputln(); -} - -void generateSourceStart(JNIClass clazz) { - String clazzName = clazz.getSimpleName(); - output("#ifndef NO_"); - outputln(clazzName); -} - -void generateSourceEnd(JNIClass clazz) { - outputln("#endif"); -} - -void generateGlobalVar(JNIClass clazz) { - String clazzName = clazz.getSimpleName(); - output(clazzName); - output("_FID_CACHE "); - output(clazzName); - outputln("Fc;"); -} - -void generateBlankMacros(JNIClass clazz) { - String clazzName = clazz.getSimpleName(); - outputln("#else"); - output("#define cache"); - output(clazzName); - outputln("Fields(a,b)"); - output("#define get"); - output(clazzName); - outputln("Fields(a,b,c) NULL"); - output("#define set"); - output(clazzName); - outputln("Fields(a,b,c)"); - output("#define "); - output(clazzName); - outputln("_sizeof() 0"); -} - -void generatePrototypes(JNIClass clazz) { - String clazzName = clazz.getSimpleName(); - output("void cache"); - output(clazzName); - outputln("Fields(JNIEnv *env, jobject lpObject);"); - if (clazz.getFlag(Flags.FLAG_STRUCT)) { - output("struct "); - } - output(clazzName); - output(" *get"); - output(clazzName); - output("Fields(JNIEnv *env, jobject lpObject, "); - if (clazz.getFlag(Flags.FLAG_STRUCT)) { - output("struct "); - } - output(clazzName); - outputln(" *lpStruct);"); - output("void set"); - output(clazzName); - output("Fields(JNIEnv *env, jobject lpObject, "); - if (clazz.getFlag(Flags.FLAG_STRUCT)) { - output("struct "); - } - output(clazzName); - outputln(" *lpStruct);"); - output("#define "); - output(clazzName); - output("_sizeof() sizeof("); - if (clazz.getFlag(Flags.FLAG_STRUCT)) { - output("struct "); - } - output(clazzName); - outputln(")"); -} - -void generateFIDsStructure(JNIClass clazz) { - String clazzName = clazz.getSimpleName(); - output("typedef struct "); - output(clazzName); - outputln("_FID_CACHE {"); - outputln("\tint cached;"); - outputln("\tjclass clazz;"); - output("\tjfieldID "); - JNIField[] fields = clazz.getDeclaredFields(); - boolean first = true; - for (int i = 0; i < fields.length; i++) { - JNIField field = fields[i]; - if (ignoreField(field)) continue; - if (!first) output(", "); - output(field.getName()); - first = false; - } - outputln(";"); - output("} "); - output(clazzName); - outputln("_FID_CACHE;"); -} - -void generateCacheFunction(JNIClass clazz) { - String clazzName = clazz.getSimpleName(); - output("void cache"); - output(clazzName); - outputln("Fields(JNIEnv *env, jobject lpObject)"); - outputln("{"); - output("\tif ("); - output(clazzName); - outputln("Fc.cached) return;"); - JNIClass superclazz = clazz.getSuperclass(); - if (!superclazz.getName().equals("java.lang.Object")) { - String superName = superclazz.getSimpleName(); - output("\tcache"); - output(superName); - outputln("Fields(env, lpObject);"); - } - output("\t"); - output(clazzName); - if (isCPP) { - if (GLOBAL_REF) { - output("Fc.clazz = (jclass)env->NewGlobalRef(env->GetObjectClass(lpObject));"); - } else { - output("Fc.clazz = env->GetObjectClass(lpObject);"); - } - } else { - if (GLOBAL_REF) { - output("Fc.clazz = (*env)->NewGlobalRef(env, (*env)->GetObjectClass(env, lpObject));"); - } else { - output("Fc.clazz = (*env)->GetObjectClass(env, lpObject);"); - } - } - outputln(); - JNIField[] fields = clazz.getDeclaredFields(); - for (int i = 0; i < fields.length; i++) { - JNIField field = fields[i]; - if (ignoreField(field)) continue; - output("\t"); - output(clazzName); - output("Fc."); - output(field.getName()); - if (isCPP) { - output(" = env->GetFieldID("); - } else { - output(" = (*env)->GetFieldID(env, "); - } - output(clazzName); - output("Fc.clazz, \""); - output(field.getName()); - JNIType type = field.getType(), type64 = field.getType64(); - output("\", "); - if (type.equals(type64)) output("\""); - output(type.getTypeSignature(!type.equals(type64))); - if (type.equals(type64)) output("\""); - outputln(");"); - } - output("\t"); - output(clazzName); - outputln("Fc.cached = 1;"); - outputln("}"); -} - -void generateGetFields(JNIClass clazz) { - JNIClass superclazz = clazz.getSuperclass(); - String clazzName = clazz.getSimpleName(); - String superName = superclazz.getSimpleName(); - if (!superclazz.getName().equals("java.lang.Object")) { - /* Windows exception - cannot call get/set function of super class in this case */ - if (!(clazzName.equals(superName + "A") || clazzName.equals(superName + "W"))) { - output("\tget"); - output(superName); - output("Fields(env, lpObject, ("); - output(superName); - outputln(" *)lpStruct);"); - } else { - generateGetFields(superclazz); - } - } - JNIField[] fields = clazz.getDeclaredFields(); - for (int i = 0; i < fields.length; i++) { - JNIField field = fields[i]; - if (ignoreField(field)) continue; - String exclude = field.getExclude(); - if (exclude.length() != 0) { - outputln(exclude); - } - boolean noWinCE = field.getFlag(FLAG_NO_WINCE); - if (noWinCE) { - outputln("#ifndef _WIN32_WCE"); - } - JNIType type = field.getType(), type64 = field.getType64(); - String typeName = type.getSimpleName(); - String accessor = field.getAccessor(); - if (accessor == null || accessor.length() == 0) accessor = field.getName(); - if (type.isPrimitive()) { - output("\tlpStruct->"); - output(accessor); - output(" = "); - output(field.getCast()); - if (isCPP) { - output("env->Get"); - } else { - output("(*env)->Get"); - } - output(type.getTypeSignature1(!type.equals(type64))); - if (isCPP) { - output("Field(lpObject, "); - } else { - output("Field(env, lpObject, "); - } - output(field.getDeclaringClass().getSimpleName()); - output("Fc."); - output(field.getName()); - output(");"); - } else if (type.isArray()) { - JNIType componentType = type.getComponentType(), componentType64 = type64.getComponentType(); - if (componentType.isPrimitive()) { - outputln("\t{"); - output("\t"); - output(type.getTypeSignature2(!type.equals(type64))); - output(" lpObject1 = ("); - output(type.getTypeSignature2(!type.equals(type64))); - if (isCPP) { - output(")env->GetObjectField(lpObject, "); - } else { - output(")(*env)->GetObjectField(env, lpObject, "); - } - output(field.getDeclaringClass().getSimpleName()); - output("Fc."); - output(field.getName()); - outputln(");"); - if (isCPP) { - output("\tenv->Get"); - } else { - output("\t(*env)->Get"); - } - output(componentType.getTypeSignature1(!componentType.equals(componentType64))); - if (isCPP) { - output("ArrayRegion(lpObject1, 0, sizeof(lpStruct->"); - } else { - output("ArrayRegion(env, lpObject1, 0, sizeof(lpStruct->"); - } - output(accessor); - output(")"); - if (!componentType.isType("byte")) { - output(" / sizeof("); - output(componentType.getTypeSignature2(!componentType.equals(componentType64))); - output(")"); - } - output(", ("); - output(type.getTypeSignature4(!type.equals(type64), false)); - output(")lpStruct->"); - output(accessor); - outputln(");"); - output("\t}"); - } else { - throw new Error("not done"); - } - } else { - outputln("\t{"); - if (isCPP) { - output("\tjobject lpObject1 = env->GetObjectField(lpObject, "); - } else { - output("\tjobject lpObject1 = (*env)->GetObjectField(env, lpObject, "); - } - output(field.getDeclaringClass().getSimpleName()); - output("Fc."); - output(field.getName()); - outputln(");"); - output("\tif (lpObject1 != NULL) get"); - output(typeName); - output("Fields(env, lpObject1, &lpStruct->"); - output(accessor); - outputln(");"); - output("\t}"); - } - outputln(); - if (noWinCE) { - outputln("#endif"); - } - if (exclude.length() != 0) { - outputln("#endif"); - } - } -} - -void generateGetFunction(JNIClass clazz) { - String clazzName = clazz.getSimpleName(); - if (clazz.getFlag(Flags.FLAG_STRUCT)) { - output("struct "); - } - output(clazzName); - output(" *get"); - output(clazzName); - output("Fields(JNIEnv *env, jobject lpObject, "); - if (clazz.getFlag(Flags.FLAG_STRUCT)) { - output("struct "); - } - output(clazzName); - outputln(" *lpStruct)"); - outputln("{"); - output("\tif (!"); - output(clazzName); - output("Fc.cached) cache"); - output(clazzName); - outputln("Fields(env, lpObject);"); - generateGetFields(clazz); - outputln("\treturn lpStruct;"); - outputln("}"); -} - -void generateSetFields(JNIClass clazz) { - JNIClass superclazz = clazz.getSuperclass(); - String clazzName = clazz.getSimpleName(); - String superName = superclazz.getSimpleName(); - if (!superclazz.getName().equals("java.lang.Object")) { - /* Windows exception - cannot call get/set function of super class in this case */ - if (!(clazzName.equals(superName + "A") || clazzName.equals(superName + "W"))) { - output("\tset"); - output(superName); - output("Fields(env, lpObject, ("); - output(superName); - outputln(" *)lpStruct);"); - } else { - generateSetFields(superclazz); - } - } - JNIField[] fields = clazz.getDeclaredFields(); - for (int i = 0; i < fields.length; i++) { - JNIField field = fields[i]; - if (ignoreField(field)) continue; - String exclude = field.getExclude(); - if (exclude.length() != 0) { - outputln(exclude); - } - boolean noWinCE = field.getFlag(FLAG_NO_WINCE); - if (noWinCE) { - outputln("#ifndef _WIN32_WCE"); - } - JNIType type = field.getType(), type64 = field.getType64(); - String typeName = type.getSimpleName(); - String accessor = field.getAccessor(); - if (accessor == null || accessor.length() == 0) accessor = field.getName(); - if (type.isPrimitive()) { - if (isCPP) { - output("\tenv->Set"); - } else { - output("\t(*env)->Set"); - } - output(type.getTypeSignature1(!type.equals(type64))); - if (isCPP) { - output("Field(lpObject, "); - } else { - output("Field(env, lpObject, "); - } - output(field.getDeclaringClass().getSimpleName()); - output("Fc."); - output(field.getName()); - output(", ("); - output(type.getTypeSignature2(!type.equals(type64))); - output(")lpStruct->"); - output(accessor); - output(");"); - } else if (type.isArray()) { - JNIType componentType = type.getComponentType(), componentType64 = type64.getComponentType(); - if (componentType.isPrimitive()) { - outputln("\t{"); - output("\t"); - output(type.getTypeSignature2(!type.equals(type64))); - output(" lpObject1 = ("); - output(type.getTypeSignature2(!type.equals(type64))); - if (isCPP) { - output(")env->GetObjectField(lpObject, "); - } else { - output(")(*env)->GetObjectField(env, lpObject, "); - } - output(field.getDeclaringClass().getSimpleName()); - output("Fc."); - output(field.getName()); - outputln(");"); - if (isCPP) { - output("\tenv->Set"); - } else { - output("\t(*env)->Set"); - } - output(componentType.getTypeSignature1(!componentType.equals(componentType64))); - if (isCPP) { - output("ArrayRegion(lpObject1, 0, sizeof(lpStruct->"); - } else { - output("ArrayRegion(env, lpObject1, 0, sizeof(lpStruct->"); - } - output(accessor); - output(")"); - if (!componentType.isType("byte")) { - output(" / sizeof("); - output(componentType.getTypeSignature2(!componentType.equals(componentType64))); - output(")"); - } - output(", ("); - output(type.getTypeSignature4(!type.equals(type64), false)); - output(")lpStruct->"); - output(accessor); - outputln(");"); - output("\t}"); - } else { - throw new Error("not done"); - } - } else { - outputln("\t{"); - output("\tjobject lpObject1 = (*env)->GetObjectField(env, lpObject, "); - output(field.getDeclaringClass().getSimpleName()); - output("Fc."); - output(field.getName()); - outputln(");"); - output("\tif (lpObject1 != NULL) set"); - output(typeName); - output("Fields(env, lpObject1, &lpStruct->"); - output(accessor); - outputln(");"); - output("\t}"); - } - outputln(); - if (noWinCE) { - outputln("#endif"); - } - if (exclude.length() != 0) { - outputln("#endif"); - } - } -} - -void generateSetFunction(JNIClass clazz) { - String clazzName = clazz.getSimpleName(); - output("void set"); - output(clazzName); - output("Fields(JNIEnv *env, jobject lpObject, "); - if (clazz.getFlag(Flags.FLAG_STRUCT)) { - output("struct "); - } - output(clazzName); - outputln(" *lpStruct)"); - outputln("{"); - output("\tif (!"); - output(clazzName); - output("Fc.cached) cache"); - output(clazzName); - outputln("Fields(env, lpObject);"); - generateSetFields(clazz); - outputln("}"); -} - -void generateFunctions(JNIClass clazz) { - generateCacheFunction(clazz); - outputln(); - generateGetFunction(clazz); - outputln(); - generateSetFunction(clazz); -} - -boolean ignoreField(JNIField field) { - int mods = field.getModifiers(); - return - ((mods & Modifier.PUBLIC) == 0) || - ((mods & Modifier.FINAL) != 0) || - ((mods & Modifier.STATIC) != 0); -} - -} diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.accessibility.gtk.properties b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.accessibility.gtk.properties deleted file mode 100644 index 7ff1beb342..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.accessibility.gtk.properties +++ /dev/null @@ -1,25 +0,0 @@ -############################################################################### -# Copyright (c) 2006, 2007 IBM Corporation and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# IBM Corporation - initial API and implementation -############################################################################### -swt_copyright=/*******************************************************************************\n \ - * Copyright (c) 2000, 2008 IBM Corporation and others. All rights reserved.\n \ - * The contents of this file are made available under the terms\n \ - * of the GNU Lesser General Public License (LGPL) Version 2.1 that\n \ - * accompanies this distribution (lgpl-v21.txt). The LGPL is also\n \ - * available at http://www.gnu.org/licenses/lgpl.html. If the version\n \ - * of the LGPL at http://www.gnu.org is different to the version of\n \ - * the LGPL accompanying this distribution and there is any conflict\n \ - * between the two license versions, the terms of the LGPL accompanying\n \ - * this distribution shall govern.\n \ - * \n \ - * Contributors:\n \ - * IBM Corporation - initial API and implementation\n \ - *******************************************************************************/\n - diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.cairo.properties b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.cairo.properties deleted file mode 100644 index 3fb14ed10b..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.cairo.properties +++ /dev/null @@ -1,31 +0,0 @@ -############################################################################### -# Copyright (c) 2004, 2007 IBM Corporation and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# IBM Corporation - initial API and implementation -############################################################################### -swt_copyright=/* ***** BEGIN LICENSE BLOCK *****\n \ - * Version: MPL 1.1\n \ - *\n \ - * The contents of this file are subject to the Mozilla Public License Version\n \ - * 1.1 (the "License"); you may not use this file except in compliance with\n \ - * the License. You may obtain a copy of the License at\n \ - * http://www.mozilla.org/MPL/\n \ - *\n \ - * Software distributed under the License is distributed on an "AS IS" basis,\n \ - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\n \ - * for the specific language governing rights and limitations under the\n \ - * License.\n \ - *\n \ - * Contributor(s):\n \ - *\n \ - * IBM\n \ - * - Binding to permit interfacing between Cairo and SWT\n \ - * - Copyright (C) 2005, 2008 IBM Corp. All Rights Reserved.\n \ - *\n \ - * ***** END LICENSE BLOCK ***** */\n - diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.gnome.properties b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.gnome.properties deleted file mode 100644 index 9e18c59329..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.gnome.properties +++ /dev/null @@ -1,25 +0,0 @@ -############################################################################### -# Copyright (c) 2004, 2007 IBM Corporation and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# IBM Corporation - initial API and implementation -############################################################################### -swt_copyright=/*******************************************************************************\n \ - * Copyright (c) 2000, 2008 IBM Corporation and others. All rights reserved.\n \ - * The contents of this file are made available under the terms\n \ - * of the GNU Lesser General Public License (LGPL) Version 2.1 that\n \ - * accompanies this distribution (lgpl-v21.txt). The LGPL is also\n \ - * available at http://www.gnu.org/licenses/lgpl.html. If the version\n \ - * of the LGPL at http://www.gnu.org is different to the version of\n \ - * the LGPL accompanying this distribution and there is any conflict\n \ - * between the two license versions, the terms of the LGPL accompanying\n \ - * this distribution shall govern.\n \ - * \n \ - * Contributors:\n \ - * IBM Corporation - initial API and implementation\n \ - *******************************************************************************/\n - diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.gtk.properties b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.gtk.properties deleted file mode 100644 index a2fa663ab5..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.gtk.properties +++ /dev/null @@ -1,25 +0,0 @@ -############################################################################### -# Copyright (c) 2004, 2007 IBM Corporation and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# IBM Corporation - initial API and implementation -############################################################################### -swt_copyright=/*******************************************************************************\n \ -* Copyright (c) 2000, 2008 IBM Corporation and others. All rights reserved.\n \ -* The contents of this file are made available under the terms\n \ -* of the GNU Lesser General Public License (LGPL) Version 2.1 that\n \ -* accompanies this distribution (lgpl-v21.txt). The LGPL is also\n \ -* available at http://www.gnu.org/licenses/lgpl.html. If the version\n \ -* of the LGPL at http://www.gnu.org is different to the version of\n \ -* the LGPL accompanying this distribution and there is any conflict\n \ -* between the two license versions, the terms of the LGPL accompanying\n \ -* this distribution shall govern.\n \ -* \n \ -* Contributors:\n \ -* IBM Corporation - initial API and implementation\n \ -*******************************************************************************/\n - diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.properties b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.properties deleted file mode 100644 index b21c28bee9..0000000000 --- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.properties +++ /dev/null @@ -1,53 +0,0 @@ -############################################################################### -# Copyright (c) 2004, 2007 IBM Corporation and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# IBM Corporation - initial API and implementation -############################################################################### -swt_copyright=/*******************************************************************************\n \ -* Copyright (c) 2000, 2008 IBM Corporation and others.\n \ -* All rights reserved. This program and the accompanying materials\n \ -* are made available under the terms of the Eclipse Public License v1.0\n \ -* which accompanies this distribution, and is available at\n \ -* http://www.eclipse.org/legal/epl-v10.html\n \ -*\n \ -* Contributors:\n \ -* IBM Corporation - initial API and implementation\n \ -*******************************************************************************/\n -swt_properties_copyright=###############################################################################\n\ -# Copyright (c) 2000, 2008 IBM Corporation and others.\n\ -# All rights reserved. This program and the accompanying materials\n\ -# are made available under the terms of the Eclipse Public License v1.0\n\ -# which accompanies this distribution, and is available at\n\ -# http://www.eclipse.org/legal/epl-v10.html\n\ -#\n\ -# Contributors:\n\ -# IBM Corporation - initial API and implementation\n\ -############################################################################### -swt_main_classes=\ -org.eclipse.swt.internal.accessibility.gtk.ATK,../org.eclipse.swt/Eclipse SWT PI/gtk/library/,\ -org.eclipse.swt.internal.carbon.OS,../org.eclipse.swt/Eclipse SWT PI/carbon/library/,\ -org.eclipse.swt.internal.cde.CDE,../org.eclipse.swt/Eclipse SWT Program/cde/library/,\ -org.eclipse.swt.internal.gnome.GNOME,../org.eclipse.swt/Eclipse SWT Program/gnome/library/,\ -org.eclipse.swt.internal.gtk.GTK,../org.eclipse.swt/Eclipse SWT PI/motif_gtk/library/,\ -org.eclipse.swt.internal.gtk.OS,../org.eclipse.swt/Eclipse SWT PI/gtk/library/,\ -org.eclipse.swt.internal.motif.OS,../org.eclipse.swt/Eclipse SWT PI/motif/library/,\ -org.eclipse.swt.internal.mozilla.XPCOM,../org.eclipse.swt/Eclipse SWT Mozilla/common/library/,\ -org.eclipse.swt.internal.mozilla.init.XPCOMInit,../org.eclipse.swt/Eclipse SWT Mozilla/common/library/,\ -org.eclipse.swt.internal.ole.win32.COM,../org.eclipse.swt/Eclipse SWT PI/win32/library/,\ -org.eclipse.swt.internal.photon.OS,../org.eclipse.swt/Eclipse SWT PI/photon/library/,\ -org.eclipse.swt.internal.win32.OS,../org.eclipse.swt/Eclipse SWT PI/win32/library/,\ -org.eclipse.swt.internal.gdip.Gdip,../org.eclipse.swt/Eclipse SWT PI/win32/library/,\ -org.eclipse.swt.internal.cairo.Cairo,../org.eclipse.swt/Eclipse SWT PI/cairo/library/,\ -org.eclipse.swt.internal.opengl.glx.GLX,../org.eclipse.swt/Eclipse SWT OpenGL/glx/library/,\ -org.eclipse.swt.internal.opengl.win32.WGL,../org.eclipse.swt/Eclipse SWT OpenGL/win32/library/,\ -org.eclipse.swt.internal.opengl.carbon.AGL,../org.eclipse.swt/Eclipse SWT OpenGL/carbon/library/,\ -org.eclipse.swt.internal.C,../org.eclipse.swt/Eclipse SWT PI/common/library/,\ -org.eclipse.swt.internal.wpf.OS,../org.eclipse.swt/Eclipse SWT PI/wpf/library/,\ -org.eclipse.swt.internal.win32.Win32,../org.eclipse.swt/Eclipse SWT PI/wpf_win32/library/,\ -org.eclipse.swt.internal.cocoa.Cocoa,../org.eclipse.swt/Eclipse SWT PI/carbon/library/,\ -org.eclipse.swt.internal.cocoa.OS,../org.eclipse.swt/Eclipse SWT PI/cocoa/library/ |