summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse
diff options
context:
space:
mode:
authorcvs2svn <platform-releng-dev@eclipse.org>2009-05-08 12:30:00 +0000
committercvs2svn <platform-releng-dev@eclipse.org>2009-05-08 12:30:00 +0000
commit9d94e04af5925264174cc1363d1f11750750809a (patch)
treefa88cc12c8fd81e8df4ac9b36e9fae98e485fa27 /bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse
parent5261d732b06498a2d24a1dbc2e7297011e78921c (diff)
downloadeclipse.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')
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTClass.java190
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTField.java137
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTItem.java58
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTMethod.java204
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTParameter.java93
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ASTType.java214
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/AbstractItem.java80
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/CleanupClass.java127
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/CleanupConstants.java96
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/CleanupNatives.java95
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ConstantsGenerator.java65
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/EmbedMetaData.java152
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/Flags.java37
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIClass.java30
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIField.java38
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIGenerator.java264
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIGeneratorApp.java523
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIGeneratorAppUI.java1241
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIItem.java23
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIMethod.java42
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIParameter.java20
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/JNIType.java27
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/LockGenerator.java143
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/MetaData.java57
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/MetaDataGenerator.java104
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/NativesGenerator.java982
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ProgressMonitor.java19
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectClass.java125
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectField.java133
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectItem.java96
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectMethod.java240
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectParameter.java102
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/ReflectType.java132
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/SizeofGenerator.java70
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/StatsGenerator.java224
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/StructsGenerator.java579
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.accessibility.gtk.properties25
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.cairo.properties31
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.gnome.properties25
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.gtk.properties25
-rw-r--r--bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.properties53
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/