diff options
author | cvs2svn <platform-releng-dev@eclipse.org> | 2002-12-18 16:52:21 +0000 |
---|---|---|
committer | cvs2svn <platform-releng-dev@eclipse.org> | 2002-12-18 16:52:21 +0000 |
commit | 2ce56e593aae79c5d62b76ce3a484a371a5fa554 (patch) | |
tree | 8d41abbf9e285f8bcda326ce9a2d7906974c23c5 /examples/org.eclipse.swt.examples/src | |
parent | a73da4eabc7c95b426d5e9a25859ba197472103e (diff) | |
download | eclipse.platform.swt-2122b.tar.gz eclipse.platform.swt-2122b.tar.xz eclipse.platform.swt-2122b.zip |
This commit was manufactured by cvs2svn to create tag 'v2122b'.v2122b
Sprout from master 2002-12-17 20:32:13 UTC Silenio Quarti <silenio> '*** empty log message ***'
Cherrypick from master 2002-12-18 16:52:20 UTC Silenio Quarti <silenio> '*** empty log message ***':
bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Display.java
Delete:
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/about.html
examples/org.eclipse.swt.examples.controls/build.properties
examples/org.eclipse.swt.examples.controls/doc-html/hglegal2002.htm
examples/org.eclipse.swt.examples.controls/doc-html/ngibmcpy2002.gif
examples/org.eclipse.swt.examples.controls/doc-html/swt_controls_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.launcher/.classpath
examples/org.eclipse.swt.examples.launcher/.cvsignore
examples/org.eclipse.swt.examples.launcher/.project
examples/org.eclipse.swt.examples.launcher/about.html
examples/org.eclipse.swt.examples.launcher/build.properties
examples/org.eclipse.swt.examples.launcher/doc-html/hglegal2002.htm
examples/org.eclipse.swt.examples.launcher/doc-html/ngibmcpy2002.gif
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/about.html
examples/org.eclipse.swt.examples.layouts/build.properties
examples/org.eclipse.swt.examples.layouts/doc-html/hglegal2002.htm
examples/org.eclipse.swt.examples.layouts/doc-html/ngibmcpy2002.gif
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/about.html
examples/org.eclipse.swt.examples.ole.win32/build.properties
examples/org.eclipse.swt.examples.ole.win32/doc-html/hglegal2002.htm
examples/org.eclipse.swt.examples.ole.win32/doc-html/ngibmcpy2002.gif
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/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/about.html
examples/org.eclipse.swt.examples.paint/build.properties
examples/org.eclipse.swt.examples.paint/doc-html/hglegal2002.htm
examples/org.eclipse.swt.examples.paint/doc-html/ngibmcpy2002.gif
examples/org.eclipse.swt.examples.paint/doc-html/swt_paint_ex.html
examples/org.eclipse.swt.examples.paint/icons/fill_none.gif
examples/org.eclipse.swt.examples.paint/icons/fill_outline.gif
examples/org.eclipse.swt.examples.paint/icons/fill_solid.gif
examples/org.eclipse.swt.examples.paint/icons/linestyle_dash.gif
examples/org.eclipse.swt.examples.paint/icons/linestyle_dashdot.gif
examples/org.eclipse.swt.examples.paint/icons/linestyle_dot.gif
examples/org.eclipse.swt.examples.paint/icons/linestyle_solid.gif
examples/org.eclipse.swt.examples.paint/icons/options_font.gif
examples/org.eclipse.swt.examples.paint/icons/paint_example.gif
examples/org.eclipse.swt.examples.paint/icons/tool_airbrush.gif
examples/org.eclipse.swt.examples.paint/icons/tool_ellipse.gif
examples/org.eclipse.swt.examples.paint/icons/tool_line.gif
examples/org.eclipse.swt.examples.paint/icons/tool_pencil.gif
examples/org.eclipse.swt.examples.paint/icons/tool_polyline.gif
examples/org.eclipse.swt.examples.paint/icons/tool_rectangle.gif
examples/org.eclipse.swt.examples.paint/icons/tool_roundedrectangle.gif
examples/org.eclipse.swt.examples.paint/icons/tool_text.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/AirbrushTool.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/BasicPaintSession.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/ContainerFigure.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/ContinuousPaintSession.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/DragPaintSession.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/EllipseFigure.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/EllipseTool.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/Figure.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/FigureDrawContext.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/LineFigure.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/LineTool.java
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/PaintSession.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintSurface.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintTool.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PaintView.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PencilTool.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PointFigure.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/PolyLineTool.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/RectangleFigure.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/RectangleTool.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/RoundedRectangleFigure.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/RoundedRectangleTool.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SegmentedPaintSession.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SolidEllipseFigure.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SolidPolygonFigure.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SolidRectangleFigure.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/SolidRoundedRectangleFigure.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/TextFigure.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/TextTool.java
examples/org.eclipse.swt.examples.paint/src/org/eclipse/swt/examples/paint/ToolSettings.java
examples/org.eclipse.swt.examples/.classpath
examples/org.eclipse.swt.examples/.cvsignore
examples/org.eclipse.swt.examples/.project
examples/org.eclipse.swt.examples/about.html
examples/org.eclipse.swt.examples/build.properties
examples/org.eclipse.swt.examples/doc-html/hglegal2002.htm
examples/org.eclipse.swt.examples/doc-html/ngibmcpy2002.gif
examples/org.eclipse.swt.examples/doc-html/swt_addressbook_ex.html
examples/org.eclipse.swt.examples/doc-html/swt_controls_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_texteditor_ex.html
examples/org.eclipse.swt.examples/plugin.properties
examples/org.eclipse.swt.examples/plugin.xml
examples/org.eclipse.swt.examples/src/examples_addressbook.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_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_texteditor.properties
examples/org.eclipse.swt.examples/src/import.properties
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/controlexample/AlignableTab.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/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/DialogTab.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/ListTab.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/SashTab.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/Tab.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/TreeTab.java
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/closedFolder.gif
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/openFolder.gif
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/target.gif
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/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/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/Tab.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/Images.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/TextEditor.java
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue_mask.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold_mask.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase_mask.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green_mask.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red.bmp
examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red_mask.bmp
tests/org.eclipse.swt.tests/.classpath
tests/org.eclipse.swt.tests/.cvsignore
tests/org.eclipse.swt.tests/.project
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/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/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_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_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_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_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_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_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_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_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_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/check.bmp
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/dot.gif
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/folderOpen.bmp
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/push.bmp
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/radio.bmp
tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/target.bmp
tests/org.eclipse.swt.tests/about.html
tests/org.eclipse.swt.tests/build.properties
tests/org.eclipse.swt.tests/plugin.properties
tests/org.eclipse.swt.tests/plugin.xml
tests/org.eclipse.swt.tests/test.xml
Diffstat (limited to 'examples/org.eclipse.swt.examples/src')
88 files changed, 0 insertions, 14003 deletions
diff --git a/examples/org.eclipse.swt.examples/src/examples_addressbook.properties b/examples/org.eclipse.swt.examples/src/examples_addressbook.properties deleted file mode 100644 index b416bed826..0000000000 --- a/examples/org.eclipse.swt.examples/src/examples_addressbook.properties +++ /dev/null @@ -1,59 +0,0 @@ -Last_name = Last Name -First_name = First Name -Business_phone = Business Phone -Home_phone = Home Phone -Email = Email -Fax = Fax -Close_save = The address book contents have changed.\nDo you want to save the changes? -New_title = Untitled -Column = Column: -Book_extension = .adr -Book_filter_name = Address Books -All_filter_name = All Files -File = File -Does_not_exist = does not exist. -File_not_found = File not found: -IO_error_read = IO error reading text file: -IO_error_write = IO error writing text file: -IO_error_close = IO error closing text file: -Title_bar = Address Book - -Save_as_title = Save As -Query_overwrite = already exists.\nDo you want to replace it? -File_menu_title = &File -New_contact = &New Contact\tCtrl+N -Edit_contact = &Edit Contact\tCtrl+E -New_address_book = New Address &Book\tCtrl+B -Open_address_book = &Open Address Book\tCtrl+O -Save_address_book = &Save Address Book\tCtrl+S -Save_book_as = Save &Address Book As -Exit = E&xit -Edit_menu_title = &Edit -Edit = &Edit\tCtrl+E -Copy = &Copy\tCtrl+C -Paste = &Paste\tCtrl+V -Delete = De&lete\tDel -Sort = &Sort -Search_menu_title = &Search -Find = &Find...\tCtrl+F -Find_next = Find &Next...\tF3 -Pop_up_new = &New -Pop_up_edit = &Edit -Pop_up_copy = &Copy -Pop_up_paste = &Paste -Pop_up_delete = &Delete -Pop_up_find = &Find... -Help_menu_title = &Help -About = &About Address Book... -About_1 = About -About_2 = \nversion 1.0 -OK = OK -Cancel = Cancel -Search_dialog_title = Find -Dialog_find_what = Fi&nd what: -Dialog_match_case = Match &case -Dialog_match_word = Match &whole word -Dialog_direction = Direction -Dialog_dir_up = &Up -Dialog_dir_down = &Down -Dialog_find = &Find -Cannot_find = Cannot find
\ No newline at end of file diff --git a/examples/org.eclipse.swt.examples/src/examples_control.properties b/examples/org.eclipse.swt.examples/src/examples_control.properties deleted file mode 100644 index d7d3a6640a..0000000000 --- a/examples/org.eclipse.swt.examples/src/examples_control.properties +++ /dev/null @@ -1,139 +0,0 @@ -error.CouldNotLoadResources = Unable to load resources -window.title = SWT Controls - -Text_Buttons = Text Buttons -Size = Size -Alignment = Alignment -Left = Left -Right = Right -Up = Up -Down = Down -Center = Center -One = One -Two = Two -Three = Three -Image_Buttons = Image Buttons -Control_Example = Control Example -Parameters = Parameters -State = State -Enabled = Enabled -Visible = Visible -Preferred = Preferred -Styles = Styles -Text_Labels = Text Labels -Image_Labels = Image Labels -One_Two_Three = One Two Three -Text_ToolBar = Text ToolBar -Image_ToolBar = Image ToolBar -Maximum = Maximum -Minimum = Minimum -Selection = Selection -Increment = Increment -Page_Increment = Page Increment -Thumb = Thumb -Tree_With_Images = Tree With Images -Dialog_Type = Dialog Type -Create_Dialog = Create Dialog -Button_Styles = Button Styles -Icon_Styles = Icon Styles -Modal_Styles = Modal Styles -File_Dialog_Styles = File Dialog Styles -Item_Styles = Item Styles -Dialog_Result = Dialog Result -ColorDialog = ColorDialog -DirectoryDialog = DirectoryDialog -FileDialog = FileDialog -FontDialog = FontDialog -PrintDialog = PrintDialog -MessageBox = MessageBox -Multi_line = A multi line text widget. -Example_string = The quick brown fox jumps over the lazy dog. -Header_Visible = Header Visible -Lines_Visible = Lines Visible -Locked = Locked -Node_1 = Node 1 -Node_2 = Node 2 -Node_3 = Node 3 -Node_4 = Node 4 -Node_1_1 = Node 1.1 -Node_2_1 = Node 2.1 -Node_3_1 = Node 3.1 -Node_2_2 = Node 2.2 -Node_2_2_1 = Node 2.2.1 -Parent = Parent -No_Parent = No Parent -Decoration_Styles = Decoration Styles -Create_Shell = Create Shell -Close_All_Shells = Close All Shells -Push = Push -Radio = Radio -Check = Check -Drop_Down = Drop Down -Images_failed = Warning: Failed to load images -readme_txt = readme.txt -Index = Index: -Title = Title: -Close = Close -Result = Result: {0} -FilterName_0 = Text Files -FilterName_1 = Batch Files -FilterName_2 = Doc Files -TableTitle_0 = Name -TableTitle_1 = Type -TableTitle_2 = Size -TableTitle_3 = Modified -TableLine0_0 = <empty> -TableLine0_1 = classes -TableLine0_2 = 0 -TableLine0_3 = today -TableLine1_0 = <empty> -TableLine1_1 = databases -TableLine1_2 = 2556 -TableLine1_3 = <empty> -TableLine2_0 = <empty> -TableLine2_1 = images -TableLine2_2 = 91571 -TableLine2_3 = yesterday -ListData0_0 = Line 1 -ListData0_1 = Line 2 -ListData0_2 = Line 3 -ListData0_3 = Line 4 -ListData0_4 = Line 5 -ListData0_5 = Line 6 -ListData0_6 = Line 7 -ListData0_7 = Line 8 -ListData0_8 = Longest Line In List -ListData1_0 = Apples -ListData1_1 = Oranges -ListData1_2 = Bananas -ListData1_3 = Grapefruit -ListData1_4 = Peaches -ListData1_5 = Kiwi -ListData1_6 = Apricots -ListData1_7 = Strawberries -ListData1_8 = The Longest String -DropDownData_0 = Apples -DropDownData_1 = Oranges -DropDownData_2 = -DropDownData_3 = Grapefruit -DropDownData_4 = Peaches -DropDownData_5 = Kiwi -DropDownData_6 = -DropDownData_7 = Strawberries -DropDownData_8 = The Longest String -Slider_and_Scale = Slider and Scale -Colors = Colors and Font -Table_Item_Colors = Index:0 Table Item Colors -Background_Color = Background Color -Foreground_Color = Foreground Color -Item_Background_Color = Item Background Color -Item_Foreground_Color = Item Foreground Color -Font = Set Font -Wrap_Text = Jack and Jill went up the hill to fetch a pail of water, \ - Jack fell down and broke his crown and Jill came tumbling after! -Foreground_Style = Foreground Style -Background_Style = Background Style -StyledText_Styles = StyledText Styles -StyledText_Style_Instructions = Select text, then style. -Bold = Bold -Fill = Horizontal Fill diff --git a/examples/org.eclipse.swt.examples/src/examples_fileviewer.properties b/examples/org.eclipse.swt.examples/src/examples_fileviewer.properties deleted file mode 100644 index 3fc373efdf..0000000000 --- a/examples/org.eclipse.swt.examples/src/examples_fileviewer.properties +++ /dev/null @@ -1,59 +0,0 @@ -Title = SWT FileViewer - {0} - -menu.File.text = &File -menu.File.Close.text = &Close -menu.File.SimulateOnly.text = Simulate File Operations -menu.Help.text = &Help -menu.Help.About.text = &About - -tool.Cut.tiptext = Cut -tool.Copy.tiptext = Copy -tool.Delete.tiptext = Delete -tool.Parent.tiptext = Parent -tool.Paste.tiptext = Paste -tool.Print.tiptext = Print -tool.Refresh.tiptext = Refresh -tool.Rename.tiptext = Rename -tool.Search.tiptext = Search - -details.AllFolders.text = All Folders -details.ContentsOf.text = Contents of ''{0}'' -details.FileSize.text = {0} bytes -details.DirNumberOfObjects.text = {0} object(s) -details.NumberOfSelectedFiles.text = {0} object(s) selected - -table.Name.title = Name -table.Size.title = Size -table.Type.title = Type -table.Modified.title = Modified - -filetype.Unknown = {0} File -filetype.None = File -filetype.Folder = Folder -filesize.KB = {0} kb - -dialog.About.title = About SWT FileViewer -dialog.About.description = SWT FileViewer\n\nVersion: 0.9\n\nRunning on: {0} - -dialog.NotImplemented.title = Not Implemented -dialog.ActionNotImplemented.description = Sorry! The action you selected has not been implemented. - -dialog.FailedCopy.title = Copy Files Error -dialog.FailedCopy.description = An error occured while trying to copy "{0}" to "{1}". - -dialog.FailedDelete.title = Delete Files Error -dialog.FailedDelete.description = An error occured while trying to delete "{0}". - -progressDialog.cancelButton.text = Cancel -progressDialog.Copy.title = Copy Files -progressDialog.Copy.description = Copying files. -progressDialog.Copy.operation = Copying... {0} -progressDialog.Move.title = Move Files -progressDialog.Move.description = Moving files. -progressDialog.Delete.operation = Deleting... {0} - -simulate.CopyFromTo.text = Simulated copy from "{0}" to "{1}". -simulate.DirectoriesCreated.text = Simulated directories created for "{0}". -simulate.Delete.text = Simulated delete of "{0}". - -error.FailedLaunch.message = Could not launch "{0}" diff --git a/examples/org.eclipse.swt.examples/src/examples_helloworld.properties b/examples/org.eclipse.swt.examples/src/examples_helloworld.properties deleted file mode 100644 index 2db6671c37..0000000000 --- a/examples/org.eclipse.swt.examples/src/examples_helloworld.properties +++ /dev/null @@ -1 +0,0 @@ -Hello_world = Hello World
\ No newline at end of file diff --git a/examples/org.eclipse.swt.examples/src/examples_hoverhelp.properties b/examples/org.eclipse.swt.examples/src/examples_hoverhelp.properties deleted file mode 100644 index b1e118e3fa..0000000000 --- a/examples/org.eclipse.swt.examples/src/examples_hoverhelp.properties +++ /dev/null @@ -1,16 +0,0 @@ -error.CouldNotLoadResources = Unable to load resources : {0} - -ToolItem.text = ToolItem {0} -ToolItem.tooltip = Tooltip for {0}. Try F1 on me. -ToolItem.help = Help text for {0}. - -TableItem.text = TableItem {0} -TableItem.tooltip = Tooltip for {0}. Try F1 on me. -TableItem.help = Help text for {0}. - -TreeItem.text = TreeItem {0} -TreeItem.tooltip = Tooltip for {0}. Try F1 on me. -TreeItem.help = Help text for {0}. - -Hello.text = Hello -Hello.tooltip = Greetings! diff --git a/examples/org.eclipse.swt.examples/src/examples_images.properties b/examples/org.eclipse.swt.examples/src/examples_images.properties deleted file mode 100644 index 3f1d7b7384..0000000000 --- a/examples/org.eclipse.swt.examples/src/examples_images.properties +++ /dev/null @@ -1,101 +0,0 @@ -Image_analyzer = Image Analyzer -None = None -White = White -Black = Black -Red = Red -Green = Green -Blue = Blue -X_scale = X Scale -Y_scale = Y Scale -Alpha_K = Alpha-K -Display = Display -Incremental = Incremental -Transparent = Transparent -Transparent_lc = transparent -Mask = Mask -Background = Background -Animation = Animation -Previous = < &Previous -Next = &Next > -Animate = &Animate -Type_initial = Type: -Type_string = Type: {0} -Type_index = Type: {0} [{1,number,integer} of {2,number,integer}] -Size_initial = Size: -Size_value = Size: {0,number,integer} x {1,number,integer} -Depth_initial = Depth: -Depth_value = Depth: {0} -Transparent_pixel_initial = Transparent pixel: -Transparent_pixel_value = Transparent pixel: {0} -Time_to_load_initial = Time to load: -Time_to_load_value = Time to load: {0} ms -Animation_size_initial = Animation size: -Animation_size_value = Animation size: {0,number,integer} x {1,number,integer} -Background_pixel_initial = Background pixel: -Background_pixel_value = Background pixel: {0} -Image_location_initial = Image location: -Image_location_value = Image location: ({0,number,integer}, {1,number,integer}) -Disposal_initial = Disposal: -Disposal_value = Disposal: {0,number,integer} ({1}) -Delay_initial = Delay: -Delay_value = Delay: {0,number,integer} ms (using {1,number,integer} ms) -Delay_used = Delay: {0,number,integer} ms -Repeats_initial = Repeats: -Repeats_value = Repeats: {0,number,integer} -Repeats_forever = Repeats: {0,number,integer} (forever) -Palette_initial = Palette: -Palette_direct = Palette: Direct -Palette_value = Palette size: {0,number,integer} -Pixel_data_initial = Pixel data: -Pixel_data_value = Pixel data: Bytes per line: {0,number,integer} \ - Scanline pad: {1,number,integer} {2} -File = &File -OpenFile = &Open File...\tCtrl+O -OpenURL = Open &URL...\tCtrl+U -Reopen = &Reopen -Save = &Save\tCtrl+S -Save_as = Save &As... -Save_mask_as = Save &Mask As... -Print = &Print\tCtrl+P -Exit = E&xit -Alpha = Alpha -OpenURLDialog = Open URL -EnterURL = Enter the URL for an image (bmp, gif, ico, jpg, jpeg, png): -All_images = All Image Files -Loading_lc = loading -Saving_lc = saving -Unknown_extension = Unknown file extension: {0}\nPlease use bmp, gif, ico, \ - jpg, jpeg, or png. -Overwrite = Overwrite {0}? -Analyzer_on = Image Analyzer on: {0} -Reloading_lc = reloading -Color_at = Image color at ({0,number,integer}, {1,number,integer}) \ - index {2,number,integer} (0x{3}) is {4} -Color_at_trans = Image color at ({0,number,integer}, {1,number,integer}) \ - index {2,number,integer} (0x{3}) is {4} (transparent) -Creating_image = Creating image # {0,number,integer} from -OK = OK -Cancel = Cancel -Stop = &Stop -Creating_from = Creating image read from -Palette_direct = Palette: Direct -Palette_size = Palette size: {0,number,integer} -Bytes_per_line = Bytes per line: -Scanline_pad = Scanline pad: -Printing_error = Printing error: -Error = Error {0} file\n{1}\n\n -Pixels_per_byte = pixels per byte -Byte_per_pixel = byte per pixel -Bytes_per_pixel = bytes per pixel -Unsupported_lc = unsupported -None_lc = none -Background_lc = background -Previous_lc = previous -Unspecified_lc = unspecified -Unknown_ac = UNKNOWN -Forever_lc = forever -Depth_info = Depth: {0,number,integer} -- {1} -One_byte = 1 byte per pixel -Multi_bytes = {0,number,integer} bytes per pixel -Multi_pixels = {0,number,integer} pixels per byte {1} -Max_length_string = Transparent pixel: -1 (none)
\ No newline at end of file diff --git a/examples/org.eclipse.swt.examples/src/examples_javaviewer.properties b/examples/org.eclipse.swt.examples/src/examples_javaviewer.properties deleted file mode 100644 index 8c589d1470..0000000000 --- a/examples/org.eclipse.swt.examples/src/examples_javaviewer.properties +++ /dev/null @@ -1,7 +0,0 @@ -Open_menuitem=&Open -Close_menuitem=&Close -File_menuitem=&File -Window_title=SWT Java Viewer -Err_file_no_exist=File {0} does not exist. -Err_file_io=IO error reading file:\n{0} -Err_file_not_found=File not found:\n{0}
\ No newline at end of file diff --git a/examples/org.eclipse.swt.examples/src/examples_layout.properties b/examples/org.eclipse.swt.examples/src/examples_layout.properties deleted file mode 100644 index 5861297461..0000000000 --- a/examples/org.eclipse.swt.examples/src/examples_layout.properties +++ /dev/null @@ -1,41 +0,0 @@ -window.title = SWT Layouts - -Add = &Add -Delete = &Delete -Clear = &Clear -Children = Children -Type = Type -Layout = Layout -Preferred_Size = Preferred Size -Code = C&ode -Generated_Code = Generated Code -Parameters = Parameters -Properties = Properties -Margins = Margins -Margins_Spacing = Margins and Spacing -Columns = Columns -Attach_Edit = Edit -Left_Attachment = Edit Left Attachment -Right_Attachment = Edit Right Attachment -Top_Attachment = Edit Top Attachment -Bottom_Attachment = Edit Bottom Attachment -Position = Position -Control = Control -Offset = Offset [+/-] -Item = Item {0} -Combo_Index = Combo {0} -Group_Index = Group {0} -Label_Index = Label {0} -Button_Index = Button {0} -StyledText_Index = StyledText {0} -Text_Index = Text {0} -OK = OK -Cancel = Cancel -Edit = &Edit -Select_All = Select &All\tCtrl+A -Copy = &Copy\tCtrl+C -Exit = E&xit -Name_Title = Enter Names -Name_Label = Enter names for your controls -Invalid_Name = Invalid Name - Please enter valid variable names for your controls -Default = Default
\ No newline at end of file diff --git a/examples/org.eclipse.swt.examples/src/examples_texteditor.properties b/examples/org.eclipse.swt.examples/src/examples_texteditor.properties deleted file mode 100644 index e53ce09e38..0000000000 --- a/examples/org.eclipse.swt.examples/src/examples_texteditor.properties +++ /dev/null @@ -1,6 +0,0 @@ -Cut_menuitem=Cu&t\tCtrl+X -Copy_menuitem=&Copy\tCtrl+C -Paste_menuitem=&Paste\tCtrl+V -Window_title=SWT Text Editor -Font_menuitem=Set &Font... -Edit_menuitem=&Edit
\ No newline at end of file diff --git a/examples/org.eclipse.swt.examples/src/import.properties b/examples/org.eclipse.swt.examples/src/import.properties deleted file mode 100644 index 97c82204c2..0000000000 --- a/examples/org.eclipse.swt.examples/src/import.properties +++ /dev/null @@ -1,16 +0,0 @@ -# Persist project settings for later import -natures = org.eclipse.jdt.core.javanature; org.eclipse.pde.PluginNature -builders = org.eclipse.jdt.core.javabuilder; org.eclipse.pde.ManifestBuilder; org.eclipse.pde.SchemaBuilder -var.ECLIPSE_PLUGINS = <<ECLIPSE_PLUGINS>> -vmargs.org/eclipse/swt/examples/addressbook/AddressBook.java%AddressBook = "-Djava.library.path=<<SWT_LIBRARY_PATH>>" -vmargs.org/eclipse/swt/examples/controlexample/ControlExample.java%ControlExample = "-Djava.library.path=<<SWT_LIBRARY_PATH>>" -vmargs.org/eclipse/swt/examples/fileviewer/FileViewer.java%FileViewer = "-Djava.library.path=<<SWT_LIBRARY_PATH>>" -vmargs.org/eclipse/swt/examples/helloworld/HelloWorld1.java%HelloWorld1 = "-Djava.library.path=<<SWT_LIBRARY_PATH>>" -vmargs.org/eclipse/swt/examples/helloworld/HelloWorld2.java%HelloWorld2 = "-Djava.library.path=<<SWT_LIBRARY_PATH>>" -vmargs.org/eclipse/swt/examples/helloworld/HelloWorld3.java%HelloWorld3 = "-Djava.library.path=<<SWT_LIBRARY_PATH>>" -vmargs.org/eclipse/swt/examples/helloworld/HelloWorld4.java%HelloWorld4 = "-Djava.library.path=<<SWT_LIBRARY_PATH>>" -vmargs.org/eclipse/swt/examples/helloworld/HelloWorld5.java%HelloWorld5 = "-Djava.library.path=<<SWT_LIBRARY_PATH>>" -vmargs.org/eclipse/swt/examples/hoverhelp/HoverHelp.java%HoverHelp = "-Djava.library.path=<<SWT_LIBRARY_PATH>>" -vmargs.org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java%ImageAnalyzer = "-Djava.library.path=<<SWT_LIBRARY_PATH>>" -vmargs.org/eclipse/swt/examples/javaviewer/JavaViewer.java%JavaViewer = "-Djava.library.path=<<SWT_LIBRARY_PATH>>" -vmargs.org/eclipse/swt/examples/texteditor/TextEditor.java%TextEditor = "-Djava.library.path=<<SWT_LIBRARY_PATH>>" diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/AddressBook.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/AddressBook.java deleted file mode 100755 index 33697edfdf..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/AddressBook.java +++ /dev/null @@ -1,857 +0,0 @@ -package org.eclipse.swt.examples.addressbook;
-
-/*
- * Copyright (c) 2000, 2002 IBM Corp. All rights reserved. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-/* Imports */
-import java.io.*;
-import java.util.*;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * AddressBookExample is an example that uses <code>org.eclipse.swt</code>
- * libraries to implement a simple address book. This application has
- * save, load, sorting, and searching functions common
- * to basic address books.
- */
-public class AddressBook {
-
- private static ResourceBundle resAddressBook = ResourceBundle.getBundle("examples_addressbook");
- private Shell shell;
-
- private Table table;
- private SearchDialog searchDialog;
-
- private File file;
- private boolean isModified;
-
- private String[] copyBuffer;
-
- private static final String DELIMITER = "\t";
- private static final String[] columnNames = {resAddressBook.getString("Last_name"),
- resAddressBook.getString("First_name"),
- resAddressBook.getString("Business_phone"),
- resAddressBook.getString("Home_phone"),
- resAddressBook.getString("Email"),
- resAddressBook.getString("Fax")};
-
-public static void main(String[] args) {
- Display display = new Display();
- AddressBook application = new AddressBook();
- Shell shell = application.open(display);
- while(!shell.isDisposed()){
- if(!display.readAndDispatch())
- display.sleep();
- }
- display.dispose();
-}
-public Shell open(Display display) {
- shell = new Shell(display);
- shell.setLayout(new FillLayout());
- shell.addShellListener(new ShellAdapter() {
- public void shellClosed(ShellEvent e) {
- e.doit = closeAddressBook();
- }
- });
-
- createMenuBar();
-
- searchDialog = new SearchDialog(shell);
- searchDialog.setSearchAreaNames(columnNames);
- searchDialog.setSearchAreaLabel(resAddressBook.getString("Column"));
- searchDialog.addFindListener(new FindListener () {
- public boolean find() {
- return findEntry();
- }
- });
-
- table = new Table(shell, SWT.SINGLE | SWT.BORDER | SWT.FULL_SELECTION);
- table.setHeaderVisible(true);
- table.setMenu(createPopUpMenu());
- table.addSelectionListener(new SelectionAdapter() {
- public void widgetDefaultSelected(SelectionEvent e) {
- TableItem[] items = table.getSelection();
- if (items.length > 0) editEntry(items[0]);
- }
- });
- for(int i = 0; i < columnNames.length; i++) {
- TableColumn column = new TableColumn(table, SWT.NONE);
- column.setText(columnNames[i]);
- column.setWidth(150);
- final int columnIndex = i;
- column.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- sort(columnIndex);
- }
- });
- }
-
- newAddressBook();
-
- shell.setSize(table.computeSize(SWT.DEFAULT, SWT.DEFAULT).x, 300);
- shell.open();
- return shell;
-}
-
-private boolean closeAddressBook() {
- if(isModified) {
- //ask user if they want to save current address book
- MessageBox box = new MessageBox(shell, SWT.ICON_WARNING | SWT.YES | SWT.NO | SWT.CANCEL);
- box.setText(shell.getText());
- box.setMessage(resAddressBook.getString("Close_save"));
-
- int choice = box.open();
- if(choice == SWT.CANCEL) {
- return false;
- } else if(choice == SWT.YES) {
- if (!save()) return false;
- }
- }
-
- TableItem[] items = table.getItems();
- for (int i = 0; i < items.length; i ++) {
- items[i].dispose();
- }
-
- return true;
-}
-/**
- * Creates the menu at the top of the shell where most
- * of the programs functionality is accessed.
- *
- * @return The <code>Menu</code> widget that was created
- */
-private Menu createMenuBar() {
- Menu menuBar = new Menu(shell, SWT.BAR);
- shell.setMenuBar(menuBar);
-
- //create each header and subMenu for the menuBar
- createFileMenu(menuBar);
- createEditMenu(menuBar);
- createSearchMenu(menuBar);
- createHelpMenu(menuBar);
-
- return menuBar;
-}
-
-/**
- * Converts an encoded <code>String</code> to a String array representing a table entry.
- */
-private String[] decodeLine(String line) {
- if(line == null) return null;
-
- String[] parsedLine = new String[table.getColumnCount()];
- for(int i = 0; i < parsedLine.length - 1; i++) {
- String newString = "";
- int index = line.indexOf(DELIMITER);
- if (index > -1) {
- parsedLine[i] = line.substring(0, index);
- line = line.substring(index + DELIMITER.length(), line.length());
- } else {
- return null;
- }
- }
-
- if (line.indexOf(DELIMITER) != -1) return null;
-
- parsedLine[parsedLine.length - 1] = line;
-
- return parsedLine;
-}
-private void displayError(String msg) {
- MessageBox box = new MessageBox(shell, SWT.ICON_ERROR);
- box.setMessage(msg);
- box.open();
-}
-private void editEntry(TableItem item) {
- DataEntryDialog dialog = new DataEntryDialog(shell);
- dialog.setLabels(columnNames);
- String[] values = new String[table.getColumnCount()];
- for (int i = 0; i < values.length; i++) {
- values[i] = item.getText(i);
- }
- dialog.setValues(values);
- values = dialog.open();
- if (values != null) {
- item.setText(values);
- isModified = true;
- }
-}
-private String encodeLine(String[] tableItems) {
- String line = "";
- for (int i = 0; i < tableItems.length - 1; i++) {
- line += tableItems[i] + DELIMITER;
- }
- line += tableItems[tableItems.length - 1] + "\n";
-
- return line;
-}
-private boolean findEntry() {
- Cursor waitCursor = new Cursor(shell.getDisplay(), SWT.CURSOR_WAIT);
- shell.setCursor(waitCursor);
-
- boolean matchCase = searchDialog.getMatchCase();
- boolean matchWord = searchDialog.getMatchWord();
- String searchString = searchDialog.getSearchString();
- int column = searchDialog.getSelectedSearchArea();
-
- searchString = matchCase ? searchString : searchString.toLowerCase();
-
- boolean found = false;
- if (searchDialog.getSearchDown()) {
- for(int i = table.getSelectionIndex() + 1; i < table.getItemCount(); i++) {
- if (found = findMatch(searchString, table.getItem(i), column, matchWord, matchCase)){
- table.setSelection(i);
- break;
- }
- }
- } else {
- for(int i = table.getSelectionIndex() - 1; i > -1; i--) {
- if (found = findMatch(searchString, table.getItem(i), column, matchWord, matchCase)){
- table.setSelection(i);
- break;
- }
- }
- }
-
- shell.setCursor(null);
- if (waitCursor != null)
- waitCursor.dispose();
-
- return found;
-}
-private boolean findMatch(String searchString, TableItem item, int column, boolean matchWord, boolean matchCase) {
-
- String tableText = matchCase ? item.getText(column) : item.getText(column).toLowerCase();
- if (matchWord) {
- if (tableText != null && tableText.equals(searchString)) {
- return true;
- }
-
- } else {
- if(tableText!= null && tableText.indexOf(searchString) != -1) {
- return true;
- }
- }
- return false;
-}
-private void newAddressBook() {
- shell.setText(resAddressBook.getString("Title_bar") + resAddressBook.getString("New_title"));
- file = null;
- isModified = false;
-}
-private void newEntry() {
- DataEntryDialog dialog = new DataEntryDialog(shell);
- dialog.setLabels(columnNames);
- String[] data = dialog.open();
- if (data != null) {
- TableItem item = new TableItem(table, SWT.NONE);
- item.setText(data);
- isModified = true;
- }
-}
-
-private void openAddressBook() {
- FileDialog fileDialog = new FileDialog(shell, SWT.OPEN);
-
- fileDialog.setFilterExtensions(new String[] {"*.adr;", "*.*"});
- fileDialog.setFilterNames(new String[] {resAddressBook.getString("Book_filter_name") + " (*.adr)",
- resAddressBook.getString("All_filter_name") + " (*.*)"});
- fileDialog.open();
- String name = fileDialog.getFileName();
-
- if(name == null) return;
-
- File file = new File(fileDialog.getFilterPath(), name);
- if (!file.exists()) {
- displayError(resAddressBook.getString("File")+file.getName()+" "+resAddressBook.getString("Does_not_exist"));
- return;
- }
-
- Cursor waitCursor = new Cursor(shell.getDisplay(), SWT.CURSOR_WAIT);
- shell.setCursor(waitCursor);
-
- FileReader fileReader = null;
- BufferedReader bufferedReader = null;
- String[] data = new String[0];
- try {
- fileReader = new FileReader(file.getAbsolutePath());
- bufferedReader = new BufferedReader(fileReader);
- String nextLine = bufferedReader.readLine();
- while (nextLine != null){
- String[] newData = new String[data.length + 1];
- System.arraycopy(data, 0, newData, 0, data.length);
- newData[data.length] = nextLine;
- data = newData;
- nextLine = bufferedReader.readLine();
- }
- } catch(FileNotFoundException e) {
- displayError(resAddressBook.getString("File_not_found") + "\n" + file.getName());
- return;
- } catch (IOException e ) {
- displayError(resAddressBook.getString("IO_error_read") + "\n" + file.getName());
- return;
- } finally {
-
- shell.setCursor(null);
- waitCursor.dispose();
-
- if(fileReader != null) {
- try {
- fileReader.close();
- } catch(IOException e) {
- displayError(resAddressBook.getString("IO_error_close") + "\n" + file.getName());
- return;
- }
- }
- }
-
- String[][] tableInfo = new String[data.length][table.getColumnCount()];
- for (int i = 0; i < data.length; i++) {
- tableInfo[i] = decodeLine(data[i]);
- }
-
- Arrays.sort(tableInfo, new RowComparator(0));
-
- for (int i = 0; i < tableInfo.length; i++) {
- TableItem item = new TableItem(table, SWT.NONE);
- item.setText(tableInfo[i]);
- }
- shell.setText(resAddressBook.getString("Title_bar")+fileDialog.getFileName());
- isModified = false;
- this.file = file;
-}
-private boolean save() {
- if(file == null) return saveAs();
-
- Cursor waitCursor = new Cursor(shell.getDisplay(), SWT.CURSOR_WAIT);
- shell.setCursor(waitCursor);
-
- TableItem[] items = table.getItems();
- String[] lines = new String[items.length];
- for(int i = 0; i < items.length; i++) {
- String[] itemText = new String[table.getColumnCount()];
- for (int j = 0; j < itemText.length; j++) {
- itemText[j] = items[i].getText(j);
- }
- lines[i] = encodeLine(itemText);
- }
-
- FileWriter fileWriter = null;
- try {
- fileWriter = new FileWriter(file.getAbsolutePath(), false);
- for (int i = 0; i < lines.length; i++) {
- fileWriter.write(lines[i]);
- }
- } catch(FileNotFoundException e) {
- displayError(resAddressBook.getString("File_not_found") + "\n" + file.getName());
- return false;
- } catch(IOException e ) {
- displayError(resAddressBook.getString("IO_error_write") + "\n" + file.getName());
- return false;
- } finally {
- shell.setCursor(null);
- waitCursor.dispose();
-
- if(fileWriter != null) {
- try {
- fileWriter.close();
- } catch(IOException e) {
- displayError(resAddressBook.getString("IO_error_close") + "\n" + file.getName());
- return false;
- }
- }
- }
-
- shell.setText(resAddressBook.getString("Title_bar")+file.getName());
- isModified = false;
- return true;
-}
-private boolean saveAs() {
-
- FileDialog saveDialog = new FileDialog(shell, SWT.SAVE);
- saveDialog.setFilterExtensions(new String[] {"*.adr;", "*.*"});
- saveDialog.setFilterNames(new String[] {"Address Books (*.adr)", "All Files "});
-
- saveDialog.open();
- String name = saveDialog.getFileName();
-
- if(name.equals("")) return false;
-
- if(name.indexOf(".adr") != name.length() - 4) {
- name += ".adr";
- }
-
- File file = new File(saveDialog.getFilterPath(), name);
- if(file.exists()) {
- MessageBox box = new MessageBox(shell, SWT.ICON_WARNING | SWT.YES | SWT.NO);
- box.setText(resAddressBook.getString("Save_as_title"));
- box.setMessage(resAddressBook.getString("File") + file.getName()+" "+resAddressBook.getString("Query_overwrite"));
- if(box.open() != SWT.YES) {
- return false;
- }
- }
- this.file = file;
- return save();
-}
-private void sort(int column) {
- if(table.getItemCount() <= 1) return;
-
- TableItem[] items = table.getItems();
- String[][] data = new String[items.length][table.getColumnCount()];
- for(int i = 0; i < items.length; i++) {
- for(int j = 0; j < table.getColumnCount(); j++) {
- data[i][j] = items[i].getText(j);
- }
- }
-
- Arrays.sort(data, new RowComparator(column));
-
- for (int i = 0; i < data.length; i++) {
- items[i].setText(data[i]);
- }
-
-}
-/**
- * Creates all the items located in the File submenu and
- * associate all the menu items with their appropriate
- * functions.
- *
- * @param menuBar Menu
- * the <code>Menu</code> that file contain
- * the File submenu.
- */
-private void createFileMenu(Menu menuBar) {
- //File menu.
- MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
- item.setText(resAddressBook.getString("File_menu_title"));
- Menu menu = new Menu(shell, SWT.DROP_DOWN);
- item.setMenu(menu);
- /**
- * Adds a listener to handle enabling and disabling
- * some items in the Edit submenu.
- */
- menu.addMenuListener(new MenuAdapter() {
- public void menuShown(MenuEvent e) {
- Menu menu = (Menu)e.widget;
- MenuItem[] items = menu.getItems();
- items[1].setEnabled(table.getSelectionCount() != 0); // edit contact
- items[5].setEnabled((file != null) && isModified); // save
- items[6].setEnabled(table.getItemCount() != 0); // save as
- }
- });
-
-
- //File -> New Contact
- MenuItem subItem = new MenuItem(menu, SWT.NULL);
- subItem.setText(resAddressBook.getString("New_contact"));
- subItem.setAccelerator(SWT.CTRL + 'N');
- subItem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- newEntry();
- }
- });
- subItem = new MenuItem(menu, SWT.NULL);
- subItem.setText(resAddressBook.getString("Edit_contact"));
- subItem.setAccelerator(SWT.CTRL + 'E');
- subItem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- TableItem[] items = table.getSelection();
- if (items.length == 0) return;
- editEntry(items[0]);
- }
- });
-
-
- new MenuItem(menu, SWT.SEPARATOR);
-
- //File -> New Address Book
- subItem = new MenuItem(menu, SWT.NULL);
- subItem.setText(resAddressBook.getString("New_address_book"));
- subItem.setAccelerator(SWT.CTRL + 'B');
- subItem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- closeAddressBook();
- newAddressBook();
- }
- });
-
- //File -> Open
- subItem = new MenuItem(menu, SWT.NULL);
- subItem.setText(resAddressBook.getString("Open_address_book"));
- subItem.setAccelerator(SWT.CTRL + 'O');
- subItem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- closeAddressBook();
- openAddressBook();
- }
- });
-
- //File -> Save.
- subItem = new MenuItem(menu, SWT.NULL);
- subItem.setText(resAddressBook.getString("Save_address_book"));
- subItem.setAccelerator(SWT.CTRL + 'S');
- subItem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- save();
- }
- });
-
- //File -> Save As.
- subItem = new MenuItem(menu, SWT.NULL);
- subItem.setText(resAddressBook.getString("Save_book_as"));
- subItem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- saveAs();
- }
- });
-
-
- new MenuItem(menu, SWT.SEPARATOR);
-
- //File -> Exit.
- subItem = new MenuItem(menu, SWT.NULL);
- subItem.setText(resAddressBook.getString("Exit"));
- subItem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- shell.close();
- }
- });
-}
-
-/**
- * Creates all the items located in the Edit submenu and
- * associate all the menu items with their appropriate
- * functions.
- *
- * @param menuBar Menu
- * the <code>Menu</code> that file contain
- * the Edit submenu.
- *
- * @see #createSortMenu()
- */
-private MenuItem createEditMenu(Menu menuBar) {
- //Edit menu.
- MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
- item.setText(resAddressBook.getString("Edit_menu_title"));
- Menu menu = new Menu(shell, SWT.DROP_DOWN);
- item.setMenu(menu);
-
- /**
- * Add a listener to handle enabling and disabling
- * some items in the Edit submenu.
- */
- menu.addMenuListener(new MenuAdapter() {
- public void menuShown(MenuEvent e) {
- Menu menu = (Menu)e.widget;
- MenuItem[] items = menu.getItems();
- int count = table.getSelectionCount();
- items[0].setEnabled(count != 0); // edit
- items[1].setEnabled(count != 0); // copy
- items[2].setEnabled(copyBuffer != null); // paste
- items[3].setEnabled(count != 0); // delete
- items[5].setEnabled(table.getItemCount() != 0); // sort
- }
- });
-
- //Edit -> Edit
- MenuItem subItem = new MenuItem(menu, SWT.CASCADE);
- subItem.setText(resAddressBook.getString("Edit"));
- subItem.setAccelerator(SWT.CTRL + 'E');
- subItem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- TableItem[] items = table.getSelection();
- if (items.length == 0) return;
- editEntry(items[0]);
- }
- });
-
- //Edit -> Copy
- subItem = new MenuItem(menu, SWT.NULL);
- subItem.setText(resAddressBook.getString("Copy"));
- subItem.setAccelerator(SWT.CTRL + 'C');
- subItem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- TableItem[] items = table.getSelection();
- if (items.length == 0) return;
- copyBuffer = new String[table.getColumnCount()];
- for (int i = 0; i < copyBuffer.length; i++) {
- copyBuffer[i] = items[0].getText(i);
- }
- }
- });
-
- //Edit -> Paste
- subItem = new MenuItem(menu, SWT.NULL);
- subItem.setText(resAddressBook.getString("Paste"));
- subItem.setAccelerator(SWT.CTRL + 'V');
- subItem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- if (copyBuffer == null) return;
- TableItem item = new TableItem(table, SWT.NONE);
- item.setText(copyBuffer);
- isModified = true;
- }
- });
-
- //Edit -> Delete
- subItem = new MenuItem(menu, SWT.NULL);
- subItem.setText(resAddressBook.getString("Delete"));
- subItem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- TableItem[] items = table.getSelection();
- if (items.length == 0) return;
- items[0].dispose();
- isModified = true; }
- });
-
- new MenuItem(menu, SWT.SEPARATOR);
-
- //Edit -> Sort(Cascade)
- subItem = new MenuItem(menu, SWT.CASCADE);
- subItem.setText(resAddressBook.getString("Sort"));
- Menu submenu = createSortMenu();
- subItem.setMenu(submenu);
-
- return item;
-
-}
-
-/**
- * Creates all the items located in the Sort cascading submenu and
- * associate all the menu items with their appropriate
- * functions.
- *
- * @return Menu
- * The cascading menu with all the sort menu items on it.
- */
-private Menu createSortMenu() {
- Menu submenu = new Menu(shell, SWT.DROP_DOWN);
- MenuItem subitem;
- for(int i = 0; i < columnNames.length; i++) {
- subitem = new MenuItem (submenu, SWT.NULL);
- subitem.setText(columnNames [i]);
- final int column = i;
- subitem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- sort(column);
- }
- });
-
- }
-
- return submenu;
-}
-
-/**
- * Creates all the items located in the Search submenu and
- * associate all the menu items with their appropriate
- * functions.
- *
- * @param menuBar Menu
- * the <code>Menu</code> that file contain
- * the Search submenu.
- */
-private void createSearchMenu(Menu menuBar) {
- //Search menu.
- MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
- item.setText(resAddressBook.getString("Search_menu_title"));
- Menu searchMenu = new Menu(shell, SWT.DROP_DOWN);
- item.setMenu(searchMenu);
-
- //Search -> Find...
- item = new MenuItem(searchMenu, SWT.NULL);
- item.setText(resAddressBook.getString("Find"));
- item.setAccelerator(SWT.CTRL + 'F');
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- searchDialog.setMatchCase(false);
- searchDialog.setMatchWord(false);
- searchDialog.setSearchDown(true);
- searchDialog.setSearchString("");
- searchDialog.setSelectedSearchArea(0);
- searchDialog.open();
- }
- });
-
- //Search -> Find Next
- item = new MenuItem(searchMenu, SWT.NULL);
- item.setText(resAddressBook.getString("Find_next"));
- item.setAccelerator(SWT.F3);
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- searchDialog.open();
- }
- });
-}
-
-/**
- * Creates all items located in the popup menu and associates
- * all the menu items with their appropriate functions.
- *
- * @return Menu
- * The created popup menu.
- */
-private Menu createPopUpMenu() {
- Menu popUpMenu = new Menu(shell, SWT.POP_UP);
-
- /**
- * Adds a listener to handle enabling and disabling
- * some items in the Edit submenu.
- */
- popUpMenu.addMenuListener(new MenuAdapter() {
- public void menuShown(MenuEvent e) {
- Menu menu = (Menu)e.widget;
- MenuItem[] items = menu.getItems();
- int count = table.getSelectionCount();
- items[2].setEnabled(count != 0); // edit
- items[3].setEnabled(count != 0); // copy
- items[4].setEnabled(copyBuffer != null); // paste
- items[5].setEnabled(count != 0); // delete
- items[7].setEnabled(table.getItemCount() != 0); // find
- }
- });
-
- //New
- MenuItem item = new MenuItem(popUpMenu, SWT.CASCADE);
- item.setText(resAddressBook.getString("Pop_up_new"));
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- newEntry();
- }
- });
-
- new MenuItem(popUpMenu, SWT.SEPARATOR);
-
- //Edit
- item = new MenuItem(popUpMenu, SWT.CASCADE);
- item.setText(resAddressBook.getString("Pop_up_edit"));
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- TableItem[] items = table.getSelection();
- if (items.length == 0) return;
- editEntry(items[0]);
- }
- });
-
- //Copy
- item = new MenuItem(popUpMenu, SWT.CASCADE);
- item.setText(resAddressBook.getString("Pop_up_copy"));
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- TableItem[] items = table.getSelection();
- if (items.length == 0) return;
- copyBuffer = new String[table.getColumnCount()];
- for (int i = 0; i < copyBuffer.length; i++) {
- copyBuffer[i] = items[0].getText(i);
- }
- }
- });
-
- //Paste
- item = new MenuItem(popUpMenu, SWT.CASCADE);
- item.setText(resAddressBook.getString("Pop_up_paste"));
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- if (copyBuffer == null) return;
- TableItem item = new TableItem(table, SWT.NONE);
- item.setText(copyBuffer);
- isModified = true;
- }
- });
-
- //Delete
- item = new MenuItem(popUpMenu, SWT.CASCADE);
- item.setText(resAddressBook.getString("Pop_up_delete"));
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- TableItem[] items = table.getSelection();
- if (items.length == 0) return;
- items[0].dispose();
- isModified = true;
- }
- });
-
- new MenuItem(popUpMenu, SWT.SEPARATOR);
-
- //Find...
- item = new MenuItem(popUpMenu, SWT.NULL);
- item.setText(resAddressBook.getString("Pop_up_find"));
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- searchDialog.open();
- }
- });
-
- return popUpMenu;
-}
-
-/**
- * Creates all the items located in the Help submenu and
- * associate all the menu items with their appropriate
- * functions.
- *
- * @param menuBar Menu
- * the <code>Menu</code> that file contain
- * the Help submenu.
- */
-private void createHelpMenu(Menu menuBar) {
-
- //Help Menu
- MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
- item.setText(resAddressBook.getString("Help_menu_title"));
- Menu menu = new Menu(shell, SWT.DROP_DOWN);
- item.setMenu(menu);
-
- //Help -> About Text Editor
- MenuItem subItem = new MenuItem(menu, SWT.NULL);
- subItem.setText(resAddressBook.getString("About"));
- subItem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- MessageBox box = new MessageBox(shell, SWT.NONE);
- box.setText(resAddressBook.getString("About_1") + shell.getText());
- box.setMessage(shell.getText() + resAddressBook.getString("About_2"));
- box.open();
- }
- });
-}
-
-/**
- * To compare entries (rows) by the given column
- */
-private class RowComparator implements Comparator {
- private int column;
-
- /**
- * Constructs a RowComparator given the column index
- * @param col The index (starting at zero) of the column
- */
- public RowComparator(int col) {
- column = col;
- }
-
- /**
- * Compares two rows (type String[]) using the specified
- * column entry.
- * @param obj1 First row to compare
- * @param obj2 Second row to compare
- * @return negative if obj1 less than obj2, positive if
- * obj1 greater than obj2, and zero if equal.
- */
- public int compare(Object obj1, Object obj2) {
- String[] row1 = (String[])obj1;
- String[] row2 = (String[])obj2;
-
- return row1[column].compareTo(row2[column]);
- }
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/DataEntryDialog.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/DataEntryDialog.java deleted file mode 100755 index 6be9f908bc..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/DataEntryDialog.java +++ /dev/null @@ -1,159 +0,0 @@ -package org.eclipse.swt.examples.addressbook;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-/* Imports */
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import java.util.ResourceBundle;
-
-/**
- * DataEntryDialog class uses <code>org.eclipse.swt</code>
- * libraries to implement a dialog that accepts basic personal information that
- * is added to a <code>Table</code> widget or edits a <code>TableItem</code> entry
- * to represent the entered data.
- */
-public class DataEntryDialog {
-
- private static ResourceBundle resAddressBook = ResourceBundle.getBundle("examples_addressbook");
-
- Shell shell;
- String[] values;
- String[] labels;
-
-public DataEntryDialog(Shell parent) {
- shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.PRIMARY_MODAL);
- shell.setLayout(new GridLayout());
-}
-
-private void addTextListener(final Text text) {
- text.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e){
- Integer index = (Integer)(text.getData("index"));
- values[index.intValue()] = text.getText();
- }
- });
-}
-private void createControlButtons() {
- Composite composite = new Composite(shell, SWT.NULL);
- composite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER));
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- composite.setLayout(layout);
-
- Button okButton = new Button(composite, SWT.PUSH);
- okButton.setText(resAddressBook.getString("OK"));
- okButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- shell.close();
- }
- });
-
- Button cancelButton = new Button(composite, SWT.PUSH);
- cancelButton.setText(resAddressBook.getString("Cancel"));
- cancelButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- values = null;
- shell.close();
- }
- });
-
- shell.setDefaultButton(okButton);
-}
-
-private void createTextWidgets() {
- if (labels == null) return;
-
- Composite composite = new Composite(shell, SWT.NULL);
- composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- GridLayout layout= new GridLayout();
- layout.numColumns = 2;
- composite.setLayout(layout);
-
- if (values == null)
- values = new String[labels.length];
-
- for (int i = 0; i < labels.length; i++) {
- Label label = new Label(composite, SWT.RIGHT);
- label.setText(labels[i]);
- Text text = new Text(composite, SWT.BORDER);
- GridData gridData = new GridData();
- gridData.widthHint = 400;
- text.setLayoutData(gridData);
- if (values[i] != null) {
- text.setText(values[i]);
- }
- text.setData("index", new Integer(i));
- addTextListener(text);
- }
-}
-
-public String[] getLabels() {
- return labels;
-}
-public String getTitle() {
- return shell.getText();
-}
-/**
- * Returns the contents of the <code>Text</code> widgets in the dialog in a
- * <code>String</code> array.
- *
- * @return String[]
- * The contents of the text widgets of the dialog.
- * May return null if all text widgets are empty.
- */
-public String[] getValues() {
- return values;
-}
-/**
- * Opens the dialog in the given state. Sets <code>Text</code> widget contents
- * and dialog behaviour accordingly.
- *
- * @param dialogState int
- * The state the dialog should be opened in.
- */
-public String[] open() {
- createTextWidgets();
- createControlButtons();
- shell.pack();
- shell.open();
- Display display = shell.getDisplay();
- while(!shell.isDisposed()){
- if(!display.readAndDispatch())
- display.sleep();
- }
-
- return getValues();
-}
-public void setLabels(String[] labels) {
- this.labels = labels;
-}
-public void setTitle(String title) {
- shell.setText(title);
-}
-/**
- * Sets the values of the <code>Text</code> widgets of the dialog to
- * the values supplied in the parameter array.
- *
- * @param itemInfo String[]
- * The values to which the dialog contents will be set.
- */
-public void setValues(String[] itemInfo) {
- if (labels == null) return;
-
- if (values == null)
- values = new String[labels.length];
-
- int numItems = Math.min(values.length, itemInfo.length);
- for(int i = 0; i < numItems; i++) {
- values[i] = itemInfo[i];
- }
-}
-} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/FindListener.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/FindListener.java deleted file mode 100755 index ab0f020fa6..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/FindListener.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.eclipse.swt.examples.addressbook;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-public interface FindListener {
-
-public boolean find();
-
-} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/SearchDialog.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/SearchDialog.java deleted file mode 100755 index 4835dc06af..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/SearchDialog.java +++ /dev/null @@ -1,198 +0,0 @@ -package org.eclipse.swt.examples.addressbook;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-/* Imports */
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-import java.util.ResourceBundle;
-
-/**
- * SearchDialog is a simple class that uses <code>org.eclipse.swt</code>
- * libraries to implement a basic search dialog.
- */
-public class SearchDialog {
-
- private static ResourceBundle resAddressBook = ResourceBundle.getBundle("examples_addressbook");
-
- Shell shell;
- Text searchText;
- Combo searchArea;
- Label searchAreaLabel;
- Button matchCase;
- Button matchWord;
- Button findButton;
- Button down;
- FindListener findHandler;
-
-/**
- * Class constructor that sets the parent shell and the table widget that
- * the dialog will search.
- *
- * @param parent Shell
- * The shell that is the parent of the dialog.
- */
-public SearchDialog(Shell parent) {
- shell = new Shell(parent, SWT.CLOSE | SWT.BORDER | SWT.TITLE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- shell.setLayout(layout);
- shell.setText(resAddressBook.getString("Search_dialog_title"));
- shell.addShellListener(new ShellAdapter(){
- public void shellClosed(ShellEvent e) {
- // don't dispose of the shell, just hide it for later use
- e.doit = false;
- shell.setVisible(false);
- }
- });
-
- Label label = new Label(shell, SWT.LEFT);
- label.setText(resAddressBook.getString("Dialog_find_what"));
- searchText = new Text(shell, SWT.BORDER);
- GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
- gridData.widthHint = 200;
- searchText.setLayoutData(gridData);
- searchText.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- boolean enableFind = (searchText.getCharCount() != 0);
- findButton.setEnabled(enableFind);
- }
- });
-
- searchAreaLabel = new Label(shell, SWT.LEFT);
- searchArea = new Combo(shell, SWT.DROP_DOWN | SWT.READ_ONLY);
- gridData = new GridData(GridData.FILL_HORIZONTAL);
- gridData.widthHint = 200;
- searchArea.setLayoutData(gridData);
-
- matchCase = new Button(shell, SWT.CHECK);
- matchCase.setText(resAddressBook.getString("Dialog_match_case"));
- gridData = new GridData();
- gridData.horizontalSpan = 2;
- matchCase.setLayoutData(gridData);
-
- matchWord = new Button(shell, SWT.CHECK);
- matchWord.setText(resAddressBook.getString("Dialog_match_word"));
- gridData = new GridData();
- gridData.horizontalSpan = 2;
- matchWord.setLayoutData(gridData);
-
- Group direction = new Group(shell, SWT.NONE);
- gridData = new GridData();
- gridData.horizontalSpan = 2;
- direction.setLayoutData(gridData);
- direction.setLayout (new FillLayout ());
- direction.setText(resAddressBook.getString("Dialog_direction"));
-
- Button up = new Button(direction, SWT.RADIO);
- up.setText(resAddressBook.getString("Dialog_dir_up"));
- up.setSelection(false);
-
- down = new Button(direction, SWT.RADIO);
- down.setText(resAddressBook.getString("Dialog_dir_down"));
- down.setSelection(true);
-
- Composite composite = new Composite(shell, SWT.NONE);
- gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- gridData.horizontalSpan = 2;
- composite.setLayoutData(gridData);
- layout = new GridLayout();
- layout.numColumns = 2;
- layout.makeColumnsEqualWidth = true;
- composite.setLayout(layout);
-
- findButton = new Button(composite, SWT.PUSH);
- findButton.setText(resAddressBook.getString("Dialog_find"));
- findButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
- findButton.setEnabled(false);
- findButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- if (!findHandler.find()){
- MessageBox box = new MessageBox(shell, SWT.ICON_INFORMATION | SWT.OK | SWT.PRIMARY_MODAL);
- box.setText(shell.getText());
- box.setMessage(resAddressBook.getString("Cannot_find") + "\"" + searchText.getText() + "\"");
- box.open();
- }
- }
- });
-
- Button cancelButton = new Button(composite, SWT.PUSH);
- cancelButton.setText(resAddressBook.getString("Cancel"));
- cancelButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
- cancelButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- shell.setVisible(false);
- }
- });
-
- shell.pack();
-}
-public String getSearchAreaLabel(String label) {
- return searchAreaLabel.getText();
-}
-
-public String[] getsearchAreaNames() {
- return searchArea.getItems();
-}
-public boolean getMatchCase() {
- return matchCase.getSelection();
-}
-public boolean getMatchWord() {
- return matchWord.getSelection();
-}
-public String getSearchString() {
- return searchText.getText();
-}
-public boolean getSearchDown(){
- return down.getSelection();
-}
-public int getSelectedSearchArea() {
- return searchArea.getSelectionIndex();
-}
-public void open() {
- if (shell.isVisible()) {
- shell.setFocus();
- } else {
- shell.open();
- }
- searchText.setFocus();
-}
-public void setSearchAreaNames(String[] names) {
- for (int i = 0; i < names.length; i++) {
- searchArea.add(names[i]);
- }
- searchArea.select(0);
-}
-public void setSearchAreaLabel(String label) {
- searchAreaLabel.setText(label);
-}
-public void setMatchCase(boolean match) {
- matchCase.setSelection(match);
-}
-public void setMatchWord(boolean match) {
- matchWord.setSelection(match);
-}
-public void setSearchDown(boolean searchDown){
- down.setSelection(searchDown);
-}
-public void setSearchString(String searchString) {
- searchText.setText(searchString);
-}
-
-public void setSelectedSearchArea(int index) {
- searchArea.select(index);
-}
-public void addFindListener(FindListener listener) {
- this.findHandler = listener;
-}
-public void removeFindListener(FindListener listener) {
- this.findHandler = null;
-}
-} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/AlignableTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/AlignableTab.java deleted file mode 100755 index 0ae087ce9c..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/AlignableTab.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.eclipse.swt.examples.controlexample;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-/**
- * <code>AlignableTab</code> is the abstract
- * superclass of example controls that can be
- * aligned.
- */
-abstract class AlignableTab extends Tab {
-
- /* Allignment Controls */
- Button leftButton, rightButton, centerButton;
-
- /* Alignment Group */
- Group allignmentGroup;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- AlignableTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Control" group.
- */
- void createControlGroup () {
- super.createControlGroup ();
-
- /* Create the group */
- allignmentGroup = new Group (controlGroup, SWT.NULL);
- allignmentGroup.setLayout (new GridLayout ());
- allignmentGroup.setLayoutData (new GridData(GridData.HORIZONTAL_ALIGN_FILL |
- GridData.VERTICAL_ALIGN_FILL));
- allignmentGroup.setText (ControlExample.getResourceString("Alignment"));
-
- /* Create the controls */
- leftButton = new Button (allignmentGroup, SWT.RADIO);
- leftButton.setText (ControlExample.getResourceString("Left"));
- centerButton = new Button (allignmentGroup, SWT.RADIO);
- centerButton.setText(ControlExample.getResourceString("Center"));
- rightButton = new Button (allignmentGroup, SWT.RADIO);
- rightButton.setText (ControlExample.getResourceString("Right"));
-
- /* Add the listeners */
- SelectionListener selectionListener = new SelectionAdapter () {
- public void widgetSelected(SelectionEvent event) {
- if (!((Button) event.widget).getSelection ()) return;
- setExampleWidgetAlignment ();
- };
- };
- leftButton.addSelectionListener (selectionListener);
- centerButton.addSelectionListener (selectionListener);
- rightButton.addSelectionListener (selectionListener);
- }
-
- /**
- * Sets the alignment of the "Example" widgets.
- */
- abstract void setExampleWidgetAlignment ();
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- Control [] controls = getExampleWidgets ();
- if (controls.length != 0) {
- leftButton.setSelection ((controls [0].getStyle () & SWT.LEFT) != 0);
- centerButton.setSelection ((controls [0].getStyle () & SWT.CENTER) != 0);
- rightButton.setSelection ((controls [0].getStyle () & SWT.RIGHT) != 0);
- }
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ButtonTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ButtonTab.java deleted file mode 100755 index fcc841449a..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ButtonTab.java +++ /dev/null @@ -1,193 +0,0 @@ -package org.eclipse.swt.examples.controlexample;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-/**
- * <code>ButtonTab</code> is the class that
- * demonstrates SWT buttons.
- */
-class ButtonTab extends AlignableTab {
-
- /* Example widgets and groups that contain them */
- Button button1, button2, button3, button4, button5, button6;
- Group textButtonGroup, imageButtonGroup;
-
- /* Allignment widgets added to the "Control" group */
- Button upButton, downButton;
-
- /* Style widgets added to the "Style" group */
- Button pushButton, checkButton, radioButton, toggleButton, arrowButton, flatButton;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- ButtonTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Control" group.
- */
- void createControlGroup () {
- super.createControlGroup ();
-
- /* Create the controls */
- upButton = new Button (allignmentGroup, SWT.RADIO);
- upButton.setText (ControlExample.getResourceString("Up"));
- downButton = new Button (allignmentGroup, SWT.RADIO);
- downButton.setText (ControlExample.getResourceString("Down"));
-
- /* Add the listeners */
- SelectionListener selectionListener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- if (!((Button) event.widget).getSelection()) return;
- setExampleWidgetAlignment ();
- };
- };
- upButton.addSelectionListener(selectionListener);
- downButton.addSelectionListener(selectionListener);
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for text buttons */
- textButtonGroup = new Group(exampleGroup, SWT.NONE);
- GridLayout gridLayout = new GridLayout ();
- textButtonGroup.setLayout(gridLayout);
- gridLayout.numColumns = 3;
- textButtonGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- textButtonGroup.setText (ControlExample.getResourceString("Text_Buttons"));
-
- /* Create a group for the image buttons */
- imageButtonGroup = new Group(exampleGroup, SWT.NONE);
- gridLayout = new GridLayout();
- imageButtonGroup.setLayout(gridLayout);
- gridLayout.numColumns = 3;
- imageButtonGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- imageButtonGroup.setText (ControlExample.getResourceString("Image_Buttons"));
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = SWT.NONE;
- if (pushButton.getSelection()) style |= SWT.PUSH;
- if (checkButton.getSelection()) style |= SWT.CHECK;
- if (radioButton.getSelection()) style |= SWT.RADIO;
- if (toggleButton.getSelection()) style |= SWT.TOGGLE;
- if (arrowButton.getSelection()) style |= SWT.ARROW;
- if (flatButton.getSelection()) style |= SWT.FLAT;
- if (borderButton.getSelection()) style |= SWT.BORDER;
-
- /* Create the example widgets */
- button1 = new Button(textButtonGroup, style);
- button1.setText(ControlExample.getResourceString("One"));
- button2 = new Button(textButtonGroup, style);
- button2.setText(ControlExample.getResourceString("Two"));
- button3 = new Button(textButtonGroup, style);
- button3.setText(ControlExample.getResourceString("Three"));
- button4 = new Button(imageButtonGroup, style);
- button4.setImage(instance.images[ControlExample.ciClosedFolder]);
- button5 = new Button(imageButtonGroup, style);
- button5.setImage(instance.images[ControlExample.ciOpenFolder]);
- button6 = new Button(imageButtonGroup, style);
- button6.setImage(instance.images[ControlExample.ciTarget]);
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup() {
- super.createStyleGroup ();
-
- /* Create the extra widgets */
- pushButton = new Button (styleGroup, SWT.RADIO);
- pushButton.setText("SWT.PUSH");
- checkButton = new Button (styleGroup, SWT.RADIO);
- checkButton.setText ("SWT.CHECK");
- radioButton = new Button (styleGroup, SWT.RADIO);
- radioButton.setText ("SWT.RADIO");
- toggleButton = new Button (styleGroup, SWT.RADIO);
- toggleButton.setText ("SWT.TOGGLE");
- arrowButton = new Button (styleGroup, SWT.RADIO);
- arrowButton.setText ("SWT.ARROW");
- flatButton = new Button (styleGroup, SWT.CHECK);
- flatButton.setText ("SWT.FLAT");
- borderButton = new Button (styleGroup, SWT.CHECK);
- borderButton.setText ("SWT.BORDER");
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Control [] getExampleWidgets () {
- return new Control [] {button1, button2, button3, button4, button5, button6};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Button";
- }
-
- /**
- * Sets the alignment of the "Example" widgets.
- */
- void setExampleWidgetAlignment () {
- int allignment = 0;
- if (leftButton.getSelection ()) allignment = SWT.LEFT;
- if (centerButton.getSelection ()) allignment = SWT.CENTER;
- if (rightButton.getSelection ()) allignment = SWT.RIGHT;
- if (upButton.getSelection ()) allignment = SWT.UP;
- if (downButton.getSelection ()) allignment = SWT.DOWN;
- button1.setAlignment (allignment);
- button2.setAlignment (allignment);
- button3.setAlignment (allignment);
- button4.setAlignment (allignment);
- button5.setAlignment (allignment);
- button6.setAlignment (allignment);
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- if (arrowButton.getSelection ()) {
- upButton.setEnabled (true);
- centerButton.setEnabled (false);
- downButton.setEnabled (true);
- } else {
- upButton.setEnabled (false);
- centerButton.setEnabled (true);
- downButton.setEnabled (false);
- }
- upButton.setSelection ((button1.getStyle () & SWT.UP) != 0);
- downButton.setSelection ((button1.getStyle () & SWT.DOWN) != 0);
- pushButton.setSelection ((button1.getStyle () & SWT.PUSH) != 0);
- checkButton.setSelection ((button1.getStyle () & SWT.CHECK) != 0);
- radioButton.setSelection ((button1.getStyle () & SWT.RADIO) != 0);
- toggleButton.setSelection ((button1.getStyle () & SWT.TOGGLE) != 0);
- arrowButton.setSelection ((button1.getStyle () & SWT.ARROW) != 0);
- flatButton.setSelection ((button1.getStyle () & SWT.FLAT) != 0);
- borderButton.setSelection ((button1.getStyle () & SWT.BORDER) != 0);
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ComboTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ComboTab.java deleted file mode 100755 index 6c8af38278..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ComboTab.java +++ /dev/null @@ -1,114 +0,0 @@ -package org.eclipse.swt.examples.controlexample;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-
-class ComboTab extends Tab {
-
- /* Example widgets and groups that contain them */
- Combo combo1;
- Group comboGroup;
-
- /* Style widgets added to the "Style" group */
- Button dropDownButton, readOnlyButton, simpleButton;
-
- static String [] ListData = {ControlExample.getResourceString("ListData0_0"),
- ControlExample.getResourceString("ListData0_1"),
- ControlExample.getResourceString("ListData0_2"),
- ControlExample.getResourceString("ListData0_3"),
- ControlExample.getResourceString("ListData0_4"),
- ControlExample.getResourceString("ListData0_5"),
- ControlExample.getResourceString("ListData0_6"),
- ControlExample.getResourceString("ListData0_7"),
- ControlExample.getResourceString("ListData0_8")};
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- ComboTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the combo box */
- comboGroup = new Group (exampleGroup, SWT.NULL);
- comboGroup.setLayout (new GridLayout ());
- comboGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- comboGroup.setText ("Combo");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = SWT.NONE;
- if (dropDownButton.getSelection ()) style |= SWT.DROP_DOWN;
- if (readOnlyButton.getSelection ()) style |= SWT.READ_ONLY;
- if (simpleButton.getSelection ()) style |= SWT.SIMPLE;
- if (borderButton.getSelection ()) style |= SWT.BORDER;
-
- /* Create the example widgets */
- combo1 = new Combo (comboGroup, style);
- combo1.setItems (ListData);
- if (ListData.length >= 3) {
- combo1.setText(ListData [2]);
- }
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup () {
- super.createStyleGroup ();
-
- /* Create the extra widgets */
- dropDownButton = new Button (styleGroup, SWT.RADIO);
- dropDownButton.setText ("SWT.DROP_DOWN");
- simpleButton = new Button (styleGroup, SWT.RADIO);
- simpleButton.setText("SWT.SIMPLE");
- readOnlyButton = new Button (styleGroup, SWT.CHECK);
- readOnlyButton.setText ("SWT.READ_ONLY");
- borderButton = new Button (styleGroup, SWT.CHECK);
- borderButton.setText ("SWT.BORDER");
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Control [] getExampleWidgets () {
- return new Control [] {combo1};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Combo";
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- dropDownButton.setSelection ((combo1.getStyle () & SWT.DROP_DOWN) != 0);
- simpleButton.setSelection ((combo1.getStyle () & SWT.SIMPLE) != 0);
- readOnlyButton.setSelection ((combo1.getStyle () & SWT.READ_ONLY) != 0);
- borderButton.setSelection ((combo1.getStyle () & SWT.BORDER) != 0);
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ControlExample.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ControlExample.java deleted file mode 100755 index 300e4333a7..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ControlExample.java +++ /dev/null @@ -1,179 +0,0 @@ -package org.eclipse.swt.examples.controlexample;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-import java.text.*;
-import java.util.*;
-
-public class ControlExample {
- private static ResourceBundle resourceBundle =
- ResourceBundle.getBundle("examples_control");
- private ShellTab shellTab;
- private TabFolder tabFolder;
-
- static final int
- ciClosedFolder = 0,
- ciOpenFolder = 1,
- ciTarget = 2;
- static final String[] imageLocations = {
- "closedFolder.gif",
- "openFolder.gif",
- "target.gif" };
- Image images[];
-
- /**
- * Creates an instance of a ControlExample embedded inside
- * the supplied parent Composite.
- *
- * @param parent the container of the example
- */
- public ControlExample(Composite parent) {
- initResources();
- tabFolder = new TabFolder (parent, SWT.NULL);
- Tab [] tabs = new Tab [] {
- new ButtonTab (this),
- new ComboTab (this),
- new CoolBarTab (this),
- new DialogTab (this),
- new LabelTab (this),
- new ListTab (this),
- new ProgressBarTab (this),
- new SashTab (this),
- shellTab = new ShellTab(this),
- new SliderTab (this),
- new TableTab (this),
- new TextTab (this),
- new ToolBarTab (this),
- new TreeTab (this),
- };
- for (int i=0; i<tabs.length; i++) {
- TabItem item = new TabItem (tabFolder, SWT.NULL);
- item.setText (tabs [i].getTabText ());
- item.setControl (tabs [i].createTabFolderPage (tabFolder));
- }
- }
-
- /**
- * Grabs input focus.
- */
- public void setFocus() {
- tabFolder.setFocus();
- }
-
- /**
- * Disposes of all resources associated with a particular
- * instance of the ControlExample.
- */
- public void dispose() {
- /*
- * Destroy any shells that may have been created
- * by the Shells tab. When a shell is disposed,
- * all child shells are also disposed. Therefore
- * it is necessary to check for disposed shells
- * in the shells list to avoid disposing a shell
- * twice.
- */
- if (shellTab != null) shellTab.closeAllShells ();
- shellTab = null;
- tabFolder = null;
- freeResources();
- }
-
- /**
- * Invokes as a standalone program.
- */
- public static void main(String[] args) {
- Display display = new Display();
- Shell shell = new Shell(display);
- shell.setLayout(new FillLayout());
- ControlExample instance = new ControlExample(shell);
- shell.setText(getResourceString("window.title"));
- shell.open();
- while (! shell.isDisposed()) {
- if (! display.readAndDispatch()) display.sleep();
- }
- instance.dispose();
- }
-
- /**
- * Gets a string from the resource bundle.
- * We don't want to crash because of a missing String.
- * Returns the key if not found.
- */
- static String getResourceString(String key) {
- try {
- return resourceBundle.getString(key);
- } catch (MissingResourceException e) {
- return key;
- } catch (NullPointerException e) {
- return "!" + key + "!";
- }
- }
-
- /**
- * Gets a string from the resource bundle and binds it
- * with the given arguments. If the key is not found,
- * return the key.
- */
- static String getResourceString(String key, Object[] args) {
- try {
- return MessageFormat.format(getResourceString(key), args);
- } catch (MissingResourceException e) {
- return key;
- } catch (NullPointerException e) {
- return "!" + key + "!";
- }
- }
-
- /**
- * Loads the resources
- */
- private void initResources() {
- final Class clazz = ControlExample.class;
- if (resourceBundle != null) {
- try {
- if (images == null) {
- images = new Image[imageLocations.length];
-
- for (int i = 0; i < imageLocations.length; ++i) {
- ImageData source = new ImageData(clazz.getResourceAsStream(
- imageLocations[i]));
- ImageData mask = source.getTransparencyMask();
- images[i] = new Image(null, source, mask);
- }
- }
- return;
- } catch (Throwable t) {
- }
- }
- String error = (resourceBundle != null) ?
- getResourceString("error.CouldNotLoadResources") :
- "Unable to load resources";
- freeResources();
- throw new RuntimeException(error);
- }
-
- /**
- * Frees the resources
- */
- private void freeResources() {
- if (images != null) {
- for (int i = 0; i < images.length; ++i) {
- final Image image = images[i];
- if (image != null) image.dispose();
- }
- images = null;
- }
- }
-}
-
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CoolBarTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CoolBarTab.java deleted file mode 100644 index 4a64b5769c..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CoolBarTab.java +++ /dev/null @@ -1,426 +0,0 @@ -package org.eclipse.swt.examples.controlexample;
-
-/*
- * Copyright (c) 2000, 2002 IBM Corp. All rights reserved. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-class CoolBarTab extends Tab {
- Button dropDownButton, lockedButton;
-
- /* Example widgets and group that contains them */
- CoolBar coolBar;
- CoolItem pushItem, dropDownItem, radioItem, checkItem;
- Group coolBarGroup;
-
- Point[] sizes;
- int[] wrapIndices;
- int[] order;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- CoolBarTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Display" group.
- */
- void createDisplayGroup () {
- super.createDisplayGroup ();
-
- /* Create display controls specific to this example */
- lockedButton = new Button (displayGroup, SWT.CHECK);
- lockedButton.setText (ControlExample.getResourceString("Locked"));
-
- /* Add the listeners */
- lockedButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setWidgetLocked ();
- }
- });
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
- coolBarGroup = new Group (exampleGroup, SWT.NULL);
- coolBarGroup.setLayout (new GridLayout ());
- coolBarGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- coolBarGroup.setText ("CoolBar");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
- int style = 0, itemStyle = 0;
-
- /* Compute the widget style */
- int toolBarStyle = SWT.FLAT;
- if (borderButton.getSelection()) style |= SWT.BORDER;
- if (dropDownButton.getSelection()) itemStyle |= SWT.DROP_DOWN;
-
- /*
- * Create the example widgets.
- */
- coolBar = new CoolBar (coolBarGroup, style);
-
- /* create the push button toolbar */
- ToolBar toolBar = new ToolBar (coolBar, toolBarStyle);
- ToolItem item = new ToolItem (toolBar, SWT.PUSH);
- item.setImage (instance.images[ControlExample.ciClosedFolder]);
- item.setToolTipText ("SWT.PUSH");
- item = new ToolItem (toolBar, SWT.PUSH);
- item.setImage (instance.images[ControlExample.ciOpenFolder]);
- item.setToolTipText ("SWT.PUSH");
- item = new ToolItem (toolBar, SWT.PUSH);
- item.setImage (instance.images[ControlExample.ciTarget]);
- item.setToolTipText ("SWT.PUSH");
- item = new ToolItem (toolBar, SWT.SEPARATOR);
- item = new ToolItem (toolBar, SWT.PUSH);
- item.setImage (instance.images[ControlExample.ciClosedFolder]);
- item.setToolTipText ("SWT.PUSH");
- item = new ToolItem (toolBar, SWT.PUSH);
- item.setImage (instance.images[ControlExample.ciOpenFolder]);
- item.setToolTipText ("SWT.PUSH");
- pushItem = new CoolItem (coolBar, itemStyle);
- pushItem.setControl (toolBar);
- Point pushSize = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT);
- pushSize = pushItem.computeSize(pushSize.x, pushSize.y);
- pushItem.setSize(pushSize);
- pushItem.setMinimumSize(item.getWidth(), pushSize.y);
- pushItem.addSelectionListener (new CoolItemSelectionListener());
-
- /* create the dropdown toolbar */
- toolBar = new ToolBar (coolBar, toolBarStyle);
- item = new ToolItem (toolBar, SWT.DROP_DOWN);
- item.setImage (instance.images[ControlExample.ciOpenFolder]);
- item.setToolTipText ("SWT.DROP_DOWN");
- item.addSelectionListener (new DropDownSelectionListener());
- item = new ToolItem (toolBar, SWT.DROP_DOWN);
- item.setImage (instance.images[ControlExample.ciClosedFolder]);
- item.setToolTipText ("SWT.DROP_DOWN");
- item.addSelectionListener (new DropDownSelectionListener());
- dropDownItem = new CoolItem (coolBar, itemStyle);
- dropDownItem.setControl (toolBar);
- Point dropSize = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT);
- dropSize = dropDownItem.computeSize(dropSize.x, dropSize.y);
- dropDownItem.setSize(dropSize);
- dropDownItem.setMinimumSize(item.getWidth(), dropSize.y);
- dropDownItem.addSelectionListener (new CoolItemSelectionListener());
-
- /* create the radio button toolbar */
- toolBar = new ToolBar (coolBar, toolBarStyle);
- item = new ToolItem (toolBar, SWT.RADIO);
- item.setImage (instance.images[ControlExample.ciClosedFolder]);
- item.setToolTipText ("SWT.RADIO");
- item = new ToolItem (toolBar, SWT.RADIO);
- item.setImage (instance.images[ControlExample.ciClosedFolder]);
- item.setToolTipText ("SWT.RADIO");
- item = new ToolItem (toolBar, SWT.RADIO);
- item.setImage (instance.images[ControlExample.ciClosedFolder]);
- item.setToolTipText ("SWT.RADIO");
- radioItem = new CoolItem (coolBar, itemStyle);
- radioItem.setControl (toolBar);
- Point radioSize = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT);
- radioSize = radioItem.computeSize(radioSize.x, radioSize.y);
- radioItem.setSize(radioSize);
- radioItem.setMinimumSize(item.getWidth(), radioSize.y);
- radioItem.addSelectionListener (new CoolItemSelectionListener());
-
- /* create the check button toolbar */
- toolBar = new ToolBar (coolBar, toolBarStyle);
- item = new ToolItem (toolBar, SWT.CHECK);
- item.setImage (instance.images[ControlExample.ciClosedFolder]);
- item.setToolTipText ("SWT.CHECK");
- item = new ToolItem (toolBar, SWT.CHECK);
- item.setImage (instance.images[ControlExample.ciTarget]);
- item.setToolTipText ("SWT.CHECK");
- item = new ToolItem (toolBar, SWT.CHECK);
- item.setImage (instance.images[ControlExample.ciOpenFolder]);
- item.setToolTipText ("SWT.CHECK");
- item = new ToolItem (toolBar, SWT.CHECK);
- item.setImage (instance.images[ControlExample.ciTarget]);
- item.setToolTipText ("SWT.CHECK");
- checkItem = new CoolItem (coolBar, itemStyle);
- checkItem.setControl (toolBar);
- Point checkSize = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT);
- checkSize = checkItem.computeSize(checkSize.x, checkSize.y);
- checkItem.setSize(checkSize);
- checkItem.setMinimumSize(item.getWidth(), checkSize.y);
- checkItem.addSelectionListener (new CoolItemSelectionListener());
-
- /* if we have saved state, restore it */
- if (order != null) {
- coolBar.setItemLayout(order, wrapIndices, sizes);
- /*
- * special case: because setItemLayout will restore the items
- * to the sizes the user left them at, the preferred size may not
- * be the same as the actual size. Thus we must explicitly set
- * the preferred sizes.
- */
- pushItem.setPreferredSize(pushSize);
- dropDownItem.setPreferredSize(dropSize);
- radioItem.setPreferredSize(radioSize);
- checkItem.setPreferredSize(checkSize);
- }
- else {
- coolBar.setWrapIndices(new int[] {1, 3});
- }
-
- /* add a listener to resize the group box to match the coolbar */
- coolBar.addListener(SWT.Resize, new Listener() {
- public void handleEvent(Event event) {
- exampleGroup.layout();
- }
- });
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup() {
- super.createStyleGroup();
-
- /* Create the extra widget */
- borderButton = new Button (styleGroup, SWT.CHECK);
- borderButton.setText ("SWT.BORDER");
- Group itemGroup = new Group(styleGroup, SWT.NONE);
- itemGroup.setLayout (new GridLayout ());
- itemGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- itemGroup.setText(ControlExample.getResourceString("Item_Styles"));
- dropDownButton = new Button (itemGroup, SWT.CHECK);
- dropDownButton.setText ("SWT.DROP_DOWN");
- dropDownButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- recreateExampleWidgets ();
- }
- });
- }
-
- /**
- * Disposes the "Example" widgets.
- */
- void disposeExampleWidgets () {
- /* store the state of the toolbar if applicable */
- if (coolBar != null) {
- sizes = coolBar.getItemSizes();
- wrapIndices = coolBar.getWrapIndices();
- order = coolBar.getItemOrder();
- }
- super.disposeExampleWidgets();
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Control [] getExampleWidgets () {
- return new Control [] {coolBar};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "CoolBar";
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- borderButton.setSelection ((coolBar.getStyle () & SWT.BORDER) != 0);
- dropDownButton.setSelection ((coolBar.getItem(0).getStyle () & SWT.DROP_DOWN) != 0);
- setWidgetLocked ();
- }
-
- /**
- * Sets the header visible state of the "Example" widgets.
- */
- void setWidgetLocked () {
- coolBar.setLocked (lockedButton.getSelection ());
- }
-
- /**
- * Listens to widgetSelected() events on SWT.DROP_DOWN type ToolItems
- * and opens/closes a menu when appropriate.
- */
- class DropDownSelectionListener extends SelectionAdapter {
- private Menu menu = null;
- private boolean visible = false;
-
- public void widgetSelected(SelectionEvent event) {
- // Create the menu if it has not already been created
- if (menu == null) {
- // Lazy create the menu.
- Shell shell = tabFolderPage.getShell();
- menu = new Menu(shell);
- for (int i = 0; i < 9; ++i) {
- final String text = ControlExample.getResourceString("DropDownData_" + i);
- if (text.length() != 0) {
- MenuItem menuItem = new MenuItem(menu, SWT.NONE);
- menuItem.setText(text);
- /*
- * Add a menu selection listener so that the menu is hidden
- * when the user selects an item from the drop down menu.
- */
- menuItem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- setMenuVisible(false);
- }
- });
- } else {
- MenuItem menuItem = new MenuItem(menu, SWT.SEPARATOR);
- }
- }
- }
-
- /**
- * A selection event will be fired when a drop down tool
- * item is selected in the main area and in the drop
- * down arrow. Examine the event detail to determine
- * where the widget was selected.
- */
- if (event.detail == SWT.ARROW) {
- /*
- * The drop down arrow was selected.
- */
- if (visible) {
- // Hide the menu to give the Arrow the appearance of being a toggle button.
- setMenuVisible(false);
- } else {
- // Position the menu below and vertically aligned with the the drop down tool button.
- final ToolItem toolItem = (ToolItem) event.widget;
- final ToolBar toolBar = toolItem.getParent();
-
- Rectangle toolItemBounds = toolItem.getBounds();
- Point point = toolBar.toDisplay(new Point(toolItemBounds.x, toolItemBounds.y));
- menu.setLocation(point.x, point.y + toolItemBounds.height);
- setMenuVisible(true);
- }
- } else {
- /*
- * Main area of drop down tool item selected.
- * An application would invoke the code to perform the action for the tool item.
- */
- }
- }
- private void setMenuVisible(boolean visible) {
- menu.setVisible(visible);
- this.visible = visible;
- }
- }
-
- /**
- * Listens to widgetSelected() events on SWT.DROP_DOWN type CoolItems
- * and opens/closes a menu when appropriate.
- */
- class CoolItemSelectionListener extends SelectionAdapter {
- private Menu menu = null;
-
- public void widgetSelected(SelectionEvent event) {
- /**
- * A selection event will be fired when the cool item
- * is selected by its gripper or if the drop down arrow
- * (or 'chevron') is selected. Examine the event detail
- * to determine where the widget was selected.
- */
- if (event.detail == SWT.ARROW) {
- /* If the popup menu is already up (i.e. user pressed arrow twice),
- * then dispose it.
- */
- if (menu != null) {
- menu.dispose();
- menu = null;
- return;
- }
-
- /* Get the cool item and convert its bounds to display coordinates. */
- CoolItem coolItem = (CoolItem) event.widget;
- Rectangle itemBounds = coolItem.getBounds ();
- Point pt = coolBar.toDisplay(new Point (itemBounds.x, itemBounds.y));
- itemBounds.x = pt.x;
- itemBounds.y = pt.y;
-
- /* Get the toolbar from the cool item. */
- ToolBar toolBar = (ToolBar) coolItem.getControl ();
- ToolItem[] tools = toolBar.getItems ();
- int toolCount = tools.length;
-
- /* Convert the bounds of each tool item to display coordinates,
- * and determine which ones are past the bounds of the cool item.
- */
- int i = 0;
- while (i < toolCount) {
- Rectangle toolBounds = tools[i].getBounds ();
- pt = toolBar.toDisplay(new Point(toolBounds.x, toolBounds.y));
- toolBounds.x = pt.x;
- toolBounds.y = pt.y;
- Rectangle intersection = itemBounds.intersection (toolBounds);
- if (!intersection.equals (toolBounds)) break;
- i++;
- }
-
- /* Create a pop-up menu with items for each of the hidden buttons. */
- menu = new Menu (coolBar);
- for (int j = i; j < toolCount; j++) {
- ToolItem tool = tools[j];
- Image image = tool.getImage();
- if (image == null) {
- new MenuItem (menu, SWT.SEPARATOR);
- } else {
- if ((tool.getStyle() & SWT.DROP_DOWN) != 0) {
- MenuItem menuItem = new MenuItem (menu, SWT.CASCADE);
- menuItem.setImage(image);
- Menu m = new Menu(menu);
- menuItem.setMenu(m);
- for (int k = 0; k < 9; ++k) {
- String text = ControlExample.getResourceString("DropDownData_" + k);
- if (text.length() != 0) {
- MenuItem mi = new MenuItem(m, SWT.NONE);
- mi.setText(text);
- /* Application code to perform the action for the submenu item would go here. */
- } else {
- new MenuItem(m, SWT.SEPARATOR);
- }
- }
- } else {
- MenuItem menuItem = new MenuItem (menu, SWT.NONE);
- menuItem.setImage(image);
- }
- /* Application code to perform the action for the menu item would go here. */
-
- }
- }
-
- /* Display the pop-up menu at the lower left corner of the arrow button.
- * Dispose the menu when the user is done with it.
- */
- pt = coolBar.toDisplay(new Point(event.x, event.y));
- menu.setLocation (pt.x, pt.y);
- menu.setVisible (true);
- Display display = coolBar.getDisplay ();
- while (menu != null && menu.isVisible ()) {
- if (!display.readAndDispatch ()) display.sleep ();
- }
- if (menu != null) {
- menu.dispose ();
- menu = null;
- }
- }
- }
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/DialogTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/DialogTab.java deleted file mode 100755 index 699b206b17..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/DialogTab.java +++ /dev/null @@ -1,442 +0,0 @@ -package org.eclipse.swt.examples.controlexample;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.printing.*;
-import org.eclipse.swt.events.*;
-
-class DialogTab extends Tab {
- /* Example widgets and groups that contain them */
- Group dialogStyleGroup, resultGroup;
- Text textWidget;
-
- /* Style widgets added to the "Style" group */
- Combo dialogCombo;
- Button okButton, cancelButton;
- Button yesButton, noButton;
- Button retryButton;
- Button abortButton, ignoreButton;
- Button iconErrorButton, iconInformationButton, iconQuestionButton;
- Button iconWarningButton, iconWorkingButton;
- Button modelessButton, primaryModalButton, applicationModalButton, systemModalButton;
- Button saveButton, openButton;
-
- static String [] FilterExtensions = {"*.txt", "*.bat", "*.doc"};
- static String [] FilterNames = {ControlExample.getResourceString("FilterName_0"),
- ControlExample.getResourceString("FilterName_1"),
- ControlExample.getResourceString("FilterName_2")};
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- DialogTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Handle a button style selection event.
- *
- * @param event the selection event
- */
- void buttonStyleSelected(SelectionEvent event) {
- /*
- * Only certain combinations of button styles are
- * supported for various dialogs. Make sure the
- * control widget reflects only valid combinations.
- */
- okButton.setEnabled (
- !(yesButton.getSelection () || noButton.getSelection () ||
- retryButton.getSelection () || abortButton.getSelection () ||
- ignoreButton.getSelection ()));
- cancelButton.setEnabled (
- !(abortButton.getSelection () || ignoreButton.getSelection ()));
- yesButton.setEnabled (
- !(okButton.getSelection () || retryButton.getSelection () ||
- abortButton.getSelection () || ignoreButton.getSelection ()));
- noButton.setEnabled (
- !(okButton.getSelection () || retryButton.getSelection () ||
- abortButton.getSelection () || ignoreButton.getSelection ()));
- retryButton.setEnabled (
- !(okButton.getSelection() || yesButton.getSelection() || noButton.getSelection ()));
- abortButton.setEnabled (
- !(okButton.getSelection () || cancelButton.getSelection () ||
- yesButton.getSelection () || noButton.getSelection ()));
- ignoreButton.setEnabled (
- !(okButton.getSelection () || cancelButton.getSelection () |
- yesButton.getSelection () || noButton.getSelection ()));
- }
-
- /**
- * Handle the create button selection event.
- *
- * @param event org.eclipse.swt.events.SelectionEvent
- */
- void createButtonSelected(SelectionEvent event) {
-
- /* Compute the appropriate dialog style */
- int style = SWT.NULL;
- if (okButton.getEnabled () && okButton.getSelection ()) style |= SWT.OK;
- if (cancelButton.getEnabled () && cancelButton.getSelection ()) style |= SWT.CANCEL;
- if (yesButton.getEnabled () && yesButton.getSelection ()) style |= SWT.YES;
- if (noButton.getEnabled () && noButton.getSelection ()) style |= SWT.NO;
- if (retryButton.getEnabled () && retryButton.getSelection ()) style |= SWT.RETRY;
- if (abortButton.getEnabled () && abortButton.getSelection ()) style |= SWT.ABORT;
- if (ignoreButton.getEnabled () && ignoreButton.getSelection ()) style |= SWT.IGNORE;
- if (iconErrorButton.getEnabled () && iconErrorButton.getSelection ()) style |= SWT.ICON_ERROR;
- if (iconInformationButton.getEnabled () && iconInformationButton.getSelection ()) style |= SWT.ICON_INFORMATION;
- if (iconQuestionButton.getEnabled () && iconQuestionButton.getSelection ()) style |= SWT.ICON_QUESTION;
- if (iconWarningButton.getEnabled () && iconWarningButton.getSelection ()) style |= SWT.ICON_WARNING;
- if (iconWorkingButton.getEnabled () && iconWorkingButton.getSelection ()) style |= SWT.ICON_WORKING;
- if (primaryModalButton.getEnabled () && primaryModalButton.getSelection ()) style |= SWT.PRIMARY_MODAL;
- if (applicationModalButton.getEnabled () && applicationModalButton.getSelection ()) style |= SWT.APPLICATION_MODAL;
- if (systemModalButton.getEnabled () && systemModalButton.getSelection ()) style |= SWT.SYSTEM_MODAL;
- if (saveButton.getEnabled () && saveButton.getSelection ()) style |= SWT.SAVE;
- if (openButton.getEnabled () && openButton.getSelection ()) style |= SWT.OPEN;
-
- /* Open the appropriate dialog type */
- String name = dialogCombo.getText ();
- Shell shell = tabFolderPage.getShell ();
-
- if (name.equals (ControlExample.getResourceString("ColorDialog"))) {
- ColorDialog dialog = new ColorDialog (shell ,style);
- dialog.setRGB (new RGB (100, 100, 100));
- dialog.setText (ControlExample.getResourceString("Title"));
- RGB result = dialog.open ();
- textWidget.append (ControlExample.getResourceString("ColorDialog") + Text.DELIMITER);
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"" + result}) + Text.DELIMITER + Text.DELIMITER);
- return;
- }
-
- if (name.equals (ControlExample.getResourceString("DirectoryDialog"))) {
- DirectoryDialog dialog = new DirectoryDialog (shell, style);
- dialog.setMessage (ControlExample.getResourceString("Example_string"));
- dialog.setText (ControlExample.getResourceString("Title"));
- String result = dialog.open ();
- textWidget.append (ControlExample.getResourceString("DirectoryDialog") + Text.DELIMITER);
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"" + result}) + Text.DELIMITER + Text.DELIMITER);
- return;
- }
-
- if (name.equals (ControlExample.getResourceString("FileDialog"))) {
- FileDialog dialog = new FileDialog (shell, style);
- dialog.setFileName (ControlExample.getResourceString("readme_txt"));
- dialog.setFilterNames (FilterNames);
- dialog.setFilterExtensions (FilterExtensions);
- dialog.setText (ControlExample.getResourceString("Title"));
- String result = dialog.open();
- textWidget.append (ControlExample.getResourceString("FileDialog") + Text.DELIMITER);
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"" + result}) + Text.DELIMITER + Text.DELIMITER);
- return;
- }
-
- if (name.equals (ControlExample.getResourceString("FontDialog"))) {
- FontDialog dialog = new FontDialog (shell, style);
- dialog.setText (ControlExample.getResourceString("Title"));
- FontData result = dialog.open ();
- textWidget.append (ControlExample.getResourceString("FontDialog") + Text.DELIMITER);
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"" + result}) + Text.DELIMITER + Text.DELIMITER);
- return;
- }
-
- if (name.equals (ControlExample.getResourceString("PrintDialog"))) {
- PrintDialog dialog = new PrintDialog (shell, style);
- dialog.setText(ControlExample.getResourceString("Title"));
- PrinterData result = dialog.open ();
- textWidget.append (ControlExample.getResourceString("PrintDialog") + Text.DELIMITER);
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"" + result}) + Text.DELIMITER + Text.DELIMITER);
- return;
- }
-
- if (name.equals(ControlExample.getResourceString("MessageBox"))) {
- MessageBox dialog = new MessageBox (shell, style);
- dialog.setMessage (ControlExample.getResourceString("Example_string"));
- dialog.setText (ControlExample.getResourceString("Title"));
- int result = dialog.open ();
- textWidget.append (ControlExample.getResourceString("MessageBox") + Text.DELIMITER);
- /*
- * The resulting integer depends on the original
- * dialog style. Decode the result and display it.
- */
- switch (result) {
- case SWT.OK:
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.OK"}));
- break;
- case SWT.YES:
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.YES"}));
- break;
- case SWT.NO:
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.NO"}));
- break;
- case SWT.CANCEL:
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.CANCEL"}));
- break;
- case SWT.ABORT:
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.ABORT"}));
- break;
- case SWT.RETRY:
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.RETRY"}));
- break;
- case SWT.IGNORE:
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.IGNORE"}));
- break;
- default:
- textWidget.append(ControlExample.getResourceString("Result", new String [] {"" + result}));
- break;
- }
- textWidget.append (Text.DELIMITER + Text.DELIMITER);
- }
- }
-
- /**
- * Creates the "Control" group.
- */
- void createControlGroup () {
- /*
- * Create the "Control" group. This is the group on the
- * left half of each example tab. It consists of the
- * style group, the display group and the size group.
- */
- controlGroup = new Group (tabFolderPage, SWT.NULL);
- GridLayout gridLayout= new GridLayout ();
- controlGroup.setLayout(gridLayout);
- gridLayout.numColumns = 2;
- gridLayout.makeColumnsEqualWidth = true;
- controlGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- controlGroup.setText (ControlExample.getResourceString("Parameters"));
-
- /*
- * Create a group to hold the dialog style combo box and
- * create dialog button.
- */
- dialogStyleGroup = new Group (controlGroup, SWT.NULL);
- dialogStyleGroup.setLayout (new GridLayout ());
- GridData gridData = new GridData (GridData.HORIZONTAL_ALIGN_CENTER);
- gridData.horizontalSpan = 2;
- dialogStyleGroup.setLayoutData (gridData);
- dialogStyleGroup.setText (ControlExample.getResourceString("Dialog_Type"));
- }
-
- /**
- * Creates the "Control" widget children.
- */
- void createControlWidgets () {
-
- /* Create the combo */
- String [] strings = {
- ControlExample.getResourceString("ColorDialog"),
- ControlExample.getResourceString("DirectoryDialog"),
- ControlExample.getResourceString("FileDialog"),
- ControlExample.getResourceString("FontDialog"),
- ControlExample.getResourceString("PrintDialog"),
- ControlExample.getResourceString("MessageBox"),
- };
- dialogCombo = new Combo (dialogStyleGroup, SWT.READ_ONLY);
- dialogCombo.setItems (strings);
- dialogCombo.setText (strings [0]);
-
- /* Create the create dialog button */
- Button createButton = new Button(dialogStyleGroup, SWT.NULL);
- createButton.setText (ControlExample.getResourceString("Create_Dialog"));
- createButton.setLayoutData (new GridData(GridData.HORIZONTAL_ALIGN_CENTER));
-
- /* Create a group for the various dialog button style controls */
- Group buttonStyleGroup = new Group (controlGroup, SWT.NULL);
- buttonStyleGroup.setLayout (new GridLayout ());
- buttonStyleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- buttonStyleGroup.setText (ControlExample.getResourceString("Button_Styles"));
-
- /* Create the button style buttons */
- okButton = new Button (buttonStyleGroup, SWT.CHECK);
- okButton.setText ("SWT.OK");
- cancelButton = new Button (buttonStyleGroup, SWT.CHECK);
- cancelButton.setText ("SWT.CANCEL");
- yesButton = new Button (buttonStyleGroup, SWT.CHECK);
- yesButton.setText ("SWT.YES");
- noButton = new Button (buttonStyleGroup, SWT.CHECK);
- noButton.setText ("SWT.NO");
- retryButton = new Button (buttonStyleGroup, SWT.CHECK);
- retryButton.setText ("SWT.RETRY");
- abortButton = new Button (buttonStyleGroup, SWT.CHECK);
- abortButton.setText ("SWT.ABORT");
- ignoreButton = new Button (buttonStyleGroup, SWT.CHECK);
- ignoreButton.setText ("SWT.IGNORE");
-
- /* Create a group for the icon style controls */
- Group iconStyleGroup = new Group (controlGroup, SWT.NULL);
- iconStyleGroup.setLayout (new GridLayout ());
- iconStyleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- iconStyleGroup.setText (ControlExample.getResourceString("Icon_Styles"));
-
- /* Create the icon style buttons */
- iconErrorButton = new Button (iconStyleGroup, SWT.RADIO);
- iconErrorButton.setText ("SWT.ICON_ERROR");
- iconInformationButton = new Button (iconStyleGroup, SWT.RADIO);
- iconInformationButton.setText ("SWT.ICON_INFORMATION");
- iconQuestionButton = new Button (iconStyleGroup, SWT.RADIO);
- iconQuestionButton.setText ("SWT.ICON_QUESTION");
- iconWarningButton = new Button (iconStyleGroup, SWT.RADIO);
- iconWarningButton.setText ("SWT.ICON_WARNING");
- iconWorkingButton = new Button (iconStyleGroup, SWT.RADIO);
- iconWorkingButton.setText ("SWT.ICON_WORKING");
-
- /* Create a group for the modal style controls */
- Group modalStyleGroup = new Group (controlGroup, SWT.NULL);
- modalStyleGroup.setLayout (new GridLayout ());
- modalStyleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- modalStyleGroup.setText (ControlExample.getResourceString("Modal_Styles"));
-
- /* Create the modal style buttons */
- modelessButton = new Button (modalStyleGroup, SWT.RADIO);
- modelessButton.setText ("SWT.MODELESS");
- primaryModalButton = new Button (modalStyleGroup, SWT.RADIO);
- primaryModalButton.setText ("SWT.PRIMARY_MODAL");
- applicationModalButton = new Button (modalStyleGroup, SWT.RADIO);
- applicationModalButton.setText ("SWT.APPLICATION_MODAL");
- systemModalButton = new Button (modalStyleGroup, SWT.RADIO);
- systemModalButton.setText ("SWT.SYSTEM_MODAL");
-
- /* Create a group for the file dialog style controls */
- Group fileDialogStyleGroup = new Group (controlGroup, SWT.NULL);
- fileDialogStyleGroup.setLayout (new GridLayout ());
- fileDialogStyleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- fileDialogStyleGroup.setText (ControlExample.getResourceString("File_Dialog_Styles"));
-
- /* Create the file dialog style buttons */
- saveButton = new Button (fileDialogStyleGroup, SWT.RADIO);
- saveButton.setText ("SWT.SAVE");
- openButton = new Button(fileDialogStyleGroup, SWT.RADIO);
- openButton.setText("SWT.OPEN");
-
- /* Add the listeners */
- dialogCombo.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- dialogSelected (event);
- };
- });
- createButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- createButtonSelected (event);
- };
- });
- SelectionListener buttonStyleListener = new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- buttonStyleSelected (event);
- };
- };
- okButton.addSelectionListener (buttonStyleListener);
- cancelButton.addSelectionListener (buttonStyleListener);
- yesButton.addSelectionListener (buttonStyleListener);
- noButton.addSelectionListener (buttonStyleListener);
- retryButton.addSelectionListener (buttonStyleListener);
- abortButton.addSelectionListener (buttonStyleListener);
- ignoreButton.addSelectionListener (buttonStyleListener);
-
- /* Set default values for style buttons */
- okButton.setEnabled (false);
- cancelButton.setEnabled (false);
- yesButton.setEnabled (false);
- noButton.setEnabled (false);
- retryButton.setEnabled (false);
- abortButton.setEnabled (false);
- ignoreButton.setEnabled (false);
- iconErrorButton.setEnabled (false);
- iconInformationButton.setEnabled (false);
- iconQuestionButton.setEnabled (false);
- iconWarningButton.setEnabled (false);
- iconWorkingButton.setEnabled (false);
- saveButton.setEnabled (false);
- openButton.setEnabled (false);
- openButton.setSelection (true);
- iconInformationButton.setSelection (true);
- modelessButton.setSelection (true);
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /*
- * Create a group for the text widget to display
- * the results returned by the example dialogs.
- */
- resultGroup = new Group (exampleGroup, SWT.NULL);
- resultGroup.setLayout (new GridLayout ());
- resultGroup.setLayoutData (new GridData (GridData.FILL_BOTH));
- resultGroup.setText (ControlExample.getResourceString("Dialog_Result"));
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
- /*
- * Create a multi lined, scrolled text widget for output.
- */
- textWidget = new Text(resultGroup, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
- GridData gridData = new GridData (GridData.FILL_BOTH);
- textWidget.setLayoutData (gridData);
- }
-
- /**
- * Handle a dialog type combo selection event.
- *
- * @param event the selection event
- */
- void dialogSelected (SelectionEvent event) {
-
- /* Enable/Disable the buttons */
- String name = dialogCombo.getText ();
- boolean isMessageBox = name.equals (ControlExample.getResourceString("MessageBox"));
- boolean isFileDialog = name.equals (ControlExample.getResourceString("FileDialog"));
- okButton.setEnabled (isMessageBox);
- cancelButton.setEnabled (isMessageBox);
- yesButton.setEnabled (isMessageBox);
- noButton.setEnabled (isMessageBox);
- retryButton.setEnabled (isMessageBox);
- abortButton.setEnabled (isMessageBox);
- ignoreButton.setEnabled (isMessageBox);
- iconErrorButton.setEnabled (isMessageBox);
- iconInformationButton.setEnabled (isMessageBox);
- iconQuestionButton.setEnabled (isMessageBox);
- iconWarningButton.setEnabled (isMessageBox);
- iconWorkingButton.setEnabled (isMessageBox);
- saveButton.setEnabled (isFileDialog);
- openButton.setEnabled (isFileDialog);
-
- /* Unselect the buttons */
- if (!isMessageBox) {
- okButton.setSelection (false);
- cancelButton.setSelection (false);
- yesButton.setSelection (false);
- noButton.setSelection (false);
- retryButton.setSelection (false);
- abortButton.setSelection (false);
- ignoreButton.setSelection (false);
- }
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Control [] getExampleWidgets () {
- return new Control [0];
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Dialog";
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/LabelTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/LabelTab.java deleted file mode 100755 index 50d575ede8..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/LabelTab.java +++ /dev/null @@ -1,175 +0,0 @@ -package org.eclipse.swt.examples.controlexample;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-class LabelTab extends AlignableTab {
- /* Example widgets and groups that contain them */
- Label label1, label2, label3, label4, label5, label6;
- Group textLabelGroup, imageLabelGroup;
-
- /* Style widgets added to the "Style" group */
- Button separatorButton, wrapButton, horizontalButton, verticalButton, shadowInButton, shadowOutButton;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- LabelTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the text labels */
- textLabelGroup = new Group(exampleGroup, SWT.NULL);
- GridLayout gridLayout = new GridLayout ();
- textLabelGroup.setLayout (gridLayout);
- gridLayout.numColumns = 3;
- textLabelGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- textLabelGroup.setText (ControlExample.getResourceString("Text_Labels"));
-
- /* Create a group for the image labels */
- imageLabelGroup = new Group (exampleGroup, SWT.SHADOW_NONE);
- gridLayout = new GridLayout ();
- imageLabelGroup.setLayout (gridLayout);
- gridLayout.numColumns = 3;
- imageLabelGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- imageLabelGroup.setText (ControlExample.getResourceString("Image_Labels"));
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = SWT.NONE;
- if (separatorButton.getSelection ()) style |= SWT.SEPARATOR;
- if (wrapButton.getSelection ()) style |= SWT.WRAP;
- if (horizontalButton.getSelection ()) style |= SWT.HORIZONTAL;
- if (verticalButton.getSelection ()) style |= SWT.VERTICAL;
- if (shadowInButton.getSelection ()) style |= SWT.SHADOW_IN;
- if (shadowOutButton.getSelection ()) style |= SWT.SHADOW_OUT;
- if (borderButton.getSelection ()) style |= SWT.BORDER;
-
- /* Create the example widgets */
- label1 = new Label (textLabelGroup, style);
- label1.setText(ControlExample.getResourceString("One"));
- label2 = new Label (textLabelGroup, style);
- label2.setText(ControlExample.getResourceString("Two"));
- label3 = new Label (textLabelGroup, style);
- if (wrapButton.getSelection ()) {
- label3.setText (ControlExample.getResourceString("Wrap_Text"));
- } else {
- label3.setText (ControlExample.getResourceString("Three"));
- }
- label4 = new Label (imageLabelGroup, style);
- label4.setImage (instance.images[ControlExample.ciClosedFolder]);
- label5 = new Label (imageLabelGroup, style);
- label5.setImage (instance.images[ControlExample.ciOpenFolder]);
- label6 = new Label(imageLabelGroup, style);
- label6.setImage (instance.images[ControlExample.ciTarget]);
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup() {
- super.createStyleGroup ();
-
- /* Create the extra widgets */
- separatorButton = new Button (styleGroup, SWT.CHECK);
- separatorButton.setText ("SWT.SEPARATOR");
- wrapButton = new Button (styleGroup, SWT.CHECK);
- wrapButton.setText ("SWT.WRAP");
- horizontalButton = new Button (styleGroup, SWT.RADIO);
- horizontalButton.setText ("SWT.HORIZONTAL");
- verticalButton = new Button (styleGroup, SWT.RADIO);
- verticalButton.setText ("SWT.VERTICAL");
- Group styleSubGroup = new Group (styleGroup, SWT.NULL);
- styleSubGroup.setLayout (new GridLayout ());
- shadowInButton = new Button (styleSubGroup, SWT.RADIO);
- shadowInButton.setText ("SWT.SHADOW_IN");
- shadowOutButton = new Button (styleSubGroup, SWT.RADIO);
- shadowOutButton.setText ("SWT.SHADOW_OUT");
- borderButton = new Button(styleGroup, SWT.CHECK);
- borderButton.setText("SWT.BORDER");
-
- /* Add the listeners */
- SelectionListener selectionListener = new SelectionAdapter () {
- public void widgetSelected(SelectionEvent event) {
- if ((event.widget.getStyle() & SWT.RADIO) != 0) {
- if (!((Button) event.widget).getSelection ()) return;
- }
- recreateExampleWidgets ();
- };
- };
- shadowInButton.addSelectionListener (selectionListener);
- shadowOutButton.addSelectionListener (selectionListener);
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Control [] getExampleWidgets () {
- return new Control [] {label1, label2, label3, label4, label5, label6};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Label";
- }
-
- /**
- * Sets the alignment of the "Example" widgets.
- */
- void setExampleWidgetAlignment () {
- int allignment = 0;
- if (leftButton.getSelection ()) allignment = SWT.LEFT;
- if (centerButton.getSelection ()) allignment = SWT.CENTER;
- if (rightButton.getSelection ()) allignment = SWT.RIGHT;
- label1.setAlignment (allignment);
- label2.setAlignment (allignment);
- label3.setAlignment (allignment);
- label4.setAlignment (allignment);
- label5.setAlignment (allignment);
- label6.setAlignment (allignment);
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- boolean isSeparator = (label1.getStyle () & SWT.SEPARATOR) != 0;
- wrapButton.setSelection (!isSeparator && (label1.getStyle () & SWT.WRAP) != 0);
- leftButton.setSelection (!isSeparator && (label1.getStyle () & SWT.LEFT) != 0);
- centerButton.setSelection (!isSeparator && (label1.getStyle () & SWT.CENTER) != 0);
- rightButton.setSelection (!isSeparator && (label1.getStyle () & SWT.RIGHT) != 0);
- shadowInButton.setSelection (isSeparator && (label1.getStyle () & SWT.SHADOW_IN) != 0);
- shadowOutButton.setSelection (!shadowInButton.getSelection ());
- wrapButton.setEnabled (!isSeparator);
- leftButton.setEnabled (!isSeparator);
- centerButton.setEnabled (!isSeparator);
- rightButton.setEnabled (!isSeparator);
- shadowInButton.setEnabled (isSeparator);
- shadowOutButton.setEnabled (isSeparator);
- horizontalButton.setEnabled (isSeparator);
- verticalButton.setEnabled (isSeparator);
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ListTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ListTab.java deleted file mode 100755 index d82d62a2cf..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ListTab.java +++ /dev/null @@ -1,81 +0,0 @@ -package org.eclipse.swt.examples.controlexample;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-
-class ListTab extends ScrollableTab {
-
- /* Example widgets and groups that contain them */
- List list1;
- Group listGroup;
-
- static String [] ListData1 = {ControlExample.getResourceString("ListData1_0"),
- ControlExample.getResourceString("ListData1_1"),
- ControlExample.getResourceString("ListData1_2"),
- ControlExample.getResourceString("ListData1_3"),
- ControlExample.getResourceString("ListData1_4"),
- ControlExample.getResourceString("ListData1_5"),
- ControlExample.getResourceString("ListData1_6"),
- ControlExample.getResourceString("ListData1_7"),
- ControlExample.getResourceString("ListData1_8")};
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- ListTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the list */
- listGroup = new Group (exampleGroup, SWT.NULL);
- listGroup.setLayout (new GridLayout ());
- listGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- listGroup.setText ("List");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = SWT.NONE;
- if (singleButton.getSelection ()) style |= SWT.SINGLE;
- if (multiButton.getSelection ()) style |= SWT.MULTI;
- if (horizontalButton.getSelection ()) style |= SWT.H_SCROLL;
- if (verticalButton.getSelection ()) style |= SWT.V_SCROLL;
- if (borderButton.getSelection ()) style |= SWT.BORDER;
-
- /* Create the example widgets */
- list1 = new List (listGroup, style);
- list1.setItems (ListData1);
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Control [] getExampleWidgets () {
- return new Control [] {list1};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "List";
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ProgressBarTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ProgressBarTab.java deleted file mode 100755 index dcc74e1088..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ProgressBarTab.java +++ /dev/null @@ -1,141 +0,0 @@ -package org.eclipse.swt.examples.controlexample;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-
-class ProgressBarTab extends RangeTab {
- /* Example widgets and groups that contain them */
- ProgressBar progressBar1;
- Group progressBarGroup;
-
- /* Style widgets added to the "Style" group */
- Button smoothButton;
- Button indeterminateButton;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- ProgressBarTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup() {
- super.createExampleGroup ();
-
- /* Create a group for the progress bar */
- progressBarGroup = new Group (exampleGroup, SWT.NULL);
- progressBarGroup.setLayout (new GridLayout ());
- progressBarGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- progressBarGroup.setText ("ProgressBar");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = SWT.NONE;
- if (horizontalButton.getSelection ()) style |= SWT.HORIZONTAL;
- if (verticalButton.getSelection ()) style |= SWT.VERTICAL;
- if (smoothButton.getSelection ()) style |= SWT.SMOOTH;
- if (borderButton.getSelection ()) style |= SWT.BORDER;
- if (indeterminateButton.getSelection ()) style |= SWT.INDETERMINATE;
-
- /* Create the example widgets */
- progressBar1 = new ProgressBar (progressBarGroup, style);
- progressBar1.setMaximum (100);
- progressBar1.setSelection (50);
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup () {
- super.createStyleGroup ();
-
- /* Create the extra widgets */
- smoothButton = new Button (styleGroup, SWT.CHECK);
- smoothButton.setText ("SWT.SMOOTH");
- indeterminateButton = new Button (styleGroup, SWT.CHECK);
- indeterminateButton.setText ("SWT.INDETERMINATE");
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Control [] getExampleWidgets () {
- return new Control [] {progressBar1};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "ProgressBar";
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- if (indeterminateButton.getSelection ()) {
- selectionScale.setEnabled (false);
- minimumScale.setEnabled (false);
- maximumScale.setEnabled (false);
- } else {
- selectionScale.setEnabled (true);
- minimumScale.setEnabled (true);
- maximumScale.setEnabled (true);
- }
- maximumScale.setMaximum (progressBar1.getMaximum ());
- smoothButton.setSelection ((progressBar1.getStyle () & SWT.SMOOTH) != 0);
- indeterminateButton.setSelection ((progressBar1.getStyle () & SWT.INDETERMINATE) != 0);
- }
-
- /**
- * Sets the maximum of the "Example" widgets.
- */
- void setWidgetMaximum () {
- progressBar1.setMaximum (maximumScale.getSelection ());
- updateScales ();
- }
-
- /**
- * Sets the minimim of the "Example" widgets.
- */
- void setWidgetMinimum () {
- progressBar1.setMinimum (minimumScale.getSelection ());
- updateScales ();
- }
-
- /**
- * Sets the selection of the "Example" widgets.
- */
- void setWidgetSelection () {
- progressBar1.setSelection (selectionScale.getSelection ());
- updateScales ();
- }
-
- /**
- * Update the scale widgets to reflect the actual value set
- * on the "Example" widget.
- */
- void updateScales () {
- minimumScale.setSelection (progressBar1.getMinimum ());
- selectionScale.setSelection (progressBar1.getSelection ());
- maximumScale.setSelection (progressBar1.getMaximum ());
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/RangeTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/RangeTab.java deleted file mode 100755 index 4fa0ad1b70..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/RangeTab.java +++ /dev/null @@ -1,179 +0,0 @@ -package org.eclipse.swt.examples.controlexample;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-abstract class RangeTab extends Tab {
- /* Style widgets added to the "Style" group */
- Button horizontalButton, verticalButton;
-
- /* Scale widgets added to the "Control" group */
- Scale minimumScale, selectionScale, maximumScale;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- RangeTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Control" widget children.
- */
- void createControlWidgets () {
- /* Create controls specific to this example */
- createMinimumGroup ();
- createMaximumGroup ();
- createSelectionGroup ();
- }
-
- /**
- * Create a group of widgets to control the maximum
- * attribute of the example widget.
- */
- void createMaximumGroup() {
-
- /* Create the group */
- Group maximumGroup = new Group (controlGroup, SWT.NULL);
- maximumGroup.setLayout (new GridLayout ());
- maximumGroup.setText (ControlExample.getResourceString("Maximum"));
- maximumGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-
- /* Create a scale widget */
- maximumScale = new Scale (maximumGroup, SWT.NULL);
- maximumScale.setMaximum (100);
- maximumScale.setSelection (100);
- maximumScale.setPageIncrement (10);
- maximumScale.setIncrement (5);
-
- GridData data = new GridData (GridData.FILL_HORIZONTAL);
- data.widthHint = 100;
- maximumScale.setLayoutData (data);
-
- /* Add the listeners */
- maximumScale.addSelectionListener(new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setWidgetMaximum ();
- };
- });
- }
-
- /**
- * Create a group of widgets to control the minimum
- * attribute of the example widget.
- */
- void createMinimumGroup() {
-
- /* Create the group */
- Group minimumGroup = new Group (controlGroup, SWT.NULL);
- minimumGroup.setLayout (new GridLayout ());
- minimumGroup.setText (ControlExample.getResourceString("Minimum"));
- minimumGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-
- /* Create a scale widget */
- minimumScale = new Scale (minimumGroup, SWT.NULL);
- minimumScale.setMaximum (100);
- minimumScale.setPageIncrement (10);
- minimumScale.setIncrement (5);
-
- GridData data = new GridData (GridData.FILL_HORIZONTAL);
- data.widthHint = 100;
- minimumScale.setLayoutData (data);
-
- /* Add the listeners */
- minimumScale.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setWidgetMinimum ();
- };
- });
-
- }
-
- /**
- * Create a group of widgets to control the selection
- * attribute of the example widget.
- */
- void createSelectionGroup() {
-
- /* Create the group */
- Group selectionGroup = new Group(controlGroup, SWT.NULL);
- selectionGroup.setLayout(new GridLayout());
- GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
- selectionGroup.setLayoutData(gridData);
- selectionGroup.setText(ControlExample.getResourceString("Selection"));
-
- /* Create a scale widget */
- selectionScale = new Scale (selectionGroup, SWT.NULL);
- selectionScale.setMaximum (100);
- selectionScale.setSelection (50);
- selectionScale.setPageIncrement (10);
- selectionScale.setIncrement (5);
-
- GridData data = new GridData (GridData.FILL_HORIZONTAL);
- data.widthHint = 100;
- selectionScale.setLayoutData (data);
-
- /* Add the listeners */
- selectionScale.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- setWidgetSelection ();
- };
- });
-
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup () {
- super.createStyleGroup ();
-
- /* Create the extra widgets */
- horizontalButton = new Button (styleGroup, SWT.RADIO);
- horizontalButton.setText ("SWT.HORIZONTAL");
- verticalButton = new Button (styleGroup, SWT.RADIO);
- verticalButton.setText ("SWT.VERTICAL");
- borderButton = new Button (styleGroup, SWT.CHECK);
- borderButton.setText ("SWT.BORDER");
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- setWidgetMinimum ();
- setWidgetMaximum ();
- setWidgetSelection ();
- Control [] controls = getExampleWidgets ();
- if (controls.length != 0){
- horizontalButton.setSelection ((controls [0].getStyle () & SWT.HORIZONTAL) != 0);
- verticalButton.setSelection ((controls [0].getStyle () & SWT.VERTICAL) != 0);
- borderButton.setSelection ((controls [0].getStyle () & SWT.BORDER) != 0);
- }
- }
-
- /**
- * Sets the maximum of the "Example" widgets.
- */
- abstract void setWidgetMaximum ();
-
- /**
- * Sets the minimim of the "Example" widgets.
- */
- abstract void setWidgetMinimum ();
-
- /**
- * Sets the selection of the "Example" widgets.
- */
- abstract void setWidgetSelection ();
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashTab.java deleted file mode 100755 index c5bb629ebf..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashTab.java +++ /dev/null @@ -1,166 +0,0 @@ -package org.eclipse.swt.examples.controlexample;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.events.*;
-
-class SashTab extends Tab {
- /* Example widgets and groups that contain them */
- Sash hSash, vSash;
- List list1, list2, list3;
- Text text;
-
- static String [] ListData0 = {ControlExample.getResourceString("ListData0_0"),
- ControlExample.getResourceString("ListData0_1"),
- ControlExample.getResourceString("ListData0_2"),
- ControlExample.getResourceString("ListData0_3"),
- ControlExample.getResourceString("ListData0_4"),
- ControlExample.getResourceString("ListData0_5"),
- ControlExample.getResourceString("ListData0_6"),
- ControlExample.getResourceString("ListData0_7"),
- ControlExample.getResourceString("ListData0_8")};
-
- static String [] ListData1 = {ControlExample.getResourceString("ListData1_0"),
- ControlExample.getResourceString("ListData1_1"),
- ControlExample.getResourceString("ListData1_2"),
- ControlExample.getResourceString("ListData1_3"),
- ControlExample.getResourceString("ListData1_4"),
- ControlExample.getResourceString("ListData1_5"),
- ControlExample.getResourceString("ListData1_6"),
- ControlExample.getResourceString("ListData1_7"),
- ControlExample.getResourceString("ListData1_8")};
-
- /* Constants */
- static final int SASH_WIDTH = 3;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- SashTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the tab folder page.
- */
- Composite createTabFolderPage (TabFolder tabFolder) {
- /*
- * Create the page. This example does not use layouts.
- */
- tabFolderPage = new Composite(tabFolder, SWT.BORDER);
-
- /* Create the list and text widgets */
- list1 = new List (tabFolderPage, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
- list1.setItems (ListData0);
- list2 = new List (tabFolderPage, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
- list2.setItems (ListData1);
- text = new Text (tabFolderPage, SWT.MULTI | SWT.BORDER);
- text.setText (ControlExample.getResourceString("Multi_line"));
-
- /* Create the sashes */
- vSash = new Sash (tabFolderPage, SWT.VERTICAL);
- hSash = new Sash (tabFolderPage, SWT.HORIZONTAL);
-
- /* Add the listeners */
- hSash.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- if (event.detail != SWT.DRAG) {
- hSash.setBounds (event.x, event.y, event.width, event.height);
- layout ();
- }
- }
- });
- vSash.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- if (event.detail != SWT.DRAG) {
- vSash.setBounds(event.x, event.y, event.width, event.height);
- layout ();
- }
- }
- });
- tabFolderPage.addControlListener (new ControlAdapter () {
- public void controlResized (ControlEvent event) {
- shellResized ();
- }
- });
-
- /*
- * Do not set the bounds of the lists, text and sashes here
- * because this method is run before the widget is opened
- * so we do not know how big the tabComposite is going to be.
- * When the widget is opened a resize event will occur
- * and the contained widgets can be sized accordingly.
- */
- return tabFolderPage;
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Sash";
- }
-
- /**
- * Layout the list and text widgets according to the new
- * positions of the sashes..events.SelectionEvent
- */
- void layout () {
-
- Rectangle tabCompositeBounds = tabFolderPage.getClientArea ();
- Rectangle hSashBounds = hSash.getBounds ();
- Rectangle vSashBounds = vSash.getBounds ();
-
- list1.setBounds (0, 0, vSashBounds.x, hSashBounds.y);
- list2.setBounds (vSashBounds.x + vSashBounds.width, 0, tabCompositeBounds.width - (vSashBounds.x + vSashBounds.width), hSashBounds.y);
- text.setBounds (0, hSashBounds.y + hSashBounds.height, tabCompositeBounds.width, tabCompositeBounds.height - (hSashBounds.y + hSashBounds.height));
-
- /**
- * If the horizontal sash has been moved then the vertical
- * sash is either too long or too short and its size must
- * be adjusted.
- */
- vSashBounds.height = hSashBounds.y;
- vSash.setBounds (vSashBounds);
- }
-
- /**
- * Handle the shell resized event.
- */
- void shellResized () {
-
- /* Get the client area for the shell */
- Rectangle tabFolderPageBounds = tabFolderPage.getClientArea ();
-
- /*
- * Make list 1 half the width and half the height of the tab leaving room for the sash.
- * Place list 1 in the top left quadrant of the tab.
- */
- Rectangle list1Bounds = new Rectangle (0, 0, (tabFolderPageBounds.width - SASH_WIDTH) / 2, (tabFolderPageBounds.height - SASH_WIDTH) / 2);
- list1.setBounds (list1Bounds);
-
- /*
- * Make list 2 half the width and half the height of the tab leaving room for the sash.
- * Place list 2 in the top right quadrant of the tab.
- */
- list2.setBounds (list1Bounds.width + SASH_WIDTH, 0, tabFolderPageBounds.width - (list1Bounds.width + SASH_WIDTH), list1Bounds.height);
-
- /*
- * Make the text area the full width and half the height of the tab leaving room for the sash.
- * Place the text area in the bottom half of the tab.
- */
- text.setBounds (0, list1Bounds.height + SASH_WIDTH, tabFolderPageBounds.width, tabFolderPageBounds.height - (list1Bounds.height + SASH_WIDTH));
-
- /* Position the sashes */
- vSash.setBounds (list1Bounds.width, 0, SASH_WIDTH, list1Bounds.height);
- hSash.setBounds (0, list1Bounds.height, tabFolderPageBounds.width, SASH_WIDTH);
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ScrollableTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ScrollableTab.java deleted file mode 100755 index cf7a40576e..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ScrollableTab.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.eclipse.swt.examples.controlexample;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-
-abstract class ScrollableTab extends Tab {
- /* Style widgets added to the "Style" group */
- Button singleButton, multiButton, horizontalButton, verticalButton, borderButton;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- ScrollableTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup () {
- super.createStyleGroup ();
-
- /* Create the extra widgets */
- singleButton = new Button (styleGroup, SWT.RADIO);
- singleButton.setText ("SWT.SINGLE");
- multiButton = new Button (styleGroup, SWT.RADIO);
- multiButton.setText ("SWT.MULTI");
- horizontalButton = new Button (styleGroup, SWT.CHECK);
- horizontalButton.setText ("SWT.H_SCROLL");
- horizontalButton.setSelection(true);
- verticalButton = new Button (styleGroup, SWT.CHECK);
- verticalButton.setText ("SWT.V_SCROLL");
- verticalButton.setSelection(true);
- borderButton = new Button (styleGroup, SWT.CHECK);
- borderButton.setText ("SWT.BORDER");
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- Control [] controls = getExampleWidgets ();
- if (controls.length != 0){
- singleButton.setSelection ((controls [0].getStyle () & SWT.SINGLE) != 0);
- multiButton.setSelection ((controls [0].getStyle () & SWT.MULTI) != 0);
- horizontalButton.setSelection ((controls [0].getStyle () & SWT.H_SCROLL) != 0);
- verticalButton.setSelection ((controls [0].getStyle () & SWT.V_SCROLL) != 0);
- borderButton.setSelection ((controls [0].getStyle () & SWT.BORDER) != 0);
- }
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ShellTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ShellTab.java deleted file mode 100755 index a8da54a31f..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ShellTab.java +++ /dev/null @@ -1,287 +0,0 @@ -package org.eclipse.swt.examples.controlexample;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-class ShellTab extends Tab {
- /* Style widgets added to the "Style" group */
- Button noParentButton, parentButton;
- Button noTrimButton, closeButton, titleButton, minButton, maxButton, borderButton, resizeButton, onTopButton;
- Button createButton, closeAllButton;
- Button modelessButton, primaryModalButton, applicationModalButton, systemModalButton;
- Group parentStyleGroup, modalStyleGroup;
-
- /* Variables used to track the open shells */
- int shellCount = 0;
- Shell [] shells = new Shell [4];
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- ShellTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Close all the example shells.
- */
- void closeAllShells() {
- for (int i = 0; i<shellCount; i++) {
- if (shells[i] != null & !shells [i].isDisposed ()) {
- shells [i].dispose();
- }
- }
- shellCount = 0;
- }
-
- /**
- * Handle the Create button selection event.
- *
- * @param event org.eclipse.swt.events.SelectionEvent
- */
- public void createButtonSelected(SelectionEvent event) {
-
- /*
- * Remember the example shells so they
- * can be disposed by the user.
- */
- if (shellCount >= shells.length) {
- Shell [] newShells = new Shell [shells.length + 4];
- System.arraycopy (shells, 0, newShells, 0, shells.length);
- shells = newShells;
- }
-
- /* Compute the shell style */
- int style = SWT.NONE;
- if (noTrimButton.getSelection()) style |= SWT.NO_TRIM;
- if (closeButton.getSelection()) style |= SWT.CLOSE;
- if (titleButton.getSelection()) style |= SWT.TITLE;
- if (minButton.getSelection()) style |= SWT.MIN;
- if (maxButton.getSelection()) style |= SWT.MAX;
- if (borderButton.getSelection()) style |= SWT.BORDER;
- if (resizeButton.getSelection()) style |= SWT.RESIZE;
- if (onTopButton.getSelection()) style |= SWT.ON_TOP;
- if (modelessButton.getSelection()) style |= SWT.MODELESS;
- if (primaryModalButton.getSelection()) style |= SWT.PRIMARY_MODAL;
- if (applicationModalButton.getSelection()) style |= SWT.APPLICATION_MODAL;
- if (systemModalButton.getSelection()) style |= SWT.SYSTEM_MODAL;
-
- /* Create the shell with or without a parent */
- if (noParentButton.getSelection ()) {
- shells [shellCount] = new Shell (style);
- } else {
- Shell shell = tabFolderPage.getShell ();
- shells [shellCount] = new Shell (shell, style);
- }
- final Shell currentShell = shells [shellCount];
- Button button = new Button(currentShell, SWT.PUSH);
- button.setBounds(20, 20, 120, 30);
- Button closeButton = new Button(currentShell, SWT.PUSH);
- closeButton.setBounds(160, 20, 120, 30);
- closeButton.setText(ControlExample.getResourceString("Close"));
- closeButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- currentShell.dispose();
- }
- });
-
- /* Set the size, title and open the shell */
- currentShell.setSize (300, 100);
- currentShell.setText (ControlExample.getResourceString("Title") + shellCount);
- currentShell.open ();
- shellCount++;
- }
-
- /**
- * Creates the "Control" group.
- */
- void createControlGroup () {
- /*
- * Create the "Control" group. This is the group on the
- * left half of each example tab. It consists of the
- * style group, the display group and the size group.
- */
- controlGroup = new Group (tabFolderPage, SWT.NULL);
- GridLayout gridLayout= new GridLayout ();
- controlGroup.setLayout (gridLayout);
- gridLayout.numColumns = 1;
- gridLayout.makeColumnsEqualWidth = true;
- controlGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- controlGroup.setText (ControlExample.getResourceString("Parameters"));
-
- /* Create individual groups inside the "Control" group */
- styleGroup = new Group (controlGroup, SWT.NULL);
- gridLayout = new GridLayout ();
- styleGroup.setLayout (gridLayout);
- gridLayout.numColumns = 2;
- gridLayout.makeColumnsEqualWidth = true;
- styleGroup.setLayoutData (new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- styleGroup.setText (ControlExample.getResourceString("Styles"));
-
- /* Create a group for the parent style controls */
- parentStyleGroup = new Group (styleGroup, SWT.NULL);
- parentStyleGroup.setLayout (new GridLayout ());
- GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- parentStyleGroup.setLayoutData (gridData);
- parentStyleGroup.setText (ControlExample.getResourceString("Parent"));
- }
-
- /**
- * Creates the "Control" widget children.
- */
- void createControlWidgets () {
-
- /* Create the parent style buttons */
- noParentButton = new Button (parentStyleGroup, SWT.RADIO);
- noParentButton.setText (ControlExample.getResourceString("No_Parent"));
- parentButton = new Button (parentStyleGroup, SWT.RADIO);
- parentButton.setText (ControlExample.getResourceString("Parent"));
-
- /* Create a group for the decoration style controls */
- Group decorationStyleGroup = new Group(styleGroup, SWT.NULL);
- decorationStyleGroup.setLayout (new GridLayout ());
- GridData gridData = new GridData (GridData.HORIZONTAL_ALIGN_FILL);
- gridData.verticalSpan = 2;
- decorationStyleGroup.setLayoutData (gridData);
- decorationStyleGroup.setText (ControlExample.getResourceString("Decoration_Styles"));
-
- /* Create the decoration style buttons */
- noTrimButton = new Button (decorationStyleGroup, SWT.CHECK);
- noTrimButton.setText ("SWT.NO_TRIM");
- closeButton = new Button (decorationStyleGroup, SWT.CHECK);
- closeButton.setText ("SWT.CLOSE");
- titleButton = new Button (decorationStyleGroup, SWT.CHECK);
- titleButton.setText ("SWT.TITLE");
- minButton = new Button (decorationStyleGroup, SWT.CHECK);
- minButton.setText ("SWT.MIN");
- maxButton = new Button (decorationStyleGroup, SWT.CHECK);
- maxButton.setText ("SWT.MAX");
- borderButton = new Button (decorationStyleGroup, SWT.CHECK);
- borderButton.setText ("SWT.BORDER");
- resizeButton = new Button (decorationStyleGroup, SWT.CHECK);
- resizeButton.setText ("SWT.RESIZE");
- onTopButton = new Button (decorationStyleGroup, SWT.CHECK);
- onTopButton.setText ("SWT.ON_TOP");
-
- /* Create a group for the modal style controls */
- modalStyleGroup = new Group (styleGroup, SWT.NONE);
- modalStyleGroup.setLayout (new GridLayout ());
- modalStyleGroup.setText (ControlExample.getResourceString("Modal_Styles"));
- gridData = new GridData ();
- gridData.verticalAlignment = GridData.FILL;
- modalStyleGroup.setLayoutData(gridData);
-
- /* Create the modal style buttons */
- modelessButton = new Button (modalStyleGroup, SWT.RADIO);
- modelessButton.setText ("SWT.MODELESS");
- primaryModalButton = new Button (modalStyleGroup, SWT.RADIO);
- primaryModalButton.setText ("SWT.PRIMARY_MODAL");
- applicationModalButton = new Button (modalStyleGroup, SWT.RADIO);
- applicationModalButton.setText ("SWT.APPLICATION_MODAL");
- systemModalButton = new Button (modalStyleGroup, SWT.RADIO);
- systemModalButton.setText ("SWT.SYSTEM_MODAL");
-
- /* Create the "create" and "closeAll" buttons */
- createButton = new Button (styleGroup, SWT.NULL);
- gridData = new GridData (GridData.HORIZONTAL_ALIGN_END);
- createButton.setLayoutData (gridData);
- createButton.setText (ControlExample.getResourceString("Create_Shell"));
- closeAllButton = new Button (styleGroup, SWT.NULL);
- gridData = new GridData (GridData.HORIZONTAL_ALIGN_BEGINNING);
- closeAllButton.setText (ControlExample.getResourceString("Close_All_Shells"));
- closeAllButton.setLayoutData (gridData);
-
- /* Add the listeners */
- createButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- createButtonSelected(e);
- };
- });
- closeAllButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- closeAllShells ();
- };
- });
- SelectionListener decorationButtonListener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- decorationButtonSelected(event);
- };
- };
- noTrimButton.addSelectionListener (decorationButtonListener);
- closeButton.addSelectionListener (decorationButtonListener);
- titleButton.addSelectionListener (decorationButtonListener);
- minButton.addSelectionListener (decorationButtonListener);
- maxButton.addSelectionListener (decorationButtonListener);
- borderButton.addSelectionListener (decorationButtonListener);
- resizeButton.addSelectionListener (decorationButtonListener);
- applicationModalButton.addSelectionListener (decorationButtonListener);
- systemModalButton.addSelectionListener (decorationButtonListener);
-
- /* Set the default state */
- noParentButton.setSelection (true);
- modelessButton.setSelection (true);
- }
-
- /**
- * Handle a decoration button selection event.
- *
- * @param event org.eclipse.swt.events.SelectionEvent
- */
- public void decorationButtonSelected(SelectionEvent event) {
-
- /* Make sure if the modal style is SWT.APPLICATION_MODAL or
- * SWT.SYSTEM_MODAL the style SWT.CLOSE is also selected.
- * This is to make sure the user can close the shell.
- */
- Button widget = (Button) event.widget;
- if (widget == applicationModalButton || widget == systemModalButton) {
- if (widget.getSelection()) {
- closeButton.setSelection (true);
- noTrimButton.setSelection (false);
- }
- return;
- }
- if (widget == closeButton) {
- if (applicationModalButton.getSelection() || systemModalButton.getSelection()) {
- closeButton.setSelection (true);
- }
- }
- /*
- * Make sure if the No Trim button is selected then
- * all other decoration buttons are deselected.
- */
- if (widget.getSelection() && widget != noTrimButton) {
- noTrimButton.setSelection (false);
- return;
- }
- if (widget.getSelection() && widget == noTrimButton) {
- if (applicationModalButton.getSelection() || systemModalButton.getSelection()) {
- noTrimButton.setSelection (false);
- return;
- }
- closeButton.setSelection (false);
- titleButton.setSelection (false);
- minButton.setSelection (false);
- maxButton.setSelection (false);
- borderButton.setSelection (false);
- resizeButton.setSelection (false);
- return;
- }
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Shell";
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SliderTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SliderTab.java deleted file mode 100755 index 0ded7dcb28..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SliderTab.java +++ /dev/null @@ -1,249 +0,0 @@ -package org.eclipse.swt.examples.controlexample;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-class SliderTab extends RangeTab {
- /* Example widgets and groups that contain them */
- Scale scale1;
- Slider slider1;
- Group sliderGroup, scaleGroup;
-
- /* Scale widgets added to the "Control" group */
- Scale incrementScale, pageIncrementScale, thumbScale;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- SliderTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Control" widget children.
- */
- void createControlWidgets () {
- super.createControlWidgets ();
- createThumbGroup ();
- createIncrementGroup ();
- createPageIncrementGroup ();
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the slider */
- sliderGroup = new Group (exampleGroup, SWT.NULL);
- sliderGroup.setLayout (new GridLayout ());
- sliderGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- sliderGroup.setText ("Slider");
-
- /* Create a group for the scale */
- scaleGroup = new Group (exampleGroup, SWT.NULL);
- scaleGroup.setLayout (new GridLayout ());
- scaleGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- scaleGroup.setText ("Scale");
-
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = SWT.NONE;
- if (horizontalButton.getSelection ()) style |= SWT.HORIZONTAL;
- if (verticalButton.getSelection ()) style |= SWT.VERTICAL;
- if (borderButton.getSelection ()) style |= SWT.BORDER;
-
- /* Create the example widgets */
- scale1 = new Scale (scaleGroup, style);
- scale1.setMaximum (100);
- scale1.setSelection (50);
- scale1.setIncrement (5);
- scale1.setPageIncrement (10);
- slider1 = new Slider(sliderGroup, style);
- slider1.setMaximum (100);
- slider1.setSelection (50);
- slider1.setIncrement(5);
- slider1.setPageIncrement (10);
- slider1.setThumb (10);
- }
-
- /**
- * Create a group of widgets to control the increment
- * attribute of the example widget.
- */
- void createIncrementGroup() {
-
- /* Create the group */
- Group incrementGroup = new Group (controlGroup, SWT.NULL);
- incrementGroup.setLayout (new GridLayout ());
- incrementGroup.setText (ControlExample.getResourceString("Increment"));
- incrementGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-
- /* Create the scale widget */
- incrementScale = new Scale (incrementGroup, SWT.NULL);
- incrementScale.setMaximum (100);
- incrementScale.setSelection (5);
- incrementScale.setPageIncrement (10);
- incrementScale.setIncrement (5);
-
- GridData data = new GridData (GridData.FILL_HORIZONTAL);
- data.widthHint = 100;
- incrementScale.setLayoutData (data);
-
- /* Add the listeners */
- incrementScale.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- setWidgetIncrement ();
- };
- });
- }
-
- /**
- * Create a group of widgets to control the page increment
- * attribute of the example widget.
- */
- void createPageIncrementGroup() {
-
- /* Create the group */
- Group pageIncrementGroup = new Group (controlGroup, SWT.NULL);
- pageIncrementGroup.setLayout (new GridLayout ());
- pageIncrementGroup.setText (ControlExample.getResourceString("Page_Increment"));
- pageIncrementGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-
- /* Create the scale widget */
- pageIncrementScale = new Scale (pageIncrementGroup, SWT.NULL);
- pageIncrementScale.setMaximum (100);
- pageIncrementScale.setSelection (10);
- pageIncrementScale.setPageIncrement (10);
- pageIncrementScale.setIncrement (5);
-
- GridData data = new GridData (GridData.FILL_HORIZONTAL);
- data.widthHint = 100;
- pageIncrementScale.setLayoutData (data);
-
- /* Add the listeners */
- pageIncrementScale.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setWidgetPageIncrement ();
- }
- });
- }
-
- /**
- * Create a group of widgets to control the thumb
- * attribute of the example widget.
- */
- void createThumbGroup() {
-
- /* Create the group */
- Group thumbGroup = new Group (controlGroup, SWT.NULL);
- thumbGroup.setLayout (new GridLayout ());
- thumbGroup.setText (ControlExample.getResourceString("Thumb"));
- thumbGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-
- /* Create the scale widget */
- thumbScale = new Scale (thumbGroup, SWT.NULL);
- thumbScale.setMaximum (100);
- thumbScale.setSelection (10);
- thumbScale.setPageIncrement (10);
- thumbScale.setIncrement (5);
-
- GridData data = new GridData (GridData.FILL_HORIZONTAL);
- data.widthHint = 100;
- thumbScale.setLayoutData (data);
-
- /* Add the listeners */
- thumbScale.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setWidgetThumb ();
- };
- });
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Control [] getExampleWidgets () {
- return new Control [] {scale1, slider1};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return ControlExample.getResourceString("Slider_and_Scale");
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- setWidgetIncrement ();
- setWidgetPageIncrement ();
- setWidgetThumb ();
- }
-
- /**
- * Sets the increment of the "Example" widgets.
- */
- void setWidgetIncrement () {
- slider1.setIncrement (incrementScale.getSelection ());
- scale1.setIncrement (incrementScale.getSelection ());
- }
-
- /**
- * Sets the minimim of the "Example" widgets.
- */
- void setWidgetMaximum () {
- slider1.setMaximum (maximumScale.getSelection ());
- scale1.setMaximum (maximumScale.getSelection ());
- }
-
- /**
- * Sets the minimim of the "Example" widgets.
- */
- void setWidgetMinimum () {
- slider1.setMinimum (minimumScale.getSelection ());
- scale1.setMinimum (minimumScale.getSelection ());
- }
-
- /**
- * Sets the page increment of the "Example" widgets.
- */
- void setWidgetPageIncrement () {
- slider1.setPageIncrement (pageIncrementScale.getSelection ());
- scale1.setPageIncrement (pageIncrementScale.getSelection ());
- }
-
- /**
- * Sets the selection of the "Example" widgets.
- */
- void setWidgetSelection () {
- slider1.setSelection (selectionScale.getSelection ());
- scale1.setSelection (selectionScale.getSelection ());
- }
-
- /**
- * Sets the thumb of the "Example" widgets.
- */
- void setWidgetThumb () {
- slider1.setThumb (thumbScale.getSelection ());
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/Tab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/Tab.java deleted file mode 100755 index 1c53bc8d69..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/Tab.java +++ /dev/null @@ -1,521 +0,0 @@ -package org.eclipse.swt.examples.controlexample;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-/**
- * <code>Tab</code> is the abstract superclass of every page
- * in the example's tab folder. Each page in the tab folder
- * describes a control.
- *
- * A Tab itself is not a control but instead provides a
- * hierarchy with which to share code that is common to
- * every page in the folder.
- *
- * A typical page in a Tab contains a two column composite.
- * The left column contains the "Example" group. The right
- * column contains "Control" group. The "Control" group
- * contains controls that allow the user to interact with
- * the example control. The "Control" group typically
- * contains a "Style", "Display" and "Size" group. Subclasses
- * can override these defaults to augment a group or stop
- * a group from being created.
- */
-abstract class Tab {
- /* Common control buttons */
- Button borderButton, enabledButton, visibleButton;
- Button preferredButton, tooSmallButton, smallButton, largeButton, fillButton;
-
- /* Common groups and composites */
- Composite tabFolderPage;
- Group exampleGroup, controlGroup, displayGroup, sizeGroup, styleGroup, colorGroup;
-
- /* Controlling instance */
- final ControlExample instance;
-
- /* Sizing constants for the "Size" group */
- static final int TOO_SMALL_SIZE = 10;
- static final int SMALL_SIZE = 50;
- static final int LARGE_SIZE = 100;
-
- /* Common controls for the "Colors" group */
- Button backgroundButton, foregroundButton, fontButton;
- Color backgroundColor, foregroundColor;
- Font font;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- Tab(ControlExample instance) {
- this.instance = instance;
- }
-
- /**
- * Creates the "Control" group. The "Control" group
- * is typically the right hand column in the tab.
- */
- void createControlGroup () {
-
- /*
- * Create the "Control" group. This is the group on the
- * left half of each example tab. It consists of the
- * style group, the display group and the size group.
- */
- controlGroup = new Group (tabFolderPage, SWT.NONE);
- GridLayout gridLayout= new GridLayout ();
- controlGroup.setLayout (gridLayout);
- gridLayout.numColumns = 2;
- gridLayout.makeColumnsEqualWidth = true;
- controlGroup.setLayoutData (new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- controlGroup.setText (ControlExample.getResourceString("Parameters"));
-
- /* Create individual groups inside the "Control" group */
- createStyleGroup ();
- createDisplayGroup ();
- createSizeGroup ();
- createColorGroup ();
-
- /*
- * For each Button child in the style group, add a selection
- * listener that will recreate the example controls. If the
- * style group button is a RADIO button, ensure that the radio
- * button is selected before recreating the example controls.
- * When the user selects a RADIO button, the current RADIO
- * button in the group is deselected and the new RADIO button
- * is selected automatically. The listeners are notified for
- * both these operations but typically only do work when a RADIO
- * button is selected.
- */
- SelectionListener selectionListener = new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- if ((event.widget.getStyle () & SWT.RADIO) != 0) {
- if (!((Button) event.widget).getSelection ()) return;
- }
- recreateExampleWidgets ();
- };
- };
- Control [] children = styleGroup.getChildren ();
- for (int i=0; i<children.length; i++) {
- if (children [i] instanceof Button) {
- Button button = (Button) children [i];
- button.addSelectionListener (selectionListener);
- }
- }
- }
-
- /**
- * Creates the "Control" widget children.
- * Subclasses override this method to augment
- * the standard controls created in the "Style",
- * "Display" and "Size" groups.
- */
- void createControlWidgets () {
- }
-
- /**
- * Creates the "Color" group. This is typically
- * a child of the "Control" group. Subclasses override
- * this method to customize and set system colors.
- */
- void createColorGroup () {
- /* Create the group */
- colorGroup = new Group(controlGroup, SWT.NULL);
- colorGroup.setLayout (new GridLayout (2, false));
- colorGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- colorGroup.setText (ControlExample.getResourceString ("Colors"));
- new Label (colorGroup, SWT.NONE).setText (ControlExample.getResourceString ("Foreground_Color"));
- foregroundButton = new Button (colorGroup, SWT.PUSH);
- new Label (colorGroup, SWT.NONE).setText (ControlExample.getResourceString ("Background_Color"));
- backgroundButton = new Button (colorGroup, SWT.PUSH);
- fontButton = new Button (colorGroup, SWT.PUSH);
- fontButton.setText(ControlExample.getResourceString("Font"));
-
- Shell shell = backgroundButton.getShell ();
- final ColorDialog backgroundDialog = new ColorDialog (shell);
- final ColorDialog foregroundDialog = new ColorDialog (shell);
- final FontDialog fontDialog = new FontDialog (shell);
-
- /* Create images to display current colors */
- int imageSize = 12;
- Display display = shell.getDisplay ();
- final Image backgroundImage = new Image (display, imageSize, imageSize);
- final Image foregroundImage = new Image (display, imageSize, imageSize);
-
- /* Add listeners to set the colors and font */
- backgroundButton.setImage(backgroundImage);
- backgroundButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- RGB rgb = backgroundDialog.open();
- if (rgb == null) return;
- Color oldColor = backgroundColor;
- backgroundColor = new Color (backgroundButton.getDisplay(), rgb);
- setExampleWidgetBackground ();
- if (oldColor != null) oldColor.dispose ();
- }
- });
- foregroundButton.setImage(foregroundImage);
- foregroundButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- RGB rgb = foregroundDialog.open();
- if (rgb == null) return;
- Color oldColor = foregroundColor;
- foregroundColor = new Color (foregroundButton.getDisplay(), rgb);
- setExampleWidgetForeground ();
- if (oldColor != null) oldColor.dispose ();
- }
- });
- fontButton.addSelectionListener(new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- FontData fontData = fontDialog.open ();
- if (fontData == null) return;
- Font oldFont = font;
- font = new Font (fontButton.getDisplay(), fontData);
- setExampleWidgetFont ();
- setExampleWidgetSize ();
- if (oldFont != null) oldFont.dispose ();
- }
- });
- backgroundButton.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent event) {
- if (backgroundImage != null) backgroundImage.dispose();
- if (foregroundImage != null) foregroundImage.dispose();
- if (backgroundColor != null) backgroundColor.dispose();
- if (foregroundColor != null) foregroundColor.dispose();
- if (font != null) font.dispose();
- backgroundColor = null;
- foregroundColor = null;
- font = null;
- }
- });
- }
-
- /**
- * Creates the "Display" group. This is typically
- * a child of the "Control" group.
- */
- void createDisplayGroup () {
- /* Create the group */
- displayGroup = new Group (controlGroup, SWT.NONE);
- displayGroup.setLayout (new GridLayout ());
- displayGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- displayGroup.setText (ControlExample.getResourceString("State"));
-
- /* Create the controls */
- enabledButton = new Button(displayGroup, SWT.CHECK);
- enabledButton.setText(ControlExample.getResourceString("Enabled"));
- visibleButton = new Button(displayGroup, SWT.CHECK);
- visibleButton.setText(ControlExample.getResourceString("Visible"));
-
- /* Add the listeners */
- enabledButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setExampleWidgetEnabled ();
- }
- });
- visibleButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setExampleWidgetVisibility ();
- }
- });
-
- /* Set the default state */
- enabledButton.setSelection(true);
- visibleButton.setSelection(true);
- }
-
- /**
- * Creates the "Example" group. The "Example" group
- * is typically the left hand column in the tab.
- */
- void createExampleGroup () {
- exampleGroup = new Group (tabFolderPage, SWT.NONE);
- GridLayout gridLayout = new GridLayout ();
- exampleGroup.setLayout (gridLayout);
- exampleGroup.setLayoutData (new GridData (GridData.FILL_BOTH));
- }
-
- /**
- * Creates the "Example" widget children of the "Example" group.
- * Subclasses override this method to create the particular
- * example control.
- */
- void createExampleWidgets () {
- /* Do nothing */
- }
-
- /**
- * Creates the "Size" group. The "Size" group contains
- * controls that allow the user to change the size of
- * the example widgets.
- */
- void createSizeGroup () {
- /* Create the group */
- sizeGroup = new Group (controlGroup, SWT.NONE);
- sizeGroup.setLayout (new GridLayout());
- sizeGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- sizeGroup.setText (ControlExample.getResourceString("Size"));
-
- /* Create the controls */
-
- /*
- * The preferred size of a widget is the size returned
- * by widget.computeSize (SWT.DEFAULT, SWT.DEFAULT).
- * This size is defined on a widget by widget basis.
- * Many widgets will attempt to display their contents.
- */
- preferredButton = new Button (sizeGroup, SWT.RADIO);
- preferredButton.setText (ControlExample.getResourceString("Preferred"));
- tooSmallButton = new Button (sizeGroup, SWT.RADIO);
- tooSmallButton.setText (TOO_SMALL_SIZE + " X " + TOO_SMALL_SIZE);
- smallButton = new Button(sizeGroup, SWT.RADIO);
- smallButton.setText (SMALL_SIZE + " X " + SMALL_SIZE);
- largeButton = new Button (sizeGroup, SWT.RADIO);
- largeButton.setText (LARGE_SIZE + " X " + LARGE_SIZE);
- fillButton = new Button (sizeGroup, SWT.RADIO);
- fillButton.setText (ControlExample.getResourceString("Fill"));
-
- /* Add the listeners */
- SelectionAdapter selectionListener = new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- if (!((Button) event.widget).getSelection ()) return;
- setExampleWidgetSize ();
- };
- };
- preferredButton.addSelectionListener(selectionListener);
- tooSmallButton.addSelectionListener(selectionListener);
- smallButton.addSelectionListener(selectionListener);
- largeButton.addSelectionListener(selectionListener);
- fillButton.addSelectionListener(selectionListener);
-
- /* Set the default state */
- preferredButton.setSelection (true);
- }
-
- /**
- * Creates the "Style" group. The "Style" group contains
- * controls that allow the user to change the style of
- * the example widgets. Changing a widget "Style" causes
- * the widget to be destroyed and recreated.
- */
- void createStyleGroup () {
- styleGroup = new Group (controlGroup, SWT.NONE);
- styleGroup.setLayout (new GridLayout ());
- styleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- styleGroup.setText (ControlExample.getResourceString("Styles"));
- }
-
- /**
- * Creates the tab folder page.
- *
- * @param tabFolder org.eclipse.swt.widgets.TabFolder
- * @return the new page for the tab folder
- */
- Composite createTabFolderPage (TabFolder tabFolder) {
- /*
- * Create a two column page.
- */
- tabFolderPage = new Composite (tabFolder, SWT.NULL);
- GridLayout gridLayout = new GridLayout ();
- tabFolderPage.setLayout (gridLayout);
- gridLayout.numColumns = 2;
-
- /* Create the "Example" and "Control" columns */
- createExampleGroup ();
- createControlGroup ();
-
- /* Create the widgets in the two columns */
- createExampleWidgets ();
- createControlWidgets ();
- setExampleWidgetState ();
-
- return tabFolderPage;
- }
-
- /**
- * Disposes the "Example" widgets.
- */
- void disposeExampleWidgets () {
- Control [] controls = getExampleWidgets ();
- for (int i=0; i<controls.length; i++) {
- controls [i].dispose ();
- }
- }
-
- void drawImage (Image image, Color color) {
- GC gc = new GC(image);
- gc.setBackground(color);
- Rectangle bounds = image.getBounds();
- gc.fillRectangle(0, 0, bounds.width, bounds.height);
- gc.drawRectangle(0, 0, bounds.width - 1, bounds.height - 1);
- gc.dispose();
- }
-
- /**
- * Gets the "Example" widget children.
- *
- * @return an array of example widget children
- */
- Control [] getExampleWidgets () {
- return new Control [0];
- }
-
- /**
- * Gets the text for the tab folder item.
- *
- * @return the text for the tab item
- */
- String getTabText () {
- return "";
- }
-
- /**
- * Recreates the "Example" widgets.
- */
- void recreateExampleWidgets () {
- disposeExampleWidgets ();
- createExampleWidgets ();
- setExampleWidgetState ();
- }
-
- /**
- * Sets the background color of the "Example" widgets.
- */
- void setExampleWidgetBackground () {
- if (backgroundButton == null) return;
- Control [] controls = getExampleWidgets ();
- Color color = backgroundColor;
- if (color == null) color = controls [0].getBackground ();
- Image image = backgroundButton.getImage ();
- drawImage (image, color);
- backgroundButton.setImage (image);
- if (backgroundColor == null) return;
- for (int i = 0; i < controls.length; i++) { - Control control = controls[i]; - control.setBackground (backgroundColor);
- }
- }
-
- /**
- * Sets the enabled state of the "Example" widgets.
- */
- void setExampleWidgetEnabled () {
- Control [] controls = getExampleWidgets ();
- for (int i=0; i<controls.length; i++) {
- controls [i].setEnabled (enabledButton.getSelection ());
- }
- }
-
- /**
- * Sets the font of the "Example" widgets.
- */
- void setExampleWidgetFont () {
- if (font == null) return;
- Control [] controls = getExampleWidgets ();
- for (int i = 0; i < controls.length; i++) {
- Control control = controls[i];
- control.setFont(font);
- }
- }
-
- /**
- * Sets the foreground color of the "Example" widgets.
- */
- void setExampleWidgetForeground () {
- if (foregroundButton == null) return;
- Control [] controls = getExampleWidgets ();
- Color color = foregroundColor;
- if (color == null) color = controls [0].getForeground ();
- Image image = foregroundButton.getImage ();
- drawImage (image, color);
- foregroundButton.setImage (image);
- if (foregroundColor == null) return;
- for (int i = 0; i < controls.length; i++) {
- Control control = controls[i];
- control.setForeground (foregroundColor);
- }
- }
-
- /**
- * Sets the size of the "Example" widgets.
- */
- void setExampleWidgetSize () {
- int size = SWT.DEFAULT;
- if (preferredButton == null) return;
- if (preferredButton.getSelection()) size = SWT.DEFAULT;
- if (tooSmallButton.getSelection()) size = TOO_SMALL_SIZE;
- if (smallButton.getSelection()) size = SMALL_SIZE;
- if (largeButton.getSelection()) size = LARGE_SIZE;
- Control [] controls = getExampleWidgets ();
- for (int i=0; i<controls.length; i++) {
- GridData gridData;
- if (fillButton.getSelection()) {
- gridData = new GridData (GridData.FILL_BOTH);
- } else {
- gridData = new GridData ();
- gridData.widthHint = size;
- gridData.heightHint = size;
- }
- controls [i].setLayoutData (gridData);
- }
- /*
- * Force the entire widget tree to layout,
- * even when the child sizes may not have
- * changed.
- */
- int seenCount = 0;
- Composite [] seen = new Composite [4];
- for (int i=0; i<controls.length; i++) {
- Control control = controls [i];
- while (control != exampleGroup) {
- Composite parent = control.getParent ();
- int index = 0;
- while (index < seenCount) {
- if (seen [index] == parent) break;
- index++;
- }
- if (index == seenCount) parent.layout ();
- if (seenCount == seen.length) {
- Composite [] newSeen = new Composite [seen.length + 4];
- System.arraycopy (seen, 0, newSeen, 0, seen.length);
- seen = newSeen;
- }
- seen [seenCount++] = parent;
- control = control.getParent ();
- }
- }
- }
-
- /**
- * Sets the state of the "Example" widgets. Subclasses
- * reimplement this method to set "Example" widget state
- * that is specific to the widget.
- */
- void setExampleWidgetState () {
- setExampleWidgetEnabled ();
- setExampleWidgetVisibility ();
- setExampleWidgetBackground ();
- setExampleWidgetForeground ();
- setExampleWidgetFont ();
- setExampleWidgetSize ();
- }
-
- /**
- * Sets the visibility of the "Example" widgets.
- */
- void setExampleWidgetVisibility () {
- Control [] controls = getExampleWidgets ();
- for (int i=0; i<controls.length; i++) {
- controls [i].setVisible (visibleButton.getSelection ());
- }
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TableTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TableTab.java deleted file mode 100755 index b4475122b3..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TableTab.java +++ /dev/null @@ -1,284 +0,0 @@ -package org.eclipse.swt.examples.controlexample;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-class TableTab extends ScrollableTab {
- /* Example widgets and groups that contain them */
- Table table1;
- Group tableGroup, tableItemGroup;
-
- /* Style widgets added to the "Style" group */
- Button checkButton, fullSelectionButton;
-
- /* Display widgets added to the "Display" group */
- Button headerVisibleButton, linesVisibleButton;
-
- /* Color widgets added to the "Color" group */
- Button itemBackgroundButton, itemForegroundButton;
- Color itemBackgroundColor, itemForegroundColor;
-
- static String [] columnTitles = {ControlExample.getResourceString("TableTitle_0"),
- ControlExample.getResourceString("TableTitle_1"),
- ControlExample.getResourceString("TableTitle_2"),
- ControlExample.getResourceString("TableTitle_3")};
-
- static String [] stringLine0 = {ControlExample.getResourceString("TableLine0_0"),
- ControlExample.getResourceString("TableLine0_1"),
- ControlExample.getResourceString("TableLine0_2"),
- ControlExample.getResourceString("TableLine0_3")};
-
- static String [] stringLine1 = {ControlExample.getResourceString("TableLine1_0"),
- ControlExample.getResourceString("TableLine1_1"),
- ControlExample.getResourceString("TableLine1_2"),
- ControlExample.getResourceString("TableLine1_3")};
-
- static String [] stringLine2 = {ControlExample.getResourceString("TableLine2_0"),
- ControlExample.getResourceString("TableLine2_1"),
- ControlExample.getResourceString("TableLine2_2"),
- ControlExample.getResourceString("TableLine2_3")};
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- TableTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Colors" group.
- */
- void createColorGroup () {
- super.createColorGroup();
-
- tableItemGroup = new Group (colorGroup, SWT.NONE);
- tableItemGroup.setText (ControlExample.getResourceString ("Table_Item_Colors"));
- GridData data = new GridData ();
- data.horizontalSpan = 2;
- tableItemGroup.setLayoutData (data);
- tableItemGroup.setLayout (new GridLayout (2, false));
- new Label (tableItemGroup, SWT.NONE).setText (ControlExample.getResourceString ("Item_Foreground_Color"));
- itemForegroundButton = new Button (tableItemGroup, SWT.PUSH);
- new Label (tableItemGroup, SWT.NONE).setText (ControlExample.getResourceString ("Item_Background_Color"));
- itemBackgroundButton = new Button (tableItemGroup, SWT.PUSH);
-
- Shell shell = itemBackgroundButton.getShell ();
- final ColorDialog backgroundDialog = new ColorDialog (shell);
- final ColorDialog foregroundDialog = new ColorDialog (shell);
-
- int imageSize = 12;
- Display display = shell.getDisplay ();
- final Image itemBackgroundImage = new Image(display, imageSize, imageSize);
- final Image itemForegroundImage = new Image(display, imageSize, imageSize);
-
- /* Add listeners to set the colors and font */
- itemBackgroundButton.setImage(itemBackgroundImage);
- itemBackgroundButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- RGB rgb = backgroundDialog.open();
- if (rgb == null) return;
- Color oldColor = itemBackgroundColor;
- itemBackgroundColor = new Color (itemBackgroundButton.getDisplay(), rgb);
- setItemsBackground ();
- if (oldColor != null) oldColor.dispose ();
- }
- });
- itemForegroundButton.setImage(itemForegroundImage);
- itemForegroundButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- RGB rgb = foregroundDialog.open();
- if (rgb == null) return;
- Color oldColor = itemForegroundColor;
- itemForegroundColor = new Color (itemForegroundButton.getDisplay(), rgb);
- setItemsForeground ();
- if (oldColor != null) oldColor.dispose ();
- }
- });
- itemBackgroundButton.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent event) {
- if (itemBackgroundImage != null) itemBackgroundImage.dispose();
- if (itemForegroundImage != null) itemForegroundImage.dispose();
- if (itemBackgroundColor != null) itemBackgroundColor.dispose();
- if (itemForegroundColor != null) itemForegroundColor.dispose();
- itemBackgroundColor = null;
- itemForegroundColor = null;
- }
- });
- }
-
- /**
- * Creates the "Display" group.
- */
- void createDisplayGroup () {
- super.createDisplayGroup ();
-
- /* Create display controls specific to this example */
- headerVisibleButton = new Button (displayGroup, SWT.CHECK);
- headerVisibleButton.setText (ControlExample.getResourceString("Header_Visible"));
- linesVisibleButton = new Button (displayGroup, SWT.CHECK);
- linesVisibleButton.setText (ControlExample.getResourceString("Lines_Visible"));
-
- /* Add the listeners */
- headerVisibleButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setWidgetHeaderVisible ();
- }
- });
- linesVisibleButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setWidgetLinesVisible ();
- };
- });
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the table */
- tableGroup = new Group (exampleGroup, SWT.NULL);
- tableGroup.setLayout (new GridLayout ());
- tableGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- tableGroup.setText ("Table");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
- /* Compute the widget style */
- int style = SWT.NONE;
- if (singleButton.getSelection ()) style |= SWT.SINGLE;
- if (multiButton.getSelection ()) style |= SWT.MULTI;
- if (verticalButton.getSelection ()) style |= SWT.V_SCROLL;
- if (horizontalButton.getSelection ()) style |= SWT.H_SCROLL;
- if (checkButton.getSelection ()) style |= SWT.CHECK;
- if (fullSelectionButton.getSelection ()) style |= SWT.FULL_SELECTION;
- if (borderButton.getSelection ()) style |= SWT.BORDER;
-
- /* Create the table widget */
- table1 = new Table (tableGroup, style);
-
- /* Fill the table with data */
- for (int i = 0; i < columnTitles.length; i++) {
- TableColumn tableColumn = new TableColumn(table1, SWT.NULL);
- tableColumn.setText(columnTitles[i]);
- }
- for (int i=0; i<16; i++) {
- TableItem item = new TableItem (table1, SWT.NULL);
- item.setImage (instance.images [i % 3]);
- switch (i % 3) {
- case 0:
- stringLine0 [0] = ControlExample.getResourceString("Index") + i;
- item.setText(stringLine0);
- break;
- case 1:
- stringLine1 [0] = ControlExample.getResourceString("Index") + i;
- item.setText(stringLine1);
- break;
- case 2:
- stringLine2 [0] = ControlExample.getResourceString("Index") + i;
- item.setText(stringLine2);
- break;
- }
- }
- for (int i = 0; i < columnTitles.length; i++) {
- TableColumn tableColumn = table1.getColumn(i);
- tableColumn.pack();
- }
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup () {
- super.createStyleGroup ();
-
- /* Create the extra widgets */
- checkButton = new Button (styleGroup, SWT.CHECK);
- checkButton.setText ("SWT.CHECK");
- fullSelectionButton = new Button (styleGroup, SWT.CHECK);
- fullSelectionButton.setText ("SWT.FULL_SELECTION");
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Control [] getExampleWidgets () {
- return new Control [] {table1};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Table";
- }
-
- /**
- * Sets the background color of the TableItems.
- */
- void setItemsBackground () {
- if (itemBackgroundButton == null) return;
- Color color = itemBackgroundColor;
- if (color == null) color = table1.getItem (0).getBackground ();
- Image image = itemBackgroundButton.getImage ();
- drawImage (image, color);
- itemBackgroundButton.setImage (image);
- if (itemBackgroundColor == null) return;
- table1.getItem (0).setBackground (itemBackgroundColor);
- }
-
- /**
- * Sets the foreground color of the TableItems.
- */
- void setItemsForeground () {
- if (itemForegroundButton == null) return;
- Color color = itemForegroundColor;
- if (color == null) color = table1.getItem (0).getForeground ();
- Image image = itemForegroundButton.getImage ();
- drawImage (image, color);
- itemForegroundButton.setImage (image);
- if (itemForegroundColor == null) return;
- table1.getItem (0).setForeground (itemForegroundColor);
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- setItemsBackground ();
- setItemsForeground ();
- setWidgetHeaderVisible ();
- setWidgetLinesVisible ();
- checkButton.setSelection ((table1.getStyle () & SWT.CHECK) != 0);
- fullSelectionButton.setSelection ((table1.getStyle () & SWT.FULL_SELECTION) != 0);
- }
-
- /**
- * Sets the header visible state of the "Example" widgets.
- */
- void setWidgetHeaderVisible () {
- table1.setHeaderVisible (headerVisibleButton.getSelection ());
- }
-
- /**
- * Sets the lines visible state of the "Example" widgets.
- */
- void setWidgetLinesVisible () {
- table1.setLinesVisible (linesVisibleButton.getSelection ());
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TextTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TextTab.java deleted file mode 100755 index 962aea1ba6..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TextTab.java +++ /dev/null @@ -1,219 +0,0 @@ -package org.eclipse.swt.examples.controlexample;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.custom.*;
-
-class TextTab extends ScrollableTab {
- /* Example widgets and groups that contain them */
- Text text;
- StyledText styledText;
- Group textGroup, styledTextGroup, styledTextStyleGroup;
-
- /* Style widgets added to the "Style" group */
- Button wrapButton, readOnlyButton;
-
- /* Buttons for adding StyleRanges to StyledText */
- Button boldButton, redButton, yellowButton;
- Image boldImage, redImage, yellowImage;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- TextTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates a bitmap image.
- */
- Image createBitmapImage (Display display, String name) {
- ImageData source = new ImageData(ControlExample.class.getResourceAsStream(name + ".bmp"));
- ImageData mask = new ImageData(ControlExample.class.getResourceAsStream(name + "_mask.bmp"));
- return new Image (display, source, mask);
- }
-
- /**
- * Creates the "Control" widget children.
- */
- void createControlWidgets () {
- super.createControlWidgets ();
-
- /* Add a group for modifying the StyledText widget */
- createStyledTextStyleGroup ();
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the text widget */
- textGroup = new Group (exampleGroup, SWT.NULL);
- textGroup.setLayout (new GridLayout ());
- textGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- textGroup.setText ("Text");
-
- /* Create a group for the styled text widget */
- styledTextGroup = new Group (exampleGroup, SWT.NULL);
- styledTextGroup.setLayout (new GridLayout ());
- styledTextGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- styledTextGroup.setText ("StyledText");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = SWT.NONE;
- if (singleButton.getSelection ()) style |= SWT.SINGLE;
- if (multiButton.getSelection ()) style |= SWT.MULTI;
- if (horizontalButton.getSelection ()) style |= SWT.H_SCROLL;
- if (verticalButton.getSelection ()) style |= SWT.V_SCROLL;
- if (wrapButton.getSelection ()) style |= SWT.WRAP;
- if (readOnlyButton.getSelection ()) style |= SWT.READ_ONLY;
- if (borderButton.getSelection ()) style |= SWT.BORDER;
-
- /* Create the example widgets */
- text = new Text (textGroup, style);
- text.setText (ControlExample.getResourceString("Example_string") + Text.DELIMITER + ControlExample.getResourceString("One_Two_Three"));
- styledText = new StyledText (styledTextGroup, style);
- styledText.setText (ControlExample.getResourceString("Example_string"));
- styledText.append ("\n");
- styledText.append (ControlExample.getResourceString("One_Two_Three"));
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup() {
- super.createStyleGroup();
-
- /* Create the extra widgets */
- wrapButton = new Button (styleGroup, SWT.CHECK);
- wrapButton.setText ("SWT.WRAP");
- readOnlyButton = new Button (styleGroup, SWT.CHECK);
- readOnlyButton.setText ("SWT.READ_ONLY");
- }
-
- /**
- * Creates the "StyledText Style" group.
- */
- void createStyledTextStyleGroup () {
- final Display display = controlGroup.getDisplay ();
- styledTextStyleGroup = new Group (controlGroup, SWT.NONE);
- styledTextStyleGroup.setText (ControlExample.getResourceString ("StyledText_Styles"));
- styledTextStyleGroup.setLayout (new GridLayout(2, false));
- styledTextStyleGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL));
-
- /* Get images */
- boldImage = createBitmapImage (display, "bold");
- redImage = createBitmapImage (display, "red");
- yellowImage = createBitmapImage (display, "yellow");
-
- /* Create controls to modify the StyledText */
- Label label = new Label (styledTextStyleGroup, SWT.NONE);
- label.setText (ControlExample.getResourceString ("StyledText_Style_Instructions"));
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
- label.setLayoutData(data);
- new Label (styledTextStyleGroup, SWT.NONE).setText (ControlExample.getResourceString ("Bold"));
- boldButton = new Button (styledTextStyleGroup, SWT.PUSH);
- boldButton.setImage (boldImage);
- boldButton.addSelectionListener(new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- Point sel = styledText.getSelectionRange();
- if ((sel == null) || (sel.y == 0)) return;
- StyleRange style;
- for (int i = sel.x; i<sel.x+sel.y; i++) {
- StyleRange range = styledText.getStyleRangeAtOffset(i);
- if (range == null) {style = new StyleRange(i, 1, null, null, SWT.BOLD);}
- else {style = new StyleRange(i, 1, range.foreground, range.background, SWT.BOLD);};
- styledText.setStyleRange(style);
- }
- styledText.setSelectionRange(sel.x + sel.y, 0);
- }
- });
- new Label (styledTextStyleGroup, SWT.NONE).setText (ControlExample.getResourceString ("Foreground_Style"));
- redButton = new Button (styledTextStyleGroup, SWT.PUSH);
- redButton.setImage (redImage);
- new Label (styledTextStyleGroup, SWT.NONE).setText (ControlExample.getResourceString ("Background_Style"));
- yellowButton = new Button (styledTextStyleGroup, SWT.PUSH);
- yellowButton.setImage (yellowImage);
- SelectionListener colorListener = new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- Point sel = styledText.getSelectionRange();
- if ((sel == null) || (sel.y == 0)) return;
- Color fg, bg;
- if (e.widget == redButton) {
- fg = display.getSystemColor (SWT.COLOR_RED);
- bg = null;
- } else if (e.widget == yellowButton) {
- fg = null;
- bg = display.getSystemColor (SWT.COLOR_YELLOW);
- } else {
- fg = bg = null;
- }
- StyleRange style;
- for (int i = sel.x; i<sel.x+sel.y; i++) {
- StyleRange range = styledText.getStyleRangeAtOffset(i);
- if (range == null) {
- style = new StyleRange(i, 1, fg, bg, SWT.NORMAL);
- }
- else {
- if (range.foreground != null) fg = range.foreground;
- if (range.background != null) bg = range.background;
- style = new StyleRange(i, 1, fg, bg, range.fontStyle);
- };
- styledText.setStyleRange(style);
- }
- styledText.setSelectionRange(sel.x + sel.y, 0);
- };
- };
- redButton.addSelectionListener(colorListener);
- yellowButton.addSelectionListener(colorListener);
- yellowButton.addDisposeListener(new DisposeListener () {
- public void widgetDisposed (DisposeEvent e) {
- boldImage.dispose();
- redImage.dispose();
- yellowImage.dispose();
- }
- });
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Control [] getExampleWidgets () {
- return new Control [] {text, styledText};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Text";
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- wrapButton.setSelection ((text.getStyle () & SWT.WRAP) != 0);
- readOnlyButton.setSelection ((text.getStyle () & SWT.READ_ONLY) != 0);
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ToolBarTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ToolBarTab.java deleted file mode 100755 index 0f840cd90f..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ToolBarTab.java +++ /dev/null @@ -1,248 +0,0 @@ -package org.eclipse.swt.examples.controlexample;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-class ToolBarTab extends Tab {
- /* Example widgets and groups that contain them */
- ToolBar imageToolBar, textToolBar;
- Group imageToolBarGroup, textToolBarGroup;
-
- /* Style widgets added to the "Style" group */
- Button flatButton, wrapButton;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- ToolBarTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the image tool bar */
- imageToolBarGroup = new Group (exampleGroup, SWT.NULL);
- imageToolBarGroup.setLayout (new GridLayout ());
- imageToolBarGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- imageToolBarGroup.setText (ControlExample.getResourceString("Image_ToolBar"));
-
- /* Create a group for the text tool bar */
- textToolBarGroup = new Group (exampleGroup, SWT.NULL);
- textToolBarGroup.setLayout (new GridLayout ());
- textToolBarGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- textToolBarGroup.setText (ControlExample.getResourceString("Text_ToolBar"));
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = SWT.NONE;
- if (flatButton.getSelection()) style |= SWT.FLAT;
- if (wrapButton.getSelection()) style |= SWT.WRAP;
- if (borderButton.getSelection()) style |= SWT.BORDER;
-
- /*
- * Create the example widgets.
- *
- * A tool bar must consist of all image tool
- * items or all text tool items but not both.
- */
-
- /* Create the image tool bar */
- imageToolBar = new ToolBar (imageToolBarGroup, style);
- ToolItem item = new ToolItem (imageToolBar, SWT.PUSH);
- item.setImage (instance.images[ControlExample.ciClosedFolder]);
- item.setToolTipText("SWT.PUSH");
- item = new ToolItem (imageToolBar, SWT.PUSH);
- item.setImage (instance.images[ControlExample.ciClosedFolder]);
- item.setToolTipText ("SWT.PUSH");
- item = new ToolItem (imageToolBar, SWT.RADIO);
- item.setImage (instance.images[ControlExample.ciOpenFolder]);
- item.setToolTipText ("SWT.RADIO");
- item = new ToolItem (imageToolBar, SWT.RADIO);
- item.setImage (instance.images[ControlExample.ciOpenFolder]);
- item.setToolTipText ("SWT.RADIO");
- item = new ToolItem (imageToolBar, SWT.CHECK);
- item.setImage (instance.images[ControlExample.ciTarget]);
- item.setToolTipText ("SWT.CHECK");
- item = new ToolItem (imageToolBar, SWT.RADIO);
- item.setImage (instance.images[ControlExample.ciClosedFolder]);
- item.setToolTipText ("SWT.RADIO");
- item = new ToolItem (imageToolBar, SWT.RADIO);
- item.setImage (instance.images[ControlExample.ciClosedFolder]);
- item.setToolTipText ("SWT.RADIO");
- item = new ToolItem (imageToolBar, SWT.SEPARATOR);
- item.setToolTipText("SWT.SEPARATOR");
- item = new ToolItem (imageToolBar, SWT.DROP_DOWN);
- item.setImage (instance.images[ControlExample.ciTarget]);
- item.setToolTipText ("SWT.DROP_DOWN");
- item.addSelectionListener(new DropDownSelectionListener());
-
- /* Create the text tool bar */
- textToolBar = new ToolBar (textToolBarGroup, style);
- item = new ToolItem (textToolBar, SWT.PUSH);
- item.setText (ControlExample.getResourceString("Push"));
- item.setToolTipText("SWT.PUSH");
- item = new ToolItem (textToolBar, SWT.PUSH);
- item.setText (ControlExample.getResourceString("Push"));
- item.setToolTipText("SWT.PUSH");
- item = new ToolItem (textToolBar, SWT.RADIO);
- item.setText (ControlExample.getResourceString("Radio"));
- item.setToolTipText("SWT.RADIO");
- item = new ToolItem (textToolBar, SWT.RADIO);
- item.setText (ControlExample.getResourceString("Radio"));
- item.setToolTipText("SWT.RADIO");
- item = new ToolItem (textToolBar, SWT.CHECK);
- item.setText (ControlExample.getResourceString("Check"));
- item.setToolTipText("SWT.CHECK");
- item = new ToolItem (textToolBar, SWT.RADIO);
- item.setText (ControlExample.getResourceString("Radio"));
- item.setToolTipText("SWT.RADIO");
- item = new ToolItem (textToolBar, SWT.RADIO);
- item.setText (ControlExample.getResourceString("Radio"));
- item.setToolTipText("SWT.RADIO");
- item = new ToolItem (textToolBar, SWT.SEPARATOR);
- item.setToolTipText("SWT.SEPARATOR");
- item = new ToolItem (textToolBar, SWT.DROP_DOWN);
- item.setText (ControlExample.getResourceString("Drop_Down"));
- item.setToolTipText("SWT.DROP_DOWN");
- item.addSelectionListener(new DropDownSelectionListener());
-
- /*
- * Do not add the selection event for this drop down
- * tool item. Without hooking the event, the drop down
- * widget does nothing special when the drop down area
- * is selected.
- */
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup() {
- super.createStyleGroup();
-
- /* Create the extra widgets */
- flatButton = new Button (styleGroup, SWT.CHECK);
- flatButton.setText ("SWT.FLAT");
- wrapButton = new Button (styleGroup, SWT.CHECK);
- wrapButton.setText ("SWT.WRAP");
- borderButton = new Button (styleGroup, SWT.CHECK);
- borderButton.setText ("SWT.BORDER");
- }
-
- void disposeExampleWidgets () {
- super.disposeExampleWidgets ();
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Control [] getExampleWidgets () {
- return new Control [] {imageToolBar, textToolBar};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "ToolBar";
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- flatButton.setSelection ((imageToolBar.getStyle () & SWT.FLAT) != 0);
- wrapButton.setSelection ((imageToolBar.getStyle () & SWT.WRAP) != 0);
- borderButton.setSelection ((imageToolBar.getStyle () & SWT.BORDER) != 0);
- }
-
- /**
- * Listens to widgetSelected() events on SWT.DROP_DOWN type ToolItems
- * and opens/closes a menu when appropriate.
- */
- class DropDownSelectionListener extends SelectionAdapter {
- private Menu menu = null;
- private boolean visible = false;
-
- public void widgetSelected(SelectionEvent event) {
- // Create the menu if it has not already been created
- if (menu == null) {
- // Lazy create the menu.
- Shell shell = tabFolderPage.getShell();
- menu = new Menu(shell);
- for (int i = 0; i < 9; ++i) {
- final String text = ControlExample.getResourceString("DropDownData_" + i);
- if (text.length() != 0) {
- MenuItem menuItem = new MenuItem(menu, SWT.NONE);
- menuItem.setText(text);
- /*
- * Add a menu selection listener so that the menu is hidden
- * when the user selects an item from the drop down menu.
- */
- menuItem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- setMenuVisible(false);
- }
- });
- } else {
- MenuItem menuItem = new MenuItem(menu, SWT.SEPARATOR);
- }
- }
- }
-
- /**
- * A selection event will be fired when a drop down tool
- * item is selected in the main area and in the drop
- * down arrow. Examine the event detail to determine
- * where the widget was selected.
- */
- if (event.detail == SWT.ARROW) {
- /*
- * The drop down arrow was selected.
- */
- if (visible) {
- // Hide the menu to give the Arrow the appearance of being a toggle button.
- setMenuVisible(false);
- } else {
- // Position the menu below and vertically aligned with the the drop down tool button.
- final ToolItem toolItem = (ToolItem) event.widget;
- final ToolBar toolBar = toolItem.getParent();
-
- Rectangle toolItemBounds = toolItem.getBounds();
- Point point = toolBar.toDisplay(new Point(toolItemBounds.x, toolItemBounds.y));
- menu.setLocation(point.x, point.y + toolItemBounds.height);
- setMenuVisible(true);
- }
- } else {
- /*
- * Main area of drop down tool item selected.
- * An application would invoke the code to perform the action for the tool item.
- */
- }
- }
- private void setMenuVisible(boolean visible) {
- menu.setVisible(visible);
- this.visible = visible;
- }
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TreeTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TreeTab.java deleted file mode 100755 index 22a65635b6..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TreeTab.java +++ /dev/null @@ -1,136 +0,0 @@ -package org.eclipse.swt.examples.controlexample;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-
-class TreeTab extends ScrollableTab {
- /* Example widgets and groups that contain them */
- Tree tree1, tree2;
- Group treeGroup, imageTreeGroup;
-
- /* Style widgets added to the "Style" group */
- Button checkButton;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- TreeTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the text tree */
- treeGroup = new Group (exampleGroup, SWT.NULL);
- treeGroup.setLayout (new GridLayout ());
- treeGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- treeGroup.setText ("Tree");
-
- /* Create a group for the image tree */
- imageTreeGroup = new Group (exampleGroup, SWT.NULL);
- imageTreeGroup.setLayout (new GridLayout ());
- imageTreeGroup.setLayoutData (new GridData (GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- imageTreeGroup.setText (ControlExample.getResourceString("Tree_With_Images"));
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
- /* Compute the widget style */
- int style = SWT.NONE;
- if (singleButton.getSelection()) style |= SWT.SINGLE;
- if (multiButton.getSelection()) style |= SWT.MULTI;
- if (checkButton.getSelection()) style |= SWT.CHECK;
- if (borderButton.getSelection()) style |= SWT.BORDER;
-
- /* Create the text tree */
- tree1 = new Tree (treeGroup, style);
- TreeItem node1 = new TreeItem (tree1, SWT.NULL);
- node1.setText (ControlExample.getResourceString("Node_1"));
- TreeItem node2 = new TreeItem (tree1, SWT.NULL);
- node2.setText (ControlExample.getResourceString("Node_2"));
- TreeItem node3 = new TreeItem (tree1, SWT.NULL);
- node3.setText (ControlExample.getResourceString("Node_3"));
- TreeItem node4 = new TreeItem (tree1, SWT.NULL);
- node4.setText (ControlExample.getResourceString("Node_4"));
- TreeItem node1_1 = new TreeItem (node1, SWT.NULL);
- node1_1.setText (ControlExample.getResourceString("Node_1_1"));
- TreeItem node2_1 = new TreeItem (node2, SWT.NULL);
- node2_1.setText (ControlExample.getResourceString("Node_2_1"));
- TreeItem node3_1 = new TreeItem (node3, SWT.NULL);
- node3_1.setText (ControlExample.getResourceString("Node_3_1"));
- TreeItem node2_2 = new TreeItem (node2, SWT.NULL);
- node2_2.setText (ControlExample.getResourceString("Node_2_2"));
- TreeItem node2_2_1 = new TreeItem (node2_2, SWT.NULL);
- node2_2_1.setText (ControlExample.getResourceString("Node_2_2_1"));
-
- /* Create the image tree */
- tree2 = new Tree (imageTreeGroup, style);
- node1 = new TreeItem (tree2, SWT.NULL);
- node1.setText (ControlExample.getResourceString("Node_1"));
- node1.setImage (instance.images[ControlExample.ciClosedFolder]);
- node2 = new TreeItem (tree2, SWT.NULL);
- node2.setText (ControlExample.getResourceString("Node_2"));
- node2.setImage (instance.images[ControlExample.ciClosedFolder]);
- node3 = new TreeItem (tree2, SWT.NULL);
- node3.setText (ControlExample.getResourceString("Node_3"));
- node3.setImage (instance.images[ControlExample.ciClosedFolder]);
- node4 = new TreeItem (tree2, SWT.NULL);
- node4.setText (ControlExample.getResourceString("Node_4"));
- node4.setImage (instance.images[ControlExample.ciClosedFolder]);
- node1_1 = new TreeItem (node1, SWT.NULL);
- node1_1.setText (ControlExample.getResourceString("Node_1_1"));
- node1_1.setImage (instance.images[ControlExample.ciClosedFolder]);
- node2_1 = new TreeItem (node2, SWT.NULL);
- node2_1.setText (ControlExample.getResourceString("Node_2_1"));
- node2_1.setImage (instance.images[ControlExample.ciClosedFolder]);
- node3_1 = new TreeItem (node3, SWT.NULL);
- node3_1.setText (ControlExample.getResourceString("Node_3_1"));
- node3_1.setImage (instance.images[ControlExample.ciClosedFolder]);
- node2_2 = new TreeItem(node2, SWT.NULL);
- node2_2.setText (ControlExample.getResourceString("Node_2_2"));
- node2_2.setImage (instance.images[ControlExample.ciClosedFolder]);
- node2_2_1 = new TreeItem (node2_2, SWT.NULL);
- node2_2_1.setText (ControlExample.getResourceString("Node_2_2_1"));
- node2_2_1.setImage (instance.images[ControlExample.ciClosedFolder]);
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup() {
- super.createStyleGroup();
-
- /* Create the extra widgets */
- checkButton = new Button (styleGroup, SWT.CHECK);
- checkButton.setText ("SWT.CHECK");
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Control [] getExampleWidgets () {
- return new Control [] {tree1, tree2};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Tree";
- }
-
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold.bmp Binary files differdeleted file mode 100644 index a3184bb26c..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold_mask.bmp Binary files differdeleted file mode 100644 index 382751efa3..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold_mask.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/closedFolder.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/closedFolder.gif Binary files differdeleted file mode 100644 index 6660d0b11a..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/closedFolder.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/openFolder.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/openFolder.gif Binary files differdeleted file mode 100644 index fc9943f111..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/openFolder.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red.bmp Binary files differdeleted file mode 100644 index 88c63be336..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red_mask.bmp Binary files differdeleted file mode 100644 index 6ce92645e5..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red_mask.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/target.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/target.gif Binary files differdeleted file mode 100644 index 9807ae648d..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/target.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow.bmp Binary files differdeleted file mode 100644 index 631d0690fa..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow_mask.bmp Binary files differdeleted file mode 100644 index 6ce92645e5..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow_mask.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/FileViewer.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/FileViewer.java deleted file mode 100755 index 110afa14a0..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/FileViewer.java +++ /dev/null @@ -1,1734 +0,0 @@ -package org.eclipse.swt.examples.fileviewer;
-
/*
- * Copyright (c) 2000, 2002 IBM Corp. All rights reserved. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.dnd.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.program.*;
-import org.eclipse.swt.widgets.*;
-
-import java.io.*;
-import java.text.*;
-import java.util.*;
-
/**
- * File Viewer example
- */
-public class FileViewer {
- private static ResourceBundle resourceBundle = ResourceBundle.getBundle("examples_fileviewer");
-
private final static String DRIVE_A = "a:" + File.separator;
- private final static String DRIVE_B = "b:" + File.separator;
-
- /* UI elements */
- private Display display;
- private Shell shell;
- private ToolBar toolBar;
-
- private Label numObjectsLabel;
- private Label diskSpaceLabel;
-
- private File currentDirectory = null;
- private boolean initial = true;
-
- /* Drag and drop optimizations */
- private boolean isDragging = false; // if this app is dragging
- private boolean isDropping = false; // if this app is dropping
-
- private File[] processedDropFiles = null; // so Drag only deletes what it needs to
- private File[] deferredRefreshFiles = null; // to defer notifyRefreshFiles while we do DND
- private boolean deferredRefreshRequested = false; // to defer notifyRefreshFiles while we do DND
- private ProgressDialog progressDialog = null; // progress dialog for locally-initiated operations
-
- /* Combo view */
- private static final String COMBODATA_ROOTS = "Combo.roots";
- // File[]: Array of files whose paths are currently displayed in the combo
- private static final String COMBODATA_LASTTEXT = "Combo.lastText";
- // String: Previous selection text string
-
- private Combo combo;
-
- /* Tree view */
- private IconCache iconCache = new IconCache();
- private static final String TREEITEMDATA_FILE = "TreeItem.file";
- // File: File associated with tree item
- private static final String TREEITEMDATA_IMAGEEXPANDED = "TreeItem.imageExpanded";
- // Image: shown when item is expanded
- private static final String TREEITEMDATA_IMAGECOLLAPSED = "TreeItem.imageCollapsed";
- // Image: shown when item is collapsed
- private static final String TREEITEMDATA_STUB = "TreeItem.stub";
- // Object: if not present or null then the item has not been populated
-
- private Tree tree;
- private Label treeScopeLabel;
-
- /* Table view */
- private static final DateFormat dateFormat = DateFormat.getDateTimeInstance(
- DateFormat.MEDIUM, DateFormat.MEDIUM);
- private static final String TABLEITEMDATA_FILE = "TableItem.file";
- // File: File associated with table row
- private static final String TABLEDATA_DIR = "Table.dir";
- // File: Currently visible directory
- private static final int[] tableWidths = new int[] {150, 60, 75, 150};
- private final String[] tableTitles = new String [] {
- FileViewer.getResourceString("table.Name.title"),
- FileViewer.getResourceString("table.Size.title"),
- FileViewer.getResourceString("table.Type.title"),
- FileViewer.getResourceString("table.Modified.title")
- };
- private Table table;
- private Label tableContentsOfLabel;
-
- /* Table update worker */
- // Control data
- private final Object workerLock = new Object();
- // Lock for all worker control data and state
- private volatile Thread workerThread = null;
- // The worker's thread
- private volatile boolean workerStopped = false;
- // True if the worker must exit on completion of the current cycle
- private volatile boolean workerCancelled = false;
- // True if the worker must cancel its operations prematurely perhaps due to a state update
-
- // Worker state information -- this is what gets synchronized by an update
- private volatile File workerStateDir = null;
-
- // State information to use for the next cycle
- private volatile File workerNextDir = null;
-
- /* Simulate only flag */
- // when true, disables actual filesystem manipulations and outputs results to standard out
- private boolean simulateOnly = true;
-
- /**
- * Runs main program.
- */
- public static void main (String [] args) {
- Display display = new Display ();
- FileViewer application = new FileViewer();
- Shell shell = application.open(display);
- while (! shell.isDisposed()) {
- if (! display.readAndDispatch()) display.sleep();
- }
- display.dispose();
- }
-
- /**
- * Opens the main program.
- */
- public Shell open(Display display) {
- // Create the window
- this.display = display;
- iconCache.initResources(display);
- shell = new Shell();
- createShellContents();
- notifyRefreshFiles(null);
- shell.addDisposeListener(new DisposeListener () {
- public void widgetDisposed(DisposeEvent e) {
- // Cleanup
- workerStop();
- iconCache.freeResources();
- }
- });
- shell.open();
- return shell;
- }
-
/**
- * Closes the main program.
- */
- void close() {
- workerStop(); // be polite
- shell.close();
- }
-
- /**
- * Returns a string from the resource bundle.
- * We don't want to crash because of a missing String.
- * Returns the key if not found.
- */
- static String getResourceString(String key) {
- try {
- return resourceBundle.getString(key);
- } catch (MissingResourceException e) {
- return key;
- } catch (NullPointerException e) {
- return "!" + key + "!";
- }
- }
-
- /**
- * Returns a string from the resource bundle and binds it
- * with the given arguments. If the key is not found,
- * return the key.
- */
- static String getResourceString(String key, Object[] args) {
- try {
- return MessageFormat.format(getResourceString(key), args);
- } catch (MissingResourceException e) {
- return key;
- } catch (NullPointerException e) {
- return "!" + key + "!";
- }
- }
-
- /**
- * Construct the UI
- *
- * @param container the ShellContainer managing the Shell we are rendering inside
- */
- private void createShellContents() {
- shell.setText(getResourceString("Title", new Object[] { "" }));
- shell.setImage(iconCache.stockImages[iconCache.shellIcon]);
- Menu bar = new Menu(shell, SWT.BAR);
- shell.setMenuBar(bar);
- createFileMenu(bar);
- createHelpMenu(bar);
-
- GridLayout gridLayout = new GridLayout();
- gridLayout.numColumns = 3;
- gridLayout.marginHeight = gridLayout.marginWidth = 0;
- shell.setLayout(gridLayout);
-
- GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- gridData.widthHint = 185;
- createComboView(shell, gridData);
- gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- gridData.horizontalSpan = 2;
- createToolBar(shell, gridData);
-
- SashForm sashForm = new SashForm(shell, SWT.NONE);
- sashForm.setOrientation(SWT.HORIZONTAL);
- gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL);
- gridData.horizontalSpan = 3;
- sashForm.setLayoutData(gridData);
- createTreeView(sashForm);
- createTableView(sashForm);
- sashForm.setWeights(new int[] { 2, 5 });
-
- numObjectsLabel = new Label(shell, SWT.BORDER);
- gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL);
- gridData.widthHint = 185;
- numObjectsLabel.setLayoutData(gridData);
-
- diskSpaceLabel = new Label(shell, SWT.BORDER);
- gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL);
- gridData.horizontalSpan = 2;
- diskSpaceLabel.setLayoutData(gridData);
- }
-
- /**
- * Creates the File Menu.
- *
- * @param parent the parent menu
- */
- private void createFileMenu(Menu parent) {
- Menu menu = new Menu(parent);
- MenuItem header = new MenuItem(parent, SWT.CASCADE);
- header.setText(getResourceString("menu.File.text"));
- header.setMenu(menu);
-
- final MenuItem simulateItem = new MenuItem(menu, SWT.CHECK);
- simulateItem.setText(getResourceString("menu.File.SimulateOnly.text"));
- simulateItem.setSelection(simulateOnly);
- simulateItem.addSelectionListener(new SelectionAdapter () {
- public void widgetSelected(SelectionEvent e) {
- simulateOnly = simulateItem.getSelection();
- }
- });
-
- MenuItem item = new MenuItem(menu, SWT.PUSH);
- item.setText(getResourceString("menu.File.Close.text"));
- item.addSelectionListener(new SelectionAdapter () {
- public void widgetSelected(SelectionEvent e) {
- close();
- }
- });
- }
-
- /**
- * Creates the Help Menu.
- *
- * @param parent the parent menu
- */
- private void createHelpMenu(Menu parent) {
- Menu menu = new Menu(parent);
- MenuItem header = new MenuItem(parent, SWT.CASCADE);
- header.setText(getResourceString("menu.Help.text"));
- header.setMenu(menu);
-
- MenuItem item = new MenuItem(menu, SWT.PUSH);
- item.setText(getResourceString("menu.Help.About.text"));
- item.addSelectionListener(new SelectionAdapter () {
- public void widgetSelected(SelectionEvent e) {
- MessageBox box = new MessageBox(shell, SWT.ICON_INFORMATION | SWT.OK);
- box.setText(getResourceString("dialog.About.title"));
- box.setMessage(getResourceString("dialog.About.description",
- new Object[] { System.getProperty("os.name") }));
- box.open();
- }
- });
- }
-
- /**
- * Creates the toolbar
- *
- * @param shell the shell on which to attach the toolbar
- * @param layoutData the layout data
- */
- private void createToolBar(final Shell shell, Object layoutData) {
- toolBar = new ToolBar(shell, SWT.NULL);
- toolBar.setLayoutData(layoutData);
- ToolItem item = new ToolItem(toolBar, SWT.SEPARATOR);
- item = new ToolItem(toolBar, SWT.PUSH);
- item.setImage(iconCache.stockImages[iconCache.cmdParent]);
- item.setToolTipText(getResourceString("tool.Parent.tiptext"));
- item.addSelectionListener(new SelectionAdapter () {
- public void widgetSelected(SelectionEvent e) {
- doParent();
- }
- });
- item = new ToolItem(toolBar, SWT.PUSH);
- item.setImage(iconCache.stockImages[iconCache.cmdRefresh]);
- item.setToolTipText(getResourceString("tool.Refresh.tiptext"));
- item.addSelectionListener(new SelectionAdapter () {
- public void widgetSelected(SelectionEvent e) {
- doRefresh();
- }
- });
- SelectionAdapter unimplementedListener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- MessageBox box = new MessageBox(shell, SWT.ICON_INFORMATION | SWT.OK);
- box.setText(getResourceString("dialog.NotImplemented.title"));
- box.setMessage(getResourceString("dialog.ActionNotImplemented.description"));
- box.open();
- }
- };
-
- item = new ToolItem(toolBar, SWT.SEPARATOR);
- item = new ToolItem(toolBar, SWT.PUSH);
- item.setImage(iconCache.stockImages[iconCache.cmdCut]);
- item.setToolTipText(getResourceString("tool.Cut.tiptext"));
- item.addSelectionListener(unimplementedListener);
- item = new ToolItem(toolBar, SWT.PUSH);
- item.setImage(iconCache.stockImages[iconCache.cmdCopy]);
- item.setToolTipText(getResourceString("tool.Copy.tiptext"));
- item.addSelectionListener(unimplementedListener);
- item = new ToolItem(toolBar, SWT.PUSH);
- item.setImage(iconCache.stockImages[iconCache.cmdPaste]);
- item.setToolTipText(getResourceString("tool.Paste.tiptext"));
item.addSelectionListener(unimplementedListener);
-
- item = new ToolItem(toolBar, SWT.SEPARATOR);
- item = new ToolItem(toolBar, SWT.PUSH);
- item.setImage(iconCache.stockImages[iconCache.cmdDelete]);
- item.setToolTipText(getResourceString("tool.Delete.tiptext"));
- item.addSelectionListener(unimplementedListener);
- item = new ToolItem(toolBar, SWT.PUSH);
- item.setImage(iconCache.stockImages[iconCache.cmdRename]);
- item.setToolTipText(getResourceString("tool.Rename.tiptext"));
- item.addSelectionListener(unimplementedListener);
-
- item = new ToolItem(toolBar, SWT.SEPARATOR);
- item = new ToolItem(toolBar, SWT.PUSH);
- item.setImage(iconCache.stockImages[iconCache.cmdSearch]);
- item.setToolTipText(getResourceString("tool.Search.tiptext"));
- item.addSelectionListener(unimplementedListener);
- item = new ToolItem(toolBar, SWT.PUSH);
- item.setImage(iconCache.stockImages[iconCache.cmdPrint]);
- item.setToolTipText(getResourceString("tool.Print.tiptext"));
- item.addSelectionListener(unimplementedListener);
- }
-
- /**
- * Creates the combo box view.
- *
- * @param parent the parent control
- */
- private void createComboView(Composite parent, Object layoutData) {
- combo = new Combo(parent, SWT.NONE);
- combo.setLayoutData(layoutData);
- combo.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- final File[] roots = (File[]) combo.getData(COMBODATA_ROOTS);
- if (roots == null) return;
- int selection = combo.getSelectionIndex();
- if (selection >= 0 && selection < roots.length) {
- notifySelectedDirectory(roots[selection]);
- }
- }
- public void widgetDefaultSelected(SelectionEvent e) {
- final String lastText = (String) combo.getData(COMBODATA_LASTTEXT);
- String text = combo.getText();
- if (text == null) return;
- if (lastText != null && lastText.equals(text)) return;
- combo.setData(COMBODATA_LASTTEXT, text);
- notifySelectedDirectory(new File(text));
- }
- });
- }
-
- /**
- * Creates the file tree view.
- *
- * @param parent the parent control
- */
- private void createTreeView(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- GridLayout gridLayout = new GridLayout();
- gridLayout.numColumns = 1;
- gridLayout.marginHeight = gridLayout.marginWidth = 2;
- gridLayout.horizontalSpacing = gridLayout.verticalSpacing = 0;
- composite.setLayout(gridLayout);
-
- treeScopeLabel = new Label(composite, SWT.BORDER);
- treeScopeLabel.setText(FileViewer.getResourceString("details.AllFolders.text"));
- treeScopeLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL));
-
- tree = new Tree(composite, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.SINGLE);
- tree.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL));
-
- tree.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent event) {
- final TreeItem[] selection = tree.getSelection();
- if (selection != null && selection.length != 0) {
- TreeItem item = selection[0];
- File file = (File) item.getData(TREEITEMDATA_FILE);
-
- notifySelectedDirectory(file);
- }
- }
- public void widgetDefaultSelected(SelectionEvent event) {
- final TreeItem[] selection = tree.getSelection();
- if (selection != null && selection.length != 0) {
- TreeItem item = selection[0];
- item.setExpanded(true);
- treeExpandItem(item);
- }
- }
- });
- tree.addTreeListener(new TreeAdapter() {
- public void treeExpanded(TreeEvent event) {
- final TreeItem item = (TreeItem) event.item;
- final Image image = (Image) item.getData(TREEITEMDATA_IMAGEEXPANDED);
- if (image != null) item.setImage(image);
- treeExpandItem(item);
- }
- public void treeCollapsed(TreeEvent event) {
- final TreeItem item = (TreeItem) event.item;
- final Image image = (Image) item.getData(TREEITEMDATA_IMAGECOLLAPSED);
- if (image != null) item.setImage(image);
- }
- });
- createTreeDragSource(tree);
- createTreeDropTarget(tree);
- }
-
- /**
- * Creates the Drag & Drop DragSource for items being dragged from the tree.
- *
- * @return the DragSource for the tree
- */
- private DragSource createTreeDragSource(final Tree tree){
- DragSource dragSource = new DragSource(tree, DND.DROP_MOVE | DND.DROP_COPY);
- dragSource.setTransfer(new Transfer[] { FileTransfer.getInstance() });
- dragSource.addDragListener(new DragSourceListener() {
- TreeItem[] dndSelection = null;
- String[] sourceNames = null;
- public void dragStart(DragSourceEvent event){
- dndSelection = tree.getSelection();
- sourceNames = null;
- event.doit = dndSelection.length > 0;
- isDragging = true;
- processedDropFiles = null;
- }
- public void dragFinished(DragSourceEvent event){
- dragSourceHandleDragFinished(event, sourceNames);
- dndSelection = null;
- sourceNames = null;
- isDragging = false;
- processedDropFiles = null;
- handleDeferredRefresh();
- }
- public void dragSetData(DragSourceEvent event){
- if (dndSelection == null || dndSelection.length == 0) return;
- if (! FileTransfer.getInstance().isSupportedType(event.dataType)) return;
-
- sourceNames = new String[dndSelection.length];
- for (int i = 0; i < dndSelection.length; i++) {
- File file = (File) dndSelection[i].getData(TREEITEMDATA_FILE);
- sourceNames[i] = file.getAbsolutePath();
- }
- event.data = sourceNames;
- }
- });
- return dragSource;
- }
-
- /**
- * Creates the Drag & Drop DropTarget for items being dropped onto the tree.
- *
- * @return the DropTarget for the tree
- */
- private DropTarget createTreeDropTarget(final Tree tree) {
- DropTarget dropTarget = new DropTarget(tree, DND.DROP_MOVE | DND.DROP_COPY);
- dropTarget.setTransfer(new Transfer[] { FileTransfer.getInstance() });
- dropTarget.addDropListener(new DropTargetAdapter() {
- public void dragEnter(DropTargetEvent event) {
- isDropping = true;
- }
- public void dragLeave(DropTargetEvent event) {
- isDropping = false;
- handleDeferredRefresh();
- }
- public void dragOver(DropTargetEvent event) {
- dropTargetValidate(event, getTargetFile(event));
- event.feedback |= DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL;
- }
- public void drop(DropTargetEvent event) {
- File targetFile = getTargetFile(event);
- if (dropTargetValidate(event, targetFile))
- dropTargetHandleDrop(event, targetFile);
- }
- private File getTargetFile(DropTargetEvent event) {
- // Determine the target File for the drop
- TreeItem item = tree.getItem(tree.toControl(new Point(event.x, event.y)));
- File targetFile = null;
- if (item != null) {
- // We are over a particular item in the tree, use the item's file
- targetFile = (File) item.getData(TREEITEMDATA_FILE);
- }
- return targetFile;
- }
- });
- return dropTarget;
- }
-
- /**
- * Handles expand events on a tree item.
- *
- * @param item the TreeItem to fill in
- */
- private void treeExpandItem(TreeItem item) {
- shell.setCursor(iconCache.stockCursors[iconCache.cursorWait]);
- final Object stub = item.getData(TREEITEMDATA_STUB);
- if (stub == null) treeRefreshItem(item, true);
- shell.setCursor(iconCache.stockCursors[iconCache.cursorDefault]);
- }
-
- /**
- * Traverse the entire tree and update only what has changed.
- *
- * @param roots the root directory listing
- */
- private void treeRefresh(File[] masterFiles) {
- TreeItem[] items = tree.getItems();
- int masterIndex = 0;
- int itemIndex = 0;
- for (int i = 0; i < items.length; ++i) {
- final TreeItem item = items[i];
- final File itemFile = (File) item.getData(TREEITEMDATA_FILE);
- if ((itemFile == null) || (masterIndex == masterFiles.length)) {
- // remove bad item or placeholder
- item.dispose();
- continue;
- }
- final File masterFile = masterFiles[masterIndex];
- int compare = compareFiles(masterFile, itemFile);
- if (compare == 0) {
- // same file, update it
- treeRefreshItem(item, false);
- ++itemIndex;
- ++masterIndex;
- } else if (compare < 0) {
- // should appear before file, insert it
- TreeItem newItem = new TreeItem(tree, SWT.NULL, itemIndex);
- treeInitVolume(newItem, masterFile);
- new TreeItem(newItem, SWT.NULL); // placeholder child item to get "expand" button
- ++itemIndex;
- ++masterIndex;
- --i;
- } else {
- // should appear after file, delete stale item
- item.dispose();
- }
- }
- for (;masterIndex < masterFiles.length; ++masterIndex) {
- final File masterFile = masterFiles[masterIndex];
- TreeItem newItem = new TreeItem(tree, SWT.NULL);
- treeInitVolume(newItem, masterFile);
- new TreeItem(newItem, SWT.NULL); // placeholder child item to get "expand" button
- }
- }
-
- /**
- * Traverse an item in the tree and update only what has changed.
- *
- * @param dirItem the tree item of the directory
- * @param forcePopulate true iff we should populate non-expanded items as well
- */
- private void treeRefreshItem(TreeItem dirItem, boolean forcePopulate) {
- final File dir = (File) dirItem.getData(TREEITEMDATA_FILE);
-
- if (! forcePopulate && ! dirItem.getExpanded()) {
- // Refresh non-expanded item
- if (dirItem.getData(TREEITEMDATA_STUB) != null) {
- treeItemRemoveAll(dirItem);
- new TreeItem(dirItem, SWT.NULL); // placeholder child item to get "expand" button
- dirItem.setData(TREEITEMDATA_STUB, null);
- }
- return;
- }
- // Refresh expanded item
- dirItem.setData(TREEITEMDATA_STUB, this); // clear stub flag
-
- /* Get directory listing */
- File[] subFiles = (dir != null) ? FileViewer.getDirectoryList(dir) : null;
- if (subFiles == null || subFiles.length == 0) {
- /* Error or no contents */
- treeItemRemoveAll(dirItem);
- dirItem.setExpanded(false);
- return;
- }
-
- /* Refresh sub-items */
- TreeItem[] items = dirItem.getItems();
- final File[] masterFiles = subFiles;
- int masterIndex = 0;
- int itemIndex = 0;
- File masterFile = null;
- for (int i = 0; i < items.length; ++i) {
- while ((masterFile == null) && (masterIndex < masterFiles.length)) {
- masterFile = masterFiles[masterIndex++];
- if (! masterFile.isDirectory()) masterFile = null;
- }
-
- final TreeItem item = items[i];
- final File itemFile = (File) item.getData(TREEITEMDATA_FILE);
- if ((itemFile == null) || (masterFile == null)) {
- // remove bad item or placeholder
- item.dispose();
- continue;
- }
- int compare = compareFiles(masterFile, itemFile);
- if (compare == 0) {
- // same file, update it
- treeRefreshItem(item, false);
- masterFile = null;
- ++itemIndex;
- } else if (compare < 0) {
- // should appear before file, insert it
- TreeItem newItem = new TreeItem(dirItem, SWT.NULL, itemIndex);
- treeInitFolder(newItem, masterFile);
- new TreeItem(newItem, SWT.NULL); // add a placeholder child item so we get the "expand" button
- masterFile = null;
- ++itemIndex;
- --i;
- } else {
- // should appear after file, delete stale item
- item.dispose();
- }
- }
- while ((masterFile != null) || (masterIndex < masterFiles.length)) {
- if (masterFile != null) {
- TreeItem newItem = new TreeItem(dirItem, SWT.NULL);
- treeInitFolder(newItem, masterFile);
- new TreeItem(newItem, SWT.NULL); // add a placeholder child item so we get the "expand" button
- if (masterIndex == masterFiles.length) break;
- }
- masterFile = masterFiles[masterIndex++];
- if (! masterFile.isDirectory()) masterFile = null;
- }
- }
-
- /**
- * Foreign method: removes all children of a TreeItem.
- * @param treeItem the TreeItem
- */
- private static void treeItemRemoveAll(TreeItem treeItem) {
- final TreeItem[] children = treeItem.getItems();
- for (int i = 0; i < children.length; ++i) {
- children[i].dispose();
- }
- }
-
- /**
- * Initializes a folder item.
- *
- * @param item the TreeItem to initialize
- * @param folder the File associated with this TreeItem
- */
- private void treeInitFolder(TreeItem item, File folder) {
- item.setText(folder.getName());
- item.setImage(iconCache.stockImages[iconCache.iconClosedFolder]);
- item.setData(TREEITEMDATA_FILE, folder);
- item.setData(TREEITEMDATA_IMAGEEXPANDED, iconCache.stockImages[iconCache.iconOpenFolder]);
- item.setData(TREEITEMDATA_IMAGECOLLAPSED, iconCache.stockImages[iconCache.iconClosedFolder]);
- }
-
- /**
- * Initializes a volume item.
- *
- * @param item the TreeItem to initialize
- * @param volume the File associated with this TreeItem
- */
- private void treeInitVolume(TreeItem item, File volume) {
- item.setText(volume.getPath());
- item.setImage(iconCache.stockImages[iconCache.iconClosedDrive]);
- item.setData(TREEITEMDATA_FILE, volume);
- item.setData(TREEITEMDATA_IMAGEEXPANDED, iconCache.stockImages[iconCache.iconOpenDrive]);
- item.setData(TREEITEMDATA_IMAGECOLLAPSED, iconCache.stockImages[iconCache.iconClosedDrive]);
- }
-
- /**
- * Creates the file details table.
- *
- * @param parent the parent control
- */
- private void createTableView(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- GridLayout gridLayout = new GridLayout();
- gridLayout.numColumns = 1;
- gridLayout.marginHeight = gridLayout.marginWidth = 2;
- gridLayout.horizontalSpacing = gridLayout.verticalSpacing = 0;
- composite.setLayout(gridLayout);
- tableContentsOfLabel = new Label(composite, SWT.BORDER);
- tableContentsOfLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL));
-
- table = new Table(composite, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI | SWT.FULL_SELECTION);
- table.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL));
-
- for (int i = 0; i < tableTitles.length; ++i) {
- TableColumn column = new TableColumn(table, SWT.NONE);
- column.setText(tableTitles[i]);
- column.setWidth(tableWidths[i]);
- }
- table.setHeaderVisible(true);
- table.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- notifySelectedFiles(getSelectedFiles());
- }
- public void widgetDefaultSelected(SelectionEvent event) {
- doDefaultFileAction(getSelectedFiles());
- }
- private File[] getSelectedFiles() {
- final TableItem[] items = table.getSelection();
- final File[] files = new File[items.length];
-
- for (int i = 0; i < items.length; ++i) {
- files[i] = (File) items[i].getData(TABLEITEMDATA_FILE);
- }
- return files;
- }
- });
-
- createTableDragSource(table);
- createTableDropTarget(table);
- }
-
- /**
- * Creates the Drag & Drop DragSource for items being dragged from the table.
- *
- * @return the DragSource for the table
- */
- private DragSource createTableDragSource(final Table table) {
- DragSource dragSource = new DragSource(table, DND.DROP_MOVE | DND.DROP_COPY);
- dragSource.setTransfer(new Transfer[] { FileTransfer.getInstance() });
- dragSource.addDragListener(new DragSourceListener() {
- TableItem[] dndSelection = null;
- String[] sourceNames = null;
- public void dragStart(DragSourceEvent event){
- dndSelection = table.getSelection();
- sourceNames = null;
- event.doit = dndSelection.length > 0;
- isDragging = true;
- }
- public void dragFinished(DragSourceEvent event){
- dragSourceHandleDragFinished(event, sourceNames);
- dndSelection = null;
- sourceNames = null;
- isDragging = false;
- handleDeferredRefresh();
- }
- public void dragSetData(DragSourceEvent event){
- if (dndSelection == null || dndSelection.length == 0) return;
- if (! FileTransfer.getInstance().isSupportedType(event.dataType)) return;
-
- sourceNames = new String[dndSelection.length];
- for (int i = 0; i < dndSelection.length; i++) {
- File file = (File) dndSelection[i].getData(TABLEITEMDATA_FILE);
- sourceNames[i] = file.getAbsolutePath();
- }
- event.data = sourceNames;
- }
- });
- return dragSource;
- }
-
- /**
- * Creates the Drag & Drop DropTarget for items being dropped onto the table.
- *
- * @return the DropTarget for the table
- */
- private DropTarget createTableDropTarget(final Table table){
- DropTarget dropTarget = new DropTarget(table, DND.DROP_MOVE | DND.DROP_COPY);
- dropTarget.setTransfer(new Transfer[] { FileTransfer.getInstance() });
- dropTarget.addDropListener(new DropTargetAdapter() {
- public void dragEnter(DropTargetEvent event) {
- isDropping = true;
- }
- public void dragLeave(DropTargetEvent event) {
- isDropping = false;
- handleDeferredRefresh();
- }
- public void dragOver(DropTargetEvent event) {
- dropTargetValidate(event, getTargetFile(event));
- event.feedback |= DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL;
- }
- public void drop(DropTargetEvent event) {
- File targetFile = getTargetFile(event);
- if (dropTargetValidate(event, targetFile))
- dropTargetHandleDrop(event, targetFile);
- }
- private File getTargetFile(DropTargetEvent event) {
- // Determine the target File for the drop
- TableItem item = table.getItem(table.toControl(new Point(event.x, event.y)));
- File targetFile = null;
- if (item == null) {
- // We are over an unoccupied area of the table.
- // If it is a COPY, we can use the table's root file.
- if (event.detail == DND.DROP_COPY) {
- targetFile = (File) table.getData(TABLEDATA_DIR);
- }
- } else {
- // We are over a particular item in the table, use the item's file
- targetFile = (File) item.getData(TABLEITEMDATA_FILE);
- }
- return targetFile;
- }
- });
- return dropTarget;
- }
-
- /**
- * Notifies the application components that a new current directory has been selected
- *
- * @param dir the directory that was selected, null is ignored
- */
- void notifySelectedDirectory(File dir) {
- if (dir == null) return;
- if (currentDirectory != null && dir.equals(currentDirectory)) return;
- currentDirectory = dir;
- notifySelectedFiles(null);
-
- /* Shell:
- * Sets the title to indicate the selected directory
- */
- shell.setText(getResourceString("Title", new Object[] { currentDirectory.getPath() }));
-
/* Table view:
- * Displays the contents of the selected directory.
- */
- workerUpdate(dir, false);
-
- /* Combo view:
- * Sets the combo box to point to the selected directory.
- */
- final File[] comboRoots = (File[]) combo.getData(COMBODATA_ROOTS);
- int comboEntry = -1;
- if (comboRoots != null) {
- for (int i = 0; i < comboRoots.length; ++i) {
- if (dir.equals(comboRoots[i])) {
- comboEntry = i;
- break;
- }
- }
- }
- if (comboEntry == -1) combo.setText(dir.getPath());
- else combo.select(comboEntry);
-
- /* Tree view:
- * If not already expanded, recursively expands the parents of the specified
- * directory until it is visible.
- */
- Vector /* of File */ path = new Vector();
- // Build a stack of paths from the root of the tree
- while (dir != null) {
- path.add(dir);
- dir = dir.getParentFile();
- }
- // Recursively expand the tree to get to the specified directory
- TreeItem[] items = tree.getItems();
- TreeItem lastItem = null;
- for (int i = path.size() - 1; i >= 0; --i) {
- final File pathElement = (File) path.elementAt(i);
-
- // Search for a particular File in the array of tree items
- // No guarantee that the items are sorted in any recognizable fashion, so we'll
- // just sequential scan. There shouldn't be more than a few thousand entries.
- TreeItem item = null;
- for (int k = 0; k < items.length; ++k) {
- item = items[k];
- if (item.isDisposed()) continue;
- final File itemFile = (File) item.getData(TREEITEMDATA_FILE);
- if (itemFile != null && itemFile.equals(pathElement)) break;
- }
- if (item == null) break;
- lastItem = item;
- if (i != 0 && !item.getExpanded()) {
- treeExpandItem(item);
- item.setExpanded(true);
- }
- items = item.getItems();
- }
- tree.setSelection((lastItem != null) ? new TreeItem[] { lastItem } : new TreeItem[0]);
- }
-
- /**
- * Notifies the application components that files have been selected
- *
- * @param files the files that were selected, null or empty array indicates no active selection
- */
- void notifySelectedFiles(File[] files) {
- /* Details:
- * Update the details that are visible on screen.
- */
- if ((files != null) && (files.length != 0)) {
- numObjectsLabel.setText(getResourceString("details.NumberOfSelectedFiles.text",
- new Object[] { new Integer(files.length) }));
- long fileSize = 0L;
- for (int i = 0; i < files.length; ++i) {
- fileSize += files[i].length();
- }
- diskSpaceLabel.setText(getResourceString("details.FileSize.text",
- new Object[] { new Long(fileSize) }));
- } else {
- // No files selected
- diskSpaceLabel.setText("");
- if (currentDirectory != null) {
- int numObjects = getDirectoryList(currentDirectory).length;
- numObjectsLabel.setText(getResourceString("details.DirNumberOfObjects.text",
- new Object[] { new Integer(numObjects) }));
- } else {
- numObjectsLabel.setText("");
- }
- }
- }
-
- /**
- * Notifies the application components that files must be refreshed
- *
- * @param files the files that need refreshing, empty array is a no-op, null refreshes all
- */
- void notifyRefreshFiles(File[] files) {
- if (files != null && files.length == 0) return;
-
- if ((deferredRefreshRequested) && (deferredRefreshFiles != null) && (files != null)) {
- // merge requests
- File[] newRequest = new File[deferredRefreshFiles.length + files.length];
- System.arraycopy(deferredRefreshFiles, 0, newRequest, 0, deferredRefreshFiles.length);
- System.arraycopy(files, 0, newRequest, deferredRefreshFiles.length, files.length);
- deferredRefreshFiles = newRequest;
- } else {
- deferredRefreshFiles = files;
- deferredRefreshRequested = true;
- }
- handleDeferredRefresh();
- }
-
- /**
- * Handles deferred Refresh notifications (due to Drag & Drop)
- */
- void handleDeferredRefresh() {
- if (isDragging || isDropping || ! deferredRefreshRequested) return;
- if (progressDialog != null) {
- progressDialog.close();
- progressDialog = null;
- }
-
- deferredRefreshRequested = false;
- File[] files = deferredRefreshFiles;
- deferredRefreshFiles = null;
-
- shell.setCursor(iconCache.stockCursors[iconCache.cursorWait]);
-
- /* Table view:
- * Refreshes information about any files in the list and their children.
- */
- boolean refreshTable = false;
- if (files != null) {
- for (int i = 0; i < files.length; ++i) {
- final File file = files[i];
- if (file.equals(currentDirectory)) {
- refreshTable = true;
- break;
- }
- File parentFile = file.getParentFile();
- if ((parentFile != null) && (parentFile.equals(currentDirectory))) {
- refreshTable = true;
- break;
- }
- }
- } else refreshTable = true;
- if (refreshTable) workerUpdate(currentDirectory, true);
-
- /* Combo view:
- * Refreshes the list of roots
- */
- final File[] roots = getRoots();
-
- if (files == null) {
- boolean refreshCombo = false;
- final File[] comboRoots = (File[]) combo.getData(COMBODATA_ROOTS);
-
- if ((comboRoots != null) && (comboRoots.length == roots.length)) {
- for (int i = 0; i < roots.length; ++i) {
- if (! roots[i].equals(comboRoots[i])) {
- refreshCombo = true;
- break;
- }
- }
- } else refreshCombo = true;
-
- if (refreshCombo) {
- combo.removeAll();
- combo.setData(COMBODATA_ROOTS, roots);
- for (int i = 0; i < roots.length; ++i) {
- final File file = roots[i];
- combo.add(file.getPath());
- }
- }
- }
-
- /* Tree view:
- * Refreshes information about any files in the list and their children.
- */
- treeRefresh(roots);
-
- // Remind everyone where we are in the filesystem
- final File dir = currentDirectory;
- currentDirectory = null;
- notifySelectedDirectory(dir);
-
- shell.setCursor(iconCache.stockCursors[iconCache.cursorDefault]);
- }
-
- /**
- * Performs the default action on a set of files.
- *
- * @param files the array of files to process
- */
- void doDefaultFileAction(File[] files) {
- // only uses the 1st file (for now)
- if (files.length == 0) return;
- final File file = files[0];
-
- if (file.isDirectory()) {
- notifySelectedDirectory(file);
- } else {
- final String fileName = file.getAbsolutePath();
- if (! Program.launch(fileName)) {
- MessageBox dialog = new MessageBox(shell, SWT.ICON_ERROR | SWT.OK);
- dialog.setMessage(getResourceString("error.FailedLaunch.message", new Object[] { fileName }));
- dialog.setText(shell.getText ());
- dialog.open();
- }
- }
- }
-
- /**
- * Navigates to the parent directory
- */
- void doParent() {
- if (currentDirectory == null) return;
- File parentDirectory = currentDirectory.getParentFile();
- notifySelectedDirectory(parentDirectory);
- }
-
- /**
- * Performs a refresh
- */
- void doRefresh() {
- notifyRefreshFiles(null);
- }
-
- /**
- * Validates a drop target as a candidate for a drop operation.
- * <p>
- * Used in dragOver() and dropAccept().<br>
- * Note event.detail is set to DND.DROP_NONE by this method if the target is not valid.
- * </p>
- * @param event the DropTargetEvent to validate
- * @param targetFile the File representing the drop target location
- * under inspection, or null if none
- */
- private boolean dropTargetValidate(DropTargetEvent event, File targetFile) {
- if (targetFile != null && targetFile.isDirectory()) {
- if (event.detail != DND.DROP_COPY && event.detail != DND.DROP_MOVE) {
- event.detail = DND.DROP_MOVE;
- }
- } else {
- event.detail = DND.DROP_NONE;
- }
- return event.detail != DND.DROP_NONE;
- }
-
- /**
- * Handles a drop on a dropTarget.
- * <p>
- * Used in drop().<br>
- * Note event.detail is modified by this method.
- * </p>
- * @param event the DropTargetEvent passed as parameter to the drop() method
- * @param targetFile the File representing the drop target location
- * under inspection, or null if none
- */
- private void dropTargetHandleDrop(DropTargetEvent event, File targetFile) {
- // Get dropped data (an array of filenames)
- if (! dropTargetValidate(event, targetFile)) return;
- final String[] sourceNames = (String[]) event.data;
- if (sourceNames == null) event.detail = DND.DROP_NONE;
- if (event.detail == DND.DROP_NONE) return;
-
- // Open progress dialog
- progressDialog = new ProgressDialog(shell,
- (event.detail == DND.DROP_MOVE) ? ProgressDialog.MOVE : ProgressDialog.COPY);
- progressDialog.setTotalWorkUnits(sourceNames.length);
- progressDialog.open();
-
- // Copy each file
- Vector /* of File */ processedFiles = new Vector();
- for (int i = 0; (i < sourceNames.length) && (! progressDialog.isCancelled()); i++){
- final File source = new File(sourceNames[i]);
- final File dest = new File(targetFile, source.getName());
- if (source.equals(dest)) continue; // ignore if in same location
-
- progressDialog.setDetailFile(source, ProgressDialog.COPY);
- while (! progressDialog.isCancelled()) {
- if (copyFileStructure(source, dest)) {
- processedFiles.add(source);
- break;
- } else if (! progressDialog.isCancelled()) {
- if (event.detail == DND.DROP_MOVE && (!isDragging)) {
- // It is not possible to notify an external drag source that a drop
- // operation was only partially successful. This is particularly a
- // problem for DROP_MOVE operations since unless the source gets
- // DROP_NONE, it will delete the original data including bits that
- // may not have been transferred successfully.
- MessageBox box = new MessageBox(shell, SWT.ICON_ERROR | SWT.RETRY | SWT.CANCEL);
- box.setText(getResourceString("dialog.FailedCopy.title"));
- box.setMessage(getResourceString("dialog.FailedCopy.description",
- new Object[] { source, dest }));
- int button = box.open();
- if (button == SWT.CANCEL) {
- i = sourceNames.length;
- event.detail = DND.DROP_NONE;
- break;
- }
- } else {
- // We can recover gracefully from errors if the drag source belongs
- // to this application since it will look at processedDropFiles.
- MessageBox box = new MessageBox(shell, SWT.ICON_ERROR | SWT.ABORT | SWT.RETRY | SWT.IGNORE);
- box.setText(getResourceString("dialog.FailedCopy.title"));
- box.setMessage(getResourceString("dialog.FailedCopy.description",
- new Object[] { source, dest }));
- int button = box.open();
- if (button == SWT.ABORT) i = sourceNames.length;
- if (button != SWT.RETRY) break;
- }
- }
- progressDialog.addProgress(1);
- }
- }
- if (isDragging) {
- // Remember exactly which files we processed
- processedDropFiles = ((File[]) processedFiles.toArray(new File[processedFiles.size()]));
- } else {
- progressDialog.close();
- progressDialog = null;
- }
- notifyRefreshFiles(new File[] { targetFile });
- }
-
- /**
- * Handles the completion of a drag on a dragSource.
- * <p>
- * Used in dragFinished().<br>
- * </p>
- * @param event the DragSourceEvent passed as parameter to the dragFinished() method
- * @param sourceNames the names of the files that were dragged (event.data is invalid)
- */
- private void dragSourceHandleDragFinished(DragSourceEvent event, String[] sourceNames) {
- if (sourceNames == null) return;
- if (event.detail != DND.DROP_MOVE) return;
-
- // Get array of files that were actually transferred
- final File[] sourceFiles;
- if (processedDropFiles != null) {
- sourceFiles = processedDropFiles;
- } else {
- sourceFiles = new File[sourceNames.length];
- for (int i = 0; i < sourceNames.length; ++i)
- sourceFiles[i] = new File(sourceNames[i]);
- }
- if (progressDialog == null)
- progressDialog = new ProgressDialog(shell, ProgressDialog.MOVE);
- progressDialog.setTotalWorkUnits(sourceFiles.length);
- progressDialog.setProgress(0);
- progressDialog.open();
-
- // Delete each file
- for (int i = 0; (i < sourceFiles.length) && (! progressDialog.isCancelled()); i++){
- final File source = sourceFiles[i];
- progressDialog.setDetailFile(source, ProgressDialog.DELETE);
- while (! progressDialog.isCancelled()) {
- if (deleteFileStructure(source)) {
- break;
- } else if (! progressDialog.isCancelled()) {
- MessageBox box = new MessageBox(shell, SWT.ICON_ERROR | SWT.ABORT | SWT.RETRY | SWT.IGNORE);
- box.setText(getResourceString("dialog.FailedDelete.title"));
- box.setMessage(getResourceString("dialog.FailedDelete.description",
- new Object[] { source }));
- int button = box.open();
- if (button == SWT.ABORT) i = sourceNames.length;
- if (button == SWT.RETRY) break;
- }
- }
- progressDialog.addProgress(1);
- }
- notifyRefreshFiles(sourceFiles);
- progressDialog.close();
- progressDialog = null;
- }
-
- /**
- * Gets filesystem root entries
- *
- * @return an array of Files corresponding to the root directories on the platform,
- * may be empty but not null
- */
- File[] getRoots() {
- /*
- * On JDK 1.22 only...
- */
- // return File.listRoots();
-
- /*
- * On JDK 1.1.7 and beyond...
- * -- PORTABILITY ISSUES HERE --
- */
- if (System.getProperty ("os.name").indexOf ("Windows") != -1) {
- Vector /* of File */ list = new Vector();
- list.add(new File(DRIVE_A));
- list.add(new File(DRIVE_B));
- for (char i = 'c'; i <= 'z'; ++i) {
- File drive = new File(i + ":" + File.separator);
- if (drive.isDirectory() && drive.exists()) {
- list.add(drive);
- if (initial && i == 'c') {
- currentDirectory = drive;
- initial = false;
- }
- }
- }
- File[] roots = (File[]) list.toArray(new File[list.size()]);
- sortFiles(roots);
- return roots;
- } else {
- File root = new File(File.separator);
- if (initial) {
- currentDirectory = root;
- }
- return new File[] { root };
- }
- }
-
- /**
- * Gets a directory listing
- *
- * @param file the directory to be listed
- * @return an array of files this directory contains, may be empty but not null
- */
- static File[] getDirectoryList(File file) {
- File[] list = file.listFiles();
- if (list == null) return new File[0];
- sortFiles(list);
- return list;
- }
-
- /**
- * Copies a file or entire directory structure.
- *
- * @param oldFile the location of the old file or directory
- * @param newFile the location of the new file or directory
- * @return true iff the operation succeeds without errors
- */
- boolean copyFileStructure(File oldFile, File newFile) {
- if (oldFile == null || newFile == null) return false;
-
- // ensure that newFile is not a child of oldFile or a dupe
- File searchFile = newFile;
- do {
- if (oldFile.equals(searchFile)) return false;
- searchFile = searchFile.getParentFile();
- } while (searchFile != null);
-
- if (oldFile.isDirectory()) {
- /*
- * Copy a directory
- */
- if (progressDialog != null) {
- progressDialog.setDetailFile(oldFile, ProgressDialog.COPY);
- }
- if (simulateOnly) {
- //System.out.println(getResourceString("simulate.DirectoriesCreated.text",
- // new Object[] { newFile.getPath() }));
- } else {
- if (! newFile.mkdirs()) return false;
- }
- File[] subFiles = oldFile.listFiles();
- if (subFiles != null) {
- if (progressDialog != null) {
- progressDialog.addWorkUnits(subFiles.length);
- }
- for (int i = 0; i < subFiles.length; i++) {
- File oldSubFile = subFiles[i];
- File newSubFile = new File(newFile, oldSubFile.getName());
- if (! copyFileStructure(oldSubFile, newSubFile)) return false;
- if (progressDialog != null) {
- progressDialog.addProgress(1);
- if (progressDialog.isCancelled()) return false;
- }
- }
- }
- } else {
- /*
- * Copy a file
- */
- if (simulateOnly) {
- //System.out.println(getResourceString("simulate.CopyFromTo.text",
- // new Object[] { oldFile.getPath(), newFile.getPath() }));
- } else {
- FileReader in = null;
- FileWriter out = null;
- try {
- in = new FileReader(oldFile);
- out = new FileWriter(newFile);
-
- int count;
- while ((count = in.read()) != -1) out.write(count);
- } catch (FileNotFoundException e) {
- return false;
- } catch (IOException e) {
- return false;
- } finally {
- try {
- if (in != null) in.close();
- if (out != null) out.close();
- } catch (IOException e) {
- return false;
- }
- }
- }
- }
- return true;
- }
-
- /**
- * Deletes a file or entire directory structure.
- *
- * @param oldFile the location of the old file or directory
- * @return true iff the operation succeeds without errors
- */
- boolean deleteFileStructure(File oldFile) {
- if (oldFile == null) return false;
- if (oldFile.isDirectory()) {
- /*
- * Delete a directory
- */
- if (progressDialog != null) {
- progressDialog.setDetailFile(oldFile, ProgressDialog.DELETE);
- }
- File[] subFiles = oldFile.listFiles();
- if (subFiles != null) {
- if (progressDialog != null) {
- progressDialog.addWorkUnits(subFiles.length);
- }
- for (int i = 0; i < subFiles.length; i++) {
- File oldSubFile = subFiles[i];
- if (! deleteFileStructure(oldSubFile)) return false;
- if (progressDialog != null) {
- progressDialog.addProgress(1);
- if (progressDialog.isCancelled()) return false;
- }
- }
- }
- }
- if (simulateOnly) {
- //System.out.println(getResourceString("simulate.Delete.text",
- // new Object[] { oldFile.getPath(), oldFile.getPath() }));
- return true;
- } else {
- return oldFile.delete();
- }
- }
-
- /**
- * Sorts files lexicographically by name.
- *
- * @param files the array of Files to be sorted
- */
- static void sortFiles(File[] files) {
- /* Very lazy merge sort algorithm */
- sortBlock(files, 0, files.length - 1, new File[files.length]);
- }
- private static void sortBlock(File[] files, int start, int end, File[] mergeTemp) {
- final int length = end - start + 1;
- if (length < 8) {
- for (int i = end; i > start; --i) {
- for (int j = end; j > start; --j) {
- if (compareFiles(files[j - 1], files[j]) > 0) {
- final File temp = files[j];
- files[j] = files[j-1];
- files[j-1] = temp;
- }
- }
- }
- return;
- }
- final int mid = (start + end) / 2;
- sortBlock(files, start, mid, mergeTemp);
- sortBlock(files, mid + 1, end, mergeTemp);
- int x = start;
- int y = mid + 1;
- for (int i = 0; i < length; ++i) {
- if ((x > mid) || ((y <= end) && compareFiles(files[x], files[y]) > 0)) {
- mergeTemp[i] = files[y++];
- } else {
- mergeTemp[i] = files[x++];
- }
- }
- for (int i = 0; i < length; ++i) files[i + start] = mergeTemp[i];
- }
- private static int compareFiles(File a, File b) {
-// boolean aIsDir = a.isDirectory();
-// boolean bIsDir = b.isDirectory();
-// if (aIsDir && ! bIsDir) return -1;
-// if (bIsDir && ! aIsDir) return 1;
-
- // sort case-sensitive files in a case-insensitive manner
- int compare = a.getName().compareToIgnoreCase(b.getName());
- if (compare == 0) compare = a.getName().compareTo(b.getName());
- return compare;
- }
-
- /*
- * This worker updates the table with file information in the background.
- * <p>
- * Implementation notes:
- * <ul>
- * <li> It is designed such that it can be interrupted cleanly.
- * <li> It uses asyncExec() in some places to ensure that SWT Widgets are manipulated in the
- * right thread. Exclusive use of syncExec() would be inappropriate as it would require a pair
- * of context switches between each table update operation.
- * </ul>
- * </p>
- */
-
- /**
- * Stops the worker and waits for it to terminate.
- */
- void workerStop() {
- if (workerThread == null) return;
- synchronized(workerLock) {
- workerCancelled = true;
- workerStopped = true;
- workerLock.notifyAll();
- }
- while (workerThread != null) {
- if (! display.readAndDispatch()) display.sleep();
- }
- }
-
- /**
- * Notifies the worker that it should update itself with new data.
- * Cancels any previous operation and begins a new one.
- *
- * @param dir the new base directory for the table, null is ignored
- * @param force if true causes a refresh even if the data is the same
- */
- void workerUpdate(File dir, boolean force) {
- if (dir == null) return;
- if ((!force) && (workerNextDir != null) && (workerNextDir.equals(dir))) return;
-
- synchronized(workerLock) {
- workerNextDir = dir;
- workerStopped = false;
- workerCancelled = true;
- workerLock.notifyAll();
- }
- if (workerThread == null) {
- workerThread = new Thread(workerRunnable);
- workerThread.start();
- }
- }
-
- /**
- * Manages the worker's thread
- */
- private final Runnable workerRunnable = new Runnable() {
- public void run() {
- while (! workerStopped) {
- synchronized(workerLock) {
- workerCancelled = false;
- workerStateDir = workerNextDir;
- }
- workerExecute();
- synchronized(workerLock) {
- try {
- if ((!workerCancelled) && (workerStateDir == workerNextDir)) workerLock.wait();
- } catch (InterruptedException e) {
- }
- }
- }
- workerThread = null;
- // wake up UI thread in case it is in a modal loop awaiting thread termination
- // (see workerStop())
- display.wake();
- }
- };
-
- /**
- * Updates the table's contents
- */
- private void workerExecute() {
- File[] dirList;
- // Clear existing information
- display.syncExec(new Runnable() {
- public void run() {
- tableContentsOfLabel.setText(FileViewer.getResourceString("details.ContentsOf.text",
- new Object[] { workerStateDir.getPath() }));
- table.removeAll();
- table.setRedraw(false);
- table.setData(TABLEDATA_DIR, workerStateDir);
- }
- });
- dirList = getDirectoryList(workerStateDir);
-
- for (int i = 0; (! workerCancelled) && (i < dirList.length); i++) {
- final File theFile = dirList[i];
- workerAddFileDetails(dirList[i]);
-
- final boolean doIncrementalRefresh = ((i & 127) == 127);
- if (doIncrementalRefresh) display.syncExec(new Runnable() {
- public void run () {
- // guard against the shell being closed before this runs
- if (shell.isDisposed()) return;
- table.setRedraw(true);
- table.setRedraw(false);
- }
- });
- }
-
- // Allow the table to refresh itself
- display.asyncExec(new Runnable() {
- public void run() {
- // guard against the shell being closed before this runs
- if (shell.isDisposed()) return;
- table.setRedraw(true);
- }
- });
- }
-
- /**
- * Adds a file's detail information to the directory list
- */
- private void workerAddFileDetails(final File file) {
- final String nameString = file.getName();
- final String dateString = dateFormat.format(new Date(file.lastModified()));
- final String sizeString;
- final String typeString;
- final Image iconImage;
-
- if (file.isDirectory()) {
- typeString = getResourceString("filetype.Folder");
- sizeString = "";
- iconImage = iconCache.stockImages[iconCache.iconClosedFolder];
- } else {
- sizeString = getResourceString("filesize.KB",
- new Object[] { new Long((file.length() + 512) / 1024) });
-
- int dot = nameString.lastIndexOf('.');
- if (dot != -1) {
- String extension = nameString.substring(dot);
- Program program = Program.findProgram(extension);
- if (program != null) {
- typeString = program.getName();
- iconImage = iconCache.getIconFromProgram(program);
- } else {
- typeString = getResourceString("filetype.Unknown", new Object[] { extension.toUpperCase() });
- iconImage = iconCache.stockImages[iconCache.iconFile];
- }
- } else {
- typeString = getResourceString("filetype.None");
- iconImage = iconCache.stockImages[iconCache.iconFile];
- }
- }
- final String[] strings = new String[] { nameString, sizeString, typeString, dateString };
-
- display.asyncExec(new Runnable() {
- public void run () {
- // guard against the shell being closed before this runs
- if (shell.isDisposed()) return;
- TableItem tableItem = new TableItem(table, 0);
- tableItem.setText(strings);
- tableItem.setImage(iconImage);
- tableItem.setData(TABLEITEMDATA_FILE, file);
- }
- });
- }
-
- /**
- * Instances of this class manage a progress dialog for file operations.
- */
- class ProgressDialog {
- public final static int COPY = 0;
- public final static int DELETE = 1;
- public final static int MOVE = 2;
-
- Shell shell;
- Label messageLabel, detailLabel;
- ProgressBar progressBar;
- Button cancelButton;
- boolean isCancelled = false;
-
- final String operationKeyName[] = {
- "Copy",
- "Delete",
- "Move"
- };
-
- /**
- * Creates a progress dialog but does not open it immediately.
- *
- * @param parent the parent Shell
- * @param style one of COPY, MOVE
- */
- public ProgressDialog(Shell parent, int style) {
- shell = new Shell(parent, SWT.BORDER | SWT.TITLE | SWT.APPLICATION_MODAL);
- GridLayout gridLayout = new GridLayout();
- shell.setLayout(gridLayout);
- shell.setText(getResourceString("progressDialog." + operationKeyName[style] + ".title"));
- shell.addShellListener(new ShellAdapter() {
- public void shellClosed(ShellEvent e) {
- isCancelled = true;
- }
- });
-
- messageLabel = new Label(shell, SWT.HORIZONTAL);
- messageLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL));
- messageLabel.setText(getResourceString("progressDialog." + operationKeyName[style] + ".description"));
-
- progressBar = new ProgressBar(shell, SWT.HORIZONTAL | SWT.WRAP);
- progressBar.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL));
- progressBar.setMinimum(0);
- progressBar.setMaximum(0);
-
- detailLabel = new Label(shell, SWT.HORIZONTAL);
- GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);
- gridData.widthHint = 400;
- detailLabel.setLayoutData(gridData);
-
- cancelButton = new Button(shell, SWT.PUSH);
- cancelButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END | GridData.VERTICAL_ALIGN_FILL));
- cancelButton.setText(getResourceString("progressDialog.cancelButton.text"));
- cancelButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- isCancelled = true;
- cancelButton.setEnabled(false);
- }
- });
- }
- /**
- * Sets the detail text to show the filename along with a string
- * representing the operation being performed on that file.
- *
- * @param file the file to be detailed
- * @param operation one of COPY, DELETE
- */
- public void setDetailFile(File file, int operation) {
- String filename = file.getName();
- detailLabel.setText(getResourceString("progressDialog." + operationKeyName[operation] + ".operation",
- new Object[] { file }));
- }
- /**
- * Returns true if the Cancel button was been clicked.
- *
- * @return true if the Cancel button was clicked.
- */
- public boolean isCancelled() {
- return isCancelled;
- }
- /**
- * Sets the total number of work units to be performed.
- *
- * @param work the total number of work units
- */
- public void setTotalWorkUnits(int work) {
- progressBar.setMaximum(work);
- }
- /**
- * Adds to the total number of work units to be performed.
- *
- * @param work the number of work units to add
- */
- public void addWorkUnits(int work) {
- setTotalWorkUnits(progressBar.getMaximum() + work);
- }
- /**
- * Sets the progress of completion of the total work units.
- *
- * @param work the total number of work units completed
- */
- public void setProgress(int work) {
- progressBar.setSelection(work);
- while (display.readAndDispatch()); // enable event processing
- }
- /**
- * Adds to the progress of completion of the total work units.
- *
- * @param work the number of work units completed to add
- */
- public void addProgress(int work) {
- setProgress(progressBar.getSelection() + work);
- }
- /**
- * Opens the dialog.
- */
- public void open() {
- shell.pack();
- final Shell parentShell = (Shell) shell.getParent();
- Rectangle rect = parentShell.getBounds();
- Rectangle bounds = shell.getBounds();
- bounds.x = rect.x + (rect.width - bounds.width) / 2;
- bounds.y = rect.y + (rect.height - bounds.height) / 2;
- shell.setBounds(bounds);
- shell.open();
- }
- /**
- * Closes the dialog and disposes its resources.
- */
- public void close() {
- shell.close();
- shell.dispose();
- shell = null;
- messageLabel = null;
- detailLabel = null;
- progressBar = null;
- cancelButton = null;
- }
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/IconCache.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/IconCache.java deleted file mode 100755 index ac1f2d9acc..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/IconCache.java +++ /dev/null @@ -1,149 +0,0 @@ -package org.eclipse.swt.examples.fileviewer;
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.program.*;
-import org.eclipse.swt.widgets.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Manages icons for the application.
- * This is necessary as we could easily end up creating thousands of icons
- * bearing the same image.
- */
-class IconCache {
- // Stock images
- public final int
- shellIcon = 0,
- iconClosedDrive = 1,
- iconClosedFolder = 2,
- iconFile = 3,
- iconOpenDrive = 4,
- iconOpenFolder = 5,
- cmdCopy = 6,
- cmdCut = 7,
- cmdDelete = 8,
- cmdParent = 9,
- cmdPaste = 10,
- cmdPrint = 11,
- cmdRefresh = 12,
- cmdRename = 13,
- cmdSearch = 14;
- public final String[] stockImageLocations = {
- "generic_example.gif",
- "icon_ClosedDrive.gif",
- "icon_ClosedFolder.gif",
- "icon_File.gif",
- "icon_OpenDrive.gif",
- "icon_OpenFolder.gif",
- "cmd_Copy.gif",
- "cmd_Cut.gif",
- "cmd_Delete.gif",
- "cmd_Parent.gif",
- "cmd_Paste.gif",
- "cmd_Print.gif",
- "cmd_Refresh.gif",
- "cmd_Rename.gif",
- "cmd_Search.gif"
- };
- public Image stockImages[];
-
- // Stock cursors
- public final int
- cursorDefault = 0,
- cursorWait = 1;
- public Cursor stockCursors[];
- // Cached icons
- private Hashtable iconCache; /* map Program to Image */
public IconCache() {
}
- /**
- * Loads the resources
- *
- * @param display the display
- */
- public void initResources(Display display) {
- if (stockImages == null) {
- stockImages = new Image[stockImageLocations.length];
-
- for (int i = 0; i < stockImageLocations.length; ++i) {
- Image image = createStockImage(display, stockImageLocations[i]);
- if (image == null) {
- freeResources();
- throw new IllegalStateException(
- FileViewer.getResourceString("error.CouldNotLoadResources"));
- }
- stockImages[i] = image;
- }
- }
- if (stockCursors == null) {
- stockCursors = new Cursor[] {
- null,
- new Cursor(display, SWT.CURSOR_WAIT)
- };
- }
- iconCache = new Hashtable();
- }
- /**
- * Frees the resources
- */
- public void freeResources() {
- if (stockImages != null) {
- for (int i = 0; i < stockImages.length; ++i) {
- final Image image = stockImages[i];
- if (image != null) image.dispose();
- }
- stockImages = null;
- }
- if (iconCache != null) {
- for (Enumeration it = iconCache.elements(); it.hasMoreElements(); ) {
- Image image = (Image) it.nextElement();
- image.dispose();
- }
- }
- }
- /**
- * Creates a stock image
- *
- * @param display the display
- * @param path the relative path to the icon
- */
- private Image createStockImage(Display display, String path) {
- try {
- InputStream stream = IconCache.class.getResourceAsStream(path);
- if (stream != null) {
- ImageData imageData = new ImageData(stream);
- if (imageData != null) {
- ImageData mask = imageData.getTransparencyMask();
- return new Image(display, imageData, mask);
- }
- }
- } catch (Exception e) {
- }
- return null;
- }
- /**
- * Gets an image for a file associated with a given program
- *
- * @param program the Program
- */
- public Image getIconFromProgram(Program program) {
- Image image = (Image) iconCache.get(program);
- if (image == null) {
- ImageData imageData = program.getImageData();
- if (imageData != null) {
- image = new Image(null, imageData, imageData.getTransparencyMask());
- iconCache.put(program, image);
- } else {
- image = stockImages[iconFile];
- }
- }
- return image;
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Copy.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Copy.gif Binary files differdeleted file mode 100755 index 4274b070ac..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Copy.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Cut.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Cut.gif Binary files differdeleted file mode 100755 index eb948b94b0..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Cut.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Delete.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Delete.gif Binary files differdeleted file mode 100755 index 6f647666d3..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Delete.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Parent.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Parent.gif Binary files differdeleted file mode 100755 index 9b278e6fa8..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Parent.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Paste.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Paste.gif Binary files differdeleted file mode 100755 index 75e0ab2352..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Paste.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Print.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Print.gif Binary files differdeleted file mode 100755 index 4dfa8cd3fa..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Print.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Refresh.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Refresh.gif Binary files differdeleted file mode 100755 index a063c230ac..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Refresh.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Rename.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Rename.gif Binary files differdeleted file mode 100755 index 25b1325e52..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Rename.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Search.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Search.gif Binary files differdeleted file mode 100755 index 6dc3ebefc9..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Search.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/generic_example.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/generic_example.gif Binary files differdeleted file mode 100755 index f9fb6b0cab..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/generic_example.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedDrive.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedDrive.gif Binary files differdeleted file mode 100755 index 04e530e37c..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedDrive.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedFolder.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedFolder.gif Binary files differdeleted file mode 100755 index beb6ed134c..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedFolder.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_File.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_File.gif Binary files differdeleted file mode 100755 index 6b86d07978..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_File.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenDrive.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenDrive.gif Binary files differdeleted file mode 100755 index 7b2b6334ca..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenDrive.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenFolder.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenFolder.gif Binary files differdeleted file mode 100755 index a9c777343c..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenFolder.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld1.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld1.java deleted file mode 100755 index 98bcf32e45..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld1.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.eclipse.swt.examples.helloworld;
-
-/*
- * Copyright (c) 2000, 2002 IBM Corp. All rights reserved. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.widgets.*;
-
-/*
- * This example demonstrates the minimum amount of code required
- * to open an SWT Shell and process the events.
- */
-public class HelloWorld1 {
-
-public static void main (String [] args) {
- Display display = new Display ();
- Shell shell = new HelloWorld1 ().open (display);
- while (!shell.isDisposed ()) {
- if (!display.readAndDispatch ()) display.sleep ();
- }
- display.dispose ();
-}
-
-public Shell open (Display display) {
- Shell shell = new Shell (display);
- shell.open ();
- return shell;
-}
-} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld2.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld2.java deleted file mode 100755 index 454c23e4d1..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld2.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.eclipse.swt.examples.helloworld;
-
-/*
- * Copyright (c) 2000, 2002 IBM Corp. All rights reserved. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import java.util.ResourceBundle;
-
-/*
- * This example builds on HelloWorld1 and demonstrates the minimum amount
- * of code required to open an SWT Shell with a Label and process the events.
- */
-public class HelloWorld2 {
- private static ResourceBundle resHello = ResourceBundle.getBundle("examples_helloworld");
-
-public static void main (String [] args) {
- Display display = new Display ();
- Shell shell = new HelloWorld2 ().open (display);
- while (!shell.isDisposed ()) {
- if (!display.readAndDispatch ()) display.sleep ();
- }
- display.dispose ();
-}
-
-public Shell open (Display display) {
- Shell shell = new Shell (display);
- Label label = new Label (shell, SWT.CENTER);
- label.setText (resHello.getString("Hello_world"));
- label.setBounds (shell.getClientArea ());
- shell.open ();
- return shell;
-}
-} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld3.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld3.java deleted file mode 100755 index 59bd7582c7..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld3.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.eclipse.swt.examples.helloworld;
-
-/*
- * Copyright (c) 2000, 2002 IBM Corp. All rights reserved. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.events.*;
-import java.util.ResourceBundle;
-
-/*
- * This example builds on HelloWorld2 and demonstrates how to resize the
- * Label when the Shell resizes using a Listener mechanism.
- */
-public class HelloWorld3 {
- private static ResourceBundle resHello = ResourceBundle.getBundle("examples_helloworld");
-
-public static void main (String [] args) {
- Display display = new Display ();
- Shell shell = new HelloWorld3 ().open (display);
- while (!shell.isDisposed ()) {
- if (!display.readAndDispatch ()) display.sleep ();
- }
- display.dispose ();
-}
-
-public Shell open (Display display) {
- final Shell shell = new Shell (display);
- final Label label = new Label (shell, SWT.CENTER);
- label.setText (resHello.getString("Hello_world"));
- label.pack();
- shell.addControlListener(new ControlAdapter() {
- public void controlResized(ControlEvent e) {
- label.setBounds (shell.getClientArea ());
- }
- });
- shell.pack();
- shell.open ();
- return shell;
-}
-} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld4.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld4.java deleted file mode 100755 index b8cdde8fa8..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld4.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.eclipse.swt.examples.helloworld;
-
-/*
- * Copyright (c) 2000, 2002 IBM Corp. All rights reserved. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import java.util.ResourceBundle;
-
-/*
- * This example builds on HelloWorld2 and demonstrates how to resize the
- * Label when the Shell resizes using a Layout.
- */
-public class HelloWorld4 {
- private static ResourceBundle resHello = ResourceBundle.getBundle("examples_helloworld");
-
-public static void main (String [] args) {
- Display display = new Display ();
- Shell shell = new HelloWorld4 ().open (display);
- while (!shell.isDisposed ()) {
- if (!display.readAndDispatch ()) display.sleep ();
- }
- display.dispose ();
-}
-
-public Shell open (Display display) {
- Shell shell = new Shell (display);
- shell.setLayout(new FillLayout());
- Label label = new Label (shell, SWT.CENTER);
- label.setText (resHello.getString("Hello_world"));
- shell.pack ();
- shell.open ();
- return shell;
-}
-} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld5.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld5.java deleted file mode 100755 index 71f369d137..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld5.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.eclipse.swt.examples.helloworld;
-
-/*
- * Copyright (c) 2000, 2002 IBM Corp. All rights reserved. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import java.util.ResourceBundle;
-
-/*
- * This example builds on HelloWorld1 and demonstrates how to draw directly
- * on an SWT Control.
- */
-public class HelloWorld5 {
- private static ResourceBundle resHello = ResourceBundle.getBundle("examples_helloworld");
-
-public static void main (String [] args) {
- Display display = new Display ();
- Shell shell = new HelloWorld5 ().open (display);
- while (!shell.isDisposed ()) {
- if (!display.readAndDispatch ()) display.sleep ();
- }
- display.dispose ();
-}
-
-public Shell open (Display display) {
- final Color red = new Color(display, 0xFF, 0, 0);
- final Shell shell = new Shell (display);
- shell.addPaintListener(new PaintListener () {
- public void paintControl(PaintEvent event){
- GC gc = event.gc;
- gc.setForeground(red);
- Rectangle rect = shell.getClientArea();
- gc.drawRectangle(rect.x + 10, rect.y + 10, rect.width - 20, rect.height - 20);
- gc.drawString(resHello.getString("Hello_world"), rect.x + 20, rect.y + 20);
- }
- });
- shell.addDisposeListener (new DisposeListener () {
- public void widgetDisposed (DisposeEvent e) {
- red.dispose();
- }
- });
- shell.open ();
- return shell;
-}
-} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/HoverHelp.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/HoverHelp.java deleted file mode 100755 index 2d632e0d45..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/HoverHelp.java +++ /dev/null @@ -1,338 +0,0 @@ -package org.eclipse.swt.examples.hoverhelp;
-
-/*
- * Copyright (c) 2000, 2002 IBM Corp. All rights reserved. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import java.io.*;
import java.text.*;
import java.util.*;
import org.eclipse.swt.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
-/**
- * This example demonstrates how to implement hover help feedback
- * using the MouseTrackListener.
- */
-public class HoverHelp {
- private static ResourceBundle resourceBundle = ResourceBundle.getBundle("examples_hoverhelp");;
-
- static final int
- hhiInformation = 0,
- hhiWarning = 1;
- static final String[] imageLocations = {
- "information.gif",
- "warning.gif"
- };
- Image images[];
-
- /**
- * Runs main program.
- */
- public static void main (String [] args) {
- Display display = new Display();
- Shell shell = new HoverHelp().open(display);
- // Event loop
- while (shell != null && ! shell.isDisposed()) {
- if (! display.readAndDispatch()) display.sleep();
- }
- // Cleanup
- display.dispose();
-
- }
-
- /**
- * Opens the main program.
- */
- public Shell open(Display display) {
- // Load the images
- Class clazz = HoverHelp.class;
- try {
- if (images == null) {
- images = new Image[imageLocations.length];
-
- for (int i = 0; i < imageLocations.length; ++i) {
- InputStream stream = clazz.getResourceAsStream(imageLocations[i]);
- ImageData source = new ImageData(stream);
- ImageData mask = source.getTransparencyMask();
- images[i] = new Image(display, source, mask);
- }
- }
- } catch (Exception ex) {
- System.err.println(getResourceString("error.CouldNotLoadResources",
- new Object[] { ex.getMessage() }));
- return null;
- }
-
- // Create the window
- Shell shell = new Shell();
- createPartControl(shell);
- shell.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent e) {
- /* Free resources */
- if (images != null) {
- for (int i = 0; i < images.length; i++) {
- final Image image = images[i];
- if (image != null) image.dispose();
- }
- images = null;
- }
- }
- });
- shell.pack();
- shell.open();
- return shell;
- }
-
- /**
- * Gets a string from the resource bundle.
- * We don't want to crash because of a missing String.
- * Returns the key if not found.
- */
- public String getResourceString(String key) {
- try {
- return resourceBundle.getString(key);
- } catch (MissingResourceException e) {
- return key;
- } catch (NullPointerException e) {
- return "!" + key + "!";
- }
- }
-
- /**
- * Gets a string from the resource bundle and binds it
- * with the given arguments. If the key is not found,
- * return the key.
- */
- public String getResourceString(String key, Object[] args) {
- try {
- return MessageFormat.format(getResourceString(key), args);
- } catch (MissingResourceException e) {
- return key;
- } catch (NullPointerException e) {
- return "!" + key + "!";
- }
- }
-
- /**
- * Creates the example
- */
- public void createPartControl(Composite frame) {
- final ToolTipHandler tooltip = new ToolTipHandler(frame.getShell());
-
- GridLayout layout = new GridLayout();
- layout.numColumns = 3;
- frame.setLayout(layout);
-
- ToolBar bar = new ToolBar (frame, SWT.BORDER);
- for (int i=0; i<5; i++) {
- ToolItem item = new ToolItem (bar, SWT.PUSH);
- item.setText (getResourceString("ToolItem.text", new Object[] { new Integer(i) }));
- item.setData ("TIP_TEXT", getResourceString("ToolItem.tooltip",
- new Object[] { item.getText() }));
- item.setData ("TIP_HELPTEXTHANDLER", new ToolTipHelpTextHandler() {
- public String getHelpText(Widget widget) {
- Item item = (Item) widget;
- return getResourceString("ToolItem.help", new Object[] { item.getText() });
- }
- });
- }
- GridData gridData = new GridData();
- gridData.horizontalSpan = 3;
- bar.setLayoutData(gridData);
- tooltip.activateHoverHelp(bar);
-
- Table table = new Table (frame, SWT.BORDER);
- for (int i=0; i<4; i++) {
- TableItem item = new TableItem (table, SWT.PUSH);
- item.setText (getResourceString("Item", new Object[] { new Integer(i) }));
- item.setData ("TIP_IMAGE", images[hhiInformation]);
- item.setText (getResourceString("TableItem.text", new Object[] { new Integer(i) }));
- item.setData ("TIP_TEXT", getResourceString("TableItem.tooltip",
- new Object[] { item.getText() }));
- item.setData ("TIP_HELPTEXTHANDLER", new ToolTipHelpTextHandler() {
- public String getHelpText(Widget widget) {
- Item item = (Item) widget;
- return getResourceString("TableItem.help", new Object[] { item.getText() });
- }
- });
- }
- table.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL));
- tooltip.activateHoverHelp(table);
-
- Tree tree = new Tree (frame, SWT.BORDER);
- for (int i=0; i<4; i++) {
- TreeItem item = new TreeItem (tree, SWT.PUSH);
- item.setText (getResourceString("Item", new Object[] { new Integer(i) }));
- item.setData ("TIP_IMAGE", images[hhiWarning]);
- item.setText (getResourceString("TreeItem.text", new Object[] { new Integer(i) }));
- item.setData ("TIP_TEXT", getResourceString("TreeItem.tooltip",
- new Object[] { item.getText() }));
- item.setData ("TIP_HELPTEXTHANDLER", new ToolTipHelpTextHandler() {
- public String getHelpText(Widget widget) {
- Item item = (Item) widget;
- return getResourceString("TreeItem.help", new Object[] { item.getText() });
- }
- });
- }
- tree.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL));
- tooltip.activateHoverHelp(tree);
-
- Button button = new Button (frame, SWT.PUSH);
- button.setText (getResourceString("Hello.text"));
- button.setData ("TIP_TEXT", getResourceString("Hello.tooltip"));
- tooltip.activateHoverHelp(button);
- }
-
- /**
- * Emulated tooltip handler
- * Notice that we could display anything in a tooltip besides text and images.
- * For instance, it might make sense to embed large tables of data or buttons linking
- * data under inspection to material elsewhere, or perform dynamic lookup for creating
- * tooltip text on the fly.
- */
- protected static class ToolTipHandler {
- private Shell parentShell;
- private Shell tipShell;
- private Label tipLabelImage, tipLabelText;
- private Widget tipWidget; // widget this tooltip is hovering over
- private Point tipPosition; // the position being hovered over
-
- /**
- * Creates a new tooltip handler
- *
- * @param parent the parent Shell
- */
- public ToolTipHandler(Shell parent) {
- final Display display = parent.getDisplay();
- this.parentShell = parent;
-
- tipShell = new Shell(parent, SWT.ON_TOP);
- GridLayout gridLayout = new GridLayout();
- gridLayout.numColumns = 2;
- gridLayout.marginWidth = 2;
- gridLayout.marginHeight = 2;
- tipShell.setLayout(gridLayout);
-
- tipShell.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));
-
- tipLabelImage = new Label(tipShell, SWT.NONE);
- tipLabelImage.setForeground(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND));
- tipLabelImage.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));
- tipLabelImage.setLayoutData(new GridData(GridData.FILL_HORIZONTAL |
- GridData.VERTICAL_ALIGN_CENTER));
-
- tipLabelText = new Label(tipShell, SWT.NONE);
- tipLabelText.setForeground(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND));
- tipLabelText.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));
- tipLabelText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL |
- GridData.VERTICAL_ALIGN_CENTER));
- }
-
- /**
- * Enables customized hover help for a specified control
- *
- * @control the control on which to enable hoverhelp
- */
- public void activateHoverHelp(final Control control) {
- /*
- * Get out of the way if we attempt to activate the control underneath the tooltip
- */
- control.addMouseListener(new MouseAdapter () {
- public void mouseDown (MouseEvent e) {
- if (tipShell.isVisible()) tipShell.setVisible(false);
- }
- });
-
- /*
- * Trap hover events to pop-up tooltip
- */
- control.addMouseTrackListener(new MouseTrackAdapter () {
- public void mouseExit(MouseEvent e) {
- if (tipShell.isVisible()) tipShell.setVisible(false);
- tipWidget = null;
- }
- public void mouseHover (MouseEvent event) {
- Point pt = new Point (event.x, event.y);
- Widget widget = event.widget;
- if (widget instanceof ToolBar) {
- ToolBar w = (ToolBar) widget;
- widget = w.getItem (pt);
- }
- if (widget instanceof Table) {
- Table w = (Table) widget;
- widget = w.getItem (pt);
- }
- if (widget instanceof Tree) {
- Tree w = (Tree) widget;
- widget = w.getItem (pt);
- }
- if (widget == null) {
- tipShell.setVisible(false);
- tipWidget = null;
- return;
- }
- if (widget == tipWidget) return;
- tipWidget = widget;
- tipPosition = control.toDisplay(pt);
- String text = (String) widget.getData("TIP_TEXT");
- Image image = (Image) widget.getData("TIP_IMAGE");
- tipLabelText.setText(text != null ? text : "");
- tipLabelImage.setImage(image); // accepts null
- tipShell.pack();
- setHoverLocation(tipShell, tipPosition);
- tipShell.setVisible(true);
- }
- });
-
- /*
- * Trap F1 Help to pop up a custom help box
- */
- control.addHelpListener(new HelpListener () {
- public void helpRequested(HelpEvent event) {
- if (tipWidget == null) return;
- ToolTipHelpTextHandler handler = (ToolTipHelpTextHandler)
- tipWidget.getData("TIP_HELPTEXTHANDLER");
- if (handler == null) return;
- String text = handler.getHelpText(tipWidget);
- if (text == null) return;
-
- if (tipShell.isVisible()) {
- tipShell.setVisible(false);
- Shell helpShell = new Shell(parentShell, SWT.SHELL_TRIM);
- helpShell.setLayout(new FillLayout());
- Label label = new Label(helpShell, SWT.NONE);
- label.setText(text);
- helpShell.pack();
- setHoverLocation(helpShell, tipPosition);
- helpShell.open();
- }
- }
- });
- }
-
- /**
- * Sets the location for a hovering shell
- * @param shell the object that is to hover
- * @param position the position of a widget to hover over
- * @return the top-left location for a hovering box
- */
- private void setHoverLocation(Shell shell, Point position) {
- Rectangle displayBounds = shell.getDisplay().getBounds();
- Rectangle shellBounds = shell.getBounds();
- shellBounds.x = Math.max(Math.min(position.x, displayBounds.width - shellBounds.width), 0);
- shellBounds.y = Math.max(Math.min(position.y + 16, displayBounds.height - shellBounds.height), 0);
- shell.setBounds(shellBounds);
- }
- }
-
- /**
- * ToolTip help handler
- */
- protected interface ToolTipHelpTextHandler {
- /**
- * Get help text
- * @param widget the widget that is under help
- * @return a help text string
- */
- public String getHelpText(Widget widget);
- }
-}
\ No newline at end of file diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/information.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/information.gif Binary files differdeleted file mode 100755 index 26c7477336..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/information.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/warning.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/warning.gif Binary files differdeleted file mode 100755 index cf4fdf93c7..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/warning.gif +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java deleted file mode 100755 index 5d35e6ec83..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java +++ /dev/null @@ -1,2076 +0,0 @@ -package org.eclipse.swt.examples.imageanalyzer;
-
-/*
- * Copyright (c) 2000, 2002 IBM Corp. All rights reserved. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.printing.*;
-import org.eclipse.swt.custom.*;
-import java.util.*;
-import java.net.*;
-import java.io.*;
-import java.text.MessageFormat;
-
-public class ImageAnalyzer {
- static ResourceBundle bundle = ResourceBundle.getBundle("examples_images");
- Display display;
- Shell shell;
- Canvas imageCanvas, paletteCanvas;
- Label typeLabel, sizeLabel, depthLabel, transparentPixelLabel,
- timeToLoadLabel, screenSizeLabel, backgroundPixelLabel,
- locationLabel, disposalMethodLabel, delayTimeLabel,
- repeatCountLabel, paletteLabel, dataLabel, statusLabel;
- Combo backgroundCombo, scaleXCombo, scaleYCombo, alphaCombo;
- Button incrementalCheck, transparentCheck, maskCheck, backgroundCheck;
- Button previousButton, nextButton, animateButton;
- StyledText dataText;
- Sash sash;
- Color whiteColor, blackColor, redColor, greenColor, blueColor, canvasBackground;
- Font fixedWidthFont;
- Cursor crossCursor;
- GC imageCanvasGC;
-
- int paletteWidth = 140; // recalculated and used as a width hint
- int ix = 0, iy = 0, py = 0; // used to scroll the image and palette
- float xscale = 1, yscale = 1; // used to scale the image
- int alpha = 255; // used to modify the alpha value of the image
- boolean incremental = false; // used to incrementally display an image
- boolean transparent = true; // used to display an image with transparency
- boolean showMask = false; // used to display an icon mask or transparent image mask
- boolean showBackground = false; // used to display the background of an animated image
- boolean animate = false; // used to animate a multi-image file
- Thread animateThread; // draws animated images
- Thread incrementalThread; // draws incremental images
- String lastPath; // used to seed the file dialog
- String currentName; // the current image file or URL name
- String fileName; // the current image file
- ImageLoader loader; // the loader for the current image file
- ImageData[] imageDataArray; // all image data read from the current file
- int imageDataIndex; // the index of the current image data
- ImageData imageData; // the currently-displayed image data
- Image image; // the currently-displayed image
- Vector incrementalEvents; // incremental image events
- long loadTime = 0; // the time it took to load the current image
-
- static final int INDEX_DIGITS = 4;
- static final int ALPHA_CONSTANT = 0;
- static final int ALPHA_X = 1;
- static final int ALPHA_Y = 2;
-
- class TextPrompter extends Dialog {
- String message = "";
- String result = null;
- Shell dialog;
- Text text;
- public TextPrompter (Shell parent, int style) {
- super (parent, style);
- }
- public TextPrompter (Shell parent) {
- this (parent, SWT.APPLICATION_MODAL);
- }
- public String getMessage () {
- return message;
- }
- public void setMessage (String string) {
- message = string;
- }
- public String open () {
- dialog = new Shell(getParent(), getStyle());
- dialog.setText(getText());
- dialog.setLayout(new GridLayout());
- Label label = new Label(dialog, SWT.NULL);
- label.setText(message);
- label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- text = new Text(dialog, SWT.SINGLE | SWT.BORDER);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.widthHint = 300;
- text.setLayoutData(data);
- Composite buttons = new Composite(dialog, SWT.NONE);
- GridLayout grid = new GridLayout();
- grid.numColumns = 2;
- buttons.setLayout(grid);
- buttons.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
- Button ok = new Button(buttons, SWT.PUSH);
- ok.setText(bundle.getString("OK"));
- data = new GridData();
- data.widthHint = 75;
- ok.setLayoutData(data);
- ok.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- result = text.getText();
- dialog.dispose();
- }
- });
- Button cancel = new Button(buttons, SWT.PUSH);
- cancel.setText(bundle.getString("Cancel"));
- data = new GridData();
- data.widthHint = 75;
- cancel.setLayoutData(data);
- cancel.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- dialog.dispose();
- }
- });
- dialog.setDefaultButton(ok);
- dialog.pack();
- dialog.open();
- while (!dialog.isDisposed()) {
- if (!display.readAndDispatch()) display.sleep();
- }
- return result;
- }
- }
-
- public static void main(String [] args) {
- Display display = new Display();
- ImageAnalyzer imageAnalyzer = new ImageAnalyzer();
- Shell shell = imageAnalyzer.open(display);
-
- while (!shell.isDisposed())
- if (!display.readAndDispatch()) display.sleep();
- display.dispose();
- }
-
- public Shell open(Display dpy) {
- // Create a window and set its title.
- this.display = dpy;
- shell = new Shell(display);
- shell.setText(bundle.getString("Image_analyzer"));
-
- // Hook resize and dispose listeners.
- shell.addControlListener(new ControlAdapter() {
- public void controlResized(ControlEvent event) {
- resizeShell(event);
- }
- });
- shell.addShellListener(new ShellAdapter() {
- public void shellClosed(ShellEvent e) {
- animate = false; // stop any animation in progress
- if (animateThread != null) {
- // wait for the thread to die before disposing the shell.
- while (animateThread.isAlive()) {
- if (!display.readAndDispatch()) display.sleep();
- }
- }
- e.doit = true;
- }
- });
- shell.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent e) {
- // Clean up.
- if (image != null)
- image.dispose();
- whiteColor.dispose();
- blackColor.dispose();
- redColor.dispose();
- greenColor.dispose();
- blueColor.dispose();
- fixedWidthFont.dispose();
- crossCursor.dispose();
- }
- });
-
- // Create colors and fonts.
- whiteColor = new Color(display, 255, 255, 255);
- blackColor = new Color(display, 0, 0, 0);
- redColor = new Color(display, 255, 0, 0);
- greenColor = new Color(display, 0, 255, 0);
- blueColor = new Color(display, 0, 0, 255);
- fixedWidthFont = new Font(display, "courier", 10, 0);
- crossCursor = new Cursor(display, SWT.CURSOR_CROSS);
-
- // Add a menu bar and widgets.
- Menu menuBar = createMenuBar();
- createWidgets();
- shell.pack();
-
- // Create a GC for drawing, and hook the listener to dispose it.
- imageCanvasGC = new GC(imageCanvas);
- imageCanvas.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent e) {
- imageCanvasGC.dispose();
- }
- });
-
- // Open the window
- shell.open();
- return shell;
- }
-
- void createWidgets() {
- // Add the widgets to the shell in a grid layout.
- GridLayout layout = new GridLayout();
- layout.marginHeight = 0;
- layout.numColumns = 2;
- shell.setLayout(layout);
-
- // Separate the menu bar from the rest of the widgets.
- Label separator = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
- GridData gridData = new GridData();
- gridData.horizontalSpan = 2;
- gridData.horizontalAlignment = GridData.FILL;
- separator.setLayoutData(gridData);
-
- // Add a composite to contain some control widgets across the top.
- Composite controls = new Composite(shell, SWT.NULL);
- RowLayout rowLayout = new RowLayout();
- rowLayout.marginTop = 0;
- rowLayout.marginBottom = 5;
- rowLayout.spacing = 8;
- controls.setLayout(rowLayout);
- gridData = new GridData();
- gridData.horizontalSpan = 2;
- controls.setLayoutData(gridData);
-
- // Combo to change the background.
- Group group = new Group(controls, SWT.NULL);
- group.setLayout(new RowLayout());
- group.setText(bundle.getString("Background"));
- backgroundCombo = new Combo(group, SWT.DROP_DOWN | SWT.READ_ONLY);
- backgroundCombo.setItems(new String[] {
- bundle.getString("None"),
- bundle.getString("White"),
- bundle.getString("Black"),
- bundle.getString("Red"),
- bundle.getString("Green"),
- bundle.getString("Blue")});
- backgroundCombo.select(backgroundCombo.indexOf(bundle.getString("White")));
- backgroundCombo.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- changeBackground();
- }
- });
-
- // Combo to change the x scale.
- String[] values = {
- "0.1", "0.2", "0.3", "0.4", "0.5", "0.6", "0.7", "0.8", "0.9", "1",
- "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "2",
- "3", "4", "5", "6", "7", "8", "9", "10",};
- group = new Group(controls, SWT.NULL);
- group.setLayout(new RowLayout());
- group.setText(bundle.getString("X_scale"));
- scaleXCombo = new Combo(group, SWT.DROP_DOWN);
- for (int i = 0; i < values.length; i++) {
- scaleXCombo.add(values[i]);
- }
- scaleXCombo.select(scaleXCombo.indexOf("1"));
- scaleXCombo.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- scaleX();
- }
- });
-
- // Combo to change the y scale.
- group = new Group(controls, SWT.NULL);
- group.setLayout(new RowLayout());
- group.setText(bundle.getString("Y_scale"));
- scaleYCombo = new Combo(group, SWT.DROP_DOWN);
- for (int i = 0; i < values.length; i++) {
- scaleYCombo.add(values[i]);
- }
- scaleYCombo.select(scaleYCombo.indexOf("1"));
- scaleYCombo.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- scaleY();
- }
- });
-
- // Combo to change the alpha value.
- group = new Group(controls, SWT.NULL);
- group.setLayout(new RowLayout());
- group.setText(bundle.getString("Alpha_K"));
- alphaCombo = new Combo(group, SWT.DROP_DOWN | SWT.READ_ONLY);
- for (int i = 0; i <= 255; i += 5) {
- alphaCombo.add(String.valueOf(i));
- }
- alphaCombo.select(alphaCombo.indexOf("255"));
- alphaCombo.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- alpha();
- }
- });
-
- // Check box to request incremental display.
- group = new Group(controls, SWT.NULL);
- group.setLayout(new RowLayout());
- group.setText(bundle.getString("Display"));
- incrementalCheck = new Button(group, SWT.CHECK);
- incrementalCheck.setText(bundle.getString("Incremental"));
- incrementalCheck.setSelection(incremental);
- incrementalCheck.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- incremental = ((Button)event.widget).getSelection();
- }
- });
-
- // Check box to request transparent display.
- transparentCheck = new Button(group, SWT.CHECK);
- transparentCheck.setText(bundle.getString("Transparent"));
- transparentCheck.setSelection(transparent);
- transparentCheck.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- transparent = ((Button)event.widget).getSelection();
- if (image != null) {
- imageCanvas.redraw();
- }
- }
- });
-
- // Check box to request mask display.
- maskCheck = new Button(group, SWT.CHECK);
- maskCheck.setText(bundle.getString("Mask"));
- maskCheck.setSelection(showMask);
- maskCheck.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- showMask = ((Button)event.widget).getSelection();
- if (image != null) {
- imageCanvas.redraw();
- }
- }
- });
-
- // Check box to request background display.
- backgroundCheck = new Button(group, SWT.CHECK);
- backgroundCheck.setText(bundle.getString("Background"));
- backgroundCheck.setSelection(showBackground);
- backgroundCheck.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- showBackground = ((Button)event.widget).getSelection();
- }
- });
-
- // Group the animation buttons.
- group = new Group(controls, SWT.NULL);
- group.setLayout(new RowLayout());
- group.setText(bundle.getString("Animation"));
-
- // Push button to display the previous image in a multi-image file.
- previousButton = new Button(group, SWT.PUSH);
- previousButton.setText(bundle.getString("Previous"));
- previousButton.setEnabled(false);
- previousButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- previous();
- }
- });
-
- // Push button to display the next image in a multi-image file.
- nextButton = new Button(group, SWT.PUSH);
- nextButton.setText(bundle.getString("Next"));
- nextButton.setEnabled(false);
- nextButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- next();
- }
- });
-
- // Push button to toggle animation of a multi-image file.
- animateButton = new Button(group, SWT.PUSH);
- animateButton.setText(bundle.getString("Animate"));
- animateButton.setEnabled(false);
- animateButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- animate();
- }
- });
-
- // Label to show the image file type.
- typeLabel = new Label(shell, SWT.NULL);
- typeLabel.setText(bundle.getString("Type_initial"));
- typeLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
- // Canvas to show the image.
- imageCanvas = new Canvas(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.NO_REDRAW_RESIZE);
- imageCanvas.setBackground(whiteColor);
- imageCanvas.setCursor(crossCursor);
- gridData = new GridData();
- gridData.verticalSpan = 15;
- gridData.horizontalAlignment = GridData.FILL;
- gridData.verticalAlignment = GridData.FILL;
- gridData.grabExcessHorizontalSpace = true;
- gridData.grabExcessVerticalSpace = true;
- imageCanvas.setLayoutData(gridData);
- imageCanvas.addPaintListener(new PaintListener() {
- public void paintControl(PaintEvent event) {
- if (image != null)
- paintImage(event);
- }
- });
- imageCanvas.addMouseMoveListener(new MouseMoveListener() {
- public void mouseMove(MouseEvent event) {
- if (image != null) {
- showColorAt(event.x, event.y);
- }
- }
- });
-
- // Set up the image canvas scroll bars.
- ScrollBar horizontal = imageCanvas.getHorizontalBar();
- horizontal.setVisible(true);
- horizontal.setMinimum(0);
- horizontal.setEnabled(false);
- horizontal.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- scrollHorizontally((ScrollBar)event.widget);
- }
- });
- ScrollBar vertical = imageCanvas.getVerticalBar();
- vertical.setVisible(true);
- vertical.setMinimum(0);
- vertical.setEnabled(false);
- vertical.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- scrollVertically((ScrollBar)event.widget);
- }
- });
-
- // Label to show the image size.
- sizeLabel = new Label(shell, SWT.NULL);
- sizeLabel.setText(bundle.getString("Size_initial"));
- sizeLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
- // Label to show the image depth.
- depthLabel = new Label(shell, SWT.NULL);
- depthLabel.setText(bundle.getString("Depth_initial"));
- depthLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
- // Label to show the transparent pixel.
- transparentPixelLabel = new Label(shell, SWT.NULL);
- transparentPixelLabel.setText(bundle.getString("Transparent_pixel_initial"));
- transparentPixelLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
- // Label to show the time to load.
- timeToLoadLabel = new Label(shell, SWT.NULL);
- timeToLoadLabel.setText(bundle.getString("Time_to_load_initial"));
- timeToLoadLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
- // Separate the animation fields from the rest of the fields.
- separator = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
- separator.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
- // Label to show the logical screen size for animation.
- screenSizeLabel = new Label(shell, SWT.NULL);
- screenSizeLabel.setText(bundle.getString("Animation_size_initial"));
- screenSizeLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
- // Label to show the background pixel.
- backgroundPixelLabel = new Label(shell, SWT.NULL);
- backgroundPixelLabel.setText(bundle.getString("Background_pixel_initial"));
- backgroundPixelLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
- // Label to show the image location (x, y).
- locationLabel = new Label(shell, SWT.NULL);
- locationLabel.setText(bundle.getString("Image_location_initial"));
- locationLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
- // Label to show the image disposal method.
- disposalMethodLabel = new Label(shell, SWT.NULL);
- disposalMethodLabel.setText(bundle.getString("Disposal_initial"));
- disposalMethodLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
- // Label to show the image delay time.
- delayTimeLabel = new Label(shell, SWT.NULL);
- delayTimeLabel.setText(bundle.getString("Delay_initial"));
- delayTimeLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
- // Label to show the background pixel.
- repeatCountLabel = new Label(shell, SWT.NULL);
- repeatCountLabel.setText(bundle.getString("Repeats_initial"));
- repeatCountLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
- // Separate the animation fields from the palette.
- separator = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
- separator.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
- // Label to show if the image has a direct or indexed palette.
- paletteLabel = new Label(shell, SWT.NULL);
- paletteLabel.setText(bundle.getString("Palette_initial"));
- paletteLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
- // Canvas to show the image's palette.
- paletteCanvas = new Canvas(shell, SWT.BORDER | SWT.V_SCROLL | SWT.NO_REDRAW_RESIZE);
- paletteCanvas.setFont(fixedWidthFont);
- paletteCanvas.getVerticalBar().setVisible(true);
- gridData = new GridData();
- gridData.horizontalAlignment = GridData.FILL;
- gridData.verticalAlignment = GridData.FILL;
- GC gc = new GC(paletteLabel);
- paletteWidth = gc.stringExtent(bundle.getString("Max_length_string")).x;
- gc.dispose();
- gridData.widthHint = paletteWidth;
- gridData.heightHint = 16 * 11; // show at least 16 colors
- paletteCanvas.setLayoutData(gridData);
- paletteCanvas.addPaintListener(new PaintListener() {
- public void paintControl(PaintEvent event) {
- if (image != null)
- paintPalette(event);
- }
- });
-
- // Set up the palette canvas scroll bar.
- vertical = paletteCanvas.getVerticalBar();
- vertical.setVisible(true);
- vertical.setMinimum(0);
- vertical.setIncrement(10);
- vertical.setEnabled(false);
- vertical.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- scrollPalette((ScrollBar)event.widget);
- }
- });
-
- // Sash to see more of image or image data.
- sash = new Sash(shell, SWT.HORIZONTAL);
- gridData = new GridData();
- gridData.horizontalSpan = 2;
- gridData.horizontalAlignment = GridData.FILL;
- sash.setLayoutData(gridData);
- sash.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- if (event.detail != SWT.DRAG) {
- ((GridData)paletteCanvas.getLayoutData()).heightHint = SWT.DEFAULT;
- Rectangle paletteCanvasBounds = paletteCanvas.getBounds();
- int minY = paletteCanvasBounds.y + 20;
- Rectangle dataLabelBounds = dataLabel.getBounds();
- int maxY = statusLabel.getBounds().y - dataLabelBounds.height - 20;
- if (event.y > minY && event.y < maxY) {
- Rectangle oldSash = sash.getBounds();
- sash.setBounds(event.x, event.y, event.width, event.height);
- int diff = event.y - oldSash.y;
- Rectangle bounds = imageCanvas.getBounds();
- imageCanvas.setBounds(bounds.x, bounds.y, bounds.width, bounds.height + diff);
- bounds = paletteCanvasBounds;
- paletteCanvas.setBounds(bounds.x, bounds.y, bounds.width, bounds.height + diff);
- bounds = dataLabelBounds;
- dataLabel.setBounds(bounds.x, bounds.y + diff, bounds.width, bounds.height);
- bounds = dataText.getBounds();
- dataText.setBounds(bounds.x, bounds.y + diff, bounds.width, bounds.height - diff);
- //shell.layout(true);
- }
- }
- }
- });
-
- // Label to show data-specific fields.
- dataLabel = new Label(shell, SWT.NULL);
- dataLabel.setText(bundle.getString("Pixel_data_initial"));
- gridData = new GridData();
- gridData.horizontalSpan = 2;
- gridData.horizontalAlignment = GridData.FILL;
- dataLabel.setLayoutData(gridData);
-
- // Text to show a dump of the data.
- dataText = new StyledText(shell, SWT.BORDER | SWT.MULTI | SWT.READ_ONLY | SWT.V_SCROLL | SWT.H_SCROLL);
- dataText.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
- dataText.setFont(fixedWidthFont);
- gridData = new GridData();
- gridData.horizontalSpan = 2;
- gridData.horizontalAlignment = GridData.FILL;
- gridData.verticalAlignment = GridData.FILL;
- gridData.heightHint = 128;
- gridData.grabExcessVerticalSpace = true;
- dataText.setLayoutData(gridData);
- dataText.addMouseListener(new MouseAdapter() {
- public void mouseDown(MouseEvent event) {
- if (image != null && event.button == 1) {
- showColorForData();
- }
- }
- });
- dataText.addKeyListener(new KeyAdapter() {
- public void keyPressed(KeyEvent event) {
- if (image != null) {
- showColorForData();
- }
- }
- });
-
- // Label to show status and cursor location in image.
- statusLabel = new Label(shell, SWT.NULL);
- statusLabel.setText("");
- gridData = new GridData();
- gridData.horizontalSpan = 2;
- gridData.horizontalAlignment = GridData.FILL;
- statusLabel.setLayoutData(gridData);
- }
-
- Menu createMenuBar() {
- // Menu bar.
- Menu menuBar = new Menu(shell, SWT.BAR);
- shell.setMenuBar(menuBar);
- createFileMenu(menuBar);
- createAlphaMenu(menuBar);
- return menuBar;
- }
-
- void createFileMenu(Menu menuBar) {
- // File menu
- MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
- item.setText(bundle.getString("File"));
- Menu fileMenu = new Menu(shell, SWT.DROP_DOWN);
- item.setMenu(fileMenu);
-
- // File -> Open File...
- item = new MenuItem(fileMenu, SWT.NULL);
- item.setText(bundle.getString("OpenFile"));
- item.setAccelerator(SWT.CTRL + 'O');
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- menuOpenFile();
- }
- });
-
- // File -> Open URL...
- item = new MenuItem(fileMenu, SWT.NULL);
- item.setText(bundle.getString("OpenURL"));
- item.setAccelerator(SWT.CTRL + 'U');
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- menuOpenURL();
- }
- });
-
- // File -> Reopen
- item = new MenuItem(fileMenu, SWT.NULL);
- item.setText(bundle.getString("Reopen"));
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- menuReopen();
- }
- });
-
- new MenuItem(fileMenu, SWT.SEPARATOR);
-
- // File -> Save
- item = new MenuItem(fileMenu, SWT.NULL);
- item.setText(bundle.getString("Save"));
- item.setAccelerator(SWT.CTRL + 'S');
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- menuSave();
- }
- });
-
- // File -> Save As...
- item = new MenuItem(fileMenu, SWT.NULL);
- item.setText(bundle.getString("Save_as"));
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- menuSaveAs();
- }
- });
-
- // File -> Save Mask As...
- item = new MenuItem(fileMenu, SWT.NULL);
- item.setText(bundle.getString("Save_mask_as"));
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- menuSaveMaskAs();
- }
- });
-
- new MenuItem(fileMenu, SWT.SEPARATOR);
-
- // File -> Print
- item = new MenuItem(fileMenu, SWT.NULL);
- item.setText(bundle.getString("Print"));
- item.setAccelerator(SWT.CTRL + 'P');
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- menuPrint();
- }
- });
-
- new MenuItem(fileMenu, SWT.SEPARATOR);
-
- // File -> Exit
- item = new MenuItem(fileMenu, SWT.NULL);
- item.setText(bundle.getString("Exit"));
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- shell.close();
- }
- });
-
- }
-
- void createAlphaMenu(Menu menuBar) {
- // Alpha menu
- MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
- item.setText(bundle.getString("Alpha"));
- Menu alphaMenu = new Menu(shell, SWT.DROP_DOWN);
- item.setMenu(alphaMenu);
-
- // Alpha -> K
- item = new MenuItem(alphaMenu, SWT.NULL);
- item.setText("K");
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- menuComposeAlpha(ALPHA_CONSTANT);
- }
- });
-
- // Alpha -> (K + x) % 256
- item = new MenuItem(alphaMenu, SWT.NULL);
- item.setText("(K + x) % 256");
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- menuComposeAlpha(ALPHA_X);
- }
- });
-
- // Alpha -> (K + y) % 256
- item = new MenuItem(alphaMenu, SWT.NULL);
- item.setText("(K + y) % 256");
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- menuComposeAlpha(ALPHA_Y);
- }
- });
- }
-
- void menuComposeAlpha(int alpha_op) {
- if (image == null) return;
- animate = false; // stop any animation in progress
- Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
- shell.setCursor(waitCursor);
- imageCanvas.setCursor(waitCursor);
- try {
- if (alpha_op == ALPHA_CONSTANT) {
- imageData.alpha = alpha;
- } else {
- imageData.alpha = -1;
- switch (alpha_op) {
- case ALPHA_X:
- for (int y = 0; y < imageData.height; y++) {
- for (int x = 0; x < imageData.width; x++) {
- imageData.setAlpha(x, y, (x + alpha) % 256);
- }
- }
- break;
- case ALPHA_Y:
- for (int y = 0; y < imageData.height; y++) {
- for (int x = 0; x < imageData.width; x++) {
- imageData.setAlpha(x, y, (y + alpha) % 256);
- }
- }
- break;
- default: break;
- }
- }
- displayImage(imageData);
- } finally {
- shell.setCursor(null);
- imageCanvas.setCursor(crossCursor);
- waitCursor.dispose();
- }
- }
-
- void menuOpenFile() {
- animate = false; // stop any animation in progress
- resetScaleCombos();
-
- // Get the user to choose an image file.
- FileDialog fileChooser = new FileDialog(shell, SWT.OPEN);
- if (lastPath != null)
- fileChooser.setFilterPath(lastPath);
- fileChooser.setFilterExtensions(new String[] { "*.bmp; *.gif; *.ico; *.jpg; *.pcx; *.png; *.tif", "*.bmp", "*.gif", "*.ico", "*.jpg", "*.pcx", "*.png", "*.tif" });
- fileChooser.setFilterNames(new String[] { bundle.getString("All_images") + " (bmp, gif, ico, jpg, pcx, png, tif)",
- "BMP (*.bmp)", "GIF (*.gif)", "ICO (*.ico)", "JPEG (*.jpg)", "PCX (*.pcx)", "PNG (*.png)", "TIFF (*.tif)" });
- String filename = fileChooser.open();
- lastPath = fileChooser.getFilterPath();
- if (filename == null)
- return;
-
- Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
- shell.setCursor(waitCursor);
- imageCanvas.setCursor(waitCursor);
- try {
- loader = new ImageLoader();
- if (incremental) {
- // Prepare to handle incremental events.
- loader.addImageLoaderListener(new ImageLoaderListener() {
- public void imageDataLoaded(ImageLoaderEvent event) {
- incrementalDataLoaded(event);
- }
- });
- incrementalThreadStart();
- }
- // Read the new image(s) from the chosen file.
- long startTime = System.currentTimeMillis();
- imageDataArray = loader.load(filename);
- loadTime = System.currentTimeMillis() - startTime;
- if (imageDataArray.length > 0) {
- // Cache the filename.
- currentName = filename;
- fileName = filename;
-
- // If there are multiple images in the file (typically GIF)
- // then enable the Previous, Next and Animate buttons.
- previousButton.setEnabled(imageDataArray.length > 1);
- nextButton.setEnabled(imageDataArray.length > 1);
- animateButton.setEnabled(imageDataArray.length > 1 && loader.logicalScreenWidth > 0 && loader.logicalScreenHeight > 0);
-
- // Display the first image in the file.
- imageDataIndex = 0;
- displayImage(imageDataArray[imageDataIndex]);
- resetScrollBars();
- }
- } catch (SWTException e) {
- showErrorDialog(bundle.getString("Loading_lc"), filename, e);
- } finally {
- shell.setCursor(null);
- imageCanvas.setCursor(crossCursor);
- waitCursor.dispose();
- }
- }
-
- void menuOpenURL() {
- animate = false; // stop any animation in progress
- resetScaleCombos();
-
- // Get the user to choose an image URL.
- TextPrompter textPrompter = new TextPrompter(shell, SWT.APPLICATION_MODAL | SWT.DIALOG_TRIM);
- textPrompter.setText(bundle.getString("OpenURLDialog"));
- textPrompter.setMessage(bundle.getString("EnterURL"));
- String urlname = textPrompter.open();
- if (urlname == null) return;
-
- Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
- shell.setCursor(waitCursor);
- imageCanvas.setCursor(waitCursor);
- try {
- URL url = new URL(urlname);
- InputStream stream = url.openStream();
- loader = new ImageLoader();
- if (incremental) {
- // Prepare to handle incremental events.
- loader.addImageLoaderListener(new ImageLoaderListener() {
- public void imageDataLoaded(ImageLoaderEvent event) {
- incrementalDataLoaded(event);
- }
- });
- incrementalThreadStart();
- }
- // Read the new image(s) from the chosen file.
- long startTime = System.currentTimeMillis();
- imageDataArray = loader.load(stream);
- loadTime = System.currentTimeMillis() - startTime;
- if (imageDataArray.length > 0) {
- currentName = urlname;
- fileName = null;
-
- // If there are multiple images in the file (typically GIF)
- // then enable the Previous, Next and Animate buttons.
- previousButton.setEnabled(imageDataArray.length > 1);
- nextButton.setEnabled(imageDataArray.length > 1);
- animateButton.setEnabled(imageDataArray.length > 1 && loader.logicalScreenWidth > 0 && loader.logicalScreenHeight > 0);
-
- // Display the first image in the file.
- imageDataIndex = 0;
- displayImage(imageDataArray[imageDataIndex]);
- resetScrollBars();
- }
- } catch (Exception e) {
- showErrorDialog(bundle.getString("Loading_lc"), urlname, e);
- } finally {
- shell.setCursor(null);
- imageCanvas.setCursor(crossCursor);
- waitCursor.dispose();
- }
- }
-
- /*
- * Called to start a thread that draws incremental images
- * as they are loaded.
- */
- void incrementalThreadStart() {
- incrementalEvents = new Vector();
- incrementalThread = new Thread("Incremental") {
- public void run() {
- // Draw the first ImageData increment.
- while (incrementalEvents != null) {
- // Synchronize so we don't try to remove when the vector is null.
- synchronized (ImageAnalyzer.this) {
- if (incrementalEvents != null) {
- if (incrementalEvents.size() > 0) {
- ImageLoaderEvent event = (ImageLoaderEvent) incrementalEvents.remove(0);
- if (image != null) image.dispose();
- image = new Image(display, event.imageData);
- imageData = event.imageData;
- imageCanvasGC.drawImage(
- image,
- 0,
- 0,
- imageData.width,
- imageData.height,
- imageData.x,
- imageData.y,
- imageData.width,
- imageData.height);
- } else {
- yield();
- }
- }
- }
- }
- display.wake();
- }
- };
- incrementalThread.setDaemon(true);
- incrementalThread.start();
- }
-
- /*
- * Called when incremental image data has been loaded,
- * for example, for interlaced GIF/PNG or progressive JPEG.
- */
- void incrementalDataLoaded(ImageLoaderEvent event) {
- // Synchronize so that we do not try to add while
- // the incremental drawing thread is removing.
- synchronized (this) {
- incrementalEvents.addElement(event);
- }
- }
-
- void menuSave() {
- if (image == null) return;
- animate = false; // stop any animation in progress
-
- // If the image file type is unknown, we can't 'Save',
- // so we have to use 'Save As...'.
- if (imageData.type == SWT.IMAGE_UNDEFINED || fileName == null) {
- menuSaveAs();
- return;
- }
-
- Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
- shell.setCursor(waitCursor);
- imageCanvas.setCursor(waitCursor);
- try {
- // Save the current image to the current file.
- loader.data = new ImageData[] {imageData};
- loader.save(fileName, imageData.type);
-
- } catch (SWTException e) {
- showErrorDialog(bundle.getString("Saving_lc"), fileName, e);
- } finally {
- shell.setCursor(null);
- imageCanvas.setCursor(crossCursor);
- waitCursor.dispose();
- }
- }
-
- void menuSaveAs() {
- if (image == null) return;
- animate = false; // stop any animation in progress
-
- // Get the user to choose a file name and type to save.
- FileDialog fileChooser = new FileDialog(shell, SWT.SAVE);
- fileChooser.setFilterPath(lastPath);
- if (fileName != null) fileChooser.setFileName(fileName);
- fileChooser.setFilterExtensions(new String[] { "*.bmp", "*.gif", "*.ico", "*.jpg", "*.png" });
- fileChooser.setFilterNames(new String[] { "BMP (*.bmp)", "GIF (*.gif)", "ICO (*.ico)", "JPEG (*.jpg)", "PNG (*.png)" });
- String filename = fileChooser.open();
- lastPath = fileChooser.getFilterPath();
- if (filename == null)
- return;
-
- // Figure out what file type the user wants saved.
- // We need to rely on the file extension because FileDialog
- // does not have API for asking what filter type was selected.
- int filetype = determineFileType(filename);
- if (filetype == SWT.IMAGE_UNDEFINED) {
- MessageBox box = new MessageBox(shell, SWT.ICON_ERROR);
- box.setMessage(createMsg(bundle.getString("Unknown_extension"),
- filename.substring(filename.lastIndexOf('.') + 1)));
- box.open();
- return;
- }
-
- if (new java.io.File(filename).exists()) {
- MessageBox box = new MessageBox(shell, SWT.ICON_QUESTION | SWT.OK | SWT.CANCEL);
- box.setMessage(createMsg(bundle.getString("Overwrite"), filename));
- if (box.open() == SWT.CANCEL)
- return;
- }
-
- Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
- shell.setCursor(waitCursor);
- imageCanvas.setCursor(waitCursor);
- try {
- // Save the current image to the specified file.
- loader.data = new ImageData[] {imageData};
- loader.save(filename, filetype);
-
- // Update the shell title and file type label,
- // and use the new file.
- fileName = filename;
- shell.setText(createMsg(bundle.getString("Analyzer_on"), filename));
- typeLabel.setText(createMsg(bundle.getString("Type_string"), fileTypeString(filetype)));
-
- } catch (SWTException e) {
- showErrorDialog(bundle.getString("Saving_lc"), filename, e);
- } finally {
- shell.setCursor(null);
- imageCanvas.setCursor(crossCursor);
- waitCursor.dispose();
- }
- }
-
- void menuSaveMaskAs() {
- if (image == null || !showMask) return;
- if (imageData.getTransparencyType() == SWT.TRANSPARENCY_NONE) return;
- animate = false; // stop any animation in progress
-
- // Get the user to choose a file name and type to save.
- FileDialog fileChooser = new FileDialog(shell, SWT.SAVE);
- fileChooser.setFilterPath(lastPath);
- if (fileName != null) fileChooser.setFileName(fileName);
- fileChooser.setFilterExtensions(new String[] { "*.bmp", "*.gif", "*.ico", "*.jpg", "*.png" });
- fileChooser.setFilterNames(new String[] { "BMP (*.bmp)", "GIF (*.gif)", "ICO (*.ico)", "JPEG (*.jpg)", "PNG (*.png)" });
- String filename = fileChooser.open();
- lastPath = fileChooser.getFilterPath();
- if (filename == null)
- return;
-
- // Figure out what file type the user wants saved.
- // We need to rely on the file extension because FileDialog
- // does not have API for asking what filter type was selected.
- int filetype = determineFileType(filename);
- if (filetype == SWT.IMAGE_UNDEFINED) {
- MessageBox box = new MessageBox(shell, SWT.ICON_ERROR);
- box.setMessage(createMsg(bundle.getString("Unknown_extension"),
- filename.substring(filename.lastIndexOf('.') + 1)));
- box.open();
- return;
- }
-
- if (new java.io.File(filename).exists()) {
- MessageBox box = new MessageBox(shell, SWT.ICON_QUESTION | SWT.OK | SWT.CANCEL);
- box.setMessage(createMsg(bundle.getString("Overwrite"), filename));
- if (box.open() == SWT.CANCEL)
- return;
- }
-
- Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
- shell.setCursor(waitCursor);
- imageCanvas.setCursor(waitCursor);
- try {
- // Save the mask of the current image to the specified file.
- ImageData maskImageData = imageData.getTransparencyMask();
- loader.data = new ImageData[] {maskImageData};
- loader.save(filename, filetype);
-
- } catch (SWTException e) {
- showErrorDialog(bundle.getString("Saving_lc"), filename, e);
- } finally {
- shell.setCursor(null);
- imageCanvas.setCursor(crossCursor);
- waitCursor.dispose();
- }
- }
-
- void menuPrint() {
- if (image == null) return;
-
- try {
- // Ask the user to specify the printer.
- PrintDialog dialog = new PrintDialog(shell, SWT.NULL);
- PrinterData printerData = dialog.open();
- if (printerData == null) return;
-
- Printer printer = new Printer(printerData);
- Point screenDPI = display.getDPI();
- Point printerDPI = printer.getDPI();
- int scaleFactor = printerDPI.x / screenDPI.x;
- Rectangle trim = printer.computeTrim(0, 0, 0, 0);
- if (printer.startJob(currentName)) {
- if (printer.startPage()) {
- GC gc = new GC(printer);
- int transparentPixel = imageData.transparentPixel;
- if (transparentPixel != -1 && !transparent) {
- imageData.transparentPixel = -1;
- }
- Image printerImage = new Image(printer, imageData);
- gc.drawImage(
- printerImage,
- 0,
- 0,
- imageData.width,
- imageData.height,
- -trim.x,
- -trim.y,
- scaleFactor * imageData.width,
- scaleFactor * imageData.height);
- if (transparentPixel != -1 && !transparent) {
- imageData.transparentPixel = transparentPixel;
- }
- printerImage.dispose();
- gc.dispose();
- printer.endPage();
- }
- printer.endJob();
- }
- printer.dispose();
- } catch (SWTError e) {
- MessageBox box = new MessageBox(shell, SWT.ICON_ERROR);
- box.setMessage(bundle.getString("Printing_error") + e.getMessage());
- box.open();
- }
- }
-
- void menuReopen() {
- if (currentName == null) return;
- animate = false; // stop any animation in progress
- resetScrollBars();
- resetScaleCombos();
- Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
- shell.setCursor(waitCursor);
- imageCanvas.setCursor(waitCursor);
- try {
- loader = new ImageLoader();
- long startTime = System.currentTimeMillis();
- ImageData[] newImageData;
- if (fileName == null) {
- URL url = new URL(currentName);
- InputStream stream = url.openStream();
- newImageData = loader.load(stream);
- } else {
- newImageData = loader.load(fileName);
- }
- loadTime = System.currentTimeMillis() - startTime;
- imageDataIndex = 0;
- displayImage(newImageData[imageDataIndex]);
-
- } catch (Exception e) {
- showErrorDialog(bundle.getString("Reloading_lc"), currentName, e);
- } finally {
- shell.setCursor(null);
- imageCanvas.setCursor(crossCursor);
- waitCursor.dispose();
- }
- }
-
- void changeBackground() {
- String background = backgroundCombo.getText();
- if (background.equals(bundle.getString("White"))) {
- imageCanvas.setBackground(whiteColor);
- } else if (background.equals(bundle.getString("Black"))) {
- imageCanvas.setBackground(blackColor);
- } else if (background.equals(bundle.getString("Red"))) {
- imageCanvas.setBackground(redColor);
- } else if (background.equals(bundle.getString("Green"))) {
- imageCanvas.setBackground(greenColor);
- } else if (background.equals(bundle.getString("Blue"))) {
- imageCanvas.setBackground(blueColor);
- } else {
- imageCanvas.setBackground(null);
- }
- }
-
- /*
- * Called when the ScaleX combo selection changes.
- */
- void scaleX() {
- try {
- xscale = Float.parseFloat(scaleXCombo.getText());
- } catch (NumberFormatException e) {
- xscale = 1;
- scaleXCombo.select(scaleXCombo.indexOf("1"));
- }
- if (image != null) {
- resizeScrollBars();
- imageCanvas.redraw();
- }
- }
-
- /*
- * Called when the ScaleY combo selection changes.
- */
- void scaleY() {
- try {
- yscale = Float.parseFloat(scaleYCombo.getText());
- } catch (NumberFormatException e) {
- yscale = 1;
- scaleYCombo.select(scaleYCombo.indexOf("1"));
- }
- if (image != null) {
- resizeScrollBars();
- imageCanvas.redraw();
- }
- }
-
- /*
- * Called when the Alpha combo selection changes.
- */
- void alpha() {
- try {
- alpha = Integer.parseInt(alphaCombo.getText());
- } catch (NumberFormatException e) {
- alphaCombo.select(alphaCombo.indexOf("255"));
- alpha = 255;
- }
- }
-
- /*
- * Called when the mouse moves in the image canvas.
- * Show the color of the image at the point under the mouse.
- */
- void showColorAt(int mx, int my) {
- int x = mx - imageData.x - ix;
- int y = my - imageData.y - iy;
- showColorForPixel(x, y);
- }
-
- /*
- * Called when a mouse down or key press is detected
- * in the data text. Show the color of the pixel at
- * the caret position in the data text.
- */
- void showColorForData() {
- int delimiterLength = dataText.getLineDelimiter().length();
- int charactersPerLine = 6 + 3 * imageData.bytesPerLine + delimiterLength;
- int position = dataText.getCaretOffset();
- int y = position / charactersPerLine;
- if ((position - y * charactersPerLine) < 6 || ((y + 1) * charactersPerLine - position) <= delimiterLength) {
- statusLabel.setText("");
- return;
- }
- int dataPosition = position - 6 * (y + 1) - delimiterLength * y;
- int byteNumber = dataPosition / 3;
- int where = dataPosition - byteNumber * 3;
- int xByte = byteNumber % imageData.bytesPerLine;
- int x = -1;
- int depth = imageData.depth;
- if (depth == 1) { // 8 pixels per byte (can only show 3 of 8)
- if (where == 0) x = xByte * 8;
- if (where == 1) x = xByte * 8 + 3;
- if (where == 2) x = xByte * 8 + 7;
- }
- if (depth == 2) { // 4 pixels per byte (can only show 3 of 4)
- if (where == 0) x = xByte * 4;
- if (where == 1) x = xByte * 4 + 1;
- if (where == 2) x = xByte * 4 + 3;
- }
- if (depth == 4) { // 2 pixels per byte
- if (where == 0) x = xByte * 2;
- if (where == 1) x = xByte * 2;
- if (where == 2) x = xByte * 2 + 1;
- }
- if (depth == 8) { // 1 byte per pixel
- x = xByte;
- }
- if (depth == 16) { // 2 bytes per pixel
- x = xByte / 2;
- }
- if (depth == 24) { // 3 bytes per pixel
- x = xByte / 3;
- }
- if (depth == 32) { // 4 bytes per pixel
- x = xByte / 4;
- }
- if (x != -1) {
- showColorForPixel(x, y);
- } else {
- statusLabel.setText("");
- }
- }
-
- /*
- * Set the status label to show color information
- * for the specified pixel in the image.
- */
- void showColorForPixel(int x, int y) {
- if (x >= 0 && x < imageData.width && y >= 0 && y < imageData.height) {
- int pixel = imageData.getPixel(x, y);
- RGB rgb = imageData.palette.getRGB(pixel);
-
-
- Object[] args = {new Integer(x),
- new Integer(y),
- new Integer(pixel),
- Integer.toHexString(pixel),
- rgb};
- if (pixel == imageData.transparentPixel) {
- statusLabel.setText(createMsg(bundle.getString("Color_at_trans"), args));
- } else {
- statusLabel.setText(createMsg(bundle.getString("Color_at"), args));
- }
- } else {
- statusLabel.setText("");
- }
- }
-
- /*
- * Called when the Animate button is pressed.
- */
- void animate() {
- animate = !animate;
- if (animate && image != null && imageDataArray.length > 1) {
- animateThread = new Thread(bundle.getString("Animation")) {
- public void run() {
- // Pre-animation widget setup.
- preAnimation();
-
- // Animate.
- try {
- animateLoop();
- } catch (final SWTException e) {
- display.syncExec(new Runnable() {
- public void run() {
- showErrorDialog(createMsg(bundle.getString("Creating_image"),
- new Integer(imageDataIndex+1)),
- currentName, e);
- }
- });
- }
-
- // Post animation widget reset.
- postAnimation();
- }
- };
- animateThread.setDaemon(true);
- animateThread.start();
- }
- }
-
- /*
- * Loop through all of the images in a multi-image file
- * and display them one after another.
- */
- void animateLoop() {
- // Create an off-screen image to draw on, and a GC to draw with.
- // Both are disposed after the animation.
- Image offScreenImage = new Image(display, loader.logicalScreenWidth, loader.logicalScreenHeight);
- GC offScreenImageGC = new GC(offScreenImage);
-
- try {
- // Use syncExec to get the background color of the imageCanvas.
- display.syncExec(new Runnable() {
- public void run() {
- canvasBackground = imageCanvas.getBackground();
- }
- });
-
- // Fill the off-screen image with the background color of the canvas.
- offScreenImageGC.setBackground(canvasBackground);
- offScreenImageGC.fillRectangle(
- 0,
- 0,
- loader.logicalScreenWidth,
- loader.logicalScreenHeight);
-
- // Draw the current image onto the off-screen image.
- offScreenImageGC.drawImage(
- image,
- 0,
- 0,
- imageData.width,
- imageData.height,
- imageData.x,
- imageData.y,
- imageData.width,
- imageData.height);
-
- int repeatCount = loader.repeatCount;
- while (animate && (loader.repeatCount == 0 || repeatCount > 0)) {
- if (imageData.disposalMethod == SWT.DM_FILL_BACKGROUND) {
- // Fill with the background color before drawing.
- Color bgColor = null;
- int backgroundPixel = loader.backgroundPixel;
- if (showBackground && backgroundPixel != -1) {
- // Fill with the background color.
- RGB backgroundRGB = imageData.palette.getRGB(backgroundPixel);
- bgColor = new Color(null, backgroundRGB);
- }
- try {
- offScreenImageGC.setBackground(bgColor != null ? bgColor : canvasBackground);
- offScreenImageGC.fillRectangle(
- imageData.x,
- imageData.y,
- imageData.width,
- imageData.height);
- } finally {
- if (bgColor != null) bgColor.dispose();
- }
- } else if (imageData.disposalMethod == SWT.DM_FILL_PREVIOUS) {
- // Restore the previous image before drawing.
- offScreenImageGC.drawImage(
- image,
- 0,
- 0,
- imageData.width,
- imageData.height,
- imageData.x,
- imageData.y,
- imageData.width,
- imageData.height);
- }
-
- // Get the next image data.
- imageDataIndex = (imageDataIndex + 1) % imageDataArray.length;
- imageData = imageDataArray[imageDataIndex];
- image.dispose();
- image = new Image(display, imageData);
-
- // Draw the new image data.
- offScreenImageGC.drawImage(
- image,
- 0,
- 0,
- imageData.width,
- imageData.height,
- imageData.x,
- imageData.y,
- imageData.width,
- imageData.height);
-
- // Draw the off-screen image to the screen.
- imageCanvasGC.drawImage(offScreenImage, 0, 0);
-
- // Sleep for the specified delay time before drawing again.
- try {
- Thread.sleep(visibleDelay(imageData.delayTime * 10));
- } catch (InterruptedException e) {
- }
-
- // If we have just drawn the last image in the set,
- // then decrement the repeat count.
- if (imageDataIndex == imageDataArray.length - 1) repeatCount--;
- }
- } finally {
- offScreenImage.dispose();
- offScreenImageGC.dispose();
- }
- }
-
- /*
- * Pre animation setup.
- */
- void preAnimation() {
- display.syncExec(new Runnable() {
- public void run() {
- // Change the label of the Animate button to 'Stop'.
- animateButton.setText(bundle.getString("Stop"));
-
- // Disable anything we don't want the user
- // to select during the animation.
- previousButton.setEnabled(false);
- nextButton.setEnabled(false);
- backgroundCombo.setEnabled(false);
- scaleXCombo.setEnabled(false);
- scaleYCombo.setEnabled(false);
- alphaCombo.setEnabled(false);
- incrementalCheck.setEnabled(false);
- transparentCheck.setEnabled(false);
- maskCheck.setEnabled(false);
- // leave backgroundCheck enabled
-
- // Reset the scale combos and scrollbars.
- resetScaleCombos();
- resetScrollBars();
- }
- });
- }
-
- /*
- * Post animation reset.
- */
- void postAnimation() {
- display.syncExec(new Runnable() {
- public void run() {
- // Enable anything we disabled before the animation.
- previousButton.setEnabled(true);
- nextButton.setEnabled(true);
- backgroundCombo.setEnabled(true);
- scaleXCombo.setEnabled(true);
- scaleYCombo.setEnabled(true);
- alphaCombo.setEnabled(true);
- incrementalCheck.setEnabled(true);
- transparentCheck.setEnabled(true);
- maskCheck.setEnabled(true);
-
- // Reset the label of the Animate button.
- animateButton.setText(bundle.getString("Animate"));
-
- if (animate) {
- // If animate is still true, we finished the
- // full number of repeats. Leave the image as-is.
- animate = false;
- } else {
- // Redisplay the current image and its palette.
- displayImage(imageDataArray[imageDataIndex]);
- }
- }
- });
- }
-
- /*
- * Called when the Previous button is pressed.
- * Display the previous image in a multi-image file.
- */
- void previous() {
- if (image != null && imageDataArray.length > 1) {
- if (imageDataIndex == 0) {
- imageDataIndex = imageDataArray.length;
- }
- imageDataIndex = imageDataIndex - 1;
- displayImage(imageDataArray[imageDataIndex]);
- }
- }
-
- /*
- * Called when the Next button is pressed.
- * Display the next image in a multi-image file.
- */
- void next() {
- if (image != null && imageDataArray.length > 1) {
- imageDataIndex = (imageDataIndex + 1) % imageDataArray.length;
- displayImage(imageDataArray[imageDataIndex]);
- }
- }
-
- void displayImage(ImageData newImageData) {
- if (incremental && incrementalThread != null) {
- // Tell the incremental thread to stop drawing.
- synchronized (this) {
- incrementalEvents = null;
- }
-
- // Wait until the incremental thread is done.
- while (incrementalThread.isAlive()) {
- if (!display.readAndDispatch()) display.sleep();
- }
- }
-
- // Dispose of the old image, if there was one.
- if (image != null) image.dispose();
-
- try {
- // Cache the new image and imageData.
- image = new Image(display, newImageData);
- imageData = newImageData;
-
- } catch (SWTException e) {
- showErrorDialog(bundle.getString("Creating_from") + " ", currentName, e);
- image = null;
- return;
- }
-
- // Update the widgets with the new image info.
- String string = createMsg(bundle.getString("Analyzer_on"), currentName);
- shell.setText(string);
-
- if (imageDataArray.length > 1) {
- string = createMsg(bundle.getString("Type_index"),
- new Object[] {fileTypeString(imageData.type),
- new Integer(imageDataIndex + 1),
- new Integer(imageDataArray.length)});
- } else {
- string = createMsg(bundle.getString("Type_string"), fileTypeString(imageData.type));
- }
- typeLabel.setText(string);
-
- string = createMsg(bundle.getString("Size_value"),
- new Object[] {new Integer(imageData.width),
- new Integer(imageData.height)});
- sizeLabel.setText(string);
-
- string = createMsg(bundle.getString("Depth_value"), new Integer(imageData.depth));
- depthLabel.setText(string);
-
- string = createMsg(bundle.getString("Transparent_pixel_value"), pixelInfo(imageData.transparentPixel));
- transparentPixelLabel.setText(string);
-
- string = createMsg(bundle.getString("Time_to_load_value"), new Long(loadTime));
- timeToLoadLabel.setText(string);
-
- string = createMsg(bundle.getString("Animation_size_value"),
- new Object[] {new Integer(loader.logicalScreenWidth),
- new Integer(loader.logicalScreenHeight)});
- screenSizeLabel.setText(string);
-
- string = createMsg(bundle.getString("Background_pixel_value"), pixelInfo(loader.backgroundPixel));
- backgroundPixelLabel.setText(string);
-
- string = createMsg(bundle.getString("Image_location_value"),
- new Object[] {new Integer(imageData.x), new Integer(imageData.y)});
- locationLabel.setText(string);
-
- string = createMsg(bundle.getString("Disposal_value"),
- new Object[] {new Integer(imageData.disposalMethod),
- disposalString(imageData.disposalMethod)});
- disposalMethodLabel.setText(string);
-
- int delay = imageData.delayTime * 10;
- int delayUsed = visibleDelay(delay);
- if (delay != delayUsed) {
- string = createMsg(bundle.getString("Delay_value"),
- new Object[] {new Integer(delay), new Integer(delayUsed)});
- } else {
- string = createMsg(bundle.getString("Delay_used"), new Integer(delay));
- }
- delayTimeLabel.setText(string);
-
- if (loader.repeatCount == 0) {
- string = createMsg( bundle.getString("Repeats_forever"), new Integer(loader.repeatCount));
- } else {
- string = createMsg(bundle.getString("Repeats_value"), new Integer(loader.repeatCount));
- }
- repeatCountLabel.setText(string);
-
-
- if (imageData.palette.isDirect) {
- string = bundle.getString("Palette_direct");
- } else {
- string = createMsg(bundle.getString("Palette_value"), new Integer(imageData.palette.getRGBs().length));
- }
- paletteLabel.setText(string);
-
- string = createMsg(bundle.getString("Pixel_data_value"),
- new Object[] {new Integer(imageData.bytesPerLine),
- new Integer(imageData.scanlinePad),
- depthInfo(imageData.depth)});
- dataLabel.setText(string);
-
- String data = dataHexDump(dataText.getLineDelimiter());
- dataText.setText(data);
-
- // bold the first column all the way down
- int index = 0;
- while((index = data.indexOf(':', index+1)) != -1)
- dataText.setStyleRange(new StyleRange(index - INDEX_DIGITS, INDEX_DIGITS, dataText.getForeground(), dataText.getBackground(), SWT.BOLD));
-
- statusLabel.setText("");
-
- // Redraw both canvases.
- paletteCanvas.redraw();
- imageCanvas.redraw();
- }
-
- void paintImage(PaintEvent event) {
- Image paintImage = image;
- int transparentPixel = imageData.transparentPixel;
- if (transparentPixel != -1 && !transparent) {
- imageData.transparentPixel = -1;
- paintImage = new Image(display, imageData);
- }
- int w = Math.round(imageData.width * xscale);
- int h = Math.round(imageData.height * yscale);
- event.gc.drawImage(
- paintImage,
- 0,
- 0,
- imageData.width,
- imageData.height,
- ix + imageData.x,
- iy + imageData.y,
- w,
- h);
- if (showMask && (imageData.getTransparencyType() != SWT.TRANSPARENCY_NONE)) {
- ImageData maskImageData = imageData.getTransparencyMask();
- Image maskImage = new Image(display, maskImageData);
- event.gc.drawImage(
- maskImage,
- 0,
- 0,
- imageData.width,
- imageData.height,
- w + 10 + ix + imageData.x,
- iy + imageData.y,
- w,
- h);
- maskImage.dispose();
- }
- if (transparentPixel != -1 && !transparent) {
- imageData.transparentPixel = transparentPixel;
- paintImage.dispose();
- }
- }
-
- void paintPalette(PaintEvent event) {
- GC gc = event.gc;
- gc.fillRectangle(paletteCanvas.getClientArea());
- if (imageData.palette.isDirect) {
- // For a direct palette, display the masks.
- int y = py + 10;
- int xTab = 50;
- gc.drawString("rMsk", 10, y, true);
- gc.drawString(toHex4ByteString(imageData.palette.redMask), xTab, y, true);
- gc.drawString("gMsk", 10, y+=12, true);
- gc.drawString(toHex4ByteString(imageData.palette.greenMask), xTab, y, true);
- gc.drawString("bMsk", 10, y+=12, true);
- gc.drawString(toHex4ByteString(imageData.palette.blueMask), xTab, y, true);
- gc.drawString("rShf", 10, y+=12, true);
- gc.drawString(Integer.toString(imageData.palette.redShift), xTab, y, true);
- gc.drawString("gShf", 10, y+=12, true);
- gc.drawString(Integer.toString(imageData.palette.greenShift), xTab, y, true);
- gc.drawString("bShf", 10, y+=12, true);
- gc.drawString(Integer.toString(imageData.palette.blueShift), xTab, y, true);
- } else {
- // For an indexed palette, display the palette colors and indices.
- RGB[] rgbs = imageData.palette.getRGBs();
- if (rgbs != null) {
- int xTab1 = 40, xTab2 = 100;
- for (int i = 0; i < rgbs.length; i++) {
- int y = (i+1) * 10 + py;
- gc.drawString(String.valueOf(i), 10, y, true);
- gc.drawString(toHexByteString(rgbs[i].red) + toHexByteString(rgbs[i].green) + toHexByteString(rgbs[i].blue), xTab1, y, true);
- Color color = new Color(display, rgbs[i]);
- gc.setBackground(color);
- gc.fillRectangle(xTab2, y+2, 10, 10);
- color.dispose();
- }
- }
- }
- }
-
- void resizeShell(ControlEvent event) {
- if (image == null || shell.isDisposed())
- return;
- resizeScrollBars();
- }
-
- // Reset the scale combos to 1.
- void resetScaleCombos() {
- xscale = 1; yscale = 1;
- scaleXCombo.select(scaleXCombo.indexOf("1"));
- scaleYCombo.select(scaleYCombo.indexOf("1"));
- }
-
- // Reset the scroll bars to 0.
- void resetScrollBars() {
- if (image == null) return;
- ix = 0; iy = 0; py = 0;
- resizeScrollBars();
- imageCanvas.getHorizontalBar().setSelection(0);
- imageCanvas.getVerticalBar().setSelection(0);
- paletteCanvas.getVerticalBar().setSelection(0);
- }
-
- void resizeScrollBars() {
- // Set the max and thumb for the image canvas scroll bars.
- ScrollBar horizontal = imageCanvas.getHorizontalBar();
- ScrollBar vertical = imageCanvas.getVerticalBar();
- Rectangle canvasBounds = imageCanvas.getClientArea();
- int width = Math.round(imageData.width * xscale);
- if (width > canvasBounds.width) {
- // The image is wider than the canvas.
- horizontal.setEnabled(true);
- horizontal.setMaximum(width);
- horizontal.setThumb(canvasBounds.width);
- horizontal.setPageIncrement(canvasBounds.width);
- } else {
- // The canvas is wider than the image.
- horizontal.setEnabled(false);
- if (ix != 0) {
- // Make sure the image is completely visible.
- ix = 0;
- imageCanvas.redraw();
- }
- }
- int height = Math.round(imageData.height * yscale);
- if (height > canvasBounds.height) {
- // The image is taller than the canvas.
- vertical.setEnabled(true);
- vertical.setMaximum(height);
- vertical.setThumb(canvasBounds.height);
- vertical.setPageIncrement(canvasBounds.height);
- } else {
- // The canvas is taller than the image.
- vertical.setEnabled(false);
- if (iy != 0) {
- // Make sure the image is completely visible.
- iy = 0;
- imageCanvas.redraw();
- }
- }
-
- // Set the max and thumb for the palette canvas scroll bar.
- vertical = paletteCanvas.getVerticalBar();
- if (imageData.palette.isDirect) {
- vertical.setEnabled(false);
- } else { // indexed palette
- canvasBounds = paletteCanvas.getClientArea();
- int paletteHeight = imageData.palette.getRGBs().length * 10 + 20; // 10 pixels each index + 20 for margins.
- vertical.setEnabled(true);
- vertical.setMaximum(paletteHeight);
- vertical.setThumb(canvasBounds.height);
- vertical.setPageIncrement(canvasBounds.height);
- }
- }
-
- /*
- * Called when the image canvas' horizontal scrollbar is selected.
- */
- void scrollHorizontally(ScrollBar scrollBar) {
- if (image == null) return;
- Rectangle canvasBounds = imageCanvas.getClientArea();
- int width = Math.round(imageData.width * xscale);
- int height = Math.round(imageData.height * yscale);
- if (width > canvasBounds.width) {
- // Only scroll if the image is bigger than the canvas.
- int x = -scrollBar.getSelection();
- if (x + width < canvasBounds.width) {
- // Don't scroll past the end of the image.
- x = canvasBounds.width - width;
- }
- imageCanvas.scroll(x, iy, ix, iy, width, height, false);
- ix = x;
- }
- }
-
- /*
- * Called when the image canvas' vertical scrollbar is selected.
- */
- void scrollVertically(ScrollBar scrollBar) {
- if (image == null) return;
- Rectangle canvasBounds = imageCanvas.getClientArea();
- int width = Math.round(imageData.width * xscale);
- int height = Math.round(imageData.height * yscale);
- if (height > canvasBounds.height) {
- // Only scroll if the image is bigger than the canvas.
- int y = -scrollBar.getSelection();
- if (y + height < canvasBounds.height) {
- // Don't scroll past the end of the image.
- y = canvasBounds.height - height;
- }
- imageCanvas.scroll(ix, y, ix, iy, width, height, false);
- iy = y;
- }
- }
-
- /*
- * Called when the palette canvas' vertical scrollbar is selected.
- */
- void scrollPalette(ScrollBar scrollBar) {
- if (image == null) return;
- Rectangle canvasBounds = paletteCanvas.getClientArea();
- int paletteHeight = imageData.palette.getRGBs().length * 10 + 20;
- if (paletteHeight > canvasBounds.height) {
- // Only scroll if the palette is bigger than the canvas.
- int y = -scrollBar.getSelection();
- if (y + paletteHeight < canvasBounds.height) {
- // Don't scroll past the end of the palette.
- y = canvasBounds.height - paletteHeight;
- }
- paletteCanvas.scroll(0, y, 0, py, paletteWidth, paletteHeight, false);
- py = y;
- }
- }
-
- /*
- * Return a String containing a line-by-line dump of
- * the data in the current imageData. The lineDelimiter
- * parameter must be a string of length 1 or 2.
- */
- String dataHexDump(String lineDelimiter) {
- if (image == null) return "";
- char[] dump = new char[imageData.height * (6 + 3 * imageData.bytesPerLine + lineDelimiter.length())];
- int index = 0;
- for (int i = 0; i < imageData.data.length; i++) {
- if (i % imageData.bytesPerLine == 0) {
- int line = i / imageData.bytesPerLine;
- dump[index++] = Character.forDigit(line / 1000 % 10, 10);
- dump[index++] = Character.forDigit(line / 100 % 10, 10);
- dump[index++] = Character.forDigit(line / 10 % 10, 10);
- dump[index++] = Character.forDigit(line % 10, 10);
- dump[index++] = ':';
- dump[index++] = ' ';
- }
- byte b = imageData.data[i];
- dump[index++] = Character.forDigit((b & 0xF0) >> 4, 16);
- dump[index++] = Character.forDigit(b & 0x0F, 16);
- dump[index++] = ' ';
- if ((i + 1) % imageData.bytesPerLine == 0) {
- dump[index++] = lineDelimiter.charAt(0);
- if (lineDelimiter.length() > 1)
- dump[index++] = lineDelimiter.charAt(1);
- }
- }
- return new String(dump);
- }
-
- /*
- * Open an error dialog displaying the specified information.
- */
- void showErrorDialog(String operation, String filename, Exception e) {
- MessageBox box = new MessageBox(shell, SWT.ICON_ERROR);
- String message = createMsg(bundle.getString("Error"), new String[] {operation, filename});
- String errorMessage = "";
- if (e != null) {
- if (e instanceof SWTException) {
- SWTException swte = (SWTException) e;
- errorMessage = swte.getMessage();
- if (swte.throwable != null) {
- errorMessage += ":\n" + swte.throwable.toString();
- }
- } else {
- errorMessage = e.toString();
- }
- }
- box.setMessage(message + errorMessage);
- box.open();
- }
-
- /*
- * Return a String describing how to analyze the bytes
- * in the hex dump.
- */
- static String depthInfo(int depth) {
- Object[] args = {new Integer(depth), ""};
- switch (depth) {
- case 1:
- args[1] = createMsg(bundle.getString("Multi_pixels"),
- new Object[] {new Integer(8), " [01234567]"});
- break;
- case 2:
- args[1] = createMsg(bundle.getString("Multi_pixels"),
- new Object[] {new Integer(4), "[00112233]"});
- break;
- case 4:
- args[1] = createMsg(bundle.getString("Multi_pixels"),
- new Object[] {new Integer(2), "[00001111]"});
- break;
- case 8:
- args[1] = bundle.getString("One_byte");
- break;
- case 16:
- args[1] = createMsg(bundle.getString("Multi_bytes"), new Integer(2));
- break;
- case 24:
- args[1] = createMsg(bundle.getString("Multi_bytes"), new Integer(3));
- break;
- case 32:
- args[1] = createMsg(bundle.getString("Multi_bytes"), new Integer(4));
- break;
- default:
- args[1] = bundle.getString("Unsupported_lc");
- }
- return createMsg(bundle.getString("Depth_info"), args);
- }
-
- /*
- * Return the specified number of milliseconds.
- * If the specified number of milliseconds is too small
- * to see a visual change, then return a higher number.
- */
- static int visibleDelay(int ms) {
- if (ms < 20) return ms + 30;
- if (ms < 30) return ms + 10;
- return ms;
- }
-
- /*
- * Return the specified byte value as a hex string,
- * preserving leading 0's.
- */
- static String toHexByteString(int i) {
- if (i <= 0x0f)
- return "0" + Integer.toHexString(i);
- return Integer.toHexString(i & 0xff);
- }
-
- /*
- * Return the specified 4-byte value as a hex string,
- * preserving leading 0's.
- * (a bit 'brute force'... should probably use a loop...)
- */
- static String toHex4ByteString(int i) {
- String hex = Integer.toHexString(i);
- if (hex.length() == 1)
- return "0000000" + hex;
- if (hex.length() == 2)
- return "000000" + hex;
- if (hex.length() == 3)
- return "00000" + hex;
- if (hex.length() == 4)
- return "0000" + hex;
- if (hex.length() == 5)
- return "000" + hex;
- if (hex.length() == 6)
- return "00" + hex;
- if (hex.length() == 7)
- return "0" + hex;
- return hex;
- }
-
- /*
- * Return a String describing the specified
- * transparent or background pixel.
- */
- static String pixelInfo(int pixel) {
- if (pixel == -1)
- return pixel + " (" + bundle.getString("None_lc") + ")";
- else
- return pixel + " (0x" + Integer.toHexString(pixel) + ")";
- }
-
- /*
- * Return a String describing the specified disposal method.
- */
- static String disposalString(int disposalMethod) {
- switch (disposalMethod) {
- case SWT.DM_FILL_NONE: return bundle.getString("None_lc");
- case SWT.DM_FILL_BACKGROUND: return bundle.getString("Background_lc");
- case SWT.DM_FILL_PREVIOUS: return bundle.getString("Previous_lc");
- }
- return bundle.getString("Unspecified_lc");
- }
-
- /*
- * Return a String describing the specified image file type.
- */
- static String fileTypeString(int filetype) {
- if (filetype == SWT.IMAGE_BMP)
- return "BMP";
- if (filetype == SWT.IMAGE_GIF)
- return "GIF";
- if (filetype == SWT.IMAGE_ICO)
- return "ICO";
- if (filetype == SWT.IMAGE_JPEG)
- return "JPEG";
- if (filetype == SWT.IMAGE_PNG)
- return "PNG";
- return bundle.getString("Unknown_ac");
- }
-
- /*
- * Return the specified file's image type, based on its extension.
- * Note that this is not a very robust way to determine image type,
- * and it is only to be used in the absence of any better method.
- */
- static int determineFileType(String filename) {
- String ext = filename.substring(filename.lastIndexOf('.') + 1);
- if (ext.equalsIgnoreCase("bmp"))
- return SWT.IMAGE_BMP;
- if (ext.equalsIgnoreCase("gif"))
- return SWT.IMAGE_GIF;
- if (ext.equalsIgnoreCase("ico"))
- return SWT.IMAGE_ICO;
- if (ext.equalsIgnoreCase("jpg") || ext.equalsIgnoreCase("jpeg"))
- return SWT.IMAGE_JPEG;
- if (ext.equalsIgnoreCase("png"))
- return SWT.IMAGE_PNG;
- return SWT.IMAGE_UNDEFINED;
- }
-
- static String createMsg(String msg, Object[] args) {
- MessageFormat formatter = new MessageFormat(msg);
- return formatter.format(args);
- }
-
- static String createMsg(String msg, Object arg) {
- MessageFormat formatter = new MessageFormat(msg);
- return formatter.format(new Object[]{arg});
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaLineStyler.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaLineStyler.java deleted file mode 100755 index dee3142e48..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaLineStyler.java +++ /dev/null @@ -1,374 +0,0 @@ -package org.eclipse.swt.examples.javaviewer;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import java.util.*;
-import java.io.*;
-
-class JavaLineStyler implements LineStyleListener {
- JavaScanner scanner = new JavaScanner();
- int[] tokenColors;
- Color[] colors;
- Vector blockComments = new Vector();
-
- public static final int EOF= -1;
- public static final int EOL= 10;
-
- public static final int WORD= 0;
- public static final int WHITE= 1;
- public static final int KEY= 2;
- public static final int COMMENT= 3;
- public static final int STRING= 5;
- public static final int OTHER= 6;
- public static final int NUMBER= 7;
-
- public static final int MAXIMUM_TOKEN= 8;
-
-public JavaLineStyler() {
- initializeColors();
- scanner = new JavaScanner();
-}
-
-Color getColor(int type) {
- if (type < 0 || type >= tokenColors.length) {
- return null;
- }
- return colors[tokenColors[type]];
-}
-
-boolean inBlockComment(int start, int end) {
- for (int i=0; i<blockComments.size(); i++) {
- int[] offsets = (int[])blockComments.elementAt(i);
- // start of comment in the line
- if ((offsets[0] >= start) && (offsets[0] <= end)) return true;
- // end of comment in the line
- if ((offsets[1] >= start) && (offsets[1] <= end)) return true;
- if ((offsets[0] <= start) && (offsets[1] >= end)) return true;
- }
- return false;
-}
-
-void initializeColors() {
- Display display = Display.getDefault();
- colors= new Color[] {
- new Color(display, new RGB(0, 0, 0)), // black
- new Color(display, new RGB(255, 0, 0)), // red
- new Color(display, new RGB(0, 255, 0)), // green
- new Color(display, new RGB(0, 0, 255)) // blue
- };
- tokenColors= new int[MAXIMUM_TOKEN];
- tokenColors[WORD]= 0;
- tokenColors[WHITE]= 0;
- tokenColors[KEY]= 3;
- tokenColors[COMMENT]= 1;
- tokenColors[STRING]= 2;
- tokenColors[OTHER]= 0;
- tokenColors[NUMBER]= 0;
-}
-
-void disposeColors() {
- for (int i=0;i<colors.length;i++) {
- colors[i].dispose();
- }
-}
-
-/**
- * Event.detail line start offset (input)
- * Event.text line text (input)
- * LineStyleEvent.styles Enumeration of StyleRanges, need to be in order. (output)
- * LineStyleEvent.background line background color (output)
- */
-public void lineGetStyle(LineStyleEvent event) {
- Vector styles = new Vector();
- int token;
- StyleRange lastStyle;
- // If the line is part of a block comment, create one style for the entire line.
- if (inBlockComment(event.lineOffset, event.lineOffset + event.lineText.length())) {
- styles.addElement(new StyleRange(event.lineOffset, event.lineText.length(), getColor(COMMENT), null));
- event.styles = new StyleRange[styles.size()];
- styles.copyInto(event.styles);
- return;
- }
- Color defaultFgColor = ((Control)event.widget).getForeground();
- scanner.setRange(event.lineText);
- token = scanner.nextToken();
- while (token != EOF) {
- if (token == OTHER) {
- // do nothing for non-colored tokens
- } else if (token != WHITE) {
- Color color = getColor(token);
- // Only create a style if the token color is different than the
- // widget's default foreground color and the token's style is not
- // bold. Keywords are bolded.
- if ((!color.equals(defaultFgColor)) || (token == KEY)) {
- StyleRange style = new StyleRange(scanner.getStartOffset() + event.lineOffset, scanner.getLength(), color, null);
- if (token == KEY) {
- style.fontStyle = SWT.BOLD;
- }
- if (styles.isEmpty()) {
- styles.addElement(style);
- } else {
- // Merge similar styles. Doing so will improve performance.
- lastStyle = (StyleRange)styles.lastElement();
- if (lastStyle.similarTo(style) && (lastStyle.start + lastStyle.length == style.start)) {
- lastStyle.length += style.length;
- } else {
- styles.addElement(style);
- }
- }
- }
- } else if ((!styles.isEmpty()) && ((lastStyle=(StyleRange)styles.lastElement()).fontStyle == SWT.BOLD)) {
- int start = scanner.getStartOffset() + event.lineOffset;
- lastStyle = (StyleRange)styles.lastElement();
- // A font style of SWT.BOLD implies that the last style
- // represents a java keyword.
- if (lastStyle.start + lastStyle.length == start) {
- // Have the white space take on the style before it to
- // minimize the number of style ranges created and the
- // number of font style changes during rendering.
- lastStyle.length += scanner.getLength();
- }
- }
- token= scanner.nextToken();
- }
- event.styles = new StyleRange[styles.size()];
- styles.copyInto(event.styles);
-}
-public void parseBlockComments(String text) {
- blockComments = new Vector();
- StringReader buffer = new StringReader(text);
- int ch;
- boolean blkComment = false;
- int cnt = 0;
- int[] offsets = new int[2];
- boolean done = false;
-
- try {
- while (!done) {
- switch (ch = buffer.read()) {
- case -1 : {
- if (blkComment) {
- offsets[1] = cnt;
- blockComments.addElement(offsets);
- }
- done = true;
- break;
- }
- case '/' : {
- ch = buffer.read();
- if ((ch == '*') && (!blkComment)) {
- offsets = new int[2];
- offsets[0] = cnt;
- blkComment = true;
- cnt++;
- } else {
- cnt++;
- }
- cnt++;
- break;
- }
- case '*' : {
- if (blkComment) {
- ch = buffer.read();
- cnt++;
- if (ch == '/') {
- blkComment = false;
- offsets[1] = cnt;
- blockComments.addElement(offsets);
- }
- }
- cnt++;
- break;
- }
- default : {
- cnt++;
- break;
- }
- }
- }
- } catch(IOException e) {
- // ignore errors
- }
-}
-
-/**
- * A simple fuzzy scanner for Java
- */
-public class JavaScanner {
-
- protected Hashtable fgKeys= null;
- protected StringBuffer fBuffer= new StringBuffer();
- protected String fDoc;
- protected int fPos;
- protected int fEnd;
- protected int fStartToken;
- protected boolean fEofSeen= false;
-
- private String[] fgKeywords= {
- "abstract",
- "boolean", "break", "byte",
- "case", "catch", "char", "class", "continue",
- "default", "do", "double",
- "else", "extends",
- "false", "final", "finally", "float", "for",
- "if", "implements", "import", "instanceof", "int", "interface",
- "long",
- "native", "new", "null",
- "package", "private", "protected", "public",
- "return",
- "short", "static", "super", "switch", "synchronized",
- "this", "throw", "throws", "transient", "true", "try",
- "void", "volatile",
- "while"
- };
-
- public JavaScanner() {
- initialize();
- }
-
- /**
- * Returns the ending location of the current token in the document.
- */
- public final int getLength() {
- return fPos - fStartToken;
- }
-
- /**
- * Initialize the lookup table.
- */
- void initialize() {
- fgKeys= new Hashtable();
- Integer k= new Integer(KEY);
- for (int i= 0; i < fgKeywords.length; i++)
- fgKeys.put(fgKeywords[i], k);
- }
-
- /**
- * Returns the starting location of the current token in the document.
- */
- public final int getStartOffset() {
- return fStartToken;
- }
-
- /**
- * Returns the next lexical token in the document.
- */
- public int nextToken() {
- int c;
- fStartToken= fPos;
- while (true) {
- switch (c= read()) {
- case EOF:
- return EOF;
- case '/': // comment
- c= read();
- if (c == '/') {
- while (true) {
- c= read();
- if ((c == EOF) || (c == EOL)) {
- unread(c);
- return COMMENT;
- }
- }
- } else {
- unread(c);
- }
- return OTHER;
- case '\'': // char const
- character: for(;;) {
- c= read();
- switch (c) {
- case '\'':
- return STRING;
- case EOF:
- unread(c);
- return STRING;
- case '\\':
- c= read();
- break;
- }
- }
-
- case '"': // string
- string: for (;;) {
- c= read();
- switch (c) {
- case '"':
- return STRING;
- case EOF:
- unread(c);
- return STRING;
- case '\\':
- c= read();
- break;
- }
- }
-
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- do {
- c= read();
- } while(Character.isDigit((char)c));
- unread(c);
- return NUMBER;
- default:
- if (Character.isWhitespace((char)c)) {
- do {
- c= read();
- } while(Character.isWhitespace((char)c));
- unread(c);
- return WHITE;
- }
- if (Character.isJavaIdentifierStart((char)c)) {
- fBuffer.setLength(0);
- do {
- fBuffer.append((char)c);
- c= read();
- } while(Character.isJavaIdentifierPart((char)c));
- unread(c);
- Integer i= (Integer) fgKeys.get(fBuffer.toString());
- if (i != null)
- return i.intValue();
- return WORD;
- }
- return OTHER;
- }
- }
- }
-
- /**
- * Returns next character.
- */
- protected int read() {
- if (fPos <= fEnd) {
- return fDoc.charAt(fPos++);
- }
- return EOF;
- }
-
- public void setRange(String text) {
- fDoc= text;
- fPos= 0;
- fEnd= fDoc.length() -1;
- }
-
- protected void unread(int c) {
- if (c != EOF)
- fPos--;
- }
-}
-
-
-
-
-
-} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaViewer.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaViewer.java deleted file mode 100755 index 4f4344b2e1..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaViewer.java +++ /dev/null @@ -1,175 +0,0 @@ -package org.eclipse.swt.examples.javaviewer;
-
-/*
- * Copyright (c) 2000, 2002 IBM Corp. All rights reserved. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import java.util.*;
-import java.io.*;
-import java.text.*;
-
-/**
- */
-public class JavaViewer {
- Shell shell;
- StyledText text;
- JavaLineStyler lineStyler = new JavaLineStyler();
- FileDialog fileDialog;
- static ResourceBundle resources = ResourceBundle.getBundle("examples_javaviewer");
-
-Menu createFileMenu() {
- Menu bar = shell.getMenuBar ();
- Menu menu = new Menu (bar);
- MenuItem item;
-
- // Open
- item = new MenuItem (menu, SWT.CASCADE);
- item.setText (resources.getString("Open_menuitem"));
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- openFile();
- }
- });
-
- // Close
- item = new MenuItem (menu, SWT.PUSH);
- item.setText (resources.getString("Close_menuitem"));
- item.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- menuFileExit ();
- }
- });
- return menu;
-}
-
-void createMenuBar () {
- Menu bar = new Menu (shell, SWT.BAR);
- shell.setMenuBar (bar);
-
- MenuItem fileItem = new MenuItem (bar, SWT.CASCADE);
- fileItem.setText (resources.getString("File_menuitem"));
- fileItem.setMenu (createFileMenu ());
-
-}
-
-void createShell (Display display) {
- shell = new Shell (display);
- shell.setText (resources.getString("Window_title"));
- GridLayout layout = new GridLayout();
- layout.numColumns = 1;
- shell.setLayout(layout);
- shell.addShellListener (new ShellAdapter () {
- public void shellClosed (ShellEvent e) {
- lineStyler.disposeColors();
- text.removeLineStyleListener(lineStyler);
- }
- });
-}
-void createStyledText() {
- text = new StyledText (shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
- GridData spec = new GridData();
- spec.horizontalAlignment = GridData.FILL;
- spec.grabExcessHorizontalSpace = true;
- spec.verticalAlignment = GridData.FILL;
- spec.grabExcessVerticalSpace = true;
- text.setLayoutData(spec);
- text.addLineStyleListener(lineStyler);
- text.setEditable(false);
- Color bg = Display.getDefault().getSystemColor(SWT.COLOR_GRAY);
- text.setBackground(bg);
-}
-
-void displayError(String msg) {
- MessageBox box = new MessageBox(shell, SWT.ICON_ERROR);
- box.setMessage(msg);
- box.open();
-}
-
-public static void main (String [] args) {
- Display display = new Display();
- JavaViewer example = new JavaViewer ();
- Shell shell = example.open (display);
- while (!shell.isDisposed ())
- if (!display.readAndDispatch ()) display.sleep ();
- display.dispose ();
-}
-
-public Shell open (Display display) {
- createShell (display);
- createMenuBar ();
- createStyledText ();
- shell.setSize(500, 400);
- shell.open ();
- return shell;
-}
-
-void openFile() {
- final String textString;
- if (fileDialog == null) {
- fileDialog = new FileDialog(shell, SWT.OPEN);
- }
-
- fileDialog.setFilterExtensions(new String[] {"*.java", "*.*"});
- fileDialog.open();
- String name = fileDialog.getFileName();
-
- if ((name == null) || (name.length() == 0)) return;
-
- File file = new File(fileDialog.getFilterPath(), name);
- if (!file.exists()) {
- String message = MessageFormat.format(resources.getString("Err_file_no_exist"), new String[] {file.getName()});
- displayError(message);
- return;
- }
-
- try {
- FileInputStream stream= new FileInputStream(file.getPath());
- try {
- Reader in = new BufferedReader(new InputStreamReader(stream));
- char[] readBuffer= new char[2048];
- StringBuffer buffer= new StringBuffer((int) file.length());
- int n;
- while ((n = in.read(readBuffer)) > 0) {
- buffer.append(readBuffer, 0, n);
- }
- textString = buffer.toString();
- stream.close();
- }
- catch (IOException e) {
- // Err_file_io
- String message = MessageFormat.format(resources.getString("Err_file_io"), new String[] {file.getName()});
- displayError(message);
- return;
- }
- }
- catch (FileNotFoundException e) {
- String message = MessageFormat.format(resources.getString("Err_not_found"), new String[] {file.getName()});
- displayError(message);
- return;
- }
- // Guard against superfluous mouse move events -- defer action until later
- Display display = text.getDisplay();
- display.asyncExec(new Runnable() {
- public void run() {
- text.setText(textString);
- }
- });
-
- // parse the block comments up front since block comments can go across
- // lines - inefficient way of doing this
- lineStyler.parseBlockComments(textString);
-}
-
-void menuFileExit () {
- shell.close ();
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FillLayoutTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FillLayoutTab.java deleted file mode 100644 index a464185f16..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FillLayoutTab.java +++ /dev/null @@ -1,175 +0,0 @@ -package org.eclipse.swt.examples.layoutexample; - -/* - * Copyright (c) 2000, 2002 IBM Corp. All rights reserved. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - */ - -import org.eclipse.swt.*; -import org.eclipse.swt.custom.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; - -class FillLayoutTab extends Tab { - /* Controls for setting layout parameters */ - Button horizontal, vertical; - /* The example layout instance */ - FillLayout fillLayout; - /* TableEditors and related controls*/ - TableEditor comboEditor; - CCombo combo; - - /** - * Creates the Tab within a given instance of LayoutExample. - */ - FillLayoutTab(LayoutExample instance) { - super(instance); - } - - /** - * Creates the widgets in the "child" group. - */ - void createChildWidgets () { - /* Add common controls */ - super.createChildWidgets (); - - /* Add TableEditors */ - comboEditor = new TableEditor (table); - table.addSelectionListener (new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - resetEditors (); - index = table.getSelectionIndex (); - if (index == -1) return; - TableItem oldItem = comboEditor.getItem (); - newItem = table.getItem (index); - if (newItem == oldItem || newItem != lastSelected) { - lastSelected = newItem; - return; - } - table.showSelection (); - - combo = new CCombo (table, SWT.READ_ONLY); - createComboEditor (combo, comboEditor); - } - }); - - - /* Add listener to add an element to the table */ - add.addSelectionListener(new SelectionAdapter () { - public void widgetSelected(SelectionEvent e) { - TableItem item = new TableItem (table, 0); - item.setText (0, String.valueOf (table.indexOf (item))); - item.setText (1, "Button"); - data.addElement ("Button"); - resetEditors (); - } - }); - } - - /** - * Creates the control widgets. - */ - void createControlWidgets () { - /* Controls the type of FillLayout */ - Group typeGroup = new Group (controlGroup, SWT.NONE); - typeGroup.setText (LayoutExample.getResourceString ("Type")); - typeGroup.setLayout (new GridLayout ()); - typeGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - horizontal = new Button (typeGroup, SWT.RADIO); - horizontal.setText ("SWT.HORIZONTAL"); - horizontal.setLayoutData(new GridData (GridData.FILL_HORIZONTAL)); - horizontal.setSelection(true); - horizontal.addSelectionListener (selectionListener); - vertical = new Button (typeGroup, SWT.RADIO); - vertical.setText ("SWT.VERTICAL"); - vertical.setLayoutData(new GridData (GridData.FILL_HORIZONTAL)); - vertical.addSelectionListener (selectionListener); - - /* Add common controls */ - super.createControlWidgets (); - - /* Position the sash */ - sash.setWeights (new int [] {4,1}); - } - - /** - * Creates the example layout. - */ - void createLayout () { - fillLayout = new FillLayout (); - layoutComposite.setLayout (fillLayout); - } - - /** - * Disposes the editors without placing their contents - * into the table. - */ - void disposeEditors () { - comboEditor.setEditor (null, null, -1); - combo.dispose (); - } - - - /** - * Generates code for the example layout. - */ - StringBuffer generateLayoutCode () { - StringBuffer code = new StringBuffer (); - code.append ("\t\tFillLayout fillLayout = new FillLayout ();\n"); - if (fillLayout.type == SWT.VERTICAL) { - code.append ("\t\tfillLayout.type = SWT.VERTICAL;\n"); - } - code.append ("\t\tshell.setLayout (fillLayout);\n"); - for (int i = 0; i < children.length; i++) { - Control control = children [i]; - code.append (getChildCode (control, i)); - } - return code; - } - - /** - * Returns the layout data field names. - */ - String [] getLayoutDataFieldNames() { - return new String [] {"","Control"}; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "FillLayout"; - } - - /** - * Takes information from TableEditors and stores it. - */ - void resetEditors () { - TableItem oldItem = comboEditor.getItem (); - comboEditor.setEditor (null, null, -1); - if (oldItem != null) { - int row = table.indexOf (oldItem); - data.insertElementAt (combo.getText (), row); - oldItem.setText (1, data.elementAt (row).toString ()); - combo.dispose (); - } - setLayoutState (); - refreshLayoutComposite (); - layoutComposite.layout (true); - layoutGroup.layout (true); - } - - /** - * Sets the state of the layout. - */ - void setLayoutState () { - if (vertical.getSelection()) { - fillLayout.type = SWT.VERTICAL; - } else { - fillLayout.type = SWT.HORIZONTAL; - } - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java deleted file mode 100644 index a79a0bef18..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java +++ /dev/null @@ -1,758 +0,0 @@ -package org.eclipse.swt.examples.layoutexample; - -/* - * Copyright (c) 2000, 2002 IBM Corp. All rights reserved. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - */ - -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.custom.*; - -class FormLayoutTab extends Tab { - /* Controls for setting layout parameters */ - Combo marginHeight, marginWidth; - /* The example layout instance */ - FormLayout formLayout; - /* TableEditors and related controls*/ - TableEditor comboEditor, widthEditor, heightEditor; - TableEditor leftEditor, rightEditor, topEditor, bottomEditor; - CCombo combo; - Text widthText, heightText; - Button leftAttach, rightAttach, topAttach, bottomAttach; - - /* Constants */ - final int COMBO_COL = 1; - final int WIDTH_COL = 2; - final int HEIGHT_COL = 3; - final int LEFT_COL = 4; - final int RIGHT_COL = 5; - final int TOP_COL = 6; - final int BOTTOM_COL = 7; - - final int MODIFY_COLS = 4; // The number of columns with combo or text editors - final int TOTAL_COLS = 8; - - /** - * Creates the Tab within a given instance of LayoutExample. - */ - FormLayoutTab(LayoutExample instance) { - super(instance); - } - - /** - * Returns the constant for the alignment for an - * attachment given a string. - */ - int alignmentConstant (String align) { - if (align.equals("LEFT")) return SWT.LEFT; - if (align.equals("RIGHT")) return SWT.RIGHT; - if (align.equals("TOP")) return SWT.TOP; - if (align.equals("BOTTOM")) return SWT.BOTTOM; - if (align.equals("CENTER")) return SWT.CENTER; - return SWT.DEFAULT; - } - - /** - * Returns a string representing the alignment for an - * attachment given a constant. - */ - String alignmentString (int align) { - switch (align) { - case SWT.LEFT: return "LEFT"; - case SWT.RIGHT: return "RIGHT"; - case SWT.TOP: return "TOP"; - case SWT.BOTTOM: return "BOTTOM"; - case SWT.CENTER: return "CENTER"; - } - return "DEFAULT"; - } - - /** - * Update the attachment field in case the type of control - * has changed. - */ - String checkAttachment (String oldAttach, FormAttachment newAttach) { - String controlClass = newAttach.control.getClass().toString (); - String controlType = controlClass.substring (controlClass.lastIndexOf ('.') + 1); - int i = 0; - while (i < oldAttach.length () && !Character.isDigit(oldAttach.charAt (i))) { - i++; - } - String index = oldAttach.substring (i, oldAttach.indexOf (',')); - return controlType + index + "," + newAttach.offset + ":" + alignmentString (newAttach.alignment); - } - - /** - * Creates the widgets in the "child" group. - */ - void createChildWidgets () { - /* Add common controls */ - super.createChildWidgets (); - - /* Resize the columns */ - table.getColumn (LEFT_COL).setWidth (100); - table.getColumn (RIGHT_COL).setWidth (100); - table.getColumn (TOP_COL).setWidth (100); - table.getColumn (BOTTOM_COL).setWidth (100); - - /* Add TableEditors */ - comboEditor = new TableEditor (table); - widthEditor = new TableEditor (table); - heightEditor = new TableEditor (table); - leftEditor = new TableEditor (table); - rightEditor = new TableEditor (table); - topEditor = new TableEditor (table); - bottomEditor = new TableEditor (table); - table.addMouseListener (new MouseAdapter () { - public void mouseDown(MouseEvent e) { - resetEditors(); - index = table.getSelectionIndex (); - Point pt = new Point (e.x, e.y); - newItem = table.getItem (pt); - if (newItem == null) return; - TableItem oldItem = comboEditor.getItem (); - if (newItem == oldItem || newItem != lastSelected) { - lastSelected = newItem; - return; - } - table.showSelection (); - - combo = new CCombo (table, SWT.READ_ONLY); - createComboEditor (combo, comboEditor); - - widthText = new Text (table, SWT.SINGLE); - widthText.setText (((String [])data.elementAt (index)) [WIDTH_COL]); - createTextEditor (widthText, widthEditor, WIDTH_COL); - - heightText = new Text (table, SWT.SINGLE); - heightText.setText (((String [])data.elementAt (index)) [HEIGHT_COL]); - createTextEditor (heightText, heightEditor, HEIGHT_COL); - - leftAttach = new Button (table, SWT.PUSH); - leftAttach.setText (LayoutExample.getResourceString ("Attach_Edit")); - leftEditor.horizontalAlignment = SWT.LEFT; - leftEditor.grabHorizontal = true; - leftEditor.minimumWidth = leftAttach.computeSize (SWT.DEFAULT, SWT.DEFAULT).x; - leftEditor.setEditor (leftAttach, newItem, LEFT_COL); - leftAttach.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - Shell shell = tabFolderPage.getShell (); - AttachDialog dialog = new AttachDialog (shell); - dialog.setText (LayoutExample.getResourceString ("Left_Attachment")); - dialog.setColumn (LEFT_COL); - String attach = dialog.open (); - newItem.setText (LEFT_COL, attach); - resetEditors (); - } - }); - - rightAttach = new Button (table, SWT.PUSH); - rightAttach.setText (LayoutExample.getResourceString ("Attach_Edit")); - rightEditor.horizontalAlignment = SWT.LEFT; - rightEditor.grabHorizontal = true; - rightEditor.minimumWidth = rightAttach.computeSize (SWT.DEFAULT, SWT.DEFAULT).x; - rightEditor.setEditor (rightAttach, newItem, RIGHT_COL); - rightAttach.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - Shell shell = tabFolderPage.getShell (); - AttachDialog dialog = new AttachDialog (shell); - dialog.setText (LayoutExample.getResourceString ("Right_Attachment")); - dialog.setColumn (RIGHT_COL); - String attach = dialog.open (); - newItem.setText (RIGHT_COL, attach); - if (newItem.getText (LEFT_COL).endsWith (")")) newItem.setText (LEFT_COL, ""); - resetEditors (); - } - }); - - topAttach = new Button (table, SWT.PUSH); - topAttach.setText (LayoutExample.getResourceString ("Attach_Edit")); - topEditor.horizontalAlignment = SWT.LEFT; - topEditor.grabHorizontal = true; - topEditor.minimumWidth = topAttach.computeSize (SWT.DEFAULT, SWT.DEFAULT).x; - topEditor.setEditor (topAttach, newItem, TOP_COL); - topAttach.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - Shell shell = tabFolderPage.getShell (); - AttachDialog dialog = new AttachDialog (shell); - dialog.setText (LayoutExample.getResourceString ("Top_Attachment")); - dialog.setColumn (TOP_COL); - String attach = dialog.open (); - newItem.setText (TOP_COL, attach); - resetEditors (); - } - }); - bottomAttach = new Button (table, SWT.PUSH); - bottomAttach.setText (LayoutExample.getResourceString ("Attach_Edit")); - bottomEditor.horizontalAlignment = SWT.LEFT; - bottomEditor.grabHorizontal = true; - bottomEditor.minimumWidth = bottomAttach.computeSize (SWT.DEFAULT, SWT.DEFAULT).x; - bottomEditor.setEditor (bottomAttach, newItem, BOTTOM_COL); - bottomAttach.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - Shell shell = tabFolderPage.getShell (); - AttachDialog dialog = new AttachDialog (shell); - dialog.setText (LayoutExample.getResourceString ("Bottom_Attachment")); - dialog.setColumn (BOTTOM_COL); - String attach = dialog.open (); - newItem.setText (BOTTOM_COL, attach); - if (newItem.getText (TOP_COL).endsWith (")")) newItem.setText (TOP_COL, ""); - resetEditors (); - } - }); - - for (int i=0; i<table.getColumnCount (); i++) { - Rectangle rect = newItem.getBounds (i); - if (rect.contains (pt)) { - switch (i) { - case 0: - resetEditors (); - break; - case COMBO_COL : - combo.setFocus (); - break; - case WIDTH_COL : - widthText.setFocus (); - break; - case HEIGHT_COL : - heightText.setFocus (); - break; - default : - break; - } - } - } - } - }); - - /* Add listener to add an element to the table */ - add.addSelectionListener(new SelectionAdapter () { - public void widgetSelected(SelectionEvent e) { - TableItem item = new TableItem (table, 0); - String [] insert = new String [] { - String.valueOf (table.indexOf (item)), "Button", "-1", "-1", - "0,0 (" + LayoutExample.getResourceString ("Default") + ")", "", - "0,0 (" + LayoutExample.getResourceString ("Default") + ")", ""}; - item.setText (insert); - data.addElement (insert); - resetEditors (); - } - }); - } - - /** - * Creates the control widgets. - */ - void createControlWidgets () { - /* Controls the margins and spacing of the FormLayout */ - String [] marginValues = new String [] {"0","3","5","10"}; - Group marginGroup = new Group (controlGroup, SWT.NONE); - marginGroup.setText (LayoutExample.getResourceString ("Margins")); - GridLayout layout = new GridLayout (); - layout.numColumns = 2; - marginGroup.setLayout (layout); - marginGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - new Label (marginGroup, SWT.NONE).setText ("marginHeight"); - marginHeight = new Combo (marginGroup, SWT.NONE); - marginHeight.setItems (marginValues); - marginHeight.select (0); - marginHeight.addSelectionListener (selectionListener); - marginHeight.addTraverseListener (traverseListener); - GridData data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 60; - marginHeight.setLayoutData (data); - new Label (marginGroup, SWT.NONE).setText ("marginWidth"); - marginWidth = new Combo (marginGroup, SWT.NONE); - marginWidth.setItems (marginValues); - marginWidth.select (0); - marginWidth.addSelectionListener (selectionListener); - marginWidth.addTraverseListener (traverseListener); - data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 60; - marginWidth.setLayoutData (data); - - /* Add common controls */ - super.createControlWidgets (); - - /* Position the sash */ - sash.setWeights (new int [] {6,4}); - } - - /** - * Creates the example layout. - */ - void createLayout () { - formLayout = new FormLayout (); - layoutComposite.setLayout (formLayout); - } - - /** - * Disposes the editors without placing their contents - * into the table. - */ - void disposeEditors () { - comboEditor.setEditor (null, null, -1); - combo.dispose (); - widthText.dispose (); - heightText.dispose (); - leftAttach.dispose (); - rightAttach.dispose (); - topAttach.dispose (); - bottomAttach.dispose (); - } - - /** - * Generates code for the example layout. - */ - StringBuffer generateLayoutCode () { - StringBuffer code = new StringBuffer (); - code.append ("\t\tFormLayout formLayout = new FormLayout ();\n"); - if (formLayout.marginHeight != 0) { - code.append ("\t\tformLayout.marginHeight = " + formLayout.marginHeight + ";\n"); - } - if (formLayout.marginWidth != 0) { - code.append ("\t\tformLayout.marginWidth = " + formLayout.marginWidth + ";\n"); - } - code.append ("\t\tshell.setLayout (formLayout);\n"); - - boolean first = true; - for (int i = 0; i < children.length; i++) { - Control control = children [i]; - code.append (getChildCode (control, i)); - FormData data = (FormData) control.getLayoutData (); - if (data != null) { - code.append ("\t\t"); - if (first) { - code.append ("FormData "); - first = false; - } - code.append ("data = new FormData ();\n"); - if (data.width != SWT.DEFAULT) { - code.append ("\t\tdata.width = " + data.width + ";\n"); - } - if (data.height != SWT.DEFAULT) { - code.append ("\t\tdata.height = " + data.height + ";\n"); - } - if (data.left != null) { - if (data.left.control != null) { - TableItem item = table.getItem (i); - String controlString = item.getText (LEFT_COL); - int index = new Integer (controlString.substring (controlString.indexOf (',') - 1, controlString.indexOf (','))).intValue (); - code.append ("\t\tdata.left = new FormAttachment (" + names [index] + ", " + data.left.offset + ", SWT." + alignmentString (data.left.alignment) + ");\n"); - } else { - if (data.right != null || (data.left.numerator != 0 ||data.left.offset != 0)) { - code.append ("\t\tdata.left = new FormAttachment (" + data.left.numerator + ", " + data.left.offset + ");\n"); - } - } - } - if (data.right != null) { - if (data.right.control != null) { - TableItem item = table.getItem (i); - String controlString = item.getText (RIGHT_COL); - int index = new Integer (controlString.substring (controlString.indexOf (',') - 1, controlString.indexOf (','))).intValue (); - code.append ("\t\tdata.right = new FormAttachment (" + names [index] + ", " + data.right.offset + ", SWT." + alignmentString (data.right.alignment) + ");\n"); - } else { - code.append ("\t\tdata.right = new FormAttachment (" + data.right.numerator + ", " + data.right.offset + ");\n"); - } - } - if (data.top != null) { - if (data.top.control != null) { - TableItem item = table.getItem (i); - String controlString = item.getText (TOP_COL); - int index = new Integer (controlString.substring (controlString.indexOf (',') - 1, controlString.indexOf (','))).intValue (); - code.append ("\t\tdata.top = new FormAttachment (" + names [index] + ", " + data.top.offset + ", SWT." + alignmentString (data.top.alignment) + ");\n"); - } else { - if (data.bottom != null || (data.top.numerator != 0 ||data.top.offset != 0)) { - code.append ("\t\tdata.top = new FormAttachment (" + data.top.numerator + ", " + data.top.offset + ");\n"); - } - } - } - if (data.bottom != null) { - if (data.bottom.control != null) { - TableItem item = table.getItem (i); - String controlString = item.getText (BOTTOM_COL); - int index = new Integer (controlString.substring (controlString.indexOf (',') - 1, controlString.indexOf (','))).intValue (); - code.append ("\t\tdata.bottom = new FormAttachment (" + names [index] + ", " + data.bottom.offset + ", SWT." + alignmentString (data.bottom.alignment) + ");\n"); - } else { - code.append ("\t\tdata.bottom = new FormAttachment (" + data.bottom.numerator + ", " + data.bottom.offset + ");\n"); - } - } - code.append ("\t\t" + names [i] + ".setLayoutData (data);\n"); - } - } - return code; - } - - /** - * Returns the layout data field names. - */ - String [] getLayoutDataFieldNames() { - return new String [] { - "", - "Control", - "width", - "height", - "left", - "right", - "top", - "bottom" - }; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "FormLayout"; - } - - /** - * Takes information from TableEditors and stores it. - */ - void resetEditors () { - resetEditors (false); - } - - void resetEditors (boolean tab) { - TableItem oldItem = comboEditor.getItem (); - if (oldItem != null) { - int row = table.indexOf (oldItem); - try { - new Integer (widthText.getText ()).intValue (); - } catch (NumberFormatException e) { - widthText.setText (oldItem.getText (WIDTH_COL)); - } - try { - new Integer (heightText.getText ()).intValue (); - } catch (NumberFormatException e) { - heightText.setText (oldItem.getText (HEIGHT_COL)); - } - String [] insert = new String [] {String.valueOf (row), combo.getText (), widthText.getText (), heightText.getText ()}; - data.setElementAt (insert, row); - for (int i = 0 ; i < MODIFY_COLS; i++) { - oldItem.setText (i, ((String [])data.elementAt (row)) [i]); - } - if (!tab) disposeEditors (); - } - setLayoutState (); - refreshLayoutComposite (); - setLayoutData (); - layoutComposite.layout (true); - layoutGroup.layout (true); - } - - /** - * Sets an attachment to the edge of a widget using the - * information in the table. - */ - FormAttachment setAttachment (String attachment) { - String control, align; - int position, offset; - int comma = attachment.indexOf (','); - char first = attachment.charAt (0); - if (Character.isLetter(first)) { - /* Case where there is a control */ - control = attachment.substring (0, comma); - int i = 0; - while (i < control.length () && !Character.isDigit (control.charAt (i))) { - i++; - } - String end = control.substring (i); - int index = new Integer (end).intValue (); - Control attachControl = children [index]; - int colon = attachment.indexOf (':'); - try { - offset = new Integer (attachment.substring (comma + 1, colon)).intValue (); - } catch (NumberFormatException e) { - offset = 0; - } - align = attachment.substring (colon + 1); - return new FormAttachment (attachControl, offset, alignmentConstant (align)); - } else { - /* Case where there is a position */ - try { - position = new Integer (attachment.substring (0,comma)).intValue (); - } catch (NumberFormatException e) { - position = 0; - } - try { - offset = new Integer (attachment.substring (comma + 1)).intValue (); - } catch (NumberFormatException e) { - offset = 0; - } - return new FormAttachment (position, offset); - } - } - - /** - * Sets the layout data for the children of the layout. - */ - void setLayoutData () { - Control [] children = layoutComposite.getChildren (); - TableItem [] items = table.getItems (); - FormData data; - int width, height; - String left, right, top, bottom; - for (int i = 0; i < children.length; i++) { - width = new Integer (items [i].getText (WIDTH_COL)).intValue (); - height = new Integer (items [i].getText (HEIGHT_COL)).intValue (); - data = new FormData (); - if (width > 0) data.width = width; - if (height > 0) data.height = height; - - left = items [i].getText (LEFT_COL); - if (left.length () > 0) { - data.left = setAttachment (left); - if (data.left.control != null) { - String attachment = checkAttachment (left, data.left); - items [i].setText (LEFT_COL, attachment); - } - } - right = items [i].getText (RIGHT_COL); - if (right.length () > 0) { - data.right = setAttachment (right); - if (data.right.control != null) { - String attachment = checkAttachment (right, data.right); - items [i].setText (RIGHT_COL, attachment); - } - } - top = items [i].getText (TOP_COL); - if (top.length () > 0 ) { - data.top = setAttachment (top); - if (data.top.control != null) { - String attachment = checkAttachment (top, data.top); - items [i].setText (TOP_COL, attachment); - } - } - bottom = items [i].getText (BOTTOM_COL); - if (bottom.length () > 0) { - data.bottom = setAttachment (bottom); - if (data.bottom.control != null) { - String attachment = checkAttachment (bottom, data.bottom); - items [i].setText (BOTTOM_COL, attachment); - } - } - children [i].setLayoutData (data); - } - } - - /** - * Sets the state of the layout. - */ - void setLayoutState () { - /* Set the margins and spacing */ - try { - formLayout.marginHeight = new Integer (marginHeight.getText ()).intValue (); - } catch (NumberFormatException e) { - formLayout.marginHeight = 0; - marginHeight.select (0); - } - try { - formLayout.marginWidth = new Integer (marginWidth.getText ()).intValue (); - } catch (NumberFormatException e) { - formLayout.marginWidth = 0; - marginWidth.select (0); - } - } - - - /** - * <code>AttachDialog</code> is the class that creates a - * dialog specific for this example. It creates a dialog - * with controls to set the values in a FormAttachment. - */ - public class AttachDialog extends Dialog { - String result = ""; - String controlInput, positionInput, alignmentInput, offsetInput; - int col = 0; - - public AttachDialog (Shell parent, int style) { - super (parent, style); - } - - public AttachDialog (Shell parent) { - this (parent, 0); - } - - public void setColumn (int col) { - this.col = col; - } - - public String open () { - Shell parent = getParent (); - final Shell shell = new Shell (parent, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL); - shell.setText (getText ()); - GridLayout layout = new GridLayout (); - layout.numColumns = 3; - layout.makeColumnsEqualWidth = true; - shell.setLayout (layout); - - /* Find out what was previously set as an attachment */ - TableItem newItem = leftEditor.getItem (); - result = newItem.getText (col); - String oldAttach = result; - String oldPos = "0", oldControl = "", oldAlign = "DEFAULT", oldOffset = "0"; - boolean isControl = false; - if (oldAttach.length () != 0) { - char first = oldAttach.charAt (0); - if (Character.isLetter(first)) { - /* We have a control */ - isControl = true; - oldControl = oldAttach.substring (0, oldAttach.indexOf (',')); - oldAlign = oldAttach.substring (oldAttach.indexOf (':') + 1); - oldOffset = oldAttach.substring (oldAttach.indexOf (',') + 1, oldAttach.indexOf (':')); - } else { - /* We have a position */ - oldPos = oldAttach.substring (0, oldAttach.indexOf (',')); - oldOffset = oldAttach.substring (oldAttach.indexOf (',') + 1); - if (oldOffset.endsWith (")")) { // i.e. (Default) - oldOffset = oldOffset.substring (0, oldOffset.indexOf (' ')); - } - } - } - - /* Add position field */ - final Button posButton = new Button (shell, SWT.RADIO); - posButton.setText (LayoutExample.getResourceString ("Position")); - posButton.setSelection (!isControl); - final Combo position = new Combo (shell, SWT.NONE); - position.setItems (new String [] {"0","25","50","75","100"}); - position.setText (oldPos); - position.setEnabled (!isControl); - GridData data = new GridData (GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - position.setLayoutData (data); - - /* Add control field */ - final Button contButton = new Button (shell, SWT.RADIO); - contButton.setText (LayoutExample.getResourceString ("Control")); - contButton.setSelection (isControl); - final Combo control = new Combo (shell, SWT.READ_ONLY); - TableItem [] items = table.getItems (); - TableItem currentItem = leftEditor.getItem (); - for (int i = 0; i < table.getItemCount (); i++) { - if (items [i].getText (0).length() > 0) { - if (items [i] != currentItem) { - control.add (items [i].getText (COMBO_COL) + i); - } - } - } - if (oldControl.length () != 0) control.setText (oldControl); - else control.select (0); - control.setEnabled (isControl); - data = new GridData (GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - control.setLayoutData (data); - - /* Add alignment field */ - new Label (shell, SWT.NONE).setText (LayoutExample.getResourceString ("Alignment")); - final Combo alignment = new Combo (shell, SWT.NONE); - String[] alignmentValues; - if (col == LEFT_COL || col == RIGHT_COL) { - alignmentValues = new String [] {"SWT.LEFT", "SWT.RIGHT", "SWT.CENTER", "SWT.DEFAULT"}; - } else { - // col == TOP_COL || col == BOTTOM_COL - alignmentValues = new String [] {"SWT.TOP", "SWT.BOTTOM", "SWT.CENTER", "SWT.DEFAULT"}; - } - alignment.setItems (alignmentValues); - alignment.setText ("SWT." + oldAlign); - alignment.setEnabled (isControl); - data = new GridData (GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - alignment.setLayoutData (data); - - /* Add offset field */ - new Label (shell, SWT.NONE).setText (LayoutExample.getResourceString ("Offset")); - final Text offset = new Text (shell, SWT.SINGLE | SWT.BORDER); - offset.setText (oldOffset); - data = new GridData (GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - offset.setLayoutData (data); - - /* Add listeners for choosing between position and control */ - posButton.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - position.setEnabled (true); - control.setEnabled (false); - alignment.setEnabled(false); - } - }); - contButton.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - position.setEnabled (false); - control.setEnabled (true); - alignment.setEnabled(true); - } - }); - - Button clear = new Button (shell, SWT.PUSH); - clear.setText (LayoutExample.getResourceString ("Clear")); - clear.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_END)); - clear.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - result = ""; - shell.close (); - } - }); - /* OK button sets data into table */ - Button ok = new Button (shell, SWT.PUSH); - ok.setText (LayoutExample.getResourceString ("OK")); - ok.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_CENTER)); - ok.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - controlInput = control.getText (); - alignmentInput = alignment.getText ().substring (4); - positionInput = position.getText (); - if (positionInput.length () == 0) positionInput = "0"; - try { - new Integer (positionInput).intValue (); - } catch (NumberFormatException except) { - positionInput = "0"; - } - offsetInput = offset.getText (); - if (offsetInput.length () == 0) offsetInput = "0"; - try { - new Integer (offsetInput).intValue (); - } catch (NumberFormatException except) { - offsetInput = "0"; - } - if (posButton.getSelection() || controlInput.length () == 0) { - result = positionInput + "," + offsetInput; - } else { - result = controlInput + "," + offsetInput + ":" + alignmentInput; - } - shell.close (); - } - }); - Button cancel = new Button (shell, SWT.PUSH); - cancel.setText (LayoutExample.getResourceString ("Cancel")); - cancel.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_BEGINNING)); - cancel.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - shell.close (); - } - }); - - shell.setDefaultButton (ok); - shell.pack (); - /* Center the dialog */ - Point center = parent.getLocation (); - center.x = center.x + (parent.getBounds ().width / 2) - (shell.getBounds ().width / 2); - center.y = center.y + (parent.getBounds ().height / 2) - (shell.getBounds ().height / 2); - shell.setLocation (center); - shell.open (); - Display display = shell.getDisplay (); - while (!shell.isDisposed ()) { - if (display.readAndDispatch ()) display.sleep (); - } - - return result; - } - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/GridLayoutTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/GridLayoutTab.java deleted file mode 100644 index e45f67f810..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/GridLayoutTab.java +++ /dev/null @@ -1,586 +0,0 @@ -package org.eclipse.swt.examples.layoutexample; - -/* - * Copyright (c) 2000, 2002 IBM Corp. All rights reserved. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - */ - -import org.eclipse.swt.*; -import org.eclipse.swt.custom.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.graphics.*; - -class GridLayoutTab extends Tab { - /* Controls for setting layout parameters */ - Text numColumns; - Button makeColumnsEqualWidth; - Combo marginHeight, marginWidth, horizontalSpacing, verticalSpacing; - /* The example layout instance */ - GridLayout gridLayout; - /* TableEditors and related controls*/ - TableEditor comboEditor, widthEditor, heightEditor; - TableEditor vAlignEditor, hAlignEditor, hIndentEditor; - TableEditor hSpanEditor, vSpanEditor, hGrabEditor, vGrabEditor; - CCombo combo, vAlign, hAlign, hGrab, vGrab; - Text widthText, heightText, hIndent, hSpan, vSpan; - - /* Constants */ - final int COMBO_COL = 1; - final int WIDTH_COL = 2; - final int HEIGHT_COL = 3; - final int HALIGN_COL = 4; - final int VALIGN_COL = 5; - final int HINDENT_COL = 6; - final int HSPAN_COL = 7; - final int VSPAN_COL = 8; - final int HGRAB_COL = 9; - final int VGRAB_COL = 10; - - final int TOTAL_COLS = 11; - - /** - * Creates the Tab within a given instance of LayoutExample. - */ - GridLayoutTab(LayoutExample instance) { - super(instance); - } - - /** - * Creates the widgets in the "child" group. - */ - void createChildWidgets () { - /* Create the TraverseListener */ - final TraverseListener traverseListener = new TraverseListener () { - public void keyTraversed (TraverseEvent e) { - if (e.detail == SWT.TRAVERSE_RETURN || e.detail == SWT.TRAVERSE_TAB_NEXT) - resetEditors (); - if (e.detail == SWT.TRAVERSE_ESCAPE) - disposeEditors (); - }; - }; - - /* Add common controls */ - super.createChildWidgets (); - - /* Add TableEditors */ - comboEditor = new TableEditor (table); - widthEditor = new TableEditor (table); - heightEditor = new TableEditor (table); - vAlignEditor = new TableEditor (table); - hAlignEditor = new TableEditor (table); - hIndentEditor = new TableEditor (table); - hSpanEditor = new TableEditor (table); - vSpanEditor = new TableEditor (table); - hGrabEditor = new TableEditor (table); - vGrabEditor = new TableEditor (table); - table.addMouseListener (new MouseAdapter () { - public void mouseDown(MouseEvent e) { - resetEditors(); - index = table.getSelectionIndex (); - Point pt = new Point (e.x, e.y); - newItem = table.getItem (pt); - if (newItem == null) return; - TableItem oldItem = comboEditor.getItem (); - if (newItem == oldItem || newItem != lastSelected) { - lastSelected = newItem; - return; - } - table.showSelection (); - - combo = new CCombo (table, SWT.READ_ONLY); - createComboEditor (combo, comboEditor); - - widthText = new Text (table, SWT.SINGLE); - widthText.setText (((String [])data.elementAt (index)) [WIDTH_COL]); - createTextEditor (widthText, widthEditor, WIDTH_COL); - - heightText = new Text (table, SWT.SINGLE); - heightText.setText (((String [])data.elementAt (index)) [HEIGHT_COL]); - createTextEditor (heightText, heightEditor, HEIGHT_COL); - String [] alignValues = new String [] {"BEGINNING","CENTER","END","FILL"}; - hAlign = new CCombo (table, SWT.NONE); - hAlign.setItems (alignValues); - hAlign.setText (newItem.getText (HALIGN_COL)); - hAlignEditor.horizontalAlignment = SWT.LEFT; - hAlignEditor.grabHorizontal = true; - hAlignEditor.minimumWidth = 50; - hAlignEditor.setEditor (hAlign, newItem, HALIGN_COL); - hAlign.addTraverseListener (traverseListener); - - vAlign = new CCombo (table, SWT.NONE); - vAlign.setItems (alignValues); - vAlign.setText (newItem.getText (VALIGN_COL)); - vAlignEditor.horizontalAlignment = SWT.LEFT; - vAlignEditor.grabHorizontal = true; - vAlignEditor.minimumWidth = 50; - vAlignEditor.setEditor (vAlign, newItem, VALIGN_COL); - vAlign.addTraverseListener (traverseListener); - - hIndent = new Text (table, SWT.SINGLE); - hIndent.setText (((String [])data.elementAt (index)) [HINDENT_COL]); - createTextEditor (hIndent, hIndentEditor, HINDENT_COL); - - hSpan = new Text (table, SWT.SINGLE); - hSpan.setText (((String [])data.elementAt (index)) [HSPAN_COL]); - createTextEditor (hSpan, hSpanEditor, HSPAN_COL); - - vSpan = new Text (table, SWT.SINGLE); - vSpan.setText (((String [])data.elementAt (index)) [VSPAN_COL]); - createTextEditor (vSpan, vSpanEditor, VSPAN_COL); - - String [] boolValues = new String [] {"false","true"}; - hGrab = new CCombo (table, SWT.NONE); - hGrab.setItems (boolValues); - hGrab.setText (newItem.getText (HGRAB_COL)); - hGrabEditor.horizontalAlignment = SWT.LEFT; - hGrabEditor.grabHorizontal = true; - hGrabEditor.minimumWidth = 50; - hGrabEditor.setEditor (hGrab, newItem, HGRAB_COL); - hGrab.addTraverseListener (traverseListener);; - - vGrab = new CCombo (table, SWT.NONE); - vGrab.setItems (boolValues); - vGrab.setText (newItem.getText (VGRAB_COL)); - vGrabEditor.horizontalAlignment = SWT.LEFT; - vGrabEditor.grabHorizontal = true; - vGrabEditor.minimumWidth = 50; - vGrabEditor.setEditor (vGrab, newItem, VGRAB_COL); - vGrab.addTraverseListener (traverseListener); - - for (int i=0; i<table.getColumnCount (); i++) { - Rectangle rect = newItem.getBounds (i); - if (rect.contains (pt)) { - switch (i) { - case COMBO_COL : - combo.setFocus (); - break; - case WIDTH_COL : - widthText.setFocus (); - break; - case HEIGHT_COL : - heightText.setFocus (); - break; - case HALIGN_COL : - hAlign.setFocus (); - break; - case VALIGN_COL : - vAlign.setFocus (); - break; - case HINDENT_COL : - hIndent.setFocus (); - break; - case HSPAN_COL : - hSpan.setFocus (); - break; - case VSPAN_COL : - vSpan.setFocus (); - break; - case HGRAB_COL : - hGrab.setFocus (); - break; - case VGRAB_COL : - vGrab.setFocus (); - break; - default : - resetEditors (); - break; - } - } - } - } - }); - - /* Add listener to add an element to the table */ - add.addSelectionListener(new SelectionAdapter () { - public void widgetSelected(SelectionEvent e) { - TableItem item = new TableItem (table, 0); - String [] insert = new String [] { - String.valueOf (table.indexOf (item)), "Button", - "-1","-1","BEGINNING","CENTER", - "0","1","1","false","false"}; - item.setText (insert); - data.addElement (insert); - resetEditors (); - } - }); - } - - /** - * Creates the control widgets. - */ - void createControlWidgets () { - /* Rearrange the layout of the control group */ - size.setLayoutData (new GridData ()); - - /* Controls the margins and spacing of the GridLayout */ - String [] marginValues = new String [] {"0","3","5","10"}; - Group marginGroup = new Group (controlGroup, SWT.NONE); - marginGroup.setText (LayoutExample.getResourceString ("Margins_Spacing")); - GridData data = new GridData (GridData.FILL_HORIZONTAL); - data.verticalSpan = 2; - marginGroup.setLayoutData (data); - GridLayout layout = new GridLayout (); - layout.numColumns = 2; - marginGroup.setLayout (layout); - new Label (marginGroup, SWT.NONE).setText ("marginHeight"); - marginHeight = new Combo (marginGroup, SWT.NONE); - marginHeight.setItems (marginValues); - marginHeight.select (2); - data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 60; - marginHeight.setLayoutData (data); - marginHeight.addSelectionListener (selectionListener); - marginHeight.addTraverseListener (traverseListener); - new Label (marginGroup, SWT.NONE).setText ("marginWidth"); - marginWidth = new Combo (marginGroup, SWT.NONE); - marginWidth.setItems (marginValues); - marginWidth.select (2); - data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 60; - marginWidth.setLayoutData (data); - marginWidth.addSelectionListener (selectionListener); - marginWidth.addTraverseListener (traverseListener); - new Label (marginGroup, SWT.NONE).setText ("horizontalSpacing"); - horizontalSpacing = new Combo (marginGroup, SWT.NONE); - horizontalSpacing.setItems (marginValues); - horizontalSpacing.select (2); - data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 60; - horizontalSpacing.setLayoutData (data); - horizontalSpacing.addSelectionListener (selectionListener); - horizontalSpacing.addTraverseListener (traverseListener); - new Label (marginGroup, SWT.NONE).setText ("verticalSpacing"); - verticalSpacing = new Combo (marginGroup, SWT.NONE); - verticalSpacing.setItems (marginValues); - verticalSpacing.select (2); - data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 60; - verticalSpacing.setLayoutData (data); - verticalSpacing.addSelectionListener (selectionListener); - verticalSpacing.addTraverseListener (traverseListener); - - /* Controls the columns in the GridLayout */ - Group columnGroup = new Group (controlGroup, SWT.NONE); - columnGroup.setText (LayoutExample.getResourceString ("Columns")); - layout = new GridLayout (); - layout.numColumns = 2; - columnGroup.setLayout (layout); - data = new GridData (GridData.VERTICAL_ALIGN_FILL); - columnGroup.setLayoutData (data); - numColumns = new Text (columnGroup, SWT.BORDER); - numColumns.setText ("1"); - numColumns.addSelectionListener (selectionListener); - numColumns.addTraverseListener (traverseListener); - data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 15; - numColumns.setLayoutData (data); - new Label (columnGroup, SWT.NONE).setText ("numColumns"); - makeColumnsEqualWidth = new Button (columnGroup, SWT.CHECK); - makeColumnsEqualWidth.setText ("makeColumnsEqualWidth"); - makeColumnsEqualWidth.addSelectionListener (selectionListener); - data = new GridData (GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - data.horizontalIndent = 14; - makeColumnsEqualWidth.setLayoutData (data); - - /* Add common controls */ - super.createControlWidgets (); - controlGroup.pack(); - } - - /** - * Creates the example layout. - */ - void createLayout () { - gridLayout = new GridLayout (); - layoutComposite.setLayout (gridLayout); - } - - /** - * Disposes the editors without placing their contents - * into the table. - */ - void disposeEditors () { - comboEditor.setEditor (null, null, -1); - combo.dispose (); - widthText.dispose (); - heightText.dispose (); - hAlign.dispose (); - vAlign.dispose (); - hIndent.dispose (); - hSpan.dispose (); - vSpan.dispose (); - hGrab.dispose (); - vGrab.dispose (); - } - - /** - * Generates code for the example layout. - */ - StringBuffer generateLayoutCode () { - StringBuffer code = new StringBuffer (); - code.append ("\t\tGridLayout gridLayout = new GridLayout ();\n"); - if (gridLayout.numColumns != 1) { - code.append ("\t\tgridLayout.numColumns = " + gridLayout.numColumns + ";\n"); - } - if (gridLayout.makeColumnsEqualWidth) { - code.append ("\t\tgridLayout.makeColumnsEqualWidth = true;\n"); - } - if (gridLayout.marginHeight != 5) { - code.append ("\t\tgridLayout.marginHeight = " + gridLayout.marginHeight + ";\n"); - } - if (gridLayout.marginWidth != 5) { - code.append ("\t\tgridLayout.marginWidth = " + gridLayout.marginWidth + ";\n"); - } - if (gridLayout.horizontalSpacing != 5) { - code.append ("\t\tgridLayout.horizontalSpacing = " + gridLayout.horizontalSpacing + ";\n"); - } - if (gridLayout.verticalSpacing != 5) { - code.append ("\t\tgridLayout.verticalSpacing = " + gridLayout.verticalSpacing + ";\n"); - } - code.append ("\t\tshell.setLayout (gridLayout);\n"); - - boolean first = true; - for (int i = 0; i < children.length; i++) { - Control control = children [i]; - code.append (getChildCode (control, i)); - GridData data = (GridData) control.getLayoutData (); - if (data != null) { - code.append ("\t\t"); - if (first) { - code.append ("GridData "); - first = false; - } - code.append ("data = new GridData ();\n"); - if (data.widthHint != SWT.DEFAULT) { - code.append ("\t\tdata.widthHint = " + data.widthHint + ";\n"); - } - if (data.heightHint != SWT.DEFAULT) { - code.append ("\t\tdata.heightHint = " + data.heightHint + ";\n"); - } - if (data.horizontalAlignment != GridData.BEGINNING) { - String alignment; - int hAlignment = data.horizontalAlignment; - if (hAlignment == GridData.CENTER) alignment = "GridData.CENTER"; - else if (hAlignment == GridData.END) alignment = "GridData.END"; - else alignment = "GridData.FILL"; - code.append ("\t\tdata.horizontalAlignment = " + alignment + ";\n"); - } - if (data.verticalAlignment != GridData.CENTER) { - String alignment; - int vAlignment = data.verticalAlignment; - if (vAlignment == GridData.BEGINNING) alignment = "GridData.BEGINNING"; - else if (vAlignment == GridData.END) alignment = "GridData.END"; - else alignment = "GridData.FILL"; - code.append ("\t\tdata.verticalAlignment = " + alignment + ";\n"); - } - if (data.horizontalIndent != 0) { - code.append ("\t\tdata.horizontalIndent = " + data.horizontalIndent + ";\n"); - } - if (data.horizontalSpan != 1) { - code.append ("\t\tdata.horizontalSpan = " + data.horizontalSpan + ";\n"); - } - if (data.verticalSpan != 1) { - code.append ("\t\tdata.verticalSpan = " + data.verticalSpan + ";\n"); - } - if (data.grabExcessHorizontalSpace) { - code.append ("\t\tdata.grabExcessHorizontalSpace = true;\n"); - } - if (data.grabExcessVerticalSpace) { - code.append ("\t\tdata.grabExcessVerticalSpace = true;\n"); - } - if (code.substring (code.length () - 33).equals ("GridData data = new GridData ();\n")) { - code.delete (code.length () - 33, code.length ()); - first = true; - } else if (code.substring (code.length () - 24).equals ("data = new GridData ();\n")) { - code.delete (code.length () - 24, code.length ()); - } else { - code.append ("\t\t" + names [i] + ".setLayoutData (data);\n"); - } - } - } - return code; - } - - /** - * Returns the layout data field names. - */ - String [] getLayoutDataFieldNames() { - return new String [] { - "", - "Control", - "width", - "height", - "horizontalAlignment", - "verticalAlignment", - "horizontalIndent", - "horizontalSpan", - "verticalSpan", - "grabExcessHorizontalSpace", - "grabExcessVerticalSpace" - }; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "GridLayout"; - } - - /** - * Takes information from TableEditors and stores it. - */ - void resetEditors () { - resetEditors (false); - } - - void resetEditors (boolean tab) { - TableItem oldItem = comboEditor.getItem (); - if (oldItem != null) { - int row = table.indexOf (oldItem); - try { - new Integer (widthText.getText ()).intValue (); - } catch (NumberFormatException e) { - widthText.setText (oldItem.getText (WIDTH_COL)); - } - try { - new Integer (heightText.getText ()).intValue (); - } catch (NumberFormatException e) { - heightText.setText (oldItem.getText (HEIGHT_COL)); - } - try { - new Integer (hIndent.getText ()).intValue (); - } catch (NumberFormatException e) { - hIndent.setText (oldItem.getText (HINDENT_COL)); - } - try { - new Integer (hSpan.getText ()).intValue (); - } catch (NumberFormatException e) { - hSpan.setText (oldItem.getText (HSPAN_COL)); - } - try { - new Integer (vSpan.getText ()).intValue (); - } catch (NumberFormatException e) { - vSpan.setText (oldItem.getText (VSPAN_COL)); - } - String [] insert = new String [] { - String.valueOf (row), combo.getText (), widthText.getText (), heightText.getText (), - hAlign.getText (), vAlign.getText (), hIndent.getText (), - hSpan.getText (), vSpan.getText (), hGrab.getText (), vGrab.getText () - }; - data.setElementAt (insert, row); - for (int i = 0; i < TOTAL_COLS; i++) { - oldItem.setText (i, ((String [])data.elementAt (row)) [i]); - } - if (!tab) disposeEditors (); - } - setLayoutState (); - refreshLayoutComposite (); - setLayoutData (); - layoutComposite.layout (true); - layoutGroup.layout (true); - } - - /** - * Sets the layout data for the children of the layout. - */ - void setLayoutData () { - Control [] children = layoutComposite.getChildren (); - TableItem [] items = table.getItems (); - GridData data; - int width, height, hIndent, hSpan, vSpan; - String vAlign, hAlign, vGrab, hGrab; - for (int i = 0; i < children.length; i++) { - data = new GridData (); - /* Set widthHint and heightHint */ - data.widthHint = new Integer (items [i].getText (WIDTH_COL)).intValue (); - data.heightHint = new Integer (items [i].getText (HEIGHT_COL)).intValue (); - /* Set vertical alignment and horizontal alignment */ - hAlign = items [i].getText (HALIGN_COL); - if (hAlign.equals ("CENTER")) { - data.horizontalAlignment = GridData.CENTER; - } else if (hAlign.equals ("END")) { - data.horizontalAlignment = GridData.END; - } else if (hAlign.equals ("FILL")) { - data.horizontalAlignment = GridData.FILL; - } else { - data.horizontalAlignment = GridData.BEGINNING; - } - vAlign = items [i].getText (VALIGN_COL); - if (vAlign.equals ("BEGINNING")) { - data.verticalAlignment = GridData.BEGINNING; - } else if (vAlign.equals ("END")) { - data.verticalAlignment = GridData.END; - } else if (vAlign.equals ("FILL")) { - data.verticalAlignment = GridData.FILL; - } else { - data.verticalAlignment = GridData.CENTER; - } - /* Set indents and spans */ - hIndent = new Integer (items [i].getText (HINDENT_COL)).intValue (); - data.horizontalIndent = hIndent; - hSpan = new Integer (items [i].getText (HSPAN_COL)).intValue (); - data.horizontalSpan = hSpan; - vSpan = new Integer (items [i].getText (VSPAN_COL)).intValue (); - data.verticalSpan = vSpan; - /* Set grabbers */ - hGrab = items [i].getText (HGRAB_COL); - if (hGrab.equals ("true")) { - data.grabExcessHorizontalSpace = true; - } else { - data.grabExcessHorizontalSpace = false; - } - vGrab = items [i].getText (VGRAB_COL); - if (vGrab.equals ("true")) { - data.grabExcessVerticalSpace = true; - } else { - data.grabExcessVerticalSpace = false; - } - children [i].setLayoutData (data); - } - } - - /** - * Sets the state of the layout. - */ - void setLayoutState () { - /* Set the columns for the layout */ - try { - gridLayout.numColumns = new Integer (numColumns.getText ()).intValue (); - } catch (NumberFormatException e) { - gridLayout.numColumns = 1; - } - gridLayout.makeColumnsEqualWidth = makeColumnsEqualWidth.getSelection (); - - /* Set the margins and spacing */ - try { - gridLayout.marginHeight = new Integer (marginHeight.getText ()).intValue (); - } catch (NumberFormatException e) { - gridLayout.marginHeight = 5; - marginHeight.select (2); - } - try { - gridLayout.marginWidth = new Integer (marginWidth.getText ()).intValue (); - } catch (NumberFormatException e) { - gridLayout.marginWidth = 5; - marginWidth.select (2); - } - try { - gridLayout.horizontalSpacing = new Integer (horizontalSpacing.getText ()).intValue (); - } catch (NumberFormatException e) { - gridLayout.horizontalSpacing = 5; - horizontalSpacing.select (2); - } - try { - gridLayout.verticalSpacing = new Integer (verticalSpacing.getText ()).intValue (); - } catch (NumberFormatException e) { - gridLayout.verticalSpacing = 5; - verticalSpacing.select (2); - } - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/LayoutExample.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/LayoutExample.java deleted file mode 100644 index 6aaf66ae20..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/LayoutExample.java +++ /dev/null @@ -1,110 +0,0 @@ -package org.eclipse.swt.examples.layoutexample; - -/* - * Copyright (c) 2000, 2002 IBM Corp. All rights reserved. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - */ - -import org.eclipse.swt.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.events.*; - -import java.text.*; -import java.util.*; - -public class LayoutExample { - private static ResourceBundle resourceBundle = ResourceBundle.getBundle("examples_layout"); - private TabFolder tabFolder; - - /** - * Creates an instance of a LayoutExample embedded inside - * the supplied parent Composite. - * - * @param parent the container of the example - */ - public LayoutExample(Composite parent) { - tabFolder = new TabFolder (parent, SWT.NULL); - Tab [] tabs = new Tab [] { - new FillLayoutTab (this), - new RowLayoutTab (this), - new GridLayoutTab (this), - new FormLayoutTab (this), - }; - for (int i=0; i<tabs.length; i++) { - TabItem item = new TabItem (tabFolder, SWT.NULL); - item.setText (tabs [i].getTabText ()); - item.setControl (tabs [i].createTabFolderPage (tabFolder)); - } - } - - /** - * Grabs input focus. - */ - public void setFocus() { - tabFolder.setFocus(); - } - - /** - * Disposes of all resources associated with a particular - * instance of the LayoutExample. - */ - public void dispose() { - tabFolder = null; - } - - /** - * Invokes as a standalone program. - */ - public static void main(String[] args) { - final Display display = new Display(); - final Shell shell = new Shell(display); - shell.setLayout(new FillLayout()); - new LayoutExample(shell); - shell.setText(getResourceString("window.title")); - shell.addShellListener (new ShellAdapter () { - public void shellClosed(ShellEvent e) { - Shell [] shells = display.getShells(); - for (int i = 0; i < shells.length; i++) { - if (shells [i] != shell) shells [i].close (); - } - } - }); - shell.open(); - while (! shell.isDisposed()) { - if (! display.readAndDispatch()) display.sleep(); - } - } - - /** - * Gets a string from the resource bundle. - * We don't want to crash because of a missing String. - * Returns the key if not found. - */ - static String getResourceString(String key) { - try { - return resourceBundle.getString(key); - } catch (MissingResourceException e) { - return key; - } catch (NullPointerException e) { - return "!" + key + "!"; - } - } - - /** - * Gets a string from the resource bundle and binds it - * with the given arguments. If the key is not found, - * return the key. - */ - static String getResourceString(String key, Object[] args) { - try { - return MessageFormat.format(getResourceString(key), args); - } catch (MissingResourceException e) { - return key; - } catch (NullPointerException e) { - return "!" + key + "!"; - } - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/RowLayoutTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/RowLayoutTab.java deleted file mode 100644 index 32b54e9e46..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/RowLayoutTab.java +++ /dev/null @@ -1,409 +0,0 @@ -package org.eclipse.swt.examples.layoutexample; - -/* - * Copyright (c) 2000, 2002 IBM Corp. All rights reserved. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - */ - -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.custom.*; - -class RowLayoutTab extends Tab { - /* Controls for setting layout parameters */ - Button horizontal, vertical; - Button wrap, pack, justify; - Combo marginRight, marginLeft, marginTop, marginBottom, spacing; - /* The example layout instance */ - RowLayout rowLayout; - /* TableEditors and related controls*/ - TableEditor comboEditor, widthEditor, heightEditor; - CCombo combo; - Text widthText, heightText; - - /* Constants */ - final int COMBO_COL = 1; - final int WIDTH_COL = 2; - final int HEIGHT_COL = 3; - - final int TOTAL_COLS = 4; - - /** - * Creates the Tab within a given instance of LayoutExample. - */ - RowLayoutTab(LayoutExample instance) { - super(instance); - } - - /** - * Creates the widgets in the "child" group. - */ - void createChildWidgets () { - /* Add common controls */ - super.createChildWidgets (); - - /* Add TableEditors */ - comboEditor = new TableEditor (table); - widthEditor = new TableEditor (table); - heightEditor = new TableEditor (table); - table.addMouseListener (new MouseAdapter () { - public void mouseDown(MouseEvent e) { - resetEditors(); - index = table.getSelectionIndex (); - Point pt = new Point (e.x, e.y); - newItem = table.getItem (pt); - if (newItem == null) return; - TableItem oldItem = comboEditor.getItem (); - if (newItem == oldItem || newItem != lastSelected) { - lastSelected = newItem; - return; - } - table.showSelection (); - - combo = new CCombo (table, SWT.READ_ONLY); - createComboEditor (combo, comboEditor); - - widthText = new Text (table, SWT.SINGLE); - widthText.setText (((String [])data.elementAt (index)) [WIDTH_COL]); - createTextEditor (widthText, widthEditor, WIDTH_COL); - - heightText = new Text (table, SWT.SINGLE); - heightText.setText (((String [])data.elementAt (index)) [HEIGHT_COL]); - createTextEditor (heightText, heightEditor, HEIGHT_COL); - - for (int i=0; i<table.getColumnCount (); i++) { - Rectangle rect = newItem.getBounds (i); - if (rect.contains (pt)) { - switch (i) { - case COMBO_COL : - combo.setFocus (); - break; - case WIDTH_COL : - widthText.setFocus (); - break; - case HEIGHT_COL : - heightText.setFocus (); - break; - default : - resetEditors (); - break; - } - } - } - } - }); - - /* Add listener to add an element to the table */ - add.addSelectionListener(new SelectionAdapter () { - public void widgetSelected(SelectionEvent e) { - TableItem item = new TableItem (table, 0); - String [] insert = new String [] { - String.valueOf (table.indexOf (item)), - "Button", "-1", "-1"}; - item.setText (insert); - data.addElement (insert); - resetEditors (); - } - }); - } - - /** - * Creates the control widgets. - */ - void createControlWidgets () { - /* Controls the type of RowLayout */ - Group typeGroup = new Group (controlGroup, SWT.NONE); - typeGroup.setText (LayoutExample.getResourceString ("Type")); - typeGroup.setLayout (new GridLayout ()); - GridData data = new GridData (GridData.FILL_HORIZONTAL); - typeGroup.setLayoutData (data); - horizontal = new Button (typeGroup, SWT.RADIO); - horizontal.setText ("SWT.HORIZONTAL"); - horizontal.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - horizontal.setSelection(true); - horizontal.addSelectionListener (selectionListener); - vertical = new Button (typeGroup, SWT.RADIO); - vertical.setText ("SWT.VERTICAL"); - vertical.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - vertical.addSelectionListener (selectionListener); - - /* Controls the margins and spacing of the RowLayout */ - String [] marginValues = new String [] {"0","3","5","10"}; - Group marginGroup = new Group (controlGroup, SWT.NONE); - marginGroup.setText (LayoutExample.getResourceString ("Margins_Spacing")); - data = new GridData (GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING); - data.verticalSpan = 2; - marginGroup.setLayoutData (data); - GridLayout layout = new GridLayout (); - layout.numColumns = 2; - marginGroup.setLayout (layout); - new Label (marginGroup, SWT.NONE).setText ("marginRight"); - marginRight = new Combo (marginGroup, SWT.NONE); - marginRight.setItems (marginValues); - marginRight.select (1); - marginRight.setLayoutData (new GridData(GridData.FILL_HORIZONTAL)); - marginRight.addSelectionListener (selectionListener); - marginRight.addTraverseListener (traverseListener); - new Label (marginGroup, SWT.NONE).setText ("marginLeft"); - marginLeft = new Combo (marginGroup, SWT.NONE); - marginLeft.setItems (marginValues); - marginLeft.select (1); - marginLeft.setLayoutData (new GridData(GridData.FILL_HORIZONTAL)); - marginLeft.addSelectionListener (selectionListener); - marginLeft.addTraverseListener(traverseListener); - new Label (marginGroup, SWT.NONE).setText ("marginTop"); - marginTop = new Combo (marginGroup, SWT.NONE); - marginTop.setItems (marginValues); - marginTop.select (1); - marginTop.setLayoutData (new GridData(GridData.FILL_HORIZONTAL)); - marginTop.addSelectionListener (selectionListener); - marginTop.addTraverseListener(traverseListener); - new Label (marginGroup, SWT.NONE).setText ("marginBottom"); - marginBottom = new Combo (marginGroup, SWT.NONE); - marginBottom.setItems (marginValues); - marginBottom.select (1); - marginBottom.setLayoutData (new GridData(GridData.FILL_HORIZONTAL)); - marginBottom.addSelectionListener (selectionListener); - marginBottom.addTraverseListener(traverseListener); - new Label (marginGroup, SWT.NONE).setText ("spacing"); - spacing = new Combo (marginGroup, SWT.NONE); - spacing.setItems (marginValues); - spacing.select (1); - spacing.setLayoutData (new GridData(GridData.FILL_HORIZONTAL)); - spacing.addSelectionListener (selectionListener); - spacing.addTraverseListener(traverseListener); - - /* Controls other parameters of the RowLayout */ - Group specGroup = new Group (controlGroup, SWT.NONE); - specGroup.setText (LayoutExample.getResourceString ("Properties")); - specGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - specGroup.setLayout (new GridLayout ()); - wrap = new Button (specGroup, SWT.CHECK); - wrap.setText ("wrap"); - wrap.setSelection (true); - wrap.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - wrap.addSelectionListener (selectionListener); - pack = new Button (specGroup, SWT.CHECK); - pack.setText ("pack"); - pack.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - pack.setSelection (true); - pack.addSelectionListener (selectionListener); - justify = new Button (specGroup, SWT.CHECK); - justify.setText ("justify"); - justify.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - justify.addSelectionListener (selectionListener); - - /* Add common controls */ - super.createControlWidgets (); - - /* Position the sash */ - sash.setWeights (new int [] {6,5}); - } - - /** - * Creates the example layout. - */ - void createLayout () { - rowLayout = new RowLayout (); - layoutComposite.setLayout (rowLayout); - } - - /** - * Disposes the editors without placing their contents - * into the table. - */ - void disposeEditors () { - comboEditor.setEditor (null, null, -1); - combo.dispose (); - widthText.dispose (); - heightText.dispose (); - } - - /** - * Generates code for the example layout. - */ - StringBuffer generateLayoutCode () { - StringBuffer code = new StringBuffer (); - code.append ("\t\tRowLayout rowLayout = new RowLayout ();\n"); - if (rowLayout.type == SWT.VERTICAL) { - code.append ("\t\trowLayout.type = SWT.VERTICAL;\n"); - } - if (rowLayout.wrap == false) { - code.append ("\t\trowLayout.wrap = false;\n"); - } - if (rowLayout.pack == false) { - code.append ("\t\trowLayout.pack = false;\n"); - } - if (rowLayout.justify == true) { - code.append ("\t\trowLayout.justify = true;\n"); - } - if (rowLayout.marginLeft != 3) { - code.append ("\t\trowLayout.marginLeft = " + rowLayout.marginLeft + ";\n"); - } - if (rowLayout.marginRight != 3) { - code.append ("\t\trowLayout.marginRight = " + rowLayout.marginRight + ";\n"); - } - if (rowLayout.marginTop != 3) { - code.append ("\t\trowLayout.marginTop = " + rowLayout.marginTop + ";\n"); - } - if (rowLayout.marginBottom != 3) { - code.append ("\t\trowLayout.marginBottom = " + rowLayout.marginBottom + ";\n"); - } - if (rowLayout.spacing != 3) { - code.append ("\t\trowLayout.spacing = " + rowLayout.spacing + ";\n"); - } - code.append ("\t\tshell.setLayout (rowLayout);\n"); - - boolean first = true; - for (int i = 0; i < children.length; i++) { - Control control = children [i]; - code.append (getChildCode (control,i)); - RowData data = (RowData) control.getLayoutData (); - if (data != null) { - if (data.width != -1 || data.height != -1) { - code.append ("\t\t"); - if (first) { - code.append ("RowData "); - first = false; - } - if (data.width == -1) { - code.append ("data = new RowData (SWT.DEFAULT, " + data.height + ");\n"); - } else if (data.height == -1) { - code.append ("data = new RowData (" + data.width + ", SWT.DEFAULT);\n"); - } else { - code.append ("data = new RowData (" + data.width + ", " + data.height + ");\n"); - } - code.append ("\t\t" + names [i] + ".setLayoutData (data);\n"); - } - } - } - return code; - } - - /** - * Returns the layout data field names. - */ - String [] getLayoutDataFieldNames() { - return new String [] { - "", - "Control", - "width", - "height" - }; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "RowLayout"; - } - - /** - * Takes information from TableEditors and stores it. - */ - void resetEditors () { - resetEditors (false); - } - - void resetEditors (boolean tab) { - TableItem oldItem = comboEditor.getItem (); - if (oldItem != null) { - int row = table.indexOf (oldItem); - /* Make sure user has entered valid data */ - try { - new Integer (widthText.getText ()).intValue (); - } catch (NumberFormatException e) { - widthText.setText (oldItem.getText (WIDTH_COL)); - } - try { - new Integer (heightText.getText ()).intValue (); - } catch (NumberFormatException e) { - heightText.setText (oldItem.getText (HEIGHT_COL)); - } - String [] insert = new String [] { - String.valueOf (row), combo.getText (), widthText.getText (), heightText.getText ()}; - data.setElementAt (insert, row); - for (int i = 0 ; i < TOTAL_COLS; i++) { - oldItem.setText (i, ((String [])data.elementAt (row)) [i]); - } - if (!tab) disposeEditors (); - } - setLayoutState (); - refreshLayoutComposite (); - setLayoutData (); - layoutComposite.layout (true); - layoutGroup.layout (true); - } - - /** - * Sets the layout data for the children of the layout. - */ - void setLayoutData () { - Control [] children = layoutComposite.getChildren (); - TableItem [] items = table.getItems (); - RowData data; - int width, height; - for (int i = 0; i < children.length; i++) { - width = new Integer (items [i].getText (WIDTH_COL)).intValue (); - height = new Integer (items [i].getText (HEIGHT_COL)).intValue (); - data = new RowData (width, height); - children [i].setLayoutData (data); - } - - } - - /** - * Sets the state of the layout. - */ - void setLayoutState () { - /* Set the type of layout */ - if (vertical.getSelection ()) { - rowLayout.type = SWT.VERTICAL; - } else { - rowLayout.type = SWT.HORIZONTAL; - } - - /* Set the margins and spacing */ - try { - rowLayout.marginRight = new Integer (marginRight.getText ()).intValue (); - } catch (NumberFormatException e) { - rowLayout.marginRight = 3; - marginRight.select (1); - } - try { - rowLayout.marginLeft = new Integer (marginLeft.getText ()).intValue (); - } catch (NumberFormatException e) { - rowLayout.marginLeft = 3; - marginLeft.select (1); - } - try { - rowLayout.marginTop = new Integer (marginTop.getText ()).intValue (); - } catch (NumberFormatException e) { - rowLayout.marginTop = 3; - marginTop.select (1); - } - try { - rowLayout.marginBottom = new Integer (marginBottom.getText ()).intValue (); - } catch (NumberFormatException e) { - rowLayout.marginBottom = 3; - marginBottom.select (1); - } - try { - rowLayout.spacing = new Integer (spacing.getText ()).intValue (); - } catch (NumberFormatException e) { - rowLayout.spacing = 3; - spacing.select (1); - } - - /* Set the other layout properties */ - rowLayout.wrap = wrap.getSelection (); - rowLayout.pack = pack.getSelection (); - rowLayout.justify = justify.getSelection (); - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/Tab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/Tab.java deleted file mode 100644 index 668e4da9d1..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/Tab.java +++ /dev/null @@ -1,641 +0,0 @@ -package org.eclipse.swt.examples.layoutexample; - -/* - * Copyright (c) 2000, 2002 IBM Corp. All rights reserved. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - */ - -import java.util.Vector; - -import org.eclipse.swt.*; -import org.eclipse.swt.custom.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.widgets.*; - -/** - * <code>Tab</code> is the abstract superclass of every page - * in the example's tab folder. Each page in the tab folder - * displays a layout, and allows the user to manipulate the - * layout. - * - * A typical page in a Tab contains a two column composite. - * The left column contains the layout group, which contains - * the "layout composite" (the one that has the example layout). - * The right column contains the "control" group. The "control" - * group allows the user to interact with the example. Typical - * operations are modifying layout parameters, adding children - * to the "layout composite", and modifying child layout data. - * The "Code" button in the "control" group opens a new window - * containing code that will regenerate the layout. This code - * (or parts of it) can be selected and copied to the clipboard. - */ -abstract class Tab { - /* Common groups and composites */ - Composite tabFolderPage; - SashForm sash; - Group layoutGroup, controlGroup, childGroup; - /* The composite that contains the example layout */ - Composite layoutComposite; - /* Common controls for modifying the example layout */ - String [] names; - Control [] children; - Button size, add, delete, clear, code; - /* Common values for working with TableEditors */ - Table table; - int index; - TableItem newItem, lastSelected; - Vector data = new Vector (); - /* Controlling instance */ - final LayoutExample instance; - - /* Listeners */ - SelectionListener selectionListener = new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - resetEditors (); - }; - }; - - TraverseListener traverseListener = new TraverseListener () { - public void keyTraversed (TraverseEvent e) { - if (e.detail == SWT.TRAVERSE_RETURN) { - e.doit = false; - resetEditors (); - } - }; - }; - - /** - * Creates the Tab within a given instance of LayoutExample. - */ - Tab(LayoutExample instance) { - this.instance = instance; - } - - /** - * Creates the "child" group. This is the group that allows - * you to add children to the layout. It exists within the - * controlGroup. - */ - void createChildGroup () { - childGroup = new Group (controlGroup, SWT.NONE); - childGroup.setText (LayoutExample.getResourceString("Children")); - GridLayout layout = new GridLayout (); - layout.numColumns = 3; - childGroup.setLayout (layout); - GridData data = new GridData (GridData.FILL_BOTH); - data.horizontalSpan = 2; - childGroup.setLayoutData (data); - createChildWidgets (); - } - - /** - * Creates the controls for modifying the "children" - * table, and the table itself. - * Subclasses override this method to augment the - * standard table. - */ - void createChildWidgets () { - /* Controls for adding and removing children */ - add = new Button (childGroup, SWT.PUSH); - add.setText (LayoutExample.getResourceString ("Add")); - add.setLayoutData(new GridData (GridData.FILL_HORIZONTAL)); - delete = new Button (childGroup, SWT.PUSH); - delete.setText (LayoutExample.getResourceString ("Delete")); - delete.setLayoutData(new GridData (GridData.FILL_HORIZONTAL)); - delete.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - resetEditors (); - int [] selected = table.getSelectionIndices (); - table.remove (selected); - /* Refresh the control indices of the table */ - for (int i = 0; i < table.getItemCount(); i++) { - table.getItem (i).setText (0, String.valueOf (i)); - } - refreshLayoutComposite (); - layoutComposite.layout (true); - layoutGroup.layout (true); - } - }); - clear = new Button (childGroup, SWT.PUSH); - clear.setText (LayoutExample.getResourceString ("Clear")); - clear.setLayoutData(new GridData (GridData.FILL_HORIZONTAL)); - clear.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - resetEditors (); - children = layoutComposite.getChildren (); - for (int i = 0; i < children.length; i++) { - children [i].dispose (); - } - table.removeAll (); - data.clear (); - children = new Control [0]; - layoutGroup.layout (true); - } - }); - /* Create the "children" table */ - table = new Table (childGroup, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.HIDE_SELECTION); - table.setLinesVisible (true); - table.setHeaderVisible (true); - GridData gridData = new GridData (GridData.FILL_BOTH); - gridData.horizontalSpan = 3; - gridData.heightHint = 150; - table.setLayoutData (gridData); - table.addTraverseListener (traverseListener); - - /* Add columns to the table */ - String [] columnHeaders = getLayoutDataFieldNames (); - for (int i = 0; i < columnHeaders.length; i++) { - TableColumn column = new TableColumn(table, SWT.NONE); - column.setText (columnHeaders [i]); - if (i == 0) column.setWidth (20); - else if (i == 1) column.setWidth (80); - else column.pack (); - } - } - - /** - * Creates the TableEditor with a CCombo in the first column - * of the table. This CCombo lists all the controls that - * the user can select to place on their layout. - */ - void createComboEditor (CCombo combo, TableEditor comboEditor) { - combo.setItems (new String [] { - "Button", "Canvas", "Combo", "Composite", - "CoolBar", "Group", "Label", "List", - "ProgressBar", "Scale", "Slider", "StyledText", - "Table", "Text", "ToolBar", "Tree"}); - combo.setText (newItem.getText (1)); - - /* Set up editor */ - comboEditor.horizontalAlignment = SWT.LEFT; - comboEditor.grabHorizontal = true; - comboEditor.minimumWidth = 50; - comboEditor.setEditor (combo, newItem, 1); - - /* Add listener */ - combo.addTraverseListener(new TraverseListener() { - public void keyTraversed(TraverseEvent e) { - if (e.detail == SWT.TRAVERSE_TAB_NEXT || e.detail == SWT.TRAVERSE_RETURN) { - resetEditors (); - } - if (e.detail == SWT.TRAVERSE_ESCAPE) { - disposeEditors (); - } - } - }); - } - - /** - * Creates the "control" group. This is the group on the - * right half of each example tab. It contains controls - * for adding new children to the layoutComposite, and - * for modifying the children's layout data. - */ - void createControlGroup () { - controlGroup = new Group (sash, SWT.NONE); - controlGroup.setText (LayoutExample.getResourceString("Parameters")); - GridLayout layout = new GridLayout (); - layout.numColumns = 2; - controlGroup.setLayout (layout); - size = new Button (controlGroup, SWT.CHECK); - size.setText (LayoutExample.getResourceString ("Preferred_Size")); - size.setSelection (false); - size.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - resetEditors (); - if (size.getSelection ()) { - layoutComposite.setLayoutData (new GridData ()); - layoutGroup.layout (true); - } else { - layoutComposite.setLayoutData (new GridData (GridData.FILL_BOTH)); - layoutGroup.layout (true); - } - } - }); - GridData data = new GridData (GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - size.setLayoutData (data); - createControlWidgets (); - } - - /** - * Creates the "control" widget children. - * Subclasses override this method to augment - * the standard controls created. - */ - void createControlWidgets () { - createChildGroup (); - code = new Button (controlGroup, SWT.PUSH); - code.setText (LayoutExample.getResourceString ("Code")); - GridData gridData = new GridData (GridData.HORIZONTAL_ALIGN_CENTER | GridData.GRAB_HORIZONTAL); - gridData.horizontalSpan = 2; - code.setLayoutData (gridData); - code.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - final Shell shell = new Shell (); - shell.setText (LayoutExample.getResourceString ("Generated_Code")); - shell.setLayout (new FillLayout ()); - final StyledText text = new StyledText (shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL); - String layoutCode = generateCode ().toString (); - if (layoutCode.length () == 0) return; - text.setText (layoutCode); - - Menu bar = new Menu (shell, SWT.BAR); - shell.setMenuBar (bar); - MenuItem editItem = new MenuItem (bar, SWT.CASCADE); - editItem.setText (LayoutExample.getResourceString ("Edit")); - Menu menu = new Menu (bar); - MenuItem select = new MenuItem (menu, SWT.PUSH); - select.setText (LayoutExample.getResourceString ("Select_All")); - select.setAccelerator (SWT.CTRL + 'A'); - select.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - text.selectAll (); - } - }); - MenuItem copy = new MenuItem (menu, SWT.PUSH); - copy.setText (LayoutExample.getResourceString ("Copy")); - copy.setAccelerator (SWT.CTRL + 'C'); - copy.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - text.copy (); - } - }); - MenuItem exit = new MenuItem (menu, SWT.PUSH); - exit.setText (LayoutExample.getResourceString ("Exit")); - exit.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - shell.close (); - } - }); - editItem.setMenu (menu); - - shell.pack (); - shell.setSize (400, 500); - shell.open (); - Display display = shell.getDisplay (); - while (!shell.isDisposed ()) - if (!display.readAndDispatch ()) display.sleep (); - } - }); - } - - /** - * Creates the example layout. - * Subclasses override this method. - */ - void createLayout () { - } - - /** - * Creates the composite that contains the example layout. - */ - void createLayoutComposite () { - layoutComposite = new Composite (layoutGroup, SWT.BORDER); - layoutComposite.setLayoutData (new GridData (GridData.FILL_BOTH)); - createLayout (); - } - - /** - * Creates the layout group. This is the group on the - * left half of each example tab. - */ - void createLayoutGroup () { - layoutGroup = new Group (sash, SWT.NONE); - layoutGroup.setText (LayoutExample.getResourceString("Layout")); - layoutGroup.setLayout (new GridLayout ()); - createLayoutComposite (); - } - - /** - * Creates the tab folder page. - * - * @param tabFolder org.eclipse.swt.widgets.TabFolder - * @return the new page for the tab folder - */ - Composite createTabFolderPage (TabFolder tabFolder) { - /* Create a two column page with a SashForm*/ - tabFolderPage = new Composite (tabFolder, SWT.NULL); - tabFolderPage.setLayout (new FillLayout ()); - sash = new SashForm (tabFolderPage, SWT.HORIZONTAL); - - /* Create the "layout" and "control" columns */ - createLayoutGroup (); - createControlGroup (); - - return tabFolderPage; - } - - /** - * Creates the TableEditor with a Text in the given column - * of the table. - */ - void createTextEditor (Text text, TableEditor textEditor, int column) { - text.setFont (table.getFont ()); - text.selectAll (); - textEditor.horizontalAlignment = SWT.LEFT; - textEditor.grabHorizontal = true; - textEditor.setEditor (text, newItem, column); - - text.addTraverseListener(new TraverseListener() { - public void keyTraversed(TraverseEvent e) { - if (e.detail == SWT.TRAVERSE_TAB_NEXT) { - resetEditors (true); - } - if (e.detail == SWT.TRAVERSE_ESCAPE) { - disposeEditors (); - } - } - }); - } - - /** - * Disposes the editors without placing their contents - * into the table. - * Subclasses override this method. - */ - void disposeEditors () { - } - - /** - * Generates the code needed to produce the example layout. - */ - StringBuffer generateCode () { - /* Make sure all information being entered is stored in the table */ - resetEditors (); - - /* Get names for controls in the layout */ - names = new String [children.length]; - for (int i = 0; i < children.length; i++) { - Control control = children [i]; - String controlClass = control.getClass ().toString (); - String controlType = controlClass.substring (controlClass.lastIndexOf ('.') + 1); - names [i] = controlType.toLowerCase () + i; - } - - /* Create StringBuffer containing the code */ - StringBuffer code = new StringBuffer (); - code.append ("import org.eclipse.swt.*;\n"); - code.append ("import org.eclipse.swt.custom.*;\n"); - code.append ("import org.eclipse.swt.graphics.*;\n"); - code.append ("import org.eclipse.swt.layout.*;\n"); - code.append ("import org.eclipse.swt.widgets.*;\n\n"); - code.append ("public class MyLayout {\n"); - code.append ("\tpublic static void main (String [] args) {\n"); - code.append ("\t\tDisplay display = new Display ();\n"); - code.append ("\t\tShell shell = new Shell (display);\n"); - - /* Get layout specific code */ - code.append (generateLayoutCode ()); - - code.append ("\n\t\tshell.pack ();\n\t\tshell.open ();\n\n"); - code.append ("\t\twhile (!shell.isDisposed ()) {\n"); - code.append ("\t\t\tif (!display.readAndDispatch ())\n"); - code.append ("\t\t\t\tdisplay.sleep ();\n\t\t}\n\t\tdisplay.dispose ();\n\t}\n}"); - - return code; - } - - /** - * Generates layout specific code for the example layout. - * Subclasses override this method. - */ - StringBuffer generateLayoutCode () { - return new StringBuffer (); - } - - /** - * Returns the StringBuffer for the code which will - * create a child control. - */ - StringBuffer getChildCode (Control control, int i) { - StringBuffer code = new StringBuffer (); - /* Find the type of control */ - String controlClass = control.getClass().toString (); - String controlType = controlClass.substring (controlClass.lastIndexOf ('.') + 1); - /* Find the style of the control */ - String styleString; - if (controlType.equals ("Button")) { - styleString = "SWT.PUSH"; - } else if (controlType.equals ("Text")) { - styleString = "SWT.BORDER"; - } else if (controlType.equals ("StyledText")) { - styleString = "SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL"; - } else if (controlType.equals ("Canvas") || controlType.equals ("Composite") || - controlType.equals ("Table") || controlType.equals ("StyledText") || - controlType.equals ("ToolBar") || controlType.equals ("Tree") || - controlType.equals ("List")) { - styleString = "SWT.BORDER"; - } else styleString = "SWT.NONE"; - /* Write out the control being declared */ - code.append ("\n\t\t" + controlType + " " + names [i] + - " = new " + controlType + " (shell, " + styleString + ");\n"); - /* Add items to those controls that need items */ - if (controlType.equals ("Combo") || controlType.equals ("List")) { - code.append ("\t\t" + names [i] + ".setItems (new String [] {\"Item 1\", \"Item 2\", \"Item 2\"});\n"); - } else if (controlType.equals ("Table")) { - code.append ("\t\t" + names [i] + ".setLinesVisible (true);\n"); - for (int j = 1; j < 3; j++) { - code.append ("\t\tTableItem tableItem" + j + " = new TableItem (" + names [i] + ", SWT.NONE);\n"); - code.append ("\t\ttableItem" + j + ".setText (\"Item" + j + "\");\n"); - } - } else if (controlType.equals ("Tree")) { - for (int j = 1; j < 3; j++) { - code.append ("\t\tTreeItem treeItem" + j + " = new TreeItem (" + names [i] + ", SWT.NONE);\n"); - code.append ("\t\ttreeItem" + j + ".setText (\"Item" + j + "\");\n"); - } - } else if (controlType.equals ("ToolBar")) { - for (int j = 1; j < 3; j++) { - code.append ("\t\tToolItem toolItem" + j + " = new ToolItem (" + names [i] + ", SWT.NONE);\n"); - code.append ("\t\ttoolItem" + j + ".setText (\"Item" + j + "\");\n"); - } - } else if (controlType.equals ("CoolBar")) { - code.append ("\t\tToolBar coolToolBar = new ToolBar (" + names [i] + ", SWT.BORDER);\n"); - code.append ("\t\tToolItem coolToolItem = new ToolItem (coolToolBar, SWT.NONE);\n"); - code.append ("\t\tcoolToolItem.setText (\"Item 1\");\n"); - code.append ("\t\tcoolToolItem = new ToolItem (coolToolBar, SWT.NONE);\n"); - code.append ("\t\tcoolToolItem.setText (\"Item 2\");\n"); - code.append ("\t\tCoolItem coolItem1 = new CoolItem (" + names [i] + ", SWT.NONE);\n"); - code.append ("\t\tcoolItem1.setControl (coolToolBar);\n"); - code.append ("\t\tcoolToolBar = new ToolBar (" + names [i] + ", SWT.BORDER);\n"); - code.append ("\t\tcoolToolItem = new ToolItem (coolToolBar, SWT.NONE);\n"); - code.append ("\t\tcoolToolItem.setText (\"Item 3\");\n"); - code.append ("\t\tcoolToolItem = new ToolItem (coolToolBar, SWT.NONE);\n"); - code.append ("\t\tcoolToolItem.setText (\"Item 4\");\n"); - code.append ("\t\tCoolItem coolItem2 = new CoolItem (" + names [i] + ", SWT.NONE);\n"); - code.append ("\t\tcoolItem2.setControl (coolToolBar);\n"); - code.append ("\t\tPoint size = coolToolBar.computeSize (SWT.DEFAULT, SWT.DEFAULT);\n"); - code.append ("\t\tcoolItem1.setSize (coolItem1.computeSize (size.x, size.y));\n"); - code.append ("\t\tcoolItem2.setSize (coolItem2.computeSize (size.x, size.y));\n"); - code.append ("\t\t" + names [i] + ".setSize (" + names [i] + ".computeSize (SWT.DEFAULT, SWT.DEFAULT));\n"); - } else if (controlType.equals ("ProgressBar")) { - code.append ("\t\t" + names [i] + ".setSelection (50);\n"); - } - /* Set text for those controls that support it */ - if (controlType.equals ("Button") || - controlType.equals ("Combo") || - controlType.equals ("Group") || - controlType.equals ("Label") || - controlType.equals ("StyledText") || - controlType.equals ("Text")) { - code.append ("\t\t" + names [i] + ".setText (\"" + names [i] + "\");\n"); - } - return code; - } - - /** - * Returns the layout data field names. - * Subclasses override this method. - */ - String [] getLayoutDataFieldNames () { - return new String [] {}; - } - - /** - * Gets the text for the tab folder item. - * Subclasses override this method. - */ - String getTabText () { - return ""; - } - - /** - * Refreshes the composite and draws all controls - * in the layout example. - */ - void refreshLayoutComposite () { - /* Remove children that are already layed out */ - children = layoutComposite.getChildren (); - for (int i = 0; i < children.length; i++) { - children [i].dispose (); - } - /* Add all children listed in the table */ - TableItem [] items = table.getItems (); - children = new Control [items.length]; - String [] itemValues = new String [] { - LayoutExample.getResourceString ("Item",new String [] {"1"}), - LayoutExample.getResourceString ("Item",new String [] {"2"}), - LayoutExample.getResourceString ("Item",new String [] {"3"})}; - for (int i = 0; i < items.length; i++) { - String control = items [i].getText (1); - if (control.equals ("Button")) { - Button button = new Button (layoutComposite, SWT.PUSH); - button.setText (LayoutExample.getResourceString ("Button_Index", new String [] {new Integer (i).toString ()})); - children [i] = button; - } else if (control.equals ("Canvas")) { - Canvas canvas = new Canvas (layoutComposite, SWT.BORDER); - children [i] = canvas; - } else if (control.equals ("Combo")) { - Combo combo = new Combo (layoutComposite, SWT.NONE); - combo.setItems (itemValues); - combo.setText (LayoutExample.getResourceString ("Combo_Index", new String [] {new Integer (i).toString ()})); - children [i] = combo; - } else if (control.equals ("Composite")) { - Composite composite = new Composite (layoutComposite, SWT.BORDER); - children [i] = composite; - } else if (control.equals ("CoolBar")) { - CoolBar coolBar = new CoolBar (layoutComposite, SWT.NONE); - ToolBar toolBar = new ToolBar (coolBar, SWT.BORDER); - ToolItem item = new ToolItem (toolBar, 0); - item.setText (LayoutExample.getResourceString ("Item",new String [] {"1"})); - item = new ToolItem (toolBar, 0); - item.setText (LayoutExample.getResourceString ("Item",new String [] {"2"})); - CoolItem coolItem1 = new CoolItem (coolBar, 0); - coolItem1.setControl (toolBar); - toolBar = new ToolBar (coolBar, SWT.BORDER); - item = new ToolItem (toolBar, 0); - item.setText (LayoutExample.getResourceString ("Item",new String [] {"3"})); - item = new ToolItem (toolBar, 0); - item.setText (LayoutExample.getResourceString ("Item",new String [] {"4"})); - CoolItem coolItem2 = new CoolItem (coolBar, 0); - coolItem2.setControl (toolBar); - Point size = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT); - coolItem1.setSize(coolItem1.computeSize (size.x, size.y)); - coolItem2.setSize(coolItem2.computeSize (size.x, size.y)); - coolBar.setSize(coolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT)); - children [i] = coolBar; - } else if (control.equals ("Group")) { - Group group = new Group (layoutComposite, SWT.NONE); - group.setText (LayoutExample.getResourceString ("Group_Index", new String [] {new Integer (i).toString ()})); - children [i] = group; - } else if (control.equals ("Label")) { - Label label = new Label (layoutComposite, SWT.NONE); - label.setText (LayoutExample.getResourceString ("Label_Index", new String [] {new Integer (i).toString ()})); - children [i] = label; - } else if (control.equals ("List")) { - List list = new List (layoutComposite, SWT.BORDER); - list.setItems (itemValues); - children [i] = list; - } else if (control.equals ("ProgressBar")) { - ProgressBar progress = new ProgressBar (layoutComposite, SWT.NONE); - progress.setSelection (50); - children [i] = progress; - } else if (control.equals ("Scale")) { - Scale scale = new Scale (layoutComposite, SWT.NONE); - children [i] = scale; - } else if (control.equals ("Slider")) { - Slider slider = new Slider (layoutComposite, SWT.NONE); - children [i] = slider; - } else if (control.equals ("StyledText")) { - StyledText styledText = new StyledText (layoutComposite, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); - styledText.setText (LayoutExample.getResourceString ("StyledText_Index", new String [] {new Integer (i).toString ()})); - children [i] = styledText; - } else if (control.equals ("Table")) { - Table table = new Table (layoutComposite, SWT.BORDER); - table.setLinesVisible (true); - TableItem item1 = new TableItem (table, 0); - item1.setText (LayoutExample.getResourceString ("Item",new String [] {"1"})); - TableItem item2 = new TableItem (table, 0); - item2.setText (LayoutExample.getResourceString ("Item",new String [] {"2"})); - children [i] = table; - } else if (control.equals ("Text")) { - Text text = new Text (layoutComposite, SWT.BORDER); - text.setText (LayoutExample.getResourceString ("Text_Index", new String [] {new Integer (i).toString ()})); - children [i] = text; - } else if (control.equals ("ToolBar")) { - ToolBar toolBar = new ToolBar (layoutComposite, SWT.BORDER); - ToolItem item1 = new ToolItem (toolBar, 0); - item1.setText (LayoutExample.getResourceString ("Item",new String [] {"1"})); - ToolItem item2 = new ToolItem (toolBar, 0); - item2.setText (LayoutExample.getResourceString ("Item",new String [] {"2"})); - children [i] = toolBar; - } else { - Tree tree = new Tree (layoutComposite, SWT.BORDER); - TreeItem item1 = new TreeItem (tree, 0); - item1.setText (LayoutExample.getResourceString ("Item",new String [] {"1"})); - TreeItem item2 = new TreeItem (tree, 0); - item2.setText (LayoutExample.getResourceString ("Item",new String [] {"2"})); - children [i] = tree; - } - } - } - - /** - * Takes information from TableEditors and stores it. - * Subclasses override this method. - */ - void resetEditors () { - resetEditors (false); - } - - void resetEditors (boolean tab) { - } - - /** - * Sets the layout data for the children of the layout. - * Subclasses override this method. - */ - void setLayoutData () { - } - - /** - * Sets the state of the layout. - * Subclasses override this method. - */ - void setLayoutState () { - } -} diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/Images.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/Images.java deleted file mode 100755 index 49c7b59e40..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/Images.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.eclipse.swt.examples.texteditor;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2002. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-public class Images {
-
- // Bitmap Images
- public Image Bold;
- public Image Red;
- public Image Green;
- public Image Blue;
- public Image Erase;
-
- Image [] AllBitmaps;
-
-Images () {
-}
-
-public void freeAll () {
- for (int i=0; i<AllBitmaps.length; i++) AllBitmaps [i].dispose ();
- AllBitmaps = null;
-}
-
-Image createBitmapImage(Display display, String fileName) {
- ImageData source = new ImageData(Images.class.getResourceAsStream(fileName+".bmp"));
- ImageData mask = new ImageData(Images.class.getResourceAsStream(fileName+"_mask"+".bmp"));
- return new Image (display, source, mask);
-}
-
-public void loadAll (Display display) {
- // Bitmap Images
- Bold = createBitmapImage (display, "bold");
- Red = createBitmapImage (display, "red");
- Green = createBitmapImage (display, "green");
- Blue = createBitmapImage (display, "blue");
- Erase = createBitmapImage (display, "erase");
-
- AllBitmaps = new Image [] {
- Bold,
- Red,
- Green,
- Blue,
- Erase,
- };
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/TextEditor.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/TextEditor.java deleted file mode 100755 index 758e0ea942..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/TextEditor.java +++ /dev/null @@ -1,359 +0,0 @@ -package org.eclipse.swt.examples.texteditor;
-
-/*
- * Copyright (c) 2000, 2002 IBM Corp. All rights reserved. - * This file is made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html
- */
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import java.util.*;
-
-/**
- */
-public class TextEditor {
- Shell shell;
- ToolBar toolBar;
- StyledText text;
-
- Images images = new Images();
- Vector cachedStyles = new Vector();
- Color RED = null;
- Color BLUE = null;
- Color GREEN = null;
- Font font = null;
-
- boolean isBold = false;
-
- ExtendedModifyListener extendedModifyListener;
- VerifyKeyListener verifyKeyListener;
- static ResourceBundle resources = ResourceBundle.getBundle("examples_texteditor");
-
-Menu createEditMenu() {
- Menu bar = shell.getMenuBar ();
- Menu menu = new Menu (bar);
-
- MenuItem item = new MenuItem (menu, SWT.PUSH);
- item.setText (resources.getString("Cut_menuitem"));
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- text.cut();
- }
- });
-
- item = new MenuItem (menu, SWT.PUSH);
- item.setText (resources.getString("Copy_menuitem"));
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- text.copy();
- }
- });
-
- item = new MenuItem (menu, SWT.PUSH);
- item.setText (resources.getString("Paste_menuitem"));
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- text.paste();
- }
- });
-
- new MenuItem (menu, SWT.SEPARATOR);
-
- item = new MenuItem (menu, SWT.PUSH);
- item.setText (resources.getString("Font_menuitem"));
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- setFont();
- }
- });
- return menu;
-}
-
-
-/*
- * Set the text state to bold.
- */
-void bold(boolean bold) {
- isBold = bold;
- Point sel = text.getSelectionRange();
- if ((sel != null) && (sel.y != 0)) {
- StyleRange style;
- int fontStyle = SWT.NORMAL;
- if (isBold) fontStyle = SWT.BOLD;
- style = new StyleRange(sel.x, sel.y, null, null, fontStyle);
- text.setStyleRange(style);
- }
- text.setSelectionRange(sel.x + sel.y, 0);
-}
-/*
- * Clear all style data for the selected text.
- */
-void clear() {
- Point sel = text.getSelectionRange();
- if ((sel != null) && (sel.y != 0)) {
- StyleRange style;
- style = new StyleRange(sel.x, sel.y, null, null, SWT.NORMAL);
- text.setStyleRange(style);
- }
- text.setSelectionRange(sel.x + sel.y, 0);
-}
-/*
- * Set the foreground color for the selected text.
- */
-void fgColor(int color) {
- Point sel = text.getSelectionRange();
- if ((sel == null) || (sel.y == 0)) return;
- Color fg;
- if (color == SWT.COLOR_RED) {
- fg = RED;
- } else if (color == SWT.COLOR_GREEN) {
- fg = GREEN;
- } else if (color == SWT.COLOR_BLUE) {
- fg = BLUE;
- } else {
- fg = null;
- }
- StyleRange style;
- for (int i = sel.x; i<sel.x+sel.y; i++) {
- StyleRange range = text.getStyleRangeAtOffset(i);
- if (range == null) {style = new StyleRange(i, 1, fg, null, SWT.NORMAL);}
- else {style = new StyleRange(i, 1, fg, null, range.fontStyle);};
- text.setStyleRange(style);
- }
- text.setSelectionRange(sel.x + sel.y, 0);
-}
-void createMenuBar () {
- Menu bar = new Menu (shell, SWT.BAR);
- shell.setMenuBar (bar);
-
- MenuItem editItem = new MenuItem (bar, SWT.CASCADE);
- editItem.setText (resources.getString("Edit_menuitem"));
- editItem.setMenu (createEditMenu ());
-}
-
-void createShell (Display display) {
- shell = new Shell (display);
- shell.setText (resources.getString("Window_title"));
- images.loadAll (display);
- GridLayout layout = new GridLayout();
- layout.numColumns = 1;
- shell.setLayout(layout);
- shell.addDisposeListener (new DisposeListener () {
- public void widgetDisposed (DisposeEvent e) {
- if (font != null) font.dispose();
- images.freeAll ();
- RED.dispose();
- GREEN.dispose();
- BLUE.dispose();
- }
- });
-}
-void createStyledText() {
- initializeColors();
- text = new StyledText (shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
- GridData spec = new GridData();
- spec.horizontalAlignment = GridData.FILL;
- spec.grabExcessHorizontalSpace = true;
- spec.verticalAlignment = GridData.FILL;
- spec.grabExcessVerticalSpace = true;
- text.setLayoutData(spec);
- extendedModifyListener = new ExtendedModifyListener() {
- public void modifyText(ExtendedModifyEvent e) {
- handleExtendedModify(e);
- }
- };
- text.addExtendedModifyListener(extendedModifyListener);
- verifyKeyListener = new VerifyKeyListener() {
- public void verifyKey(VerifyEvent e) {
- handleVerifyKey(e);
- }
- };
- text.addVerifyKeyListener(verifyKeyListener);
-}
-
-void createToolBar() {
- toolBar = new ToolBar(shell, SWT.NULL);
-
- ToolItem item = new ToolItem(toolBar, SWT.CHECK);
- item.setImage(images.Bold);
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- bold(((ToolItem)event.widget).getSelection());
- }
- });
-
- item = new ToolItem(toolBar, SWT.SEPARATOR);
-
- item = new ToolItem(toolBar, SWT.PUSH);
- item.setImage(images.Red);
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- fgColor(SWT.COLOR_RED);
- }
- });
- item = new ToolItem(toolBar, SWT.PUSH);
- item.setImage(images.Green);
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- fgColor(SWT.COLOR_GREEN);
- }
- });
- item = new ToolItem(toolBar, SWT.PUSH);
- item.setImage(images.Blue);
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- fgColor(SWT.COLOR_BLUE);
- }
- });
-
- item = new ToolItem(toolBar, SWT.SEPARATOR);
-
- item = new ToolItem(toolBar, SWT.PUSH);
- item.setImage(images.Erase);
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- clear();
- }
- });
-}
-void displayError(String msg) {
- MessageBox box = new MessageBox(shell, SWT.ICON_ERROR);
- box.setMessage(msg);
- box.open();
-}
-/*
- * Cache the style information for text that has been cut or copied.
- */
-void handleCutCopy() {
- // Save the cut/copied style info so that during paste we will maintain
- // the style information. Cut/copied text is put in the clipboard in
- // RTF format, but is not pasted in RTF format. The other way to
- // handle the pasting of styles would be to access the Clipboard directly and
- // parse the RTF text.
- cachedStyles = new Vector();
- Point sel = text.getSelectionRange();
- int startX = sel.x;
- for (int i=sel.x; i<=sel.x+sel.y-1; i++) {
- StyleRange style = text.getStyleRangeAtOffset(i);
- if (style != null) {
- style.start = style.start - startX;
- if (!cachedStyles.isEmpty()) {
- StyleRange lastStyle = (StyleRange)cachedStyles.lastElement();
- if (lastStyle.similarTo(style) && lastStyle.start + lastStyle.length == style.start) {
- lastStyle.length++;
- } else {
- cachedStyles.addElement(style);
- }
- } else {
- cachedStyles.addElement(style);
- }
- }
- }
-}
-void handleExtendedModify(ExtendedModifyEvent event) {
- if (event.length == 0) return;
- StyleRange style;
- if (event.length == 1 || text.getTextRange(event.start, event.length).equals(text.getLineDelimiter())) {
- // Have the new text take on the style of the text to its right (during
- // typing) if no style information is active.
- int caretOffset = text.getCaretOffset();
- style = null;
- if (caretOffset < text.getCharCount()) style = text.getStyleRangeAtOffset(caretOffset);
- if (style != null) {
- style.start = event.start;
- style.length = event.length;
- int fontStyle = SWT.NORMAL;
- if (isBold) fontStyle = SWT.BOLD;
- style.fontStyle = fontStyle;
- text.setStyleRange(style);
- } else if (isBold) {
- StyleRange newStyle = new StyleRange(event.start, event.length, null, null, SWT.BOLD);
- text.setStyleRange(newStyle);
- }
- } else {
- // paste occurring
- for (int i=0; i<cachedStyles.size(); i++) {
- style = (StyleRange)cachedStyles.elementAt(i);
- StyleRange newStyle = (StyleRange)style.clone();
- newStyle.start = style.start + event.start;
- text.setStyleRange(newStyle);
- }
- }
-}
-/*
- * Intercept the cut and copy keys so that during paste we can maintain
- * style information.
- */
-void handleVerifyKey(VerifyEvent event) {
- int input;
- if (event.keyCode != 0) input = event.keyCode | event.stateMask;
- else input = event.character | event.stateMask;
- if (isCut(input) || isCopy(input)) {
- handleCutCopy();
- }
-}
-
-public static void main (String [] args) {
- Display display = new Display ();
- TextEditor example = new TextEditor ();
- Shell shell = example.open (display);
- while (!shell.isDisposed ())
- if (!display.readAndDispatch ()) display.sleep ();
- display.dispose ();
-}
-
-public Shell open (Display display) {
- createShell (display);
- createMenuBar ();
- createToolBar ();
- createStyledText ();
- shell.setSize(500, 300);
- shell.open ();
- return shell;
-}
-
-void setFont() {
- FontDialog fontDialog = new FontDialog(shell);
- fontDialog.setFontData((text.getFont()).getFontData()[0]);
- FontData fontData = fontDialog.open();
- if(fontData != null) {
- if(font != null)
- font.dispose();
- font = new Font(shell.getDisplay(), fontData);
- text.setFont(font);
- }
-}
-
-void initializeColors() {
- Display display = Display.getDefault();
- RED = new Color (display, new RGB(255,0,0));
- BLUE = new Color (display, new RGB(0,0,255));
- GREEN = new Color (display, new RGB(0,255,0));
-}
-boolean isCopy(int input) {
-
- if (input == (SWT.INSERT | SWT.CTRL)) return true;
-
- if (input == ('\u0003' | SWT.CTRL)) return true;
-
- return false;
-
-}
-boolean isCut(int input) {
-
- if (input == (SWT.DEL | SWT.SHIFT)) return true;
-
- if (input == ('\u0018' | SWT.CTRL)) return true;
-
- return false;
-
-}
-
-
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue.bmp Binary files differdeleted file mode 100755 index 84c7ac9a46..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue_mask.bmp Binary files differdeleted file mode 100755 index 6ce92645e5..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue_mask.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold.bmp Binary files differdeleted file mode 100755 index a3184bb26c..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold_mask.bmp Binary files differdeleted file mode 100755 index 382751efa3..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold_mask.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase.bmp Binary files differdeleted file mode 100755 index 1d2ace7ee3..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase_mask.bmp Binary files differdeleted file mode 100755 index f6ab21e471..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase_mask.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green.bmp Binary files differdeleted file mode 100755 index cca023fd57..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green_mask.bmp Binary files differdeleted file mode 100755 index 6ce92645e5..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green_mask.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red.bmp Binary files differdeleted file mode 100755 index 88c63be336..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red.bmp +++ /dev/null diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red_mask.bmp Binary files differdeleted file mode 100755 index 6ce92645e5..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red_mask.bmp +++ /dev/null |