Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'examples/org.eclipse.swt.examples/src/org')
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/AddressBook.java881
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/DataEntryDialog.java163
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/FindListener.java18
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/SearchDialog.java202
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/BrowserExample.java372
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/document.gifbin380 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse01.bmpbin6966 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse02.bmpbin6966 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse03.bmpbin6966 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse04.bmpbin6966 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse05.bmpbin6966 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse06.bmpbin6966 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse07.bmpbin6966 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse08.bmpbin6966 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse09.bmpbin6966 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse10.bmpbin6966 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse11.bmpbin6966 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse12.bmpbin6966 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/ClipboardExample.java611
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyType.java16
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyTypeTransfer.java103
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/AlignableTab.java89
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/BrowserTab.java332
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ButtonTab.java233
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CComboTab.java123
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CLabelTab.java135
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CTabFolderTab.java446
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CanvasTab.java312
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ComboTab.java148
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ControlExample.java244
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CoolBarTab.java490
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CustomControlExample.java58
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/DateTimeTab.java125
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/DialogTab.java502
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ExpandBarTab.java145
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/GroupTab.java154
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/LabelTab.java184
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/LinkTab.java98
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ListTab.java93
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/MenuTab.java309
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ProgressBarTab.java178
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/RangeTab.java197
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashFormTab.java122
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashTab.java241
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ScaleTab.java230
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ScrollableTab.java63
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ShellTab.java294
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SliderTab.java273
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SpinnerTab.java317
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/StyledTextTab.java413
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/Tab.java1809
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TabFolderTab.java166
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TableTab.java684
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TextTab.java181
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ToolBarTab.java356
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ToolTipTab.java249
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TreeTab.java782
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/backgroundImage.pngbin572 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold.bmpbin110 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold_mask.bmpbin110 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/browser-content.html33
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/closedFolder.gifbin906 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/italic.bmpbin110 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/italic_mask.bmpbin110 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/openFolder.gifbin184 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/parentBackgroundImage.pngbin558 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red.bmpbin214 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red_mask.bmpbin110 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/strikeout.bmpbin630 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/strikeout_mask.bmpbin630 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/target.gifbin917 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/underline.bmpbin630 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/underline_mask.bmpbin630 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow.bmpbin214 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow_mask.bmpbin110 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/DNDExample.java1438
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/openFolder.gifbin184 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/FileViewer.java1716
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/IconCache.java161
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Copy.gifbin167 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Cut.gifbin152 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Delete.gifbin143 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Parent.gifbin132 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Paste.gifbin245 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Print.gifbin227 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Refresh.gifbin182 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Rename.gifbin163 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Search.gifbin153 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/generic_example.gifbin158 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedDrive.gifbin217 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedFolder.gifbin160 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_File.gifbin152 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenDrive.gifbin231 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenFolder.gifbin152 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/AdvancedGraphics.java104
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/AlphaTab.java234
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/AnimatedGraphicsTab.java156
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/BallTab.java159
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/BlackHoleTab.java42
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CardsTab.java179
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ColorListener.java24
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ColorMenu.java372
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CountDownTab.java262
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CurvesSWTTab.java389
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CurvesTab.java300
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CustomAlphaTab.java159
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CustomFontTab.java202
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/FontBounceTab.java146
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GradientDialog.java277
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GradientTab.java210
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GraphicAntialiasTab.java131
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GraphicsBackground.java65
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GraphicsExample.java648
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GraphicsTab.java73
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ImageFlipTab.java111
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ImageScaleTab.java48
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ImageTransformTab.java153
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/InterpolationTab.java196
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/IntroTab.java97
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/LineCapTab.java151
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/LineJoinTab.java147
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/LineStyleTab.java172
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/LineTab.java37
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/MazeTab.java328
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/PathClippingAnimTab.java207
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/PathClippingTab.java244
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/PathTab.java178
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/RGBTab.java153
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/RegionClippingTab.java210
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ShapesTab.java199
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/SpiralTab.java164
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/StarPolyTab.java68
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/TextAntialiasTab.java192
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ace_club.jpgbin7695 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ace_diamond.jpgbin7348 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ace_hearts.jpgbin7312 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ace_spade.jpgbin7125 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/alpha_img1.pngbin7124 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/alpha_img2.pngbin6602 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/back.gifbin327 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/cube.pngbin2212 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/db.gifbin206 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/font.gifbin112 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/help.gifbin259 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/home_nav.gifbin582 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/houses.pngbin1826 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/irmaos.jpgbin82313 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/maze.bmpbin864666 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/next.gifbin327 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ovals.pngbin2078 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/pattern1.jpgbin792 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/pattern2.jpgbin698 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/pattern3.jpgbin746 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/pause.gifbin338 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/play.gifbin337 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/swap.gifbin160 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/swt.pngbin4808 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/task.gifbin376 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld1.java36
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld2.java42
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld3.java49
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld4.java45
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld5.java56
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/HoverHelp.java355
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/information.gifbin92 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/warning.gifbin152 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java2392
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaLineStyler.java377
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaViewer.java184
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FillLayoutTab.java222
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java774
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/GridLayoutTab.java672
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/LayoutExample.java115
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/RowLayoutTab.java421
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/StackLayoutTab.java247
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/Tab.java745
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/AirbrushTool.java79
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/BasicPaintSession.java37
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/ContainerFigure.java93
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/ContinuousPaintSession.java234
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/DragPaintSession.java136
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/EllipseFigure.java52
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/EllipseTool.java63
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/Figure.java38
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/FigureDrawContext.java40
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/LineFigure.java52
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/LineTool.java58
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PaintExample.java584
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PaintSession.java58
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PaintSurface.java521
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PaintTool.java20
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PencilTool.java58
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PointFigure.java40
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PolyLineTool.java75
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/RectangleFigure.java51
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/RectangleTool.java71
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/RoundedRectangleFigure.java53
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/RoundedRectangleTool.java64
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SegmentedPaintSession.java157
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SolidEllipseFigure.java44
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SolidPolygonFigure.java59
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SolidRectangleFigure.java43
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SolidRoundedRectangleFigure.java45
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/TextFigure.java49
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/TextTool.java160
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/Tool.java36
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/ToolSettings.java62
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/fill_none.gifbin865 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/fill_outline.gifbin872 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/fill_solid.gifbin861 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/linestyle_dash.gifbin880 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/linestyle_dashdot.gifbin880 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/linestyle_dot.gifbin879 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/linestyle_solid.gifbin871 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/options_font.gifbin868 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_airbrush.gifbin890 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_ellipse.gifbin872 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_line.gifbin860 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_pencil.gifbin874 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_polyline.gifbin879 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_rectangle.gifbin865 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_roundedrectangle.gifbin871 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_text.gifbin875 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/Images.java77
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/TextEditor.java358
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue.bmpbin334 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue_mask.bmpbin134 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold.bmpbin134 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold_mask.bmpbin134 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase.bmpbin334 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase_mask.bmpbin134 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green.bmpbin334 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green_mask.bmpbin134 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/italic.bmpbin1350 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/italic_mask.bmpbin1350 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red.bmpbin334 -> 0 bytes
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red_mask.bmpbin134 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/strikeout.bmpbin1350 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/strikeout_mask.bmpbin1350 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/underline.bmpbin1350 -> 0 bytes
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/underline_mask.bmpbin1350 -> 0 bytes
241 files changed, 0 insertions, 33975 deletions
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 d16cdfec09..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/AddressBook.java
+++ /dev/null
@@ -1,881 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.addressbook;
-
-
-/* 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 int lastSortColumn= -1;
-
- 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++) {
- 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);
- 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") + " (*.*)"});
- String name = fileDialog.open();
-
- if(name == null) return;
- File file = new File(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()];
- int writeIndex = 0;
- for (int i = 0; i < data.length; i++) {
- String[] line = decodeLine(data[i]);
- if (line != null) tableInfo[writeIndex++] = line;
- }
- if (writeIndex != data.length) {
- String[][] result = new String[writeIndex][table.getColumnCount()];
- System.arraycopy(tableInfo, 0, result, 0, writeIndex);
- tableInfo = result;
- }
- 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));
-
- if (lastSortColumn != column) {
- table.setSortColumn(table.getColumn(column));
- table.setSortDirection(SWT.DOWN);
- for (int i = 0; i < data.length; i++) {
- items[i].setText(data[i]);
- }
- lastSortColumn = column;
- } else {
- // reverse order if the current column is selected again
- table.setSortDirection(SWT.UP);
- int j = data.length -1;
- for (int i = 0; i < data.length; i++) {
- items[i].setText(data[j--]);
- }
- lastSortColumn = -1;
- }
-
-}
-/**
- * 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.NONE);
- subItem.setText(resAddressBook.getString("New_contact"));
- subItem.setAccelerator(SWT.MOD1 + 'N');
- subItem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- newEntry();
- }
- });
- subItem = new MenuItem(menu, SWT.NONE);
- subItem.setText(resAddressBook.getString("Edit_contact"));
- subItem.setAccelerator(SWT.MOD1 + '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.NONE);
- subItem.setText(resAddressBook.getString("New_address_book"));
- subItem.setAccelerator(SWT.MOD1 + 'B');
- subItem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- if (closeAddressBook()) {
- newAddressBook();
- }
- }
- });
-
- //File -> Open
- subItem = new MenuItem(menu, SWT.NONE);
- subItem.setText(resAddressBook.getString("Open_address_book"));
- subItem.setAccelerator(SWT.MOD1 + 'O');
- subItem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- if (closeAddressBook()) {
- openAddressBook();
- }
- }
- });
-
- //File -> Save.
- subItem = new MenuItem(menu, SWT.NONE);
- subItem.setText(resAddressBook.getString("Save_address_book"));
- subItem.setAccelerator(SWT.MOD1 + 'S');
- subItem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- save();
- }
- });
-
- //File -> Save As.
- subItem = new MenuItem(menu, SWT.NONE);
- subItem.setText(resAddressBook.getString("Save_book_as"));
- subItem.setAccelerator(SWT.MOD1 + 'A');
- subItem.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- saveAs();
- }
- });
-
-
- new MenuItem(menu, SWT.SEPARATOR);
-
- //File -> Exit.
- subItem = new MenuItem(menu, SWT.NONE);
- 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.PUSH);
- subItem.setText(resAddressBook.getString("Edit"));
- subItem.setAccelerator(SWT.MOD1 + '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.NONE);
- subItem.setText(resAddressBook.getString("Copy"));
- subItem.setAccelerator(SWT.MOD1 + '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.NONE);
- subItem.setText(resAddressBook.getString("Paste"));
- subItem.setAccelerator(SWT.MOD1 + '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.NONE);
- 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.NONE);
- 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.NONE);
- item.setText(resAddressBook.getString("Find"));
- item.setAccelerator(SWT.MOD1 + '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.NONE);
- 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.PUSH);
- 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.PUSH);
- 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.PUSH);
- 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.PUSH);
- 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.PUSH);
- 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.PUSH);
- 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.NONE);
- 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 3a51431b43..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/DataEntryDialog.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.addressbook;
-
-
-/* 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.NONE);
- 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.NONE);
- 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 1732505df3..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/FindListener.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.addressbook;
-
-
-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 24b66e2e85..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/SearchDialog.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.addressbook;
-
-
-/* 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/browserexample/BrowserExample.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/BrowserExample.java
deleted file mode 100644
index 824e58763f..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/BrowserExample.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.browserexample;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.browser.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-import java.io.*;
-import java.util.*;
-
-public class BrowserExample {
- static ResourceBundle resourceBundle = ResourceBundle.getBundle("examples_browser");
- int index;
- boolean busy;
- Image images[];
- Image icon = null;
- boolean title = false;
- Composite parent;
- Text locationBar;
- Browser browser;
- ToolBar toolbar;
- Canvas canvas;
- ToolItem itemBack, itemForward;
- Label status;
- ProgressBar progressBar;
- SWTError error = null;
-
- static final String[] imageLocations = {
- "eclipse01.bmp", "eclipse02.bmp", "eclipse03.bmp", "eclipse04.bmp", "eclipse05.bmp",
- "eclipse06.bmp", "eclipse07.bmp", "eclipse08.bmp", "eclipse09.bmp", "eclipse10.bmp",
- "eclipse11.bmp", "eclipse12.bmp",};
- static final String iconLocation = "document.gif";
-
- public BrowserExample(Composite parent, boolean top) {
- this.parent = parent;
- try {
- browser = new Browser(parent, SWT.BORDER);
- } catch (SWTError e) {
- error = e;
- /* Browser widget could not be instantiated */
- parent.setLayout(new FillLayout());
- Label label = new Label(parent, SWT.CENTER | SWT.WRAP);
- label.setText(getResourceString("BrowserNotCreated"));
- parent.layout(true);
- return;
- }
- initResources();
- final Display display = parent.getDisplay();
- browser.setData("org.eclipse.swt.examples.browserexample.BrowserApplication", this);
- browser.addOpenWindowListener(new OpenWindowListener() {
- public void open(WindowEvent event) {
- Shell shell = new Shell(display);
- if (icon != null) shell.setImage(icon);
- shell.setLayout(new FillLayout());
- BrowserExample app = new BrowserExample(shell, false);
- app.setShellDecoration(icon, true);
- event.browser = app.getBrowser();
- }
- });
- if (top) {
- browser.setUrl(getResourceString("Startup"));
- show(false, null, null, true, true, true, true);
- } else {
- browser.addVisibilityWindowListener(new VisibilityWindowListener() {
- public void hide(WindowEvent e) {
- }
- public void show(WindowEvent e) {
- Browser browser = (Browser)e.widget;
- BrowserExample app = (BrowserExample)browser.getData("org.eclipse.swt.examples.browserexample.BrowserApplication");
- app.show(true, e.location, e.size, e.addressBar, e.menuBar, e.statusBar, e.toolBar);
- }
- });
- browser.addCloseWindowListener(new CloseWindowListener() {
- public void close(WindowEvent event) {
- Browser browser = (Browser)event.widget;
- Shell shell = browser.getShell();
- shell.close();
- }
- });
- }
- }
-
- /**
- * Disposes of all resources associated with a particular
- * instance of the BrowserApplication.
- */
- public void dispose() {
- freeResources();
- }
-
- /**
- * 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 + "!";
- }
- }
-
- public SWTError getError() { return error; }
-
- public Browser getBrowser() { return browser; }
-
- public void setShellDecoration(Image icon, boolean title) {
- this.icon = icon;
- this.title = title;
- }
-
- void show(boolean owned, Point location, Point size, boolean addressBar, boolean menuBar, boolean statusBar, boolean toolBar) {
- final Shell shell = browser.getShell();
- if (owned) {
- if (location != null) shell.setLocation(location);
- if (size != null) shell.setSize(shell.computeSize(size.x, size.y));
- }
- FormData data = null;
- if (toolBar) {
- toolbar = new ToolBar(parent, SWT.NONE);
- data = new FormData();
- data.top = new FormAttachment(0, 5);
- toolbar.setLayoutData(data);
- itemBack = new ToolItem(toolbar, SWT.PUSH);
- itemBack.setText(getResourceString("Back"));
- itemForward = new ToolItem(toolbar, SWT.PUSH);
- itemForward.setText(getResourceString("Forward"));
- final ToolItem itemStop = new ToolItem(toolbar, SWT.PUSH);
- itemStop.setText(getResourceString("Stop"));
- final ToolItem itemRefresh = new ToolItem(toolbar, SWT.PUSH);
- itemRefresh.setText(getResourceString("Refresh"));
- final ToolItem itemGo = new ToolItem(toolbar, SWT.PUSH);
- itemGo.setText(getResourceString("Go"));
-
- itemBack.setEnabled(browser.isBackEnabled());
- itemForward.setEnabled(browser.isForwardEnabled());
- Listener listener = new Listener() {
- public void handleEvent(Event event) {
- ToolItem item = (ToolItem)event.widget;
- if (item == itemBack) browser.back();
- else if (item == itemForward) browser.forward();
- else if (item == itemStop) browser.stop();
- else if (item == itemRefresh) browser.refresh();
- else if (item == itemGo) browser.setUrl(locationBar.getText());
- }
- };
- itemBack.addListener(SWT.Selection, listener);
- itemForward.addListener(SWT.Selection, listener);
- itemStop.addListener(SWT.Selection, listener);
- itemRefresh.addListener(SWT.Selection, listener);
- itemGo.addListener(SWT.Selection, listener);
-
- canvas = new Canvas(parent, SWT.NO_BACKGROUND);
- data = new FormData();
- data.width = 24;
- data.height = 24;
- data.top = new FormAttachment(0, 5);
- data.right = new FormAttachment(100, -5);
- canvas.setLayoutData(data);
-
- final Rectangle rect = images[0].getBounds();
- canvas.addListener(SWT.Paint, new Listener() {
- public void handleEvent(Event e) {
- Point pt = ((Canvas)e.widget).getSize();
- e.gc.drawImage(images[index], 0, 0, rect.width, rect.height, 0, 0, pt.x, pt.y);
- }
- });
- canvas.addListener(SWT.MouseDown, new Listener() {
- public void handleEvent(Event e) {
- browser.setUrl(getResourceString("Startup"));
- }
- });
-
- final Display display = parent.getDisplay();
- display.asyncExec(new Runnable() {
- public void run() {
- if (canvas.isDisposed()) return;
- if (busy) {
- index++;
- if (index == images.length) index = 0;
- canvas.redraw();
- }
- display.timerExec(150, this);
- }
- });
- }
- if (addressBar) {
- locationBar = new Text(parent, SWT.BORDER);
- data = new FormData();
- if (toolbar != null) {
- data.top = new FormAttachment(toolbar, 0, SWT.TOP);
- data.left = new FormAttachment(toolbar, 5, SWT.RIGHT);
- data.right = new FormAttachment(canvas, -5, SWT.DEFAULT);
- } else {
- data.top = new FormAttachment(0, 0);
- data.left = new FormAttachment(0, 0);
- data.right = new FormAttachment(100, 0);
- }
- locationBar.setLayoutData(data);
- locationBar.addListener(SWT.DefaultSelection, new Listener() {
- public void handleEvent(Event e) {
- browser.setUrl(locationBar.getText());
- }
- });
- }
- if (statusBar) {
- status = new Label(parent, SWT.NONE);
- progressBar = new ProgressBar(parent, SWT.NONE);
-
- data = new FormData();
- data.left = new FormAttachment(0, 5);
- data.right = new FormAttachment(progressBar, 0, SWT.DEFAULT);
- data.bottom = new FormAttachment(100, -5);
- status.setLayoutData(data);
-
- data = new FormData();
- data.right = new FormAttachment(100, -5);
- data.bottom = new FormAttachment(100, -5);
- progressBar.setLayoutData(data);
-
- browser.addStatusTextListener(new StatusTextListener() {
- public void changed(StatusTextEvent event) {
- status.setText(event.text);
- }
- });
- }
- parent.setLayout(new FormLayout());
-
- Control aboveBrowser = toolBar ? (Control)canvas : (addressBar ? (Control)locationBar : null);
- data = new FormData();
- data.left = new FormAttachment(0, 0);
- data.top = aboveBrowser != null ? new FormAttachment(aboveBrowser, 5, SWT.DEFAULT) : new FormAttachment(0, 0);
- data.right = new FormAttachment(100, 0);
- data.bottom = status != null ? new FormAttachment(status, -5, SWT.DEFAULT) : new FormAttachment(100, 0);
- browser.setLayoutData(data);
-
- if (statusBar || toolBar) {
- browser.addProgressListener(new ProgressListener() {
- public void changed(ProgressEvent event) {
- if (event.total == 0) return;
- int ratio = event.current * 100 / event.total;
- if (progressBar != null) progressBar.setSelection(ratio);
- busy = event.current != event.total;
- if (!busy) {
- index = 0;
- if (canvas != null) canvas.redraw();
- }
- }
- public void completed(ProgressEvent event) {
- if (progressBar != null) progressBar.setSelection(0);
- busy = false;
- index = 0;
- if (canvas != null) {
- itemBack.setEnabled(browser.isBackEnabled());
- itemForward.setEnabled(browser.isForwardEnabled());
- canvas.redraw();
- }
- }
- });
- }
- if (addressBar || statusBar || toolBar) {
- browser.addLocationListener(new LocationListener() {
- public void changed(LocationEvent event) {
- busy = true;
- if (event.top && locationBar != null) locationBar.setText(event.location);
- }
- public void changing(LocationEvent event) {
- }
- });
- }
- if (title) {
- browser.addTitleListener(new TitleListener() {
- public void changed(TitleEvent event) {
- shell.setText(event.title+" - "+getResourceString("window.title"));
- }
- });
- }
- parent.layout(true);
- if (owned) shell.open();
- }
-
- /**
- * Grabs input focus
- */
- public void focus() {
- if (locationBar != null) locationBar.setFocus();
- else if (browser != null) browser.setFocus();
- else parent.setFocus();
- }
-
- /**
- * Frees the resources
- */
- 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;
- }
- }
-
- /**
- * Loads the resources
- */
- void initResources() {
- final Class clazz = this.getClass();
- if (resourceBundle != null) {
- try {
- if (images == null) {
- images = new Image[imageLocations.length];
- for (int i = 0; i < imageLocations.length; ++i) {
- InputStream sourceStream = clazz.getResourceAsStream(imageLocations[i]);
- ImageData source = new ImageData(sourceStream);
- ImageData mask = source.getTransparencyMask();
- images[i] = new Image(null, source, mask);
- try {
- sourceStream.close();
- } catch (IOException e) {
- e.printStackTrace ();
- }
- }
- }
- return;
- } catch (Throwable t) {
- }
- }
- String error = (resourceBundle != null) ? getResourceString("error.CouldNotLoadResources") : "Unable to load resources";
- freeResources();
- throw new RuntimeException(error);
- }
-
- public static void main(String [] args) {
- Display display = new Display();
- Shell shell = new Shell(display);
- shell.setLayout(new FillLayout());
- shell.setText(getResourceString("window.title"));
- InputStream stream = BrowserExample.class.getResourceAsStream(iconLocation);
- Image icon = new Image(display, stream);
- shell.setImage(icon);
- try {
- stream.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- BrowserExample app = new BrowserExample(shell, true);
- app.setShellDecoration(icon, true);
- shell.open();
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
- icon.dispose();
- app.dispose();
- display.dispose();
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/document.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/document.gif
deleted file mode 100644
index 895e22110d..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/document.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse01.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse01.bmp
deleted file mode 100644
index 43116e6d8e..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse01.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse02.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse02.bmp
deleted file mode 100644
index 8db04efb6b..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse02.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse03.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse03.bmp
deleted file mode 100644
index 5fc7b1003c..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse03.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse04.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse04.bmp
deleted file mode 100644
index 2140654bb2..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse04.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse05.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse05.bmp
deleted file mode 100644
index 7e45a99b5b..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse05.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse06.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse06.bmp
deleted file mode 100644
index aaa888a67f..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse06.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse07.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse07.bmp
deleted file mode 100644
index 50e22225ba..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse07.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse08.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse08.bmp
deleted file mode 100644
index b1ac29dc96..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse08.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse09.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse09.bmp
deleted file mode 100644
index 561f830ffc..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse09.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse10.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse10.bmp
deleted file mode 100644
index 6ae79b2df8..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse10.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse11.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse11.bmp
deleted file mode 100644
index a0c24a6815..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse11.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse12.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse12.bmp
deleted file mode 100644
index 1cae71cf7e..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/browserexample/eclipse12.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/ClipboardExample.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/ClipboardExample.java
deleted file mode 100644
index c2097c4b1c..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/ClipboardExample.java
+++ /dev/null
@@ -1,611 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.clipboard;
-
-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.widgets.*;
-
-public class ClipboardExample {
-
- Clipboard clipboard;
- Shell shell;
- Text text;
- Combo combo;
- StyledText styledText;
- Label status;
- static final int SIZE = 60;
-
-public static void main( String[] args) {
- Display display = new Display();
- new ClipboardExample().open(display);
- display.dispose();
-}
-public void open(Display display) {
- clipboard = new Clipboard(display);
- shell = new Shell (display);
- shell.setText("SWT Clipboard");
- shell.setLayout(new FillLayout());
-
- ScrolledComposite sc = new ScrolledComposite(shell, SWT.H_SCROLL | SWT.V_SCROLL);
- Composite parent = new Composite(sc, SWT.NONE);
- sc.setContent(parent);
- parent.setLayout(new GridLayout(2, true));
-
- Group copyGroup = new Group(parent, SWT.NONE);
- copyGroup.setText("Copy From:");
- GridData data = new GridData(GridData.FILL_BOTH);
- copyGroup.setLayoutData(data);
- copyGroup.setLayout(new GridLayout(3, false));
-
- Group pasteGroup = new Group(parent, SWT.NONE);
- pasteGroup.setText("Paste To:");
- data = new GridData(GridData.FILL_BOTH);
- pasteGroup.setLayoutData(data);
- pasteGroup.setLayout(new GridLayout(3, false));
-
- Group controlGroup = new Group(parent, SWT.NONE);
- controlGroup.setText("Control API:");
- data = new GridData(GridData.FILL_BOTH);
- data.horizontalSpan = 2;
- controlGroup.setLayoutData(data);
- controlGroup.setLayout(new GridLayout(5, false));
-
- Group typesGroup = new Group(parent, SWT.NONE);
- typesGroup.setText("Available Types");
- data = new GridData(GridData.FILL_BOTH);
- data.horizontalSpan = 2;
- typesGroup.setLayoutData(data);
- typesGroup.setLayout(new GridLayout(2, false));
-
- status = new Label(parent, SWT.BORDER);
- data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
- data.heightHint = 60;
- status.setLayoutData(data);
-
- createTextTransfer(copyGroup, pasteGroup);
- createRTFTransfer(copyGroup, pasteGroup);
- createHTMLTransfer(copyGroup, pasteGroup);
- createFileTransfer(copyGroup, pasteGroup);
- createImageTransfer(copyGroup, pasteGroup);
- createMyTransfer(copyGroup, pasteGroup);
- createControlTransfer(controlGroup);
- createAvailableTypes(typesGroup);
-
- sc.setMinSize(parent.computeSize(SWT.DEFAULT, SWT.DEFAULT));
- sc.setExpandHorizontal(true);
- sc.setExpandVertical(true);
-
- Point size = shell.computeSize(SWT.DEFAULT, SWT.DEFAULT);
- Rectangle monitorArea = shell.getMonitor().getClientArea();
- shell.setSize(Math.min(size.x, monitorArea.width - 20), Math.min(size.y, monitorArea.height - 20));
- shell.open();
- while (!shell.isDisposed ()) {
- if (!display.readAndDispatch ()) display.sleep ();
- }
- clipboard.dispose();
-}
-void createTextTransfer(Composite copyParent, Composite pasteParent) {
-
- // TextTransfer
- Label l = new Label(copyParent, SWT.NONE);
- l.setText("TextTransfer:"); //$NON-NLS-1$
- final Text copyText = new Text(copyParent, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
- copyText.setText("some\nplain\ntext");
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.heightHint = data.widthHint = SIZE;
- copyText.setLayoutData(data);
- Button b = new Button(copyParent, SWT.PUSH);
- b.setText("Copy");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- String data = copyText.getText();
- if (data.length() > 0) {
- status.setText("");
- clipboard.setContents(new Object[] {data}, new Transfer[] {TextTransfer.getInstance()});
- } else {
- status.setText("nothing to copy");
- }
- }
- });
-
- l = new Label(pasteParent, SWT.NONE);
- l.setText("TextTransfer:"); //$NON-NLS-1$
- final Text pasteText = new Text(pasteParent, SWT.READ_ONLY | SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
- data = new GridData(GridData.FILL_HORIZONTAL);
- data.heightHint = data.widthHint = SIZE;
- pasteText.setLayoutData(data);
- b = new Button(pasteParent, SWT.PUSH);
- b.setText("Paste");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- String data = (String)clipboard.getContents(TextTransfer.getInstance());
- if (data != null && data.length() > 0) {
- status.setText("");
- pasteText.setText("begin paste>"+data+"<end paste");
- } else {
- status.setText("nothing to paste");
- }
- }
- });
-}
-void createRTFTransfer(Composite copyParent, Composite pasteParent){
- // RTF Transfer
- Label l = new Label(copyParent, SWT.NONE);
- l.setText("RTFTransfer:"); //$NON-NLS-1$
- final Text copyRtfText = new Text(copyParent, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
- copyRtfText.setText("some\nrtf\ntext");
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.heightHint = data.widthHint = SIZE;
- copyRtfText.setLayoutData(data);
- Button b = new Button(copyParent, SWT.PUSH);
- b.setText("Copy");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- String data = copyRtfText.getText();
- if (data.length() > 0) {
- status.setText("");
- data = "{\\rtf1{\\colortbl;\\red255\\green0\\blue0;}\\uc1\\b\\i " + data + "}";
- clipboard.setContents(new Object[] {data}, new Transfer[] {RTFTransfer.getInstance()});
- } else {
- status.setText("nothing to copy");
- }
- }
- });
-
- l = new Label(pasteParent, SWT.NONE);
- l.setText("RTFTransfer:"); //$NON-NLS-1$
- final Text pasteRtfText = new Text(pasteParent, SWT.READ_ONLY | SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
- data = new GridData(GridData.FILL_HORIZONTAL);
- data.heightHint = data.widthHint = SIZE;
- pasteRtfText.setLayoutData(data);
- b = new Button(pasteParent, SWT.PUSH);
- b.setText("Paste");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- String data = (String)clipboard.getContents(RTFTransfer.getInstance());
- if (data != null && data.length() > 0) {
- status.setText("");
- pasteRtfText.setText("start paste>"+data+"<end paste");
- } else {
- status.setText("nothing to paste");
- }
- }
- });
-}
-void createHTMLTransfer(Composite copyParent, Composite pasteParent){
- // HTML Transfer
- Label l = new Label(copyParent, SWT.NONE);
- l.setText("HTMLTransfer:"); //$NON-NLS-1$
- final Text copyHtmlText = new Text(copyParent, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
- copyHtmlText.setText("<b>Hello World</b>");
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.heightHint = data.widthHint = SIZE;
- copyHtmlText.setLayoutData(data);
- Button b = new Button(copyParent, SWT.PUSH);
- b.setText("Copy");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- String data = copyHtmlText.getText();
- if (data.length() > 0) {
- status.setText("");
- clipboard.setContents(new Object[] {data}, new Transfer[] {HTMLTransfer.getInstance()});
- } else {
- status.setText("nothing to copy");
- }
- }
- });
-
- l = new Label(pasteParent, SWT.NONE);
- l.setText("HTMLTransfer:"); //$NON-NLS-1$
- final Text pasteHtmlText = new Text(pasteParent, SWT.READ_ONLY | SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
- data = new GridData(GridData.FILL_HORIZONTAL);
- data.heightHint = data.widthHint = SIZE;
- pasteHtmlText.setLayoutData(data);
- b = new Button(pasteParent, SWT.PUSH);
- b.setText("Paste");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- String data = (String)clipboard.getContents(HTMLTransfer.getInstance());
- if (data != null && data.length() > 0) {
- status.setText("");
- pasteHtmlText.setText("start paste>"+data+"<end paste");
- } else {
- status.setText("nothing to paste");
- }
- }
- });
-}
-void createFileTransfer(Composite copyParent, Composite pasteParent){
- //File Transfer
- Label l = new Label(copyParent, SWT.NONE);
- l.setText("FileTransfer:"); //$NON-NLS-1$
-
- Composite c = new Composite(copyParent, SWT.NONE);
- c.setLayout(new GridLayout(2, false));
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- c.setLayoutData(data);
-
- final Table copyFileTable = new Table(c, SWT.MULTI | SWT.BORDER);
- data = new GridData(GridData.FILL_HORIZONTAL);
- data.heightHint = data.widthHint = SIZE;
- data.horizontalSpan = 2;
- copyFileTable.setLayoutData(data);
-
- Button b = new Button(c, SWT.PUSH);
- b.setText("Select file(s)");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- FileDialog dialog = new FileDialog(shell, SWT.OPEN | SWT.MULTI);
- String result = dialog.open();
- if (result != null && result.length() > 0){
- String separator = System.getProperty("file.separator");
- String path = dialog.getFilterPath();
- String[] names = dialog.getFileNames();
- for (int i = 0; i < names.length; i++) {
- TableItem item = new TableItem(copyFileTable, SWT.NONE);
- item.setText(path+separator+names[i]);
- }
- }
- }
- });
- b = new Button(c, SWT.PUSH);
- b.setText("Select directory");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- DirectoryDialog dialog = new DirectoryDialog(shell, SWT.OPEN);
- String result = dialog.open();
- if (result != null && result.length() > 0){
- //copyFileTable.removeAll();
- TableItem item = new TableItem(copyFileTable, SWT.NONE);
- item.setText(result);
- }
- }
- });
-
- b = new Button(copyParent, SWT.PUSH);
- b.setText("Copy");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- TableItem[] items = copyFileTable.getItems();
- if (items.length > 0){
- status.setText("");
- String[] data = new String[items.length];
- for (int i = 0; i < data.length; i++) {
- data[i] = items[i].getText();
- }
- clipboard.setContents(new Object[] {data}, new Transfer[] {FileTransfer.getInstance()});
- } else {
- status.setText("nothing to copy");
- }
- }
- });
-
- l = new Label(pasteParent, SWT.NONE);
- l.setText("FileTransfer:"); //$NON-NLS-1$
- final Table pasteFileTable = new Table(pasteParent, SWT.MULTI | SWT.BORDER);
- data = new GridData(GridData.FILL_HORIZONTAL);
- data.heightHint = data.widthHint = SIZE;
- pasteFileTable.setLayoutData(data);
- b = new Button(pasteParent, SWT.PUSH);
- b.setText("Paste");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- String[] data = (String[])clipboard.getContents(FileTransfer.getInstance());
- if (data != null && data.length > 0) {
- status.setText("");
- pasteFileTable.removeAll();
- for (int i = 0; i < data.length; i++) {
- TableItem item = new TableItem(pasteFileTable, SWT.NONE);
- item.setText(data[i]);
- }
- } else {
- status.setText("nothing to paste");
- }
- }
- });
-}
-
-void createImageTransfer(Composite copyParent, Composite pasteParent){
- final Image[] copyImage = new Image[] {null};
- Label l = new Label(copyParent, SWT.NONE);
- l.setText("ImageTransfer:"); //$NON-NLS-1$
-
- Composite c = new Composite(copyParent, SWT.NONE);
- c.setLayout(new GridLayout(1, false));
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- c.setLayoutData(data);
-
- final Canvas copyImageCanvas = new Canvas(c, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
- data = new GridData(GridData.FILL_HORIZONTAL);
- data.heightHint = data.widthHint = SIZE;
- copyImageCanvas.setLayoutData(data);
-
- final Point copyOrigin = new Point(0, 0);
- final ScrollBar copyHBar = copyImageCanvas.getHorizontalBar();
- copyHBar.setEnabled(false);
- copyHBar.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event e) {
- if (copyImage[0] != null) {
- int hSelection = copyHBar.getSelection();
- int destX = -hSelection - copyOrigin.x;
- Rectangle rect = copyImage[0].getBounds();
- copyImageCanvas.scroll(destX, 0, 0, 0, rect.width, rect.height, false);
- copyOrigin.x = -hSelection;
- }
- }
- });
- final ScrollBar copyVBar = copyImageCanvas.getVerticalBar();
- copyVBar.setEnabled(false);
- copyVBar.addListener(SWT.Selection, new Listener() {
- public void handleEvent (Event e) {
- if (copyImage[0] != null) {
- int vSelection = copyVBar.getSelection();
- int destY = -vSelection - copyOrigin.y;
- Rectangle rect = copyImage[0].getBounds();
- copyImageCanvas.scroll(0, destY, 0, 0, rect.width, rect.height, false);
- copyOrigin.y = -vSelection;
- }
- }
- });
- copyImageCanvas.addListener(SWT.Paint, new Listener() {
- public void handleEvent(Event e) {
- if(copyImage[0] != null) {
- GC gc = e.gc;
- gc.drawImage(copyImage[0], copyOrigin.x, copyOrigin.y);
- Rectangle rect = copyImage[0].getBounds();
- Rectangle client = copyImageCanvas.getClientArea ();
- int marginWidth = client.width - rect.width;
- if (marginWidth > 0) {
- gc.fillRectangle (rect.width, 0, marginWidth, client.height);
- }
- int marginHeight = client.height - rect.height;
- if (marginHeight > 0) {
- gc.fillRectangle(0, rect.height, client.width, marginHeight);
- }
- gc.dispose();
- }
- }
- });
- Button openButton = new Button(c, SWT.PUSH);
- openButton.setText("Open Image");
- data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalAlignment = SWT.CENTER;
- openButton.setLayoutData(data);
- openButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- FileDialog dialog = new FileDialog (shell, SWT.OPEN);
- dialog.setText("Open an image file or cancel");
- String string = dialog.open ();
- if (string != null) {
- if (copyImage[0] != null) {
- System.out.println("CopyImage");
- copyImage[0].dispose();
- }
- copyImage[0] = new Image(e.display, string);
- copyVBar.setEnabled(true);
- copyHBar.setEnabled(true);
- copyOrigin.x = 0; copyOrigin.y = 0;
- Rectangle rect = copyImage[0].getBounds();
- Rectangle client = copyImageCanvas.getClientArea();
- copyHBar.setMaximum(rect.width);
- copyVBar.setMaximum(rect.height);
- copyHBar.setThumb(Math.min(rect.width, client.width));
- copyVBar.setThumb(Math.min(rect.height, client.height));
- copyImageCanvas.scroll(0, 0, 0, 0, rect.width, rect.height, true);
- copyVBar.setSelection(0);
- copyHBar.setSelection(0);
- copyImageCanvas.redraw();
- }
- }
- });
- Button b = new Button(copyParent, SWT.PUSH);
- b.setText("Copy");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- if (copyImage[0] != null) {
- status.setText("");
- clipboard.setContents(new Object[] {copyImage[0].getImageData()}, new Transfer[] {ImageTransfer.getInstance()});
- } else {
- status.setText("nothing to copy");
- }
- }
- });
-
- final Image[] pasteImage = new Image[] {null};
- l = new Label(pasteParent, SWT.NONE);
- l.setText("ImageTransfer:");
- final Canvas pasteImageCanvas = new Canvas(pasteParent, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
- data = new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL);
- data.heightHint = data.widthHint = SIZE;
- pasteImageCanvas.setLayoutData(data);
- final Point pasteOrigin = new Point(0, 0);
- final ScrollBar pasteHBar = pasteImageCanvas.getHorizontalBar();
- pasteHBar.setEnabled(false);
- pasteHBar.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event e) {
- if (pasteImage[0] != null) {
- int hSelection = pasteHBar.getSelection();
- int destX = -hSelection - pasteOrigin.x;
- Rectangle rect = pasteImage[0].getBounds();
- pasteImageCanvas.scroll(destX, 0, 0, 0, rect.width, rect.height, false);
- pasteOrigin.x = -hSelection;
- }
- }
- });
- final ScrollBar pasteVBar = pasteImageCanvas.getVerticalBar();
- pasteVBar.setEnabled(false);
- pasteVBar.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event e) {
- if (pasteImage[0] != null) {
- int vSelection = pasteVBar.getSelection();
- int destY = -vSelection - pasteOrigin.y;
- Rectangle rect = pasteImage[0].getBounds();
- pasteImageCanvas.scroll(0, destY, 0, 0, rect.width, rect.height, false);
- pasteOrigin.y = -vSelection;
- }
- }
- });
- pasteImageCanvas.addListener(SWT.Paint, new Listener() {
- public void handleEvent(Event e) {
- if(pasteImage[0] != null) {
- GC gc = e.gc;
- gc.drawImage(pasteImage[0], pasteOrigin.x, pasteOrigin.y);
- Rectangle rect = pasteImage[0].getBounds();
- Rectangle client = pasteImageCanvas.getClientArea ();
- int marginWidth = client.width - rect.width;
- if (marginWidth > 0) {
- gc.fillRectangle(rect.width, 0, marginWidth, client.height);
- }
- int marginHeight = client.height - rect.height;
- if (marginHeight > 0) {
- gc.fillRectangle(0, rect.height, client.width, marginHeight);
- }
- gc.dispose();
- }
- }
- });
- b = new Button(pasteParent, SWT.PUSH);
- b.setText("Paste");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- ImageData data =(ImageData)clipboard.getContents(ImageTransfer.getInstance());
- if (data != null) {
- if (pasteImage[0] != null) {
- System.out.println("PasteImage");
- pasteImage[0].dispose();
- }
- status.setText("");
- pasteImage[0] = new Image(e.display, data);
- pasteVBar.setEnabled(true);
- pasteHBar.setEnabled(true);
- pasteOrigin.x = 0; pasteOrigin.y = 0;
- Rectangle rect = pasteImage[0].getBounds();
- Rectangle client = pasteImageCanvas.getClientArea();
- pasteHBar.setMaximum(rect.width);
- pasteVBar.setMaximum(rect.height);
- pasteHBar.setThumb(Math.min(rect.width, client.width));
- pasteVBar.setThumb(Math.min(rect.height, client.height));
- pasteImageCanvas.scroll(0, 0, 0, 0, rect.width, rect.height, true);
- pasteVBar.setSelection(0);
- pasteHBar.setSelection(0);
- pasteImageCanvas.redraw();
- } else {
- status.setText("nothing to paste");
- }
- }
- });
-}
-void createMyTransfer(Composite copyParent, Composite pasteParent){
- // MyType Transfer
- // TODO
-}
-void createControlTransfer(Composite parent){
- Label l = new Label(parent, SWT.NONE);
- l.setText("Text:");
- Button b = new Button(parent, SWT.PUSH);
- b.setText("Cut");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- text.cut();
- }
- });
- b = new Button(parent, SWT.PUSH);
- b.setText("Copy");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- text.copy();
- }
- });
- b = new Button(parent, SWT.PUSH);
- b.setText("Paste");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- text.paste();
- }
- });
- text = new Text(parent, SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.heightHint = data.widthHint = SIZE;
- text.setLayoutData(data);
-
- l = new Label(parent, SWT.NONE);
- l.setText("Combo:");
- b = new Button(parent, SWT.PUSH);
- b.setText("Cut");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- combo.cut();
- }
- });
- b = new Button(parent, SWT.PUSH);
- b.setText("Copy");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- combo.copy();
- }
- });
- b = new Button(parent, SWT.PUSH);
- b.setText("Paste");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- combo.paste();
- }
- });
- combo = new Combo(parent, SWT.NONE);
- combo.setItems(new String[] {"Item 1", "Item 2", "Item 3", "A longer Item"});
-
- l = new Label(parent, SWT.NONE);
- l.setText("StyledText:");
- l = new Label(parent, SWT.NONE);
- l.setVisible(false);
- b = new Button(parent, SWT.PUSH);
- b.setText("Copy");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- styledText.copy();
- }
- });
- b = new Button(parent, SWT.PUSH);
- b.setText("Paste");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- styledText.paste();
- }
- });
- styledText = new StyledText(parent, SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
- data = new GridData(GridData.FILL_HORIZONTAL);
- data.heightHint = data.widthHint = SIZE;
- styledText.setLayoutData(data);
-}
-void createAvailableTypes(Composite parent){
- final List list = new List(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
- GridData data = new GridData(GridData.FILL_BOTH);
- data.heightHint = 100;
- list.setLayoutData(data);
- Button b = new Button(parent, SWT.PUSH);
- b.setText("Get Available Types");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- list.removeAll();
- String[] names = clipboard.getAvailableTypeNames();
- for (int i = 0; i < names.length; i++) {
- list.add(names[i]);
- }
- }
- });
-}
-} \ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyType.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyType.java
deleted file mode 100644
index 94cdfcd786..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyType.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.clipboard;
-
-public class MyType {
- String firstName;
- String lastName;
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyTypeTransfer.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyTypeTransfer.java
deleted file mode 100644
index 4d09e3f901..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/MyTypeTransfer.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.clipboard;
-
-import java.io.*;
-import org.eclipse.swt.dnd.*;
-
-public class MyTypeTransfer extends ByteArrayTransfer {
-
- private static final String MYTYPENAME = "name_list"; //$NON-NLS-1$
- private static final int MYTYPEID = registerType(MYTYPENAME);
- private static MyTypeTransfer _instance = new MyTypeTransfer();
-
-public static MyTypeTransfer getInstance () {
- return _instance;
-}
-public void javaToNative (Object object, TransferData transferData) {
- if (!checkMyType(object) || !isSupportedType(transferData)) {
- DND.error(DND.ERROR_INVALID_DATA);
- }
- MyType[] myTypes = (MyType[]) object;
- try {
- // write data to a byte array and then ask super to convert to pMedium
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- DataOutputStream writeOut = new DataOutputStream(out);
- for (int i = 0, length = myTypes.length; i < length; i++){
- byte[] buffer = myTypes[i].firstName.getBytes();
- writeOut.writeInt(buffer.length);
- writeOut.write(buffer);
- buffer = myTypes[i].firstName.getBytes();
- writeOut.writeInt(buffer.length);
- writeOut.write(buffer);
- }
- byte[] buffer = out.toByteArray();
- writeOut.close();
- super.javaToNative(buffer, transferData);
- } catch (IOException e) {
- }
-}
-public Object nativeToJava(TransferData transferData){
- if (isSupportedType(transferData)) {
-
- byte[] buffer = (byte[])super.nativeToJava(transferData);
- if (buffer == null) return null;
-
- MyType[] myData = new MyType[0];
- try {
- ByteArrayInputStream in = new ByteArrayInputStream(buffer);
- DataInputStream readIn = new DataInputStream(in);
- while(readIn.available() > 20) {
- MyType datum = new MyType();
- int size = readIn.readInt();
- byte[] name = new byte[size];
- readIn.read(name);
- datum.firstName = new String(name);
- size = readIn.readInt();
- name = new byte[size];
- readIn.read(name);
- datum.lastName = new String(name);
- MyType[] newMyData = new MyType[myData.length + 1];
- System.arraycopy(myData, 0, newMyData, 0, myData.length);
- newMyData[myData.length] = datum;
- myData = newMyData;
- }
- readIn.close();
- } catch (IOException ex) {
- return null;
- }
- return myData;
- }
-
- return null;
-}
-protected String[] getTypeNames(){
- return new String[]{MYTYPENAME};
-}
-protected int[] getTypeIds(){
- return new int[] {MYTYPEID};
-}
-boolean checkMyType(Object object) {
- if (object == null || !(object instanceof MyType[]) || ((MyType[])object).length == 0) return false;
- MyType[] myTypes = (MyType[])object;
- for (int i = 0; i < myTypes.length; i++) {
- if (myTypes[i] == null ||
- myTypes[i].firstName == null ||
- myTypes[i].firstName.length() == 0 ||
- myTypes[i].lastName == null ||
- myTypes[i].lastName.length() == 0) return false;
- }
- return true;
-}
-protected boolean validate(Object object) {
- return checkMyType(object);
-}
-}
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 075ee21e96..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/AlignableTab.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-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 {
-
- /* Alignment Controls */
- Button leftButton, rightButton, centerButton;
-
- /* Alignment Group */
- Group alignmentGroup;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- AlignableTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Other" group.
- */
- void createOtherGroup () {
- super.createOtherGroup ();
-
- /* Create the group */
- alignmentGroup = new Group (otherGroup, SWT.NONE);
- alignmentGroup.setLayout (new GridLayout ());
- alignmentGroup.setLayoutData (new GridData(GridData.HORIZONTAL_ALIGN_FILL |
- GridData.VERTICAL_ALIGN_FILL));
- alignmentGroup.setText (ControlExample.getResourceString("Alignment"));
-
- /* Create the controls */
- leftButton = new Button (alignmentGroup, SWT.RADIO);
- leftButton.setText (ControlExample.getResourceString("Left"));
- centerButton = new Button (alignmentGroup, SWT.RADIO);
- centerButton.setText(ControlExample.getResourceString("Center"));
- rightButton = new Button (alignmentGroup, 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 ();
- Widget [] widgets = getExampleWidgets ();
- if (widgets.length != 0) {
- leftButton.setSelection ((widgets [0].getStyle () & SWT.LEFT) != 0);
- centerButton.setSelection ((widgets [0].getStyle () & SWT.CENTER) != 0);
- rightButton.setSelection ((widgets [0].getStyle () & SWT.RIGHT) != 0);
- }
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/BrowserTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/BrowserTab.java
deleted file mode 100644
index 529f266bb7..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/BrowserTab.java
+++ /dev/null
@@ -1,332 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.browser.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-class BrowserTab extends Tab {
-
- /* Example widgets and groups that contain them */
- Browser browser;
- Group browserGroup;
-
- /* Style widgets added to the "Style" group */
- Button mozillaButton;
-
- String errorMessage, lastText, lastUrl;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- BrowserTab(ControlExample instance) {
- super(instance);
- }
-
- void createBackgroundModeGroup () {
- // Browser does not need a background mode group.
- }
-
- void createColorAndFontGroup () {
- // Browser does not need a color and font group.
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the browser */
- browserGroup = new Group (exampleGroup, SWT.NONE);
- browserGroup.setLayout (new GridLayout ());
- browserGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- browserGroup.setText ("Browser");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- if (borderButton.getSelection ()) style |= SWT.BORDER;
- if (mozillaButton.getSelection ()) style |= SWT.MOZILLA;
-
- /* Create the example widgets */
- try {
- browser = new Browser (browserGroup, style);
- } catch (SWTError e) { //XPCOM error
- try {
- browser = new Browser (browserGroup, style &~ SWT.MOZILLA);
- } catch (SWTError e2) { // Unsupported platform
- errorMessage = e.getMessage();
- return;
- }
- MessageBox dialog = new MessageBox(shell, SWT.ICON_WARNING | SWT.OK);
- dialog.setMessage(ControlExample.getResourceString("MozillaNotFound", new String [] {e.getMessage()}));
- dialog.open();
- }
-
- if (lastUrl != null) {
- browser.setUrl(lastUrl);
- } else if (lastText != null) {
- browser.setText(lastText);
- } else {
- InputStream htmlStream= ControlExample.class.getResourceAsStream("browser-content.html");
- BufferedReader br= new BufferedReader(new InputStreamReader(htmlStream));
- StringBuffer sb= new StringBuffer(300);
- try {
- int read= 0;
- while ((read= br.read()) != -1)
- sb.append((char) read);
- } catch (IOException e) {
- log(e.getMessage());
- } finally {
- try {
- br.close();
- } catch (IOException e) {
- log(e.getMessage());
- }
- }
- String text= sb.toString();
- browser.setText(text);
- }
- lastText = lastUrl = null;
- }
-
- /**
- * Creates the "Other" group. This is typically
- * a child of the "Control" group.
- */
- void createOtherGroup () {
- super.createOtherGroup ();
- backgroundImageButton.dispose ();
- }
-
- /**
- * Creates the "Size" group. The "Size" group contains
- * controls that allow the user to change the size of
- * the example widgets.
- */
- void createSizeGroup () {
- super.createSizeGroup ();
-
- /* Set the default state for Browser to fill horizontally & vertically. */
- fillHButton.setSelection (true);
- fillVButton.setSelection (true);
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup () {
- super.createStyleGroup ();
-
- /* Create the extra widgets */
- mozillaButton = new Button (styleGroup, SWT.CHECK);
- mozillaButton.setText ("SWT.MOZILLA");
- borderButton = new Button (styleGroup, SWT.CHECK);
- borderButton.setText ("SWT.BORDER");
- }
-
- /**
- * Creates the tab folder page.
- *
- * @param tabFolder org.eclipse.swt.widgets.TabFolder
- * @return the new page for the tab folder
- */
- Composite createTabFolderPage (final TabFolder tabFolder) {
- super.createTabFolderPage (tabFolder);
-
- /*
- * Add a resize listener to the tabFolderPage so that
- * if the user types into the example widget to change
- * its preferred size, and then resizes the shell, we
- * recalculate the preferred size correctly.
- */
- tabFolderPage.addControlListener(new ControlAdapter() {
- public void controlResized(ControlEvent e) {
- setExampleWidgetSize ();
- }
- });
-
- /*
- * Add a selection listener to the tabFolder to bring up a
- * dialog if this platform does not support the Browser.
- */
- tabFolder.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- if (errorMessage != null && tabFolder.getSelection()[0].getText().equals(getTabText())) {
- MessageBox dialog = new MessageBox(shell, SWT.ICON_WARNING | SWT.OK);
- dialog.setMessage(ControlExample.getResourceString("BrowserNotFound", new String [] {errorMessage}));
- dialog.open();
- }
- }
- });
-
- return tabFolderPage;
- }
-
- /**
- * Disposes the "Example" widgets.
- */
- void disposeExampleWidgets () {
- /* store the state of the Browser if applicable */
- if (browser != null) {
- String url = browser.getUrl();
- if (url.length() > 0 && !url.equals("about:blank")) { //$NON-NLS-1$
- lastUrl = url;
- } else {
- String text = browser.getText();
- if (text.length() > 0) {
- lastText = text;
- }
- }
- }
- super.disposeExampleWidgets();
- }
-
- public static String getContents(InputStream in) throws IOException {
- BufferedReader br= new BufferedReader(new InputStreamReader(in));
-
- StringBuffer sb= new StringBuffer(300);
- try {
- int read= 0;
- while ((read= br.read()) != -1)
- sb.append((char) read);
- } finally {
- br.close();
- }
- return sb.toString();
- }
-
- /**
- * Gets the list of custom event names.
- *
- * @return an array containing custom event names
- */
- String [] getCustomEventNames () {
- return new String [] {"CloseWindowListener", "LocationListener", "OpenWindowListener",
- "ProgressListener", "StatusTextListener", "TitleListener", "VisibilityWindowListener"};
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- if (browser != null) return new Widget [] {browser};
- return super.getExampleWidgets();
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"Text", "Url", "ToolTipText"};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Browser";
- }
-
- /**
- * Hooks the custom listener specified by eventName.
- */
- void hookCustomListener (final String eventName) {
- if (browser == null) return;
- if (eventName == "CloseWindowListener") {
- browser.addCloseWindowListener (new CloseWindowListener () {
- public void close(WindowEvent event) {
- log (eventName, event);
- }
- });
- }
- if (eventName == "LocationListener") {
- browser.addLocationListener (new LocationListener () {
- public void changed(LocationEvent event) {
- log (eventName + ".changed", event);
- }
- public void changing(LocationEvent event) {
- log (eventName + ".changing", event);
- }
- });
- }
- if (eventName == "OpenWindowListener") {
- browser.addOpenWindowListener (new OpenWindowListener () {
- public void open(WindowEvent event) {
- log (eventName, event);
- }
- });
- }
- if (eventName == "ProgressListener") {
- browser.addProgressListener (new ProgressListener () {
- public void changed(ProgressEvent event) {
- log (eventName + ".changed", event);
- }
- public void completed(ProgressEvent event) {
- log (eventName + ".completed", event);
- }
- });
- }
- if (eventName == "StatusTextListener") {
- browser.addStatusTextListener (new StatusTextListener () {
- public void changed(StatusTextEvent event) {
- log (eventName, event);
- }
- });
- }
- if (eventName == "TitleListener") {
- browser.addTitleListener (new TitleListener () {
- public void changed(TitleEvent event) {
- log (eventName, event);
- }
- });
- }
- if (eventName == "VisibilityWindowListener") {
- browser.addVisibilityWindowListener (new VisibilityWindowListener () {
- public void hide(WindowEvent event) {
- log (eventName + ".hide", event);
- }
- public void show(WindowEvent event) {
- log (eventName + ".show", event);
- }
- });
- }
- }
-
- boolean rtlSupport() {
- return false;
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- mozillaButton.setSelection (browser == null ? false : (browser.getStyle () & SWT.MOZILLA) != 0);
- borderButton.setSelection (browser == null ? false : (browser.getStyle () & SWT.BORDER) != 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 2c11f82e31..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ButtonTab.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-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, button7, button8, button9;
- Group textButtonGroup, imageButtonGroup, imagetextButtonGroup;
-
- /* Alignment 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 (alignmentGroup, SWT.RADIO);
- upButton.setText (ControlExample.getResourceString("Up"));
- downButton = new Button (alignmentGroup, 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 (SWT.FILL, SWT.FILL, true, true));
- 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 (SWT.FILL, SWT.FILL, true, true));
- imageButtonGroup.setText (ControlExample.getResourceString("Image_Buttons"));
-
- /* Create a group for the image and text buttons */
- imagetextButtonGroup = new Group(exampleGroup, SWT.NONE);
- gridLayout = new GridLayout();
- imagetextButtonGroup.setLayout(gridLayout);
- gridLayout.numColumns = 3;
- imagetextButtonGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- imagetextButtonGroup.setText (ControlExample.getResourceString("Image_Text_Buttons"));
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- 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 (flatButton.getSelection()) style |= SWT.FLAT;
- if (borderButton.getSelection()) style |= SWT.BORDER;
- if (leftButton.getSelection()) style |= SWT.LEFT;
- if (rightButton.getSelection()) style |= SWT.RIGHT;
- if (arrowButton.getSelection()) {
- style |= SWT.ARROW;
- if (upButton.getSelection()) style |= SWT.UP;
- if (downButton.getSelection()) style |= SWT.DOWN;
- } else {
- if (centerButton.getSelection()) style |= SWT.CENTER;
- }
-
- /* 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]);
- button7 = new Button(imagetextButtonGroup, style);
- button7.setText(ControlExample.getResourceString("One"));
- button7.setImage(instance.images[ControlExample.ciClosedFolder]);
- button8 = new Button(imagetextButtonGroup, style);
- button8.setText(ControlExample.getResourceString("Two"));
- button8.setImage(instance.images[ControlExample.ciOpenFolder]);
- button9 = new Button(imagetextButtonGroup, style);
- button9.setText(ControlExample.getResourceString("Three"));
- button9.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.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {button1, button2, button3, button4, button5, button6, button7, button8, button9};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"Grayed", "Selection", "Text", "ToolTipText"};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Button";
- }
-
- /**
- * Sets the alignment of the "Example" widgets.
- */
- void setExampleWidgetAlignment () {
- int alignment = 0;
- if (leftButton.getSelection ()) alignment = SWT.LEFT;
- if (centerButton.getSelection ()) alignment = SWT.CENTER;
- if (rightButton.getSelection ()) alignment = SWT.RIGHT;
- if (upButton.getSelection ()) alignment = SWT.UP;
- if (downButton.getSelection ()) alignment = SWT.DOWN;
- button1.setAlignment (alignment);
- button2.setAlignment (alignment);
- button3.setAlignment (alignment);
- button4.setAlignment (alignment);
- button5.setAlignment (alignment);
- button6.setAlignment (alignment);
- button7.setAlignment (alignment);
- button8.setAlignment (alignment);
- button9.setAlignment (alignment);
- }
-
- /**
- * 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/CComboTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CComboTab.java
deleted file mode 100644
index 38bbbf8d0f..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CComboTab.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.layout.*;
-
-class CComboTab extends Tab {
-
- /* Example widgets and groups that contain them */
- CCombo combo1;
- Group comboGroup;
-
- /* Style widgets added to the "Style" group */
- Button flatButton, readOnlyButton;
-
- static String [] ListData = {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.
- */
- CComboTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the combo box */
- comboGroup = new Group (exampleGroup, SWT.NONE);
- comboGroup.setLayout (new GridLayout ());
- comboGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- comboGroup.setText (ControlExample.getResourceString("Custom_Combo"));
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- if (flatButton.getSelection ()) style |= SWT.FLAT;
- if (readOnlyButton.getSelection ()) style |= SWT.READ_ONLY;
- if (borderButton.getSelection ()) style |= SWT.BORDER;
-
- /* Create the example widgets */
- combo1 = new CCombo (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 */
- readOnlyButton = new Button (styleGroup, SWT.CHECK);
- readOnlyButton.setText ("SWT.READ_ONLY");
- borderButton = new Button (styleGroup, SWT.CHECK);
- borderButton.setText ("SWT.BORDER");
- flatButton = new Button (styleGroup, SWT.CHECK);
- flatButton.setText ("SWT.FLAT");
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {combo1};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"Editable", "Items", "Selection", "Text", "TextLimit", "ToolTipText", "VisibleItemCount"};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "CCombo";
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- flatButton.setSelection ((combo1.getStyle () & SWT.FLAT) != 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/CLabelTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CLabelTab.java
deleted file mode 100644
index 6a68c58b6b..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CLabelTab.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-class CLabelTab extends AlignableTab {
- /* Example widgets and groups that contain them */
- CLabel label1, label2, label3;
- Group textLabelGroup;
-
- /* Style widgets added to the "Style" group */
- Button shadowInButton, shadowOutButton, shadowNoneButton;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- CLabelTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the text labels */
- textLabelGroup = new Group(exampleGroup, SWT.NONE);
- GridLayout gridLayout = new GridLayout ();
- textLabelGroup.setLayout (gridLayout);
- gridLayout.numColumns = 3;
- textLabelGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- textLabelGroup.setText (ControlExample.getResourceString("Custom_Labels"));
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- if (shadowInButton.getSelection ()) style |= SWT.SHADOW_IN;
- if (shadowNoneButton.getSelection ()) style |= SWT.SHADOW_NONE;
- if (shadowOutButton.getSelection ()) style |= SWT.SHADOW_OUT;
- if (leftButton.getSelection ()) style |= SWT.LEFT;
- if (centerButton.getSelection ()) style |= SWT.CENTER;
- if (rightButton.getSelection ()) style |= SWT.RIGHT;
-
- /* Create the example widgets */
- label1 = new CLabel (textLabelGroup, style);
- label1.setText(ControlExample.getResourceString("One"));
- label1.setImage (instance.images[ControlExample.ciClosedFolder]);
- label2 = new CLabel (textLabelGroup, style);
- label2.setImage (instance.images[ControlExample.ciTarget]);
- label3 = new CLabel (textLabelGroup, style);
- label3.setText(ControlExample.getResourceString("Example_string") + "\n" + ControlExample.getResourceString("One_Two_Three"));
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup() {
- super.createStyleGroup ();
-
- /* Create the extra widgets */
- shadowNoneButton = new Button (styleGroup, SWT.RADIO);
- shadowNoneButton.setText ("SWT.SHADOW_NONE");
- shadowInButton = new Button (styleGroup, SWT.RADIO);
- shadowInButton.setText ("SWT.SHADOW_IN");
- shadowOutButton = new Button (styleGroup, SWT.RADIO);
- shadowOutButton.setText ("SWT.SHADOW_OUT");
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {label1, label2, label3};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"Text", "ToolTipText"};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "CLabel";
- }
-
- /**
- * Sets the alignment of the "Example" widgets.
- */
- void setExampleWidgetAlignment () {
- int alignment = 0;
- if (leftButton.getSelection ()) alignment = SWT.LEFT;
- if (centerButton.getSelection ()) alignment = SWT.CENTER;
- if (rightButton.getSelection ()) alignment = SWT.RIGHT;
- label1.setAlignment (alignment);
- label2.setAlignment (alignment);
- label3.setAlignment (alignment);
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- leftButton.setSelection ((label1.getStyle () & SWT.LEFT) != 0);
- centerButton.setSelection ((label1.getStyle () & SWT.CENTER) != 0);
- rightButton.setSelection ((label1.getStyle () & SWT.RIGHT) != 0);
- shadowInButton.setSelection ((label1.getStyle () & SWT.SHADOW_IN) != 0);
- shadowOutButton.setSelection ((label1.getStyle () & SWT.SHADOW_OUT) != 0);
- shadowNoneButton.setSelection ((label1.getStyle () & (SWT.SHADOW_IN | SWT.SHADOW_OUT)) == 0);
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CTabFolderTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CTabFolderTab.java
deleted file mode 100644
index 15daa91d1c..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CTabFolderTab.java
+++ /dev/null
@@ -1,446 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-class CTabFolderTab extends Tab {
- int lastSelectedTab = 0;
-
- /* Example widgets and groups that contain them */
- CTabFolder tabFolder1;
- Group tabFolderGroup, itemGroup;
-
- /* Style widgets added to the "Style" group */
- Button topButton, bottomButton, flatButton, closeButton;
-
- static String [] CTabItems1 = {ControlExample.getResourceString("CTabItem1_0"),
- ControlExample.getResourceString("CTabItem1_1"),
- ControlExample.getResourceString("CTabItem1_2")};
-
- /* Controls and resources added to the "Fonts" group */
- static final int SELECTION_FOREGROUND_COLOR = 3;
- static final int SELECTION_BACKGROUND_COLOR = 4;
- static final int ITEM_FONT = 5;
- Color selectionForegroundColor, selectionBackgroundColor;
- Font itemFont;
-
- /* Other widgets added to the "Other" group */
- Button simpleTabButton, singleTabButton, imageButton, showMinButton, showMaxButton, unselectedCloseButton, unselectedImageButton;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- CTabFolderTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Colors and Fonts" group.
- */
- void createColorAndFontGroup () {
- super.createColorAndFontGroup();
-
- TableItem item = new TableItem(colorAndFontTable, SWT.None);
- item.setText(ControlExample.getResourceString ("Selection_Foreground_Color"));
- item = new TableItem(colorAndFontTable, SWT.None);
- item.setText(ControlExample.getResourceString ("Selection_Background_Color"));
- item = new TableItem(colorAndFontTable, SWT.None);
- item.setText(ControlExample.getResourceString ("Item_Font"));
-
- shell.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent event) {
- if (selectionBackgroundColor != null) selectionBackgroundColor.dispose();
- if (selectionForegroundColor != null) selectionForegroundColor.dispose();
- if (itemFont != null) itemFont.dispose();
- selectionBackgroundColor = null;
- selectionForegroundColor = null;
- itemFont = null;
- }
- });
- }
-
- void changeFontOrColor(int index) {
- switch (index) {
- case SELECTION_FOREGROUND_COLOR: {
- Color oldColor = selectionForegroundColor;
- if (oldColor == null) oldColor = tabFolder1.getSelectionForeground();
- colorDialog.setRGB(oldColor.getRGB());
- RGB rgb = colorDialog.open();
- if (rgb == null) return;
- oldColor = selectionForegroundColor;
- selectionForegroundColor = new Color (display, rgb);
- setSelectionForeground ();
- if (oldColor != null) oldColor.dispose ();
- }
- break;
- case SELECTION_BACKGROUND_COLOR: {
- Color oldColor = selectionBackgroundColor;
- if (oldColor == null) oldColor = tabFolder1.getSelectionBackground();
- colorDialog.setRGB(oldColor.getRGB());
- RGB rgb = colorDialog.open();
- if (rgb == null) return;
- oldColor = selectionBackgroundColor;
- selectionBackgroundColor = new Color (display, rgb);
- setSelectionBackground ();
- if (oldColor != null) oldColor.dispose ();
- }
- break;
- case ITEM_FONT: {
- Font oldFont = itemFont;
- if (oldFont == null) oldFont = tabFolder1.getItem (0).getFont ();
- fontDialog.setFontList(oldFont.getFontData());
- FontData fontData = fontDialog.open ();
- if (fontData == null) return;
- oldFont = itemFont;
- itemFont = new Font (display, fontData);
- setItemFont ();
- setExampleWidgetSize ();
- if (oldFont != null) oldFont.dispose ();
- }
- break;
- default:
- super.changeFontOrColor(index);
- }
- }
-
- /**
- * Creates the "Other" group.
- */
- void createOtherGroup () {
- super.createOtherGroup ();
-
- /* Create display controls specific to this example */
- simpleTabButton = new Button (otherGroup, SWT.CHECK);
- simpleTabButton.setText (ControlExample.getResourceString("Set_Simple_Tabs"));
- simpleTabButton.setSelection(true);
- simpleTabButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setSimpleTabs();
- }
- });
-
- singleTabButton = new Button (otherGroup, SWT.CHECK);
- singleTabButton.setText (ControlExample.getResourceString("Set_Single_Tabs"));
- singleTabButton.setSelection(false);
- singleTabButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setSingleTabs();
- }
- });
-
- showMinButton = new Button (otherGroup, SWT.CHECK);
- showMinButton.setText (ControlExample.getResourceString("Set_Min_Visible"));
- showMinButton.setSelection(false);
- showMinButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setMinimizeVisible();
- }
- });
-
- showMaxButton = new Button (otherGroup, SWT.CHECK);
- showMaxButton.setText (ControlExample.getResourceString("Set_Max_Visible"));
- showMaxButton.setSelection(false);
- showMaxButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setMaximizeVisible();
- }
- });
-
- imageButton = new Button (otherGroup, SWT.CHECK);
- imageButton.setText (ControlExample.getResourceString("Set_Image"));
- imageButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setImages();
- }
- });
-
- unselectedImageButton = new Button (otherGroup, SWT.CHECK);
- unselectedImageButton.setText (ControlExample.getResourceString("Set_Unselected_Image_Visible"));
- unselectedImageButton.setSelection(true);
- unselectedImageButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setUnselectedImageVisible();
- }
- });
- unselectedCloseButton = new Button (otherGroup, SWT.CHECK);
- unselectedCloseButton.setText (ControlExample.getResourceString("Set_Unselected_Close_Visible"));
- unselectedCloseButton.setSelection(true);
- unselectedCloseButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setUnselectedCloseVisible();
- }
- });
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the CTabFolder */
- tabFolderGroup = new Group (exampleGroup, SWT.NONE);
- tabFolderGroup.setLayout (new GridLayout ());
- tabFolderGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- tabFolderGroup.setText ("CTabFolder");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- if (topButton.getSelection ()) style |= SWT.TOP;
- if (bottomButton.getSelection ()) style |= SWT.BOTTOM;
- if (borderButton.getSelection ()) style |= SWT.BORDER;
- if (flatButton.getSelection ()) style |= SWT.FLAT;
- if (closeButton.getSelection ()) style |= SWT.CLOSE;
-
- /* Create the example widgets */
- tabFolder1 = new CTabFolder (tabFolderGroup, style);
- for (int i = 0; i < CTabItems1.length; i++) {
- CTabItem item = new CTabItem(tabFolder1, SWT.NONE);
- item.setText(CTabItems1[i]);
- Text text = new Text(tabFolder1, SWT.WRAP | SWT.MULTI);
- text.setText(ControlExample.getResourceString("CTabItem_content") + ": " + i);
- item.setControl(text);
- }
- tabFolder1.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- lastSelectedTab = tabFolder1.getSelectionIndex();
- }
- });
- tabFolder1.setSelection(lastSelectedTab);
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup() {
- super.createStyleGroup ();
-
- /* Create the extra widgets */
- topButton = new Button (styleGroup, SWT.RADIO);
- topButton.setText ("SWT.TOP");
- topButton.setSelection(true);
- bottomButton = new Button (styleGroup, SWT.RADIO);
- bottomButton.setText ("SWT.BOTTOM");
- borderButton = new Button (styleGroup, SWT.CHECK);
- borderButton.setText ("SWT.BORDER");
- flatButton = new Button (styleGroup, SWT.CHECK);
- flatButton.setText ("SWT.FLAT");
- closeButton = new Button (styleGroup, SWT.CHECK);
- closeButton.setText ("SWT.CLOSE");
- }
-
- /**
- * Gets the list of custom event names.
- *
- * @return an array containing custom event names
- */
- String [] getCustomEventNames () {
- return new String [] {"CTabFolderEvent"};
- }
-
- /**
- * Gets the "Example" widget children's items, if any.
- *
- * @return an array containing the example widget children's items
- */
- Item [] getExampleWidgetItems () {
- return tabFolder1.getItems();
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {tabFolder1};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "CTabFolder";
- }
-
- /**
- * Hooks the custom listener specified by eventName.
- */
- void hookCustomListener (final String eventName) {
- if (eventName == "CTabFolderEvent") {
- tabFolder1.addCTabFolder2Listener (new CTabFolder2Adapter () {
- public void close (CTabFolderEvent event) {
- log (eventName, event);
- }
- });
- }
- }
-
- /**
- * Sets the foreground color, background color, and font
- * of the "Example" widgets to their default settings.
- * Also sets foreground and background color of the Node 1
- * TreeItems to default settings.
- */
- void resetColorsAndFonts () {
- super.resetColorsAndFonts ();
- Color oldColor = selectionForegroundColor;
- selectionForegroundColor = null;
- setSelectionForeground ();
- if (oldColor != null) oldColor.dispose();
- oldColor = selectionBackgroundColor;
- selectionBackgroundColor = null;
- setSelectionBackground ();
- if (oldColor != null) oldColor.dispose();
- Font oldFont = itemFont;
- itemFont = null;
- setItemFont ();
- if (oldFont != null) oldFont.dispose();
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState();
- setSimpleTabs();
- setSingleTabs();
- setImages();
- setMinimizeVisible();
- setMaximizeVisible();
- setUnselectedCloseVisible();
- setUnselectedImageVisible();
- setSelectionBackground ();
- setSelectionForeground ();
- setItemFont ();
- setExampleWidgetSize();
- }
-
- /**
- * Sets the shape that the CTabFolder will use to render itself.
- */
- void setSimpleTabs () {
- tabFolder1.setSimple (simpleTabButton.getSelection ());
- setExampleWidgetSize();
- }
-
- /**
- * Sets the number of tabs that the CTabFolder should display.
- */
- void setSingleTabs () {
- tabFolder1.setSingle (singleTabButton.getSelection ());
- setExampleWidgetSize();
- }
- /**
- * Sets an image into each item of the "Example" widgets.
- */
- void setImages () {
- boolean setImage = imageButton.getSelection ();
- CTabItem items[] = tabFolder1.getItems ();
- for (int i = 0; i < items.length; i++) {
- if (setImage) {
- items[i].setImage (instance.images[ControlExample.ciClosedFolder]);
- } else {
- items[i].setImage (null);
- }
- }
- setExampleWidgetSize ();
- }
- /**
- * Sets the visibility of the minimize button
- */
- void setMinimizeVisible () {
- tabFolder1.setMinimizeVisible(showMinButton.getSelection ());
- setExampleWidgetSize();
- }
- /**
- * Sets the visibility of the maximize button
- */
- void setMaximizeVisible () {
- tabFolder1.setMaximizeVisible(showMaxButton.getSelection ());
- setExampleWidgetSize();
- }
- /**
- * Sets the visibility of the close button on unselected tabs
- */
- void setUnselectedCloseVisible () {
- tabFolder1.setUnselectedCloseVisible(unselectedCloseButton.getSelection ());
- setExampleWidgetSize();
- }
- /**
- * Sets the visibility of the image on unselected tabs
- */
- void setUnselectedImageVisible () {
- tabFolder1.setUnselectedImageVisible(unselectedImageButton.getSelection ());
- setExampleWidgetSize();
- }
- /**
- * Sets the background color of CTabItem 0.
- */
- void setSelectionBackground () {
- if (!instance.startup) {
- tabFolder1.setSelectionBackground(selectionBackgroundColor);
- }
- // Set the selection background item's image to match the background color of the selection.
- Color color = selectionBackgroundColor;
- if (color == null) color = tabFolder1.getSelectionBackground ();
- TableItem item = colorAndFontTable.getItem(SELECTION_BACKGROUND_COLOR);
- Image oldImage = item.getImage();
- if (oldImage != null) oldImage.dispose();
- item.setImage (colorImage(color));
- }
-
- /**
- * Sets the foreground color of CTabItem 0.
- */
- void setSelectionForeground () {
- if (!instance.startup) {
- tabFolder1.setSelectionForeground(selectionForegroundColor);
- }
- // Set the selection foreground item's image to match the foreground color of the selection.
- Color color = selectionForegroundColor;
- if (color == null) color = tabFolder1.getSelectionForeground ();
- TableItem item = colorAndFontTable.getItem(SELECTION_FOREGROUND_COLOR);
- Image oldImage = item.getImage();
- if (oldImage != null) oldImage.dispose();
- item.setImage (colorImage(color));
- }
-
- /**
- * Sets the font of CTabItem 0.
- */
- void setItemFont () {
- if (!instance.startup) {
- tabFolder1.getItem (0).setFont (itemFont);
- setExampleWidgetSize();
- }
- /* Set the font item's image to match the font of the item. */
- Font ft = itemFont;
- if (ft == null) ft = tabFolder1.getItem (0).getFont ();
- TableItem item = colorAndFontTable.getItem(ITEM_FONT);
- Image oldImage = item.getImage();
- if (oldImage != null) oldImage.dispose();
- item.setImage (fontImage(ft));
- item.setFont(ft);
- colorAndFontTable.layout ();
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CanvasTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CanvasTab.java
deleted file mode 100644
index b9bfc0ddde..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CanvasTab.java
+++ /dev/null
@@ -1,312 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-
-class CanvasTab extends Tab {
- static final int colors [] = {
- SWT.COLOR_RED,
- SWT.COLOR_GREEN,
- SWT.COLOR_BLUE,
- SWT.COLOR_MAGENTA,
- SWT.COLOR_YELLOW,
- SWT.COLOR_CYAN,
- SWT.COLOR_DARK_RED,
- SWT.COLOR_DARK_GREEN,
- SWT.COLOR_DARK_BLUE,
- SWT.COLOR_DARK_MAGENTA,
- SWT.COLOR_DARK_YELLOW,
- SWT.COLOR_DARK_CYAN
- };
- static final String canvasString = "Canvas"; //$NON-NLS-1$
-
- /* Example widgets and groups that contain them */
- Canvas canvas;
- Group canvasGroup;
-
- /* Style widgets added to the "Style" group */
- Button horizontalButton, verticalButton, noBackgroundButton, noFocusButton,
- noMergePaintsButton, noRedrawResizeButton, doubleBufferedButton;
-
- /* Other widgets added to the "Other" group */
- Button caretButton, fillDamageButton;
-
- int paintCount;
- int cx, cy;
- int maxX, maxY;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- CanvasTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Other" group.
- */
- void createOtherGroup () {
- super.createOtherGroup ();
-
- /* Create display controls specific to this example */
- caretButton = new Button (otherGroup, SWT.CHECK);
- caretButton.setText (ControlExample.getResourceString("Caret"));
- fillDamageButton = new Button (otherGroup, SWT.CHECK);
- fillDamageButton.setText (ControlExample.getResourceString("FillDamage"));
-
- /* Add the listeners */
- caretButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setCaret ();
- }
- });
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the canvas widget */
- canvasGroup = new Group (exampleGroup, SWT.NONE);
- canvasGroup.setLayout (new GridLayout ());
- canvasGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- canvasGroup.setText ("Canvas");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- if (horizontalButton.getSelection ()) style |= SWT.H_SCROLL;
- if (verticalButton.getSelection ()) style |= SWT.V_SCROLL;
- if (borderButton.getSelection ()) style |= SWT.BORDER;
- if (noBackgroundButton.getSelection ()) style |= SWT.NO_BACKGROUND;
- if (noFocusButton.getSelection ()) style |= SWT.NO_FOCUS;
- if (noMergePaintsButton.getSelection ()) style |= SWT.NO_MERGE_PAINTS;
- if (noRedrawResizeButton.getSelection ()) style |= SWT.NO_REDRAW_RESIZE;
- if (doubleBufferedButton.getSelection ()) style |= SWT.DOUBLE_BUFFERED;
-
- /* Create the example widgets */
- paintCount = 0; cx = 0; cy = 0;
- canvas = new Canvas (canvasGroup, style);
- canvas.addPaintListener(new PaintListener () {
- public void paintControl(PaintEvent e) {
- paintCount++;
- GC gc = e.gc;
- if (fillDamageButton.getSelection ()) {
- Color color = e.display.getSystemColor (colors [paintCount % colors.length]);
- gc.setBackground(color);
- gc.fillRectangle(e.x, e.y, e.width, e.height);
- }
- Point size = canvas.getSize ();
- gc.drawArc(cx + 1, cy + 1, size.x - 2, size.y - 2, 0, 360);
- gc.drawRectangle(cx + (size.x - 10) / 2, cy + (size.y - 10) / 2, 10, 10);
- Point extent = gc.textExtent(canvasString);
- gc.drawString(canvasString, cx + (size.x - extent.x) / 2, cy - extent.y + (size.y - 10) / 2, true);
- }
- });
- canvas.addControlListener(new ControlAdapter() {
- public void controlResized(ControlEvent event) {
- Point size = canvas.getSize ();
- maxX = size.x * 3 / 2; maxY = size.y * 3 / 2;
- resizeScrollBars ();
- }
- });
- ScrollBar bar = canvas.getHorizontalBar();
- if (bar != null) {
- hookListeners (bar);
- bar.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- scrollHorizontal ((ScrollBar)event.widget);
- }
- });
- }
- bar = canvas.getVerticalBar();
- if (bar != null) {
- hookListeners (bar);
- bar.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- scrollVertical ((ScrollBar)event.widget);
- }
- });
- }
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup() {
- super.createStyleGroup();
-
- /* Create the extra widgets */
- 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");
- noBackgroundButton = new Button (styleGroup, SWT.CHECK);
- noBackgroundButton.setText ("SWT.NO_BACKGROUND");
- noFocusButton = new Button (styleGroup, SWT.CHECK);
- noFocusButton.setText ("SWT.NO_FOCUS");
- noMergePaintsButton = new Button (styleGroup, SWT.CHECK);
- noMergePaintsButton.setText ("SWT.NO_MERGE_PAINTS");
- noRedrawResizeButton = new Button (styleGroup, SWT.CHECK);
- noRedrawResizeButton.setText ("SWT.NO_REDRAW_RESIZE");
- doubleBufferedButton = new Button (styleGroup, SWT.CHECK);
- doubleBufferedButton.setText ("SWT.DOUBLE_BUFFERED");
- }
-
- /**
- * Creates the tab folder page.
- *
- * @param tabFolder org.eclipse.swt.widgets.TabFolder
- * @return the new page for the tab folder
- */
- Composite createTabFolderPage (TabFolder tabFolder) {
- super.createTabFolderPage (tabFolder);
-
- /*
- * Add a resize listener to the tabFolderPage so that
- * if the user types into the example widget to change
- * its preferred size, and then resizes the shell, we
- * recalculate the preferred size correctly.
- */
- tabFolderPage.addControlListener(new ControlAdapter() {
- public void controlResized(ControlEvent e) {
- setExampleWidgetSize ();
- }
- });
-
- return tabFolderPage;
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {canvas};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"ToolTipText"};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Canvas";
- }
-
- /**
- * Resizes the maximum and thumb of both scrollbars.
- */
- void resizeScrollBars () {
- Rectangle clientArea = canvas.getClientArea();
- ScrollBar bar = canvas.getHorizontalBar();
- if (bar != null) {
- bar.setMaximum(maxX);
- bar.setThumb(clientArea.width);
- bar.setPageIncrement(clientArea.width);
- }
- bar = canvas.getVerticalBar();
- if (bar != null) {
- bar.setMaximum(maxY);
- bar.setThumb(clientArea.height);
- bar.setPageIncrement(clientArea.height);
- }
- }
-
- /**
- * Scrolls the canvas horizontally.
- *
- * @param scrollBar
- */
- void scrollHorizontal (ScrollBar scrollBar) {
- Rectangle bounds = canvas.getClientArea();
- int x = -scrollBar.getSelection();
- if (x + maxX < bounds.width) {
- x = bounds.width - maxX;
- }
- canvas.scroll(x, cy, cx, cy, maxX, maxY, false);
- cx = x;
- }
-
- /**
- * Scrolls the canvas vertically.
- *
- * @param scrollBar
- */
- void scrollVertical (ScrollBar scrollBar) {
- Rectangle bounds = canvas.getClientArea();
- int y = -scrollBar.getSelection();
- if (y + maxY < bounds.height) {
- y = bounds.height - maxY;
- }
- canvas.scroll(cx, y, cx, cy, maxX, maxY, false);
- cy = y;
- }
-
- /**
- * Sets or clears the caret in the "Example" widget.
- */
- void setCaret () {
- Caret oldCaret = canvas.getCaret ();
- if (caretButton.getSelection ()) {
- Caret newCaret = new Caret(canvas, SWT.NONE);
- Font font = canvas.getFont();
- newCaret.setFont(font);
- GC gc = new GC(canvas);
- gc.setFont(font);
- newCaret.setBounds(1, 1, 1, gc.getFontMetrics().getHeight());
- gc.dispose();
- canvas.setCaret (newCaret);
- canvas.setFocus();
- } else {
- canvas.setCaret (null);
- }
- if (oldCaret != null) oldCaret.dispose ();
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- horizontalButton.setSelection ((canvas.getStyle () & SWT.H_SCROLL) != 0);
- verticalButton.setSelection ((canvas.getStyle () & SWT.V_SCROLL) != 0);
- borderButton.setSelection ((canvas.getStyle () & SWT.BORDER) != 0);
- noBackgroundButton.setSelection ((canvas.getStyle () & SWT.NO_BACKGROUND) != 0);
- noFocusButton.setSelection ((canvas.getStyle () & SWT.NO_FOCUS) != 0);
- noMergePaintsButton.setSelection ((canvas.getStyle () & SWT.NO_MERGE_PAINTS) != 0);
- noRedrawResizeButton.setSelection ((canvas.getStyle () & SWT.NO_REDRAW_RESIZE) != 0);
- doubleBufferedButton.setSelection ((canvas.getStyle () & SWT.DOUBLE_BUFFERED) != 0);
- if (!instance.startup) setCaret ();
- }
-}
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 6ca3776dd3..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ComboTab.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.events.*;
-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.NONE);
- comboGroup.setLayout (new GridLayout ());
- comboGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- comboGroup.setText ("Combo");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- if (dropDownButton.getSelection ()) style |= SWT.DROP_DOWN;
- if (readOnlyButton.getSelection ()) style |= SWT.READ_ONLY;
- if (simpleButton.getSelection ()) style |= SWT.SIMPLE;
-
- /* Create the example widgets */
- combo1 = new Combo (comboGroup, style);
- combo1.setItems (ListData);
- if (ListData.length >= 3) {
- combo1.setText(ListData [2]);
- }
- }
-
- /**
- * Creates the tab folder page.
- *
- * @param tabFolder org.eclipse.swt.widgets.TabFolder
- * @return the new page for the tab folder
- */
- Composite createTabFolderPage (TabFolder tabFolder) {
- super.createTabFolderPage (tabFolder);
-
- /*
- * Add a resize listener to the tabFolderPage so that
- * if the user types into the example widget to change
- * its preferred size, and then resizes the shell, we
- * recalculate the preferred size correctly.
- */
- tabFolderPage.addControlListener(new ControlAdapter() {
- public void controlResized(ControlEvent e) {
- setExampleWidgetSize ();
- }
- });
-
- return tabFolderPage;
- }
-
- /**
- * 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");
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {combo1};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"Items", "Orientation", "Selection", "Text", "TextLimit", "ToolTipText", "VisibleItemCount"};
- }
-
- /**
- * 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);
- readOnlyButton.setEnabled(!simpleButton.getSelection());
- }
-}
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 e56b6824b1..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ControlExample.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-import java.io.*;
-import java.text.*;
-import java.util.*;
-
-public class ControlExample {
- private static ResourceBundle resourceBundle =
- ResourceBundle.getBundle("examples_control"); //$NON-NLS-1$
- private ShellTab shellTab;
- private TabFolder tabFolder;
- private Tab [] tabs;
- Image images[];
-
- static final int ciClosedFolder = 0, ciOpenFolder = 1, ciTarget = 2, ciBackground = 3, ciParentBackground = 4;
- static final String[] imageLocations = {
- "closedFolder.gif", //$NON-NLS-1$
- "openFolder.gif", //$NON-NLS-1$
- "target.gif", //$NON-NLS-1$
- "backgroundImage.png", //$NON-NLS-1$
- "parentBackgroundImage.png"}; //$NON-NLS-1$
- static final int[] imageTypes = {
- SWT.ICON,
- SWT.ICON,
- SWT.ICON,
- SWT.BITMAP,
- SWT.BITMAP};
-
- boolean startup = true;
-
- /**
- * 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.NONE);
- tabs = createTabs();
- for (int i=0; i<tabs.length; i++) {
- TabItem item = new TabItem (tabFolder, SWT.NONE);
- item.setText (tabs [i].getTabText ());
- item.setControl (tabs [i].createTabFolderPage (tabFolder));
- item.setData (tabs [i]);
- }
- startup = false;
- }
-
- /**
- * Answers the set of example Tabs
- */
- Tab[] createTabs() {
- return new Tab [] {
- new ButtonTab (this),
- new CanvasTab (this),
- new ComboTab (this),
- new CoolBarTab (this),
- new DateTimeTab (this),
- new DialogTab (this),
- new ExpandBarTab (this),
- new GroupTab (this),
- new LabelTab (this),
- new LinkTab (this),
- new ListTab (this),
- new MenuTab (this),
- new ProgressBarTab (this),
- new SashTab (this),
- new ScaleTab (this),
- shellTab = new ShellTab(this),
- new SliderTab (this),
- new SpinnerTab (this),
- new TabFolderTab (this),
- new TableTab (this),
- new TextTab (this),
- new ToolBarTab (this),
- new ToolTipTab (this),
- new TreeTab (this),
- new BrowserTab (this),
- };
- }
-
- /**
- * 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();
- }
-
- /**
- * Frees the resources
- */
- 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;
- }
- }
-
- /**
- * 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 + "!"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- /**
- * 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 + "!"; //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- /**
- * Loads the resources
- */
- 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) {
- InputStream sourceStream = clazz.getResourceAsStream(imageLocations[i]);
- ImageData source = new ImageData(sourceStream);
- if (imageTypes[i] == SWT.ICON) {
- ImageData mask = source.getTransparencyMask();
- images[i] = new Image(null, source, mask);
- } else {
- images[i] = new Image(null, source);
- }
- try {
- sourceStream.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- return;
- } catch (Throwable t) {
- }
- }
- String error = (resourceBundle != null) ?
- getResourceString("error.CouldNotLoadResources") :
- "Unable to load resources"; //$NON-NLS-1$
- freeResources();
- throw new RuntimeException(error);
- }
-
- /**
- * Invokes as a standalone program.
- */
- public static void main(String[] args) {
- Display display = new Display();
- Shell shell = new Shell(display, SWT.SHELL_TRIM);
- shell.setLayout(new FillLayout());
- ControlExample instance = new ControlExample(shell);
- shell.setText(getResourceString("window.title"));
- setShellSize(instance, shell);
- shell.open();
- while (! shell.isDisposed()) {
- if (! display.readAndDispatch()) display.sleep();
- }
- instance.dispose();
- display.dispose();
- }
-
- /**
- * Grabs input focus.
- */
- public void setFocus() {
- tabFolder.setFocus();
- }
-
- /**
- * Sets the size of the shell to it's "packed" size,
- * unless that makes it larger than the monitor it is being displayed on,
- * in which case just set the shell size to be slightly smaller than the monitor.
- */
- static void setShellSize(ControlExample instance, Shell shell) {
- Point size = shell.computeSize(SWT.DEFAULT, SWT.DEFAULT);
- Rectangle monitorArea = shell.getMonitor().getClientArea();
- /* Workaround: if the tab folder is wider than the screen,
- * carbon clips instead of somehow scrolling the tab items.
- * We try to recover some width by using shorter tab names. */
- if (size.x > monitorArea.width && SWT.getPlatform().equals("carbon")) {
- TabItem [] tabItems = instance.tabFolder.getItems();
- for (int i=0; i<tabItems.length; i++) {
- tabItems[i].setText (instance.tabs [i].getShortTabText ());
- }
- size = shell.computeSize(SWT.DEFAULT, SWT.DEFAULT);
- }
- shell.setSize(Math.min(size.x, monitorArea.width), Math.min(size.y, monitorArea.height));
- }
-}
-
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 5720ce8c64..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CoolBarTab.java
+++ /dev/null
@@ -1,490 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-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 {
- /* Example widgets and group that contains them */
- CoolBar coolBar;
- CoolItem pushItem, dropDownItem, radioItem, checkItem, textItem;
- Group coolBarGroup;
-
- /* Style widgets added to the "Style" group */
- Button horizontalButton, verticalButton;
- Button dropDownButton, flatButton;
-
- /* Other widgets added to the "Other" group */
- Button lockedButton;
-
- Point[] sizes;
- int[] wrapIndices;
- int[] order;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- CoolBarTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Other" group.
- */
- void createOtherGroup () {
- super.createOtherGroup ();
-
- /* Create display controls specific to this example */
- lockedButton = new Button (otherGroup, 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.NONE);
- coolBarGroup.setLayout (new GridLayout ());
- coolBarGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- coolBarGroup.setText ("CoolBar");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
- int style = getDefaultStyle(), itemStyle = 0;
-
- /* Compute the widget, item, and item toolBar styles */
- int toolBarStyle = SWT.FLAT;
- boolean vertical = false;
- if (horizontalButton.getSelection ()) {
- style |= SWT.HORIZONTAL;
- toolBarStyle |= SWT.HORIZONTAL;
- }
- if (verticalButton.getSelection ()) {
- style |= SWT.VERTICAL;
- toolBarStyle |= SWT.VERTICAL;
- vertical = true;
- }
- if (borderButton.getSelection()) style |= SWT.BORDER;
- if (flatButton.getSelection()) style |= SWT.FLAT;
- if (dropDownButton.getSelection()) itemStyle |= SWT.DROP_DOWN;
-
- /*
- * Create the example widgets.
- */
- coolBar = new CoolBar (coolBarGroup, style);
-
- /* Create the push button toolbar cool item */
- 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);
- pushItem.addSelectionListener (new CoolItemSelectionListener());
-
- /* Create the dropdown toolbar cool item */
- 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);
- dropDownItem.addSelectionListener (new CoolItemSelectionListener());
-
- /* Create the radio button toolbar cool item */
- 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);
- radioItem.addSelectionListener (new CoolItemSelectionListener());
-
- /* Create the check button toolbar cool item */
- 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);
- checkItem.addSelectionListener (new CoolItemSelectionListener());
-
- /* Create the text cool item */
- if (!vertical) {
- Text text = new Text (coolBar, SWT.BORDER | SWT.SINGLE);
- textItem = new CoolItem (coolBar, itemStyle);
- textItem.setControl (text);
- textItem.addSelectionListener (new CoolItemSelectionListener());
- Point textSize = text.computeSize(SWT.DEFAULT, SWT.DEFAULT);
- textSize = textItem.computeSize(textSize.x, textSize.y);
- textItem.setMinimumSize(textSize);
- textItem.setPreferredSize(textSize);
- textItem.setSize(textSize);
- }
-
- /* Set the sizes after adding all cool items */
- CoolItem[] coolItems = coolBar.getItems();
- for (int i = 0; i < coolItems.length; i++) {
- CoolItem coolItem = coolItems[i];
- Control control = coolItem.getControl();
- Point size = control.computeSize(SWT.DEFAULT, SWT.DEFAULT);
- Point coolSize = coolItem.computeSize(size.x, size.y);
- if (control instanceof ToolBar) {
- ToolBar bar = (ToolBar)control;
- if (bar.getItemCount() > 0) {
- if (vertical) {
- size.y = bar.getItem(0).getBounds().height;
- } else {
- size.x = bar.getItem(0).getWidth();
- }
- }
- }
- coolItem.setMinimumSize(size);
- coolItem.setPreferredSize(coolSize);
- coolItem.setSize(coolSize);
- }
-
- /* If we have saved state, restore it */
- if (order != null && order.length == coolBar.getItemCount()) {
- coolBar.setItemLayout(order, wrapIndices, sizes);
- } 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 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");
- flatButton = new Button (styleGroup, SWT.CHECK);
- flatButton.setText ("SWT.FLAT");
- 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");
- }
-
- /**
- * 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's items, if any.
- *
- * @return an array containing the example widget children's items
- */
- Item [] getExampleWidgetItems () {
- return coolBar.getItems();
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {coolBar};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"ToolTipText"};
- }
-
- /**
- * Gets the short text for the tab folder item.
- */
- String getShortTabText() {
- return "CB";
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "CoolBar";
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- horizontalButton.setSelection ((coolBar.getStyle () & SWT.HORIZONTAL) != 0);
- verticalButton.setSelection ((coolBar.getStyle () & SWT.VERTICAL) != 0);
- borderButton.setSelection ((coolBar.getStyle () & SWT.BORDER) != 0);
- flatButton.setSelection ((coolBar.getStyle () & SWT.FLAT) != 0);
- dropDownButton.setSelection ((coolBar.getItem(0).getStyle () & SWT.DROP_DOWN) != 0);
- lockedButton.setSelection(coolBar.getLocked());
- if (!instance.startup) 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.
- menu = new Menu(shell);
- menu.addMenuListener(new MenuAdapter() {
- public void menuHidden(MenuEvent e) {
- visible = false;
- }
- });
- 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 {
- 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 ();
- itemBounds.width = event.x - itemBounds.x;
- 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);
- String text = tool.getToolTipText();
- if (text != null) menuItem.setText(text);
- Menu m = new Menu(menu);
- menuItem.setMenu(m);
- for (int k = 0; k < 9; ++k) {
- 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);
- String text = tool.getToolTipText();
- if (text != null) menuItem.setText(text);
- }
- /* 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);
- while (menu != null && !menu.isDisposed() && 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/CustomControlExample.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CustomControlExample.java
deleted file mode 100644
index e9645f3420..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/CustomControlExample.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-
-public class CustomControlExample extends ControlExample {
-
- /**
- * Creates an instance of a CustomControlExample embedded
- * inside the supplied parent Composite.
- *
- * @param parent the container of the example
- */
- public CustomControlExample(Composite parent) {
- super (parent);
- }
-
- /**
- * Answers the set of example Tabs
- */
- Tab[] createTabs() {
- return new Tab [] {
- new CComboTab (this),
- new CLabelTab (this),
- new CTabFolderTab (this),
- new SashFormTab (this),
- new StyledTextTab (this),
- };
- }
-
- /**
- * Invokes as a standalone program.
- */
- public static void main(String[] args) {
- Display display = new Display();
- Shell shell = new Shell(display);
- shell.setLayout(new FillLayout());
- CustomControlExample instance = new CustomControlExample(shell);
- shell.setText(getResourceString("custom.window.title"));
- setShellSize(instance, shell);
- shell.open();
- while (! shell.isDisposed()) {
- if (! display.readAndDispatch()) display.sleep();
- }
- instance.dispose();
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/DateTimeTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/DateTimeTab.java
deleted file mode 100644
index 3b5cb365ed..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/DateTimeTab.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-
-class DateTimeTab extends Tab {
- /* Example widgets and groups that contain them */
- DateTime dateTime1;
- Group dateTimeGroup;
-
- /* Style widgets added to the "Style" group */
- Button dateButton, timeButton, calendarButton, shortButton, mediumButton, longButton;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- DateTimeTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the list */
- dateTimeGroup = new Group (exampleGroup, SWT.NONE);
- dateTimeGroup.setLayout (new GridLayout ());
- dateTimeGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- dateTimeGroup.setText ("DateTime");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- if (dateButton.getSelection ()) style |= SWT.DATE;
- if (timeButton.getSelection ()) style |= SWT.TIME;
- if (calendarButton.getSelection ()) style |= SWT.CALENDAR;
- if (shortButton.getSelection ()) style |= SWT.SHORT;
- if (mediumButton.getSelection ()) style |= SWT.MEDIUM;
- if (longButton.getSelection ()) style |= SWT.LONG;
- if (borderButton.getSelection ()) style |= SWT.BORDER;
-
- /* Create the example widgets */
- dateTime1 = new DateTime (dateTimeGroup, style);
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup() {
- super.createStyleGroup ();
-
- /* Create the extra widgets */
- dateButton = new Button(styleGroup, SWT.RADIO);
- dateButton.setText("SWT.DATE");
- timeButton = new Button(styleGroup, SWT.RADIO);
- timeButton.setText("SWT.TIME");
- calendarButton = new Button(styleGroup, SWT.RADIO);
- calendarButton.setText("SWT.CALENDAR");
- Group formatGroup = new Group(styleGroup, SWT.NONE);
- formatGroup.setLayout(new GridLayout());
- shortButton = new Button(formatGroup, SWT.RADIO);
- shortButton.setText("SWT.SHORT");
- mediumButton = new Button(formatGroup, SWT.RADIO);
- mediumButton.setText("SWT.MEDIUM");
- longButton = new Button(formatGroup, SWT.RADIO);
- longButton.setText("SWT.LONG");
- borderButton = new Button(styleGroup, SWT.CHECK);
- borderButton.setText("SWT.BORDER");
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {dateTime1};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"Day", "Hours", "Minutes", "Month", "Seconds", "Year"};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "DateTime";
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- dateButton.setSelection ((dateTime1.getStyle () & SWT.DATE) != 0);
- timeButton.setSelection ((dateTime1.getStyle () & SWT.TIME) != 0);
- calendarButton.setSelection ((dateTime1.getStyle () & SWT.CALENDAR) != 0);
- shortButton.setSelection ((dateTime1.getStyle () & SWT.SHORT) != 0);
- mediumButton.setSelection ((dateTime1.getStyle () & SWT.MEDIUM) != 0);
- longButton.setSelection ((dateTime1.getStyle () & SWT.LONG) != 0);
- borderButton.setSelection ((dateTime1.getStyle () & SWT.BORDER) != 0);
- }
-}
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 d435bea552..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/DialogTab.java
+++ /dev/null
@@ -1,502 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-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 createButton;
- Button okButton, cancelButton;
- Button yesButton, noButton;
- Button retryButton;
- Button abortButton, ignoreButton;
- Button iconErrorButton, iconInformationButton, iconQuestionButton;
- Button iconWarningButton, iconWorkingButton, noIconButton;
- Button primaryModalButton, applicationModalButton, systemModalButton;
- Button saveButton, openButton, multiButton;
-
- static String [] FilterExtensions = {"*.txt", "*.bat", "*.doc", "*"};
- static String [] FilterNames = {ControlExample.getResourceString("FilterName_0"),
- ControlExample.getResourceString("FilterName_1"),
- ControlExample.getResourceString("FilterName_2"),
- ControlExample.getResourceString("FilterName_3")};
-
- /**
- * 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.
- */
- boolean ok = okButton.getSelection ();
- boolean cancel = cancelButton.getSelection ();
- boolean yes = yesButton.getSelection ();
- boolean no = noButton.getSelection ();
- boolean abort = abortButton.getSelection ();
- boolean retry = retryButton.getSelection ();
- boolean ignore = ignoreButton.getSelection ();
-
- okButton.setEnabled (!(yes || no || retry || abort || ignore));
- cancelButton.setEnabled (!(abort || ignore || (yes != no)));
- yesButton.setEnabled (!(ok || retry || abort || ignore || (cancel && !yes && !no)));
- noButton.setEnabled (!(ok || retry || abort || ignore || (cancel && !yes && !no)));
- retryButton.setEnabled (!(ok || yes || no));
- abortButton.setEnabled (!(ok || cancel || yes || no));
- ignoreButton.setEnabled (!(ok || cancel || yes || no));
-
- createButton.setEnabled (
- !(ok || cancel || yes || no || retry || abort || ignore) ||
- ok ||
- (ok && cancel) ||
- (yes && no) ||
- (yes && no && cancel) ||
- (retry && cancel) ||
- (abort && retry && ignore));
-
-
- }
-
- /**
- * Handle the create button selection event.
- *
- * @param event org.eclipse.swt.events.SelectionEvent
- */
- void createButtonSelected(SelectionEvent event) {
-
- /* Compute the appropriate dialog style */
- int style = getDefaultStyle();
- 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;
- if (multiButton.getEnabled () && multiButton.getSelection ()) style |= SWT.MULTI;
-
- /* Open the appropriate dialog type */
- String name = dialogCombo.getText ();
-
- 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);
- textWidget.append ("getRGB() = " + dialog.getRGB() + 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);
- textWidget.append ("getFileNames() =" + Text.DELIMITER);
- if ((dialog.getStyle () & SWT.MULTI) != 0) {
- String [] files = dialog.getFileNames ();
- for (int i=0; i<files.length; i++) {
- textWidget.append ("\t" + files [i] + Text.DELIMITER);
- }
- }
- textWidget.append ("getFilterIndex() = " + dialog.getFilterIndex() + 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);
- textWidget.append ("getFontList() =" + Text.DELIMITER);
- FontData [] fonts = dialog.getFontList ();
- if (fonts != null) {
- for (int i=0; i<fonts.length; i++) {
- textWidget.append ("\t" + fonts [i] + Text.DELIMITER);
- }
- }
- textWidget.append ("getRGB() = " + dialog.getRGB() + 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);
- textWidget.append ("getScope() = " + dialog.getScope() + Text.DELIMITER);
- textWidget.append ("getStartPage() = " + dialog.getStartPage() + Text.DELIMITER);
- textWidget.append ("getEndPage() = " + dialog.getEndPage() + Text.DELIMITER);
- textWidget.append ("getPrintToFile() = " + dialog.getPrintToFile() + 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
- * right 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 a group to hold the dialog style combo box and
- * create dialog button.
- */
- dialogStyleGroup = new Group (controlGroup, SWT.NONE);
- 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]);
- dialogCombo.setVisibleItemCount(strings.length);
-
- /* Create the create dialog button */
- createButton = new Button(dialogStyleGroup, SWT.NONE);
- 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.NONE);
- 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.NONE);
- 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");
- noIconButton = new Button (iconStyleGroup, SWT.RADIO);
- noIconButton.setText (ControlExample.getResourceString("No_Icon"));
-
- /* Create a group for the modal style controls */
- Group modalStyleGroup = new Group (controlGroup, SWT.NONE);
- 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 */
- 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.NONE);
- 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 */
- openButton = new Button(fileDialogStyleGroup, SWT.RADIO);
- openButton.setText("SWT.OPEN");
- saveButton = new Button (fileDialogStyleGroup, SWT.RADIO);
- saveButton.setText ("SWT.SAVE");
- multiButton = new Button(fileDialogStyleGroup, SWT.CHECK);
- multiButton.setText("SWT.MULTI");
-
- /* Create the orientation group */
- if (RTL_SUPPORT_ENABLE) {
- createOrientationGroup();
- }
-
- /* 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);
- noIconButton.setEnabled (false);
- saveButton.setEnabled (false);
- openButton.setEnabled (false);
- openButton.setSelection (true);
- multiButton.setEnabled (false);
- noIconButton.setSelection (true);
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
- exampleGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
-
- /*
- * Create a group for the text widget to display
- * the results returned by the example dialogs.
- */
- resultGroup = new Group (exampleGroup, SWT.NONE);
- resultGroup.setLayout (new GridLayout ());
- resultGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- 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);
- }
-
- /**
- * The platform dialogs do not have SWT listeners.
- */
- void createListenersGroup () {
- }
-
- /**
- * 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);
- noIconButton.setEnabled (isMessageBox);
- saveButton.setEnabled (isFileDialog);
- openButton.setEnabled (isFileDialog);
- multiButton.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.
- */
- Widget [] getExampleWidgets () {
- return new Widget [0];
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Dialog";
- }
-
- /**
- * Recreates the "Example" widgets.
- */
- void recreateExampleWidgets () {
- if (textWidget == null) {
- super.recreateExampleWidgets ();
- }
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ExpandBarTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ExpandBarTab.java
deleted file mode 100644
index 1e1a25dcd4..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ExpandBarTab.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-
-class ExpandBarTab extends Tab {
- /* Example widgets and groups that contain them */
- ExpandBar expandBar1;
- Group expandBarGroup;
-
- /* Style widgets added to the "Style" group */
- Button verticalButton;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- ExpandBarTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the list */
- expandBarGroup = new Group (exampleGroup, SWT.NONE);
- expandBarGroup.setLayout (new GridLayout ());
- expandBarGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- expandBarGroup.setText ("ExpandBar");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- if (borderButton.getSelection ()) style |= SWT.BORDER;
- if (verticalButton.getSelection()) style |= SWT.V_SCROLL;
-
- /* Create the example widgets */
- expandBar1 = new ExpandBar (expandBarGroup, style);
-
- // First item
- Composite composite = new Composite (expandBar1, SWT.NONE);
- composite.setLayout(new GridLayout ());
- new Button (composite, SWT.PUSH).setText("SWT.PUSH");
- new Button (composite, SWT.RADIO).setText("SWT.RADIO");
- new Button (composite, SWT.CHECK).setText("SWT.CHECK");
- new Button (composite, SWT.TOGGLE).setText("SWT.TOGGLE");
- ExpandItem item = new ExpandItem (expandBar1, SWT.NONE, 0);
- item.setText(ControlExample.getResourceString("Item1_Text"));
- item.setHeight(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT).y);
- item.setControl(composite);
- item.setImage(instance.images[ControlExample.ciClosedFolder]);
-
- // Second item
- composite = new Composite (expandBar1, SWT.NONE);
- composite.setLayout(new GridLayout (2, false));
- new Label (composite, SWT.NONE).setImage(display.getSystemImage(SWT.ICON_ERROR));
- new Label (composite, SWT.NONE).setText("SWT.ICON_ERROR");
- new Label (composite, SWT.NONE).setImage(display.getSystemImage(SWT.ICON_INFORMATION));
- new Label (composite, SWT.NONE).setText("SWT.ICON_INFORMATION");
- new Label (composite, SWT.NONE).setImage(display.getSystemImage(SWT.ICON_WARNING));
- new Label (composite, SWT.NONE).setText("SWT.ICON_WARNING");
- new Label (composite, SWT.NONE).setImage(display.getSystemImage(SWT.ICON_QUESTION));
- new Label (composite, SWT.NONE).setText("SWT.ICON_QUESTION");
- item = new ExpandItem (expandBar1, SWT.NONE, 1);
- item.setText(ControlExample.getResourceString("Item2_Text"));
- item.setHeight(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT).y);
- item.setControl(composite);
- item.setImage(instance.images[ControlExample.ciOpenFolder]);
- item.setExpanded(true);
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup() {
- super.createStyleGroup ();
-
- /* Create the extra widgets */
- verticalButton = new Button (styleGroup, SWT.CHECK);
- verticalButton.setText ("SWT.V_SCROLL");
- verticalButton.setSelection(true);
- borderButton = new Button(styleGroup, SWT.CHECK);
- borderButton.setText("SWT.BORDER");
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {expandBar1};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"Spacing"};
- }
-
- /**
- * Gets the short text for the tab folder item.
- */
- String getShortTabText() {
- return "EB";
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "ExpandBar";
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- Widget [] widgets = getExampleWidgets ();
- if (widgets.length != 0){
- verticalButton.setSelection ((widgets [0].getStyle () & SWT.V_SCROLL) != 0);
- borderButton.setSelection ((widgets [0].getStyle () & SWT.BORDER) != 0);
- }
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/GroupTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/GroupTab.java
deleted file mode 100644
index 918434d302..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/GroupTab.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-class GroupTab extends Tab {
- Button titleButton;
-
- /* Example widgets and groups that contain them */
- Group group1;
- Group groupGroup;
-
- /* Style widgets added to the "Style" group */
- Button shadowEtchedInButton, shadowEtchedOutButton, shadowInButton, shadowOutButton, shadowNoneButton;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- GroupTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Other" group.
- */
- void createOtherGroup () {
- super.createOtherGroup ();
-
- /* Create display controls specific to this example */
- titleButton = new Button (otherGroup, SWT.CHECK);
- titleButton.setText (ControlExample.getResourceString("Title_Text"));
-
- /* Add the listeners */
- titleButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setTitleText ();
- }
- });
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the Group */
- groupGroup = new Group (exampleGroup, SWT.NONE);
- groupGroup.setLayout (new GridLayout ());
- groupGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- groupGroup.setText ("Group");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- if (shadowEtchedInButton.getSelection ()) style |= SWT.SHADOW_ETCHED_IN;
- if (shadowEtchedOutButton.getSelection ()) style |= SWT.SHADOW_ETCHED_OUT;
- if (shadowInButton.getSelection ()) style |= SWT.SHADOW_IN;
- if (shadowOutButton.getSelection ()) style |= SWT.SHADOW_OUT;
- if (shadowNoneButton.getSelection ()) style |= SWT.SHADOW_NONE;
- if (borderButton.getSelection ()) style |= SWT.BORDER;
-
- /* Create the example widgets */
- group1 = new Group (groupGroup, style);
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup() {
- super.createStyleGroup ();
-
- /* Create the extra widgets */
- shadowEtchedInButton = new Button (styleGroup, SWT.RADIO);
- shadowEtchedInButton.setText ("SWT.SHADOW_ETCHED_IN");
- shadowEtchedInButton.setSelection(true);
- shadowEtchedOutButton = new Button (styleGroup, SWT.RADIO);
- shadowEtchedOutButton.setText ("SWT.SHADOW_ETCHED_OUT");
- shadowInButton = new Button (styleGroup, SWT.RADIO);
- shadowInButton.setText ("SWT.SHADOW_IN");
- shadowOutButton = new Button (styleGroup, SWT.RADIO);
- shadowOutButton.setText ("SWT.SHADOW_OUT");
- shadowNoneButton = new Button (styleGroup, SWT.RADIO);
- shadowNoneButton.setText ("SWT.SHADOW_NONE");
- borderButton = new Button (styleGroup, SWT.CHECK);
- borderButton.setText ("SWT.BORDER");
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {group1};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"Text", "ToolTipText"};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Group";
- }
-
- /**
- * Sets the title text of the "Example" widgets.
- */
- void setTitleText () {
- if (titleButton.getSelection ()) {
- group1.setText (ControlExample.getResourceString("Title_Text"));
- } else {
- group1.setText ("");
- }
- setExampleWidgetSize ();
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- shadowEtchedInButton.setSelection ((group1.getStyle () & SWT.SHADOW_ETCHED_IN) != 0);
- shadowEtchedOutButton.setSelection ((group1.getStyle () & SWT.SHADOW_ETCHED_OUT) != 0);
- shadowInButton.setSelection ((group1.getStyle () & SWT.SHADOW_IN) != 0);
- shadowOutButton.setSelection ((group1.getStyle () & SWT.SHADOW_OUT) != 0);
- shadowNoneButton.setSelection ((group1.getStyle () & SWT.SHADOW_NONE) != 0);
- borderButton.setSelection ((group1.getStyle () & SWT.BORDER) != 0);
- if (!instance.startup) setTitleText ();
- }
-}
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 6a68ecb759..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/LabelTab.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-
-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 wrapButton, separatorButton, horizontalButton, verticalButton, shadowInButton, shadowOutButton, shadowNoneButton;
-
- /**
- * 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.NONE);
- GridLayout gridLayout = new GridLayout ();
- textLabelGroup.setLayout (gridLayout);
- gridLayout.numColumns = 3;
- textLabelGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- 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 (SWT.FILL, SWT.FILL, true, true));
- imageLabelGroup.setText (ControlExample.getResourceString("Image_Labels"));
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- if (wrapButton.getSelection ()) style |= SWT.WRAP;
- if (separatorButton.getSelection ()) style |= SWT.SEPARATOR;
- 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 (shadowNoneButton.getSelection ()) style |= SWT.SHADOW_NONE;
- if (borderButton.getSelection ()) style |= SWT.BORDER;
- if (leftButton.getSelection ()) style |= SWT.LEFT;
- if (centerButton.getSelection ()) style |= SWT.CENTER;
- if (rightButton.getSelection ()) style |= SWT.RIGHT;
-
- /* 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 */
- wrapButton = new Button (styleGroup, SWT.CHECK);
- wrapButton.setText ("SWT.WRAP");
- separatorButton = new Button (styleGroup, SWT.CHECK);
- separatorButton.setText ("SWT.SEPARATOR");
- 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.NONE);
- 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");
- shadowNoneButton = new Button (styleSubGroup, SWT.RADIO);
- shadowNoneButton.setText ("SWT.SHADOW_NONE");
- borderButton = new Button(styleGroup, SWT.CHECK);
- borderButton.setText("SWT.BORDER");
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {label1, label2, label3, label4, label5, label6};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"Text", "ToolTipText"};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Label";
- }
-
- /**
- * Sets the alignment of the "Example" widgets.
- */
- void setExampleWidgetAlignment () {
- int alignment = 0;
- if (leftButton.getSelection ()) alignment = SWT.LEFT;
- if (centerButton.getSelection ()) alignment = SWT.CENTER;
- if (rightButton.getSelection ()) alignment = SWT.RIGHT;
- label1.setAlignment (alignment);
- label2.setAlignment (alignment);
- label3.setAlignment (alignment);
- label4.setAlignment (alignment);
- label5.setAlignment (alignment);
- label6.setAlignment (alignment);
- }
-
- /**
- * 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 (isSeparator && (label1.getStyle () & SWT.SHADOW_OUT) != 0);
- shadowNoneButton.setSelection (isSeparator && (label1.getStyle () & SWT.SHADOW_NONE) != 0);
- horizontalButton.setSelection (isSeparator && (label1.getStyle () & SWT.HORIZONTAL) != 0);
- verticalButton.setSelection (isSeparator && (label1.getStyle () & SWT.VERTICAL) != 0);
- wrapButton.setEnabled (!isSeparator);
- leftButton.setEnabled (!isSeparator);
- centerButton.setEnabled (!isSeparator);
- rightButton.setEnabled (!isSeparator);
- shadowInButton.setEnabled (isSeparator);
- shadowOutButton.setEnabled (isSeparator);
- shadowNoneButton.setEnabled (isSeparator);
- horizontalButton.setEnabled (isSeparator);
- verticalButton.setEnabled (isSeparator);
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/LinkTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/LinkTab.java
deleted file mode 100644
index e8b01b8ab2..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/LinkTab.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-
-class LinkTab extends Tab {
- /* Example widgets and groups that contain them */
- Link link1;
- Group linkGroup;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- LinkTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the list */
- linkGroup = new Group (exampleGroup, SWT.NONE);
- linkGroup.setLayout (new GridLayout ());
- linkGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- linkGroup.setText ("Link");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- if (borderButton.getSelection ()) style |= SWT.BORDER;
-
- /* Create the example widgets */
- try {
- link1 = new Link (linkGroup, style);
- link1.setText (ControlExample.getResourceString("LinkText"));
- } catch (SWTError e) {
- // temporary code for photon
- Label label = new Label (linkGroup, SWT.CENTER | SWT.WRAP);
- label.setText ("Link widget not suported");
- }
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup() {
- super.createStyleGroup ();
-
- /* Create the extra widgets */
- borderButton = new Button(styleGroup, SWT.CHECK);
- borderButton.setText("SWT.BORDER");
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
-// temporary code for photon
- if (link1 != null) return new Widget [] {link1};
- return new Widget[] {};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"Text", "ToolTipText"};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Link";
- }
-
-}
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 3ceaca98eb..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ListTab.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-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.NONE);
- listGroup.setLayout (new GridLayout ());
- listGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- listGroup.setText ("List");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- 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.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {list1};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"Items", "Selection", "ToolTipText", "TopIndex"};
- }
-
- /**
- * 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/MenuTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/MenuTab.java
deleted file mode 100644
index 0e1579ddb0..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/MenuTab.java
+++ /dev/null
@@ -1,309 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-class MenuTab extends Tab {
- /* Widgets added to the "Menu Style", "MenuItem Style" and "Other" groups */
- Button barButton, dropDownButton, popUpButton, noRadioGroupButton, leftToRightButton, rightToLeftButton;
- Button checkButton, cascadeButton, pushButton, radioButton, separatorButton;
- Button imagesButton, acceleratorsButton, mnemonicsButton, subMenuButton, subSubMenuButton;
- Button createButton, closeAllButton;
- Group menuItemStyleGroup;
-
- /* Variables used to track the open shells */
- int shellCount = 0;
- Shell [] shells = new Shell [4];
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- MenuTab(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;
- }
-
- int orientation = 0;
- if (leftToRightButton.getSelection()) orientation |= SWT.LEFT_TO_RIGHT;
- if (rightToLeftButton.getSelection()) orientation |= SWT.RIGHT_TO_LEFT;
- int radioBehavior = 0;
- if (noRadioGroupButton.getSelection()) radioBehavior |= SWT.NO_RADIO_GROUP;
-
- /* Create the shell and menu(s) */
- Shell shell = new Shell (SWT.SHELL_TRIM | orientation);
- shells [shellCount] = shell;
- if (barButton.getSelection ()) {
- /* Create menu bar. */
- Menu menuBar = new Menu(shell, SWT.BAR | radioBehavior);
- shell.setMenuBar(menuBar);
- hookListeners(menuBar);
-
- if (dropDownButton.getSelection() && cascadeButton.getSelection()) {
- /* Create cascade button and drop-down menu in menu bar. */
- MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
- item.setText(getMenuItemText("Cascade"));
- if (imagesButton.getSelection()) item.setImage(instance.images[ControlExample.ciOpenFolder]);
- hookListeners(item);
- Menu dropDownMenu = new Menu(shell, SWT.DROP_DOWN | radioBehavior);
- item.setMenu(dropDownMenu);
- hookListeners(dropDownMenu);
-
- /* Create various menu items, depending on selections. */
- createMenuItems(dropDownMenu, subMenuButton.getSelection(), subSubMenuButton.getSelection());
- }
- }
-
- if (popUpButton.getSelection()) {
- /* Create pop-up menu. */
- Menu popUpMenu = new Menu(shell, SWT.POP_UP | radioBehavior);
- shell.setMenu(popUpMenu);
- hookListeners(popUpMenu);
-
- /* Create various menu items, depending on selections. */
- createMenuItems(popUpMenu, subMenuButton.getSelection(), subSubMenuButton.getSelection());
- }
-
- /* Set the size, title and open the shell. */
- shell.setSize (300, 100);
- shell.setText (ControlExample.getResourceString("Title") + shellCount);
- shell.addPaintListener(new PaintListener() {
- public void paintControl(PaintEvent e) {
- e.gc.drawString(ControlExample.getResourceString("PopupMenuHere"), 20, 20);
- }
- });
- shell.open ();
- shellCount++;
- }
-
- /**
- * Creates the "Control" group.
- */
- void createControlGroup () {
- /*
- * Create the "Control" group. This is the group on the
- * right half of each example tab. For MenuTab, it consists of
- * the Menu style group, the MenuItem style group and the 'other' group.
- */
- controlGroup = new Group (tabFolderPage, SWT.NONE);
- controlGroup.setLayout (new GridLayout (2, true));
- controlGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- controlGroup.setText (ControlExample.getResourceString("Parameters"));
-
- /* Create a group for the menu style controls */
- 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("Menu_Styles"));
-
- /* Create a group for the menu item style controls */
- menuItemStyleGroup = new Group (controlGroup, SWT.NONE);
- menuItemStyleGroup.setLayout (new GridLayout ());
- menuItemStyleGroup.setLayoutData (new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- menuItemStyleGroup.setText (ControlExample.getResourceString("MenuItem_Styles"));
-
- /* Create a group for the 'other' controls */
- otherGroup = new Group (controlGroup, SWT.NONE);
- otherGroup.setLayout (new GridLayout ());
- otherGroup.setLayoutData (new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- otherGroup.setText (ControlExample.getResourceString("Other"));
- }
-
- /**
- * Creates the "Control" widget children.
- */
- void createControlWidgets () {
-
- /* Create the menu style buttons */
- barButton = new Button (styleGroup, SWT.CHECK);
- barButton.setText ("SWT.BAR");
- dropDownButton = new Button (styleGroup, SWT.CHECK);
- dropDownButton.setText ("SWT.DROP_DOWN");
- popUpButton = new Button (styleGroup, SWT.CHECK);
- popUpButton.setText ("SWT.POP_UP");
- noRadioGroupButton = new Button (styleGroup, SWT.CHECK);
- noRadioGroupButton.setText ("SWT.NO_RADIO_GROUP");
- leftToRightButton = new Button (styleGroup, SWT.RADIO);
- leftToRightButton.setText ("SWT.LEFT_TO_RIGHT");
- leftToRightButton.setSelection(true);
- rightToLeftButton = new Button (styleGroup, SWT.RADIO);
- rightToLeftButton.setText ("SWT.RIGHT_TO_LEFT");
-
- /* Create the menu item style buttons */
- cascadeButton = new Button (menuItemStyleGroup, SWT.CHECK);
- cascadeButton.setText ("SWT.CASCADE");
- checkButton = new Button (menuItemStyleGroup, SWT.CHECK);
- checkButton.setText ("SWT.CHECK");
- pushButton = new Button (menuItemStyleGroup, SWT.CHECK);
- pushButton.setText ("SWT.PUSH");
- radioButton = new Button (menuItemStyleGroup, SWT.CHECK);
- radioButton.setText ("SWT.RADIO");
- separatorButton = new Button (menuItemStyleGroup, SWT.CHECK);
- separatorButton.setText ("SWT.SEPARATOR");
-
- /* Create the 'other' buttons */
- imagesButton = new Button (otherGroup, SWT.CHECK);
- imagesButton.setText (ControlExample.getResourceString("Images"));
- acceleratorsButton = new Button (otherGroup, SWT.CHECK);
- acceleratorsButton.setText (ControlExample.getResourceString("Accelerators"));
- mnemonicsButton = new Button (otherGroup, SWT.CHECK);
- mnemonicsButton.setText (ControlExample.getResourceString("Mnemonics"));
- subMenuButton = new Button (otherGroup, SWT.CHECK);
- subMenuButton.setText (ControlExample.getResourceString("SubMenu"));
- subSubMenuButton = new Button (otherGroup, SWT.CHECK);
- subSubMenuButton.setText (ControlExample.getResourceString("SubSubMenu"));
-
- /* Create the "create" and "closeAll" buttons (and a 'filler' label to place them) */
- new Label(controlGroup, SWT.NONE);
- createButton = new Button (controlGroup, SWT.NONE);
- createButton.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_END));
- createButton.setText (ControlExample.getResourceString("Create_Shell"));
- closeAllButton = new Button (controlGroup, SWT.NONE);
- closeAllButton.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_BEGINNING));
- closeAllButton.setText (ControlExample.getResourceString("Close_All_Shells"));
-
- /* Add the listeners */
- createButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- createButtonSelected(e);
- }
- });
- closeAllButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- closeAllShells ();
- }
- });
- subMenuButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- subSubMenuButton.setEnabled (subMenuButton.getSelection ());
- }
- });
-
- /* Set the default state */
- barButton.setSelection (true);
- dropDownButton.setSelection (true);
- popUpButton.setSelection (true);
- cascadeButton.setSelection (true);
- checkButton.setSelection (true);
- pushButton.setSelection (true);
- radioButton.setSelection (true);
- separatorButton.setSelection (true);
- subSubMenuButton.setEnabled (subMenuButton.getSelection ());
- }
-
- /* Create various menu items, depending on selections. */
- void createMenuItems(Menu menu, boolean createSubMenu, boolean createSubSubMenu) {
- MenuItem item;
- if (pushButton.getSelection()) {
- item = new MenuItem(menu, SWT.PUSH);
- item.setText(getMenuItemText("Push"));
- if (acceleratorsButton.getSelection()) item.setAccelerator(SWT.MOD1 + SWT.MOD2 + 'P');
- if (imagesButton.getSelection()) item.setImage(instance.images[ControlExample.ciClosedFolder]);
- hookListeners(item);
- }
-
- if (separatorButton.getSelection()) {
- new MenuItem(menu, SWT.SEPARATOR);
- }
-
- if (checkButton.getSelection()) {
- item = new MenuItem(menu, SWT.CHECK);
- item.setText(getMenuItemText("Check"));
- if (acceleratorsButton.getSelection()) item.setAccelerator(SWT.MOD1 + SWT.MOD2 + 'C');
- if (imagesButton.getSelection()) item.setImage(instance.images[ControlExample.ciOpenFolder]);
- hookListeners(item);
- }
-
- if (radioButton.getSelection()) {
- item = new MenuItem(menu, SWT.RADIO);
- item.setText(getMenuItemText("1Radio"));
- if (acceleratorsButton.getSelection()) item.setAccelerator(SWT.MOD1 + SWT.MOD2 + '1');
- if (imagesButton.getSelection()) item.setImage(instance.images[ControlExample.ciTarget]);
- item.setSelection(true);
- hookListeners(item);
-
- item = new MenuItem(menu, SWT.RADIO);
- item.setText(getMenuItemText("2Radio"));
- if (acceleratorsButton.getSelection()) item.setAccelerator(SWT.MOD1 + SWT.MOD2 + '2');
- if (imagesButton.getSelection()) item.setImage(instance.images[ControlExample.ciTarget]);
- hookListeners(item);
- }
-
- if (createSubMenu && cascadeButton.getSelection()) {
- /* Create cascade button and drop-down menu for the sub-menu. */
- item = new MenuItem(menu, SWT.CASCADE);
- item.setText(getMenuItemText("Cascade"));
- if (imagesButton.getSelection()) item.setImage(instance.images[ControlExample.ciOpenFolder]);
- hookListeners(item);
- Menu subMenu = new Menu(menu.getShell(), SWT.DROP_DOWN);
- item.setMenu(subMenu);
- hookListeners(subMenu);
-
- createMenuItems(subMenu, createSubSubMenu, false);
- }
- }
-
- String getMenuItemText(String item) {
- boolean cascade = item.equals("Cascade");
- boolean mnemonic = mnemonicsButton.getSelection();
- boolean accelerator = acceleratorsButton.getSelection();
- char acceleratorKey = item.charAt(0);
- if (mnemonic && accelerator && !cascade) {
- return ControlExample.getResourceString(item + "WithMnemonic") + "\tCtrl+Shift+" + acceleratorKey;
- }
- if (accelerator && !cascade) {
- return ControlExample.getResourceString(item) + "\tCtrl+Shift+" + acceleratorKey;
- }
- if (mnemonic) {
- return ControlExample.getResourceString(item + "WithMnemonic");
- }
- return ControlExample.getResourceString(item);
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Menu";
- }
-}
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 8d91ff3cf2..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ProgressBarTab.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-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.NONE);
- progressBarGroup.setLayout (new GridLayout ());
- progressBarGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- progressBarGroup.setText ("ProgressBar");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- 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);
- }
-
- /**
- * 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.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {progressBar1};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"Selection", "State", "ToolTipText"};
- }
-
- /**
- * Gets the short text for the tab folder item.
- */
- String getShortTabText() {
- return "PB";
- }
-
- /**
- * 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 ()) {
- selectionSpinner.setEnabled (false);
- minimumSpinner.setEnabled (false);
- maximumSpinner.setEnabled (false);
- } else {
- selectionSpinner.setEnabled (true);
- minimumSpinner.setEnabled (true);
- maximumSpinner.setEnabled (true);
- }
- smoothButton.setSelection ((progressBar1.getStyle () & SWT.SMOOTH) != 0);
- indeterminateButton.setSelection ((progressBar1.getStyle () & SWT.INDETERMINATE) != 0);
- }
-
- /**
- * Gets the default maximum of the "Example" widgets.
- */
- int getDefaultMaximum () {
- return progressBar1.getMaximum();
- }
-
- /**
- * Gets the default minimim of the "Example" widgets.
- */
- int getDefaultMinimum () {
- return progressBar1.getMinimum();
- }
-
- /**
- * Gets the default selection of the "Example" widgets.
- */
- int getDefaultSelection () {
- return progressBar1.getSelection();
- }
-
- /**
- * Sets the maximum of the "Example" widgets.
- */
- void setWidgetMaximum () {
- progressBar1.setMaximum (maximumSpinner.getSelection ());
- updateSpinners ();
- }
-
- /**
- * Sets the minimim of the "Example" widgets.
- */
- void setWidgetMinimum () {
- progressBar1.setMinimum (minimumSpinner.getSelection ());
- updateSpinners ();
- }
-
- /**
- * Sets the selection of the "Example" widgets.
- */
- void setWidgetSelection () {
- progressBar1.setSelection (selectionSpinner.getSelection ());
- updateSpinners ();
- }
-
- /**
- * Update the Spinner widgets to reflect the actual value set
- * on the "Example" widget.
- */
- void updateSpinners () {
- minimumSpinner.setSelection (progressBar1.getMinimum ());
- selectionSpinner.setSelection (progressBar1.getSelection ());
- maximumSpinner.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 2b292a6c10..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/RangeTab.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-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;
- boolean orientationButtons = true;
-
- /* Scale widgets added to the "Control" group */
- Spinner minimumSpinner, selectionSpinner, maximumSpinner;
-
- /**
- * 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.NONE);
- maximumGroup.setLayout (new GridLayout ());
- maximumGroup.setText (ControlExample.getResourceString("Maximum"));
- maximumGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-
- /* Create a Spinner widget */
- maximumSpinner = new Spinner (maximumGroup, SWT.BORDER);
- maximumSpinner.setMaximum (100000);
- maximumSpinner.setSelection (getDefaultMaximum());
- maximumSpinner.setPageIncrement (100);
- maximumSpinner.setIncrement (1);
- maximumSpinner.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
-
- /* Add the listeners */
- maximumSpinner.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.NONE);
- minimumGroup.setLayout (new GridLayout ());
- minimumGroup.setText (ControlExample.getResourceString("Minimum"));
- minimumGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-
- /* Create a Spinner widget */
- minimumSpinner = new Spinner (minimumGroup, SWT.BORDER);
- minimumSpinner.setMaximum (100000);
- minimumSpinner.setSelection(getDefaultMinimum());
- minimumSpinner.setPageIncrement (100);
- minimumSpinner.setIncrement (1);
- minimumSpinner.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
-
- /* Add the listeners */
- minimumSpinner.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.NONE);
- selectionGroup.setLayout(new GridLayout());
- GridData gridData = new GridData(SWT.FILL, SWT.BEGINNING, false, false);
- selectionGroup.setLayoutData(gridData);
- selectionGroup.setText(ControlExample.getResourceString("Selection"));
-
- /* Create a Spinner widget */
- selectionSpinner = new Spinner (selectionGroup, SWT.BORDER);
- selectionSpinner.setMaximum (100000);
- selectionSpinner.setSelection (getDefaultSelection());
- selectionSpinner.setPageIncrement (100);
- selectionSpinner.setIncrement (1);
- selectionSpinner.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
-
- /* Add the listeners */
- selectionSpinner.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- setWidgetSelection ();
- }
- });
-
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup () {
- super.createStyleGroup ();
-
- /* Create the extra widgets */
- if (orientationButtons) {
- 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 ();
- if (!instance.startup) {
- setWidgetMinimum ();
- setWidgetMaximum ();
- setWidgetSelection ();
- }
- Widget [] widgets = getExampleWidgets ();
- if (widgets.length != 0) {
- if (orientationButtons) {
- horizontalButton.setSelection ((widgets [0].getStyle () & SWT.HORIZONTAL) != 0);
- verticalButton.setSelection ((widgets [0].getStyle () & SWT.VERTICAL) != 0);
- }
- borderButton.setSelection ((widgets [0].getStyle () & SWT.BORDER) != 0);
- }
- }
-
- /**
- * Gets the default maximum of the "Example" widgets.
- */
- abstract int getDefaultMaximum ();
-
- /**
- * Gets the default minimim of the "Example" widgets.
- */
- abstract int getDefaultMinimum ();
-
- /**
- * Gets the default selection of the "Example" widgets.
- */
- abstract int getDefaultSelection ();
-
- /**
- * 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/SashFormTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashFormTab.java
deleted file mode 100644
index fe4247e32f..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashFormTab.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-class SashFormTab extends Tab {
- /* Example widgets and groups that contain them */
- Group sashFormGroup;
- SashForm form;
- List list1, list2;
- Text text;
-
- /* Style widgets added to the "Style" group */
- Button horizontalButton, verticalButton, smoothButton;
-
- static String [] ListData0 = {ControlExample.getResourceString("ListData0_0"), //$NON-NLS-1$
- ControlExample.getResourceString("ListData0_1"), //$NON-NLS-1$
- ControlExample.getResourceString("ListData0_2"), //$NON-NLS-1$
- ControlExample.getResourceString("ListData0_3"), //$NON-NLS-1$
- ControlExample.getResourceString("ListData0_4"), //$NON-NLS-1$
- ControlExample.getResourceString("ListData0_5"), //$NON-NLS-1$
- ControlExample.getResourceString("ListData0_6"), //$NON-NLS-1$
- ControlExample.getResourceString("ListData0_7")}; //$NON-NLS-1$
-
- static String [] ListData1 = {ControlExample.getResourceString("ListData1_0"), //$NON-NLS-1$
- ControlExample.getResourceString("ListData1_1"), //$NON-NLS-1$
- ControlExample.getResourceString("ListData1_2"), //$NON-NLS-1$
- ControlExample.getResourceString("ListData1_3"), //$NON-NLS-1$
- ControlExample.getResourceString("ListData1_4"), //$NON-NLS-1$
- ControlExample.getResourceString("ListData1_5"), //$NON-NLS-1$
- ControlExample.getResourceString("ListData1_6"), //$NON-NLS-1$
- ControlExample.getResourceString("ListData1_7")}; //$NON-NLS-1$
-
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- SashFormTab(ControlExample instance) {
- super(instance);
- }
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the sashform widget */
- sashFormGroup = new Group (exampleGroup, SWT.NONE);
- sashFormGroup.setLayout (new GridLayout ());
- sashFormGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- sashFormGroup.setText ("SashForm");
- }
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- if (horizontalButton.getSelection ()) style |= SWT.H_SCROLL;
- if (verticalButton.getSelection ()) style |= SWT.V_SCROLL;
- if (smoothButton.getSelection ()) style |= SWT.SMOOTH;
-
- /* Create the example widgets */
- form = new SashForm (sashFormGroup, style);
- list1 = new List (form, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
- list1.setItems (ListData0);
- list2 = new List (form, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
- list2.setItems (ListData1);
- text = new Text (form, SWT.MULTI | SWT.BORDER);
- text.setText (ControlExample.getResourceString("Multi_line")); //$NON-NLS-1$
- form.setWeights(new int[] {1, 1, 1});
- }
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup() {
- super.createStyleGroup();
-
- /* Create the extra widgets */
- horizontalButton = new Button (styleGroup, SWT.RADIO);
- horizontalButton.setText ("SWT.HORIZONTAL");
- horizontalButton.setSelection(true);
- verticalButton = new Button (styleGroup, SWT.RADIO);
- verticalButton.setText ("SWT.VERTICAL");
- verticalButton.setSelection(false);
- smoothButton = new Button (styleGroup, SWT.CHECK);
- smoothButton.setText ("SWT.SMOOTH");
- smoothButton.setSelection(false);
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {form};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "SashForm"; //$NON-NLS-1$
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- horizontalButton.setSelection ((form.getStyle () & SWT.H_SCROLL) != 0);
- verticalButton.setSelection ((form.getStyle () & SWT.V_SCROLL) != 0);
- smoothButton.setSelection ((form.getStyle () & SWT.SMOOTH) != 0);
- }
-}
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 e55aa8fc23..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SashTab.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.events.*;
-
-class SashTab extends Tab {
- /* Example widgets and groups that contain them */
- Sash hSash, vSash;
- Composite sashComp;
- Group sashGroup;
- List list1, list2, list3;
- Text text;
- Button smoothButton;
-
- 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;
- static final int SASH_LIMIT = 20;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- SashTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
- exampleGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- exampleGroup.setLayout(new FillLayout());
-
- /* Create a group for the sash widgets */
- sashGroup = new Group (exampleGroup, SWT.NONE);
- FillLayout layout = new FillLayout();
- layout.marginHeight = layout.marginWidth = 5;
- sashGroup.setLayout(layout);
- sashGroup.setText ("Sash");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
- /*
- * Create the page. This example does not use layouts.
- */
- sashComp = new Composite(sashGroup, SWT.BORDER);
-
- /* Create the list and text widgets */
- list1 = new List (sashComp, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
- list1.setItems (ListData0);
- list2 = new List (sashComp, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
- list2.setItems (ListData1);
- text = new Text (sashComp, SWT.MULTI | SWT.BORDER);
- text.setText (ControlExample.getResourceString("Multi_line"));
-
- /* Create the sashes */
- int style = getDefaultStyle();
- if (smoothButton.getSelection()) style |= SWT.SMOOTH;
- vSash = new Sash (sashComp, SWT.VERTICAL | style);
- hSash = new Sash (sashComp, SWT.HORIZONTAL | style);
-
- /* Add the listeners */
- hSash.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- Rectangle rect = vSash.getParent().getClientArea();
- event.y = Math.min (Math.max (event.y, SASH_LIMIT), rect.height - SASH_LIMIT);
- 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) {
- Rectangle rect = vSash.getParent().getClientArea();
- event.x = Math.min (Math.max (event.x, SASH_LIMIT), rect.width - SASH_LIMIT);
- if (event.detail != SWT.DRAG) {
- vSash.setBounds (event.x, event.y, event.width, event.height);
- layout ();
- }
- }
- });
- sashComp.addControlListener (new ControlAdapter () {
- public void controlResized (ControlEvent event) {
- resized ();
- }
- });
- }
-
- /**
- * Creates the "Size" group. The "Size" group contains
- * controls that allow the user to change the size of
- * the example widgets.
- */
- void createSizeGroup () {
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup() {
- super.createStyleGroup ();
-
- /* Create the extra widgets */
- smoothButton = new Button (styleGroup, SWT.CHECK);
- smoothButton.setText("SWT.SMOOTH");
- }
-
- void disposeExampleWidgets () {
- sashComp.dispose();
- sashComp = null;
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {hSash, vSash};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"ToolTipText"};
- }
-
- /**
- * 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 clientArea = sashComp.getClientArea ();
- Rectangle hSashBounds = hSash.getBounds ();
- Rectangle vSashBounds = vSash.getBounds ();
-
- list1.setBounds (0, 0, vSashBounds.x, hSashBounds.y);
- list2.setBounds (vSashBounds.x + vSashBounds.width, 0, clientArea.width - (vSashBounds.x + vSashBounds.width), hSashBounds.y);
- text.setBounds (0, hSashBounds.y + hSashBounds.height, clientArea.width, clientArea.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);
- }
- /**
- * Sets the size of the "Example" widgets.
- */
- void setExampleWidgetSize () {
- sashGroup.layout (true);
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- smoothButton.setSelection ((hSash.getStyle () & SWT.SMOOTH) != 0);
- }
-
- /**
- * Handle the shell resized event.
- */
- void resized () {
-
- /* Get the client area for the shell */
- Rectangle clientArea = sashComp.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, (clientArea.width - SASH_WIDTH) / 2, (clientArea.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, clientArea.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, clientArea.width, clientArea.height - (list1Bounds.height + SASH_WIDTH));
-
- /* Position the sashes */
- vSash.setBounds (list1Bounds.width, 0, SASH_WIDTH, list1Bounds.height);
- hSash.setBounds (0, list1Bounds.height, clientArea.width, SASH_WIDTH);
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ScaleTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ScaleTab.java
deleted file mode 100644
index 1ab2e0af08..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ScaleTab.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-
-class ScaleTab extends RangeTab {
- /* Example widgets and groups that contain them */
- Scale scale1;
- Group scaleGroup;
-
- /* Spinner widgets added to the "Control" group */
- Spinner incrementSpinner, pageIncrementSpinner;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- ScaleTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Control" widget children.
- */
- void createControlWidgets () {
- super.createControlWidgets ();
- createIncrementGroup ();
- createPageIncrementGroup ();
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the scale */
- scaleGroup = new Group (exampleGroup, SWT.NONE);
- scaleGroup.setLayout (new GridLayout ());
- scaleGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- scaleGroup.setText ("Scale");
-
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- 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);
- }
-
- /**
- * 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.NONE);
- incrementGroup.setLayout (new GridLayout ());
- incrementGroup.setText (ControlExample.getResourceString("Increment"));
- incrementGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-
- /* Create the Spinner widget */
- incrementSpinner = new Spinner (incrementGroup, SWT.BORDER);
- incrementSpinner.setMaximum (100000);
- incrementSpinner.setSelection (getDefaultIncrement());
- incrementSpinner.setPageIncrement (100);
- incrementSpinner.setIncrement (1);
- incrementSpinner.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
-
- /* Add the listeners */
- incrementSpinner.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.NONE);
- pageIncrementGroup.setLayout (new GridLayout ());
- pageIncrementGroup.setText (ControlExample.getResourceString("Page_Increment"));
- pageIncrementGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-
- /* Create the Spinner widget */
- pageIncrementSpinner = new Spinner (pageIncrementGroup, SWT.BORDER);
- pageIncrementSpinner.setMaximum (100000);
- pageIncrementSpinner.setSelection (getDefaultPageIncrement());
- pageIncrementSpinner.setPageIncrement (100);
- pageIncrementSpinner.setIncrement (1);
- pageIncrementSpinner.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
-
- /* Add the listeners */
- pageIncrementSpinner.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setWidgetPageIncrement ();
- }
- });
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {scale1};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"Selection", "ToolTipText"};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Scale";
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- if (!instance.startup) {
- setWidgetIncrement ();
- setWidgetPageIncrement ();
- }
- }
-
- /**
- * Gets the default maximum of the "Example" widgets.
- */
- int getDefaultMaximum () {
- return scale1.getMaximum();
- }
-
- /**
- * Gets the default minimim of the "Example" widgets.
- */
- int getDefaultMinimum () {
- return scale1.getMinimum();
- }
-
- /**
- * Gets the default selection of the "Example" widgets.
- */
- int getDefaultSelection () {
- return scale1.getSelection();
- }
-
- /**
- * Gets the default increment of the "Example" widgets.
- */
- int getDefaultIncrement () {
- return scale1.getIncrement();
- }
-
- /**
- * Gets the default page increment of the "Example" widgets.
- */
- int getDefaultPageIncrement () {
- return scale1.getPageIncrement();
- }
-
- /**
- * Sets the increment of the "Example" widgets.
- */
- void setWidgetIncrement () {
- scale1.setIncrement (incrementSpinner.getSelection ());
- }
-
- /**
- * Sets the minimim of the "Example" widgets.
- */
- void setWidgetMaximum () {
- scale1.setMaximum (maximumSpinner.getSelection ());
- }
-
- /**
- * Sets the minimim of the "Example" widgets.
- */
- void setWidgetMinimum () {
- scale1.setMinimum (minimumSpinner.getSelection ());
- }
-
- /**
- * Sets the page increment of the "Example" widgets.
- */
- void setWidgetPageIncrement () {
- scale1.setPageIncrement (pageIncrementSpinner.getSelection ());
- }
-
- /**
- * Sets the selection of the "Example" widgets.
- */
- void setWidgetSelection () {
- scale1.setSelection (selectionSpinner.getSelection ());
- }
-}
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 8a8708c3e4..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ScrollableTab.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-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;
-
- /**
- * 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 ();
- Widget [] widgets = getExampleWidgets ();
- if (widgets.length != 0){
- singleButton.setSelection ((widgets [0].getStyle () & SWT.SINGLE) != 0);
- multiButton.setSelection ((widgets [0].getStyle () & SWT.MULTI) != 0);
- horizontalButton.setSelection ((widgets [0].getStyle () & SWT.H_SCROLL) != 0);
- verticalButton.setSelection ((widgets [0].getStyle () & SWT.V_SCROLL) != 0);
- borderButton.setSelection ((widgets [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 b8398c6c82..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ShellTab.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-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" groups, and "Other" group */
- Button noParentButton, parentButton;
- Button noTrimButton, closeButton, titleButton, minButton, maxButton, borderButton, resizeButton, onTopButton, toolButton;
- Button createButton, closeAllButton;
- Button modelessButton, primaryModalButton, applicationModalButton, systemModalButton;
- Button imageButton;
- 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 (toolButton.getSelection()) style |= SWT.TOOL;
- 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 {
- 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 close = new Button(currentShell, SWT.PUSH);
- close.setBounds(160, 20, 120, 30);
- close.setText(ControlExample.getResourceString("Close"));
- close.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- currentShell.dispose();
- }
- });
-
- /* Set the size, title, and image, and open the shell */
- currentShell.setSize (300, 100);
- currentShell.setText (ControlExample.getResourceString("Title") + shellCount);
- if (imageButton.getSelection()) currentShell.setImage(instance.images[ControlExample.ciTarget]);
- if (backgroundImageButton.getSelection()) currentShell.setBackgroundImage(instance.images[ControlExample.ciBackground]);
- hookListeners (currentShell);
- currentShell.open ();
- shellCount++;
- }
-
- /**
- * Creates the "Control" group.
- */
- void createControlGroup () {
- /*
- * Create the "Control" group. This is the group on the
- * right half of each example tab. It consists of the
- * style group, the 'other' group and the size group.
- */
- controlGroup = new Group (tabFolderPage, SWT.NONE);
- controlGroup.setLayout (new GridLayout (2, true));
- controlGroup.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- controlGroup.setText (ControlExample.getResourceString("Parameters"));
-
- /* Create a group for the decoration style controls */
- styleGroup = new Group (controlGroup, SWT.NONE);
- styleGroup.setLayout (new GridLayout ());
- styleGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, false, false, 1, 3));
- styleGroup.setText (ControlExample.getResourceString("Decoration_Styles"));
-
- /* Create a group for the modal style controls */
- modalStyleGroup = new Group (controlGroup, SWT.NONE);
- modalStyleGroup.setLayout (new GridLayout ());
- modalStyleGroup.setLayoutData (new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
- modalStyleGroup.setText (ControlExample.getResourceString("Modal_Styles"));
-
- /* Create a group for the 'other' controls */
- otherGroup = new Group (controlGroup, SWT.NONE);
- otherGroup.setLayout (new GridLayout ());
- otherGroup.setLayoutData (new GridData(SWT.FILL, SWT.FILL, false, false));
- otherGroup.setText (ControlExample.getResourceString("Other"));
-
- /* Create a group for the parent style controls */
- parentStyleGroup = new Group (controlGroup, SWT.NONE);
- 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 the decoration style buttons */
- noTrimButton = new Button (styleGroup, SWT.CHECK);
- noTrimButton.setText ("SWT.NO_TRIM");
- closeButton = new Button (styleGroup, SWT.CHECK);
- closeButton.setText ("SWT.CLOSE");
- titleButton = new Button (styleGroup, SWT.CHECK);
- titleButton.setText ("SWT.TITLE");
- minButton = new Button (styleGroup, SWT.CHECK);
- minButton.setText ("SWT.MIN");
- maxButton = new Button (styleGroup, SWT.CHECK);
- maxButton.setText ("SWT.MAX");
- borderButton = new Button (styleGroup, SWT.CHECK);
- borderButton.setText ("SWT.BORDER");
- resizeButton = new Button (styleGroup, SWT.CHECK);
- resizeButton.setText ("SWT.RESIZE");
- onTopButton = new Button (styleGroup, SWT.CHECK);
- onTopButton.setText ("SWT.ON_TOP");
- toolButton = new Button (styleGroup, SWT.CHECK);
- toolButton.setText ("SWT.TOOL");
-
- /* 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 'other' buttons */
- imageButton = new Button (otherGroup, SWT.CHECK);
- imageButton.setText (ControlExample.getResourceString("Image"));
- backgroundImageButton = new Button(otherGroup, SWT.CHECK);
- backgroundImageButton.setText(ControlExample.getResourceString("BackgroundImage"));
-
- /* Create the "create" and "closeAll" buttons */
- createButton = new Button (controlGroup, SWT.NONE);
- GridData gridData = new GridData (GridData.HORIZONTAL_ALIGN_END);
- createButton.setLayoutData (gridData);
- createButton.setText (ControlExample.getResourceString("Create_Shell"));
- closeAllButton = new Button (controlGroup, SWT.NONE);
- 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);
- backgroundImageButton.setSelection(false);
- }
-
- /**
- * 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 1bb8390ddf..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SliderTab.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-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 */
- Slider slider1;
- Group sliderGroup;
-
- /* Spinner widgets added to the "Control" group */
- Spinner incrementSpinner, pageIncrementSpinner, thumbSpinner;
-
- /**
- * 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.NONE);
- sliderGroup.setLayout (new GridLayout ());
- sliderGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- sliderGroup.setText ("Slider");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- if (horizontalButton.getSelection ()) style |= SWT.HORIZONTAL;
- if (verticalButton.getSelection ()) style |= SWT.VERTICAL;
- if (borderButton.getSelection ()) style |= SWT.BORDER;
-
- /* Create the example widgets */
- slider1 = new Slider(sliderGroup, style);
- }
-
- /**
- * 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.NONE);
- incrementGroup.setLayout (new GridLayout ());
- incrementGroup.setText (ControlExample.getResourceString("Increment"));
- incrementGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-
- /* Create the Spinner widget */
- incrementSpinner = new Spinner (incrementGroup, SWT.BORDER);
- incrementSpinner.setMaximum (100000);
- incrementSpinner.setSelection (getDefaultIncrement());
- incrementSpinner.setPageIncrement (100);
- incrementSpinner.setIncrement (1);
- incrementSpinner.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
-
- /* Add the listeners */
- incrementSpinner.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.NONE);
- pageIncrementGroup.setLayout (new GridLayout ());
- pageIncrementGroup.setText (ControlExample.getResourceString("Page_Increment"));
- pageIncrementGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-
- /* Create the Spinner widget */
- pageIncrementSpinner = new Spinner (pageIncrementGroup, SWT.BORDER);
- pageIncrementSpinner.setMaximum (100000);
- pageIncrementSpinner.setSelection (getDefaultPageIncrement());
- pageIncrementSpinner.setPageIncrement (100);
- pageIncrementSpinner.setIncrement (1);
- pageIncrementSpinner.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
-
- /* Add the listeners */
- pageIncrementSpinner.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.NONE);
- thumbGroup.setLayout (new GridLayout ());
- thumbGroup.setText (ControlExample.getResourceString("Thumb"));
- thumbGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-
- /* Create the Spinner widget */
- thumbSpinner = new Spinner (thumbGroup, SWT.BORDER);
- thumbSpinner.setMaximum (100000);
- thumbSpinner.setSelection (getDefaultThumb());
- thumbSpinner.setPageIncrement (100);
- thumbSpinner.setIncrement (1);
- thumbSpinner.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
-
- /* Add the listeners */
- thumbSpinner.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setWidgetThumb ();
- }
- });
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {slider1};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"Selection", "ToolTipText"};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Slider";
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- if (!instance.startup) {
- setWidgetIncrement ();
- setWidgetPageIncrement ();
- setWidgetThumb ();
- }
- }
-
- /**
- * Gets the default maximum of the "Example" widgets.
- */
- int getDefaultMaximum () {
- return slider1.getMaximum();
- }
-
- /**
- * Gets the default minimim of the "Example" widgets.
- */
- int getDefaultMinimum () {
- return slider1.getMinimum();
- }
-
- /**
- * Gets the default selection of the "Example" widgets.
- */
- int getDefaultSelection () {
- return slider1.getSelection();
- }
-
- /**
- * Gets the default increment of the "Example" widgets.
- */
- int getDefaultIncrement () {
- return slider1.getIncrement();
- }
-
- /**
- * Gets the default page increment of the "Example" widgets.
- */
- int getDefaultPageIncrement () {
- return slider1.getPageIncrement();
- }
-
- /**
- * Gets the default thumb of the "Example" widgets.
- */
- int getDefaultThumb () {
- return slider1.getThumb();
- }
-
- /**
- * Sets the increment of the "Example" widgets.
- */
- void setWidgetIncrement () {
- slider1.setIncrement (incrementSpinner.getSelection ());
- }
-
- /**
- * Sets the minimim of the "Example" widgets.
- */
- void setWidgetMaximum () {
- slider1.setMaximum (maximumSpinner.getSelection ());
- }
-
- /**
- * Sets the minimim of the "Example" widgets.
- */
- void setWidgetMinimum () {
- slider1.setMinimum (minimumSpinner.getSelection ());
- }
-
- /**
- * Sets the page increment of the "Example" widgets.
- */
- void setWidgetPageIncrement () {
- slider1.setPageIncrement (pageIncrementSpinner.getSelection ());
- }
-
- /**
- * Sets the selection of the "Example" widgets.
- */
- void setWidgetSelection () {
- slider1.setSelection (selectionSpinner.getSelection ());
- }
-
- /**
- * Sets the thumb of the "Example" widgets.
- */
- void setWidgetThumb () {
- slider1.setThumb (thumbSpinner.getSelection ());
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SpinnerTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SpinnerTab.java
deleted file mode 100644
index ff0847549b..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/SpinnerTab.java
+++ /dev/null
@@ -1,317 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-
-class SpinnerTab extends RangeTab {
-
- /* Example widgets and groups that contain them */
- Spinner spinner1;
- Group spinnerGroup;
-
- /* Style widgets added to the "Style" group */
- Button readOnlyButton, wrapButton;
-
- /* Spinner widgets added to the "Control" group */
- Spinner incrementSpinner, pageIncrementSpinner, digitsSpinner;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- SpinnerTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Control" widget children.
- */
- void createControlWidgets () {
- super.createControlWidgets ();
- createIncrementGroup ();
- createPageIncrementGroup ();
- createDigitsGroup ();
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the spinner */
- spinnerGroup = new Group (exampleGroup, SWT.NONE);
- spinnerGroup.setLayout (new GridLayout ());
- spinnerGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- spinnerGroup.setText ("Spinner");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- if (readOnlyButton.getSelection ()) style |= SWT.READ_ONLY;
- if (borderButton.getSelection ()) style |= SWT.BORDER;
- if (wrapButton.getSelection ()) style |= SWT.WRAP;
-
- /* Create the example widgets */
- spinner1 = new Spinner (spinnerGroup, style);
- }
-
- /**
- * 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.NONE);
- incrementGroup.setLayout (new GridLayout ());
- incrementGroup.setText (ControlExample.getResourceString("Increment"));
- incrementGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-
- /* Create the Spinner widget */
- incrementSpinner = new Spinner (incrementGroup, SWT.BORDER);
- incrementSpinner.setMaximum (100000);
- incrementSpinner.setSelection (getDefaultIncrement());
- incrementSpinner.setPageIncrement (100);
- incrementSpinner.setIncrement (1);
- incrementSpinner.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
-
- /* Add the listeners */
- incrementSpinner.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.NONE);
- pageIncrementGroup.setLayout (new GridLayout ());
- pageIncrementGroup.setText (ControlExample.getResourceString("Page_Increment"));
- pageIncrementGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-
- /* Create the Spinner widget */
- pageIncrementSpinner = new Spinner (pageIncrementGroup, SWT.BORDER);
- pageIncrementSpinner.setMaximum (100000);
- pageIncrementSpinner.setSelection (getDefaultPageIncrement());
- pageIncrementSpinner.setPageIncrement (100);
- pageIncrementSpinner.setIncrement (1);
- pageIncrementSpinner.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
-
- /* Add the listeners */
- pageIncrementSpinner.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setWidgetPageIncrement ();
- }
- });
- }
-
- /**
- * Create a group of widgets to control the digits
- * attribute of the example widget.
- */
- void createDigitsGroup() {
-
- /* Create the group */
- Group digitsGroup = new Group (controlGroup, SWT.NONE);
- digitsGroup.setLayout (new GridLayout ());
- digitsGroup.setText (ControlExample.getResourceString("Digits"));
- digitsGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
-
- /* Create the Spinner widget */
- digitsSpinner = new Spinner (digitsGroup, SWT.BORDER);
- digitsSpinner.setMaximum (100000);
- digitsSpinner.setSelection (getDefaultDigits());
- digitsSpinner.setPageIncrement (100);
- digitsSpinner.setIncrement (1);
- digitsSpinner.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
-
- /* Add the listeners */
- digitsSpinner.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- setWidgetDigits ();
- }
- });
- }
-
- /**
- * Creates the tab folder page.
- *
- * @param tabFolder org.eclipse.swt.widgets.TabFolder
- * @return the new page for the tab folder
- */
- Composite createTabFolderPage (TabFolder tabFolder) {
- super.createTabFolderPage (tabFolder);
-
- /*
- * Add a resize listener to the tabFolderPage so that
- * if the user types into the example widget to change
- * its preferred size, and then resizes the shell, we
- * recalculate the preferred size correctly.
- */
- tabFolderPage.addControlListener(new ControlAdapter() {
- public void controlResized(ControlEvent e) {
- setExampleWidgetSize ();
- }
- });
-
- return tabFolderPage;
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup () {
- orientationButtons = false;
- super.createStyleGroup ();
-
- /* Create the extra widgets */
- readOnlyButton = new Button (styleGroup, SWT.CHECK);
- readOnlyButton.setText ("SWT.READ_ONLY");
- wrapButton = new Button (styleGroup, SWT.CHECK);
- wrapButton.setText ("SWT.WRAP");
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {spinner1};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"Selection", "TextLimit", "ToolTipText"};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Spinner";
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- readOnlyButton.setSelection ((spinner1.getStyle () & SWT.READ_ONLY) != 0);
- wrapButton.setSelection ((spinner1.getStyle () & SWT.WRAP) != 0);
- if (!instance.startup) {
- setWidgetIncrement ();
- setWidgetPageIncrement ();
- setWidgetDigits ();
- }
- }
-
- /**
- * Gets the default maximum of the "Example" widgets.
- */
- int getDefaultMaximum () {
- return spinner1.getMaximum();
- }
-
- /**
- * Gets the default minimim of the "Example" widgets.
- */
- int getDefaultMinimum () {
- return spinner1.getMinimum();
- }
-
- /**
- * Gets the default selection of the "Example" widgets.
- */
- int getDefaultSelection () {
- return spinner1.getSelection();
- }
-
- /**
- * Gets the default increment of the "Example" widgets.
- */
- int getDefaultIncrement () {
- return spinner1.getIncrement();
- }
-
- /**
- * Gets the default page increment of the "Example" widgets.
- */
- int getDefaultPageIncrement () {
- return spinner1.getPageIncrement();
- }
-
- /**
- * Gets the default digits of the "Example" widgets.
- */
- int getDefaultDigits () {
- return spinner1.getDigits();
- }
-
- /**
- * Sets the increment of the "Example" widgets.
- */
- void setWidgetIncrement () {
- spinner1.setIncrement (incrementSpinner.getSelection ());
- }
-
- /**
- * Sets the minimim of the "Example" widgets.
- */
- void setWidgetMaximum () {
- spinner1.setMaximum (maximumSpinner.getSelection ());
- }
-
- /**
- * Sets the minimim of the "Example" widgets.
- */
- void setWidgetMinimum () {
- spinner1.setMinimum (minimumSpinner.getSelection ());
- }
-
- /**
- * Sets the page increment of the "Example" widgets.
- */
- void setWidgetPageIncrement () {
- spinner1.setPageIncrement (pageIncrementSpinner.getSelection ());
- }
-
- /**
- * Sets the digits of the "Example" widgets.
- */
- void setWidgetDigits () {
- spinner1.setDigits (digitsSpinner.getSelection ());
- }
-
- /**
- * Sets the selection of the "Example" widgets.
- */
- void setWidgetSelection () {
- spinner1.setSelection (selectionSpinner.getSelection ());
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/StyledTextTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/StyledTextTab.java
deleted file mode 100644
index 89b95018b4..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/StyledTextTab.java
+++ /dev/null
@@ -1,413 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import java.io.*;
-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 StyledTextTab extends ScrollableTab {
- /* Example widgets and groups that contain them */
- StyledText styledText;
- Group styledTextGroup, styledTextStyleGroup;
-
- /* Style widgets added to the "Style" group */
- Button wrapButton, readOnlyButton, fullSelectionButton;
-
- /* Buttons for adding StyleRanges to StyledText */
- Button boldButton, italicButton, redButton, yellowButton, underlineButton, strikeoutButton;
- Image boldImage, italicImage, redImage, yellowImage, underlineImage, strikeoutImage;
-
- /* Variables for saving state. */
- String text;
- StyleRange[] styleRanges;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- StyledTextTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates a bitmap image.
- */
- Image createBitmapImage (Display display, String name) {
- InputStream sourceStream = ControlExample.class.getResourceAsStream (name + ".bmp");
- InputStream maskStream = ControlExample.class.getResourceAsStream (name + "_mask.bmp");
- ImageData source = new ImageData (sourceStream);
- ImageData mask = new ImageData (maskStream);
- Image result = new Image (display, source, mask);
- try {
- sourceStream.close ();
- maskStream.close ();
- } catch (IOException e) {
- e.printStackTrace ();
- }
- return result;
- }
-
- /**
- * 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 styled text widget */
- styledTextGroup = new Group (exampleGroup, SWT.NONE);
- styledTextGroup.setLayout (new GridLayout ());
- styledTextGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- styledTextGroup.setText ("StyledText");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- 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;
- if (fullSelectionButton.getSelection ()) style |= SWT.FULL_SELECTION;
-
- /* Create the example widgets */
- styledText = new StyledText (styledTextGroup, style);
- styledText.setText (ControlExample.getResourceString("Example_string"));
- styledText.append ("\n");
- styledText.append (ControlExample.getResourceString("One_Two_Three"));
-
- if (text != null) {
- styledText.setText(text);
- text = null;
- }
- if (styleRanges != null) {
- styledText.setStyleRanges(styleRanges);
- styleRanges = null;
- }
- }
-
- /**
- * 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");
- fullSelectionButton = new Button (styleGroup, SWT.CHECK);
- fullSelectionButton.setText ("SWT.FULL_SELECTION");
- }
-
- /**
- * Creates the "StyledText Style" group.
- */
- void createStyledTextStyleGroup () {
- styledTextStyleGroup = new Group (controlGroup, SWT.NONE);
- styledTextStyleGroup.setText (ControlExample.getResourceString ("StyledText_Styles"));
- styledTextStyleGroup.setLayout (new GridLayout(6, false));
- GridData data = new GridData (GridData.HORIZONTAL_ALIGN_FILL);
- data.horizontalSpan = 2;
- styledTextStyleGroup.setLayoutData (data);
-
- /* Get images */
- boldImage = createBitmapImage (display, "bold");
- italicImage = createBitmapImage (display, "italic");
- redImage = createBitmapImage (display, "red");
- yellowImage = createBitmapImage (display, "yellow");
- underlineImage = createBitmapImage (display, "underline");
- strikeoutImage = createBitmapImage (display, "strikeout");
-
- /* Create controls to modify the StyledText */
- Label label = new Label (styledTextStyleGroup, SWT.NONE);
- label.setText (ControlExample.getResourceString ("StyledText_Style_Instructions"));
- label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 6, 1));
- label = new Label (styledTextStyleGroup, SWT.NONE);
- label.setText (ControlExample.getResourceString ("Bold"));
- label.setLayoutData(new GridData(SWT.END, SWT.CENTER, true, false));
- boldButton = new Button (styledTextStyleGroup, SWT.PUSH);
- boldButton.setImage (boldImage);
- label = new Label (styledTextStyleGroup, SWT.NONE);
- label.setText (ControlExample.getResourceString ("Underline"));
- label.setLayoutData(new GridData(SWT.END, SWT.CENTER, true, false));
- underlineButton = new Button (styledTextStyleGroup, SWT.PUSH);
- underlineButton.setImage (underlineImage);
- label = new Label (styledTextStyleGroup, SWT.NONE);
- label.setText (ControlExample.getResourceString ("Foreground_Style"));
- label.setLayoutData(new GridData(SWT.END, SWT.CENTER, true, false));
- redButton = new Button (styledTextStyleGroup, SWT.PUSH);
- redButton.setImage (redImage);
- label = new Label (styledTextStyleGroup, SWT.NONE);
- label.setText (ControlExample.getResourceString ("Italic"));
- label.setLayoutData(new GridData(SWT.END, SWT.CENTER, true, false));
- italicButton = new Button (styledTextStyleGroup, SWT.PUSH);
- italicButton.setImage (italicImage);
- label = new Label (styledTextStyleGroup, SWT.NONE);
- label.setText (ControlExample.getResourceString ("Strikeout"));
- label.setLayoutData(new GridData(SWT.END, SWT.CENTER, true, false));
- strikeoutButton = new Button (styledTextStyleGroup, SWT.PUSH);
- strikeoutButton.setImage (strikeoutImage);
- label = new Label (styledTextStyleGroup, SWT.NONE);
- label.setText (ControlExample.getResourceString ("Background_Style"));
- label.setLayoutData(new GridData(SWT.END, SWT.CENTER, true, false));
- yellowButton = new Button (styledTextStyleGroup, SWT.PUSH);
- yellowButton.setImage (yellowImage);
- SelectionListener styleListener = 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 = (StyleRange)range.clone();
- style.start = i;
- style.length = 1;
- } else {
- style = new StyleRange(i, 1, null, null, SWT.NORMAL);
- }
- if (e.widget == boldButton) {
- style.fontStyle ^= SWT.BOLD;
- } else if (e.widget == italicButton) {
- style.fontStyle ^= SWT.ITALIC;
- } else if (e.widget == underlineButton) {
- style.underline = !style.underline;
- } else if (e.widget == strikeoutButton) {
- style.strikeout = !style.strikeout;
- }
- styledText.setStyleRange(style);
- }
- styledText.setSelectionRange(sel.x + sel.y, 0);
- }
- };
- SelectionListener colorListener = new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- Point sel = styledText.getSelectionRange();
- if ((sel == null) || (sel.y == 0)) return;
- Color fg = null, bg = null;
- if (e.widget == redButton) {
- fg = display.getSystemColor (SWT.COLOR_RED);
- } else if (e.widget == yellowButton) {
- bg = display.getSystemColor (SWT.COLOR_YELLOW);
- }
- StyleRange style;
- for (int i = sel.x; i<sel.x+sel.y; i++) {
- StyleRange range = styledText.getStyleRangeAtOffset(i);
- if (range != null) {
- style = (StyleRange)range.clone();
- style.start = i;
- style.length = 1;
- style.foreground = style.foreground != null ? null : fg;
- style.background = style.background != null ? null : bg;
- } else {
- style = new StyleRange (i, 1, fg, bg, SWT.NORMAL);
- }
- styledText.setStyleRange(style);
- }
- styledText.setSelectionRange(sel.x + sel.y, 0);
- }
- };
- boldButton.addSelectionListener(styleListener);
- italicButton.addSelectionListener(styleListener);
- underlineButton.addSelectionListener(styleListener);
- strikeoutButton.addSelectionListener(styleListener);
- redButton.addSelectionListener(colorListener);
- yellowButton.addSelectionListener(colorListener);
- yellowButton.addDisposeListener(new DisposeListener () {
- public void widgetDisposed (DisposeEvent e) {
- boldImage.dispose();
- italicImage.dispose();
- redImage.dispose();
- yellowImage.dispose();
- underlineImage.dispose();
- strikeoutImage.dispose();
- }
- });
- }
-
- /**
- * Creates the tab folder page.
- *
- * @param tabFolder org.eclipse.swt.widgets.TabFolder
- * @return the new page for the tab folder
- */
- Composite createTabFolderPage (TabFolder tabFolder) {
- super.createTabFolderPage (tabFolder);
-
- /*
- * Add a resize listener to the tabFolderPage so that
- * if the user types into the example widget to change
- * its preferred size, and then resizes the shell, we
- * recalculate the preferred size correctly.
- */
- tabFolderPage.addControlListener(new ControlAdapter() {
- public void controlResized(ControlEvent e) {
- setExampleWidgetSize ();
- }
- });
-
- return tabFolderPage;
- }
-
- /**
- * Disposes the "Example" widgets.
- */
- void disposeExampleWidgets () {
- /* store the state of the styledText if applicable */
- if (styledText != null) {
- styleRanges = styledText.getStyleRanges();
- text = styledText.getText();
- }
- super.disposeExampleWidgets();
- }
-
- /**
- * Gets the list of custom event names.
- *
- * @return an array containing custom event names
- */
- String [] getCustomEventNames () {
- return new String [] {
- "ExtendedModifyListener", "BidiSegmentListener", "LineBackgroundListener",
- "LineStyleListener", "PaintObjectListener", "TextChangeListener",
- "VerifyKeyListener", "WordMovementListener"};
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {styledText};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"Alignment", "CaretOffset", "DoubleClickEnabled", "Editable", "HorizontalIndex", "HorizontalPixel", "Orientation", "Selection", "Tabs", "Text", "TextLimit", "ToolTipText", "TopIndex", "TopPixel", "WordWrap"};
- }
-
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "StyledText";
- }
-
- /**
- * Hooks the custom listener specified by eventName.
- */
- void hookCustomListener (final String eventName) {
- if (eventName == "ExtendedModifyListener") {
- styledText.addExtendedModifyListener (new ExtendedModifyListener() {
- public void modifyText(ExtendedModifyEvent event) {
- log (eventName, event);
- }
- });
- }
- if (eventName == "BidiSegmentListener") {
- styledText.addBidiSegmentListener (new BidiSegmentListener() {
- public void lineGetSegments(BidiSegmentEvent event) {
- log (eventName, event);
- }
- });
- }
- if (eventName == "LineBackgroundListener") {
- styledText.addLineBackgroundListener (new LineBackgroundListener() {
- public void lineGetBackground(LineBackgroundEvent event) {
- log (eventName, event);
- }
- });
- }
- if (eventName == "LineStyleListener") {
- styledText.addLineStyleListener (new LineStyleListener() {
- public void lineGetStyle(LineStyleEvent event) {
- log (eventName, event);
- }
- });
- }
- if (eventName == "PaintObjectListener") {
- styledText.addPaintObjectListener (new PaintObjectListener() {
- public void paintObject(PaintObjectEvent event) {
- log (eventName, event);
- }
- });
- }
- if (eventName == "TextChangeListener") {
- styledText.getContent().addTextChangeListener (new TextChangeListener() {
- public void textChanged(TextChangedEvent event) {
- log (eventName + ".textChanged", event);
- }
- public void textChanging(TextChangingEvent event) {
- log (eventName + ".textChanging", event);
- }
- public void textSet(TextChangedEvent event) {
- log (eventName + ".textSet", event);
- }
- });
- }
- if (eventName == "VerifyKeyListener") {
- styledText.addVerifyKeyListener (new VerifyKeyListener() {
- public void verifyKey(VerifyEvent event) {
- log (eventName, event);
- }
- });
- }
- if (eventName == "WordMovementListener") {
- styledText.addWordMovementListener (new MovementListener() {
- public void getNextOffset(MovementEvent event) {
- log (eventName + ".getNextOffset", event);
- }
- public void getPreviousOffset(MovementEvent event) {
- log (eventName + ".getPreviousOffset", event);
- }
- });
- }
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- wrapButton.setSelection ((styledText.getStyle () & SWT.WRAP) != 0);
- readOnlyButton.setSelection ((styledText.getStyle () & SWT.READ_ONLY) != 0);
- fullSelectionButton.setSelection ((styledText.getStyle () & SWT.FULL_SELECTION) != 0);
- horizontalButton.setEnabled ((styledText.getStyle () & SWT.MULTI) != 0);
- verticalButton.setEnabled ((styledText.getStyle () & SWT.MULTI) != 0);
- wrapButton.setEnabled ((styledText.getStyle () & SWT.MULTI) != 0);
- }
-}
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 74eb7b5640..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/Tab.java
+++ /dev/null
@@ -1,1809 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-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", "Other" and "Size" group. Subclasses
- * can override these defaults to augment a group or stop
- * a group from being created.
- */
-abstract class Tab {
- Shell shell;
- Display display;
-
- /* Common control buttons */
- Button borderButton, enabledButton, visibleButton, backgroundImageButton, popupMenuButton;
- Button preferredButton, tooSmallButton, smallButton, largeButton, fillHButton, fillVButton;
-
- /* Common groups and composites */
- Composite tabFolderPage;
- Group exampleGroup, controlGroup, listenersGroup, otherGroup, sizeGroup, styleGroup, colorGroup, backgroundModeGroup;
-
- /* 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;
-
- /* Right-to-left support */
- static final boolean RTL_SUPPORT_ENABLE = "win32".equals(SWT.getPlatform()) || "gtk".equals(SWT.getPlatform());
- Group orientationGroup;
- Button rtlButton, ltrButton, defaultOrietationButton;
-
- /* Controls and resources for the "Colors & Fonts" group */
- static final int IMAGE_SIZE = 12;
- static final int FOREGROUND_COLOR = 0;
- static final int BACKGROUND_COLOR = 1;
- static final int FONT = 2;
- Table colorAndFontTable;
- ColorDialog colorDialog;
- FontDialog fontDialog;
- Color foregroundColor, backgroundColor;
- Font font;
-
- /* Controls and resources for the "Background Mode" group */
- Combo backgroundModeCombo;
- Button backgroundModeImageButton, backgroundModeColorButton;
-
- boolean samplePopup = false;
-
- /* Set/Get API controls */
- Combo nameCombo;
- Label returnTypeLabel;
- Button getButton, setButton;
- Text setText, getText;
- Shell setGetDialog;
-
- /* Event logging variables and controls */
- Text eventConsole;
- boolean logging = false;
- boolean [] eventsFilter;
- int setFieldsMask = 0;
- Event setFieldsEvent = new Event ();
- boolean ignore = false;
-
- /* Event logging constants */
- static final int DOIT = 0x0100;
- static final int DETAIL = 0x0200;
- static final int TEXT = 0x0400;
- static final int X = 0x0800;
- static final int Y = 0x1000;
- static final int WIDTH = 0x2000;
- static final int HEIGHT = 0x4000;
-
- static final int DETAIL_IME = 0;
- static final int DETAIL_ERASE_ITEM = 1;
- static final int DETAIL_TRAVERSE = 2;
-
- static class EventInfo {
- String name;
- int type;
- int settableFields;
- int setFields;
- Event event;
- EventInfo (String name, int type, int settableFields, int setFields, Event event) {
- this.name = name;
- this.type = type;
- this.settableFields = settableFields;
- this.setFields = setFields;
- this.event = event;
- }
- }
-
- final EventInfo [] EVENT_INFO = {
- new EventInfo ("Activate", SWT.Activate, 0, 0, new Event()),
- new EventInfo ("Arm", SWT.Arm, 0, 0, new Event()),
- new EventInfo ("Close", SWT.Close, DOIT, 0, new Event()),
- new EventInfo ("Collapse", SWT.Collapse, 0, 0, new Event()),
- new EventInfo ("Deactivate", SWT.Deactivate, 0, 0, new Event()),
- new EventInfo ("DefaultSelection", SWT.DefaultSelection, 0, 0, new Event()),
- new EventInfo ("Deiconify", SWT.Deiconify, 0, 0, new Event()),
- new EventInfo ("Dispose", SWT.Dispose, 0, 0, new Event()),
- new EventInfo ("DragDetect", SWT.DragDetect, 0, 0, new Event()),
- new EventInfo ("EraseItem", SWT.EraseItem, DETAIL | DETAIL_ERASE_ITEM, 0, new Event()),
- new EventInfo ("Expand", SWT.Expand, 0, 0, new Event()),
- new EventInfo ("FocusIn", SWT.FocusIn, 0, 0, new Event()),
- new EventInfo ("FocusOut", SWT.FocusOut, 0, 0, new Event()),
- new EventInfo ("HardKeyDown", SWT.HardKeyDown, 0, 0, new Event()),
- new EventInfo ("HardKeyUp", SWT.HardKeyUp, 0, 0, new Event()),
- new EventInfo ("Help", SWT.Help, 0, 0, new Event()),
- new EventInfo ("Hide", SWT.Hide, 0, 0, new Event()),
- new EventInfo ("Iconify", SWT.Iconify, 0, 0, new Event()),
- new EventInfo ("KeyDown", SWT.KeyDown, DOIT, 0, new Event()),
- new EventInfo ("KeyUp", SWT.KeyUp, DOIT, 0, new Event()),
- new EventInfo ("MeasureItem", SWT.MeasureItem, 0, 0, new Event()),
- new EventInfo ("MenuDetect", SWT.MenuDetect, X | Y | DOIT, 0, new Event()),
- new EventInfo ("Modify", SWT.Modify, 0, 0, new Event()),
- new EventInfo ("MouseDoubleClick", SWT.MouseDoubleClick, 0, 0, new Event()),
- new EventInfo ("MouseDown", SWT.MouseDown, 0, 0, new Event()),
- new EventInfo ("MouseEnter", SWT.MouseEnter, 0, 0, new Event()),
- new EventInfo ("MouseExit", SWT.MouseExit, 0, 0, new Event()),
- new EventInfo ("MouseHover", SWT.MouseHover, 0, 0, new Event()),
- new EventInfo ("MouseMove", SWT.MouseMove, 0, 0, new Event()),
- new EventInfo ("MouseUp", SWT.MouseUp, 0, 0, new Event()),
- new EventInfo ("MouseWheel", SWT.MouseWheel, 0, 0, new Event()),
- new EventInfo ("Move", SWT.Move, 0, 0, new Event()),
- new EventInfo ("Paint", SWT.Paint, 0, 0, new Event()),
- new EventInfo ("PaintItem", SWT.PaintItem, 0, 0, new Event()),
- new EventInfo ("Resize", SWT.Resize, 0, 0, new Event()),
- new EventInfo ("Selection", SWT.Selection, X | Y | DOIT, 0, new Event()), // sash
- new EventInfo ("SetData", SWT.SetData, 0, 0, new Event()),
-// new EventInfo ("Settings", SWT.Settings, 0, 0, new Event()), // note: this event only goes to Display
- new EventInfo ("Show", SWT.Show, 0, 0, new Event()),
- new EventInfo ("Traverse", SWT.Traverse, DETAIL | DETAIL_TRAVERSE | DOIT, 0, new Event()),
- new EventInfo ("Verify", SWT.Verify, TEXT | DOIT, 0, new Event()),
- new EventInfo ("ImeComposition", SWT.ImeComposition, DETAIL | DETAIL_IME | TEXT | DOIT, 0, new Event()),
- };
-
- static final String [][] DETAIL_CONSTANTS = {
- { // DETAIL_IME = 0
- "SWT.COMPOSITION_CHANGED",
- "SWT.COMPOSITION_OFFSET",
- "SWT.COMPOSITION_SELECTION",
- },
- { // DETAIL_ERASE_ITEM = 1
- "SWT.SELECTED",
- "SWT.FOCUSED",
- "SWT.BACKGROUND",
- "SWT.FOREGROUND",
- "SWT.HOT",
- },
- { // DETAIL_TRAVERSE = 2
- "SWT.TRAVERSE_NONE",
- "SWT.TRAVERSE_ESCAPE",
- "SWT.TRAVERSE_RETURN",
- "SWT.TRAVERSE_TAB_PREVIOUS",
- "SWT.TRAVERSE_TAB_NEXT",
- "SWT.TRAVERSE_ARROW_PREVIOUS",
- "SWT.TRAVERSE_ARROW_NEXT",
- "SWT.TRAVERSE_MNEMONIC",
- "SWT.TRAVERSE_PAGE_PREVIOUS",
- "SWT.TRAVERSE_PAGE_NEXT",
- },
- };
-
- static final Object [] DETAIL_VALUES = {
- "SWT.COMPOSITION_CHANGED", new Integer(SWT.COMPOSITION_CHANGED),
- "SWT.COMPOSITION_OFFSET", new Integer(SWT.COMPOSITION_OFFSET),
- "SWT.COMPOSITION_SELECTION", new Integer(SWT.COMPOSITION_SELECTION),
- "SWT.SELECTED", new Integer(SWT.SELECTED),
- "SWT.FOCUSED", new Integer(SWT.FOCUSED),
- "SWT.BACKGROUND", new Integer(SWT.BACKGROUND),
- "SWT.FOREGROUND", new Integer(SWT.FOREGROUND),
- "SWT.HOT", new Integer(SWT.HOT),
- "SWT.TRAVERSE_NONE", new Integer(SWT.TRAVERSE_NONE),
- "SWT.TRAVERSE_ESCAPE", new Integer(SWT.TRAVERSE_ESCAPE),
- "SWT.TRAVERSE_RETURN", new Integer(SWT.TRAVERSE_RETURN),
- "SWT.TRAVERSE_TAB_PREVIOUS", new Integer(SWT.TRAVERSE_TAB_PREVIOUS),
- "SWT.TRAVERSE_TAB_NEXT", new Integer(SWT.TRAVERSE_TAB_NEXT),
- "SWT.TRAVERSE_ARROW_PREVIOUS", new Integer(SWT.TRAVERSE_ARROW_PREVIOUS),
- "SWT.TRAVERSE_ARROW_NEXT", new Integer(SWT.TRAVERSE_ARROW_NEXT),
- "SWT.TRAVERSE_MNEMONIC", new Integer(SWT.TRAVERSE_MNEMONIC),
- "SWT.TRAVERSE_PAGE_PREVIOUS", new Integer(SWT.TRAVERSE_PAGE_PREVIOUS),
- "SWT.TRAVERSE_PAGE_NEXT", new Integer(SWT.TRAVERSE_PAGE_NEXT),
- };
-
- /**
- * 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
- * right half of each example tab. It consists of the
- * "Style" group, the "Other" group and the "Size" group.
- */
- controlGroup = new Group (tabFolderPage, SWT.NONE);
- controlGroup.setLayout (new GridLayout (2, true));
- controlGroup.setLayoutData (new GridData(SWT.FILL, SWT.FILL, false, false));
- controlGroup.setText (ControlExample.getResourceString("Parameters"));
-
- /* Create individual groups inside the "Control" group */
- createStyleGroup ();
- createOtherGroup ();
- createSetGetGroup();
- createSizeGroup ();
- createColorAndFontGroup ();
- if (rtlSupport()) {
- createOrientationGroup ();
- }
-
- /*
- * 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);
- } else {
- if (children [i] instanceof Composite) {
- /* Look down one more level of children in the style group. */
- Composite composite = (Composite) children [i];
- Control [] grandchildren = composite.getChildren ();
- for (int j=0; j<grandchildren.length; j++) {
- if (grandchildren [j] instanceof Button) {
- Button button = (Button) grandchildren [j];
- button.addSelectionListener (selectionListener);
- }
- }
- }
- }
- }
- if (rtlSupport()) {
- rtlButton.addSelectionListener (selectionListener);
- ltrButton.addSelectionListener (selectionListener);
- defaultOrietationButton.addSelectionListener (selectionListener);
- }
- }
-
- /**
- * Append the Set/Get API controls to the "Other" group.
- */
- void createSetGetGroup() {
- /*
- * Create the button to access set/get API functionality.
- */
- final String [] methodNames = getMethodNames ();
- if (methodNames != null) {
- final Button setGetButton = new Button (otherGroup, SWT.PUSH);
- setGetButton.setText (ControlExample.getResourceString ("Set_Get"));
- setGetButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
- setGetButton.addSelectionListener (new SelectionAdapter() {
- public void widgetSelected (SelectionEvent e) {
- if (getExampleWidgets().length > 0) {
- if (setGetDialog == null) {
- setGetDialog = createSetGetDialog(methodNames);
- }
- Point pt = setGetButton.getLocation();
- pt = display.map(setGetButton.getParent(), null, pt);
- setGetDialog.setLocation(pt.x, pt.y);
- setGetDialog.open();
- }
- }
- });
- }
- }
-
- /**
- * Creates the "Control" widget children.
- * Subclasses override this method to augment
- * the standard controls created in the "Style",
- * "Other" and "Size" groups.
- */
- void createControlWidgets () {
- }
-
- /**
- * Creates the "Colors and Fonts" group. This is typically
- * a child of the "Control" group. Subclasses override
- * this method to customize color and font settings.
- */
- void createColorAndFontGroup () {
- /* Create the group. */
- colorGroup = new Group(controlGroup, SWT.NONE);
- colorGroup.setLayout (new GridLayout (2, true));
- colorGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, false, false));
- colorGroup.setText (ControlExample.getResourceString ("Colors"));
- colorAndFontTable = new Table(colorGroup, SWT.BORDER | SWT.V_SCROLL);
- colorAndFontTable.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false, 2, 1));
- TableItem item = new TableItem(colorAndFontTable, SWT.None);
- item.setText(ControlExample.getResourceString ("Foreground_Color"));
- colorAndFontTable.setSelection(0);
- item = new TableItem(colorAndFontTable, SWT.None);
- item.setText(ControlExample.getResourceString ("Background_Color"));
- item = new TableItem(colorAndFontTable, SWT.None);
- item.setText(ControlExample.getResourceString ("Font"));
- Button changeButton = new Button (colorGroup, SWT.PUSH);
- changeButton.setText(ControlExample.getResourceString("Change"));
- changeButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
- Button defaultsButton = new Button (colorGroup, SWT.PUSH);
- defaultsButton.setText(ControlExample.getResourceString("Defaults"));
- defaultsButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
-
- /* Add listeners to set/reset colors and fonts. */
- colorDialog = new ColorDialog (shell);
- fontDialog = new FontDialog (shell);
- colorAndFontTable.addSelectionListener(new SelectionAdapter() {
- public void widgetDefaultSelected(SelectionEvent event) {
- changeFontOrColor (colorAndFontTable.getSelectionIndex());
- }
- });
- changeButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- changeFontOrColor (colorAndFontTable.getSelectionIndex());
- }
- });
- defaultsButton.addSelectionListener(new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- resetColorsAndFonts ();
- }
- });
- shell.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent event) {
- if (foregroundColor != null) foregroundColor.dispose();
- if (backgroundColor != null) backgroundColor.dispose();
- if (font != null) font.dispose();
- foregroundColor = null;
- backgroundColor = null;
- font = null;
- if (colorAndFontTable != null && !colorAndFontTable.isDisposed()) {
- TableItem [] items = colorAndFontTable.getItems();
- for (int i = 0; i < items.length; i++) {
- Image image = items[i].getImage();
- if (image != null) image.dispose();
- }
- }
- }
- });
- }
-
- void changeFontOrColor(int index) {
- switch (index) {
- case FOREGROUND_COLOR: {
- Color oldColor = foregroundColor;
- if (oldColor == null) {
- Control [] controls = getExampleControls ();
- if (controls.length > 0) oldColor = controls [0].getForeground ();
- }
- if (oldColor != null) colorDialog.setRGB(oldColor.getRGB()); // seed dialog with current color
- RGB rgb = colorDialog.open();
- if (rgb == null) return;
- oldColor = foregroundColor; // save old foreground color to dispose when done
- foregroundColor = new Color (display, rgb);
- setExampleWidgetForeground ();
- if (oldColor != null) oldColor.dispose ();
- }
- break;
- case BACKGROUND_COLOR: {
- Color oldColor = backgroundColor;
- if (oldColor == null) {
- Control [] controls = getExampleControls ();
- if (controls.length > 0) oldColor = controls [0].getBackground (); // seed dialog with current color
- }
- if (oldColor != null) colorDialog.setRGB(oldColor.getRGB());
- RGB rgb = colorDialog.open();
- if (rgb == null) return;
- oldColor = backgroundColor; // save old background color to dispose when done
- backgroundColor = new Color (display, rgb);
- setExampleWidgetBackground ();
- if (oldColor != null) oldColor.dispose ();
- }
- break;
- case FONT: {
- Font oldFont = font;
- if (oldFont == null) {
- Control [] controls = getExampleControls ();
- if (controls.length > 0) oldFont = controls [0].getFont ();
- }
- if (oldFont != null) fontDialog.setFontList(oldFont.getFontData()); // seed dialog with current font
- FontData fontData = fontDialog.open ();
- if (fontData == null) return;
- oldFont = font; // dispose old font when done
- font = new Font (display, fontData);
- setExampleWidgetFont ();
- setExampleWidgetSize ();
- if (oldFont != null) oldFont.dispose ();
- }
- break;
- }
- }
-
- /**
- * Creates the "Other" group. This is typically
- * a child of the "Control" group.
- */
- void createOtherGroup () {
- /* Create the group */
- otherGroup = new Group (controlGroup, SWT.NONE);
- otherGroup.setLayout (new GridLayout ());
- otherGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, false, false));
- otherGroup.setText (ControlExample.getResourceString("Other"));
-
- /* Create the controls */
- enabledButton = new Button(otherGroup, SWT.CHECK);
- enabledButton.setText(ControlExample.getResourceString("Enabled"));
- visibleButton = new Button(otherGroup, SWT.CHECK);
- visibleButton.setText(ControlExample.getResourceString("Visible"));
- backgroundImageButton = new Button(otherGroup, SWT.CHECK);
- backgroundImageButton.setText(ControlExample.getResourceString("BackgroundImage"));
- popupMenuButton = new Button(otherGroup, SWT.CHECK);
- popupMenuButton.setText(ControlExample.getResourceString("PopupMenu"));
-
- /* Add the listeners */
- enabledButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setExampleWidgetEnabled ();
- }
- });
- visibleButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setExampleWidgetVisibility ();
- }
- });
- backgroundImageButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setExampleWidgetBackgroundImage ();
- }
- });
- popupMenuButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setExampleWidgetPopupMenu ();
- }
- });
-
- /* Set the default state */
- enabledButton.setSelection(true);
- visibleButton.setSelection(true);
- backgroundImageButton.setSelection(false);
- popupMenuButton.setSelection(false);
- }
-
- /**
- * Creates the "Background Mode" group.
- */
- void createBackgroundModeGroup () {
- // note that this method must be called after createExampleWidgets
- if (getExampleControls ().length == 0) return;
-
- /* Create the group */
- backgroundModeGroup = new Group (controlGroup, SWT.NONE);
- backgroundModeGroup.setLayout (new GridLayout ());
- backgroundModeGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, false, false));
- backgroundModeGroup.setText (ControlExample.getResourceString("Background_Mode"));
-
- /* Create the controls */
- backgroundModeCombo = new Combo(backgroundModeGroup, SWT.READ_ONLY);
- backgroundModeCombo.setItems(new String[] {"SWT.INHERIT_NONE", "SWT.INHERIT_DEFAULT", "SWT.INHERIT_FORCE"});
- backgroundModeImageButton = new Button(backgroundModeGroup, SWT.CHECK);
- backgroundModeImageButton.setText(ControlExample.getResourceString("BackgroundImage"));
- backgroundModeColorButton = new Button(backgroundModeGroup, SWT.CHECK);
- backgroundModeColorButton.setText(ControlExample.getResourceString("BackgroundColor"));
-
- /* Add the listeners */
- backgroundModeCombo.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setExampleGroupBackgroundMode ();
- }
- });
- backgroundModeImageButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setExampleGroupBackgroundImage ();
- }
- });
- backgroundModeColorButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setExampleGroupBackgroundColor ();
- }
- });
-
- /* Set the default state */
- backgroundModeCombo.setText(backgroundModeCombo.getItem(0));
- backgroundModeImageButton.setSelection(false);
- backgroundModeColorButton.setSelection(false);
- }
-
- void createEditEventDialog(Shell parent, int x, int y, final int index) {
- final Shell dialog = new Shell(parent, SWT.DIALOG_TRIM | SWT.RESIZE | SWT.APPLICATION_MODAL);
- dialog.setLayout(new GridLayout());
- dialog.setText(ControlExample.getResourceString ("Edit_Event"));
- Label label = new Label (dialog, SWT.NONE);
- label.setText (ControlExample.getResourceString ("Edit_Event_Fields", new String [] {EVENT_INFO[index].name}));
-
- Group group = new Group (dialog, SWT.NONE);
- group.setLayout(new GridLayout(2, false));
- group.setLayoutData(new GridData (SWT.FILL, SWT.FILL, true, true));
-
- final int fields = EVENT_INFO[index].settableFields;
- final int eventType = EVENT_INFO[index].type;
- setFieldsMask = EVENT_INFO[index].setFields;
- setFieldsEvent = EVENT_INFO[index].event;
-
- if ((fields & DOIT) != 0) {
- new Label (group, SWT.NONE).setText ("doit");
- final Combo doitCombo = new Combo (group, SWT.READ_ONLY);
- doitCombo.setItems (new String [] {"", "true", "false"});
- if ((setFieldsMask & DOIT) != 0) doitCombo.setText(Boolean.toString(setFieldsEvent.doit));
- doitCombo.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
- doitCombo.addSelectionListener(new SelectionAdapter () {
- public void widgetSelected(SelectionEvent e) {
- String newValue = doitCombo.getText();
- if (newValue.length() == 0) {
- setFieldsMask &= ~DOIT;
- } else {
- setFieldsEvent.type = eventType;
- setFieldsEvent.doit = newValue.equals("true");
- setFieldsMask |= DOIT;
- }
- }
- });
- }
-
- if ((fields & DETAIL) != 0) {
- new Label (group, SWT.NONE).setText ("detail");
- int detailType = fields & 0xFF;
- final Combo detailCombo = new Combo (group, SWT.READ_ONLY);
- detailCombo.setItems (DETAIL_CONSTANTS[detailType]);
- detailCombo.add ("", 0);
- detailCombo.setVisibleItemCount(detailCombo.getItemCount());
- if ((setFieldsMask & DETAIL) != 0) detailCombo.setText (DETAIL_CONSTANTS[detailType][setFieldsEvent.detail]);
- detailCombo.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
- detailCombo.addSelectionListener(new SelectionAdapter () {
- public void widgetSelected(SelectionEvent e) {
- String newValue = detailCombo.getText();
- if (newValue.length() == 0) {
- setFieldsMask &= ~DETAIL;
- } else {
- setFieldsEvent.type = eventType;
- for (int i = 0; i < DETAIL_VALUES.length; i += 2) {
- if (newValue.equals (DETAIL_VALUES [i])) {
- setFieldsEvent.detail = ((Integer) DETAIL_VALUES [i + 1]).intValue();
- break;
- }
- }
- setFieldsMask |= DETAIL;
- }
- }
- });
- }
-
- if ((fields & TEXT) != 0) {
- new Label (group, SWT.NONE).setText ("text");
- final Text textText = new Text (group, SWT.BORDER);
- if ((setFieldsMask & TEXT) != 0) textText.setText(setFieldsEvent.text);
- textText.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
- textText.addModifyListener(new ModifyListener () {
- public void modifyText(ModifyEvent e) {
- String newValue = textText.getText();
- if (newValue.length() == 0) {
- setFieldsMask &= ~TEXT;
- } else {
- setFieldsEvent.type = eventType;
- setFieldsEvent.text = newValue;
- setFieldsMask |= TEXT;
- }
- }
- });
- }
-
- if ((fields & X) != 0) {
- new Label (group, SWT.NONE).setText ("x");
- final Text xText = new Text (group, SWT.BORDER);
- if ((setFieldsMask & X) != 0) xText.setText(Integer.toString(setFieldsEvent.x));
- xText.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
- xText.addModifyListener(new ModifyListener () {
- public void modifyText(ModifyEvent e) {
- String newValue = xText.getText ();
- try {
- int newIntValue = Integer.parseInt (newValue);
- setFieldsEvent.type = eventType;
- setFieldsEvent.x = newIntValue;
- setFieldsMask |= X;
- } catch (NumberFormatException ex) {
- setFieldsMask &= ~X;
- }
- }
- });
- }
-
- if ((fields & Y) != 0) {
- new Label (group, SWT.NONE).setText ("y");
- final Text yText = new Text (group, SWT.BORDER);
- if ((setFieldsMask & Y) != 0) yText.setText(Integer.toString(setFieldsEvent.y));
- yText.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
- yText.addModifyListener(new ModifyListener () {
- public void modifyText(ModifyEvent e) {
- String newValue = yText.getText ();
- try {
- int newIntValue = Integer.parseInt (newValue);
- setFieldsEvent.type = eventType;
- setFieldsEvent.y = newIntValue;
- setFieldsMask |= Y;
- } catch (NumberFormatException ex) {
- setFieldsMask &= ~Y;
- }
- }
- });
- }
-
- if ((fields & WIDTH) != 0) {
- new Label (group, SWT.NONE).setText ("width");
- final Text widthText = new Text (group, SWT.BORDER);
- if ((setFieldsMask & WIDTH) != 0) widthText.setText(Integer.toString(setFieldsEvent.width));
- widthText.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
- widthText.addModifyListener(new ModifyListener () {
- public void modifyText(ModifyEvent e) {
- String newValue = widthText.getText ();
- try {
- int newIntValue = Integer.parseInt (newValue);
- setFieldsEvent.type = eventType;
- setFieldsEvent.width = newIntValue;
- setFieldsMask |= WIDTH;
- } catch (NumberFormatException ex) {
- setFieldsMask &= ~WIDTH;
- }
- }
- });
- }
-
- if ((fields & HEIGHT) != 0) {
- new Label (group, SWT.NONE).setText ("height");
- final Text heightText = new Text (group, SWT.BORDER);
- if ((setFieldsMask & HEIGHT) != 0) heightText.setText(Integer.toString(setFieldsEvent.height));
- heightText.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
- heightText.addModifyListener(new ModifyListener () {
- public void modifyText(ModifyEvent e) {
- String newValue = heightText.getText ();
- try {
- int newIntValue = Integer.parseInt (newValue);
- setFieldsEvent.type = eventType;
- setFieldsEvent.height = newIntValue;
- setFieldsMask |= HEIGHT;
- } catch (NumberFormatException ex) {
- setFieldsMask &= ~HEIGHT;
- }
- }
- });
- }
-
- Button ok = new Button (dialog, SWT.PUSH);
- ok.setText (ControlExample.getResourceString("OK"));
- GridData data = new GridData (70, SWT.DEFAULT);
- data.horizontalAlignment = SWT.RIGHT;
- ok.setLayoutData (data);
- ok.addSelectionListener (new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- EVENT_INFO[index].setFields = setFieldsMask;
- EVENT_INFO[index].event = setFieldsEvent;
- dialog.dispose();
- }
- });
-
- dialog.setDefaultButton(ok);
- dialog.pack();
- dialog.setLocation(x, y);
- dialog.open();
- }
-
- /**
- * Create the event console popup menu.
- */
- void createEventConsolePopup () {
- Menu popup = new Menu (shell, SWT.POP_UP);
- eventConsole.setMenu (popup);
-
- MenuItem cut = new MenuItem (popup, SWT.PUSH);
- cut.setText (ControlExample.getResourceString("MenuItem_Cut"));
- cut.addListener (SWT.Selection, new Listener () {
- public void handleEvent (Event event) {
- eventConsole.cut ();
- }
- });
- MenuItem copy = new MenuItem (popup, SWT.PUSH);
- copy.setText (ControlExample.getResourceString("MenuItem_Copy"));
- copy.addListener (SWT.Selection, new Listener () {
- public void handleEvent (Event event) {
- eventConsole.copy ();
- }
- });
- MenuItem paste = new MenuItem (popup, SWT.PUSH);
- paste.setText (ControlExample.getResourceString("MenuItem_Paste"));
- paste.addListener (SWT.Selection, new Listener () {
- public void handleEvent (Event event) {
- eventConsole.paste ();
- }
- });
- new MenuItem (popup, SWT.SEPARATOR);
- MenuItem selectAll = new MenuItem (popup, SWT.PUSH);
- selectAll.setText(ControlExample.getResourceString("MenuItem_SelectAll"));
- selectAll.addListener (SWT.Selection, new Listener () {
- public void handleEvent (Event event) {
- eventConsole.selectAll ();
- }
- });
- }
-
- /**
- * Creates the "Example" group. The "Example" group
- * is typically the left hand column in the tab.
- */
- void createExampleGroup () {
- exampleGroup = new Group (tabFolderPage, SWT.NONE);
- exampleGroup.setLayout (new GridLayout ());
- exampleGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- }
-
- /**
- * Creates the "Example" widget children of the "Example" group.
- * Subclasses override this method to create the particular
- * example control.
- */
- void createExampleWidgets () {
- /* Do nothing */
- }
-
- /**
- * Creates and opens the "Listener selection" dialog.
- */
- void createListenerSelectionDialog () {
- final Shell dialog = new Shell (shell, SWT.DIALOG_TRIM | SWT.RESIZE | SWT.APPLICATION_MODAL);
- dialog.setText (ControlExample.getResourceString ("Select_Listeners"));
- dialog.setLayout (new GridLayout (2, false));
- final Table table = new Table (dialog, SWT.BORDER | SWT.V_SCROLL | SWT.CHECK);
- GridData data = new GridData(GridData.FILL_BOTH);
- data.verticalSpan = 3;
- table.setLayoutData(data);
- for (int i = 0; i < EVENT_INFO.length; i++) {
- TableItem item = new TableItem (table, SWT.NONE);
- item.setText (EVENT_INFO[i].name);
- item.setChecked (eventsFilter[i]);
- }
- final String [] customNames = getCustomEventNames ();
- for (int i = 0; i < customNames.length; i++) {
- TableItem item = new TableItem (table, SWT.NONE);
- item.setText (customNames[i]);
- item.setChecked (eventsFilter[EVENT_INFO.length + i]);
- }
- Button selectAll = new Button (dialog, SWT.PUSH);
- selectAll.setText(ControlExample.getResourceString ("Select_All"));
- selectAll.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
- selectAll.addSelectionListener (new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- TableItem [] items = table.getItems();
- for (int i = 0; i < EVENT_INFO.length; i++) {
- items[i].setChecked(true);
- }
- for (int i = 0; i < customNames.length; i++) {
- items[EVENT_INFO.length + i].setChecked(true);
- }
- }
- });
- Button deselectAll = new Button (dialog, SWT.PUSH);
- deselectAll.setText(ControlExample.getResourceString ("Deselect_All"));
- deselectAll.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
- deselectAll.addSelectionListener (new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- TableItem [] items = table.getItems();
- for (int i = 0; i < EVENT_INFO.length; i++) {
- items[i].setChecked(false);
- }
- for (int i = 0; i < customNames.length; i++) {
- items[EVENT_INFO.length + i].setChecked(false);
- }
- }
- });
- final Button editEvent = new Button (dialog, SWT.PUSH);
- editEvent.setText (ControlExample.getResourceString ("Edit_Event"));
- editEvent.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING));
- editEvent.addSelectionListener (new SelectionAdapter() {
- public void widgetSelected (SelectionEvent e) {
- Point pt = editEvent.getLocation();
- pt = e.display.map(editEvent, null, pt);
- int index = table.getSelectionIndex();
- if (getExampleWidgets().length > 0 && index != -1) {
- createEditEventDialog(dialog, pt.x, pt.y, index);
- }
- }
- });
- editEvent.setEnabled(false);
- table.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- int fields = 0;
- int index = table.getSelectionIndex();
- if (index != -1 && index < EVENT_INFO.length) { // TODO: Allow custom widgets to specify event info
- fields = (EVENT_INFO[index].settableFields);
- }
- editEvent.setEnabled(fields != 0);
- }
- public void widgetDefaultSelected(SelectionEvent e) {
- if (editEvent.getEnabled()) {
- Point pt = editEvent.getLocation();
- pt = e.display.map(editEvent, null, pt);
- int index = table.getSelectionIndex();
- if (getExampleWidgets().length > 0 && index != -1 && index < EVENT_INFO.length) {
- createEditEventDialog(dialog, pt.x, pt.y, index);
- }
- }
- }
- });
-
- new Label(dialog, SWT.NONE); /* Filler */
- Button ok = new Button (dialog, SWT.PUSH);
- ok.setText(ControlExample.getResourceString ("OK"));
- dialog.setDefaultButton(ok);
- ok.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
- ok.addSelectionListener (new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- TableItem [] items = table.getItems();
- for (int i = 0; i < EVENT_INFO.length; i++) {
- eventsFilter[i] = items[i].getChecked();
- }
- for (int i = 0; i < customNames.length; i++) {
- eventsFilter[EVENT_INFO.length + i] = items[EVENT_INFO.length + i].getChecked();
- }
- dialog.dispose();
- }
- });
- dialog.pack ();
- /*
- * If the preferred size of the dialog is too tall for the display,
- * then reduce the height, so that the vertical scrollbar will appear.
- */
- Rectangle bounds = dialog.getBounds();
- Rectangle trim = dialog.computeTrim(0, 0, 0, 0);
- Rectangle clientArea = display.getClientArea();
- if (bounds.height > clientArea.height) {
- dialog.setSize(bounds.width, clientArea.height - trim.height);
- }
- dialog.setLocation(bounds.x, clientArea.y);
- dialog.open ();
- while (! dialog.isDisposed()) {
- if (! display.readAndDispatch()) display.sleep();
- }
- }
-
- /**
- * Creates the "Listeners" group. The "Listeners" group
- * goes below the "Example" and "Control" groups.
- */
- void createListenersGroup () {
- listenersGroup = new Group (tabFolderPage, SWT.NONE);
- listenersGroup.setLayout (new GridLayout (3, false));
- listenersGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true, 2, 1));
- listenersGroup.setText (ControlExample.getResourceString ("Listeners"));
-
- /*
- * Create the button to access the 'Listeners' dialog.
- */
- Button listenersButton = new Button (listenersGroup, SWT.PUSH);
- listenersButton.setText (ControlExample.getResourceString ("Select_Listeners"));
- listenersButton.addSelectionListener (new SelectionAdapter() {
- public void widgetSelected (SelectionEvent e) {
- createListenerSelectionDialog ();
- recreateExampleWidgets ();
- }
- });
-
- /*
- * Create the checkbox to add/remove listeners to/from the example widgets.
- */
- final Button listenCheckbox = new Button (listenersGroup, SWT.CHECK);
- listenCheckbox.setText (ControlExample.getResourceString ("Listen"));
- listenCheckbox.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected(SelectionEvent e) {
- logging = listenCheckbox.getSelection ();
- recreateExampleWidgets ();
- }
- });
-
- /*
- * Create the button to clear the text.
- */
- Button clearButton = new Button (listenersGroup, SWT.PUSH);
- clearButton.setText (ControlExample.getResourceString ("Clear"));
- clearButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
- clearButton.addSelectionListener (new SelectionAdapter() {
- public void widgetSelected (SelectionEvent e) {
- eventConsole.setText ("");
- }
- });
-
- /* Initialize the eventsFilter to log all events. */
- int customEventCount = getCustomEventNames ().length;
- eventsFilter = new boolean [EVENT_INFO.length + customEventCount];
- for (int i = 0; i < EVENT_INFO.length + customEventCount; i++) {
- eventsFilter [i] = true;
- }
-
- /* Create the event console Text. */
- eventConsole = new Text (listenersGroup, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
- GridData data = new GridData (GridData.FILL_BOTH);
- data.horizontalSpan = 3;
- data.heightHint = 80;
- eventConsole.setLayoutData (data);
- createEventConsolePopup ();
- eventConsole.addKeyListener (new KeyAdapter () {
- public void keyPressed (KeyEvent e) {
- if ((e.keyCode == 'A' || e.keyCode == 'a') && (e.stateMask & SWT.MOD1) != 0) {
- eventConsole.selectAll ();
- e.doit = false;
- }
- }
- });
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return null;
- }
-
- Shell createSetGetDialog(String[] methodNames) {
- final Shell dialog = new Shell(shell, SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MODELESS);
- dialog.setLayout(new GridLayout(2, false));
- dialog.setText(getTabText() + " " + ControlExample.getResourceString ("Set_Get"));
- nameCombo = new Combo(dialog, SWT.READ_ONLY);
- nameCombo.setItems(methodNames);
- nameCombo.setText(methodNames[0]);
- nameCombo.setVisibleItemCount(methodNames.length);
- nameCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
- nameCombo.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- resetLabels();
- }
- });
- returnTypeLabel = new Label(dialog, SWT.NONE);
- returnTypeLabel.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, false, false));
- setButton = new Button(dialog, SWT.PUSH);
- setButton.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, false, false));
- setButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- setValue();
- setText.selectAll();
- setText.setFocus();
- }
- });
- setText = new Text(dialog, SWT.SINGLE | SWT.BORDER);
- setText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
- getButton = new Button(dialog, SWT.PUSH);
- getButton.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, false, false));
- getButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- getValue();
- }
- });
- getText = new Text(dialog, SWT.MULTI | SWT.BORDER | SWT.READ_ONLY | SWT.H_SCROLL | SWT.V_SCROLL);
- GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
- data.widthHint = 240;
- data.heightHint = 200;
- getText.setLayoutData(data);
- resetLabels();
- dialog.setDefaultButton(setButton);
- dialog.pack();
- dialog.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent e) {
- setGetDialog = null;
- }
- });
- return dialog;
- }
-
- void resetLabels() {
- String methodRoot = nameCombo.getText();
- returnTypeLabel.setText(parameterInfo(methodRoot));
- setButton.setText(setMethodName(methodRoot));
- getButton.setText("get" + methodRoot);
- setText.setText("");
- getText.setText("");
- getValue();
- setText.setFocus();
- }
-
- String setMethodName(String methodRoot) {
- return "set" + methodRoot;
- }
-
- String parameterInfo(String methodRoot) {
- String typeName = null;
- Class returnType = getReturnType(methodRoot);
- boolean isArray = returnType.isArray();
- if (isArray) {
- typeName = returnType.getComponentType().getName();
- } else {
- typeName = returnType.getName();
- }
- String typeNameString = typeName;
- int index = typeName.lastIndexOf('.');
- if (index != -1 && index+1 < typeName.length()) typeNameString = typeName.substring(index+1);
- String info = ControlExample.getResourceString("Info_" + typeNameString + (isArray ? "A" : ""));
- if (isArray) {
- typeNameString += "[]";
- }
- return ControlExample.getResourceString("Parameter_Info", new Object[] {typeNameString, info});
- }
-
- void getValue() {
- String methodName = "get" + nameCombo.getText();
- getText.setText("");
- Widget[] widgets = getExampleWidgets();
- for (int i = 0; i < widgets.length; i++) {
- try {
- java.lang.reflect.Method method = widgets[i].getClass().getMethod(methodName, null);
- Object result = method.invoke(widgets[i], null);
- if (result == null) {
- getText.append("null");
- } else if (result.getClass().isArray()) {
- int length = java.lang.reflect.Array.getLength(result);
- if (length == 0) {
- getText.append(result.getClass().getComponentType() + "[0]");
- }
- for (int j = 0; j < length; j++) {
- getText.append(java.lang.reflect.Array.get(result,j).toString() + "\n");
- }
- } else {
- getText.append(result.toString());
- }
- } catch (Exception e) {
- getText.append(e.toString());
- }
- if (i + 1 < widgets.length) {
- getText.append("\n\n");
- }
- }
- }
-
- Class getReturnType(String methodRoot) {
- Class returnType = null;
- String methodName = "get" + methodRoot;
- Widget[] widgets = getExampleWidgets();
- try {
- java.lang.reflect.Method method = widgets[0].getClass().getMethod(methodName, null);
- returnType = method.getReturnType();
- } catch (Exception e) {
- }
- return returnType;
- }
-
- void setValue() {
- /* The parameter type must be the same as the get method's return type */
- String methodRoot = nameCombo.getText();
- Class returnType = getReturnType(methodRoot);
- String methodName = setMethodName(methodRoot);
- String value = setText.getText();
- Widget[] widgets = getExampleWidgets();
- for (int i = 0; i < widgets.length; i++) {
- try {
- java.lang.reflect.Method method = widgets[i].getClass().getMethod(methodName, new Class[] {returnType});
- String typeName = returnType.getName();
- Object[] parameter = null;
- if (value.equals("null")) {
- parameter = new Object[] {null};
- } else if (typeName.equals("int")) {
- parameter = new Object[] {new Integer(value)};
- } else if (typeName.equals("long")) {
- parameter = new Object[] {new Long(value)};
- } else if (typeName.equals("char")) {
- parameter = new Object[] {value.length() == 1 ? new Character(value.charAt(0)) : new Character('\0')};
- } else if (typeName.equals("boolean")) {
- parameter = new Object[] {new Boolean(value)};
- } else if (typeName.equals("java.lang.String")) {
- parameter = new Object[] {value};
- } else if (typeName.equals("org.eclipse.swt.graphics.Point")) {
- String xy[] = split(value, ',');
- parameter = new Object[] {new Point(new Integer(xy[0]).intValue(),new Integer(xy[1]).intValue())};
- } else if (typeName.equals("[I")) {
- String strings[] = split(value, ',');
- int[] ints = new int[strings.length];
- for (int j = 0; j < strings.length; j++) {
- ints[j] = new Integer(strings[j]).intValue();
- }
- parameter = new Object[] {ints};
- } else if (typeName.equals("[Ljava.lang.String;")) {
- parameter = new Object[] {split(value, ',')};
- } else {
- parameter = parameterForType(typeName, value, widgets[i]);
- }
- method.invoke(widgets[i], parameter);
- } catch (Exception e) {
- Throwable cause = e.getCause();
- String message = e.getMessage();
- getText.setText(e.toString());
- if (cause != null) getText.append(", cause=\n" + cause.toString());
- if (message != null) getText.append(", message=\n" + message);
- }
- }
- }
-
- Object[] parameterForType(String typeName, String value, Widget widget) {
- return new Object[] {value};
- }
-
- void createOrientationGroup () {
- /* Create Orientation group*/
- orientationGroup = new Group (controlGroup, SWT.NONE);
- orientationGroup.setLayout (new GridLayout());
- orientationGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, false, false));
- orientationGroup.setText (ControlExample.getResourceString("Orientation"));
- defaultOrietationButton = new Button (orientationGroup, SWT.RADIO);
- defaultOrietationButton.setText (ControlExample.getResourceString("Default"));
- defaultOrietationButton.setSelection (true);
- ltrButton = new Button (orientationGroup, SWT.RADIO);
- ltrButton.setText ("SWT.LEFT_TO_RIGHT");
- rtlButton = new Button (orientationGroup, SWT.RADIO);
- rtlButton.setText ("SWT.RIGHT_TO_LEFT");
- }
-
- /**
- * 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 (SWT.FILL, SWT.FILL, false, false));
- 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);
- fillHButton = new Button (sizeGroup, SWT.CHECK);
- fillHButton.setText (ControlExample.getResourceString("Fill_X"));
- fillVButton = new Button (sizeGroup, SWT.CHECK);
- fillVButton.setText (ControlExample.getResourceString("Fill_Y"));
-
- /* Add the listeners */
- SelectionAdapter selectionListener = new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setExampleWidgetSize ();
- }
- };
- preferredButton.addSelectionListener(selectionListener);
- tooSmallButton.addSelectionListener(selectionListener);
- smallButton.addSelectionListener(selectionListener);
- largeButton.addSelectionListener(selectionListener);
- fillHButton.addSelectionListener(selectionListener);
- fillVButton.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 (SWT.FILL, SWT.FILL, false, false));
- 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) {
- /* Cache the shell and display. */
- shell = tabFolder.getShell ();
- display = shell.getDisplay ();
-
- /* Create a two column page. */
- tabFolderPage = new Composite (tabFolder, SWT.NONE);
- tabFolderPage.setLayout (new GridLayout (2, false));
-
- /* Create the "Example" and "Control" groups. */
- createExampleGroup ();
- createControlGroup ();
-
- /* Create the "Listeners" group under the "Control" group. */
- createListenersGroup ();
-
- /* Create and initialize the example and control widgets. */
- createExampleWidgets ();
- hookExampleWidgetListeners ();
- createControlWidgets ();
- createBackgroundModeGroup ();
- setExampleWidgetState ();
-
- return tabFolderPage;
- }
-
- void setExampleWidgetPopupMenu() {
- Control[] controls = getExampleControls();
- for (int i = 0; i < controls.length; i++) {
- final Control control = controls [i];
- control.addListener(SWT.MenuDetect, new Listener() {
- public void handleEvent(Event event) {
- Menu menu = control.getMenu();
- if (menu != null && samplePopup) {
- menu.dispose();
- menu = null;
- }
- if (menu == null && popupMenuButton.getSelection()) {
- menu = new Menu(shell, SWT.POP_UP);
- MenuItem item = new MenuItem(menu, SWT.PUSH);
- item.setText("Sample popup menu item");
- specialPopupMenuItems(menu, event);
- control.setMenu(menu);
- samplePopup = true;
- }
- }
- });
- }
- }
-
- protected void specialPopupMenuItems(final Menu menu, final Event event) {
- }
-
- /**
- * Disposes the "Example" widgets.
- */
- void disposeExampleWidgets () {
- Widget [] widgets = getExampleWidgets ();
- for (int i=0; i<widgets.length; i++) {
- widgets [i].dispose ();
- }
- }
-
- Image colorImage (Color color) {
- Image image = new Image (display, IMAGE_SIZE, IMAGE_SIZE);
- GC gc = new GC(image);
- gc.setBackground(color);
- Rectangle bounds = image.getBounds();
- gc.fillRectangle(0, 0, bounds.width, bounds.height);
- gc.setBackground(display.getSystemColor(SWT.COLOR_BLACK));
- gc.drawRectangle(0, 0, bounds.width - 1, bounds.height - 1);
- gc.dispose();
- return image;
- }
-
- Image fontImage (Font font) {
- Image image = new Image (display, IMAGE_SIZE, IMAGE_SIZE);
- GC gc = new GC(image);
- Rectangle bounds = image.getBounds();
- gc.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
- gc.fillRectangle(0, 0, bounds.width, bounds.height);
- gc.setBackground(display.getSystemColor(SWT.COLOR_BLACK));
- gc.drawRectangle(0, 0, bounds.width - 1, bounds.height - 1);
- FontData data[] = font.getFontData();
- int style = data[0].getStyle();
- switch (style) {
- case SWT.NORMAL:
- gc.drawLine(3, 3, 3, 8);
- gc.drawLine(4, 3, 7, 8);
- gc.drawLine(8, 3, 8, 8);
- break;
- case SWT.BOLD:
- gc.drawLine(3, 2, 3, 9);
- gc.drawLine(4, 2, 4, 9);
- gc.drawLine(5, 2, 7, 2);
- gc.drawLine(5, 3, 8, 3);
- gc.drawLine(5, 5, 7, 5);
- gc.drawLine(5, 6, 7, 6);
- gc.drawLine(5, 8, 8, 8);
- gc.drawLine(5, 9, 7, 9);
- gc.drawLine(7, 4, 8, 4);
- gc.drawLine(7, 7, 8, 7);
- break;
- case SWT.ITALIC:
- gc.drawLine(6, 2, 8, 2);
- gc.drawLine(7, 3, 4, 8);
- gc.drawLine(3, 9, 5, 9);
- break;
- case SWT.BOLD | SWT.ITALIC:
- gc.drawLine(5, 2, 8, 2);
- gc.drawLine(5, 3, 8, 3);
- gc.drawLine(6, 4, 4, 7);
- gc.drawLine(7, 4, 5, 7);
- gc.drawLine(3, 8, 6, 8);
- gc.drawLine(3, 9, 6, 9);
- break;
- }
- gc.dispose();
- return image;
- }
-
- /**
- * Gets the list of custom event names.
- * Subclasses override this method to allow adding of custom events.
- *
- * @return an array containing custom event names
- * @see hookCustomListener
- */
- String [] getCustomEventNames () {
- return new String [0];
- }
-
- /**
- * Gets the default style for a widget
- *
- * @return the default style bit
- */
- int getDefaultStyle () {
- if (ltrButton != null && ltrButton.getSelection()) {
- return SWT.LEFT_TO_RIGHT;
- }
- if (rtlButton != null && rtlButton.getSelection()) {
- return SWT.RIGHT_TO_LEFT;
- }
- return SWT.NONE;
- }
-
- /**
- * Gets the "Example" widgets.
- *
- * @return an array containing the example widgets
- */
- Widget [] getExampleWidgets () {
- return new Widget [0];
- }
-
- /**
- * Gets the "Example" controls.
- * This is the subset of "Example" widgets that are controls.
- *
- * @return an array containing the example controls
- */
- Control [] getExampleControls () {
- Widget [] widgets = getExampleWidgets ();
- Control [] controls = new Control [0];
- for (int i = 0; i < widgets.length; i++) {
- if (widgets[i] instanceof Control) {
- Control[] newControls = new Control[controls.length + 1];
- System.arraycopy(controls, 0, newControls, 0, controls.length);
- controls = newControls;
- controls[controls.length - 1] = (Control)widgets[i];
- }
- }
- return controls;
- }
-
- /**
- * Gets the "Example" widget's items, if any.
- *
- * @return an array containing the example widget's items
- */
- Item [] getExampleWidgetItems () {
- return new Item [0];
- }
-
- /**
- * Gets the short text for the tab folder item.
- *
- * @return the short text for the tab item
- */
- String getShortTabText() {
- return getTabText();
- }
-
- /**
- * Gets the text for the tab folder item.
- *
- * @return the text for the tab item
- */
- String getTabText () {
- return "";
- }
-
- /**
- * Hooks all listeners to all example controls
- * and example control items.
- */
- void hookExampleWidgetListeners () {
- if (logging) {
- Widget[] widgets = getExampleWidgets ();
- for (int i = 0; i < widgets.length; i++) {
- hookListeners (widgets [i]);
- }
- Item[] exampleItems = getExampleWidgetItems ();
- for (int i = 0; i < exampleItems.length; i++) {
- hookListeners (exampleItems [i]);
- }
- String [] customNames = getCustomEventNames ();
- for (int i = 0; i < customNames.length; i++) {
- if (eventsFilter [EVENT_INFO.length + i]) {
- hookCustomListener (customNames[i]);
- }
- }
- }
- }
-
- /**
- * Hooks the custom listener specified by eventName.
- * Subclasses override this method to add custom listeners.
- * @see getCustomEventNames
- */
- void hookCustomListener (String eventName) {
- }
-
- /**
- * Hooks all listeners to the specified widget.
- */
- void hookListeners (Widget widget) {
- if (logging) {
- Listener listener = new Listener() {
- public void handleEvent (Event event) {
- log (event);
- }
- };
- for (int i = 0; i < EVENT_INFO.length; i++) {
- if (eventsFilter [i]) {
- widget.addListener (EVENT_INFO[i].type, listener);
- }
- }
- }
- }
-
- /**
- * Logs an untyped event to the event console.
- */
- void log(Event event) {
- int i = 0;
- while (i < EVENT_INFO.length) {
- if (EVENT_INFO[i].type == event.type) break;
- i++;
- }
- String toString = EVENT_INFO[i].name + " [" + event.type + "]: ";
- switch (event.type) {
- case SWT.KeyDown:
- case SWT.KeyUp: toString += new KeyEvent (event).toString (); break;
- case SWT.MouseDown:
- case SWT.MouseUp:
- case SWT.MouseMove:
- case SWT.MouseEnter:
- case SWT.MouseExit:
- case SWT.MouseDoubleClick:
- case SWT.MouseWheel:
- case SWT.MouseHover: toString += new MouseEvent (event).toString (); break;
- case SWT.Paint: toString += new PaintEvent (event).toString (); break;
- case SWT.Move:
- case SWT.Resize: toString += new ControlEvent (event).toString (); break;
- case SWT.Dispose: toString += new DisposeEvent (event).toString (); break;
- case SWT.Selection:
- case SWT.DefaultSelection: toString += new SelectionEvent (event).toString (); break;
- case SWT.FocusIn:
- case SWT.FocusOut: toString += new FocusEvent (event).toString (); break;
- case SWT.Expand:
- case SWT.Collapse: toString += new TreeEvent (event).toString (); break;
- case SWT.Iconify:
- case SWT.Deiconify:
- case SWT.Close:
- case SWT.Activate:
- case SWT.Deactivate: toString += new ShellEvent (event).toString (); break;
- case SWT.Show:
- case SWT.Hide: toString += (event.widget instanceof Menu) ? new MenuEvent (event).toString () : event.toString(); break;
- case SWT.Modify: toString += new ModifyEvent (event).toString (); break;
- case SWT.Verify: toString += new VerifyEvent (event).toString (); break;
- case SWT.Help: toString += new HelpEvent (event).toString (); break;
- case SWT.Arm: toString += new ArmEvent (event).toString (); break;
- case SWT.Traverse: toString += new TraverseEvent (event).toString (); break;
- case SWT.HardKeyDown:
- case SWT.HardKeyUp:
- case SWT.DragDetect:
- case SWT.MenuDetect:
- case SWT.SetData:
- default: toString += event.toString ();
- }
- log (toString);
-
- /* Return values for event fields. */
- int mask = EVENT_INFO[i].setFields;
- if (!ignore && mask != 0) {
- Event setFieldsEvent = EVENT_INFO[i].event;
- if ((mask & DOIT) != 0) event.doit = setFieldsEvent.doit;
- if ((mask & DETAIL) != 0) event.detail = setFieldsEvent.detail;
- if ((mask & TEXT) != 0) event.text = setFieldsEvent.text;
- if ((mask & X) != 0) event.x = setFieldsEvent.x;
- if ((mask & Y) != 0) event.y = setFieldsEvent.y;
- if ((mask & WIDTH) != 0) event.width = setFieldsEvent.width;
- if ((mask & HEIGHT) != 0) event.height = setFieldsEvent.height;
- eventConsole.append (ControlExample.getResourceString("Returning"));
- ignore = true;
- log (event);
- ignore = false;
- }
- }
-
- /**
- * Logs a string to the event console.
- */
- void log (String string) {
- eventConsole.append (string);
- eventConsole.append ("\n");
- }
-
- /**
- * Logs a typed event to the event console.
- */
- void log (String eventName, TypedEvent event) {
- eventConsole.append (eventName + ": ");
- eventConsole.append (event.toString ());
- eventConsole.append ("\n");
- }
-
- /**
- * Recreates the "Example" widgets.
- */
- void recreateExampleWidgets () {
- disposeExampleWidgets ();
- createExampleWidgets ();
- hookExampleWidgetListeners ();
- setExampleWidgetState ();
- }
-
- /**
- * Sets the foreground color, background color, and font
- * of the "Example" widgets to their default settings.
- * Subclasses may extend in order to reset other colors
- * and fonts to default settings as well.
- */
- void resetColorsAndFonts () {
- Color oldColor = foregroundColor;
- foregroundColor = null;
- setExampleWidgetForeground ();
- if (oldColor != null) oldColor.dispose();
- oldColor = backgroundColor;
- backgroundColor = null;
- setExampleWidgetBackground ();
- if (oldColor != null) oldColor.dispose();
- Font oldFont = font;
- font = null;
- setExampleWidgetFont ();
- setExampleWidgetSize ();
- if (oldFont != null) oldFont.dispose();
- }
-
- boolean rtlSupport() {
- return RTL_SUPPORT_ENABLE;
- }
-
- /**
- * Sets the background color of the "Example" widgets' parent.
- */
- void setExampleGroupBackgroundColor () {
- if (backgroundModeGroup == null) return;
- exampleGroup.setBackground (backgroundModeColorButton.getSelection () ? display.getSystemColor(SWT.COLOR_BLUE) : null);
- }
- /**
- * Sets the background image of the "Example" widgets' parent.
- */
- void setExampleGroupBackgroundImage () {
- if (backgroundModeGroup == null) return;
- exampleGroup.setBackgroundImage (backgroundModeImageButton.getSelection () ? instance.images[ControlExample.ciParentBackground] : null);
- }
-
- /**
- * Sets the background mode of the "Example" widgets' parent.
- */
- void setExampleGroupBackgroundMode () {
- if (backgroundModeGroup == null) return;
- String modeString = backgroundModeCombo.getText ();
- int mode = SWT.INHERIT_NONE;
- if (modeString.equals("SWT.INHERIT_DEFAULT")) mode = SWT.INHERIT_DEFAULT;
- if (modeString.equals("SWT.INHERIT_FORCE")) mode = SWT.INHERIT_FORCE;
- exampleGroup.setBackgroundMode (mode);
- }
-
- /**
- * Sets the background color of the "Example" widgets.
- */
- void setExampleWidgetBackground () {
- if (colorAndFontTable == null) return; // user cannot change color/font on this tab
- Control [] controls = getExampleControls ();
- if (!instance.startup) {
- for (int i = 0; i < controls.length; i++) {
- controls[i].setBackground (backgroundColor);
- }
- }
- // Set the background color item's image to match the background color of the example widget(s).
- Color color = backgroundColor;
- if (controls.length == 0) return;
- if (color == null) color = controls [0].getBackground ();
- TableItem item = colorAndFontTable.getItem(BACKGROUND_COLOR);
- Image oldImage = item.getImage();
- if (oldImage != null) oldImage.dispose();
- item.setImage (colorImage (color));
- }
-
- /**
- * Sets the enabled state of the "Example" widgets.
- */
- void setExampleWidgetEnabled () {
- Control [] controls = getExampleControls ();
- for (int i=0; i<controls.length; i++) {
- controls [i].setEnabled (enabledButton.getSelection ());
- }
- }
-
- /**
- * Sets the font of the "Example" widgets.
- */
- void setExampleWidgetFont () {
- if (colorAndFontTable == null) return; // user cannot change color/font on this tab
- Control [] controls = getExampleControls ();
- if (!instance.startup) {
- for (int i = 0; i < controls.length; i++) {
- controls[i].setFont(font);
- }
- }
- /* Set the font item's image and font to match the font of the example widget(s). */
- Font ft = font;
- if (controls.length == 0) return;
- if (ft == null) ft = controls [0].getFont ();
- TableItem item = colorAndFontTable.getItem(FONT);
- Image oldImage = item.getImage();
- if (oldImage != null) oldImage.dispose();
- item.setImage (fontImage (ft));
- item.setFont(ft);
- colorAndFontTable.layout ();
- }
-
- /**
- * Sets the foreground color of the "Example" widgets.
- */
- void setExampleWidgetForeground () {
- if (colorAndFontTable == null) return; // user cannot change color/font on this tab
- Control [] controls = getExampleControls ();
- if (!instance.startup) {
- for (int i = 0; i < controls.length; i++) {
- controls[i].setForeground (foregroundColor);
- }
- }
- /* Set the foreground color item's image to match the foreground color of the example widget(s). */
- Color color = foregroundColor;
- if (controls.length == 0) return;
- if (color == null) color = controls [0].getForeground ();
- TableItem item = colorAndFontTable.getItem(FOREGROUND_COLOR);
- Image oldImage = item.getImage();
- if (oldImage != null) oldImage.dispose();
- item.setImage (colorImage(color));
- }
-
- /**
- * 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 = getExampleControls ();
- for (int i=0; i<controls.length; i++) {
- GridData gridData = new GridData(size, size);
- gridData.grabExcessHorizontalSpace = fillHButton.getSelection();
- gridData.grabExcessVerticalSpace = fillVButton.getSelection();
- gridData.horizontalAlignment = fillHButton.getSelection() ? SWT.FILL : SWT.LEFT;
- gridData.verticalAlignment = fillVButton.getSelection() ? SWT.FILL : SWT.TOP;
- controls [i].setLayoutData (gridData);
- }
- tabFolderPage.layout (controls);
- }
-
- /**
- * Sets the state of the "Example" widgets. Subclasses
- * may extend this method to set "Example" widget state
- * that is specific to the widget.
- */
- void setExampleWidgetState () {
- setExampleWidgetBackground ();
- setExampleWidgetForeground ();
- setExampleWidgetFont ();
- if (!instance.startup) {
- setExampleWidgetEnabled ();
- setExampleWidgetVisibility ();
- setExampleGroupBackgroundMode ();
- setExampleGroupBackgroundColor ();
- setExampleGroupBackgroundImage ();
- setExampleWidgetBackgroundImage ();
- setExampleWidgetPopupMenu ();
- setExampleWidgetSize ();
- }
- //TEMPORARY CODE
-// Control [] controls = getExampleControls ();
-// for (int i=0; i<controls.length; i++) {
-// log ("Control=" + controls [i] + ", border width=" + controls [i].getBorderWidth ());
-// }
- }
-
- /**
- * Sets the visibility of the "Example" widgets.
- */
- void setExampleWidgetVisibility () {
- Control [] controls = getExampleControls ();
- for (int i=0; i<controls.length; i++) {
- controls [i].setVisible (visibleButton.getSelection ());
- }
- }
-
- /**
- * Sets the background image of the "Example" widgets.
- */
- void setExampleWidgetBackgroundImage () {
- if (backgroundImageButton != null && backgroundImageButton.isDisposed()) return;
- Control [] controls = getExampleControls ();
- for (int i=0; i<controls.length; i++) {
- controls [i].setBackgroundImage (backgroundImageButton.getSelection () ? instance.images[ControlExample.ciBackground] : null);
- }
- }
-
- /**
- * Splits the given string around matches of the given character.
- *
- * This subset of java.lang.String.split(String regex)
- * uses only code that can be run on CLDC platforms.
- */
- String [] split (String string, char ch) {
- String [] result = new String[0];
- int start = 0;
- int length = string.length();
- while (start < length) {
- int end = string.indexOf(ch, start);
- if (end == -1) end = length;
- String substr = string.substring(start, end);
- String [] newResult = new String[result.length + 1];
- System.arraycopy(result, 0, newResult, 0, result.length);
- newResult [result.length] = substr;
- result = newResult;
- start = end + 1;
- }
- return result;
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TabFolderTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TabFolderTab.java
deleted file mode 100644
index 2b6177a107..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TabFolderTab.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-class TabFolderTab extends Tab {
- /* Example widgets and groups that contain them */
- TabFolder tabFolder1;
- Group tabFolderGroup;
-
- /* Style widgets added to the "Style" group */
- Button topButton, bottomButton;
-
- static String [] TabItems1 = {ControlExample.getResourceString("TabItem1_0"),
- ControlExample.getResourceString("TabItem1_1"),
- ControlExample.getResourceString("TabItem1_2")};
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- TabFolderTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the TabFolder */
- tabFolderGroup = new Group (exampleGroup, SWT.NONE);
- tabFolderGroup.setLayout (new GridLayout ());
- tabFolderGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- tabFolderGroup.setText ("TabFolder");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- if (topButton.getSelection ()) style |= SWT.TOP;
- if (bottomButton.getSelection ()) style |= SWT.BOTTOM;
- if (borderButton.getSelection ()) style |= SWT.BORDER;
-
- /* Create the example widgets */
- tabFolder1 = new TabFolder (tabFolderGroup, style);
- for (int i = 0; i < TabItems1.length; i++) {
- TabItem item = new TabItem(tabFolder1, SWT.NONE);
- item.setText(TabItems1[i]);
- item.setToolTipText(ControlExample.getResourceString("Tooltip", new String [] {TabItems1[i]}));
- Text content = new Text(tabFolder1, SWT.WRAP | SWT.MULTI);
- content.setText(ControlExample.getResourceString("TabItem_content") + ": " + i);
- item.setControl(content);
- }
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup() {
- super.createStyleGroup ();
-
- /* Create the extra widgets */
- topButton = new Button (styleGroup, SWT.RADIO);
- topButton.setText ("SWT.TOP");
- topButton.setSelection(true);
- bottomButton = new Button (styleGroup, SWT.RADIO);
- bottomButton.setText ("SWT.BOTTOM");
- borderButton = new Button (styleGroup, SWT.CHECK);
- borderButton.setText ("SWT.BORDER");
- }
-
- /**
- * Gets the "Example" widget children's items, if any.
- *
- * @return an array containing the example widget children's items
- */
- Item [] getExampleWidgetItems () {
- return tabFolder1.getItems();
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {tabFolder1};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"Selection", "SelectionIndex"};
- }
-
- String setMethodName(String methodRoot) {
- /* Override to handle special case of int getSelectionIndex()/setSelection(int) */
- return (methodRoot.equals("SelectionIndex")) ? "setSelection" : "set" + methodRoot;
- }
-
- Object[] parameterForType(String typeName, String value, Widget widget) {
- if (value.equals("")) return new Object[] {new TabItem[0]};
- if (typeName.equals("org.eclipse.swt.widgets.TabItem")) {
- TabItem item = findItem(value, ((TabFolder) widget).getItems());
- if (item != null) return new Object[] {item};
- }
- if (typeName.equals("[Lorg.eclipse.swt.widgets.TabItem;")) {
- String[] values = split(value, ',');
- TabItem[] items = new TabItem[values.length];
- for (int i = 0; i < values.length; i++) {
- items[i] = findItem(values[i], ((TabFolder) widget).getItems());
- }
- return new Object[] {items};
- }
- return super.parameterForType(typeName, value, widget);
- }
-
- TabItem findItem(String value, TabItem[] items) {
- for (int i = 0; i < items.length; i++) {
- TabItem item = items[i];
- if (item.getText().equals(value)) return item;
- }
- return null;
- }
-
- /**
- * Gets the short text for the tab folder item.
- */
- String getShortTabText() {
- return "TF";
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "TabFolder";
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- topButton.setSelection ((tabFolder1.getStyle () & SWT.TOP) != 0);
- bottomButton.setSelection ((tabFolder1.getStyle () & SWT.BOTTOM) != 0);
- borderButton.setSelection ((tabFolder1.getStyle () & SWT.BORDER) != 0);
- }
-}
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 fb9cd648aa..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TableTab.java
+++ /dev/null
@@ -1,684 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-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;
-
- /* Size widgets added to the "Size" group */
- Button packColumnsButton;
-
- /* Style widgets added to the "Style" group */
- Button noScrollButton, checkButton, fullSelectionButton, hideSelectionButton;
-
- /* Other widgets added to the "Other" group */
- Button multipleColumns, moveableColumns, resizableColumns, headerVisibleButton, sortIndicatorButton, headerImagesButton, linesVisibleButton, subImagesButton;
-
- /* Controls and resources added to the "Colors and Fonts" group */
- static final int ITEM_FOREGROUND_COLOR = 3;
- static final int ITEM_BACKGROUND_COLOR = 4;
- static final int ITEM_FONT = 5;
- static final int CELL_FOREGROUND_COLOR = 6;
- static final int CELL_BACKGROUND_COLOR = 7;
- static final int CELL_FONT = 8;
- Color itemForegroundColor, itemBackgroundColor, cellForegroundColor, cellBackgroundColor;
- Font itemFont, cellFont;
-
- static String [] columnTitles = {ControlExample.getResourceString("TableTitle_0"),
- ControlExample.getResourceString("TableTitle_1"),
- ControlExample.getResourceString("TableTitle_2"),
- ControlExample.getResourceString("TableTitle_3")};
-
- static String[][] tableData = {
- { ControlExample.getResourceString("TableLine0_0"),
- ControlExample.getResourceString("TableLine0_1"),
- ControlExample.getResourceString("TableLine0_2"),
- ControlExample.getResourceString("TableLine0_3") },
- { ControlExample.getResourceString("TableLine1_0"),
- ControlExample.getResourceString("TableLine1_1"),
- ControlExample.getResourceString("TableLine1_2"),
- ControlExample.getResourceString("TableLine1_3") },
- { ControlExample.getResourceString("TableLine2_0"),
- ControlExample.getResourceString("TableLine2_1"),
- ControlExample.getResourceString("TableLine2_2"),
- ControlExample.getResourceString("TableLine2_3") } };
-
- Point menuMouseCoords;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- TableTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Colors and Fonts" group.
- */
- void createColorAndFontGroup () {
- super.createColorAndFontGroup();
-
- TableItem item = new TableItem(colorAndFontTable, SWT.None);
- item.setText(ControlExample.getResourceString ("Item_Foreground_Color"));
- item = new TableItem(colorAndFontTable, SWT.None);
- item.setText(ControlExample.getResourceString ("Item_Background_Color"));
- item = new TableItem(colorAndFontTable, SWT.None);
- item.setText(ControlExample.getResourceString ("Item_Font"));
- item = new TableItem(colorAndFontTable, SWT.None);
- item.setText(ControlExample.getResourceString ("Cell_Foreground_Color"));
- item = new TableItem(colorAndFontTable, SWT.None);
- item.setText(ControlExample.getResourceString ("Cell_Background_Color"));
- item = new TableItem(colorAndFontTable, SWT.None);
- item.setText(ControlExample.getResourceString ("Cell_Font"));
-
- shell.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent event) {
- if (itemBackgroundColor != null) itemBackgroundColor.dispose();
- if (itemForegroundColor != null) itemForegroundColor.dispose();
- if (itemFont != null) itemFont.dispose();
- if (cellBackgroundColor != null) cellBackgroundColor.dispose();
- if (cellForegroundColor != null) cellForegroundColor.dispose();
- if (cellFont != null) cellFont.dispose();
- itemBackgroundColor = null;
- itemForegroundColor = null;
- itemFont = null;
- cellBackgroundColor = null;
- cellForegroundColor = null;
- cellFont = null;
- }
- });
- }
-
- void changeFontOrColor(int index) {
- switch (index) {
- case ITEM_FOREGROUND_COLOR: {
- Color oldColor = itemForegroundColor;
- if (oldColor == null) oldColor = table1.getItem (0).getForeground ();
- colorDialog.setRGB(oldColor.getRGB());
- RGB rgb = colorDialog.open();
- if (rgb == null) return;
- oldColor = itemForegroundColor;
- itemForegroundColor = new Color (display, rgb);
- setItemForeground ();
- if (oldColor != null) oldColor.dispose ();
- }
- break;
- case ITEM_BACKGROUND_COLOR: {
- Color oldColor = itemBackgroundColor;
- if (oldColor == null) oldColor = table1.getItem (0).getBackground ();
- colorDialog.setRGB(oldColor.getRGB());
- RGB rgb = colorDialog.open();
- if (rgb == null) return;
- oldColor = itemBackgroundColor;
- itemBackgroundColor = new Color (display, rgb);
- setItemBackground ();
- if (oldColor != null) oldColor.dispose ();
- }
- break;
- case ITEM_FONT: {
- Font oldFont = itemFont;
- if (oldFont == null) oldFont = table1.getItem (0).getFont ();
- fontDialog.setFontList(oldFont.getFontData());
- FontData fontData = fontDialog.open ();
- if (fontData == null) return;
- oldFont = itemFont;
- itemFont = new Font (display, fontData);
- setItemFont ();
- setExampleWidgetSize ();
- if (oldFont != null) oldFont.dispose ();
- }
- break;
- case CELL_FOREGROUND_COLOR: {
- Color oldColor = cellForegroundColor;
- if (oldColor == null) oldColor = table1.getItem (0).getForeground (1);
- colorDialog.setRGB(oldColor.getRGB());
- RGB rgb = colorDialog.open();
- if (rgb == null) return;
- oldColor = cellForegroundColor;
- cellForegroundColor = new Color (display, rgb);
- setCellForeground ();
- if (oldColor != null) oldColor.dispose ();
- }
- break;
- case CELL_BACKGROUND_COLOR: {
- Color oldColor = cellBackgroundColor;
- if (oldColor == null) oldColor = table1.getItem (0).getBackground (1);
- colorDialog.setRGB(oldColor.getRGB());
- RGB rgb = colorDialog.open();
- if (rgb == null) return;
- oldColor = cellBackgroundColor;
- cellBackgroundColor = new Color (display, rgb);
- setCellBackground ();
- if (oldColor != null) oldColor.dispose ();
- }
- break;
- case CELL_FONT: {
- Font oldFont = cellFont;
- if (oldFont == null) oldFont = table1.getItem (0).getFont (1);
- fontDialog.setFontList(oldFont.getFontData());
- FontData fontData = fontDialog.open ();
- if (fontData == null) return;
- oldFont = cellFont;
- cellFont = new Font (display, fontData);
- setCellFont ();
- setExampleWidgetSize ();
- if (oldFont != null) oldFont.dispose ();
- }
- break;
- default:
- super.changeFontOrColor(index);
- }
- }
-
- /**
- * Creates the "Other" group.
- */
- void createOtherGroup () {
- super.createOtherGroup ();
-
- /* Create display controls specific to this example */
- linesVisibleButton = new Button (otherGroup, SWT.CHECK);
- linesVisibleButton.setText (ControlExample.getResourceString("Lines_Visible"));
- multipleColumns = new Button (otherGroup, SWT.CHECK);
- multipleColumns.setText (ControlExample.getResourceString("Multiple_Columns"));
- multipleColumns.setSelection(true);
- headerVisibleButton = new Button (otherGroup, SWT.CHECK);
- headerVisibleButton.setText (ControlExample.getResourceString("Header_Visible"));
- sortIndicatorButton = new Button (otherGroup, SWT.CHECK);
- sortIndicatorButton.setText (ControlExample.getResourceString("Sort_Indicator"));
- moveableColumns = new Button (otherGroup, SWT.CHECK);
- moveableColumns.setText (ControlExample.getResourceString("Moveable_Columns"));
- resizableColumns = new Button (otherGroup, SWT.CHECK);
- resizableColumns.setText (ControlExample.getResourceString("Resizable_Columns"));
- headerImagesButton = new Button (otherGroup, SWT.CHECK);
- headerImagesButton.setText (ControlExample.getResourceString("Header_Images"));
- subImagesButton = new Button (otherGroup, SWT.CHECK);
- subImagesButton.setText (ControlExample.getResourceString("Sub_Images"));
-
- /* Add the listeners */
- linesVisibleButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setWidgetLinesVisible ();
- }
- });
- multipleColumns.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- recreateExampleWidgets ();
- }
- });
- headerVisibleButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setWidgetHeaderVisible ();
- }
- });
- sortIndicatorButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setWidgetSortIndicator ();
- }
- });
- moveableColumns.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setColumnsMoveable ();
- }
- });
- resizableColumns.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setColumnsResizable ();
- }
- });
- headerImagesButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- recreateExampleWidgets ();
- }
- });
- subImagesButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- recreateExampleWidgets ();
- }
- });
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the table */
- tableGroup = new Group (exampleGroup, SWT.NONE);
- tableGroup.setLayout (new GridLayout ());
- tableGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- tableGroup.setText ("Table");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
- /* Compute the widget style */
- int style = getDefaultStyle();
- 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 (noScrollButton.getSelection ()) style |= SWT.NO_SCROLL;
- if (checkButton.getSelection ()) style |= SWT.CHECK;
- if (fullSelectionButton.getSelection ()) style |= SWT.FULL_SELECTION;
- if (hideSelectionButton.getSelection ()) style |= SWT.HIDE_SELECTION;
- if (borderButton.getSelection ()) style |= SWT.BORDER;
-
- /* Create the table widget */
- table1 = new Table (tableGroup, style);
-
- /* Fill the table with data */
- boolean multiColumn = multipleColumns.getSelection();
- if (multiColumn) {
- for (int i = 0; i < columnTitles.length; i++) {
- TableColumn tableColumn = new TableColumn(table1, SWT.NONE);
- tableColumn.setText(columnTitles[i]);
- tableColumn.setToolTipText(ControlExample.getResourceString("Tooltip", new String [] {columnTitles[i]}));
- if (headerImagesButton.getSelection()) tableColumn.setImage(instance.images [i % 3]);
- }
- table1.setSortColumn(table1.getColumn(0));
- }
- for (int i=0; i<16; i++) {
- TableItem item = new TableItem (table1, SWT.NONE);
- if (multiColumn && subImagesButton.getSelection()) {
- for (int j = 0; j < columnTitles.length; j++) {
- item.setImage(j, instance.images [i % 3]);
- }
- } else {
- item.setImage(instance.images [i % 3]);
- }
- setItemText (item, i, ControlExample.getResourceString("Index") + i);
- }
- packColumns();
- }
-
- void setItemText(TableItem item, int i, String node) {
- int index = i % 3;
- if (multipleColumns.getSelection()) {
- tableData [index][0] = node;
- item.setText (tableData [index]);
- } else {
- item.setText (node);
- }
- }
-
- /**
- * Creates the "Size" group. The "Size" group contains
- * controls that allow the user to change the size of
- * the example widgets.
- */
- void createSizeGroup () {
- super.createSizeGroup();
-
- packColumnsButton = new Button (sizeGroup, SWT.PUSH);
- packColumnsButton.setText (ControlExample.getResourceString("Pack_Columns"));
- packColumnsButton.addSelectionListener(new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- packColumns ();
- setExampleWidgetSize ();
- }
- });
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup () {
- super.createStyleGroup ();
-
- /* Create the extra widgets */
- noScrollButton = new Button (styleGroup, SWT.CHECK);
- noScrollButton.setText ("SWT.NO_SCROLL");
- checkButton = new Button (styleGroup, SWT.CHECK);
- checkButton.setText ("SWT.CHECK");
- fullSelectionButton = new Button (styleGroup, SWT.CHECK);
- fullSelectionButton.setText ("SWT.FULL_SELECTION");
- hideSelectionButton = new Button (styleGroup, SWT.CHECK);
- hideSelectionButton.setText ("SWT.HIDE_SELECTION");
- }
-
- /**
- * Gets the "Example" widget children's items, if any.
- *
- * @return an array containing the example widget children's items
- */
- Item [] getExampleWidgetItems () {
- Item [] columns = table1.getColumns();
- Item [] items = table1.getItems();
- Item [] allItems = new Item [columns.length + items.length];
- System.arraycopy(columns, 0, allItems, 0, columns.length);
- System.arraycopy(items, 0, allItems, columns.length, items.length);
- return allItems;
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {table1};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"ColumnOrder", "ItemCount", "Selection", "SelectionIndex", "ToolTipText", "TopIndex"};
- }
-
- String setMethodName(String methodRoot) {
- /* Override to handle special case of int getSelectionIndex()/setSelection(int) */
- return (methodRoot.equals("SelectionIndex")) ? "setSelection" : "set" + methodRoot;
- }
-
- void packColumns () {
- int columnCount = table1.getColumnCount();
- for (int i = 0; i < columnCount; i++) {
- TableColumn tableColumn = table1.getColumn(i);
- tableColumn.pack();
- }
- }
-
- Object[] parameterForType(String typeName, String value, Widget widget) {
- if (value.equals("")) return new Object[] {new TableItem[0]}; // bug in Table?
- if (typeName.equals("org.eclipse.swt.widgets.TableItem")) {
- TableItem item = findItem(value, ((Table) widget).getItems());
- if (item != null) return new Object[] {item};
- }
- if (typeName.equals("[Lorg.eclipse.swt.widgets.TableItem;")) {
- String[] values = split(value, ',');
- TableItem[] items = new TableItem[values.length];
- for (int i = 0; i < values.length; i++) {
- items[i] = findItem(values[i], ((Table) widget).getItems());
- }
- return new Object[] {items};
- }
- return super.parameterForType(typeName, value, widget);
- }
-
- TableItem findItem(String value, TableItem[] items) {
- for (int i = 0; i < items.length; i++) {
- TableItem item = items[i];
- if (item.getText().equals(value)) return item;
- }
- return null;
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Table";
- }
-
- /**
- * Sets the foreground color, background color, and font
- * of the "Example" widgets to their default settings.
- * Also sets foreground and background color of TableItem [0]
- * to default settings.
- */
- void resetColorsAndFonts () {
- super.resetColorsAndFonts ();
- Color oldColor = itemForegroundColor;
- itemForegroundColor = null;
- setItemForeground ();
- if (oldColor != null) oldColor.dispose();
- oldColor = itemBackgroundColor;
- itemBackgroundColor = null;
- setItemBackground ();
- if (oldColor != null) oldColor.dispose();
- Font oldFont = font;
- itemFont = null;
- setItemFont ();
- if (oldFont != null) oldFont.dispose();
- oldColor = cellForegroundColor;
- cellForegroundColor = null;
- setCellForeground ();
- if (oldColor != null) oldColor.dispose();
- oldColor = cellBackgroundColor;
- cellBackgroundColor = null;
- setCellBackground ();
- if (oldColor != null) oldColor.dispose();
- oldFont = font;
- cellFont = null;
- setCellFont ();
- if (oldFont != null) oldFont.dispose();
- }
-
- /**
- * Sets the background color of the Row 0 TableItem in column 1.
- */
- void setCellBackground () {
- if (!instance.startup) {
- table1.getItem (0).setBackground (1, cellBackgroundColor);
- }
- /* Set the background color item's image to match the background color of the cell. */
- Color color = cellBackgroundColor;
- if (color == null) color = table1.getItem (0).getBackground (1);
- TableItem item = colorAndFontTable.getItem(CELL_BACKGROUND_COLOR);
- Image oldImage = item.getImage();
- if (oldImage != null) oldImage.dispose();
- item.setImage (colorImage(color));
- }
-
- /**
- * Sets the foreground color of the Row 0 TableItem in column 1.
- */
- void setCellForeground () {
- if (!instance.startup) {
- table1.getItem (0).setForeground (1, cellForegroundColor);
- }
- /* Set the foreground color item's image to match the foreground color of the cell. */
- Color color = cellForegroundColor;
- if (color == null) color = table1.getItem (0).getForeground (1);
- TableItem item = colorAndFontTable.getItem(CELL_FOREGROUND_COLOR);
- Image oldImage = item.getImage();
- if (oldImage != null) oldImage.dispose();
- item.setImage (colorImage(color));
- }
-
- /**
- * Sets the font of the Row 0 TableItem in column 1.
- */
- void setCellFont () {
- if (!instance.startup) {
- table1.getItem (0).setFont (1, cellFont);
- }
- /* Set the font item's image to match the font of the item. */
- Font ft = cellFont;
- if (ft == null) ft = table1.getItem (0).getFont (1);
- TableItem item = colorAndFontTable.getItem(CELL_FONT);
- Image oldImage = item.getImage();
- if (oldImage != null) oldImage.dispose();
- item.setImage (fontImage(ft));
- item.setFont(ft);
- colorAndFontTable.layout ();
- }
-
- /**
- * Sets the background color of TableItem [0].
- */
- void setItemBackground () {
- if (!instance.startup) {
- table1.getItem (0).setBackground (itemBackgroundColor);
- }
- /* Set the background color item's image to match the background color of the item. */
- Color color = itemBackgroundColor;
- if (color == null) color = table1.getItem (0).getBackground ();
- TableItem item = colorAndFontTable.getItem(ITEM_BACKGROUND_COLOR);
- Image oldImage = item.getImage();
- if (oldImage != null) oldImage.dispose();
- item.setImage (colorImage(color));
- }
-
- /**
- * Sets the foreground color of TableItem [0].
- */
- void setItemForeground () {
- if (!instance.startup) {
- table1.getItem (0).setForeground (itemForegroundColor);
- }
- /* Set the foreground color item's image to match the foreground color of the item. */
- Color color = itemForegroundColor;
- if (color == null) color = table1.getItem (0).getForeground ();
- TableItem item = colorAndFontTable.getItem(ITEM_FOREGROUND_COLOR);
- Image oldImage = item.getImage();
- if (oldImage != null) oldImage.dispose();
- item.setImage (colorImage(color));
- }
-
- /**
- * Sets the font of TableItem 0.
- */
- void setItemFont () {
- if (!instance.startup) {
- table1.getItem (0).setFont (itemFont);
- }
- /* Set the font item's image to match the font of the item. */
- Font ft = itemFont;
- if (ft == null) ft = table1.getItem (0).getFont ();
- TableItem item = colorAndFontTable.getItem(ITEM_FONT);
- Image oldImage = item.getImage();
- if (oldImage != null) oldImage.dispose();
- item.setImage (fontImage(ft));
- item.setFont(ft);
- colorAndFontTable.layout ();
- }
-
- /**
- * Sets the moveable columns state of the "Example" widgets.
- */
- void setColumnsMoveable () {
- boolean selection = moveableColumns.getSelection();
- TableColumn[] columns = table1.getColumns();
- for (int i = 0; i < columns.length; i++) {
- columns[i].setMoveable(selection);
- }
- }
-
- /**
- * Sets the resizable columns state of the "Example" widgets.
- */
- void setColumnsResizable () {
- boolean selection = resizableColumns.getSelection();
- TableColumn[] columns = table1.getColumns();
- for (int i = 0; i < columns.length; i++) {
- columns[i].setResizable(selection);
- }
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- setItemBackground ();
- setItemForeground ();
- setItemFont ();
- setCellBackground ();
- setCellForeground ();
- setCellFont ();
- if (!instance.startup) {
- setColumnsMoveable ();
- setColumnsResizable ();
- setWidgetHeaderVisible ();
- setWidgetSortIndicator ();
- setWidgetLinesVisible ();
- }
- super.setExampleWidgetState ();
- noScrollButton.setSelection ((table1.getStyle () & SWT.NO_SCROLL) != 0);
- checkButton.setSelection ((table1.getStyle () & SWT.CHECK) != 0);
- fullSelectionButton.setSelection ((table1.getStyle () & SWT.FULL_SELECTION) != 0);
- hideSelectionButton.setSelection ((table1.getStyle () & SWT.HIDE_SELECTION) != 0);
- try {
- TableColumn column = table1.getColumn(0);
- moveableColumns.setSelection (column.getMoveable());
- resizableColumns.setSelection (column.getResizable());
- } catch (IllegalArgumentException ex) {}
- headerVisibleButton.setSelection (table1.getHeaderVisible());
- linesVisibleButton.setSelection (table1.getLinesVisible());
- }
-
- /**
- * Sets the header visible state of the "Example" widgets.
- */
- void setWidgetHeaderVisible () {
- table1.setHeaderVisible (headerVisibleButton.getSelection ());
- }
-
- /**
- * Sets the sort indicator state of the "Example" widgets.
- */
- void setWidgetSortIndicator () {
- TableColumn [] columns = table1.getColumns();
- if (sortIndicatorButton.getSelection ()) {
- /* Reset to known state: 'down' on column 0. */
- table1.setSortDirection (SWT.DOWN);
- for (int i = 0; i < columns.length; i++) {
- TableColumn column = columns[i];
- if (i == 0) table1.setSortColumn(column);
- SelectionListener listener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- int sortDirection = SWT.DOWN;
- if (e.widget == table1.getSortColumn()) {
- /* If the sort column hasn't changed, cycle down -> up -> none. */
- switch (table1.getSortDirection ()) {
- case SWT.DOWN: sortDirection = SWT.UP; break;
- case SWT.UP: sortDirection = SWT.NONE; break;
- }
- } else {
- table1.setSortColumn((TableColumn)e.widget);
- }
- table1.setSortDirection (sortDirection);
- }
- };
- column.addSelectionListener(listener);
- column.setData("SortListener", listener); //$NON-NLS-1$
- }
- } else {
- table1.setSortDirection (SWT.NONE);
- for (int j = 0; j < columns.length; j++) {
- SelectionListener listener = (SelectionListener)columns[j].getData("SortListener"); //$NON-NLS-1$
- if (listener != null) columns[j].removeSelectionListener(listener);
- }
- }
- }
-
- /**
- * Sets the lines visible state of the "Example" widgets.
- */
- void setWidgetLinesVisible () {
- table1.setLinesVisible (linesVisibleButton.getSelection ());
- }
-
- protected void specialPopupMenuItems(Menu menu, Event event) {
- MenuItem item = new MenuItem(menu, SWT.PUSH);
- item.setText("getItem(Point) on mouse coordinates");
- menuMouseCoords = table1.toControl(new Point(event.x, event.y));
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- eventConsole.append ("getItem(Point(" + menuMouseCoords + ")) returned: " + table1.getItem(menuMouseCoords));
- eventConsole.append ("\n");
- };
- });
- }
-}
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 dd49c1b3fe..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TextTab.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-
-class TextTab extends ScrollableTab {
- /* Example widgets and groups that contain them */
- Text text;
- Group textGroup;
-
- /* Style widgets added to the "Style" group */
- Button wrapButton, readOnlyButton, passwordButton, searchButton, cancelButton;
- Button leftButton, centerButton, rightButton;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- TextTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the text widget */
- textGroup = new Group (exampleGroup, SWT.NONE);
- textGroup.setLayout (new GridLayout ());
- textGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- textGroup.setText ("Text");
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- 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 (passwordButton.getSelection ()) style |= SWT.PASSWORD;
- if (searchButton.getSelection ()) style |= SWT.SEARCH;
- if (cancelButton.getSelection ()) style |= SWT.CANCEL;
- if (borderButton.getSelection ()) style |= SWT.BORDER;
- if (leftButton.getSelection ()) style |= SWT.LEFT;
- if (centerButton.getSelection ()) style |= SWT.CENTER;
- if (rightButton.getSelection ()) style |= SWT.RIGHT;
-
- /* Create the example widgets */
- text = new Text (textGroup, style);
- text.setText (ControlExample.getResourceString("Example_string") + Text.DELIMITER + 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");
- passwordButton = new Button (styleGroup, SWT.CHECK);
- passwordButton.setText ("SWT.PASSWORD");
- searchButton = new Button (styleGroup, SWT.CHECK);
- searchButton.setText ("SWT.SEARCH");
- cancelButton = new Button (styleGroup, SWT.CHECK);
- cancelButton.setText ("SWT.CANCEL");
-
- Composite alignmentGroup = new Composite (styleGroup, SWT.NONE);
- GridLayout layout = new GridLayout ();
- layout.marginWidth = layout.marginHeight = 0;
- alignmentGroup.setLayout (layout);
- alignmentGroup.setLayoutData (new GridData (GridData.FILL_BOTH));
- leftButton = new Button (alignmentGroup, SWT.RADIO);
- leftButton.setText ("SWT.LEFT");
- centerButton = new Button (alignmentGroup, SWT.RADIO);
- centerButton.setText ("SWT.CENTER");
- rightButton = new Button (alignmentGroup, SWT.RADIO);
- rightButton.setText ("SWT.RIGHT");
- }
-
- /**
- * Creates the tab folder page.
- *
- * @param tabFolder org.eclipse.swt.widgets.TabFolder
- * @return the new page for the tab folder
- */
- Composite createTabFolderPage (TabFolder tabFolder) {
- super.createTabFolderPage (tabFolder);
-
- /*
- * Add a resize listener to the tabFolderPage so that
- * if the user types into the example widget to change
- * its preferred size, and then resizes the shell, we
- * recalculate the preferred size correctly.
- */
- tabFolderPage.addControlListener(new ControlAdapter() {
- public void controlResized(ControlEvent e) {
- setExampleWidgetSize ();
- }
- });
-
- return tabFolderPage;
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {text};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"DoubleClickEnabled", "EchoChar", "Editable", "Orientation", "Selection", "Tabs", "Text", "TextLimit", "ToolTipText", "TopIndex"};
- }
-
- /**
- * 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);
- passwordButton.setSelection ((text.getStyle () & SWT.PASSWORD) != 0);
- searchButton.setSelection ((text.getStyle () & SWT.SEARCH) != 0);
- leftButton.setSelection ((text.getStyle () & SWT.LEFT) != 0);
- centerButton.setSelection ((text.getStyle () & SWT.CENTER) != 0);
- rightButton.setSelection ((text.getStyle () & SWT.RIGHT) != 0);
-
- /* Special case: CANCEL and H_SCROLL have the same value,
- * so to avoid confusion, only set CANCEL if SEARCH is set. */
- if ((text.getStyle () & SWT.SEARCH) != 0) {
- cancelButton.setSelection ((text.getStyle () & SWT.CANCEL) != 0);
- horizontalButton.setSelection (false);
- } else {
- cancelButton.setSelection (false);
- horizontalButton.setSelection ((text.getStyle () & SWT.H_SCROLL) != 0);
- }
-
- passwordButton.setEnabled ((text.getStyle () & SWT.SINGLE) != 0);
- searchButton.setEnabled ((text.getStyle () & SWT.SINGLE) != 0);
- cancelButton.setEnabled ((text.getStyle () & SWT.SEARCH) != 0);
- wrapButton.setEnabled ((text.getStyle () & SWT.MULTI) != 0);
- horizontalButton.setEnabled ((text.getStyle () & SWT.MULTI) != 0);
- verticalButton.setEnabled ((text.getStyle () & SWT.MULTI) != 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 143d126b56..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ToolBarTab.java
+++ /dev/null
@@ -1,356 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-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, imageTextToolBar;
- Group imageToolBarGroup, textToolBarGroup, imageTextToolBarGroup;
-
- /* Style widgets added to the "Style" group */
- Button horizontalButton, verticalButton, flatButton, shadowOutButton, wrapButton, rightButton;
-
- /* Other widgets added to the "Other" group */
- Button comboChildButton;
-
- /**
- * 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.NONE);
- imageToolBarGroup.setLayout (new GridLayout ());
- imageToolBarGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- imageToolBarGroup.setText (ControlExample.getResourceString("Image_ToolBar"));
-
- /* Create a group for the text tool bar */
- textToolBarGroup = new Group (exampleGroup, SWT.NONE);
- textToolBarGroup.setLayout (new GridLayout ());
- textToolBarGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- textToolBarGroup.setText (ControlExample.getResourceString("Text_ToolBar"));
-
- /* Create a group for the image and text tool bar */
- imageTextToolBarGroup = new Group (exampleGroup, SWT.NONE);
- imageTextToolBarGroup.setLayout (new GridLayout ());
- imageTextToolBarGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- imageTextToolBarGroup.setText (ControlExample.getResourceString("ImageText_ToolBar"));
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- if (horizontalButton.getSelection()) style |= SWT.HORIZONTAL;
- if (verticalButton.getSelection()) style |= SWT.VERTICAL;
- if (flatButton.getSelection()) style |= SWT.FLAT;
- if (wrapButton.getSelection()) style |= SWT.WRAP;
- if (borderButton.getSelection()) style |= SWT.BORDER;
- if (shadowOutButton.getSelection()) style |= SWT.SHADOW_OUT;
- if (rightButton.getSelection()) style |= SWT.RIGHT;
-
- /*
- * 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");
- if (comboChildButton.getSelection ()) {
- Combo combo = new Combo (imageToolBar, SWT.NONE);
- combo.setItems (new String [] {"250", "500", "750"});
- combo.setText (combo.getItem (0));
- combo.pack ();
- item.setWidth (combo.getSize ().x);
- item.setControl (combo);
- }
- 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");
- if (comboChildButton.getSelection ()) {
- Combo combo = new Combo (textToolBar, SWT.NONE);
- combo.setItems (new String [] {"250", "500", "750"});
- combo.setText (combo.getItem (0));
- combo.pack ();
- item.setWidth (combo.getSize ().x);
- item.setControl (combo);
- }
- item = new ToolItem (textToolBar, SWT.DROP_DOWN);
- item.setText (ControlExample.getResourceString("Drop_Down"));
- item.setToolTipText("SWT.DROP_DOWN");
- item.addSelectionListener(new DropDownSelectionListener());
-
- /* Create the image and text tool bar */
- imageTextToolBar = new ToolBar (imageTextToolBarGroup, style);
- item = new ToolItem (imageTextToolBar, SWT.PUSH);
- item.setImage (instance.images[ControlExample.ciClosedFolder]);
- item.setText (ControlExample.getResourceString("Push"));
- item.setToolTipText("SWT.PUSH");
- item = new ToolItem (imageTextToolBar, SWT.PUSH);
- item.setImage (instance.images[ControlExample.ciClosedFolder]);
- item.setText (ControlExample.getResourceString("Push"));
- item.setToolTipText("SWT.PUSH");
- item = new ToolItem (imageTextToolBar, SWT.RADIO);
- item.setImage (instance.images[ControlExample.ciOpenFolder]);
- item.setText (ControlExample.getResourceString("Radio"));
- item.setToolTipText("SWT.RADIO");
- item = new ToolItem (imageTextToolBar, SWT.RADIO);
- item.setImage (instance.images[ControlExample.ciOpenFolder]);
- item.setText (ControlExample.getResourceString("Radio"));
- item.setToolTipText("SWT.RADIO");
- item = new ToolItem (imageTextToolBar, SWT.CHECK);
- item.setImage (instance.images[ControlExample.ciTarget]);
- item.setText (ControlExample.getResourceString("Check"));
- item.setToolTipText("SWT.CHECK");
- item = new ToolItem (imageTextToolBar, SWT.RADIO);
- item.setImage (instance.images[ControlExample.ciClosedFolder]);
- item.setText (ControlExample.getResourceString("Radio"));
- item.setToolTipText("SWT.RADIO");
- item = new ToolItem (imageTextToolBar, SWT.RADIO);
- item.setImage (instance.images[ControlExample.ciClosedFolder]);
- item.setText (ControlExample.getResourceString("Radio"));
- item.setToolTipText("SWT.RADIO");
- item = new ToolItem (imageTextToolBar, SWT.SEPARATOR);
- item.setToolTipText("SWT.SEPARATOR");
- if (comboChildButton.getSelection ()) {
- Combo combo = new Combo (imageTextToolBar, SWT.NONE);
- combo.setItems (new String [] {"250", "500", "750"});
- combo.setText (combo.getItem (0));
- combo.pack ();
- item.setWidth (combo.getSize ().x);
- item.setControl (combo);
- }
- item = new ToolItem (imageTextToolBar, SWT.DROP_DOWN);
- item.setImage (instance.images[ControlExample.ciTarget]);
- 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 "Other" group.
- */
- void createOtherGroup () {
- super.createOtherGroup ();
-
- /* Create display controls specific to this example */
- comboChildButton = new Button (otherGroup, SWT.CHECK);
- comboChildButton.setText (ControlExample.getResourceString("Combo_child"));
-
- /* Add the listeners */
- comboChildButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- recreateExampleWidgets ();
- }
- });
- }
-
- /**
- * 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");
- flatButton = new Button (styleGroup, SWT.CHECK);
- flatButton.setText ("SWT.FLAT");
- shadowOutButton = new Button (styleGroup, SWT.CHECK);
- shadowOutButton.setText ("SWT.SHADOW_OUT");
- wrapButton = new Button (styleGroup, SWT.CHECK);
- wrapButton.setText ("SWT.WRAP");
- rightButton = new Button (styleGroup, SWT.CHECK);
- rightButton.setText ("SWT.RIGHT");
- borderButton = new Button (styleGroup, SWT.CHECK);
- borderButton.setText ("SWT.BORDER");
- }
-
- void disposeExampleWidgets () {
- super.disposeExampleWidgets ();
- }
-
- /**
- * Gets the "Example" widget children's items, if any.
- *
- * @return an array containing the example widget children's items
- */
- Item [] getExampleWidgetItems () {
- Item [] imageToolBarItems = imageToolBar.getItems();
- Item [] textToolBarItems = textToolBar.getItems();
- Item [] imageTextToolBarItems = imageTextToolBar.getItems();
- Item [] allItems = new Item [imageToolBarItems.length + textToolBarItems.length + imageTextToolBarItems.length];
- System.arraycopy(imageToolBarItems, 0, allItems, 0, imageToolBarItems.length);
- System.arraycopy(textToolBarItems, 0, allItems, imageToolBarItems.length, textToolBarItems.length);
- System.arraycopy(imageTextToolBarItems, 0, allItems, imageToolBarItems.length + textToolBarItems.length, imageTextToolBarItems.length);
- return allItems;
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {imageToolBar, textToolBar, imageTextToolBar};
- }
-
- /**
- * Gets the short text for the tab folder item.
- */
- String getShortTabText() {
- return "TB";
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "ToolBar";
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- super.setExampleWidgetState ();
- horizontalButton.setSelection ((imageToolBar.getStyle () & SWT.HORIZONTAL) != 0);
- verticalButton.setSelection ((imageToolBar.getStyle () & SWT.VERTICAL) != 0);
- flatButton.setSelection ((imageToolBar.getStyle () & SWT.FLAT) != 0);
- wrapButton.setSelection ((imageToolBar.getStyle () & SWT.WRAP) != 0);
- shadowOutButton.setSelection ((imageToolBar.getStyle () & SWT.SHADOW_OUT) != 0);
- borderButton.setSelection ((imageToolBar.getStyle () & SWT.BORDER) != 0);
- rightButton.setSelection ((imageToolBar.getStyle () & SWT.RIGHT) != 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;
-
- public void widgetSelected(SelectionEvent event) {
- // Create the menu if it has not already been created
- if (menu == null) {
- // Lazy create the menu.
- ToolBar toolbar = ((ToolItem) event.widget).getParent();
- int style = toolbar.getStyle() & (SWT.RIGHT_TO_LEFT | SWT.LEFT_TO_RIGHT);
- menu = new Menu(shell, style | SWT.POP_UP);
- 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);
- } else {
- 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.
- */
- // 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();
-
- Point point = toolBar.toDisplay(new Point(event.x, event.y));
- menu.setLocation(point.x, point.y);
- menu.setVisible(true);
- }
- }
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ToolTipTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ToolTipTab.java
deleted file mode 100644
index 6a02a828e2..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ToolTipTab.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-
-class ToolTipTab extends Tab {
-
- /* Example widgets and groups that contain them */
- ToolTip toolTip1;
- Group toolTipGroup;
-
- /* Style widgets added to the "Style" group */
- Button balloonButton, iconErrorButton, iconInformationButton, iconWarningButton, noIconButton;
-
- /* Other widgets added to the "Other" group */
- Button autoHideButton, showInTrayButton;
-
- Tray tray;
- TrayItem trayItem;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- ToolTipTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the tooltip visibility check box */
- toolTipGroup = new Group (exampleGroup, SWT.NONE);
- toolTipGroup.setLayout (new GridLayout ());
- toolTipGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- toolTipGroup.setText ("ToolTip");
- visibleButton = new Button(toolTipGroup, SWT.CHECK);
- visibleButton.setText(ControlExample.getResourceString("Visible"));
- visibleButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setExampleWidgetVisibility ();
- }
- });
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
-
- /* Compute the widget style */
- int style = getDefaultStyle();
- if (balloonButton.getSelection ()) style |= SWT.BALLOON;
- if (iconErrorButton.getSelection ()) style |= SWT.ICON_ERROR;
- if (iconInformationButton.getSelection ()) style |= SWT.ICON_INFORMATION;
- if (iconWarningButton.getSelection ()) style |= SWT.ICON_WARNING;
-
- /* Create the example widgets */
- toolTip1 = new ToolTip (shell, style);
- toolTip1.setText(ControlExample.getResourceString("ToolTip_Title"));
- toolTip1.setMessage(ControlExample.getResourceString("Example_string"));
- }
-
- /**
- * Creates the tab folder page.
- *
- * @param tabFolder org.eclipse.swt.widgets.TabFolder
- * @return the new page for the tab folder
- */
- Composite createTabFolderPage (TabFolder tabFolder) {
- super.createTabFolderPage (tabFolder);
-
- /*
- * Add a resize listener to the tabFolderPage so that
- * if the user types into the example widget to change
- * its preferred size, and then resizes the shell, we
- * recalculate the preferred size correctly.
- */
- tabFolderPage.addControlListener(new ControlAdapter() {
- public void controlResized(ControlEvent e) {
- setExampleWidgetSize ();
- }
- });
-
- return tabFolderPage;
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup () {
- super.createStyleGroup ();
-
- /* Create the extra widgets */
- balloonButton = new Button (styleGroup, SWT.CHECK);
- balloonButton.setText ("SWT.BALLOON");
- iconErrorButton = new Button (styleGroup, SWT.RADIO);
- iconErrorButton.setText("SWT.ICON_ERROR");
- iconInformationButton = new Button (styleGroup, SWT.RADIO);
- iconInformationButton.setText("SWT.ICON_INFORMATION");
- iconWarningButton = new Button (styleGroup, SWT.RADIO);
- iconWarningButton.setText("SWT.ICON_WARNING");
- noIconButton = new Button (styleGroup, SWT.RADIO);
- noIconButton.setText(ControlExample.getResourceString("No_Icon"));
- }
-
- void createColorAndFontGroup () {
- // ToolTip does not need a color and font group.
- }
-
- void createOtherGroup () {
- /* Create the group */
- otherGroup = new Group (controlGroup, SWT.NONE);
- otherGroup.setLayout (new GridLayout ());
- otherGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, false, false));
- otherGroup.setText (ControlExample.getResourceString("Other"));
-
- /* Create the controls */
- autoHideButton = new Button(otherGroup, SWT.CHECK);
- autoHideButton.setText(ControlExample.getResourceString("AutoHide"));
- showInTrayButton = new Button(otherGroup, SWT.CHECK);
- showInTrayButton.setText(ControlExample.getResourceString("Show_In_Tray"));
- tray = display.getSystemTray();
- showInTrayButton.setEnabled(tray != null);
-
- /* Add the listeners */
- autoHideButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setExampleWidgetAutoHide ();
- }
- });
- showInTrayButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- showExampleWidgetInTray ();
- }
- });
- shell.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent event) {
- disposeTrayItem();
- }
- });
-
- /* Set the default state */
- autoHideButton.setSelection(true);
- }
-
- void createSizeGroup () {
- // ToolTip does not need a size group.
- }
-
- /**
- * Disposes the "Example" widgets.
- */
- void disposeExampleWidgets () {
- disposeTrayItem();
- super.disposeExampleWidgets();
- }
-
- /**
- * Gets the "Example" widget children.
- */
- // Tab uses this for many things - widgets would only get set/get, listeners, and dispose.
- Widget[] getExampleWidgets () {
- return new Widget [] {toolTip1};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"Message", "Text"};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "ToolTip";
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- showExampleWidgetInTray ();
- setExampleWidgetAutoHide ();
- super.setExampleWidgetState ();
- balloonButton.setSelection ((toolTip1.getStyle () & SWT.BALLOON) != 0);
- iconErrorButton.setSelection ((toolTip1.getStyle () & SWT.ICON_ERROR) != 0);
- iconInformationButton.setSelection ((toolTip1.getStyle () & SWT.ICON_INFORMATION) != 0);
- iconWarningButton.setSelection ((toolTip1.getStyle () & SWT.ICON_WARNING) != 0);
- noIconButton.setSelection ((toolTip1.getStyle () & (SWT.ICON_ERROR | SWT.ICON_INFORMATION | SWT.ICON_WARNING)) == 0);
- autoHideButton.setSelection(toolTip1.getAutoHide());
- }
-
- /**
- * Sets the visibility of the "Example" widgets.
- */
- void setExampleWidgetVisibility () {
- toolTip1.setVisible (visibleButton.getSelection ());
- }
-
- /**
- * Sets the autoHide state of the "Example" widgets.
- */
- void setExampleWidgetAutoHide () {
- toolTip1.setAutoHide(autoHideButton.getSelection ());
- }
-
- void showExampleWidgetInTray () {
- if (showInTrayButton.getSelection ()) {
- createTrayItem();
- trayItem.setToolTip(toolTip1);
- } else {
- disposeTrayItem();
- }
- }
-
- void createTrayItem() {
- if (trayItem == null) {
- trayItem = new TrayItem(tray, SWT.NONE);
- trayItem.setImage(instance.images[ControlExample.ciTarget]);
- }
- }
-
- void disposeTrayItem() {
- if (trayItem != null) {
- trayItem.setToolTip(null);
- trayItem.dispose();
- trayItem = null;
- }
- }
-}
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 8e473c8f6a..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TreeTab.java
+++ /dev/null
@@ -1,782 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.controlexample;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.events.*;
-
-class TreeTab extends ScrollableTab {
- /* Example widgets and groups that contain them */
- Tree tree1, tree2;
- TreeItem textNode1, imageNode1;
- Group treeGroup, imageTreeGroup, itemGroup;
-
- /* Size widgets added to the "Size" group */
- Button packColumnsButton;
-
- /* Style widgets added to the "Style" group */
- Button noScrollButton, checkButton, fullSelectionButton;
-
- /* Other widgets added to the "Other" group */
- Button multipleColumns, moveableColumns, resizableColumns, headerVisibleButton, sortIndicatorButton, headerImagesButton, subImagesButton, linesVisibleButton;
-
- /* Controls and resources added to the "Colors and Fonts" group */
- static final int ITEM_FOREGROUND_COLOR = 3;
- static final int ITEM_BACKGROUND_COLOR = 4;
- static final int ITEM_FONT = 5;
- static final int CELL_FOREGROUND_COLOR = 6;
- static final int CELL_BACKGROUND_COLOR = 7;
- static final int CELL_FONT = 8;
- Color itemForegroundColor, itemBackgroundColor, cellForegroundColor, cellBackgroundColor;
- Font itemFont, cellFont;
-
- static String [] columnTitles = {ControlExample.getResourceString("TableTitle_0"),
- ControlExample.getResourceString("TableTitle_1"),
- ControlExample.getResourceString("TableTitle_2"),
- ControlExample.getResourceString("TableTitle_3")};
-
- static String[][] tableData = {
- { ControlExample.getResourceString("TableLine0_0"),
- ControlExample.getResourceString("TableLine0_1"),
- ControlExample.getResourceString("TableLine0_2"),
- ControlExample.getResourceString("TableLine0_3") },
- { ControlExample.getResourceString("TableLine1_0"),
- ControlExample.getResourceString("TableLine1_1"),
- ControlExample.getResourceString("TableLine1_2"),
- ControlExample.getResourceString("TableLine1_3") },
- { ControlExample.getResourceString("TableLine2_0"),
- ControlExample.getResourceString("TableLine2_1"),
- ControlExample.getResourceString("TableLine2_2"),
- ControlExample.getResourceString("TableLine2_3") } };
-
- Point menuMouseCoords;
-
- /**
- * Creates the Tab within a given instance of ControlExample.
- */
- TreeTab(ControlExample instance) {
- super(instance);
- }
-
- /**
- * Creates the "Colors and Fonts" group.
- */
- void createColorAndFontGroup () {
- super.createColorAndFontGroup();
-
- TableItem item = new TableItem(colorAndFontTable, SWT.None);
- item.setText(ControlExample.getResourceString ("Item_Foreground_Color"));
- item = new TableItem(colorAndFontTable, SWT.None);
- item.setText(ControlExample.getResourceString ("Item_Background_Color"));
- item = new TableItem(colorAndFontTable, SWT.None);
- item.setText(ControlExample.getResourceString ("Item_Font"));
- item = new TableItem(colorAndFontTable, SWT.None);
- item.setText(ControlExample.getResourceString ("Cell_Foreground_Color"));
- item = new TableItem(colorAndFontTable, SWT.None);
- item.setText(ControlExample.getResourceString ("Cell_Background_Color"));
- item = new TableItem(colorAndFontTable, SWT.None);
- item.setText(ControlExample.getResourceString ("Cell_Font"));
-
- shell.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent event) {
- if (itemBackgroundColor != null) itemBackgroundColor.dispose();
- if (itemForegroundColor != null) itemForegroundColor.dispose();
- if (itemFont != null) itemFont.dispose();
- if (cellBackgroundColor != null) cellBackgroundColor.dispose();
- if (cellForegroundColor != null) cellForegroundColor.dispose();
- if (cellFont != null) cellFont.dispose();
- itemBackgroundColor = null;
- itemForegroundColor = null;
- itemFont = null;
- cellBackgroundColor = null;
- cellForegroundColor = null;
- cellFont = null;
- }
- });
- }
-
- void changeFontOrColor(int index) {
- switch (index) {
- case ITEM_FOREGROUND_COLOR: {
- Color oldColor = itemForegroundColor;
- if (oldColor == null) oldColor = textNode1.getForeground ();
- colorDialog.setRGB(oldColor.getRGB());
- RGB rgb = colorDialog.open();
- if (rgb == null) return;
- oldColor = itemForegroundColor;
- itemForegroundColor = new Color (display, rgb);
- setItemForeground ();
- if (oldColor != null) oldColor.dispose ();
- }
- break;
- case ITEM_BACKGROUND_COLOR: {
- Color oldColor = itemBackgroundColor;
- if (oldColor == null) oldColor = textNode1.getBackground ();
- colorDialog.setRGB(oldColor.getRGB());
- RGB rgb = colorDialog.open();
- if (rgb == null) return;
- oldColor = itemBackgroundColor;
- itemBackgroundColor = new Color (display, rgb);
- setItemBackground ();
- if (oldColor != null) oldColor.dispose ();
- }
- break;
- case ITEM_FONT: {
- Font oldFont = itemFont;
- if (oldFont == null) oldFont = textNode1.getFont ();
- fontDialog.setFontList(oldFont.getFontData());
- FontData fontData = fontDialog.open ();
- if (fontData == null) return;
- oldFont = itemFont;
- itemFont = new Font (display, fontData);
- setItemFont ();
- setExampleWidgetSize ();
- if (oldFont != null) oldFont.dispose ();
- }
- break;
- case CELL_FOREGROUND_COLOR: {
- Color oldColor = cellForegroundColor;
- if (oldColor == null) oldColor = textNode1.getForeground (1);
- colorDialog.setRGB(oldColor.getRGB());
- RGB rgb = colorDialog.open();
- if (rgb == null) return;
- oldColor = cellForegroundColor;
- cellForegroundColor = new Color (display, rgb);
- setCellForeground ();
- if (oldColor != null) oldColor.dispose ();
- }
- break;
- case CELL_BACKGROUND_COLOR: {
- Color oldColor = cellBackgroundColor;
- if (oldColor == null) oldColor = textNode1.getBackground (1);
- colorDialog.setRGB(oldColor.getRGB());
- RGB rgb = colorDialog.open();
- if (rgb == null) return;
- oldColor = cellBackgroundColor;
- cellBackgroundColor = new Color (display, rgb);
- setCellBackground ();
- if (oldColor != null) oldColor.dispose ();
- }
- break;
- case CELL_FONT: {
- Font oldFont = cellFont;
- if (oldFont == null) oldFont = textNode1.getFont (1);
- fontDialog.setFontList(oldFont.getFontData());
- FontData fontData = fontDialog.open ();
- if (fontData == null) return;
- oldFont = cellFont;
- cellFont = new Font (display, fontData);
- setCellFont ();
- setExampleWidgetSize ();
- if (oldFont != null) oldFont.dispose ();
- }
- break;
- default:
- super.changeFontOrColor(index);
- }
- }
-
- /**
- * Creates the "Other" group.
- */
- void createOtherGroup () {
- super.createOtherGroup ();
-
- /* Create display controls specific to this example */
- linesVisibleButton = new Button (otherGroup, SWT.CHECK);
- linesVisibleButton.setText (ControlExample.getResourceString("Lines_Visible"));
- multipleColumns = new Button (otherGroup, SWT.CHECK);
- multipleColumns.setText (ControlExample.getResourceString("Multiple_Columns"));
- headerVisibleButton = new Button (otherGroup, SWT.CHECK);
- headerVisibleButton.setText (ControlExample.getResourceString("Header_Visible"));
- sortIndicatorButton = new Button (otherGroup, SWT.CHECK);
- sortIndicatorButton.setText (ControlExample.getResourceString("Sort_Indicator"));
- moveableColumns = new Button (otherGroup, SWT.CHECK);
- moveableColumns.setText (ControlExample.getResourceString("Moveable_Columns"));
- resizableColumns = new Button (otherGroup, SWT.CHECK);
- resizableColumns.setText (ControlExample.getResourceString("Resizable_Columns"));
- headerImagesButton = new Button (otherGroup, SWT.CHECK);
- headerImagesButton.setText (ControlExample.getResourceString("Header_Images"));
- subImagesButton = new Button (otherGroup, SWT.CHECK);
- subImagesButton.setText (ControlExample.getResourceString("Sub_Images"));
-
- /* Add the listeners */
- linesVisibleButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setWidgetLinesVisible ();
- }
- });
- multipleColumns.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- recreateExampleWidgets ();
- }
- });
- headerVisibleButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setWidgetHeaderVisible ();
- }
- });
- sortIndicatorButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setWidgetSortIndicator ();
- }
- });
- moveableColumns.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setColumnsMoveable ();
- }
- });
- resizableColumns.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- setColumnsResizable ();
- }
- });
- headerImagesButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- recreateExampleWidgets ();
- }
- });
- subImagesButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- recreateExampleWidgets ();
- }
- });
- }
-
- /**
- * Creates the "Example" group.
- */
- void createExampleGroup () {
- super.createExampleGroup ();
-
- /* Create a group for the text tree */
- treeGroup = new Group (exampleGroup, SWT.NONE);
- treeGroup.setLayout (new GridLayout ());
- treeGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- treeGroup.setText ("Tree");
-
- /* Create a group for the image tree */
- imageTreeGroup = new Group (exampleGroup, SWT.NONE);
- imageTreeGroup.setLayout (new GridLayout ());
- imageTreeGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, true, true));
- imageTreeGroup.setText (ControlExample.getResourceString("Tree_With_Images"));
- }
-
- /**
- * Creates the "Example" widgets.
- */
- void createExampleWidgets () {
- /* Compute the widget style */
- int style = getDefaultStyle();
- 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 (noScrollButton.getSelection()) style |= SWT.NO_SCROLL;
- if (checkButton.getSelection()) style |= SWT.CHECK;
- if (fullSelectionButton.getSelection ()) style |= SWT.FULL_SELECTION;
- if (borderButton.getSelection()) style |= SWT.BORDER;
-
- /* Create the text tree */
- tree1 = new Tree (treeGroup, style);
- boolean multiColumn = multipleColumns.getSelection();
- if (multiColumn) {
- for (int i = 0; i < columnTitles.length; i++) {
- TreeColumn treeColumn = new TreeColumn(tree1, SWT.NONE);
- treeColumn.setText(columnTitles[i]);
- treeColumn.setToolTipText(ControlExample.getResourceString("Tooltip", new String [] {columnTitles[i]}));
- }
- tree1.setSortColumn(tree1.getColumn(0));
- }
- for (int i = 0; i < 4; i++) {
- TreeItem item = new TreeItem (tree1, SWT.NONE);
- setItemText(item, i, ControlExample.getResourceString("Node_" + (i + 1)));
- if (i < 3) {
- TreeItem subitem = new TreeItem (item, SWT.NONE);
- setItemText(subitem, i, ControlExample.getResourceString("Node_" + (i + 1) + "_1"));
- }
- }
- TreeItem treeRoots[] = tree1.getItems ();
- TreeItem item = new TreeItem (treeRoots[1], SWT.NONE);
- setItemText(item, 1, ControlExample.getResourceString("Node_2_2"));
- item = new TreeItem (item, SWT.NONE);
- setItemText(item, 1, ControlExample.getResourceString("Node_2_2_1"));
- textNode1 = treeRoots[0];
- packColumns(tree1);
- try {
- TreeColumn column = tree1.getColumn(0);
- resizableColumns.setSelection (column.getResizable());
- } catch (IllegalArgumentException ex) {}
-
- /* Create the image tree */
- tree2 = new Tree (imageTreeGroup, style);
- Image image = instance.images[ControlExample.ciClosedFolder];
- if (multiColumn) {
- for (int i = 0; i < columnTitles.length; i++) {
- TreeColumn treeColumn = new TreeColumn(tree2, SWT.NONE);
- treeColumn.setText(columnTitles[i]);
- treeColumn.setToolTipText(ControlExample.getResourceString("Tooltip", new String [] {columnTitles[i]}));
- if (headerImagesButton.getSelection()) treeColumn.setImage(instance.images [i % 3]);
- }
- }
- for (int i = 0; i < 4; i++) {
- item = new TreeItem (tree2, SWT.NONE);
- setItemText(item, i, ControlExample.getResourceString("Node_" + (i + 1)));
- if (multiColumn && subImagesButton.getSelection()) {
- for (int j = 0; j < columnTitles.length; j++) {
- item.setImage(j, image);
- }
- } else {
- item.setImage(image);
- }
- if (i < 3) {
- TreeItem subitem = new TreeItem (item, SWT.NONE);
- setItemText(subitem, i, ControlExample.getResourceString("Node_" + (i + 1) + "_1"));
- if (multiColumn && subImagesButton.getSelection()) {
- for (int j = 0; j < columnTitles.length; j++) {
- subitem.setImage(j, image);
- }
- } else {
- subitem.setImage(image);
- }
- }
- }
- treeRoots = tree2.getItems ();
- item = new TreeItem (treeRoots[1], SWT.NONE);
- setItemText(item, 1, ControlExample.getResourceString("Node_2_2"));
- if (multiColumn && subImagesButton.getSelection()) {
- for (int j = 0; j < columnTitles.length; j++) {
- item.setImage(j, image);
- }
- } else {
- item.setImage(image);
- }
- item = new TreeItem (item, SWT.NONE);
- setItemText(item, 1, ControlExample.getResourceString("Node_2_2_1"));
- if (multiColumn && subImagesButton.getSelection()) {
- for (int j = 0; j < columnTitles.length; j++) {
- item.setImage(j, image);
- }
- } else {
- item.setImage(image);
- }
- imageNode1 = treeRoots[0];
- packColumns(tree2);
- }
-
- void setItemText(TreeItem item, int i, String node) {
- int index = i % 3;
- if (multipleColumns.getSelection()) {
- tableData [index][0] = node;
- item.setText (tableData [index]);
- } else {
- item.setText (node);
- }
- }
-
- /**
- * Creates the "Size" group. The "Size" group contains
- * controls that allow the user to change the size of
- * the example widgets.
- */
- void createSizeGroup () {
- super.createSizeGroup();
-
- packColumnsButton = new Button (sizeGroup, SWT.PUSH);
- packColumnsButton.setText (ControlExample.getResourceString("Pack_Columns"));
- packColumnsButton.addSelectionListener(new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- packColumns (tree1);
- packColumns (tree2);
- setExampleWidgetSize ();
- }
- });
- }
-
- /**
- * Creates the "Style" group.
- */
- void createStyleGroup() {
- super.createStyleGroup();
-
- /* Create the extra widgets */
- noScrollButton = new Button (styleGroup, SWT.CHECK);
- noScrollButton.setText ("SWT.NO_SCROLL");
- 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's items, if any.
- *
- * @return an array containing the example widget children's items
- */
- Item [] getExampleWidgetItems () {
- /* Note: We do not bother collecting the tree items
- * because tree items don't have any events. If events
- * are ever added to TreeItem, then this needs to change.
- */
- Item [] columns1 = tree1.getColumns();
- Item [] columns2 = tree2.getColumns();
- Item [] allItems = new Item [columns1.length + columns2.length];
- System.arraycopy(columns1, 0, allItems, 0, columns1.length);
- System.arraycopy(columns2, 0, allItems, columns1.length, columns2.length);
- return allItems;
- }
-
- /**
- * Gets the "Example" widget children.
- */
- Widget [] getExampleWidgets () {
- return new Widget [] {tree1, tree2};
- }
-
- /**
- * Returns a list of set/get API method names (without the set/get prefix)
- * that can be used to set/get values in the example control(s).
- */
- String[] getMethodNames() {
- return new String[] {"ColumnOrder", "Selection", "ToolTipText", "TopItem"};
- }
-
- Object[] parameterForType(String typeName, String value, Widget widget) {
- if (typeName.equals("org.eclipse.swt.widgets.TreeItem")) {
- TreeItem item = findItem(value, ((Tree) widget).getItems());
- if (item != null) return new Object[] {item};
- }
- if (typeName.equals("[Lorg.eclipse.swt.widgets.TreeItem;")) {
- String[] values = split(value, ',');
- TreeItem[] items = new TreeItem[values.length];
- for (int i = 0; i < values.length; i++) {
- TreeItem item = findItem(values[i], ((Tree) widget).getItems());
- if (item == null) break;
- items[i] = item;
- }
- return new Object[] {items};
- }
- return super.parameterForType(typeName, value, widget);
- }
-
- TreeItem findItem(String value, TreeItem[] items) {
- for (int i = 0; i < items.length; i++) {
- TreeItem item = items[i];
- if (item.getText().equals(value)) return item;
- item = findItem(value, item.getItems());
- if (item != null) return item;
- }
- return null;
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "Tree";
- }
-
- void packColumns (Tree tree) {
- if (multipleColumns.getSelection()) {
- int columnCount = tree.getColumnCount();
- for (int i = 0; i < columnCount; i++) {
- TreeColumn treeColumn = tree.getColumn(i);
- treeColumn.pack();
- }
- }
- }
-
- /**
- * Sets the moveable columns state of the "Example" widgets.
- */
- void setColumnsMoveable () {
- boolean selection = moveableColumns.getSelection();
- TreeColumn[] columns1 = tree1.getColumns();
- for (int i = 0; i < columns1.length; i++) {
- columns1[i].setMoveable(selection);
- }
- TreeColumn[] columns2 = tree2.getColumns();
- for (int i = 0; i < columns2.length; i++) {
- columns2[i].setMoveable(selection);
- }
- }
-
- /**
- * Sets the resizable columns state of the "Example" widgets.
- */
- void setColumnsResizable () {
- boolean selection = resizableColumns.getSelection();
- TreeColumn[] columns1 = tree1.getColumns();
- for (int i = 0; i < columns1.length; i++) {
- columns1[i].setResizable(selection);
- }
- TreeColumn[] columns2 = tree2.getColumns();
- for (int i = 0; i < columns2.length; i++) {
- columns2[i].setResizable(selection);
- }
- }
-
- /**
- * Sets the foreground color, background color, and font
- * of the "Example" widgets to their default settings.
- * Also sets foreground and background color of the Node 1
- * TreeItems to default settings.
- */
- void resetColorsAndFonts () {
- super.resetColorsAndFonts ();
- Color oldColor = itemForegroundColor;
- itemForegroundColor = null;
- setItemForeground ();
- if (oldColor != null) oldColor.dispose();
- oldColor = itemBackgroundColor;
- itemBackgroundColor = null;
- setItemBackground ();
- if (oldColor != null) oldColor.dispose();
- Font oldFont = font;
- itemFont = null;
- setItemFont ();
- if (oldFont != null) oldFont.dispose();
- oldColor = cellForegroundColor;
- cellForegroundColor = null;
- setCellForeground ();
- if (oldColor != null) oldColor.dispose();
- oldColor = cellBackgroundColor;
- cellBackgroundColor = null;
- setCellBackground ();
- if (oldColor != null) oldColor.dispose();
- oldFont = font;
- cellFont = null;
- setCellFont ();
- if (oldFont != null) oldFont.dispose();
- }
-
- /**
- * Sets the state of the "Example" widgets.
- */
- void setExampleWidgetState () {
- setItemBackground ();
- setItemForeground ();
- setItemFont ();
- setCellBackground ();
- setCellForeground ();
- setCellFont ();
- if (!instance.startup) {
- setColumnsMoveable ();
- setColumnsResizable ();
- setWidgetHeaderVisible ();
- setWidgetSortIndicator ();
- setWidgetLinesVisible ();
- }
- super.setExampleWidgetState ();
- noScrollButton.setSelection ((tree1.getStyle () & SWT.NO_SCROLL) != 0);
- checkButton.setSelection ((tree1.getStyle () & SWT.CHECK) != 0);
- fullSelectionButton.setSelection ((tree1.getStyle () & SWT.FULL_SELECTION) != 0);
- try {
- TreeColumn column = tree1.getColumn(0);
- moveableColumns.setSelection (column.getMoveable());
- resizableColumns.setSelection (column.getResizable());
- } catch (IllegalArgumentException ex) {}
- headerVisibleButton.setSelection (tree1.getHeaderVisible());
- linesVisibleButton.setSelection (tree1.getLinesVisible());
- }
-
- /**
- * Sets the background color of the Node 1 TreeItems in column 1.
- */
- void setCellBackground () {
- if (!instance.startup) {
- textNode1.setBackground (1, cellBackgroundColor);
- imageNode1.setBackground (1, cellBackgroundColor);
- }
- /* Set the background color item's image to match the background color of the cell. */
- Color color = cellBackgroundColor;
- if (color == null) color = textNode1.getBackground (1);
- TableItem item = colorAndFontTable.getItem(CELL_BACKGROUND_COLOR);
- Image oldImage = item.getImage();
- if (oldImage != null) oldImage.dispose();
- item.setImage (colorImage(color));
- }
-
- /**
- * Sets the foreground color of the Node 1 TreeItems in column 1.
- */
- void setCellForeground () {
- if (!instance.startup) {
- textNode1.setForeground (1, cellForegroundColor);
- imageNode1.setForeground (1, cellForegroundColor);
- }
- /* Set the foreground color item's image to match the foreground color of the cell. */
- Color color = cellForegroundColor;
- if (color == null) color = textNode1.getForeground (1);
- TableItem item = colorAndFontTable.getItem(CELL_FOREGROUND_COLOR);
- Image oldImage = item.getImage();
- if (oldImage != null) oldImage.dispose();
- item.setImage (colorImage(color));
- }
-
- /**
- * Sets the font of the Node 1 TreeItems in column 1.
- */
- void setCellFont () {
- if (!instance.startup) {
- textNode1.setFont (1, cellFont);
- imageNode1.setFont (1, cellFont);
- }
- /* Set the font item's image to match the font of the item. */
- Font ft = cellFont;
- if (ft == null) ft = textNode1.getFont (1);
- TableItem item = colorAndFontTable.getItem(CELL_FONT);
- Image oldImage = item.getImage();
- if (oldImage != null) oldImage.dispose();
- item.setImage (fontImage(ft));
- item.setFont(ft);
- colorAndFontTable.layout ();
- }
-
- /**
- * Sets the background color of the Node 1 TreeItems.
- */
- void setItemBackground () {
- if (!instance.startup) {
- textNode1.setBackground (itemBackgroundColor);
- imageNode1.setBackground (itemBackgroundColor);
- }
- /* Set the background button's color to match the background color of the item. */
- Color color = itemBackgroundColor;
- if (color == null) color = textNode1.getBackground ();
- TableItem item = colorAndFontTable.getItem(ITEM_BACKGROUND_COLOR);
- Image oldImage = item.getImage();
- if (oldImage != null) oldImage.dispose();
- item.setImage (colorImage(color));
- }
-
- /**
- * Sets the foreground color of the Node 1 TreeItems.
- */
- void setItemForeground () {
- if (!instance.startup) {
- textNode1.setForeground (itemForegroundColor);
- imageNode1.setForeground (itemForegroundColor);
- }
- /* Set the foreground button's color to match the foreground color of the item. */
- Color color = itemForegroundColor;
- if (color == null) color = textNode1.getForeground ();
- TableItem item = colorAndFontTable.getItem(ITEM_FOREGROUND_COLOR);
- Image oldImage = item.getImage();
- if (oldImage != null) oldImage.dispose();
- item.setImage (colorImage(color));
- }
-
- /**
- * Sets the font of the Node 1 TreeItems.
- */
- void setItemFont () {
- if (!instance.startup) {
- textNode1.setFont (itemFont);
- imageNode1.setFont (itemFont);
- }
- /* Set the font item's image to match the font of the item. */
- Font ft = itemFont;
- if (ft == null) ft = textNode1.getFont ();
- TableItem item = colorAndFontTable.getItem(ITEM_FONT);
- Image oldImage = item.getImage();
- if (oldImage != null) oldImage.dispose();
- item.setImage (fontImage(ft));
- item.setFont(ft);
- colorAndFontTable.layout ();
- }
-
- /**
- * Sets the header visible state of the "Example" widgets.
- */
- void setWidgetHeaderVisible () {
- tree1.setHeaderVisible (headerVisibleButton.getSelection ());
- tree2.setHeaderVisible (headerVisibleButton.getSelection ());
- }
-
- /**
- * Sets the sort indicator state of the "Example" widgets.
- */
- void setWidgetSortIndicator () {
- if (sortIndicatorButton.getSelection ()) {
- initializeSortState (tree1);
- initializeSortState (tree2);
- } else {
- resetSortState (tree1);
- resetSortState (tree2);
- }
- }
-
- /**
- * Sets the initial sort indicator state and adds a listener
- * to cycle through sort states and columns.
- */
- void initializeSortState (final Tree tree) {
- /* Reset to known state: 'down' on column 0. */
- tree.setSortDirection (SWT.DOWN);
- TreeColumn [] columns = tree.getColumns();
- for (int i = 0; i < columns.length; i++) {
- TreeColumn column = columns[i];
- if (i == 0) tree.setSortColumn(column);
- SelectionListener listener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- int sortDirection = SWT.DOWN;
- if (e.widget == tree.getSortColumn()) {
- /* If the sort column hasn't changed, cycle down -> up -> none. */
- switch (tree.getSortDirection ()) {
- case SWT.DOWN: sortDirection = SWT.UP; break;
- case SWT.UP: sortDirection = SWT.NONE; break;
- }
- } else {
- tree.setSortColumn((TreeColumn)e.widget);
- }
- tree.setSortDirection (sortDirection);
- }
- };
- column.addSelectionListener(listener);
- column.setData("SortListener", listener); //$NON-NLS-1$
- }
- }
-
- void resetSortState (final Tree tree) {
- tree.setSortDirection (SWT.NONE);
- TreeColumn [] columns = tree.getColumns();
- for (int i = 0; i < columns.length; i++) {
- SelectionListener listener = (SelectionListener)columns[i].getData("SortListener"); //$NON-NLS-1$
- if (listener != null) columns[i].removeSelectionListener(listener);
- }
- }
-
- /**
- * Sets the lines visible state of the "Example" widgets.
- */
- void setWidgetLinesVisible () {
- tree1.setLinesVisible (linesVisibleButton.getSelection ());
- tree2.setLinesVisible (linesVisibleButton.getSelection ());
- }
-
- protected void specialPopupMenuItems(Menu menu, Event event) {
- MenuItem item = new MenuItem(menu, SWT.PUSH);
- item.setText("getItem(Point) on mouse coordinates");
- final Tree t = (Tree) event.widget;
- menuMouseCoords = t.toControl(new Point(event.x, event.y));
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- eventConsole.append ("getItem(Point(" + menuMouseCoords + ")) returned: " + t.getItem(menuMouseCoords));
- eventConsole.append ("\n");
- };
- });
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/backgroundImage.png b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/backgroundImage.png
deleted file mode 100644
index 0632ad89b0..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/backgroundImage.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 15136cbf7c..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold.bmp
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 7863429f50..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/bold_mask.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/browser-content.html b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/browser-content.html
deleted file mode 100644
index 248b93ee1c..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/browser-content.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<html>
-<head>
-<title>SWT Browser</title>
-</head>
-
-<h3>About SWT Browser</h3>
-<p>You are looking at HTML content in a <b>Browser</b> widget.
-<ul>
-<li>For a definition of the Browser widget, see:
-<a href="http://www.eclipse.org/swt/faq.php#whatisbrowser">http://www.eclipse.org/swt/faq.php#whatisbrowser</a></li>
-<li>For a list of the platforms that Browser supports, see:
-<a href="http://www.eclipse.org/swt/faq.php#browserplatforms">http://www.eclipse.org/swt/faq.php#browserplatforms</a></li>
-<li>For more information on the SWT.MOZILLA Browser style, see:
-<a href="http://www.eclipse.org/swt/faq.php#howusemozilla">http://www.eclipse.org/swt/faq.php#howusemozilla</a></li>
-<li>For more examples that use a Browser widget, see BrowserExample, BrowserDemo, and WebBrowser:
-<a href="http://www.eclipse.org/swt/examples.php">http://www.eclipse.org/swt/examples.php</a></li>
-</ul></p>
-
-<h3>About SWT</h3>
-<p>For more information on SWT, including the Widget Gallery, Snippets, Examples, FAQ, Tools, Documentation
-and more, check out <a href="http://www.eclipse.org/swt/">http://www.eclipse.org/swt</a>.</p>
-
-<h3>Eclipse Downloads Page</h3>
-<p>To download the latest Integration Build of eclipse, go to:
-<a href="http://download.eclipse.org/eclipse/downloads/">http://download.eclipse.org/eclipse/downloads</a>.</p>
-
-<h3>Bug Reports and Feature Requests</h3>
-<p>To report an SWT bug or request an SWT feature, go to:
-<a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Platform">https://bugs.eclipse.org/bugs</a>
-and select <b>Component: SWT</b>.</p>
-
-</body>
-</html>
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
deleted file mode 100644
index 6660d0b11a..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/closedFolder.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/italic.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/italic.bmp
deleted file mode 100644
index 82071f6bdd..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/italic.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/italic_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/italic_mask.bmp
deleted file mode 100644
index caf2354d48..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/italic_mask.bmp
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index fc9943f111..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/openFolder.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/parentBackgroundImage.png b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/parentBackgroundImage.png
deleted file mode 100644
index 08f55c79e9..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/parentBackgroundImage.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 9a563ff34a..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red.bmp
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 1359c081de..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/red_mask.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/strikeout.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/strikeout.bmp
deleted file mode 100644
index ac21b3c4bc..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/strikeout.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/strikeout_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/strikeout_mask.bmp
deleted file mode 100644
index 98b48fb8aa..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/strikeout_mask.bmp
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 9807ae648d..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/target.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/underline.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/underline.bmp
deleted file mode 100644
index 52e28e2152..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/underline.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/underline_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/underline_mask.bmp
deleted file mode 100644
index 2615d8b5eb..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/underline_mask.bmp
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 4da9c1de3f..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow.bmp
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 1359c081de..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/yellow_mask.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/DNDExample.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/DNDExample.java
deleted file mode 100644
index e701e9edc1..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/DNDExample.java
+++ /dev/null
@@ -1,1438 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.dnd;
-
-
-import java.net.*;
-
-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.widgets.*;
-
-public class DNDExample {
-
- private int dragOperation = 0;
- private Transfer[] dragTypes = new Transfer[0];
- private Control dragControl;
- private int dragControlType = 0;
- private DragSource dragSource;
- private String dragDataText;
- private String dragDataRTF;
- private String dragDataHTML;
- private String dragDataURL;
- private String[] dragDataFiles;
- private List fileList;
- private boolean dragEnabled = false;
-
- private int dropOperation = 0;
- private int dropFeedback = 0;
- private int dropDefaultOperation = 0;
- private Transfer[] dropTypes = new Transfer[0];
- private DropTarget dropTarget;
- private Control dropControl;
- private int dropControlType = 0;
- private Composite defaultParent;
- private boolean dropEnabled = false;
-
- private Text dragConsole;
- private boolean dragEventDetail = false;
- private Text dropConsole;
- private boolean dropEventDetail = false;
-
- private Image itemImage;
-
- private static final int BUTTON_TOGGLE = 0;
- private static final int BUTTON_RADIO = 1;
- private static final int BUTTON_CHECK = 2;
- private static final int CANVAS = 3;
- private static final int LABEL = 4;
- private static final int LIST = 5;
- private static final int TABLE = 6;
- private static final int TREE = 7;
- private static final int TEXT = 8;
- private static final int STYLED_TEXT = 9;
- private static final int COMBO = 10;
-
-public static void main(String[] args) {
- Display display = new Display();
- DNDExample example = new DNDExample();
- example.open(display);
- display.dispose();
-}
-
-private void addDragTransfer(Transfer transfer){
- Transfer[] newTypes = new Transfer[dragTypes.length + 1];
- System.arraycopy(dragTypes, 0, newTypes, 0, dragTypes.length);
- newTypes[dragTypes.length] = transfer;
- dragTypes = newTypes;
- if (dragSource != null) {
- dragSource.setTransfer(dragTypes);
- }
-}
-
-private void addDropTransfer(Transfer transfer){
- Transfer[] newTypes = new Transfer[dropTypes.length + 1];
- System.arraycopy(dropTypes, 0, newTypes, 0, dropTypes.length);
- newTypes[dropTypes.length] = transfer;
- dropTypes = newTypes;
- if (dropTarget != null) {
- dropTarget.setTransfer(dropTypes);
- }
-}
-
-private void createDragOperations(Composite parent) {
- parent.setLayout(new RowLayout(SWT.VERTICAL));
- final Button moveButton = new Button(parent, SWT.CHECK);
- moveButton.setText("DND.DROP_MOVE");
- moveButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- dragOperation |= DND.DROP_MOVE;
- } else {
- dragOperation = dragOperation &~DND.DROP_MOVE;
- if (dragOperation == 0) {
- dragOperation = DND.DROP_MOVE;
- moveButton.setSelection(true);
- }
- }
- if (dragEnabled) {
- createDragSource();
- }
- }
- });
-
-
- Button copyButton = new Button(parent, SWT.CHECK);
- copyButton.setText("DND.DROP_COPY");
- copyButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- dragOperation |= DND.DROP_COPY;
- } else {
- dragOperation = dragOperation &~DND.DROP_COPY;
- if (dragOperation == 0) {
- dragOperation = DND.DROP_MOVE;
- moveButton.setSelection(true);
- }
- }
- if (dragEnabled) {
- createDragSource();
- }
- }
- });
-
- Button linkButton = new Button(parent, SWT.CHECK);
- linkButton.setText("DND.DROP_LINK");
- linkButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- dragOperation |= DND.DROP_LINK;
- } else {
- dragOperation = dragOperation &~DND.DROP_LINK;
- if (dragOperation == 0) {
- dragOperation = DND.DROP_MOVE;
- moveButton.setSelection(true);
- }
- }
- if (dragEnabled) {
- createDragSource();
- }
- }
- });
-
- //initialize state
- moveButton.setSelection(true);
- copyButton.setSelection(true);
- linkButton.setSelection(true);
- dragOperation |= DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK;
-}
-
-private void createDragSource() {
- if (dragSource != null) dragSource.dispose();
- dragSource = new DragSource(dragControl, dragOperation);
- dragSource.setTransfer(dragTypes);
- dragSource.addDragListener(new DragSourceListener() {
- public void dragFinished(org.eclipse.swt.dnd.DragSourceEvent event) {
- dragConsole.append(">>dragFinished\n");
- printEvent(event);
- dragDataText = dragDataRTF = dragDataHTML = dragDataURL = null;
- dragDataFiles = null;
- if (event.detail == DND.DROP_MOVE) {
- switch(dragControlType) {
- case BUTTON_CHECK:
- case BUTTON_TOGGLE:
- case BUTTON_RADIO: {
- Button b = (Button)dragControl;
- b.setText("");
- break;
- }
- case STYLED_TEXT: {
- StyledText text = (StyledText)dragControl;
- text.insert("");
- break;
- }
- case TABLE: {
- Table table = (Table)dragControl;
- TableItem[] items = table.getSelection();
- for (int i = 0; i < items.length; i++) {
- items[i].dispose();
- }
- break;
- }
- case TEXT: {
- Text text = (Text)dragControl;
- text.insert("");
- break;
- }
- case TREE: {
- Tree tree = (Tree)dragControl;
- TreeItem[] items = tree.getSelection();
- for (int i = 0; i < items.length; i++) {
- items[i].dispose();
- }
- break;
- }
- case CANVAS: {
- dragControl.setData("STRINGS", null);
- dragControl.redraw();
- break;
- }
- case LABEL: {
- Label label = (Label)dragControl;
- label.setText("");
- break;
- }
- case LIST: {
- List list = (List)dragControl;
- int[] indices = list.getSelectionIndices();
- list.remove(indices);
- break;
- }
- case COMBO:{
- Combo combo = (Combo)dragControl;
- combo.setText("");
- break;
- }
- }
- }
- }
- public void dragSetData(org.eclipse.swt.dnd.DragSourceEvent event) {
- dragConsole.append(">>dragSetData\n");
- printEvent(event);
- if (TextTransfer.getInstance().isSupportedType(event.dataType)) {
- event.data = dragDataText;
- }
- if (RTFTransfer.getInstance().isSupportedType(event.dataType)) {
- event.data = dragDataRTF;
- }
- if (HTMLTransfer.getInstance().isSupportedType(event.dataType)) {
- event.data = dragDataHTML;
- }
- if (URLTransfer.getInstance().isSupportedType(event.dataType)) {
- event.data = dragDataURL;
- }
- if (FileTransfer.getInstance().isSupportedType(event.dataType)) {
- event.data = dragDataFiles;
- }
- }
- public void dragStart(org.eclipse.swt.dnd.DragSourceEvent event) {
- dragConsole.append(">>dragStart\n");
- printEvent(event);
- dragDataFiles = fileList.getItems();
- switch(dragControlType) {
- case BUTTON_CHECK:
- case BUTTON_TOGGLE:
- case BUTTON_RADIO: {
- Button b = (Button)dragControl;
- dragDataText = b.getSelection() ? "true" : "false";
- break;
- }
- case STYLED_TEXT: {
- StyledText text = (StyledText)dragControl;
- String s = text.getSelectionText();
- if (s.length() == 0) {
- event.doit = false;
- } else {
- dragDataText = s;
- }
- break;
- }
- case TABLE: {
- Table table = (Table)dragControl;
- TableItem[] items = table.getSelection();
- if (items.length == 0) {
- event.doit = false;
- } else {
- StringBuffer buffer = new StringBuffer();
- for (int i = 0; i < items.length; i++) {
- buffer.append(items[i].getText());
- if (items.length > 1 && i < items.length - 1) {
- buffer.append("\n");
- }
- }
- dragDataText = buffer.toString();
- }
- break;
- }
- case TEXT: {
- Text text = (Text)dragControl;
- String s = text.getSelectionText();
- if (s.length() == 0) {
- event.doit = false;
- } else {
- dragDataText = s;
- }
- break;
- }
- case TREE: {
- Tree tree = (Tree)dragControl;
- TreeItem[] items = tree.getSelection();
- if (items.length == 0) {
- event.doit = false;
- } else {
- StringBuffer buffer = new StringBuffer();
- for (int i = 0; i < items.length; i++) {
- buffer.append(items[i].getText());
- if (items.length > 1 && i < items.length - 1) {
- buffer.append("\n");
- }
- }
- dragDataText = buffer.toString();
- }
- break;
- }
- case CANVAS: {
- String[] strings = (String[])dragControl.getData("STRINGS");
- if (strings == null || strings.length == 0) {
- event.doit = false;
- } else {
- StringBuffer buffer = new StringBuffer();
- for (int i = 0; i < strings.length; i++) {
- buffer.append(strings[i]);
- if (strings.length > 1 && i < strings.length - 1) {
- buffer.append("\n");
- }
- }
- dragDataText = buffer.toString();
- }
- break;
- }
- case LABEL: {
- Label label = (Label)dragControl;
- String string = label.getText();
- if (string.length() == 0) {
- event.doit = false;
- } else {
- dragDataText = string;
- }
- break;
- }
- case LIST: {
- List list = (List)dragControl;
- String[] selection = list.getSelection();
- if (selection.length == 0) {
- event.doit = false;
- } else {
- StringBuffer buffer = new StringBuffer();
- for (int i = 0; i < selection.length; i++) {
- buffer.append(selection[i]);
- if (selection.length > 1 && i < selection.length - 1) {
- buffer.append("\n");
- }
- }
- dragDataText = buffer.toString();
- }
- break;
- }
- case COMBO: {
- Combo combo = (Combo) dragControl;
- String string = combo.getText();
- Point selection = combo.getSelection();
- if (selection.x == selection.y) {
- event.doit = false;
- } else {
- dragDataText = string.substring(selection.x, selection.y);
- }
- break;
- }
- default:
- throw new SWTError(SWT.ERROR_NOT_IMPLEMENTED);
- }
- if (dragDataText != null) {
- dragDataRTF = "{\\rtf1{\\colortbl;\\red255\\green0\\blue0;}\\cf1\\b "+dragDataText+"}";
- dragDataHTML = "<b>"+dragDataText+"</b>";
- dragDataURL = "http://" + dragDataText.replace(' ', '.');
- try {
- new URL(dragDataURL);
- } catch (MalformedURLException e) {
- dragDataURL = null;
- }
- }
-
- for (int i = 0; i < dragTypes.length; i++) {
- if (dragTypes[i] instanceof TextTransfer && dragDataText == null) {
- event.doit = false;
- }
- if (dragTypes[i] instanceof RTFTransfer && dragDataRTF == null) {
- event.doit = false;
- }
- if (dragTypes[i] instanceof HTMLTransfer && dragDataHTML == null) {
- event.doit = false;
- }
- if (dragTypes[i] instanceof URLTransfer && dragDataURL == null) {
- event.doit = false;
- }
- if (dragTypes[i] instanceof FileTransfer && (dragDataFiles == null || dragDataFiles.length == 0)) {
- event.doit = false;
- }
- }
- }
- });
-}
-
-private void createDragTypes(Composite parent) {
- parent.setLayout(new GridLayout());
- Button textButton = new Button(parent, SWT.CHECK);
- textButton.setText("Text Transfer");
- textButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- addDragTransfer(TextTransfer.getInstance());
- } else {
- removeDragTransfer(TextTransfer.getInstance());
- }
- }
- });
-
- Button b = new Button(parent, SWT.CHECK);
- b.setText("RTF Transfer");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- addDragTransfer(RTFTransfer.getInstance());
- } else {
- removeDragTransfer(RTFTransfer.getInstance());
- }
- }
- });
-
- b = new Button(parent, SWT.CHECK);
- b.setText("HTML Transfer");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- addDragTransfer(HTMLTransfer.getInstance());
- } else {
- removeDragTransfer(HTMLTransfer.getInstance());
- }
- }
- });
-
- b = new Button(parent, SWT.CHECK);
- b.setText("URL Transfer");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- addDragTransfer(URLTransfer.getInstance());
- } else {
- removeDragTransfer(URLTransfer.getInstance());
- }
- }
- });
-
- b = new Button(parent, SWT.CHECK);
- b.setText("File Transfer");
- b.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- addDragTransfer(FileTransfer.getInstance());
- } else {
- removeDragTransfer(FileTransfer.getInstance());
- }
- }
- });
- b = new Button(parent, SWT.PUSH);
- b.setText("Select File(s)");
- b.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- FileDialog dialog = new FileDialog(fileList.getShell(), SWT.OPEN | SWT.MULTI);
- String result = dialog.open();
- if (result != null && result.length() > 0){
- fileList.removeAll();
- String separator = System.getProperty("file.separator");
- String path = dialog.getFilterPath();
- String[] names = dialog.getFileNames();
- for (int i = 0; i < names.length; i++) {
- fileList.add(path+separator+names[i]);
- }
- }
- }
- });
- fileList = new List(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
- GridData data = new GridData();
- data.grabExcessHorizontalSpace = true;
- data.horizontalAlignment = GridData.FILL;
- data.verticalAlignment = GridData.BEGINNING;
- fileList.setLayoutData(data);
-
- // initialize state
- textButton.setSelection(true);
- addDragTransfer(TextTransfer.getInstance());
-}
-
-private void createDragWidget(Composite parent) {
- parent.setLayout(new FormLayout());
- Combo combo = new Combo(parent, SWT.READ_ONLY);
- combo.setItems(new String[] {"Toggle Button", "Radio Button", "Checkbox", "Canvas", "Label", "List", "Table", "Tree", "Text", "StyledText", "Combo"});
- combo.select(LABEL);
- dragControlType = combo.getSelectionIndex();
- dragControl = createWidget(dragControlType, parent, "Drag Source");
-
- combo.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Object data = dragControl.getLayoutData();
- Composite parent = dragControl.getParent();
- dragControl.dispose();
- Combo c = (Combo)e.widget;
- dragControlType = c.getSelectionIndex();
- dragControl = createWidget(dragControlType, parent, "Drag Source");
- dragControl.setLayoutData(data);
- if (dragEnabled) createDragSource();
- parent.layout();
- }
- });
-
- Button b = new Button(parent, SWT.CHECK);
- b.setText("DragSource");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- dragEnabled = b.getSelection();
- if (dragEnabled) {
- createDragSource();
- } else {
- if (dragSource != null){
- dragSource.dispose();
- }
- dragSource = null;
- }
- }
- });
- b.setSelection(true);
- dragEnabled = true;
-
- FormData data = new FormData();
- data.top = new FormAttachment(0, 10);
- data.bottom = new FormAttachment(combo, -10);
- data.left = new FormAttachment(0, 10);
- data.right = new FormAttachment(100, -10);
- dragControl.setLayoutData(data);
-
- data = new FormData();
- data.bottom = new FormAttachment(100, -10);
- data.left = new FormAttachment(0, 10);
- combo.setLayoutData(data);
-
- data = new FormData();
- data.bottom = new FormAttachment(100, -10);
- data.left = new FormAttachment(combo, 10);
- b.setLayoutData(data);
-}
-
-private void createDropOperations(Composite parent) {
- parent.setLayout(new RowLayout(SWT.VERTICAL));
- final Button moveButton = new Button(parent, SWT.CHECK);
- moveButton.setText("DND.DROP_MOVE");
- moveButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- dropOperation |= DND.DROP_MOVE;
- } else {
- dropOperation = dropOperation & ~DND.DROP_MOVE;
- if (dropOperation == 0 || (dropDefaultOperation & DND.DROP_MOVE) != 0) {
- dropOperation |= DND.DROP_MOVE;
- moveButton.setSelection(true);
- }
- }
- if (dropEnabled) {
- createDropTarget();
- }
- }
- });
-
-
- final Button copyButton = new Button(parent, SWT.CHECK);
- copyButton.setText("DND.DROP_COPY");
- copyButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- dropOperation |= DND.DROP_COPY;
- } else {
- dropOperation = dropOperation & ~DND.DROP_COPY;
- if (dropOperation == 0 || (dropDefaultOperation & DND.DROP_COPY) != 0) {
- dropOperation = DND.DROP_COPY;
- copyButton.setSelection(true);
- }
- }
- if (dropEnabled) {
- createDropTarget();
- }
- }
- });
-
- final Button linkButton = new Button(parent, SWT.CHECK);
- linkButton.setText("DND.DROP_LINK");
- linkButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- dropOperation |= DND.DROP_LINK;
- } else {
- dropOperation = dropOperation & ~DND.DROP_LINK;
- if (dropOperation == 0 || (dropDefaultOperation & DND.DROP_LINK) != 0) {
- dropOperation = DND.DROP_LINK;
- linkButton.setSelection(true);
- }
- }
- if (dropEnabled) {
- createDropTarget();
- }
- }
- });
-
- Button b = new Button(parent, SWT.CHECK);
- b.setText("DND.DROP_DEFAULT");
- defaultParent = new Composite(parent, SWT.NONE);
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- dropOperation |= DND.DROP_DEFAULT;
- defaultParent.setVisible(true);
- } else {
- dropOperation = dropOperation & ~DND.DROP_DEFAULT;
- defaultParent.setVisible(false);
- }
- if (dropEnabled) {
- createDropTarget();
- }
- }
- });
-
- defaultParent.setVisible(false);
- GridLayout layout = new GridLayout();
- layout.marginWidth = 20;
- defaultParent.setLayout(layout);
- Label label = new Label(defaultParent, SWT.NONE);
- label.setText("Value for default operation is:");
- b = new Button(defaultParent, SWT.RADIO);
- b.setText("DND.DROP_MOVE");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- dropDefaultOperation = DND.DROP_MOVE;
- dropOperation |= DND.DROP_MOVE;
- moveButton.setSelection(true);
- if (dropEnabled) {
- createDropTarget();
- }
- }
- }
- });
-
- b = new Button(defaultParent, SWT.RADIO);
- b.setText("DND.DROP_COPY");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- dropDefaultOperation = DND.DROP_COPY;
- dropOperation |= DND.DROP_COPY;
- copyButton.setSelection(true);
- if (dropEnabled) {
- createDropTarget();
- }
- }
- }
- });
-
- b = new Button(defaultParent, SWT.RADIO);
- b.setText("DND.DROP_LINK");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- dropDefaultOperation = DND.DROP_LINK;
- dropOperation |= DND.DROP_LINK;
- linkButton.setSelection(true);
- if (dropEnabled) {
- createDropTarget();
- }
- }
- }
- });
-
- b = new Button(defaultParent, SWT.RADIO);
- b.setText("DND.DROP_NONE");
- b.setSelection(true);
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- dropDefaultOperation = DND.DROP_NONE;
- dropOperation &= ~DND.DROP_DEFAULT;
- if (dropEnabled) {
- createDropTarget();
- }
- }
- }
- });
-
- // initialize state
- moveButton.setSelection(true);
- copyButton.setSelection(true);
- linkButton.setSelection(true);
- dropOperation = DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK;
-}
-
-private void createDropTarget() {
- if (dropTarget != null) dropTarget.dispose();
- dropTarget = new DropTarget(dropControl, dropOperation);
- dropTarget.setTransfer(dropTypes);
- dropTarget.addDropListener(new DropTargetListener() {
- public void dragEnter(DropTargetEvent event) {
- dropConsole.append(">>dragEnter\n");
- printEvent(event);
- if (event.detail == DND.DROP_DEFAULT) {
- event.detail = dropDefaultOperation;
- }
- event.feedback = dropFeedback;
- }
- public void dragLeave(DropTargetEvent event) {
- dropConsole.append(">>dragLeave\n");
- printEvent(event);
- }
- public void dragOperationChanged(DropTargetEvent event) {
- dropConsole.append(">>dragOperationChanged\n");
- printEvent(event);
- if (event.detail == DND.DROP_DEFAULT) {
- event.detail = dropDefaultOperation;
- }
- event.feedback = dropFeedback;
- }
- public void dragOver(DropTargetEvent event) {
- dropConsole.append(">>dragOver\n");
- printEvent(event);
- event.feedback = dropFeedback;
- }
- public void drop(DropTargetEvent event) {
- dropConsole.append(">>drop\n");
- printEvent(event);
- String[] strings = null;
- if (TextTransfer.getInstance().isSupportedType(event.currentDataType) ||
- RTFTransfer.getInstance().isSupportedType(event.currentDataType) ||
- HTMLTransfer.getInstance().isSupportedType(event.currentDataType) ||
- URLTransfer.getInstance().isSupportedType(event.currentDataType)) {
- strings = new String[] {(String)event.data};
- }
- if (FileTransfer.getInstance().isSupportedType(event.currentDataType)) {
- strings = (String[])event.data;
- }
- if (strings == null || strings.length == 0) {
- dropConsole.append("!!Invalid data dropped");
- return;
- }
-
- if (strings.length == 1 && (dropControlType == TABLE ||
- dropControlType == TREE ||
- dropControlType == LIST)) {
- // convert string separated by "\n" into an array of strings
- String string = strings[0];
- int count = 0;
- int offset = string.indexOf("\n", 0);
- while (offset > 0) {
- count++;
- offset = string.indexOf("\n", offset + 1);
- }
- if (count > 0) {
- strings = new String[count + 1];
- int start = 0;
- int end = string.indexOf("\n");
- int index = 0;
- while (start < end) {
- strings[index++] = string.substring(start, end);
- start = end + 1;
- end = string.indexOf("\n", start);
- if (end == -1) end = string.length();
- }
- }
- }
- switch(dropControlType) {
- case BUTTON_CHECK:
- case BUTTON_TOGGLE:
- case BUTTON_RADIO: {
- Button b = (Button)dropControl;
- b.setText(strings[0]);
- break;
- }
- case STYLED_TEXT: {
- StyledText text = (StyledText)dropControl;
- for(int i = 0; i < strings.length; i++) {
- text.insert(strings[i]);
- }
- break;
- }
- case TABLE: {
- Table table = (Table)dropControl;
- Point p = event.display.map(null, table, event.x, event.y);
- TableItem dropItem = table.getItem(p);
- int index = dropItem == null ? table.getItemCount() : table.indexOf(dropItem);
- for(int i = 0; i < strings.length; i++) {
- TableItem item = new TableItem(table, SWT.NONE, index);
- item.setText(0, strings[i]);
- item.setText(1, "dropped item");
- }
- TableColumn[] columns = table.getColumns();
- for (int i = 0; i < columns.length; i++) {
- columns[i].pack();
- }
- break;
- }
- case TEXT: {
- Text text = (Text)dropControl;
- for(int i = 0; i < strings.length; i++) {
- text.append(strings[i]+"\n");
- }
- break;
- }
- case TREE: {
- Tree tree = (Tree)dropControl;
- Point p = event.display.map(null, tree, event.x, event.y);
- TreeItem parentItem = tree.getItem(p);
- for(int i = 0; i < strings.length; i++) {
- TreeItem item = parentItem != null ? new TreeItem(parentItem, SWT.NONE) : new TreeItem(tree, SWT.NONE);
- item.setText(strings[i]);
- }
- break;
- }
- case CANVAS: {
- dropControl.setData("STRINGS", strings);
- dropControl.redraw();
- break;
- }
- case LABEL: {
- Label label = (Label)dropControl;
- label.setText(strings[0]);
- break;
- }
- case LIST: {
- List list = (List)dropControl;
- for(int i = 0; i < strings.length; i++) {
- list.add(strings[i]);
- }
- break;
- }
- case COMBO: {
- Combo combo = (Combo)dropControl;
- combo.setText(strings[0]);
- break;
- }
- default:
- throw new SWTError(SWT.ERROR_NOT_IMPLEMENTED);
- }
- }
- public void dropAccept(DropTargetEvent event) {
- dropConsole.append(">>dropAccept\n");
- printEvent(event);
- }
- });
-}
-
-private void createFeedbackTypes(Group parent) {
- parent.setLayout(new RowLayout(SWT.VERTICAL));
- Button b = new Button(parent, SWT.CHECK);
- b.setText("FEEDBACK_SELECT");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- dropFeedback |= DND.FEEDBACK_SELECT;
- } else {
- dropFeedback &= ~DND.FEEDBACK_SELECT;
- }
- }
- });
-
- b = new Button(parent, SWT.CHECK);
- b.setText("FEEDBACK_SCROLL");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- dropFeedback |= DND.FEEDBACK_SCROLL;
- } else {
- dropFeedback &= ~DND.FEEDBACK_SCROLL;
- }
- }
- });
-
-
- b = new Button(parent, SWT.CHECK);
- b.setText("FEEDBACK_INSERT_BEFORE");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- dropFeedback |= DND.FEEDBACK_INSERT_BEFORE;
- } else {
- dropFeedback &= ~DND.FEEDBACK_INSERT_BEFORE;
- }
- }
- });
-
- b = new Button(parent, SWT.CHECK);
- b.setText("FEEDBACK_INSERT_AFTER");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- dropFeedback |= DND.FEEDBACK_INSERT_AFTER;
- } else {
- dropFeedback &= ~DND.FEEDBACK_INSERT_AFTER;
- }
- }
- });
-
- b = new Button(parent, SWT.CHECK);
- b.setText("FEEDBACK_EXPAND");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- dropFeedback |= DND.FEEDBACK_EXPAND;
- } else {
- dropFeedback &= ~DND.FEEDBACK_EXPAND;
- }
- }
- });
-}
-
-private void createDropTypes(Composite parent) {
- parent.setLayout(new RowLayout(SWT.VERTICAL));
- Button textButton = new Button(parent, SWT.CHECK);
- textButton.setText("Text Transfer");
- textButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- addDropTransfer(TextTransfer.getInstance());
- } else {
- removeDropTransfer(TextTransfer.getInstance());
- }
- }
- });
-
- Button b = new Button(parent, SWT.CHECK);
- b.setText("RTF Transfer");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- addDropTransfer(RTFTransfer.getInstance());
- } else {
- removeDropTransfer(RTFTransfer.getInstance());
- }
- }
- });
-
-
- b = new Button(parent, SWT.CHECK);
- b.setText("HTML Transfer");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- addDropTransfer(HTMLTransfer.getInstance());
- } else {
- removeDropTransfer(HTMLTransfer.getInstance());
- }
- }
- });
-
- b = new Button(parent, SWT.CHECK);
- b.setText("URL Transfer");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- addDropTransfer(URLTransfer.getInstance());
- } else {
- removeDropTransfer(URLTransfer.getInstance());
- }
- }
- });
-
- b = new Button(parent, SWT.CHECK);
- b.setText("File Transfer");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- if (b.getSelection()) {
- addDropTransfer(FileTransfer.getInstance());
- } else {
- removeDropTransfer(FileTransfer.getInstance());
- }
- }
- });
-
- // initialize state
- textButton.setSelection(true);
- addDropTransfer(TextTransfer.getInstance());
-}
-
-private void createDropWidget(Composite parent) {
- parent.setLayout(new FormLayout());
- Combo combo = new Combo(parent, SWT.READ_ONLY);
- combo.setItems(new String[] {"Toggle Button", "Radio Button", "Checkbox", "Canvas", "Label", "List", "Table", "Tree", "Text", "StyledText", "Combo"});
- combo.select(LABEL);
- dropControlType = combo.getSelectionIndex();
- dropControl = createWidget(dropControlType, parent, "Drop Target");
- combo.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Object data = dropControl.getLayoutData();
- Composite parent = dropControl.getParent();
- dropControl.dispose();
- Combo c = (Combo)e.widget;
- dropControlType = c.getSelectionIndex();
- dropControl = createWidget(dropControlType, parent, "Drop Target");
- dropControl.setLayoutData(data);
- if (dropEnabled) createDropTarget();
- parent.layout();
- }
- });
-
- Button b = new Button(parent, SWT.CHECK);
- b.setText("DropTarget");
- b.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- Button b = (Button)e.widget;
- dropEnabled = b.getSelection();
- if (dropEnabled) {
- createDropTarget();
- } else {
- if (dropTarget != null){
- dropTarget.dispose();
- }
- dropTarget = null;
- }
- }
- });
- // initialize state
- b.setSelection(true);
- dropEnabled = true;
-
- FormData data = new FormData();
- data.top = new FormAttachment(0, 10);
- data.bottom = new FormAttachment(combo, -10);
- data.left = new FormAttachment(0, 10);
- data.right = new FormAttachment(100, -10);
- dropControl.setLayoutData(data);
-
- data = new FormData();
- data.bottom = new FormAttachment(100, -10);
- data.left = new FormAttachment(0, 10);
- combo.setLayoutData(data);
-
- data = new FormData();
- data.bottom = new FormAttachment(100, -10);
- data.left = new FormAttachment(combo, 10);
- b.setLayoutData(data);
-}
-
-private Control createWidget(int type, Composite parent, String prefix){
- switch (type) {
- case BUTTON_CHECK: {
- Button button = new Button(parent, SWT.CHECK);
- button.setText(prefix+" Check box");
- return button;
- }
- case BUTTON_TOGGLE: {
- Button button = new Button(parent, SWT.TOGGLE);
- button.setText(prefix+" Toggle button");
- return button;
- }
- case BUTTON_RADIO: {
- Button button = new Button(parent, SWT.RADIO);
- button.setText(prefix+" Radio button");
- return button;
- }
- case STYLED_TEXT: {
- StyledText text = new StyledText(parent, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
- text.setText(prefix+" Styled Text");
- return text;
- }
- case TABLE: {
- Table table = new Table(parent, SWT.BORDER | SWT.MULTI);
- table.setHeaderVisible(true);
- TableColumn column0 = new TableColumn(table, SWT.LEFT);
- column0.setText("Name");
- TableColumn column1 = new TableColumn(table, SWT.RIGHT);
- column1.setText("Value");
- TableColumn column2 = new TableColumn(table, SWT.CENTER);
- column2.setText("Description");
- for (int i = 0; i < 10; i++) {
- TableItem item = new TableItem(table, SWT.NONE);
- item.setText(0, prefix+" name "+i);
- item.setText(1, prefix+" value "+i);
- item.setText(2, prefix+" description "+i);
- item.setImage(itemImage);
- }
- column0.pack();
- column1.pack();
- column2.pack();
- return table;
- }
- case TEXT: {
- Text text = new Text(parent, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
- text.setText(prefix+" Text");
- return text;
- }
- case TREE: {
- Tree tree = new Tree(parent, SWT.BORDER | SWT.MULTI);
- tree.setHeaderVisible(true);
- TreeColumn column0 = new TreeColumn(tree, SWT.LEFT);
- column0.setText("Name");
- TreeColumn column1 = new TreeColumn(tree, SWT.RIGHT);
- column1.setText("Value");
- TreeColumn column2 = new TreeColumn(tree, SWT.CENTER);
- column2.setText("Description");
- for (int i = 0; i < 3; i++) {
- TreeItem item = new TreeItem(tree, SWT.NONE);
- item.setText(0, prefix+" name "+i);
- item.setText(1, prefix+" value "+i);
- item.setText(2, prefix+" description "+i);
- item.setImage(itemImage);
- for (int j = 0; j < 3; j++) {
- TreeItem subItem = new TreeItem(item, SWT.NONE);
- subItem.setText(0, prefix+" name "+i+" "+j);
- subItem.setText(1, prefix+" value "+i+" "+j);
- subItem.setText(2, prefix+" description "+i+" "+j);
- subItem.setImage(itemImage);
- for (int k = 0; k < 3; k++) {
- TreeItem subsubItem = new TreeItem(subItem, SWT.NONE);
- subsubItem.setText(0, prefix+" name "+i+" "+j+" "+k);
- subsubItem.setText(1, prefix+" value "+i+" "+j+" "+k);
- subsubItem.setText(2, prefix+" description "+i+" "+j+" "+k);
- subsubItem.setImage(itemImage);
- }
- }
- }
- column0.pack();
- column1.pack();
- column2.pack();
- return tree;
- }
- case CANVAS: {
- Canvas canvas = new Canvas(parent, SWT.BORDER);
- canvas.setData("STRINGS", new String[] {prefix+" Canvas widget"});
- canvas.addPaintListener(new PaintListener() {
- public void paintControl(PaintEvent e) {
- Canvas c = (Canvas)e.widget;
- Image image = (Image)c.getData("IMAGE");
- if (image != null) {
- e.gc.drawImage(image, 5, 5);
- } else {
- String[] strings = (String[])c.getData("STRINGS");
- if (strings != null) {
- FontMetrics metrics = e.gc.getFontMetrics();
- int height = metrics.getHeight();
- int y = 5;
- for(int i = 0; i < strings.length; i++) {
- e.gc.drawString(strings[i], 5, y);
- y += height + 5;
- }
- }
- }
- }
- });
- return canvas;
- }
- case LABEL: {
- Label label = new Label(parent, SWT.BORDER);
- label.setText(prefix+" Label");
- return label;
- }
- case LIST: {
- List list = new List(parent, SWT.BORDER);
- list.setItems(new String[] {prefix+" Item a", prefix+" Item b", prefix+" Item c", prefix+" Item d"});
- return list;
- }
- case COMBO:{
- Combo combo = new Combo(parent, SWT.BORDER);
- combo.setItems(new String[] {"Item a", "Item b", "Item c", "Item d"});
- return combo;
- }
- default:
- throw new SWTError(SWT.ERROR_NOT_IMPLEMENTED);
- }
-}
-
-public void open(Display display) {
- Shell shell = new Shell(display);
- shell.setText("Drag and Drop Example");
- shell.setLayout(new FillLayout());
-
- itemImage = new Image (display, DNDExample.class.getResourceAsStream("openFolder.gif"));
-
- ScrolledComposite sc = new ScrolledComposite(shell, SWT.H_SCROLL | SWT.V_SCROLL);
- Composite parent = new Composite(sc, SWT.NONE);
- sc.setContent(parent);
- parent.setLayout(new FormLayout());
-
- Label dragLabel = new Label(parent, SWT.LEFT);
- dragLabel.setText("Drag Source:");
-
- Group dragWidgetGroup = new Group(parent, SWT.NONE);
- dragWidgetGroup.setText("Widget");
- createDragWidget(dragWidgetGroup);
-
- Composite cLeft = new Composite(parent, SWT.NONE);
- cLeft.setLayout(new GridLayout(2, false));
-
- Group dragOperationsGroup = new Group(cLeft, SWT.NONE);
- dragOperationsGroup.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 1, 1));
- dragOperationsGroup.setText("Allowed Operation(s):");
- createDragOperations(dragOperationsGroup);
-
- Group dragTypesGroup = new Group(cLeft, SWT.NONE);
- dragTypesGroup.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1));
- dragTypesGroup.setText("Transfer Type(s):");
- createDragTypes(dragTypesGroup);
-
- dragConsole = new Text(cLeft, SWT.READ_ONLY | SWT.BORDER |SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI);
- dragConsole.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
- Menu menu = new Menu (shell, SWT.POP_UP);
- MenuItem item = new MenuItem (menu, SWT.PUSH);
- item.setText ("Clear");
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- dragConsole.setText("");
- }
- });
- item = new MenuItem (menu, SWT.CHECK);
- item.setText ("Show Event detail");
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- MenuItem item = (MenuItem)e.widget;
- dragEventDetail = item.getSelection();
- }
- });
- dragConsole.setMenu(menu);
-
- Label dropLabel = new Label(parent, SWT.LEFT);
- dropLabel.setText("Drop Target:");
-
- Group dropWidgetGroup = new Group(parent, SWT.NONE);
- dropWidgetGroup.setText("Widget");
- createDropWidget(dropWidgetGroup);
-
- Composite cRight = new Composite(parent, SWT.NONE);
- cRight.setLayout(new GridLayout(2, false));
-
- Group dropOperationsGroup = new Group(cRight, SWT.NONE);
- dropOperationsGroup.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 1, 2));
- dropOperationsGroup.setText("Allowed Operation(s):");
- createDropOperations(dropOperationsGroup);
-
- Group dropTypesGroup = new Group(cRight, SWT.NONE);
- dropTypesGroup.setText("Transfer Type(s):");
- createDropTypes(dropTypesGroup);
-
- Group feedbackTypesGroup = new Group(cRight, SWT.NONE);
- feedbackTypesGroup.setText("Feedback Type(s):");
- createFeedbackTypes(feedbackTypesGroup);
-
- dropConsole = new Text(cRight, SWT.READ_ONLY | SWT.BORDER |SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI);
- dropConsole.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
- menu = new Menu (shell, SWT.POP_UP);
- item = new MenuItem (menu, SWT.PUSH);
- item.setText ("Clear");
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- dropConsole.setText("");
- }
- });
- item = new MenuItem (menu, SWT.CHECK);
- item.setText ("Show Event detail");
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- MenuItem item = (MenuItem)e.widget;
- dropEventDetail = item.getSelection();
- }
- });
- dropConsole.setMenu(menu);
-
- if (dragEnabled) createDragSource();
- if (dropEnabled) createDropTarget();
-
- int height = 200;
- FormData data = new FormData();
- data.top = new FormAttachment(0, 10);
- data.left = new FormAttachment(0, 10);
- dragLabel.setLayoutData(data);
-
- data = new FormData();
- data.top = new FormAttachment(dragLabel, 10);
- data.left = new FormAttachment(0, 10);
- data.right = new FormAttachment(50, -10);
- data.height = height;
- dragWidgetGroup.setLayoutData(data);
-
- data = new FormData();
- data.top = new FormAttachment(dragWidgetGroup, 10);
- data.left = new FormAttachment(0, 10);
- data.right = new FormAttachment(50, -10);
- data.bottom = new FormAttachment(100, -10);
- cLeft.setLayoutData(data);
-
- data = new FormData();
- data.top = new FormAttachment(0, 10);
- data.left = new FormAttachment(cLeft, 10);
- dropLabel.setLayoutData(data);
-
- data = new FormData();
- data.top = new FormAttachment(dropLabel, 10);
- data.left = new FormAttachment(cLeft, 10);
- data.right = new FormAttachment(100, -10);
- data.height = height;
- dropWidgetGroup.setLayoutData(data);
-
- data = new FormData();
- data.top = new FormAttachment(dropWidgetGroup, 10);
- data.left = new FormAttachment(cLeft, 10);
- data.right = new FormAttachment(100, -10);
- data.bottom = new FormAttachment(100, -10);
- cRight.setLayoutData(data);
-
- sc.setMinSize(parent.computeSize(SWT.DEFAULT, SWT.DEFAULT));
- sc.setExpandHorizontal(true);
- sc.setExpandVertical(true);
-
- Point size = shell.computeSize(SWT.DEFAULT, SWT.DEFAULT);
- Rectangle monitorArea = shell.getMonitor().getClientArea();
- shell.setSize(Math.min(size.x, monitorArea.width - 20), Math.min(size.y, monitorArea.height - 20));
- shell.open();
-
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
- itemImage.dispose();
-}
-
-private void printEvent(DragSourceEvent e) {
- if (!dragEventDetail) return;
- StringBuffer sb = new StringBuffer();
- sb.append("widget: "); sb.append(e.widget);
- sb.append(", time: "); sb.append(e.time);
- sb.append(", operation: "); sb.append(e.detail);
- sb.append(", type: "); sb.append(e.dataType != null ? e.dataType.type : 0);
- sb.append(", doit: "); sb.append(e.doit);
- sb.append(", data: "); sb.append(e.data);
- sb.append("\n");
- dragConsole.append(sb.toString());
-}
-
-private void printEvent(DropTargetEvent e) {
- if (!dropEventDetail) return;
- StringBuffer sb = new StringBuffer();
- sb.append("widget; "); sb.append(e.widget);
- sb.append(", time: "); sb.append(e.time);
- sb.append(", x: "); sb.append(e.x);
- sb.append(", y: "); sb.append(e.y);
- sb.append(", item: "); sb.append(e.item);
- sb.append(", operations: "); sb.append(e.operations);
- sb.append(", operation: "); sb.append(e.detail);
- sb.append(", feedback: "); sb.append(e.feedback);
- if (e.dataTypes != null) {
- for (int i = 0; i < e.dataTypes.length; i++) {
- sb.append(", dataType "); sb.append(i); sb.append(": "); sb.append(e.dataTypes[i].type);
- }
- } else {
- sb.append(", dataTypes: none");
- }
- sb.append(", currentDataType: "); sb.append(e.currentDataType);
- sb.append(", data: "); sb.append(e.data);
- sb.append("\n");
- dropConsole.append(sb.toString());
-}
-
-private void removeDragTransfer(Transfer transfer){
- if (dragTypes.length == 1) {
- dragTypes = new Transfer[0];
- } else {
- int index = -1;
- for(int i = 0; i < dragTypes.length; i++) {
- if (dragTypes[i] == transfer) {
- index = i;
- break;
- }
- }
- if (index == -1) return;
- Transfer[] newTypes = new Transfer[dragTypes.length - 1];
- System.arraycopy(dragTypes, 0, newTypes, 0, index);
- System.arraycopy(dragTypes, index + 1, newTypes, index, dragTypes.length - index - 1);
- dragTypes = newTypes;
- }
- if (dragSource != null) {
- dragSource.setTransfer(dragTypes);
- }
-}
-
-private void removeDropTransfer(Transfer transfer){
- if (dropTypes.length == 1) {
- dropTypes = new Transfer[0];
- } else {
- int index = -1;
- for(int i = 0; i < dropTypes.length; i++) {
- if (dropTypes[i] == transfer) {
- index = i;
- break;
- }
- }
- if (index == -1) return;
- Transfer[] newTypes = new Transfer[dropTypes.length - 1];
- System.arraycopy(dropTypes, 0, newTypes, 0, index);
- System.arraycopy(dropTypes, index + 1, newTypes, index, dropTypes.length - index - 1);
- dropTypes = newTypes;
- }
- if (dropTarget != null) {
- dropTarget.setTransfer(dropTypes);
- }
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/openFolder.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/openFolder.gif
deleted file mode 100644
index fc9943f111..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/openFolder.gif
+++ /dev/null
Binary files differ
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 0c3d8c30b0..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/FileViewer.java
+++ /dev/null
@@ -1,1716 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.fileviewer;
-
-
-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();
- }
- application.close();
- 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.open();
- return shell;
- }
-
- /**
- * Closes the main program.
- */
- void close() {
- workerStop();
- iconCache.freeResources();
- }
-
- /**
- * 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) {
- shell.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.NONE);
- 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.NONE, itemIndex);
- treeInitVolume(newItem, masterFile);
- new TreeItem(newItem, SWT.NONE); // 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.NONE);
- treeInitVolume(newItem, masterFile);
- new TreeItem(newItem, SWT.NONE); // 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.NONE); // 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.NONE, itemIndex);
- treeInitFolder(newItem, masterFile);
- new TreeItem(newItem, SWT.NONE); // 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.NONE);
- treeInitFolder(newItem, masterFile);
- new TreeItem(newItem, SWT.NONE); // 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;
- }
- File root = new File(File.separator);
- if (initial) {
- currentDirectory = root;
- initial = false;
- }
- 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;
- }
- 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.setData(TABLEDATA_DIR, workerStateDir);
- }
- });
- dirList = getDirectoryList(workerStateDir);
-
- for (int i = 0; (! workerCancelled) && (i < dirList.length); i++) {
- workerAddFileDetails(dirList[i]);
- }
-
- }
-
- /**
- * 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.syncExec(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) {
- 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 914dc96098..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/IconCache.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.fileviewer;
-
-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();
- }
- }
- if (stockCursors != null) {
- for (int i = 0; i < stockCursors.length; ++i) {
- final Cursor cursor = stockCursors[i];
- if (cursor != null) cursor.dispose();
- }
- stockCursors = null;
- }
- }
- /**
- * Creates a stock image
- *
- * @param display the display
- * @param path the relative path to the icon
- */
- private Image createStockImage(Display display, String path) {
- InputStream stream = IconCache.class.getResourceAsStream (path);
- ImageData imageData = new ImageData (stream);
- ImageData mask = imageData.getTransparencyMask ();
- Image result = new Image (display, imageData, mask);
- try {
- stream.close ();
- } catch (IOException e) {
- e.printStackTrace ();
- }
- return result;
- }
- /**
- * 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
deleted file mode 100755
index 4274b070ac..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Copy.gif
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index eb948b94b0..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Cut.gif
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index 6f647666d3..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Delete.gif
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index 9b278e6fa8..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Parent.gif
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index 75e0ab2352..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Paste.gif
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index 4dfa8cd3fa..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Print.gif
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index a063c230ac..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Refresh.gif
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index 25b1325e52..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Rename.gif
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index 6dc3ebefc9..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/cmd_Search.gif
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index f9fb6b0cab..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/generic_example.gif
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index 04e530e37c..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedDrive.gif
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index beb6ed134c..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_ClosedFolder.gif
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index 6b86d07978..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_File.gif
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index 7b2b6334ca..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenDrive.gif
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index a9c777343c..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/fileviewer/icon_OpenFolder.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/AdvancedGraphics.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/AdvancedGraphics.java
deleted file mode 100644
index 81ab1c1e9c..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/AdvancedGraphics.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.graphics;
-
-/*
- * Drawing with transformations, paths and alpha blending
- *
- * For a list of all SWT example snippets see
- * http://www.eclipse.org/swt/snippets/
- */
-import java.io.*;
-import java.util.*;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-public class AdvancedGraphics {
-
- private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle("examples_graphics");
-
- static Image loadImage (Device device, Class clazz, String string) {
- InputStream stream = clazz.getResourceAsStream (string);
- if (stream == null) return null;
- Image image = null;
- try {
- image = new Image (device, stream);
- } catch (SWTException ex) {
- } finally {
- try {
- stream.close ();
- } catch (IOException ex) {}
- }
- return image;
- }
-
- public Shell open(final Display display) {
- final Shell shell = new Shell(display);
- shell.setText(RESOURCE_BUNDLE.getString("AdvancedGraphics")); //$NON-NLS-1$
- try {
- Path path = new Path(display);
- path.dispose();
- } catch (SWTException e) {
- MessageBox dialog = new MessageBox(shell, SWT.ICON_WARNING | SWT.OK);
- dialog.setText(RESOURCE_BUNDLE.getString("Warning")); //$NON-NLS-1$
- dialog.setMessage(RESOURCE_BUNDLE.getString("LibNotFound")); //$NON-NLS-1$
- dialog.open();
- shell.dispose();
- return null;
- }
- FontData fd = shell.getFont().getFontData()[0];
- final Font font = new Font(display, fd.getName(), 96, SWT.BOLD | SWT.ITALIC);
- final Image image = loadImage(display, AdvancedGraphics.class, "irmaos.jpg");
- final Rectangle rect = image.getBounds();
- shell.addListener(SWT.Paint, new Listener() {
- public void handleEvent(Event event) {
- GC gc = event.gc;
- Transform tr = new Transform(display);
- tr.translate(rect.width / 4, rect.height / 2);
- tr.rotate(-30);
- if (image != null) {
- gc.drawImage(image, 0, 0, rect.width, rect.height, 0, 0, rect.width, rect.height);
- }
- gc.setAlpha(100);
- gc.setTransform(tr);
- Path path = new Path(display);
- path.addString("SWT", 0, 0, font);
- gc.setBackground(display.getSystemColor(SWT.COLOR_GREEN));
- gc.setForeground(display.getSystemColor(SWT.COLOR_BLUE));
- gc.fillPath(path);
- gc.drawPath(path);
- tr.dispose();
- path.dispose();
- }
- });
- shell.setSize(shell.computeSize(rect.width, rect.height));
- shell.open();
- shell.addListener(SWT.Dispose, new Listener() {
- public void handleEvent(Event event) {
- if (image != null) image.dispose();
- font.dispose();
- }
- });
- return shell;
- }
-
- public static void main(String[] args) {
- Display display = new Display();
- Shell shell = new AdvancedGraphics().open(display);
- while (shell != null && !shell.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
- display.dispose();
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/AlphaTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/AlphaTab.java
deleted file mode 100644
index f2908ad1b9..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/AlphaTab.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-/**
- * This tab demonstrates alpha blending. It draws various shapes and images as
- * alpha values change.
- */
-public class AlphaTab extends AnimatedGraphicsTab {
- /**
- * Value used in setAlpha API call. Goes from 0 to 255 and then starts over.
- */
- int alphaValue;
-
- /**
- * Value used in setAlpha API call. Goes from 0 to 255, then from 255 to 0
- * and then starts over.
- */
- int alphaValue2;
-
- boolean reachedMax = false;
- int diameter;
-
- /** random numbers used for positioning "SWT" */
- int randX, randY;
- Image alphaImg1, alphaImg2;
-
- public AlphaTab(GraphicsExample example) {
- super(example);
- }
-
- public String getCategory() {
- return GraphicsExample.getResourceString("Alpha"); //$NON-NLS-1$
- }
-
- public String getText() {
- return GraphicsExample.getResourceString("Alpha"); //$NON-NLS-1$
- }
-
- public String getDescription() {
- return GraphicsExample.getResourceString("AlphaDescription"); //$NON-NLS-1$
- }
-
- public int getInitialAnimationTime() {
- return 20;
- }
-
- public void dispose() {
- if (alphaImg1 != null) {
- alphaImg1.dispose();
- alphaImg1 = null;
- }
- if (alphaImg2 != null) {
- alphaImg2.dispose();
- alphaImg2 = null;
- }
- }
-
- public void next(int width, int height) {
- alphaValue = (alphaValue+5)%255;
-
- alphaValue2 = reachedMax ? alphaValue2 - 5 : alphaValue2 + 5;
-
- if (alphaValue2 == 255) {
- reachedMax = true;
- } else if (alphaValue2 == 0) {
- reachedMax = false;
- }
-
- diameter = (diameter + 10)%(width > height ? width : height);
- }
-
- /**
- * Paint the receiver into the specified GC.
- */
- public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- if (alphaImg1 == null) {
- alphaImg1 = GraphicsExample.loadImage(device, GraphicsExample.class, "alpha_img1.png");
- alphaImg2 = GraphicsExample.loadImage(device, GraphicsExample.class, "alpha_img2.png");
- }
-
- Rectangle rect = alphaImg1.getBounds();
-
- gc.setAlpha(alphaValue);
- gc.drawImage(alphaImg1, rect.x, rect.y, rect.width, rect.height,
- width/2, height/2, width/4, height/4);
-
- gc.drawImage(alphaImg1, rect.x, rect.y, rect.width, rect.height,
- 0, 0, width/4, height/4);
-
- gc.setAlpha(255-alphaValue);
- gc.drawImage(alphaImg2, rect.x, rect.y, rect.width, rect.height,
- width/2, 0, width/4, height/4);
-
- gc.drawImage(alphaImg2, rect.x, rect.y, rect.width, rect.height,
- 0, 3*height/4, width/4, height/4);
-
- // pentagon
- gc.setBackground(device.getSystemColor(SWT.COLOR_DARK_MAGENTA));
- gc.fillPolygon(new int [] {width/10, height/2, 3*width/10, height/2-width/6, 5*width/10, height/2,
- 4*width/10, height/2+width/6, 2*width/10, height/2+width/6});
-
- gc.setBackground(device.getSystemColor(SWT.COLOR_RED));
-
- // square
- gc.setAlpha(alphaValue);
- gc.fillRectangle(width/2, height-75, 75, 75);
-
- // triangle
- gc.setAlpha(alphaValue + 15);
- gc.fillPolygon(new int[]{width/2+75, height-(2*75), width/2+75, height-75, width/2+(2*75), height-75});
-
- // triangle
- gc.setAlpha(alphaValue + 30);
- gc.fillPolygon(new int[]{width/2+80, height-(2*75), width/2+(2*75), height-(2*75), width/2+(2*75), height-80});
-
- // triangle
- gc.setAlpha(alphaValue + 45);
- gc.fillPolygon(new int[]{width/2+(2*75), height-(2*75), width/2+(3*75), height-(2*75), width/2+(3*75), height-(3*75)});
-
- // triangle
- gc.setAlpha(alphaValue + 60);
- gc.fillPolygon(new int[]{width/2+(2*75), height-((2*75)+5), width/2+(2*75), height-(3*75), width/2+((3*75)-5), height-(3*75)});
-
- // square
- gc.setAlpha(alphaValue + 75);
- gc.fillRectangle(width/2+(3*75), height-(4*75), 75, 75);
-
- gc.setBackground(device.getSystemColor(SWT.COLOR_GREEN));
-
- // circle in top right corner
- gc.setAlpha(alphaValue2);
- gc.fillOval(width-100, 0, 100, 100);
-
- // triangle
- gc.setAlpha(alphaValue + 90);
- gc.fillPolygon(new int[]{width-300, 10, width-100, 10, width-275, 50});
-
- // triangle
- gc.setAlpha(alphaValue + 105);
- gc.fillPolygon(new int[]{width-10, 100, width-10, 300, width-50, 275});
-
- // quadrilateral shape
- gc.setAlpha(alphaValue + 120);
- gc.fillPolygon(new int[]{width-100, 100, width-200, 150, width-200, 200, width-150, 200});
-
- // blue circles
- gc.setBackground(device.getSystemColor(SWT.COLOR_BLUE));
- int size = 50;
- int alpha = 20;
- for (int i = 0; i < 10; i++) {
- gc.setAlpha(alphaValue + alpha);
- if (i % 2 > 0) {
- gc.fillOval(width-((i+1)*size), height-size, size, size);
- } else {
- gc.fillOval(width-((i+1)*size), height-(3*size/2), size, size);
- }
- alpha = alpha + 20;
- }
-
- // SWT string appearing randomly
- gc.setAlpha(alphaValue2);
- String text = GraphicsExample.getResourceString("SWT");
- Font font = createFont(device, 100, SWT.NONE);
- gc.setFont(font);
-
- Point textSize = gc.stringExtent(text);
- int textWidth = textSize.x;
- int textHeight = textSize.y;
-
- if (alphaValue2 == 0){
- randX = (int)(width*Math.random());
- randY = (int)(height*Math.random());
- randX = (randX > textWidth) ? randX - textWidth : randX;
- randY = (randY > textHeight) ? randY - textHeight : randY;
- }
-
- gc.drawString(text, randX, randY, true);
- font.dispose();
-
- // gray donut
- gc.setAlpha(100);
- Path path = new Path(device);
- path.addArc((width-diameter)/2, (height-diameter)/2, diameter, diameter, 0, 360);
- path.close();
- path.addArc((width-diameter+25)/2, (height-diameter+25)/2, diameter-25, diameter-25, 0, 360);
- path.close();
- gc.setBackground(device.getSystemColor(SWT.COLOR_GRAY));
- gc.fillPath(path);
- gc.drawPath(path);
- path.dispose();
- }
-
- /**
- * Creates a font using the specified arguments and returns it.
- * This method takes into account the resident platform.
- *
- * @param face
- * The name of the font
- * @param points
- * The size of the font in point
- * @param style
- * The style to be applied to the font
- */
- static Font createFont(Device device, int points, int style) {
- if(SWT.getPlatform() == "win32") {
- return new Font(device, "Verdana", points, style);
- } else if (SWT.getPlatform() == "motif") {
- return new Font(device, "Times", points, style);
- } else if (SWT.getPlatform() == "gtk") {
- return new Font(device, "Baekmuk Batang", points, style);
- } else if (SWT.getPlatform() == "carbon") {
- return new Font(device, "Verdana", points, style);
- } else { // photon
- return new Font(device, "Verdana", points, style);
- }
- }
-}
-
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/AnimatedGraphicsTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/AnimatedGraphicsTab.java
deleted file mode 100644
index 6c442f3d93..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/AnimatedGraphicsTab.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This class extends the GraphicsTab class to create animated graphics.
- * */
-public abstract class AnimatedGraphicsTab extends GraphicsTab {
-
- ToolBar toolBar;
- ToolItem playItem, pauseItem;
- Spinner timerSpinner; // to input the speed of the animation
- private boolean animate; // flag that indicates whether or not to animate the graphic
-
- public AnimatedGraphicsTab(GraphicsExample example) {
- super(example);
- animate = true;
- }
-
- /**
- * Sets the layout of the composite to RowLayout and creates the toolbar.
- *
- * @see org.eclipse.swt.examples.graphics.GraphicsTab#createControlPanel(org.eclipse.swt.widgets.Composite)
- */
- public void createControlPanel(Composite parent) {
-
- // setup layout
- RowLayout layout = new RowLayout();
- layout.wrap = true;
- layout.spacing = 8;
- parent.setLayout(layout);
-
- createToolBar(parent);
- }
-
- /**
- * Creates the toolbar controls: play, pause and animation timer.
- *
- * @param parent A composite
- */
- void createToolBar(final Composite parent) {
- final Display display = parent.getDisplay();
-
- toolBar = new ToolBar(parent, SWT.FLAT);
- Listener toolBarListener = new Listener() {
- public void handleEvent(Event event) {
- switch (event.type) {
- case SWT.Selection: {
- if (event.widget == playItem) {
- animate = true;
- playItem.setEnabled(!animate);
- pauseItem.setEnabled(animate);
- } else if (event.widget == pauseItem) {
- animate = false;
- playItem.setEnabled(!animate);
- pauseItem.setEnabled(animate);
- }
- }
- break;
- }
- }
- };
-
- // play tool item
- playItem = new ToolItem(toolBar, SWT.PUSH);
- playItem.setText(GraphicsExample.getResourceString("Play")); //$NON-NLS-1$
- playItem.setImage(example.loadImage(display, "play.gif")); //$NON-NLS-1$
- playItem.addListener(SWT.Selection, toolBarListener);
-
- // pause tool item
- pauseItem = new ToolItem(toolBar, SWT.PUSH);
- pauseItem.setText(GraphicsExample.getResourceString("Pause")); //$NON-NLS-1$
- pauseItem.setImage(example.loadImage(display, "pause.gif")); //$NON-NLS-1$
- pauseItem.addListener(SWT.Selection, toolBarListener);
-
- // timer spinner
- Composite comp = new Composite(parent, SWT.NONE);
- GridLayout gridLayout = new GridLayout(2, false);
- comp.setLayout(gridLayout);
-
- Label label = new Label(comp, SWT.CENTER);
- label.setText(GraphicsExample.getResourceString("Animation")); //$NON-NLS-1$
- timerSpinner = new Spinner(comp, SWT.BORDER | SWT.WRAP);
- timerSpinner.setMaximum(1000);
-
- playItem.setEnabled(false);
- animate = true;
-
- timerSpinner.setSelection(getInitialAnimationTime());
- }
-
- /**
- * Answer whether the receiver's drawing should be double bufferer.
- */
- public boolean getDoubleBuffered() {
- return true;
- }
-
- /**
- * Gets the initial animation time to be used by the tab. Animation time:
- * number of milliseconds between the current drawing and the next (the time
- * interval between calls to the next method). Should be overridden to
- * return a value that is more appropriate for the tab.
- */
- public int getInitialAnimationTime() {
- return 30;
- }
-
- /**
- * Gets the animation time that is selected in the spinner. Animation time:
- * number of milliseconds between the current drawing and the next (the time
- * interval between calls to the next method). Should be overridden to
- * return a value that is more appropriate for the tab.
- */
- public int getAnimationTime() {
- return timerSpinner.getSelection();
- }
-
- /**
- * Returns the true if the tab is currently animated; false otherwise.
- */
- public boolean getAnimation() {
- return animate;
- }
-
- /**
- * Causes the animation to stop or start.
- *
- * @param flag
- * true starts the animation; false stops the animation.
- */
- public void setAnimation(boolean flag) {
- animate = flag;
- playItem.setEnabled(!flag);
- pauseItem.setEnabled(flag);
- }
-
- /**
- * Advance the animation.
- */
- public abstract void next(int width, int height);
-
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/BallTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/BallTab.java
deleted file mode 100644
index 404be718cb..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/BallTab.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import java.util.LinkedList;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Path;
-import org.eclipse.swt.graphics.Transform;
-
-/**
- * This tab uses alpha blending to simulate "ghosting" of a ball in movement.
- */
-public class BallTab extends AnimatedGraphicsTab {
-
- BallCollection[] bc;
-
- /**
- * This inner class serves as a container for the data needed to display a
- * collection of balls.
- */
- static class BallCollection {
- float x, y; // position of ball
- float incX, incY; // values by which to move the ball
- int ball_size; // size (diameter) of the ball
- int capacity; // number of balls in the collection
- LinkedList prevx, prevy; // collection of previous x and y positions
- // of ball
- Color[] colors; // colors used for this ball collection
-
- public BallCollection(float x, float y, float incX, float incY,
- int ball_size, int capacity, Color[] colors) {
- this.x = x;
- this.y = y;
- this.incX = incX;
- this.incY = incY;
- this.ball_size = ball_size;
- this.capacity = capacity;
- prevx = new LinkedList();
- prevy = new LinkedList();
- this.colors = colors;
- }
- }
-
- public void dispose() {
- bc[0] = bc[1] = bc[2] = bc[3] = bc[4] = null;
- }
-
- public BallTab(GraphicsExample example) {
- super(example);
- bc = new BallCollection[5];
- }
-
- public String getCategory() {
- return GraphicsExample.getResourceString("Alpha"); //$NON-NLS-1$
- }
-
- public String getText() {
- return GraphicsExample.getResourceString("Ball"); //$NON-NLS-1$
- }
-
- public String getDescription() {
- return GraphicsExample.getResourceString("BallDescription"); //$NON-NLS-1$
- }
-
- public int getInitialAnimationTime() {
- return 10;
- }
-
- public void next(int width, int height) {
- for (int i = 0; i < bc.length; i++) {
- if (bc[i] == null) return;
- if (bc[i].prevx.size() == 0) {
- bc[i].prevx.addLast(new Float(bc[i].x));
- bc[i].prevy.addLast(new Float(bc[i].y));
- } else if (bc[i].prevx.size() == bc[i].capacity) {
- bc[i].prevx.removeFirst();
- bc[i].prevy.removeFirst();
- }
-
- bc[i].x += bc[i].incX;
- bc[i].y += bc[i].incY;
-
- float random = (float) Math.random();
-
- // right
- if (bc[i].x + bc[i].ball_size > width) {
- bc[i].x = width - bc[i].ball_size;
- bc[i].incX = random * -width / 16 - 1;
- }
- // left
- if (bc[i].x < 0) {
- bc[i].x = 0;
- bc[i].incX = random * width / 16 + 1;
- }
- // bottom
- if (bc[i].y + bc[i].ball_size > height) {
- bc[i].y = (height - bc[i].ball_size) - 2;
- bc[i].incY = random * -height / 16 - 1;
- }
- // top
- if (bc[i].y < 0) {
- bc[i].y = 0;
- bc[i].incY = random * height / 16 + 1;
- }
- bc[i].prevx.addLast(new Float(bc[i].x));
- bc[i].prevy.addLast(new Float(bc[i].y));
- }
- }
-
- public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- if (bc[0] == null) {
- bc[0] = new BallCollection(0, 0, 5, 5, 20, 20, new Color[] { device
- .getSystemColor(SWT.COLOR_GREEN) });
- bc[1] = new BallCollection(50, 300, 10, -5, 50, 10,
- new Color[] { device.getSystemColor(SWT.COLOR_BLUE) });
- bc[2] = new BallCollection(250, 100, -5, 8, 25, 12,
- new Color[] { device.getSystemColor(SWT.COLOR_RED) });
- bc[3] = new BallCollection(150, 400, 5, 8, 35, 14,
- new Color[] { device.getSystemColor(SWT.COLOR_BLACK) });
- bc[4] = new BallCollection(100, 250, -5, -18, 100, 5,
- new Color[] { device.getSystemColor(SWT.COLOR_MAGENTA) });
- }
-
- for (int j = 0; j < bc.length; j++) {
- for (int i = 0; i < bc[j].prevx.size(); i++) {
- Transform transform = new Transform(device);
- transform.translate(((Float) bc[j].prevx.get(bc[j].prevx.size()
- - (i + 1))).floatValue(), ((Float) bc[j].prevy
- .get(bc[j].prevy.size() - (i + 1))).floatValue());
- gc.setTransform(transform);
- transform.dispose();
-
- Path path = new Path(device);
- path.addArc(0, 0, bc[j].ball_size, bc[j].ball_size, 0, 360);
- gc.setAlpha(255 - i * (255 / bc[j].capacity));
- gc.setBackground(bc[j].colors[0]);
- gc.fillPath(path);
- gc.drawPath(path);
- path.dispose();
- }
- }
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/BlackHoleTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/BlackHoleTab.java
deleted file mode 100644
index 4401a30ba3..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/BlackHoleTab.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-public class BlackHoleTab extends AnimatedGraphicsTab {
-
- int size = 1;
-
-public BlackHoleTab(GraphicsExample example) {
- super(example);
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("BlackHole"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("BlackHoleDescription"); //$NON-NLS-1$
-}
-
-public void next(int width, int height) {
- if (size > width * 3 / 2) size = 0;
- else size += 10;
-}
-
-public void paint(GC gc, int width, int height) {
- Device device = gc.getDevice();
- gc.setBackground(device.getSystemColor(SWT.COLOR_BLACK));
- gc.fillOval((width - size) / 2, (height - size) / 2, size, size);
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CardsTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CardsTab.java
deleted file mode 100644
index acf547d9a1..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CardsTab.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * This tab demonstrates various transformations, such as scaling, rotation, and
- * translation.
- */
-public class CardsTab extends AnimatedGraphicsTab {
-
- float movClubX, movClubY, movDiamondX, movDiamondY, movHeart, movSpade;
- float inc_club = 5.0f;
- float inc_diamond = 5.0f;
- float inc_hearts = 5.0f;
- float inc_spade = 5.0f;
- float scale, scaleWidth;
- int rotationAngle = 0;
- float scaleArg = 0;
- float heartScale = 0.5f;
- float spadeScale = 0.333f;
- int clubWidth, diamondWidth, heartWidth, spadeHeight;
-
- Image ace_club, ace_spade, ace_diamond, ace_hearts;
-
-/**
- * Constructor
- * @param example A GraphicsExample
- */
-public CardsTab(GraphicsExample example) {
- super(example);
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Transform"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("Cards"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("CardsDescription"); //$NON-NLS-1$
-}
-
-public void dispose() {
- if (ace_club != null) {
- ace_club.dispose();
- ace_club = null;
- ace_spade.dispose();
- ace_spade = null;
- ace_diamond.dispose();
- ace_diamond = null;
- ace_hearts.dispose();
- ace_hearts = null;
- }
-}
-public void next(int width, int height) {
- rotationAngle = (rotationAngle+10)%360;
-
- // scaleVal goes from 0 to 1, then 1 to 0, then starts over
- scaleArg = (float)((scaleArg == 1) ? scaleArg - 0.1 : scaleArg + 0.1);
- scale = (float)Math.cos(scaleArg);
-
- movClubX += inc_club;
- movDiamondX += inc_diamond;
- movHeart += inc_hearts;
- movSpade += inc_spade;
-
- scaleWidth = (float) ((movClubY/height)*0.35 + 0.15);
- movClubY = 2*height/5 * (float)Math.sin(0.01*movClubX - 90) + 2*height/5;
- movDiamondY = 2*height/5 * (float)Math.cos(0.01*movDiamondX) + 2*height/5;
-
- if (movClubX + clubWidth*scaleWidth > width) {
- movClubX = width - clubWidth*scaleWidth;
- inc_club = -inc_club;
- }
- if (movClubX < 0) {
- movClubX = 0;
- inc_club = -inc_club;
- }
- if (movDiamondX + diamondWidth*scaleWidth > width) {
- movDiamondX = width - diamondWidth*scaleWidth;
- inc_diamond = -inc_diamond;
- }
- if (movDiamondX < 0) {
- movDiamondX = 0;
- inc_diamond = -inc_diamond;
- }
- if (movHeart + heartWidth*heartScale > width) {
- movHeart = width - heartWidth*heartScale;
- inc_hearts = -inc_hearts;
- }
- if (movHeart < 0) {
- movHeart = 0;
- inc_hearts = -inc_hearts;
- }
- if (movSpade + spadeHeight*spadeScale > height) {
- movSpade = height - spadeHeight*spadeScale;
- inc_spade = -inc_spade;
- }
- if (movSpade < 0) {
- movSpade = 0;
- inc_spade = -inc_spade;
- }
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.swt.examples.graphics.GraphicsTab#paint(org.eclipse.swt.graphics.GC, int, int)
- */
-public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- if (ace_club == null) {
- ace_club = GraphicsExample.loadImage(device, GraphicsExample.class, "ace_club.jpg");
- ace_spade = GraphicsExample.loadImage(device, GraphicsExample.class, "ace_spade.jpg");
- ace_diamond = GraphicsExample.loadImage(device, GraphicsExample.class, "ace_diamond.jpg");
- ace_hearts = GraphicsExample.loadImage(device, GraphicsExample.class, "ace_hearts.jpg");
- }
-
- clubWidth = ace_club.getBounds().width;
- diamondWidth = ace_diamond.getBounds().width;
- heartWidth = ace_hearts.getBounds().width;
- spadeHeight = ace_spade.getBounds().height;
-
- Transform transform;
-
- // ace of clubs
- transform = new Transform(device);
- transform.translate((int)movClubX, (int)movClubY);
- transform.scale(scaleWidth, scaleWidth);
-
- // rotate on center of image
- Rectangle rect = ace_club.getBounds();
- transform.translate(rect.width/2, rect.height/2);
- transform.rotate(rotationAngle);
- transform.translate(-rect.width/2, -rect.height/2);
-
- gc.setTransform(transform);
- transform.dispose();
- gc.drawImage(ace_club, 0, 0);
-
- // ace of diamonds
- transform = new Transform(device);
- transform.translate((int)movDiamondX, (int)movDiamondY);
- transform.scale(scaleWidth, scaleWidth);
- gc.setTransform(transform);
- transform.dispose();
- gc.drawImage(ace_diamond, 0, 0);
-
- // ace of hearts
- transform = new Transform(device);
- transform.translate(movHeart, height/2);
- transform.scale(heartScale, 0.5f*scale);
- gc.setTransform(transform);
- transform.dispose();
- gc.drawImage(ace_hearts, 0, 0);
-
- // ace of spades
- transform = new Transform(device);
- transform.translate(movSpade, movSpade);
- transform.scale(0.5f*scale, spadeScale);
- gc.setTransform(transform);
- transform.dispose();
- gc.drawImage(ace_spade, 0, 0);
-}
-}
-
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ColorListener.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ColorListener.java
deleted file mode 100644
index a72d806350..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ColorListener.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-/**
- * Used to perform an action after an item in a Menu has been selected.
- *
- * @see org.eclipse.swt.examples.graphics.ColorMenu.java
- * @see org.eclipse.swt.examples.graphics.GraphicsBackground.java
- */
-public interface ColorListener {
-
- public void setColor(GraphicsBackground gb);
-
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ColorMenu.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ColorMenu.java
deleted file mode 100644
index 2ded07c93e..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ColorMenu.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import java.util.*;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This class utilizes the factory design pattern to create menus that may
- * contain color items, pattern items and gradient items. To create a menu:
- * first set the menu items that you wish to have appear in the menu by calling
- * the setters (setColorItems(), setPatternItems(), setGradientItems()), and
- * then call createMenu() to get an instance of a menu. By default, the menu
- * will contain color items.
- */
-public class ColorMenu {
-
- boolean enableColorItems, enablePatternItems, enableGradientItems;
-
- public ColorMenu() {
- enableColorItems = true;
- }
-
- /**
- * Method used to specify whether or not the color menu items will appear in
- * the menu.
- *
- * @param enable
- * A boolean flag - true to make the color menu items visible in
- * the menu; false otherwise.
- */
- public void setColorItems(boolean enable) {
- enableColorItems = enable;
- }
-
- /**
- * @return true if color menu items are contained in the menu; false otherwise.
- * */
- public boolean getColorItems() {
- return enableColorItems;
- }
-
- /**
- * Method used to specify whether or not the pattern menu items will appear
- * in the menu.
- *
- * @param enable
- * A boolean flag - true to make the pattern menu items visible
- * in the menu; false otherwise.
- */
- public void setPatternItems(boolean enable) {
- enablePatternItems = enable;
- }
-
- /**
- * @return true if pattern menu items are contained in the menu; false otherwise.
- * */
- public boolean getPatternItems() {
- return enablePatternItems;
- }
-
- /**
- * Method used to specify whether or not the gradient menu items will appear
- * in the menu.
- *
- * @param enable
- * A boolean flag - true to make the gradient menu items visible
- * in the menu; false otherwise.
- */
- public void setGradientItems(boolean enable) {
- enableGradientItems = enable;
- }
-
- /**
- * @return true if gradient menu items are contained in the menu; false otherwise.
- */
- public boolean getGradientItems() {
- return enableGradientItems;
- }
-
- /**
- * Creates and returns the menu based on the settings provided via
- * setColorItems(), setPatternItems() and setGradientItems()
- *
- * @return A menu based on the settings
- */
- public Menu createMenu(Control parent, ColorListener cl) {
- Menu menu = new Menu(parent);
-
- MenuItemListener menuItemListener = createMenuItemListener(parent);
- menu.addListener(SWT.Selection, menuItemListener);
- menu.addListener(SWT.Dispose, menuItemListener);
- menuItemListener.setColorListener(cl);
-
- if (enableColorItems) {
- addColorItems(menu, menuItemListener, menuItemListener.getMenuResources());
- }
- if (enablePatternItems) {
- addPatternItems(menu, menuItemListener, menuItemListener.getMenuResources());
- }
- if (enableGradientItems) {
- addGradientItems(menu, menuItemListener);
- }
- return menu;
- }
-
- /** Adds the colors items to the menu. */
- private void addColorItems(Menu menu, MenuItemListener menuListener,
- ArrayList menuResources) {
- Display display = menu.getDisplay();
-
- if (menu.getItemCount() != 0) {
- new MenuItem(menu, SWT.SEPARATOR);
- }
-
- // color names
- String[] names = new String[]{
- GraphicsExample.getResourceString("White"), //$NON-NLS-1$
- GraphicsExample.getResourceString("Black"), //$NON-NLS-1$
- GraphicsExample.getResourceString("Red"), //$NON-NLS-1$
- GraphicsExample.getResourceString("Green"), //$NON-NLS-1$
- GraphicsExample.getResourceString("Blue"), //$NON-NLS-1$
- GraphicsExample.getResourceString("Yellow"), //$NON-NLS-1$
- GraphicsExample.getResourceString("Cyan"), //$NON-NLS-1$
- };
-
- // colors needed for the background menu
- Color[] colors = new Color[]{
- display.getSystemColor(SWT.COLOR_WHITE),
- display.getSystemColor(SWT.COLOR_BLACK),
- display.getSystemColor(SWT.COLOR_RED),
- display.getSystemColor(SWT.COLOR_GREEN),
- display.getSystemColor(SWT.COLOR_BLUE),
- display.getSystemColor(SWT.COLOR_YELLOW),
- display.getSystemColor(SWT.COLOR_CYAN),
- };
-
- // add standard color items to menu
- for (int i = 0; i < names.length; i++) {
- MenuItem item = new MenuItem(menu, SWT.NONE);
- item.setText(names[i]);
- item.addListener(SWT.Selection, menuListener);
- Color color = colors[i];
- GraphicsBackground gb = new GraphicsBackground();
- Image image = GraphicsExample.createImage(display, color);
- gb.setBgColor1(color);
- gb.setBgImage(image);
- gb.setThumbNail(image);
- menuResources.add(image);
- item.setImage(image);
- item.setData(gb);
- }
-
- // add custom color item to menu
- menuListener.customColorMI = new MenuItem(menu, SWT.NONE);
- menuListener.customColorMI.setText(GraphicsExample.getResourceString("CustomColor")); //$NON-NLS-1$
- menuListener.customColorMI.addListener(SWT.Selection, menuListener);
- GraphicsBackground gb = new GraphicsBackground();
- menuListener.customColorMI.setData(gb);
- }
-
- /** Adds the pattern items to the menu. */
- private void addPatternItems(Menu menu, MenuItemListener menuListener,
- ArrayList menuResources) {
- Display display = menu.getDisplay();
-
- if (menu.getItemCount() != 0) {
- new MenuItem(menu, SWT.SEPARATOR);
- }
-
- // pattern names
- String[] names = new String[]{
- GraphicsExample.getResourceString("Pattern1"), //$NON-NLS-1$
- GraphicsExample.getResourceString("Pattern2"), //$NON-NLS-1$
- GraphicsExample.getResourceString("Pattern3"), //$NON-NLS-1$
- };
-
- // pattern images
- Image[] images = new Image[]{
- loadImage(display, "pattern1.jpg", menuResources),
- loadImage(display, "pattern2.jpg", menuResources),
- loadImage(display, "pattern3.jpg", menuResources),
- };
-
- // add the pre-defined patterns to the menu
- for (int i = 0; i < names.length; i++) {
- MenuItem item = new MenuItem(menu, SWT.NONE);
- item.setText(names[i]);
- item.addListener(SWT.Selection, menuListener);
- Image image = images[i];
- GraphicsBackground gb = new GraphicsBackground();
- gb.setBgImage(image);
- gb.setThumbNail(image);
- item.setImage(image);
- item.setData(gb);
- }
-
- // add the custom pattern item
- menuListener.customPatternMI = new MenuItem(menu, SWT.NONE);
- menuListener.customPatternMI.setText(GraphicsExample.getResourceString("CustomPattern")); //$NON-NLS-1$
- menuListener.customPatternMI.addListener(SWT.Selection, menuListener);
- GraphicsBackground gb = new GraphicsBackground();
- menuListener.customPatternMI.setData(gb);
- }
-
- /** Adds the gradient menu item. */
- private void addGradientItems(Menu menu, MenuItemListener menuListener) {
- if (menu.getItemCount() != 0) {
- new MenuItem(menu, SWT.SEPARATOR);
- }
- menuListener.customGradientMI = new MenuItem(menu, SWT.NONE);
- menuListener.customGradientMI.setText(GraphicsExample.getResourceString("Gradient")); //$NON-NLS-1$
- menuListener.customGradientMI.addListener(SWT.Selection, menuListener);
- GraphicsBackground gb = new GraphicsBackground();
- menuListener.customGradientMI.setData(gb);
- }
-
- /** Creates and returns the listener for menu items. */
- private MenuItemListener createMenuItemListener(final Control parent) {
- return new MenuItemListener(parent);
- }
-
- /**
- * Creates and returns an instance of Image using on the path of an image.
- *
- * @param display
- * A Display
- * @param name
- * The path of the image file
- * @param resources
- * The list of resources of the menu
- */
- private Image loadImage(Display display, String name, ArrayList resources) {
- Image image = GraphicsExample.loadImage(display, GraphicsExample.class, name);
- if (image != null) resources.add(image);
- return image;
- }
-
- /**
- * An inner class used as a listener for MenuItems added to the menu.
- */
- static class MenuItemListener implements Listener {
- MenuItem customColorMI, customPatternMI, customGradientMI; // custom menu items
- Control parent;
- Image customImage, customImageThumb;
- Color customColor;
- GraphicsBackground background; // used to store information about the background
- ColorListener colorListener;
- ArrayList resources;
-
- public MenuItemListener(Control parent){
- this.parent = parent;
- resources = new ArrayList();
- }
- /**
- * Method used to set the ColorListener
- *
- * @param cl
- * A ColorListener
- * @see org.eclipse.swt.examples.graphics.ColorListener.java
- */
- public void setColorListener(ColorListener cl) {
- this.colorListener = cl;
- }
-
- public ArrayList getMenuResources() {
- return resources;
- }
-
- public void handleEvent(Event event) {
- switch (event.type) {
-
- case SWT.Dispose:
- for (int i = 0; i < resources.size(); i++) {
- ((Resource) resources.get(i)).dispose();
- }
- resources = new ArrayList();
- break;
- case SWT.Selection:
- Display display = event.display;
- MenuItem item = (MenuItem) event.widget;
- if (customColorMI == item) {
- ColorDialog dialog = new ColorDialog(parent.getShell());
- if (customColor != null && !customColor.isDisposed()) {
- dialog.setRGB(customColor.getRGB());
- }
- RGB rgb = dialog.open();
- if (rgb == null) return;
- if (customColor != null) customColor.dispose();
- customColor = new Color(display, rgb);
- if (customPatternMI != null) customPatternMI.setImage(null);
- if (customGradientMI != null) customGradientMI.setImage(null);
- if (customImage != null) customImage.dispose();
- customImage = GraphicsExample.createImage(display, customColor);
- GraphicsBackground gb = new GraphicsBackground();
- gb.setBgImage(customImage);
- gb.setThumbNail(customImage);
- gb.setBgColor1(customColor);
- item.setData(gb);
- item.setImage(customImage);
- resources.add(customColor);
- resources.add(customImage);
- } else if (customPatternMI == item) {
- FileDialog dialog = new FileDialog(parent.getShell());
- dialog.setFilterExtensions(new String[] { "*.jpg", "*.gif", "*.*" });
- String name = dialog.open();
- if (name == null) return;
- if (customColorMI != null) customColorMI.setImage(null);
- if (customGradientMI != null) customGradientMI.setImage(null);
- if (customColor != null) customColor.dispose();
- if (customImage != null) customImage.dispose();
- if (customImageThumb != null) customImageThumb.dispose();
- customImage = new Image(display, name);
- customImageThumb = GraphicsExample.createThumbnail(display, name);
- GraphicsBackground gb = new GraphicsBackground();
- gb.setBgImage(customImage);
- gb.setThumbNail(customImageThumb);
- item.setData(gb);
- item.setImage(customImageThumb);
- resources.add(customImageThumb);
- } else if (customGradientMI == item) {
- GradientDialog dialog = new GradientDialog(parent.getShell());
- if (background != null) {
- if (background.getBgColor1() != null)
- dialog.setFirstRGB(background.getBgColor1().getRGB());
- if (background.getBgColor2() != null)
- dialog.setSecondRGB(background.getBgColor2().getRGB());
- }
- if (dialog.open() != SWT.OK) return;
- Color colorA = new Color(display, dialog.getFirstRGB());
- Color colorB = new Color(display, dialog.getSecondRGB());
- if (colorA == null || colorB == null) return;
- if (customColorMI != null) customColorMI.setImage(null);
- if (customPatternMI != null) customPatternMI.setImage(null);
- if (customColor != null) customColor.dispose();
- if (customImage != null) customImage.dispose();
- customImage = GraphicsExample.createImage(display, colorA,
- colorB, 16, 16);
- GraphicsBackground gb = new GraphicsBackground();
- gb.setBgImage(customImage);
- gb.setThumbNail(customImage);
- gb.setBgColor1(colorA);
- gb.setBgColor2(colorB);
- item.setData(gb);
- item.setImage(customImage);
- resources.add(colorA);
- resources.add(colorB);
- resources.add(customImage);
- } else {
- if (customColorMI != null) customColorMI.setImage(null);
- if (customPatternMI != null) customPatternMI.setImage(null);
- if (customGradientMI != null) customGradientMI.setImage(null);
- }
- background = (GraphicsBackground) item.getData();
- colorListener.setColor(background);
- break;
- }
- }
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CountDownTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CountDownTab.java
deleted file mode 100644
index d483539f30..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CountDownTab.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This tab presents a count down from 5 to 1, then displays SWT.
- * */
-public class CountDownTab extends AnimatedGraphicsTab {
-
- final int startNumber = 5; // number at which to start the countdown
- int nextNumber = startNumber; // next number to be displayed
- int angle = -90; // angle used to rotate the bar
-
- Spinner lineWidthSpinner; // spinner for line width
- Combo aliasCombo, lineCapCombo; // combo for alias type and line cap
- int antialias, lineCap; // antialias and linecap values
- int[] capValues = { SWT.CAP_FLAT, SWT.CAP_SQUARE, SWT.CAP_ROUND };
- int[] aliasValues = { SWT.DEFAULT, SWT.OFF, SWT.ON };
-
- /**
- * Constructor
- *
- * @param example
- * A GraphicsExample
- */
- public CountDownTab(GraphicsExample example) {
- super(example);
- }
-
- /**
- * This method creates the controls specific to the tab. The call to the
- * createControlPanel method in the super class create the controls that are
- * defined in the super class.
- *
- * @param parent
- * The parent composite
- */
- public void createControlPanel(Composite parent) {
- super.createControlPanel(parent);
-
- if (nextNumber < 1)
- nextNumber = startNumber;
-
- // add selection listener to reset nextNumber after
- // the sequence has completed
- playItem.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- if (nextNumber < 1)
- nextNumber = startNumber;
- }
- });
-
- Composite comp;
- GridLayout gridLayout = new GridLayout(2, false);
-
- // create spinner for line width
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(gridLayout);
- new Label(comp, SWT.CENTER).setText(GraphicsExample
- .getResourceString("LineWidth")); //$NON-NLS-1$
- lineWidthSpinner = new Spinner(comp, SWT.BORDER | SWT.WRAP);
- lineWidthSpinner.setSelection(20);
- lineWidthSpinner.setMinimum(1);
- lineWidthSpinner.setMaximum(100);
- lineWidthSpinner.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- if (!pauseItem.isEnabled()) {
- example.redraw();
- }
- }
- });
-
- // create drop down combo for antialiasing
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(gridLayout);
- new Label(comp, SWT.CENTER).setText(GraphicsExample
- .getResourceString("Antialiasing")); //$NON-NLS-1$
- aliasCombo = new Combo(comp, SWT.DROP_DOWN);
- aliasCombo.add("DEFAULT");
- aliasCombo.add("OFF");
- aliasCombo.add("ON");
- aliasCombo.select(0);
- antialias = aliasValues[0];
- aliasCombo.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- antialias = aliasValues[aliasCombo.getSelectionIndex()];
- if (!pauseItem.isEnabled()) {
- example.redraw();
- }
- }
- });
-
- // create drop down combo for line cap
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(gridLayout);
- new Label(comp, SWT.CENTER).setText(GraphicsExample
- .getResourceString("LineCap")); //$NON-NLS-1$
- lineCapCombo = new Combo(comp, SWT.DROP_DOWN);
- lineCapCombo.add("FLAT");
- lineCapCombo.add("SQUARE");
- lineCapCombo.add("ROUND");
- lineCapCombo.select(0);
- lineCap = capValues[0];
- lineCapCombo.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- lineCap = capValues[lineCapCombo.getSelectionIndex()];
- if (!pauseItem.isEnabled()) {
- example.redraw();
- }
- }
- });
- }
-
- public String getCategory() {
- return GraphicsExample.getResourceString("Misc"); //$NON-NLS-1$
- }
-
- public String getText() {
- return GraphicsExample.getResourceString("Countdown"); //$NON-NLS-1$
- }
-
- public String getDescription() {
- return GraphicsExample.getResourceString("CountdownDescription"); //$NON-NLS-1$
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.swt.examples.graphics.AnimatedGraphicsTab#getAnimationTime()
- */
- public int getInitialAnimationTime() {
- return 28;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.swt.examples.graphics.AnimatedGraphicsTab#next(int, int)
- */
- public void next(int width, int height) {
-
- if (angle == 270) {
- nextNumber--;
- if (nextNumber < 1) {
- // stop animation
- setAnimation(false);
- }
- angle = -90;
- }
- angle += 10;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.swt.examples.graphics.GraphicsTab#paint(org.eclipse.swt.graphics.GC,
- * int, int)
- */
- public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- // diameter of the circle in pixels
- int diameter = ((width < height) ? width - 25 : height - 25);
-
- if (!getAnimation() && nextNumber == 0) {
- Font font = new Font(device, getPlatformFontFace(1), diameter/2,
- SWT.NONE);
- gc.setFont(font);
-
- // display "SWT"
- gc.setForeground(device.getSystemColor(SWT.COLOR_DARK_BLUE));
- gc.setTextAntialias(SWT.ON);
-
- // determine the dimensions of the word
- String text = GraphicsExample.getResourceString("SWT");
- Point point = gc.stringExtent(text);
- int textWidth = point.x;
- int textHeight = point.y;
- gc.drawString(text, (width-textWidth)/2,
- (height-textHeight)/2, true);
- font.dispose();
-
- } else {
-
- Font font = new Font(device, getPlatformFontFace(0),
- 6*diameter/10, SWT.NONE);
- gc.setFont(font);
-
- // set attributes from controls
- gc.setLineWidth(lineWidthSpinner.getSelection());
- gc.setLineCap(lineCap); // round line ends
- gc.setAntialias(antialias); // smooth jagged edges
- gc.setTextAntialias(antialias); // smooth jagged edges
-
- // draw the circles
- Path path = new Path(device);
- path.addArc((width-diameter)/2, (height-diameter)/2,
- diameter, diameter, 0, 360);
- path.addArc((width-diameter+50)/2,
- (height-diameter+50)/2, diameter-50, diameter-50,
- 0, 360);
- gc.drawPath(path);
- gc.setBackground(device.getSystemColor(SWT.COLOR_RED));
- gc.fillPath(path);
- path.dispose();
-
- Point point = gc.stringExtent(new Integer(nextNumber).toString());
- int textWidth = point.x;
- int textHeight = point.y;
-
- // draw the number
- gc.drawString(new Integer(nextNumber).toString(),
- (width-textWidth)/2, (height-textHeight)/2, true);
-
- // draw the rotating arm
- Transform transform = new Transform(device);
- transform.translate(width/2, height/2);
- transform.rotate(angle);
- gc.setTransform(transform);
- gc.setForeground(device.getSystemColor(SWT.COLOR_RED));
- gc.drawLine(0, 0, diameter/2, 0);
- transform.dispose();
-
- font.dispose();
- }
- }
-
- /**
- * Returns the name of a valid font for the resident platform.
- *
- * @param index
- * index is used to determine the appropriate font face
- */
- static String getPlatformFontFace(int index) {
- if (SWT.getPlatform() == "win32") {
- return new String[] { "Courier", "Impact" }[index];
- } else if (SWT.getPlatform() == "motif") {
- return new String[] { "Courier", "URW Gothic L" }[index];
- } else if (SWT.getPlatform() == "gtk") {
- return new String[] { "Courier", "Baekmuk Headline" }[index];
- } else if (SWT.getPlatform() == "carbon") {
- return new String[] { "Courier", "Impact" }[index];
- } else { // photon, etc ...
- return new String[] { "Courier", "Verdana" }[index];
- }
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CurvesSWTTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CurvesSWTTab.java
deleted file mode 100644
index 156e7aa93b..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CurvesSWTTab.java
+++ /dev/null
@@ -1,389 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This tab presents cubic and quadratic curves that can be drawn. As a
- * demonstration, cubic and quadratic curves are used to spell out "SWT".
- * The user may reposition the cubic and quadratic handles.
- */
-public class CurvesSWTTab extends GraphicsTab {
- /** These rectangles represent the handles on the curves. */
- private Rectangle sRect1, sRect2, wRect1, wRect2, tTopRect1, tTopRect2,
- tBottomRect1, tBottomRect2;
-
- /** These values represent the positions of the curves. */
- private float sXPos, sYPos, wXPos, wYPos, topTXPos, topTYPos,
- botTXPos, botTYPos;
-
- /** These values represent the x and y displacement of each handle. */
- private float sDiffX1, sDiffY1, sDiffX2, sDiffY2;
- private float wDiffX1, wDiffY1, wDiffX2, wDiffY2;
- private float tTopDiffX1, tTopDiffY1, tTopDiffX2, tTopDiffY2;
- private float tBotDiffX1, tBotDiffY1, tBotDiffX2, tBotDiffY2;
-
- /** These are flags that indicate whether or not a handle has been moved. */
- private boolean sLeftPtMoved, sRightPtMoved, wPt1Moved, wPt2Moved,
- tTopPt1Moved, tTopPt2Moved, tBotPt1Moved, tBotPt2Moved;
-
- private MouseMoveListener mouseMoveListener;
- private MouseListener mouseListener;
- private Cursor cursor;
-
- /** true if hovering over a handle, false otherwise */
- private boolean hovering = false;
-
- /** true if left mouse button is held down, false otherwise */
- private boolean mouseDown = false;
-
-
-public CurvesSWTTab(GraphicsExample example) {
- super(example);
- sRect1 = new Rectangle(-75, 50, 5, 5);
- sRect2 = new Rectangle(75, 100, 5, 5);
- sDiffX1 = sDiffY1 = 0;
- sDiffX2 = sDiffY2 = 0;
- wRect1 = new Rectangle(80, 300, 5, 5);
- wRect2 = new Rectangle(120, 300, 5, 5);
- wDiffX1 = wDiffY1 = wDiffX2 = wDiffY2 = 0;
- tTopRect1 = new Rectangle(33, -20, 5, 5);
- tTopRect2 = new Rectangle(66, 20, 5, 5);
- tTopDiffX1 = tTopDiffY1 = tTopDiffX2 = tTopDiffY2 = 0;
- tBottomRect1 = new Rectangle(-33, 50, 5, 5);
- tBottomRect2 = new Rectangle(33, 100, 5, 5);
- tBotDiffX1 = tBotDiffY1 = tBotDiffX2 = tBotDiffY2 = 0;
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Curves"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("SWT"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("CurvesSWTDescription"); //$NON-NLS-1$
-}
-
-public boolean getDoubleBuffered() {
- return true;
-}
-
-public void dispose() {
- if (mouseListener != null)
- example.canvas.removeMouseListener(mouseListener);
-
- if (mouseMoveListener != null)
- example.canvas.removeMouseMoveListener(mouseMoveListener);
-
- if (cursor != null) {
- cursor.dispose();
- cursor = null;
- }
-}
-
- /**
- * This helper method determines whether or not the cursor is positioned
- * over a handle.
- *
- * @param e
- * A MouseEvent
- * @return true if cursor is positioned over a handle; false otherwise
- */
-private boolean isHovering(MouseEvent e) {
- Rectangle r1 = new Rectangle(sRect1.x + (int)sXPos - 1, sRect1.y + (int)sYPos - 1, sRect1.width+2, sRect1.height+2);
- Rectangle r2 = new Rectangle(sRect2.x + (int)sXPos - 1, sRect2.y + (int)sYPos - 1, sRect2.width+2, sRect2.height+2);
- Rectangle w1 = new Rectangle(wRect1.x + (int)wXPos - 1, wRect1.y + (int)wYPos - 1, wRect1.width+2, wRect1.height+2);
- Rectangle w2 = new Rectangle(wRect2.x + (int)wXPos - 1, wRect2.y + (int)wYPos - 1, wRect2.width+2, wRect2.height+2);
- Rectangle tTop1 = new Rectangle(tTopRect1.x + (int)topTXPos - 1, tTopRect1.y + (int)topTYPos - 1, tTopRect1.width+2, tTopRect1.height+2);
- Rectangle tTop2 = new Rectangle(tTopRect2.x + (int)topTXPos - 1, tTopRect2.y + (int)topTYPos - 1, tTopRect2.width+2, tTopRect2.height+2);
- Rectangle tBot1 = new Rectangle(tBottomRect1.x + (int)botTXPos - 1, tBottomRect1.y + (int)botTYPos - 1, tBottomRect1.width+2, tBottomRect1.height+2);
- Rectangle tBot2 = new Rectangle(tBottomRect2.x + (int)botTXPos - 1, tBottomRect2.y + (int)botTYPos - 1, tBottomRect2.width+2, tBottomRect2.height+2);
-
- return ( r1.contains(e.x, e.y) || r2.contains(e.x, e.y)
- || w1.contains(e.x, e.y) || w2.contains(e.x, e.y)
- || tTop1.contains(e.x, e.y) || tTop2.contains(e.x, e.y)
- || tBot1.contains(e.x, e.y) || tBot2.contains(e.x, e.y) );
-}
-/**
- * Creates the widgets used to control the drawing.
- */
-public void createControlPanel(Composite parent) {
- if (cursor == null) {
- cursor = new Cursor(parent.getDisplay(), SWT.CURSOR_HAND);
- }
-
- mouseMoveListener = new MouseMoveListener() {
-
- public void mouseMove(MouseEvent e) {
- if (hovering && mouseDown) {
- example.canvas.setCursor(cursor);
- } else if (isHovering(e)) {
- example.canvas.setCursor(cursor);
- hovering = true;
- } else {
- example.canvas.setCursor(null);
- hovering = false;
- }
-
- if (sLeftPtMoved) {
- sDiffX1 = sDiffX1 + e.x - (int)sXPos - sRect1.x;
- sDiffY1 = sDiffY1 + e.y - (int)sYPos - sRect1.y;
- sRect1.x = e.x - (int)sXPos;
- sRect1.y = e.y - (int)sYPos;
- } else if (sRightPtMoved) {
- sDiffX2 = sDiffX2 + e.x - (int)sXPos - sRect2.x;
- sDiffY2 = sDiffY2 + e.y - (int)sYPos - sRect2.y;
- sRect2.x = e.x - (int)sXPos;
- sRect2.y = e.y - (int)sYPos;
- } else if (wPt1Moved) {
- wDiffX1 = wDiffX1 + e.x - (int)wXPos - wRect1.x;
- wDiffY1 = wDiffY1 + e.y - (int)wYPos - wRect1.y;
- wRect1.x = e.x - (int)wXPos;
- wRect1.y = e.y - (int)wYPos;
- } else if (wPt2Moved) {
- wDiffX2 = wDiffX2 + e.x - (int)wXPos - wRect2.x;
- wDiffY2 = wDiffY2 + e.y - (int)wYPos - wRect2.y;
- wRect2.x = e.x - (int)wXPos;
- wRect2.y = e.y - (int)wYPos;
- } else if (tTopPt1Moved) {
- tTopDiffX1 = tTopDiffX1 + e.x - (int)topTXPos - tTopRect1.x;
- tTopDiffY1 = tTopDiffY1 + e.y - (int)topTYPos - tTopRect1.y;
- tTopRect1.x = e.x - (int)topTXPos;
- tTopRect1.y = e.y - (int)topTYPos;
- } else if (tTopPt2Moved) {
- tTopDiffX2 = tTopDiffX2 + e.x - (int)topTXPos - tTopRect2.x;
- tTopDiffY2 = tTopDiffY2 + e.y - (int)topTYPos - tTopRect2.y;
- tTopRect2.x = e.x - (int)topTXPos;
- tTopRect2.y = e.y - (int)topTYPos;
- } else if (tBotPt1Moved) {
- tBotDiffX1 = tBotDiffX1 + e.x - (int)botTXPos - tBottomRect1.x;
- tBotDiffY1 = tBotDiffY1 + e.y - (int)botTYPos - tBottomRect1.y;
- tBottomRect1.x = e.x - (int)botTXPos;
- tBottomRect1.y = e.y - (int)botTYPos;
- } else if (tBotPt2Moved) {
- tBotDiffX2 = tBotDiffX2 + e.x - (int)botTXPos - tBottomRect2.x;
- tBotDiffY2 = tBotDiffY2 + e.y - (int)botTYPos - tBottomRect2.y;
- tBottomRect2.x = e.x - (int)botTXPos;
- tBottomRect2.y = e.y - (int)botTYPos;
- }
- example.redraw();
- }
- };
-
- mouseListener = new MouseListener() {
-
- public void mouseDoubleClick(MouseEvent e) {}
-
- /**
- * Sent when a mouse button is pressed.
- *
- * @param e an event containing information about the mouse button press
- */
- public void mouseDown(MouseEvent e) {
- Rectangle r1 = new Rectangle(sRect1.x + (int)sXPos - 1, sRect1.y + (int)sYPos - 1, sRect1.width+2, sRect1.height+2);
- Rectangle r2 = new Rectangle(sRect2.x + (int)sXPos - 1, sRect2.y + (int)sYPos - 1, sRect2.width+2, sRect2.height+2);
- Rectangle w1 = new Rectangle(wRect1.x + (int)wXPos - 1, wRect1.y + (int)wYPos - 1, wRect1.width+2, wRect1.height+2);
- Rectangle w2 = new Rectangle(wRect2.x + (int)wXPos - 1, wRect2.y + (int)wYPos - 1, wRect2.width+2, wRect2.height+2);
- Rectangle tTop1 = new Rectangle(tTopRect1.x + (int)topTXPos - 1, tTopRect1.y + (int)topTYPos - 1, tTopRect1.width+2, tTopRect1.height+2);
- Rectangle tTop2 = new Rectangle(tTopRect2.x + (int)topTXPos - 1, tTopRect2.y + (int)topTYPos - 1, tTopRect2.width+2, tTopRect2.height+2);
- Rectangle tBot1 = new Rectangle(tBottomRect1.x + (int)botTXPos - 1, tBottomRect1.y + (int)botTYPos - 1, tBottomRect1.width+2, tBottomRect1.height+2);
- Rectangle tBot2 = new Rectangle(tBottomRect2.x + (int)botTXPos - 1, tBottomRect2.y + (int)botTYPos - 1, tBottomRect2.width+2, tBottomRect2.height+2);
-
- if (r1.contains(e.x, e.y)) {
- sLeftPtMoved = true;
- mouseDown = true;
- } else if (r2.contains(e.x, e.y)) {
- sRightPtMoved = true;
- mouseDown = true;
- } else if (w1.contains(e.x, e.y)) {
- wPt1Moved = true;
- mouseDown = true;
- } else if (w2.contains(e.x, e.y)) {
- wPt2Moved = true;
- mouseDown = true;
- } else if (tTop1.contains(e.x, e.y)) {
- tTopPt1Moved = true;
- mouseDown = true;
- } else if (tTop2.contains(e.x, e.y)) {
- tTopPt2Moved = true;
- mouseDown = true;
- } else if (tBot1.contains(e.x, e.y)) {
- tBotPt1Moved = true;
- mouseDown = true;
- } else if (tBot2.contains(e.x, e.y)) {
- tBotPt2Moved = true;
- mouseDown = true;
- }
- }
-
- /**
- * Sent when a mouse button is released.
- *
- * @param e an event containing information about the mouse button release
- */
- public void mouseUp(MouseEvent e) {
- mouseDown = false;
- if (isHovering(e)) {
- example.canvas.setCursor(cursor);
- } else {
- example.canvas.setCursor(null);
- }
- if (sLeftPtMoved)
- sLeftPtMoved = false;
- if (sRightPtMoved)
- sRightPtMoved = false;
- if (wPt1Moved)
- wPt1Moved = false;
- if (wPt2Moved)
- wPt2Moved = false;
- if (tTopPt1Moved)
- tTopPt1Moved = false;
- if (tTopPt2Moved)
- tTopPt2Moved = false;
- if (tBotPt1Moved)
- tBotPt1Moved = false;
- if (tBotPt2Moved)
- tBotPt2Moved = false;
-
- example.redraw();
- }
- };
- example.canvas.addMouseMoveListener(mouseMoveListener);
- example.canvas.addMouseListener(mouseListener);
-}
-
-public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- Font font = new Font(device, getPlatformFont(), 16, SWT.ITALIC);
- gc.setFont(font);
- gc.setLineWidth(2);
-
- Transform transform;
-
- // ----- letter s -----
- sXPos = 4*width/16;
- sYPos = (height-150)/2;
-
- transform = new Transform(device);
- transform.translate(sXPos, sYPos);
- gc.setTransform(transform);
- transform.dispose();
-
- gc.setForeground(device.getSystemColor(SWT.COLOR_DARK_BLUE));
- gc.drawString(GraphicsExample.getResourceString("Cubic"), 0, 175, true);
-
- Path path = new Path(device);
- path.cubicTo(-200 + sDiffX1, 50 + sDiffY1, 200 + sDiffX2, 100 + sDiffY2, 0, 150);
- gc.drawPath(path);
- path.dispose();
-
- // draw the spline points
- gc.setTransform(null);
- gc.drawRectangle(sRect1.x + (int)sXPos, sRect1.y + (int)sYPos, sRect1.width, sRect1.height);
- gc.drawRectangle(sRect2.x + (int)sXPos, sRect2.y + (int)sYPos, sRect2.width, sRect2.height);
-
- // ----- letter w -----
- wXPos = 6*width/16;
- wYPos = (height-150)/2;
-
- transform = new Transform(device);
- transform.translate(wXPos, wYPos);
- gc.setTransform(transform);
- transform.dispose();
-
- gc.setForeground(device.getSystemColor(SWT.COLOR_GRAY));
- gc.drawString(GraphicsExample.getResourceString("Quadratic"), 0, -50, true);
- gc.drawString(GraphicsExample.getResourceString("Quadratic"), 110, -50, true);
-
- path = new Path(device);
- path.quadTo(100 + wDiffX1, 300 + wDiffY1, 100, 0);
- path.quadTo(100+wDiffX2, 300+wDiffY2, 200, 0);
- gc.drawPath(path);
- path.dispose();
-
- gc.setTransform(null);
- gc.drawRectangle(wRect1.x + (int)wXPos, wRect1.y + (int)wYPos, wRect1.width, wRect1.height);
- gc.drawRectangle(wRect2.x + (int)wXPos, wRect2.y + (int)wYPos, wRect2.width, wRect2.height);
-
-
- // ----- top of letter t -----
- topTXPos = 11*width/16;
- topTYPos = (height-150)/2;
-
- transform = new Transform(device);
- transform.translate(topTXPos, topTYPos);
- gc.setTransform(transform);
- transform.dispose();
-
- gc.setForeground(device.getSystemColor(SWT.COLOR_YELLOW));
- gc.drawString(GraphicsExample.getResourceString("Cubic"), 25, -50, true);
-
- path = new Path(device);
- path.cubicTo(33 + tTopDiffX1, -20 + tTopDiffY1, 66 + tTopDiffX2, 20 + tTopDiffY2, 100, 0);
- gc.drawPath(path);
- path.dispose();
-
- gc.setTransform(null);
- gc.drawRectangle(tTopRect1.x + (int)topTXPos, tTopRect1.y + (int)topTYPos, tTopRect1.width, tTopRect1.height);
- gc.drawRectangle(tTopRect2.x + (int)topTXPos, tTopRect2.y + (int)topTYPos, tTopRect2.width, tTopRect2.height);
-
-
- // ----- vertical bar of letter t -----
- botTXPos = 12*width/16;
- botTYPos = (height-150)/2;
-
- transform = new Transform(device);
- transform.translate(botTXPos, botTYPos);
- gc.setTransform(transform);
- transform.dispose();
-
- gc.setForeground(device.getSystemColor(SWT.COLOR_RED));
- gc.drawString(GraphicsExample.getResourceString("Cubic"), 0, 175, true);
-
- path = new Path(device);
- path.cubicTo(-33 + tBotDiffX1, 50 + tBotDiffY1, 33 + tBotDiffX2, 100 + tBotDiffY2, 0, 150);
- gc.drawPath(path);
- path.dispose();
-
- gc.setTransform(null);
- gc.drawRectangle(tBottomRect1.x + (int)botTXPos, tBottomRect1.y + (int)botTYPos, tBottomRect1.width, tBottomRect1.height);
- gc.drawRectangle(tBottomRect2.x + (int)botTXPos, tBottomRect2.y + (int)botTYPos, tBottomRect2.width, tBottomRect2.height);
-
- font.dispose();
-}
-
-/**
- * Returns the name of a valid font for the resident platform.
- */
-static String getPlatformFont() {
- if(SWT.getPlatform() == "win32") {
- return "Arial";
- } else if (SWT.getPlatform() == "motif") {
- return "Helvetica";
- } else if (SWT.getPlatform() == "gtk") {
- return "Baekmuk Batang";
- } else if (SWT.getPlatform() == "carbon") {
- return "Arial";
- } else { // photon, etc ...
- return "Verdana";
- }
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CurvesTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CurvesTab.java
deleted file mode 100644
index 9784154828..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CurvesTab.java
+++ /dev/null
@@ -1,300 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This tab presents cubic and quadratic curves that can be drawn.
- * The user may reposition the cubic and quadratic handles.
- */
-public class CurvesTab extends GraphicsTab {
- /** These rectangles represent the handles on the curves. */
- private Rectangle quadHndl, quadEndHndl, cubHndl1, cubHndl2, cubEndHndl;
-
- /** These values represent the positions of the curves. */
- private float quadXPos, quadYPos, cubXPos, cubYPos;
-
- /** These values represent the x and y displacement of each handle. */
- private float quadDiffX, quadDiffY, quadEndDiffX, quadEndDiffY;
- private float cubDiffX1, cubDiffY1, cubDiffX2, cubDiffY2, cubEndDiffX, cubEndDiffY;
-
- /** These are flags that indicate whether or not a handle has been moved. */
- private boolean quadPtMoved, quadEndPtMoved, cubPt1Moved, cubPt2Moved, cubEndPtMoved;
-
- private MouseMoveListener mouseMoveListener;
- private MouseListener mouseListener;
- private Cursor cursor;
-
- /** true if hovering over a handle, false otherwise */
- private boolean hovering = false;
-
- /** true if left mouse button is held down, false otherwise */
- private boolean mouseDown = false;
-
-
-public CurvesTab(GraphicsExample example) {
- super(example);
- quadHndl = new Rectangle(200, 150, 5, 5);
- quadEndHndl = new Rectangle(400, 0, 5, 5);
- quadDiffX = quadDiffY = quadEndDiffX = quadEndDiffY = 0;
- cubHndl1 = new Rectangle(133, -60, 5, 5);
- cubHndl2 = new Rectangle(266, 60, 5, 5);
- cubDiffX1 = cubDiffY1 = cubDiffX2 = cubDiffY2 = 0;
- cubEndHndl = new Rectangle(400, 0, 5, 5);
- cubEndDiffX = cubEndDiffY = 0;
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Curves"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("Curves"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("CurvesDescription"); //$NON-NLS-1$
-}
-
-public boolean getDoubleBuffered() {
- return true;
-}
-
-public void dispose() {
- if (mouseListener != null)
- example.canvas.removeMouseListener(mouseListener);
-
- if (mouseMoveListener != null)
- example.canvas.removeMouseMoveListener(mouseMoveListener);
-
- if (cursor != null) {
- cursor.dispose();
- cursor = null;
- }
-}
-
-/**
- * This helper method determines whether or not the cursor is positioned
- * over a handle.
- *
- * @param e
- * A MouseEvent
- * @return true if cursor is positioned over a handle; false otherwise
- */
-private boolean isHovering(MouseEvent e) {
- Rectangle quad = new Rectangle(quadHndl.x + (int)quadXPos - 1, quadHndl.y + (int)quadYPos - 1, quadHndl.width+2, quadHndl.height+2);
- Rectangle quadEnd = new Rectangle(quadEndHndl.x + (int)quadXPos - 1, quadEndHndl.y + (int)quadYPos - 1, quadEndHndl.width+2, quadEndHndl.height+2);
- Rectangle cub1 = new Rectangle(cubHndl1.x + (int)cubXPos - 1, cubHndl1.y + (int)cubYPos - 1, cubHndl1.width+2, cubHndl1.height+2);
- Rectangle cub2 = new Rectangle(cubHndl2.x + (int)cubXPos - 1, cubHndl2.y + (int)cubYPos - 1, cubHndl2.width+2, cubHndl2.height+2);
- Rectangle cubEnd = new Rectangle(cubEndHndl.x + (int)cubXPos - 1, cubEndHndl.y + (int)cubYPos - 1, cubEndHndl.width+2, cubEndHndl.height+2);
-
- return ( quad.contains(e.x, e.y) || quadEnd.contains(e.x, e.y)
- || cub1.contains(e.x, e.y) || cub2.contains(e.x, e.y)
- || cubEnd.contains(e.x, e.y));
-}
-/**
- * Creates the widgets used to control the drawing.
- */
-public void createControlPanel(Composite parent) {
- if (cursor == null) {
- cursor = new Cursor(parent.getDisplay(), SWT.CURSOR_HAND);
- }
-
- mouseMoveListener = new MouseMoveListener() {
-
- public void mouseMove(MouseEvent e) {
- if (hovering && mouseDown) {
- example.canvas.setCursor(cursor);
- } else if (isHovering(e)) {
- example.canvas.setCursor(cursor);
- hovering = true;
- } else {
- example.canvas.setCursor(null);
- hovering = false;
- }
-
- if (quadPtMoved) {
- quadDiffX = quadDiffX + e.x - (int)quadXPos - quadHndl.x;
- quadDiffY = quadDiffY + e.y - (int)quadYPos - quadHndl.y;
- quadHndl.x = e.x - (int)quadXPos;
- quadHndl.y = e.y - (int)quadYPos;
- } else if (quadEndPtMoved) {
- quadEndDiffX = quadEndDiffX + e.x - (int)quadXPos - quadEndHndl.x;
- quadEndDiffY = quadEndDiffY + e.y - (int)quadYPos - quadEndHndl.y;
- quadEndHndl.x = e.x - (int)quadXPos;
- quadEndHndl.y = e.y - (int)quadYPos;
- } else if (cubPt1Moved) {
- cubDiffX1 = cubDiffX1 + e.x - (int)cubXPos - cubHndl1.x;
- cubDiffY1 = cubDiffY1 + e.y - (int)cubYPos - cubHndl1.y;
- cubHndl1.x = e.x - (int)cubXPos;
- cubHndl1.y = e.y - (int)cubYPos;
- } else if (cubPt2Moved) {
- cubDiffX2 = cubDiffX2 + e.x - (int)cubXPos - cubHndl2.x;
- cubDiffY2 = cubDiffY2 + e.y - (int)cubYPos - cubHndl2.y;
- cubHndl2.x = e.x - (int)cubXPos;
- cubHndl2.y = e.y - (int)cubYPos;
- } else if (cubEndPtMoved) {
- cubEndDiffX = cubEndDiffX + e.x - (int)cubXPos - cubEndHndl.x;
- cubEndDiffY = cubEndDiffY + e.y - (int)cubYPos - cubEndHndl.y;
- cubEndHndl.x = e.x - (int)cubXPos;
- cubEndHndl.y = e.y - (int)cubYPos;
- }
- example.redraw();
- }
- };
-
- mouseListener = new MouseListener() {
-
- public void mouseDoubleClick(MouseEvent e) {}
-
- /**
- * Sent when a mouse button is pressed.
- *
- * @param e an event containing information about the mouse button press
- */
- public void mouseDown(MouseEvent e) {
- Rectangle quad = new Rectangle(quadHndl.x + (int)quadXPos - 1, quadHndl.y + (int)quadYPos - 1, quadHndl.width+2, quadHndl.height+2);
- Rectangle quadEnd = new Rectangle(quadEndHndl.x + (int)quadXPos - 1, quadEndHndl.y + (int)quadYPos - 1, quadEndHndl.width+2, quadEndHndl.height+2);
- Rectangle cub1 = new Rectangle(cubHndl1.x + (int)cubXPos - 1, cubHndl1.y + (int)cubYPos - 1, cubHndl1.width+2, cubHndl1.height+2);
- Rectangle cub2 = new Rectangle(cubHndl2.x + (int)cubXPos - 1, cubHndl2.y + (int)cubYPos - 1, cubHndl2.width+2, cubHndl2.height+2);
- Rectangle cubEnd = new Rectangle(cubEndHndl.x + (int)cubXPos - 1, cubEndHndl.y + (int)cubYPos - 1, cubEndHndl.width+2, cubEndHndl.height+2);
-
- if (quad.contains(e.x, e.y)) {
- quadPtMoved = true;
- mouseDown = true;
- } else if (quadEnd.contains(e.x, e.y)) {
- quadEndPtMoved = true;
- mouseDown = true;
- } else if (cub1.contains(e.x, e.y)) {
- cubPt1Moved = true;
- mouseDown = true;
- } else if (cub2.contains(e.x, e.y)) {
- cubPt2Moved = true;
- mouseDown = true;
- } else if (cubEnd.contains(e.x, e.y)) {
- cubEndPtMoved = true;
- mouseDown = true;
- }
- }
-
- /**
- * Sent when a mouse button is released.
- *
- * @param e an event containing information about the mouse button release
- */
- public void mouseUp(MouseEvent e) {
- mouseDown = false;
- if (isHovering(e)) {
- example.canvas.setCursor(cursor);
- } else {
- example.canvas.setCursor(null);
- }
-
- if (quadPtMoved)
- quadPtMoved = false;
- if (quadEndPtMoved)
- quadEndPtMoved = false;
- if (cubPt1Moved)
- cubPt1Moved = false;
- if (cubPt2Moved)
- cubPt2Moved = false;
- if (cubEndPtMoved)
- cubEndPtMoved = false;
-
- example.redraw();
- }
- };
- example.canvas.addMouseMoveListener(mouseMoveListener);
- example.canvas.addMouseListener(mouseListener);
-}
-
-public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- Font font = new Font(device, getPlatformFont(), 16, SWT.ITALIC);
- gc.setFont(font);
- gc.setLineWidth(5);
-
- Transform transform;
-
- // ----- cubic curve -----
- cubXPos = width/5;
- cubYPos = height/3;
-
- transform = new Transform(device);
- transform.translate(cubXPos, cubYPos);
- gc.setTransform(transform);
- transform.dispose();
-
- gc.setForeground(device.getSystemColor(SWT.COLOR_RED));
- gc.drawString(GraphicsExample.getResourceString("Cubic"), 25, -70, true);
-
- Path path = new Path(device);
- path.cubicTo(133 + cubDiffX1, -60 + cubDiffY1, 266 + cubDiffX2, 60 + cubDiffY2, 400 + cubEndDiffX, 0 + cubEndDiffY);
- gc.drawPath(path);
- path.dispose();
-
- gc.setTransform(null);
- gc.setForeground(device.getSystemColor(SWT.COLOR_DARK_BLUE));
- gc.drawRectangle(cubHndl1.x + (int)cubXPos, cubHndl1.y + (int)cubYPos, cubHndl1.width, cubHndl1.height);
- gc.drawRectangle(cubHndl2.x + (int)cubXPos, cubHndl2.y + (int)cubYPos, cubHndl2.width, cubHndl2.height);
- gc.drawRectangle(cubEndHndl.x + (int)cubXPos, cubEndHndl.y + (int)cubYPos, cubEndHndl.width, cubEndHndl.height);
-
- // ----- quadratic curve -----
- quadXPos = width/5;
- quadYPos = 2*height/3;
-
- transform = new Transform(device);
- transform.translate(quadXPos, quadYPos);
- gc.setTransform(transform);
- transform.dispose();
-
- gc.setForeground(device.getSystemColor(SWT.COLOR_GREEN));
- gc.drawString(GraphicsExample.getResourceString("Quadratic"), 0, -50, true);
-
- path = new Path(device);
- path.quadTo(200 + quadDiffX, 150 + quadDiffY, 400 + quadEndDiffX, 0 + quadEndDiffY);
- gc.drawPath(path);
- path.dispose();
-
- gc.setTransform(null);
- gc.setForeground(device.getSystemColor(SWT.COLOR_GRAY));
- gc.drawRectangle(quadHndl.x + (int)quadXPos, quadHndl.y + (int)quadYPos, quadHndl.width, quadHndl.height);
- gc.drawRectangle(quadEndHndl.x + (int)quadXPos, quadEndHndl.y + (int)quadYPos, quadEndHndl.width, quadEndHndl.height);
-
- font.dispose();
-}
-
-/**
- * Returns the name of a valid font for the resident platform.
- */
-static String getPlatformFont() {
- if(SWT.getPlatform() == "win32") {
- return "Arial";
- } else if (SWT.getPlatform() == "motif") {
- return "Helvetica";
- } else if (SWT.getPlatform() == "gtk") {
- return "Baekmuk Batang";
- } else if (SWT.getPlatform() == "carbon") {
- return "Arial";
- } else { // photon, etc ...
- return "Verdana";
- }
-}
-
-}
-
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CustomAlphaTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CustomAlphaTab.java
deleted file mode 100644
index 386fc5a896..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CustomAlphaTab.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This tab demonstrates the use of alpha blending. It allows a user to specify
- * a custom alpha value.
- */
-public class CustomAlphaTab extends AnimatedGraphicsTab {
-
- private Spinner alphaSpinner;
- private Button colorButton;
- private GraphicsBackground background;
- private Menu menu;
- private int angle;
-
-public CustomAlphaTab(GraphicsExample example) {
- super(example);
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Alpha"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("CustomAlpha"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("CustomAlphaDescription"); //$NON-NLS-1$
-}
-
-public void dispose() {
- if (menu != null) {
- menu.dispose();
- menu = null;
- }
-}
-
-/**
- * Creates the widgets used to control the drawing.
- */
-public void createControlPanel(Composite parent) {
- super.createControlPanel(parent);
-
- // create drop down combo for choosing clipping
- Composite comp;
-
- // create spinner for line width
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout(2, false));
- new Label(comp, SWT.CENTER).setText(GraphicsExample
- .getResourceString("Alpha")); //$NON-NLS-1$
- alphaSpinner = new Spinner(comp, SWT.BORDER | SWT.WRAP);
- alphaSpinner.setMinimum(0);
- alphaSpinner.setMaximum(255);
- alphaSpinner.setSelection(127);
- alphaSpinner.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- example.redraw();
- }
- });
-
- // color menu
- ColorMenu cm = new ColorMenu();
- cm.setPatternItems(example.checkAdvancedGraphics());
- menu = cm.createMenu(parent.getParent(), new ColorListener() {
- public void setColor(GraphicsBackground gb) {
- background = gb;
- colorButton.setImage(gb.getThumbNail());
- example.redraw();
- }
- });
-
- // initialize the background to the 5th item in the menu (blue)
- background = (GraphicsBackground)menu.getItem(4).getData();
-
- // color button
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout(2, false));
-
- colorButton = new Button(comp, SWT.PUSH);
- colorButton.setText(GraphicsExample
- .getResourceString("Color")); //$NON-NLS-1$
- colorButton.setImage(background.getThumbNail());
- colorButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- final Button button = (Button) event.widget;
- final Composite parent = button.getParent();
- Rectangle bounds = button.getBounds();
- Point point = parent.toDisplay(new Point(bounds.x, bounds.y));
- menu.setLocation(point.x, point.y + bounds.height);
- menu.setVisible(true);
- }
- });
-}
-
-public void next(int width, int height) {
-
- angle = (angle+1)%360;
-}
-
-public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- Pattern pattern = null;
- if (background.getBgColor1() != null) {
- gc.setBackground(background.getBgColor1());
- } else if (background.getBgImage() != null) {
- pattern = new Pattern(device, background.getBgImage());
- gc.setBackgroundPattern(pattern);
- }
-
- gc.setAntialias(SWT.ON);
- gc.setAlpha(alphaSpinner.getSelection());
-
- // rotate on center
- Transform transform = new Transform(device);
- transform.translate(width/2, height/2);
- transform.rotate(-angle);
- transform.translate(-width/2, -height/2);
- gc.setTransform(transform);
- transform.dispose();
-
- // choose the smallest between height and width
- int diameter = (height < width) ? height : width;
-
- Path path = new Path(device);
- path.addArc((width-diameter/5)/2, (height-diameter/5)/2, diameter/5, diameter/5, 0, 360);
- path.addArc(5*(width-diameter/8)/12, 4*(height-diameter/8)/12, diameter/8, diameter/8, 0, 360);
- path.addArc(7*(width-diameter/8)/12, 8*(height-diameter/8)/12, diameter/8, diameter/8, 0, 360);
- path.addArc(6*(width-diameter/12)/12, 3*(height-diameter/12)/12, diameter/12, diameter/12, 0, 360);
- path.addArc(6*(width-diameter/12)/12, 9*(height-diameter/12)/12, diameter/12, diameter/12, 0, 360);
- path.addArc(11.5f*(width-diameter/18)/20, 5*(height-diameter/18)/18, diameter/18, diameter/18, 0, 360);
- path.addArc(8.5f*(width-diameter/18)/20, 13*(height-diameter/18)/18, diameter/18, diameter/18, 0, 360);
- path.addArc(62f*(width-diameter/25)/100, 32*(height-diameter/25)/100, diameter/25, diameter/25, 0, 360);
- path.addArc(39f*(width-diameter/25)/100, 67*(height-diameter/25)/100, diameter/25, diameter/25, 0, 360);
-
- gc.fillPath(path);
- path.dispose();
-
- if (pattern != null) pattern.dispose();
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CustomFontTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CustomFontTab.java
deleted file mode 100644
index ff8d283674..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/CustomFontTab.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import java.util.*;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This tab demonstrates various text fonts. It allows the user to specify font
- * parameters such as face, style and size.
- */
-public class CustomFontTab extends GraphicsTab {
-
- String text = GraphicsExample.getResourceString("SWT");
- GraphicsBackground fontForeground;
- Combo fontFaceCb, fontStyleCb;
- Spinner fontPointSpinner;
- Button colorButton;
- ArrayList fontNames;
- int [] styleValues;
- String [] fontStyles;
- Menu menu;
-
-public CustomFontTab(GraphicsExample example) {
- super(example);
-
- // create list of fonts for this platform
- FontData [] fontData = Display.getCurrent().getFontList(null, true);
- fontNames = new ArrayList();
- for (int i=0; i < fontData.length; i++) {
- // remove duplicates and sort
- String nextName = fontData[i].getName();
- if (!fontNames.contains(nextName)) {
- int j = 0;
- while(j < fontNames.size() && nextName.compareTo((String)fontNames.get(j)) > 0) {
- j++;
- }
- fontNames.add(j, nextName);
- }
- }
- fontStyles = new String [] {
- GraphicsExample.getResourceString("Regular"), //$NON-NLS-1$
- GraphicsExample.getResourceString("Italic"), //$NON-NLS-1$
- GraphicsExample.getResourceString("Bold"), //$NON-NLS-1$
- GraphicsExample.getResourceString("BoldItalic") //$NON-NLS-1$
- };
- styleValues = new int [] {SWT.NORMAL, SWT.ITALIC, SWT.BOLD, SWT.BOLD | SWT.ITALIC};
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Font"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("CustomFont"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("CustomFontDescription"); //$NON-NLS-1$
-}
-
-public void dispose() {
- if (menu != null) {
- menu.dispose();
- menu = null;
- }
-}
-
-public void createControlPanel(Composite parent) {
-
- Composite mainComp = new Composite(parent, SWT.NONE);
- mainComp.setLayout(new RowLayout());
-
- // create combo for font face
- Composite comp = new Composite(mainComp, SWT.NONE);
- comp.setLayout(new GridLayout(2, false));
-
- new Label(comp, SWT.LEFT).setText(GraphicsExample.getResourceString("FontFace")); //$NON-NLS-1$
- fontFaceCb = new Combo(comp, SWT.DROP_DOWN);
- for (int i=0; i < fontNames.size(); i++) {
- String name = (String)fontNames.get(i);
- fontFaceCb.add(name);
- }
- fontFaceCb.select(0);
- fontFaceCb.addListener(SWT.Selection, new Listener() {
- public void handleEvent (Event event) {
- example.redraw();
- }
- });
-
- // create combo for font style
- comp = new Composite(mainComp, SWT.NONE);
- comp.setLayout(new GridLayout(2, false));
-
- new Label(comp, SWT.LEFT).setText(GraphicsExample.getResourceString("FontStyle")); //$NON-NLS-1$
- fontStyleCb = new Combo(comp, SWT.DROP_DOWN);
- for (int i=0; i < fontStyles.length; i++) {
- fontStyleCb.add(fontStyles[i]);
- }
- fontStyleCb.select(0);
- fontStyleCb.addListener(SWT.Selection, new Listener() {
- public void handleEvent (Event event) {
- example.redraw();
- }
- });
-
- // create spinner for font size (points)
- comp = new Composite(mainComp, SWT.NONE);
- comp.setLayout(new GridLayout(2, false));
-
- new Label(comp, SWT.LEFT).setText(GraphicsExample.getResourceString("FontSize")); //$NON-NLS-1$
- fontPointSpinner = new Spinner(comp, SWT.BORDER | SWT.WRAP);
- fontPointSpinner.setMinimum(1);
- fontPointSpinner.setMaximum(1000);
- fontPointSpinner.setSelection(200);
- fontPointSpinner.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- example.redraw();
- }
- });
-
- ColorMenu cm = new ColorMenu();
- cm.setColorItems(true);
- cm.setPatternItems(example.checkAdvancedGraphics());
- menu = cm.createMenu(parent.getParent(), new ColorListener() {
- public void setColor(GraphicsBackground gb) {
- fontForeground = gb;
- colorButton.setImage(gb.getThumbNail());
- example.redraw();
- }
- });
-
- // initialize the background to the 2nd item in the menu (black)
- fontForeground = (GraphicsBackground)menu.getItem(1).getData();
-
- // create color button
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout());
-
- colorButton = new Button(comp, SWT.PUSH);
- colorButton.setText(GraphicsExample.getResourceString("Color")); //$NON-NLS-1$
- colorButton.setImage(fontForeground.getThumbNail());
- colorButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- final Button button = (Button) event.widget;
- final Composite parent = button.getParent();
- Rectangle bounds = button.getBounds();
- Point point = parent.toDisplay(new Point(bounds.x, bounds.y));
- menu.setLocation(point.x, point.y + bounds.height);
- menu.setVisible(true);
- }
- });
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.swt.examples.graphics.GraphicsTab#paint(org.eclipse.swt.graphics.GC, int, int)
- */
-public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- String fontFace = (String)fontNames.get(fontFaceCb.getSelectionIndex());
- int points = fontPointSpinner.getSelection();
- int style = styleValues[fontStyleCb.getSelectionIndex()];
-
- Font font = new Font(device, fontFace, points, style);
- gc.setFont(font);
- gc.setTextAntialias(SWT.ON);
-
- Point size = gc.stringExtent(text);
- int textWidth = size.x;
- int textHeight = size.y;
-
- Pattern pattern = null;
- if (fontForeground.getBgColor1() != null) {
- gc.setForeground(fontForeground.getBgColor1());
- } else if (fontForeground.getBgImage() != null) {
- pattern = new Pattern(device, fontForeground.getBgImage());
- gc.setForegroundPattern(pattern);
- }
-
- gc.drawString(text, (width-textWidth)/2, (height-textHeight)/2, true);
-
- font.dispose();
- if (pattern != null) pattern.dispose();
-}
-
-}
-
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/FontBounceTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/FontBounceTab.java
deleted file mode 100644
index f7418cb1a7..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/FontBounceTab.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-/**
- * This tab is an animated graphic. It presents the word SWT in different fonts
- * as it bounces around the screen.
- */
-public class FontBounceTab extends AnimatedGraphicsTab {
-
- float x, y;
- float incX = 10.0f; // units by which to move the word along X axis
- float incY = 5.0f; // units by which to move the word along Y axis
- int textWidth, textHeight; // width and height of the word SWT
- String text = GraphicsExample.getResourceString("SWT");
- int fontSize = 100;
- int fontFace = 0;
- int foreGrdColor, fillColor; // font colors
- int fontStyle; // represents various style attributes applicable to a Font
-
-public FontBounceTab(GraphicsExample example) {
- super(example);
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Font"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("Bounce"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("FontBounceDescription"); //$NON-NLS-1$
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.swt.examples.graphics.AnimatedGraphicsTab#next(int, int)
- */
-public void next(int width, int height) {
- x += incX;
- y += incY;
- float random = (float)Math.random();
-
- // collision with right side of screen
- if (x + textWidth > width) {
- x = width - textWidth;
- incX = random * -width / 16 - 1;
- fontFace = 0;
- fontSize = 125;
- fillColor = SWT.COLOR_DARK_BLUE;
- foreGrdColor = SWT.COLOR_YELLOW;
- fontStyle = SWT.ITALIC;
- }
- // collision with left side of screen
- if (x < 0) {
- x = 0;
- incX = random * width / 16 + 1;
- fontFace = 1;
- fontSize = 80;
- fillColor = SWT.COLOR_DARK_MAGENTA;
- foreGrdColor = SWT.COLOR_CYAN;
- fontStyle = SWT.NONE;
- }
- // collision with bottom side of screen
- if (y + textHeight > height) {
- y = (height - textHeight)- 2;
- incY = random * -height / 16 - 1;
- fontFace = 2;
- fontSize = 100;
- fillColor = SWT.COLOR_YELLOW;
- foreGrdColor = SWT.COLOR_BLACK;
- fontStyle = SWT.BOLD;
- }
- // collision with top side of screen
- if (y < 0) {
- y = 0;
- incY = random * height / 16 + 1;
- fontFace = 3;
- fontSize = 120;
- fillColor = SWT.COLOR_GREEN;
- foreGrdColor = SWT.COLOR_GRAY;
- fontStyle = SWT.NONE;
- }
-}
-
-
-/* (non-Javadoc)
- * @see org.eclipse.swt.examples.graphics.GraphicsTab#paint(org.eclipse.swt.graphics.GC, int, int)
- */
-public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- Font font = new Font(device, getPlatformFontFace(fontFace), fontSize, fontStyle);
- gc.setFont(font);
-
- Point size = gc.stringExtent(text);
- textWidth = size.x;
- textHeight = size.y;
-
- Path path = new Path(device);
- path.addString(text, x, y, font);
-
- gc.setForeground(device.getSystemColor(foreGrdColor));
- gc.setBackground(device.getSystemColor(fillColor));
-
- gc.fillPath(path);
- gc.drawPath(path);
- font.dispose();
- path.dispose();
-}
-
-/**
- * Returns the name of the font using the specified index.
- * This method takes into account the resident platform.
- *
- * @param index
- * The index of the font to be used
- */
-static String getPlatformFontFace(int index) {
- if(SWT.getPlatform() == "win32") {
- return new String [] {"Arial", "Impact", "Times", "Verdana"} [index];
- } else if (SWT.getPlatform() == "motif") {
- return new String [] {"URW Chancery L", "URW Gothic L", "Times", "qub"} [index];
- } else if (SWT.getPlatform() == "gtk") {
- return new String [] {"URW Chancery L", "Baekmuk Batang", "Baekmuk Headline", "KacsTitleL"} [index];
- } else if (SWT.getPlatform() == "carbon") {
- return new String [] {"Arial", "Impact", "Times", "Verdana"} [index];
- } else { // photon, etc ...
- return new String [] {"Arial", "Impact", "Times", "Verdana"} [index];
- }
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GradientDialog.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GradientDialog.java
deleted file mode 100644
index af8a685590..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GradientDialog.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import java.util.*;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This dialog is used for prompting the user to select two colors for the
- * creation of a gradient.
- */
-public class GradientDialog extends Dialog {
-
- Canvas canvas;
-
- Button colorButton1, colorButton2; // color buttons
-
- Button okButton, cancelButton;
-
- Menu menu1, menu2;
-
- RGB rgb1, rgb2; // first and second color used in gradient
- int returnVal; // value to be returned by open(), set to SWT.OK
- // if the ok button has been pressed
- ArrayList resources;
-
- public GradientDialog(Shell parent) {
- this (parent, SWT.PRIMARY_MODAL);
- }
-
- public GradientDialog(Shell parent, int style) {
- super(parent, style);
- rgb1 = rgb2 = null;
- returnVal = SWT.CANCEL;
- resources = new ArrayList();
- }
-
- /**
- * Sets up the dialog and opens it.
- * */
- public int open() {
- final Shell dialog = new Shell(getParent(), SWT.DIALOG_TRIM | SWT.RESIZE | getStyle());
- dialog.setText(GraphicsExample.getResourceString("Gradient")); //$NON-NLS-1$
-
- GridLayout gridLayout = new GridLayout();
- gridLayout.numColumns = 2;
- gridLayout.marginHeight = 10;
- gridLayout.marginWidth = 10;
- dialog.setLayout(gridLayout);
-
- // create the controls in the dialog
- createDialogControls(dialog);
-
- dialog.addListener(SWT.Close, new Listener() {
- public void handleEvent(Event event) {
- for (int i = 0; i < resources.size(); i++) {
- Object obj = resources.get(i);
- if (obj != null && obj instanceof Resource) {
- ((Resource) obj).dispose();
- }
- }
- dialog.dispose();
- }
- });
-
- dialog.setDefaultButton (okButton);
- dialog.pack ();
- Rectangle rect = getParent().getMonitor().getBounds();
- Rectangle bounds = dialog.getBounds();
- dialog.setLocation(rect.x + (rect.width - bounds.width) / 2, rect.y + (rect.height - bounds.height) / 2);
- dialog.setMinimumSize(bounds.width, bounds.height);
-
- dialog.open ();
-
- Display display = getParent().getDisplay();
- while (!dialog.isDisposed()) {
- if (!display.readAndDispatch()) display.sleep();
- }
-
- if (menu1 != null) {
- menu1.dispose();
- menu1 = null;
- }
-
- if (menu2 != null) {
- menu2.dispose();
- menu2 = null;
- }
-
- return returnVal;
- }
-
- /**
- * Creates the controls of the dialog.
- * */
- public void createDialogControls(final Shell parent) {
- final Display display = parent.getDisplay();
-
- // message
- Label message = new Label(parent, SWT.NONE);
- message.setText(GraphicsExample.getResourceString("GradientDlgMsg"));
- GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- gridData.horizontalSpan = 2;
- message.setLayoutData(gridData);
-
- // default colors are white and black
- if (rgb1 == null || rgb2 == null) {
- rgb1 = display.getSystemColor(SWT.COLOR_WHITE).getRGB();
- rgb2 = display.getSystemColor(SWT.COLOR_BLACK).getRGB();
- }
-
- // canvas
- canvas = new Canvas(parent, SWT.NONE);
- gridData = new GridData(GridData.FILL_BOTH);
- gridData.widthHint = 200;
- gridData.heightHint = 100;
- canvas.setLayoutData(gridData);
- canvas.addListener (SWT.Paint, new Listener () {
- public void handleEvent (Event e) {
- Image preview = null;
- Point size = canvas.getSize();
- Color color1 = new Color(display, rgb1);
- Color color2 = new Color(display, rgb2);
- preview = GraphicsExample.createImage(display, color1, color2, size.x, size.y);
- if (preview != null) {
- e.gc.drawImage (preview, 0, 0);
- }
- preview.dispose();
- color1.dispose();
- color2.dispose();
- }
- });
-
- // composite used for both color buttons
- Composite colorButtonComp = new Composite(parent, SWT.NONE);
-
- // layout buttons
- RowLayout layout = new RowLayout();;
- layout.type = SWT.VERTICAL;
- layout.pack = false;
- colorButtonComp.setLayout(layout);
-
- // position composite
- gridData = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
- colorButtonComp.setLayoutData(gridData);
-
- ColorMenu colorMenu = new ColorMenu();
-
- // color controls: first color
- colorButton1 = new Button(colorButtonComp, SWT.PUSH);
- colorButton1.setText(GraphicsExample.getResourceString("GradientDlgButton1"));
- Color color1 = new Color(display, rgb1);
- Image img1 = GraphicsExample.createImage(display, color1);
- color1.dispose();
- colorButton1.setImage(img1);
- resources.add(img1);
- menu1 = colorMenu.createMenu(parent.getParent(), new ColorListener() {
- public void setColor(GraphicsBackground gb) {
- rgb1 = gb.getBgColor1().getRGB();
- colorButton1.setImage(gb.getThumbNail());
- if (canvas != null) canvas.redraw();
- }
- });
- colorButton1.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- final Button button = (Button) event.widget;
- final Composite parent = button.getParent();
- Rectangle bounds = button.getBounds();
- Point point = parent.toDisplay(new Point(bounds.x, bounds.y));
- menu1.setLocation(point.x, point.y + bounds.height);
- menu1.setVisible(true);
- }
- });
-
- // color controls: second color
- colorButton2 = new Button(colorButtonComp, SWT.PUSH);
- colorButton2.setText(GraphicsExample.getResourceString("GradientDlgButton2"));
- Color color2 = new Color(display, rgb2);
- Image img2 = GraphicsExample.createImage(display, color2);
- color2.dispose();
- colorButton2.setImage(img2);
- resources.add(img2);
- menu2 = colorMenu.createMenu(parent.getParent(), new ColorListener() {
- public void setColor(GraphicsBackground gb) {
- rgb2 = gb.getBgColor1().getRGB();
- colorButton2.setImage(gb.getThumbNail());
- if (canvas != null) canvas.redraw();
- }
- });
- colorButton2.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- final Button button = (Button) event.widget;
- final Composite parent = button.getParent();
- Rectangle bounds = button.getBounds();
- Point point = parent.toDisplay(new Point(bounds.x, bounds.y));
- menu2.setLocation(point.x, point.y + bounds.height);
- menu2.setVisible(true);
- }
- });
-
- // composite used for ok and cancel buttons
- Composite okCancelComp = new Composite(parent, SWT.NONE);
-
- // layout buttons
- RowLayout rowLayout = new RowLayout();
- rowLayout.pack = false;
- rowLayout.marginTop = 5;
- okCancelComp.setLayout(rowLayout);
-
- // position composite
- gridData = new GridData(GridData.HORIZONTAL_ALIGN_END);
- gridData.horizontalSpan = 2;
- okCancelComp.setLayoutData(gridData);
-
- // OK button
- okButton = new Button (okCancelComp, SWT.PUSH);
- okButton.setText("&OK");
- okButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- returnVal = SWT.OK;
- parent.close();
- }
- });
-
- // cancel button
- cancelButton = new Button (okCancelComp, SWT.PUSH);
- cancelButton.setText("&Cancel");
- cancelButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- parent.close();
- }
- });
- }
-
- /**
- * Returns the first RGB selected by the user.
- * */
- public RGB getFirstRGB() {
- return rgb1;
- }
-
- /**
- * Sets the first RGB.
- * @param rgb
- */
- public void setFirstRGB(RGB rgb) {
- this.rgb1 = rgb;
- }
-
- /**
- * Returns the second RGB selected by the user.
- * */
- public RGB getSecondRGB() {
- return rgb2;
- }
-
- /**
- * Sets the second RGB.
- * @param rgb
- */
- public void setSecondRGB(RGB rgb) {
- this.rgb2 = rgb;
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GradientTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GradientTab.java
deleted file mode 100644
index 33034bb3d4..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GradientTab.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import java.util.*;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This tab draws an image consisting of gradients of two colors.
- * */
-public class GradientTab extends GraphicsTab {
-
- ToolBar toolBar;
- ToolItem colorItem1, colorItem2;
- Menu menu1, menu2;
- GraphicsBackground colorGB1, colorGB2;
- ArrayList resources; // resources to be disposed when the dipose() method is invoked
-
-
-public GradientTab(GraphicsExample example) {
- super(example);
- resources = new ArrayList();
-}
-
-/**
- * Dispose resources created by this tab.
- * */
-public void dispose() {
- for (int i = 0; i < resources.size(); i++) {
- Object obj = resources.get(i);
- if (obj != null && obj instanceof Resource)
- ((Resource) obj).dispose();
- }
- resources = new ArrayList();
-
- if (menu1 != null) {
- menu1.dispose();
- menu1 = null;
- }
- if (menu2 != null) {
- menu2.dispose();
- menu2 = null;
- }
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Gradient"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("GradImage"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("GradientImageDescription"); //$NON-NLS-1$
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.swt.examples.graphics.GraphicsTab#createControlPanel(org.eclipse.swt.widgets.Composite)
- */
-public void createControlPanel(final Composite parent) {
- final Display display = parent.getDisplay();
-
- toolBar = new ToolBar(parent, SWT.FLAT);
-
- ColorMenu colorMenu = new ColorMenu();
-
- // menu for colorItem1
- menu1 = colorMenu.createMenu(parent.getParent(), new ColorListener() {
- public void setColor(GraphicsBackground gb) {
- colorGB1 = gb;
- colorItem1.setImage(gb.getThumbNail());
- example.redraw();
- }
- });
-
- // initialize the background to the 5th item in the menu (blue)
- colorGB1 = (GraphicsBackground)menu1.getItem(4).getData();
-
- // toolbar item for color1
- colorItem1 = new ToolItem(toolBar, SWT.PUSH);
- colorItem1.setText(GraphicsExample.getResourceString("GradientTabItem1"));
- colorItem1.setImage(colorGB1.getThumbNail());
- colorItem1.addListener(SWT.Selection, new Listener(){
- public void handleEvent(Event event) {
- 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));
- menu1.setLocation(point.x, point.y + toolItemBounds.height);
- menu1.setVisible(true);
- }
- });
-
- // menu for colorItem2
- menu2 = colorMenu.createMenu(parent.getParent(), new ColorListener() {
- public void setColor(GraphicsBackground gb) {
- colorGB2 = gb;
- colorItem2.setImage(gb.getThumbNail());
- example.redraw();
- }
- });
-
- // initialize the background to the 3rd item in the menu (red)
- colorGB2 = (GraphicsBackground)menu2.getItem(2).getData();
-
- // toolbar item for color2
- colorItem2 = new ToolItem(toolBar, SWT.PUSH);
- colorItem2.setText(GraphicsExample.getResourceString("GradientTabItem2"));
- colorItem2.setImage(colorGB2.getThumbNail());
- colorItem2.addListener(SWT.Selection, new Listener(){
- public void handleEvent(Event event) {
- 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));
- menu2.setLocation(point.x, point.y + toolItemBounds.height);
- menu2.setVisible(true);
- }
- });
-
- // toolbar item for swapping colors
- ToolItem swapItem = new ToolItem(toolBar, SWT.PUSH);
- swapItem.setText(GraphicsExample.getResourceString("SwapColors")); //$NON-NLS-1$
- swapItem.setImage(example.loadImage(display, "swap.gif"));
- swapItem.addListener(SWT.Selection, new Listener(){
- public void handleEvent(Event event) {
- GraphicsBackground tmp = colorGB1;
- colorGB1 = colorGB2;
- colorGB2 = tmp;
- colorItem1.setImage(colorGB1.getThumbNail());
- colorItem2.setImage(colorGB2.getThumbNail());
- example.redraw();
- }
- });
-}
-
-/**
- * This method draws the gradient patterns that make up the image. The image
- * consists of 4 rows, each consisting of 4 gradient patterns (total of 16).
- */
-public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- Image image = createImage(device, colorGB1.getBgColor1(), colorGB2.getBgColor1(), width, height);
- Pattern p = new Pattern(device, image);
- gc.setBackgroundPattern(p);
- gc.fillRectangle(0, 0, width, height);
-
- p.dispose();
- image.dispose();
-}
-
-
-/**
- * Creates and returns an image made up of gradient patterns. The image takes up
- * a quarter of the area of the total drawing surface.
- *
- * @param device
- * A Device
- * @param color1
- * A Color
- * @param color2
- * A Color
- * @param width
- * Width of the drawing surface
- * @param height
- * Height of the drawing surface
- */
-Image createImage(Device device, Color color1, Color color2, int width, int height) {
- Image image = new Image(device, width/2, height/2);
- GC gc = new GC(image);
- Rectangle rect = image.getBounds();
-
- Pattern pattern1 = new Pattern(device, rect.x, rect.y, rect.width/2f, rect.height/2f, color1, color2);
- gc.setBackgroundPattern(pattern1);
- Path path = new Path(device);
- path.addRectangle(0, 0, width/4f, height/4f);
- path.addRectangle(width/4f, height/4f, width/4f, height/4f);
- gc.fillPath(path);
- path.dispose();
-
- Pattern pattern2 = new Pattern(device, rect.width, 0, rect.width/2f, rect.height/2f, color1, color2);
- gc.setBackgroundPattern(pattern2);
- path = new Path(device);
- path.addRectangle(width/4f, 0, width/4f, height/4f);
- path.addRectangle(0, height/4f, width/4f, height/4f);
- gc.fillPath(path);
- path.dispose();
-
- gc.dispose();
- pattern1.dispose();
- pattern2.dispose();
- return image;
-}
-
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GraphicAntialiasTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GraphicAntialiasTab.java
deleted file mode 100644
index 482f700df5..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GraphicAntialiasTab.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This tab demonstrates antialiasing for graphics. Antialiasing is used for
- * smoothing jagged edges in graphics. This tab allows the user to see the
- * effects of different antialiasing values.
- */
-public class GraphicAntialiasTab extends GraphicsTab {
-
- Combo aliasCombo;
- int[] aliasValues = { SWT.OFF, SWT.DEFAULT, SWT.ON };
-
- Button colorButton;
- Menu menu;
- GraphicsBackground ovalColorGB;
-
-
-public GraphicAntialiasTab(GraphicsExample example) {
- super(example);
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Antialiasing"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("Graphics"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("AntialiasingGraphicsDesc"); //$NON-NLS-1$
-}
-
-public void dispose() {
- if (menu != null) {
- menu.dispose();
- menu = null;
- }
-}
-
-public void createControlPanel(Composite parent) {
-
- Composite comp;
-
- // create drop down combo for antialiasing
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout(2, false));
- new Label(comp, SWT.CENTER).setText(GraphicsExample
- .getResourceString("Antialiasing")); //$NON-NLS-1$
- aliasCombo = new Combo(comp, SWT.DROP_DOWN);
- aliasCombo.add("OFF");
- aliasCombo.add("DEFAULT");
- aliasCombo.add("ON");
- aliasCombo.select(0);
- aliasCombo.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- example.redraw();
- }
- });
-
- ColorMenu cm = new ColorMenu();
- cm.setColorItems(true);
- menu = cm.createMenu(parent.getParent(), new ColorListener() {
- public void setColor(GraphicsBackground gb) {
- ovalColorGB = gb;
- colorButton.setImage(gb.getThumbNail());
- example.redraw();
- }
- });
-
- // create color button
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout());
-
- // initialize the background to the 5th item in the menu (blue)
- ovalColorGB = (GraphicsBackground)menu.getItem(4).getData();
-
- // color button
- colorButton = new Button(comp, SWT.PUSH);
- colorButton.setText(GraphicsExample.getResourceString("Color")); //$NON-NLS-1$
- colorButton.setImage(ovalColorGB.getThumbNail());
- colorButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- final Button button = (Button) event.widget;
- final Composite parent = button.getParent();
- Rectangle bounds = button.getBounds();
- Point point = parent.toDisplay(new Point(bounds.x, bounds.y));
- menu.setLocation(point.x, point.y + bounds.height);
- menu.setVisible(true);
- }
- });
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.swt.examples.graphics.GraphicsTab#paint(org.eclipse.swt.graphics.GC, int, int)
- */
-public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- if (ovalColorGB != null && ovalColorGB.getBgColor1() != null)
- gc.setBackground(ovalColorGB.getBgColor1());
-
- gc.setAntialias(aliasValues[aliasCombo.getSelectionIndex()]);
-
- Path path = new Path(device);
- float offsetX = 2*width/3f, offsetY = height/3f;
- for(int i=0; i < 25; i++) {
- path.addArc(offsetX-(50*i), offsetY-(25*i), 50+(100*i), 25+(50*i), 0, 360);
- }
- gc.fillPath(path);
- path.dispose();
-}
-}
-
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GraphicsBackground.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GraphicsBackground.java
deleted file mode 100644
index f699fec320..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GraphicsBackground.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * This class is used for storing data relevant to a background.
- */
-public class GraphicsBackground {
-
- private Image bgImage;
- private Image thumbNail;
- private Color bgColor1;
- private Color bgColor2;
-
- public GraphicsBackground() {
- bgImage = null;
- thumbNail = null;
- bgColor1 = null;
- bgColor2 = null;
- }
-
- public Image getBgImage() {
- return bgImage;
- }
-
- public void setBgImage(Image bgImage) {
- this.bgImage = bgImage;
- }
-
- public Color getBgColor1() {
- return bgColor1;
- }
-
- public void setBgColor1(Color bgColor1) {
- this.bgColor1 = bgColor1;
- }
-
- public Color getBgColor2() {
- return bgColor2;
- }
-
- public void setBgColor2(Color bgColor2) {
- this.bgColor2 = bgColor2;
- }
-
- public Image getThumbNail() {
- return thumbNail;
- }
-
- public void setThumbNail(Image thumbNail) {
- this.thumbNail = thumbNail;
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GraphicsExample.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GraphicsExample.java
deleted file mode 100644
index 5a61878859..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GraphicsExample.java
+++ /dev/null
@@ -1,648 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.graphics;
-
-import java.io.*;
-import java.util.*;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This class is the main class of the graphics application. Various "tabs" are
- * created and made visible by this class.
- */
-public class GraphicsExample {
-
- Composite parent;
- GraphicsTab[] tabs; // tabs to be found in the application
- GraphicsTab tab; // the current tab
- GraphicsBackground background; // used to store information about the background
-
- ToolBar toolBar; // toolbar that contains backItem and dbItem
- Tree tabList; // tree structure of tabs
- Text tabDesc; // multi-line text widget that displays a tab description
- Sash hSash, vSash;
- Canvas canvas;
- Composite tabControlPanel;
- ToolItem backItem, dbItem; // background, double buffer items
- Menu backMenu; // background menu item
-
- ArrayList resources; // stores resources that will be disposed
- ArrayList tabs_in_order; // stores GraphicsTabs in the order that they appear in the tree
- boolean animate = true; // whether animation should happen
-
- static boolean advanceGraphics, advanceGraphicsInit;
-
- static final int MARGIN = 5;
- static final int SASH_SPACING = 1;
- static final int TIMER = 30;
- static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle("examples_graphics"); //$NON-NLS-1$
-
-/*
- * Default constructor is needed so that example launcher can create an instance.
- */
-public GraphicsExample() {
- super();
-}
-
-public GraphicsExample(final Composite parent) {
- this.parent = parent;
- resources = new ArrayList();
- createControls(parent);
- setTab(tab);
- startAnimationTimer();
-}
-
-boolean checkAdvancedGraphics() {
- if (advanceGraphicsInit) return advanceGraphics;
- advanceGraphicsInit = true;
- Display display = parent.getDisplay();
- try {
- Path path = new Path(display);
- path.dispose();
- } catch (SWTException e) {
- Shell shell = display.getActiveShell(), newShell = null;
- if (shell == null) shell = newShell = new Shell(display);
- MessageBox dialog = new MessageBox(shell, SWT.ICON_WARNING | SWT.OK);
- dialog.setText(RESOURCE_BUNDLE.getString("Warning")); //$NON-NLS-1$
- dialog.setMessage(RESOURCE_BUNDLE.getString("LibNotFound")); //$NON-NLS-1$
- dialog.open();
- if (newShell != null) newShell.dispose();
- return false;
- }
- return advanceGraphics = true;
-}
-
-void createControls(final Composite parent) {
- tabs = createTabs();
- createToolBar(parent);
- createTabList(parent);
- hSash = new Sash(parent, SWT.HORIZONTAL);
- createTabDesc(parent);
- vSash = new Sash(parent, SWT.VERTICAL);
- createCanvas(parent);
- createControlPanel(parent);
-
- FormData data;
- FormLayout layout = new FormLayout();
- parent.setLayout(layout);
-
- data = new FormData();
- data.left = new FormAttachment(0, MARGIN);
- data.top = new FormAttachment(0, MARGIN);
- data.right = new FormAttachment(100, -MARGIN);
- toolBar.setLayoutData(data);
-
- data = new FormData();
- data.left = new FormAttachment(0, MARGIN);
- data.top = new FormAttachment(toolBar, MARGIN);
- data.right = new FormAttachment(vSash, -SASH_SPACING);
- data.bottom = new FormAttachment(hSash, -SASH_SPACING);
- tabList.setLayoutData(data);
-
- data = new FormData();
- data.left = new FormAttachment(0, MARGIN);
- int offset = parent.getBounds().height - tabDesc.computeSize(SWT.DEFAULT, tabDesc.getLineHeight() * 10).y;
- data.top = new FormAttachment(null, offset);
- data.right = new FormAttachment(vSash, -SASH_SPACING);
- hSash.setLayoutData(data);
-
- data = new FormData();
- data.left = new FormAttachment(0, MARGIN);
- data.top = new FormAttachment(hSash, SASH_SPACING);
- data.right = new FormAttachment(vSash, -SASH_SPACING);
- data.bottom = new FormAttachment(100, -MARGIN);
- tabDesc.setLayoutData(data);
-
- data = new FormData();
- data.left = new FormAttachment(null, tabList.computeSize(SWT.DEFAULT, SWT.DEFAULT).x + 50);
- data.top = new FormAttachment(toolBar, MARGIN);
- data.bottom = new FormAttachment(100, -MARGIN);
- vSash.setLayoutData(data);
-
- data = new FormData();
- data.left = new FormAttachment(vSash, SASH_SPACING);
- data.top = new FormAttachment(toolBar, MARGIN);
- data.right = new FormAttachment(100, -MARGIN);
- data.bottom = new FormAttachment(tabControlPanel);
- canvas.setLayoutData(data);
-
- data = new FormData();
- data.left = new FormAttachment(vSash, SASH_SPACING);
- data.right = new FormAttachment(100, -MARGIN);
- data.bottom = new FormAttachment(100, -MARGIN);
- tabControlPanel.setLayoutData(data);
-
- vSash.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- Rectangle rect = hSash.getParent().getClientArea();
- event.x = Math.min (Math.max (event.x, 60), rect.width - 60);
- if (event.detail != SWT.DRAG) {
- FormData data = (FormData)vSash.getLayoutData();
- data.left.offset = event.x;
- parent.layout(true);
- animate = true;
- } else {
- animate = false;
- }
- }
- });
- hSash.addListener (SWT.Selection, new Listener () {
- public void handleEvent (Event event) {
- Rectangle rect = vSash.getParent().getClientArea();
- event.y = Math.min (Math.max (event.y, tabList.getLocation().y + 60), rect.height - 60);
- if (event.detail != SWT.DRAG) {
- FormData data = (FormData)hSash.getLayoutData();
- data.top.offset = event.y;
- parent.layout(true);
- }
- }
- });
-}
-
-void createCanvas(Composite parent) {
- int style = SWT.NO_BACKGROUND;
- if (dbItem.getSelection()) style |= SWT.DOUBLE_BUFFERED;
- canvas = new Canvas(parent, style);
- canvas.addListener(SWT.Paint, new Listener() {
- public void handleEvent(Event event) {
- GC gc = event.gc;
- Rectangle rect = canvas.getClientArea();
- Device device = gc.getDevice();
- Pattern pattern = null;
- if (background.getBgColor1() != null) {
- if (background.getBgColor2() != null) { // gradient
- pattern = new Pattern(device, 0, 0, rect.width,
- rect.height,
- background.getBgColor1(),
- background.getBgColor2());
- gc.setBackgroundPattern(pattern);
- } else { // solid color
- gc.setBackground(background.getBgColor1());
- }
- } else if (background.getBgImage() != null) { // image
- pattern = new Pattern(device, background.getBgImage());
- gc.setBackgroundPattern(pattern);
- }
- gc.fillRectangle(rect);
- GraphicsTab tab = getTab();
- if (tab != null) tab.paint(gc, rect.width, rect.height);
- if (pattern != null) pattern.dispose();
- }
- });
-}
-
-void recreateCanvas() {
- if (dbItem.getSelection() == ((canvas.getStyle() & SWT.DOUBLE_BUFFERED) != 0)) return;
- Object data = canvas.getLayoutData();
- if (canvas != null) canvas.dispose();
- createCanvas(parent);
- canvas.setLayoutData(data);
- parent.layout(true, true);
-}
-
-/**
- * Creates the control panel
- * @param parent
- */
-void createControlPanel(Composite parent) {
- Group group;
- tabControlPanel = group = new Group(parent, SWT.NONE);
- group.setText(getResourceString("Settings")); //$NON-NLS-1$
- tabControlPanel.setLayout(new RowLayout());
-}
-
-void createToolBar(final Composite parent) {
- final Display display = parent.getDisplay();
-
- toolBar = new ToolBar(parent, SWT.FLAT);
-
- ToolItem back = new ToolItem(toolBar, SWT.PUSH);
- back.setText(getResourceString("Back")); //$NON-NLS-1$
- back.setImage(loadImage(display, "back.gif")); //$NON-NLS-1$
-
- back.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- int index = tabs_in_order.indexOf(tab) - 1;
- if (index < 0)
- index = tabs_in_order.size() - 1;
- setTab((GraphicsTab)tabs_in_order.get(index));
- }
- });
-
- ToolItem next = new ToolItem(toolBar, SWT.PUSH);
- next.setText(getResourceString("Next")); //$NON-NLS-1$
- next.setImage(loadImage(display, "next.gif")); //$NON-NLS-1$
- next.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- int index = (tabs_in_order.indexOf(tab) + 1)%tabs_in_order.size();
- setTab((GraphicsTab)tabs_in_order.get(index));
- }
- });
-
- ColorMenu colorMenu = new ColorMenu();
-
- // setup items to be contained in the background menu
- colorMenu.setColorItems(true);
- colorMenu.setPatternItems(checkAdvancedGraphics());
- colorMenu.setGradientItems(checkAdvancedGraphics());
-
- // create the background menu
- backMenu = colorMenu.createMenu(parent, new ColorListener() {
- public void setColor(GraphicsBackground gb) {
- background = gb;
- backItem.setImage(gb.getThumbNail());
- if (canvas != null) canvas.redraw();
- }
- });
-
- // initialize the background to the first item in the menu
- background = (GraphicsBackground)backMenu.getItem(0).getData();
-
- // background tool item
- backItem = new ToolItem(toolBar, SWT.PUSH);
- backItem.setText(getResourceString("Background")); //$NON-NLS-1$
- backItem.setImage(background.getThumbNail());
- backItem.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- if (event.widget == backItem) {
- 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));
- backMenu.setLocation(point.x, point.y + toolItemBounds.height);
- backMenu.setVisible(true);
- }
- }
- });
-
- // double buffer tool item
- dbItem = new ToolItem(toolBar, SWT.CHECK);
- dbItem.setText(getResourceString("DoubleBuffer")); //$NON-NLS-1$
- dbItem.setImage(loadImage(display, "db.gif")); //$NON-NLS-1$
- dbItem.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- setDoubleBuffered(dbItem.getSelection());
- }
- });
-}
-
-/**
- * Creates and returns a thumbnail image.
- *
- * @param device
- * a device
- * @param name
- * filename of the image
- */
-static Image createThumbnail(Device device, String name) {
- Image image = new Image(device, name);
- Rectangle src = image.getBounds();
- Image result = null;
- if (src.width != 16 || src.height != 16) {
- result = new Image(device, 16, 16);
- GC gc = new GC(result);
- Rectangle dest = result.getBounds();
- gc.drawImage(image, src.x, src.y, src.width, src.height, dest.x, dest.y, dest.width, dest.height);
- gc.dispose();
- }
- if (result != null) {
- image.dispose();
- return result;
- }
- return image;
-}
-
-/**
- * Creates an image based on a gradient pattern made up of two colors.
- *
- * @param device - The Device
- * @param color1 - The first color used to create the image
- * @param color2 - The second color used to create the image
- *
- * */
-static Image createImage(Device device, Color color1, Color color2, int width, int height) {
- Image image = new Image(device, width, height);
- GC gc = new GC(image);
- Rectangle rect = image.getBounds();
- Pattern pattern = new Pattern(device, rect.x, rect.y, rect.width - 1,
- rect.height - 1, color1, color2);
- gc.setBackgroundPattern(pattern);
- gc.fillRectangle(rect);
- gc.drawRectangle(rect.x, rect.y, rect.width - 1, rect.height - 1);
- gc.dispose();
- pattern.dispose();
- return image;
-}
-
-/**
- * Creates an image based on the color provided and returns it.
- *
- * @param device - The Device
- * @param color - The color used to create the image
- *
- * */
-static Image createImage(Device device, Color color) {
- Image image = new Image(device, 16, 16);
- GC gc = new GC(image);
- gc.setBackground(color);
- Rectangle rect = image.getBounds();
- gc.fillRectangle(rect);
- if (color.equals(device.getSystemColor(SWT.COLOR_BLACK))) {
- gc.setForeground(device.getSystemColor(SWT.COLOR_WHITE));
- }
- gc.drawRectangle(rect.x, rect.y, rect.width - 1, rect.height - 1);
- gc.dispose();
- return image;
-}
-
-void createTabList(Composite parent) {
- tabList = new Tree(parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
- Arrays.sort(tabs, new Comparator() {
- public int compare(Object tab0, Object tab1) {
- return ((GraphicsTab)tab0).getText().compareTo(((GraphicsTab)tab1).getText());
- }
- });
- HashSet set = new HashSet();
- for (int i = 0; i < tabs.length; i++) {
- GraphicsTab tab = tabs[i];
- set.add(tab.getCategory());
- }
- String[] categories = new String[set.size()];
- set.toArray(categories);
- Arrays.sort(categories);
- for (int i = 0; i < categories.length; i++) {
- String text = categories[i];
- TreeItem item = new TreeItem(tabList, SWT.NONE);
- item.setText(text);
- }
- tabs_in_order = new ArrayList();
- TreeItem[] items = tabList.getItems();
- for (int i = 0; i < items.length; i++) {
- TreeItem item = items[i];
- for (int j = 0; j < tabs.length; j++) {
- GraphicsTab tab = tabs[j];
- if (item.getText().equals(tab.getCategory())) {
- TreeItem item1 = new TreeItem(item, SWT.NONE);
- item1.setText(tab.getText());
- item1.setData(tab);
- tabs_in_order.add(tab);
- }
- }
- }
- tabList.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- TreeItem item = (TreeItem)event.item;
- if (item != null) {
- GraphicsTab gt = (GraphicsTab)item.getData();
- if (gt == tab) return;
- setTab((GraphicsTab)item.getData());
- }
- }
- });
-}
-
-/**
- * Creates the multi-line text widget that will contain the tab description.
- * */
-void createTabDesc(Composite parent) {
- tabDesc = new Text(parent, SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL | SWT.WRAP | SWT.BORDER);
- tabDesc.setEditable(false);
- tabDesc.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
-}
-
-/**
- * Initializes the GraphicsTab instances that will be contained in GraphicsExample.
- * */
-GraphicsTab[] createTabs() {
- return new GraphicsTab[] {
- new LineTab(this),
- new StarPolyTab(this),
- tab = new IntroTab(this),
- new BlackHoleTab(this),
- new AlphaTab(this),
- new BallTab(this),
- new CountDownTab(this),
- new CurvesSWTTab(this),
- new CurvesTab(this),
- new CustomFontTab(this),
- new FontBounceTab(this),
- new GradientTab(this),
- new ImageTransformTab(this),
- new ShapesTab(this),
- new MazeTab(this),
- new RGBTab(this),
- new SpiralTab(this),
- new CardsTab(this),
- new LineCapTab(this),
- new InterpolationTab(this),
- new PathClippingTab(this),
- new PathClippingAnimTab(this),
- new LineStyleTab(this),
- new LineJoinTab(this),
- new RegionClippingTab(this),
- new CustomAlphaTab(this),
- new TextAntialiasTab(this),
- new GraphicAntialiasTab(this),
- new ImageFlipTab(this),
- new ImageScaleTab(this),
- new PathTab(this),
- };
-}
-
-/**
- * Disposes all resources created by the receiver.
- */
-public void dispose() {
- if (tabs != null) {
- for (int i = 0; i < tabs.length; i++) {
- GraphicsTab tab = tabs[i];
- tab.dispose();
- }
- }
- tabs = null;
- if (resources != null) {
- for (int i = 0; i < resources.size(); i++) {
- if (resources.get(i) instanceof Resource) {
- ((Resource)resources.get(i)).dispose();
- }
- }
- }
- resources = null;
-
- if (backMenu != null) {
- backMenu.dispose();
- backMenu = null;
- }
-}
-
-TreeItem findItemByData(TreeItem[] items, Object data) {
- for (int i = 0; i < items.length; i++) {
- TreeItem item = items[i];
- if (item.getData() == data) return item;
- item = findItemByData(item.getItems(), data);
- if (item != null) return item;
- }
- return null;
-}
-
-/**
- * Gets the current tab.
- */
-public GraphicsTab getTab() {
- return tab;
-}
-
-/**
- * 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 RESOURCE_BUNDLE.getString(key);
- } catch (MissingResourceException e) {
- return key;
- } catch (NullPointerException e) {
- return "!" + key + "!"; //$NON-NLS-1$ //$NON-NLS-2$
- }
-}
-
-static Image loadImage (Device device, Class clazz, String string) {
- InputStream stream = clazz.getResourceAsStream (string);
- if (stream == null) return null;
- Image image = null;
- try {
- image = new Image (device, stream);
- } catch (SWTException ex) {
- } finally {
- try {
- stream.close ();
- } catch (IOException ex) {}
- }
- return image;
-}
-
-Image loadImage(Device device, String name) {
- Image image = loadImage(device, GraphicsExample.class, name);
- if (image != null) resources.add(image);
- return image;
-}
-
-public Shell open(final Display display) {
- Shell shell = new Shell(display);
- shell.setText(getResourceString("GraphicsExample")); //$NON-NLS-1$
- final GraphicsExample example = new GraphicsExample(shell);
- shell.addListener(SWT.Close, new Listener() {
- public void handleEvent(Event event) {
- example.dispose();
- }
- });
- shell.open();
- return shell;
-}
-
-/**
- * Redraws the current tab.
- */
-public void redraw() {
- canvas.redraw();
-}
-
-/**
- * Sets wheter the canvas is double buffered or not.
- */
-public void setDoubleBuffered(boolean doubleBuffered) {
- dbItem.setSelection(doubleBuffered);
- recreateCanvas();
-}
-
-/**
- * Grabs input focus.
- */
-public void setFocus() {
- tabList.setFocus();
-}
-
-/**
- * Sets the current tab.
- */
-public void setTab(GraphicsTab tab) {
- Control[] children = tabControlPanel.getChildren();
- for (int i = 0; i < children.length; i++) {
- Control control = children[i];
- control.dispose();
- }
- if (this.tab != null) this.tab.dispose();
- this.tab = tab;
- if (tab != null) {
- setDoubleBuffered(tab.getDoubleBuffered());
- tab.createControlPanel(tabControlPanel);
- tabDesc.setText(tab.getDescription());
- } else {
- tabDesc.setText("");
- }
- FormData data = (FormData)tabControlPanel.getLayoutData();
- children = tabControlPanel.getChildren();
- if (children.length != 0) {
- data.top = null;
- } else {
- data.top = new FormAttachment(100, -MARGIN);
- }
- parent.layout(true, true);
- if (tab != null) {
- TreeItem[] selection = tabList.getSelection();
- if (selection.length == 0 || selection[0].getData() != tab) {
- TreeItem item = findItemByData(tabList.getItems(), tab);
- if (item != null) tabList.setSelection(new TreeItem[]{item});
- }
- }
- canvas.redraw();
-}
-
-/**
- * Starts the animation if the animate flag is set.
- */
-void startAnimationTimer() {
- final Display display = parent.getDisplay();
- display.timerExec(TIMER, new Runnable() {
- public void run() {
- if (canvas.isDisposed()) return;
- int timeout = TIMER;
- GraphicsTab tab = getTab();
- if (tab instanceof AnimatedGraphicsTab) {
- AnimatedGraphicsTab animTab = (AnimatedGraphicsTab) tab;
- if (animate && animTab.getAnimation()) {
- Rectangle rect = canvas.getClientArea();
- animTab.next(rect.width, rect.height);
- canvas.redraw();
- canvas.update();
- }
- timeout = animTab.getAnimationTime();
- }
- display.timerExec(timeout, this);
- }
- });
-}
-
-public static void main(String[] args) {
- Display display = new Display();
- Shell shell = new GraphicsExample().open(display);
- while (shell != null && !shell.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
- display.dispose();
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GraphicsTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GraphicsTab.java
deleted file mode 100644
index 422dadf8f5..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/GraphicsTab.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This class is the one used for creating a graphic. Override the paint()
- * method to create the drawing. To create an animated graphic, use the
- * AnimatedGraphicsTab class.
- */
-public abstract class GraphicsTab {
-
-GraphicsExample example;
-
-public GraphicsTab(GraphicsExample example) {
- this.example = example;
-}
-
-/**
- * Creates the widgets used to control the drawing.
- */
-public void createControlPanel(Composite parent) {
-}
-
-/**
- * Disposes resources created by the receiver.
- */
-public void dispose() {
-}
-
-/**
- * Answer the receiver's name.
- */
-public abstract String getText();
-
-/**
- * Answer the receiver's category.
- */
-public String getCategory() {
- return GraphicsExample.getResourceString("Misc"); //$NON-NLS-1$
-}
-
-/**
- * Answer the receiver's description.
- * */
-public String getDescription() {
- return "";
-}
-
-/**
- * Answer whether the receiver's drawing should be double bufferer.
- */
-public boolean getDoubleBuffered() {
- return false;
-}
-
-/**
- * Paint the receiver into the specified GC.
- */
-public void paint(GC gc, int width, int height) {
-}
-
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ImageFlipTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ImageFlipTab.java
deleted file mode 100644
index ff9579b7aa..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ImageFlipTab.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-/**
- * This tab demonstrates how an image can be flipped in various fashions.
- */
-public class ImageFlipTab extends GraphicsTab {
-
-public ImageFlipTab(GraphicsExample example) {
- super(example);
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Image"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("Flip"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("FlipDescription"); //$NON-NLS-1$
-}
-
-public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- Image image = GraphicsExample.loadImage(device, GraphicsExample.class, "houses.png");
- Rectangle bounds = image.getBounds();
-
- // top
- Transform transform = new Transform(device);
- transform.translate((width-bounds.width)/2, (height-bounds.height)/2);
- transform.scale(1, -1);
- gc.setTransform(transform);
-
- // draw the original image
- gc.drawImage(image, 0, 0);
-
- transform.dispose();
-
- // bottom
- transform = new Transform(device);
- transform.translate((width-bounds.width)/2, 2*bounds.height + (height-bounds.height)/2);
- transform.scale(1, -1);
- gc.setTransform(transform);
-
- // draw the original image
- gc.drawImage(image, 0, 0);
-
- transform.dispose();
-
- // left
- transform = new Transform(device);
- transform.translate((width-bounds.width)/2, (height-bounds.height)/2);
- transform.scale(-1, 1);
- gc.setTransform(transform);
-
- // draw the original image
- gc.drawImage(image, 0, 0);
-
- transform.dispose();
-
- // right
- transform = new Transform(device);
- transform.translate(2*bounds.width + (width-bounds.width)/2, (height-bounds.height)/2);
- transform.scale(-1, 1);
- gc.setTransform(transform);
-
- // draw the original image
- gc.drawImage(image, 0, 0);
-
- transform.dispose();
-
- gc.setTransform(null);
- gc.drawImage(image, (width-bounds.width)/2, (height-bounds.height)/2);
- image.dispose();
-}
-
-/**
- * Returns the name of a valid font for the host platform.
- */
-static String getPlatformFont() {
- if(SWT.getPlatform() == "win32") {
- return "Arial";
- } else if (SWT.getPlatform() == "motif") {
- return "Helvetica";
- } else if (SWT.getPlatform() == "gtk") {
- return "Baekmuk Batang";
- } else if (SWT.getPlatform() == "carbon") {
- return "Arial";
- } else { // photon, etc ...
- return "Verdana";
- }
-}
-}
-
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ImageScaleTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ImageScaleTab.java
deleted file mode 100644
index 545f8cf0d9..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ImageScaleTab.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * This tab demonstrates how an image can be scaled.
- */
-public class ImageScaleTab extends GraphicsTab {
-
-public ImageScaleTab(GraphicsExample example) {
- super(example);
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Image"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("Scale"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("ScaleDescription"); //$NON-NLS-1$
-}
-
-public void paint(GC gc, int width, int height) {
- Device device = gc.getDevice();
- Image image = GraphicsExample.loadImage(device, GraphicsExample.class, "houses.png");
-
- Rectangle bounds = image.getBounds();
- Rectangle canvasBounds = example.canvas.getBounds();
- gc.drawImage(image, 0, 0, bounds.width, bounds.height, 0, 0, canvasBounds.width, canvasBounds.height);
-
- image.dispose();
-}
-}
-
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ImageTransformTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ImageTransformTab.java
deleted file mode 100644
index f19774eed1..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ImageTransformTab.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This tab demonstrates transformations, such as scaling, rotation, and
- * invert. It allows the user to specify values for scaling and rotation.
- */
-public class ImageTransformTab extends GraphicsTab {
-
- private Spinner rotateSpinner, scaleSpinnerX, scaleSpinnerY;
- private Button invertButton;
-
-/**
- * Constructor
- * @param example A GraphicsExample
- */
-public ImageTransformTab(GraphicsExample example) {
- super(example);
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Transform"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("Image"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("TransformImgDescription"); //$NON-NLS-1$
-}
-
-/**
- * This method creates the controls specific to the tab. The call to the
- * createControlPanel method in the super class create the controls that are
- * defined in the super class.
- *
- * @param parent The parent composite
- */
-public void createControlPanel(Composite parent) {
-
- Composite comp;
- GridLayout gridLayout = new GridLayout(2, false);
-
- // create spinner for the rotation angle
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(gridLayout);
-
- new Label(comp, SWT.CENTER).setText(GraphicsExample.getResourceString("Rotate")); //$NON-NLS-1$
- rotateSpinner = new Spinner(comp, SWT.BORDER | SWT.WRAP);
- rotateSpinner.setSelection(0);
- rotateSpinner.setMinimum(0);
- rotateSpinner.setMaximum(360);
- rotateSpinner.setIncrement(10);
- rotateSpinner.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- example.redraw();
- }
- });
-
- // create a slider for scaling along the x axis
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(gridLayout);
-
- new Label(comp, SWT.CENTER).setText(GraphicsExample.getResourceString("xscale")); //$NON-NLS-1$
- scaleSpinnerX = new Spinner(comp, SWT.BORDER | SWT.WRAP);
- scaleSpinnerX.setDigits(2);
- scaleSpinnerX.setMinimum(1);
- scaleSpinnerX.setMaximum(500);
- scaleSpinnerX.setSelection(75);
- scaleSpinnerX.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- example.redraw();
- }
- });
-
- // create a slider for scaling along the y axis
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(gridLayout);
-
- new Label(comp, SWT.CENTER).setText(GraphicsExample.getResourceString("yscale")); //$NON-NLS-1$
- scaleSpinnerY = new Spinner(comp, SWT.BORDER | SWT.WRAP);
- scaleSpinnerY.setDigits(2);
- scaleSpinnerY.setMinimum(1);
- scaleSpinnerY.setMaximum(500);
- scaleSpinnerY.setSelection(75);
- scaleSpinnerY.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- example.redraw();
- }
- });
-
- // create a button for "invert"
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout());
- invertButton = new Button(comp, SWT.TOGGLE);
- invertButton.setText(GraphicsExample.getResourceString("Invert")); //$NON-NLS-1$
- invertButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- example.redraw();
- }
- });
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.swt.examples.graphics.GraphicsTab#paint(org.eclipse.swt.graphics.GC, int, int)
- */
-public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- Image image = GraphicsExample.loadImage(device, GraphicsExample.class, "ace_club.jpg");
-
- Transform transform = new Transform(device);
-
- // scale image
- transform.scale(scaleSpinnerX.getSelection()/100f, scaleSpinnerY.getSelection()/100f);
-
- // rotate on center of image
- Rectangle rect = image.getBounds();
- transform.translate(rect.width/2, rect.height/2);
- transform.rotate(rotateSpinner.getSelection());
- transform.translate(-rect.width/2, -rect.height/2);
-
- if(invertButton.getSelection()){
- transform.invert();
- }
-
- gc.setTransform(transform);
-
- gc.drawImage(image, 0, 0);
- gc.drawRoundRectangle(0, 0, image.getBounds().width,
- image.getBounds().height, 22, 22);
- transform.dispose();
- image.dispose();
-}
-
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/InterpolationTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/InterpolationTab.java
deleted file mode 100644
index d9eef86ca3..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/InterpolationTab.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This tab shows the effects of applying various interpolation algorithms to
- * images that have been stretched or shrunk.
- */
-public class InterpolationTab extends GraphicsTab {
-
- Combo imageCb; // combo for selecting images
-
-public InterpolationTab(GraphicsExample example) {
- super(example);
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Image"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("Interpolation"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("ImageInterpolationDesc"); //$NON-NLS-1$
-}
-
-public void createControlPanel(Composite parent) {
-
- Composite comp;
- GridLayout gridLayout = new GridLayout(2, false);
-
- // create drop down combo
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(gridLayout);
- new Label(comp, SWT.CENTER).setText(GraphicsExample
- .getResourceString("Image")); //$NON-NLS-1$
- imageCb = new Combo(comp, SWT.DROP_DOWN);
- imageCb.add(GraphicsExample.getResourceString("House")); //$NON-NLS-1$
- imageCb.add(GraphicsExample.getResourceString("Question")); //$NON-NLS-1$
- imageCb.add(GraphicsExample.getResourceString("Task")); //$NON-NLS-1$
- imageCb.add(GraphicsExample.getResourceString("Font")); //$NON-NLS-1$
- imageCb.add(GraphicsExample.getResourceString("Cube")); //$NON-NLS-1$
- imageCb.add(GraphicsExample.getResourceString("SWT")); //$NON-NLS-1$
- imageCb.add(GraphicsExample.getResourceString("Ovals")); //$NON-NLS-1$
- imageCb.select(0);
- imageCb.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- example.redraw();
- }
- });
-}
-
-public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- float scaleX = 10f;
- float scaleY = 10f;
- Image image = null;
- switch (imageCb.getSelectionIndex()) {
-
- case 0:
- image = GraphicsExample.loadImage(device, GraphicsExample.class, "home_nav.gif");
- break;
- case 1:
- image = GraphicsExample.loadImage(device, GraphicsExample.class, "help.gif");
- break;
- case 2:
- image = GraphicsExample.loadImage(device, GraphicsExample.class, "task.gif");
- break;
- case 3:
- image = GraphicsExample.loadImage(device, GraphicsExample.class, "font.gif");
- break;
- case 4:
- image = GraphicsExample.loadImage(device, GraphicsExample.class, "cube.png");
- scaleX = 0.75f;
- scaleY = 0.5f;
- break;
- case 5:
- image = GraphicsExample.loadImage(device, GraphicsExample.class, "swt.png");
- scaleX = 0.4f;
- scaleY = 0.8f;
- break;
- case 6:
- image = GraphicsExample.loadImage(device, GraphicsExample.class, "ovals.png");
- scaleX = 1.1f;
- scaleY = 0.5f;
- break;
- }
-
- Rectangle bounds = image.getBounds();
-
- // draw the original image
- gc.drawImage(image, (width-bounds.width)/2, 20);
-
- Font font = new Font(device, getPlatformFont(), 20, SWT.NORMAL);
- gc.setFont(font);
-
- // write some text below the original image
- String text = GraphicsExample.getResourceString("OriginalImg"); //$NON-NLS-1$
- Point size = gc.stringExtent(text);
- gc.drawString(text, (width-size.x)/2, 25 + bounds.height, true);
-
- Transform transform = new Transform(device);
- transform.translate((width - (bounds.width * scaleX + 10) * 4) / 2, 25 + bounds.height + size.y +
- (height - (25 + bounds.height + size.y + bounds.height*scaleY)) / 2);
- transform.scale(scaleX, scaleY);
-
- // --- draw strings ---
- float[] point = new float[2];
- text = GraphicsExample.getResourceString("None"); //$NON-NLS-1$
- size = gc.stringExtent(text);
- point[0] = (scaleX*bounds.width + 5 - size.x)/(2*scaleX);
- point[1] = bounds.height;
- transform.transform(point);
- gc.drawString(text, (int)point[0], (int)point[1], true);
-
- text = GraphicsExample.getResourceString("Low"); //$NON-NLS-1$
- size = gc.stringExtent(text);
- point[0] = (scaleX*bounds.width + 5 - size.x)/(2*scaleX) + bounds.width;
- point[1] = bounds.height;
- transform.transform(point);
- gc.drawString(text, (int)point[0], (int)point[1], true);
-
- text = GraphicsExample.getResourceString("Default"); //$NON-NLS-1$
- size = gc.stringExtent(text);
- point[0] = (scaleX*bounds.width + 5 - size.x)/(2*scaleX) + 2*bounds.width;
- point[1] = bounds.height;
- transform.transform(point);
- gc.drawString(text, (int)point[0], (int)point[1], true);
-
- text = GraphicsExample.getResourceString("High"); //$NON-NLS-1$
- size = gc.stringExtent(text);
- point[0] = (scaleX*bounds.width + 5 - size.x)/(2*scaleX) + 3*bounds.width;
- point[1] = bounds.height;
- transform.transform(point);
- gc.drawString(text, (int)point[0], (int)point[1], true);
-
- gc.setTransform(transform);
- transform.dispose();
-
- // --- draw images ---
-
- // no interpolation
- gc.setInterpolation(SWT.NONE);
- gc.drawImage(image, 0, 0);
-
- // low interpolation
- gc.setInterpolation(SWT.LOW);
- gc.drawImage(image, bounds.width, 0);
-
- // default interpolation
- gc.setInterpolation(SWT.DEFAULT);
- gc.drawImage(image, 2*bounds.width, 0);
-
- // high interpolation
- gc.setInterpolation(SWT.HIGH);
- gc.drawImage(image, 3*bounds.width, 0);
-
- font.dispose();
- if (image != null) image.dispose();
-}
-
-/**
- * Returns the name of a valid font for the host platform.
- */
-static String getPlatformFont() {
- if(SWT.getPlatform() == "win32") {
- return "Arial";
- } else if (SWT.getPlatform() == "motif") {
- return "Helvetica";
- } else if (SWT.getPlatform() == "gtk") {
- return "Baekmuk Batang";
- } else if (SWT.getPlatform() == "carbon") {
- return "Arial";
- } else { // photon, etc ...
- return "Verdana";
- }
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/IntroTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/IntroTab.java
deleted file mode 100644
index 9316effe1b..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/IntroTab.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.graphics;
-
-import java.util.*;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-public class IntroTab extends AnimatedGraphicsTab {
-
- Font font;
- Image image;
- Random random = new Random();
- float x, y;
- float incX = 10.0f;
- float incY = 5.0f;
- int textWidth, textHeight;
- String text = GraphicsExample.getResourceString("SWT");
-
-public IntroTab(GraphicsExample example) {
- super(example);
-}
-
-public void dispose() {
- if (image != null) image.dispose();
- image = null;
- if (font != null) font.dispose();
- font = null;
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Introduction"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("SWT"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("IntroductionDescription"); //$NON-NLS-1$
-}
-
-public void next(int width, int height) {
- x += incX;
- y += incY;
- float random = (float)Math.random();
- if (x + textWidth > width) {
- x = width - textWidth;
- incX = random * -width / 16 - 1;
- }
- if (x < 0) {
- x = 0;
- incX = random * width / 16 + 1;
- }
- if (y + textHeight > height) {
- y = (height - textHeight)- 2;
- incY = random * -height / 16 - 1;
- }
- if (y < 0) {
- y = 0;
- incY = random * height / 16 + 1;
- }
-}
-
-public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
- if (image == null) {
- image = example.loadImage(device, "irmaos.jpg");
- Rectangle rect = image.getBounds();
- FontData fd = device.getSystemFont().getFontData()[0];
- font = new Font(device, fd.getName(), rect.height / 4, SWT.BOLD);
- gc.setFont(font);
- Point size = gc.stringExtent(text);
- textWidth = size.x;
- textHeight = size.y;
- }
- Path path = new Path(device);
- path.addString(text, x, y, font);
- gc.setClipping(path);
- Rectangle rect = image.getBounds();
- gc.drawImage(image, 0, 0, rect.width, rect.height, 0, 0, width, height);
- gc.setClipping((Rectangle)null);
- gc.setForeground(device.getSystemColor(SWT.COLOR_BLUE));
- gc.drawPath(path);
- path.dispose();
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/LineCapTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/LineCapTab.java
deleted file mode 100644
index e28ffa303f..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/LineCapTab.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This tab demonstrates various line caps applicable to a line.
- */
-public class LineCapTab extends GraphicsTab {
-
- Button colorButton;
- GraphicsBackground foreground;
- Menu menu;
-
-public LineCapTab(GraphicsExample example) {
- super(example);
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Lines"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("LineCap"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("LineCapDescription"); //$NON-NLS-1$
-}
-
-public void dispose() {
- if (menu != null) {
- menu.dispose();
- menu = null;
- }
-}
-
-public void createControlPanel(Composite parent) {
-
- Composite comp;
-
- // create color button
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout());
-
- ColorMenu cm = new ColorMenu();
- cm.setPatternItems(example.checkAdvancedGraphics());
- menu = cm.createMenu(parent.getParent(), new ColorListener() {
- public void setColor(GraphicsBackground gb) {
- foreground = gb;
- colorButton.setImage(gb.getThumbNail());
- example.redraw();
- }
- });
-
- // initialize the foreground to the 3rd item in the menu (red)
- foreground = (GraphicsBackground)menu.getItem(2).getData();
-
- // color button
- colorButton = new Button(comp, SWT.PUSH);
- colorButton.setText(GraphicsExample
- .getResourceString("Color")); //$NON-NLS-1$
- colorButton.setImage(foreground.getThumbNail());
- colorButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- final Button button = (Button) event.widget;
- final Composite parent = button.getParent();
- Rectangle bounds = button.getBounds();
- Point point = parent.toDisplay(new Point(bounds.x, bounds.y));
- menu.setLocation(point.x, point.y + bounds.height);
- menu.setVisible(true);
- }
- });
-}
-
-public void paint(GC gc, int width, int height) {
- Device device = gc.getDevice();
-
- // draw side lines
- gc.setLineWidth(1);
- gc.setLineStyle(SWT.LINE_DOT);
- gc.setForeground(device.getSystemColor(SWT.COLOR_BLACK));
- gc.drawLine(3*width/16, height/6, 3*width/16, 5*height/6);
- gc.drawLine(13*width/16, height/6, 13*width/16, 5*height/6);
- gc.setLineStyle(SWT.LINE_SOLID);
-
- // draw labels
- Font font = new Font(device, getPlatformFont(), 20, SWT.NORMAL);
- gc.setFont(font);
-
- String text = GraphicsExample.getResourceString("Flat"); //$NON-NLS-1$
- Point size = gc.stringExtent(text);
- gc.drawString(text, (width-size.x)/2, 3*height/12, true);
- text = GraphicsExample.getResourceString("Square"); //$NON-NLS-1$
- size = gc.stringExtent(text);
- gc.drawString(text, (width-size.x)/2, 5*height/12, true);
- text = GraphicsExample.getResourceString("Round"); //$NON-NLS-1$
- size = gc.stringExtent(text);
- gc.drawString(text, (width-size.x)/2, 7*height/12, true);
- font.dispose();
-
- Pattern pattern = null;
- if (foreground.getBgColor1() != null) {
- gc.setForeground(foreground.getBgColor1());
- } else if (foreground.getBgImage() != null) {
- pattern = new Pattern(device, foreground.getBgImage());
- gc.setForegroundPattern(pattern);
- }
-
- // draw lines with caps
- gc.setLineWidth(20);
- gc.setLineCap(SWT.CAP_FLAT);
- gc.drawLine(3*width/16, 2*height/6, 13*width/16, 2*height/6);
- gc.setLineCap(SWT.CAP_SQUARE);
- gc.drawLine(3*width/16, 3*height/6, 13*width/16, 3*height/6);
- gc.setLineCap(SWT.CAP_ROUND);
- gc.drawLine(3*width/16, 4*height/6, 13*width/16, 4*height/6);
-
- if (pattern != null) pattern.dispose();
-}
-
-/**
- * Returns the name of a valid font for the resident platform.
- */
-static String getPlatformFont() {
- if(SWT.getPlatform() == "win32") {
- return "Arial";
- } else if (SWT.getPlatform() == "motif") {
- return "Helvetica";
- } else if (SWT.getPlatform() == "gtk") {
- return "Baekmuk Batang";
- } else if (SWT.getPlatform() == "carbon") {
- return "Arial";
- } else { // photon, etc ...
- return "Verdana";
- }
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/LineJoinTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/LineJoinTab.java
deleted file mode 100644
index 06dc8cf285..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/LineJoinTab.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This tab demonstrates various line joins. It allows a user to choose from
- * bevel, miter and round.
- */
-public class LineJoinTab extends GraphicsTab {
-
- private Combo joinCb;
- private Button colorButton;
- private GraphicsBackground shapeColor;
- private Menu menu;
- private int [] joinValues = new int [] {SWT.JOIN_BEVEL, SWT.JOIN_MITER, SWT.JOIN_ROUND};
-
-public LineJoinTab(GraphicsExample example) {
- super(example);
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Lines"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("LineJoin"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("LineJoinDescription"); //$NON-NLS-1$
-}
-
-public void dispose() {
- if (menu != null) {
- menu.dispose();
- menu = null;
- }
-}
-
-public void createControlPanel(Composite parent) {
-
- // create drop down combo for choosing clipping
- Composite comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout(2, false));
-
- new Label(comp, SWT.CENTER).setText(GraphicsExample
- .getResourceString("LineJoin")); //$NON-NLS-1$
- joinCb = new Combo(comp, SWT.DROP_DOWN);
- joinCb.add(GraphicsExample
- .getResourceString("bevel")); //$NON-NLS-1$
- joinCb.add(GraphicsExample
- .getResourceString("miter")); //$NON-NLS-1$
- joinCb.add(GraphicsExample
- .getResourceString("round")); //$NON-NLS-1$
- joinCb.select(1);
- joinCb.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- example.redraw();
- }
- });
-
- // color menu
- ColorMenu cm = new ColorMenu();
- cm.setPatternItems(example.checkAdvancedGraphics());
- menu = cm.createMenu(parent.getParent(), new ColorListener() {
- public void setColor(GraphicsBackground gb) {
- shapeColor = gb;
- colorButton.setImage(gb.getThumbNail());
- example.redraw();
- }
- });
-
- // initialize the shape color to the 4th item in the menu (green)
- shapeColor =(GraphicsBackground)menu.getItem(3).getData();
-
- // color button
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout(2, false));
-
- colorButton = new Button(comp, SWT.PUSH);
- colorButton.setText(GraphicsExample
- .getResourceString("Color")); //$NON-NLS-1$
- colorButton.setImage(shapeColor.getThumbNail());
- colorButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- final Button button = (Button) event.widget;
- final Composite parent = button.getParent();
- Rectangle bounds = button.getBounds();
- Point point = parent.toDisplay(new Point(bounds.x, bounds.y));
- menu.setLocation(point.x, point.y + bounds.height);
- menu.setVisible(true);
- }
- });
-
-}
-
-public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- gc.setLineWidth(20);
- gc.setLineJoin(joinValues[joinCb.getSelectionIndex()]);
-
- // set the foreground color or pattern
- Pattern pattern = null;
- if (shapeColor.getBgColor1() != null) {
- gc.setForeground(shapeColor.getBgColor1());
- } else if (shapeColor.getBgImage() != null) {
- pattern = new Pattern(device, shapeColor.getBgImage());
- gc.setForegroundPattern(pattern);
- }
-
- // draw the shape
- Path path = new Path(device);
- path.moveTo(width/2, 25);
- path.lineTo(2*width/3, height/3);
- path.lineTo(width-25, height/2);
- path.lineTo(2*width/3, 2*height/3);
- path.lineTo(width/2, height-25);
- path.lineTo(width/3, 2*height/3);
- path.lineTo(25, height/2);
- path.lineTo(width/3, height/3);
- path.lineTo(width/2, 25);
- path.close();
- gc.drawPath(path);
- path.dispose();
-
- if (pattern != null) pattern.dispose();
-}
-
-}
-
-
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/LineStyleTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/LineStyleTab.java
deleted file mode 100644
index 698c7a295d..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/LineStyleTab.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This tab demonstrates line styles applicable to a line. It shows the use of the
- * <code>GC.setLineStyle()</code> method.
- */
-public class LineStyleTab extends GraphicsTab {
-
- Button colorButton;
- GraphicsBackground lineColor;
- Menu menu;
- Spinner lineWidthSpinner;
-
-public LineStyleTab(GraphicsExample example) {
- super(example);
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Lines"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("LineStyles"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("LineStylesDescription"); //$NON-NLS-1$
-}
-
-public void dispose() {
- if (menu != null) {
- menu.dispose();
- menu = null;
- }
-}
-
-public void createControlPanel(Composite parent) {
-
- Composite comp;
-
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout(2, false));
-
- new Label(comp, SWT.CENTER).setText(GraphicsExample
- .getResourceString("LineWidth")); //$NON-NLS-1$
- lineWidthSpinner = new Spinner(comp, SWT.BORDER | SWT.WRAP);
- lineWidthSpinner.setSelection(10);
- lineWidthSpinner.setMinimum(1);
- lineWidthSpinner.setMaximum(30);
- lineWidthSpinner.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- example.redraw();
- }
- });
-
- ColorMenu cm = new ColorMenu();
- cm.setPatternItems(example.checkAdvancedGraphics());
- menu = cm.createMenu(parent.getParent(), new ColorListener() {
- public void setColor(GraphicsBackground gb) {
- lineColor = gb;
- colorButton.setImage(gb.getThumbNail());
- example.redraw();
- }
- });
-
- // create color button
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout());
-
- // initialize the foreground to the 5th item in the menu (blue)
- lineColor = (GraphicsBackground)menu.getItem(4).getData();
-
- // color button
- colorButton = new Button(comp, SWT.PUSH);
- colorButton.setText(GraphicsExample
- .getResourceString("Color")); //$NON-NLS-1$
- colorButton.setImage(lineColor.getThumbNail());
- colorButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- final Button button = (Button) event.widget;
- final Composite parent = button.getParent();
- Rectangle bounds = button.getBounds();
- Point point = parent.toDisplay(new Point(bounds.x, bounds.y));
- menu.setLocation(point.x, point.y + bounds.height);
- menu.setVisible(true);
- }
- });
-}
-
-public void paint(GC gc, int width, int height) {
- Device device = gc.getDevice();
-
- Pattern pattern = null;
- if (lineColor.getBgColor1() != null) {
- gc.setForeground(lineColor.getBgColor1());
- } else if (lineColor.getBgImage() != null) {
- pattern = new Pattern(device, lineColor.getBgImage());
- gc.setForegroundPattern(pattern);
- }
-
- // set line width
- gc.setLineWidth(lineWidthSpinner.getSelection());
-
- // draw lines with caps
- gc.drawLine(3*width/16, 1*height/6, 13*width/16, 1*height/6);
- gc.setLineStyle(SWT.LINE_DASH);
- gc.drawLine(3*width/16, 2*height/6, 13*width/16, 2*height/6);
- gc.setLineStyle(SWT.LINE_DOT);
- gc.drawLine(3*width/16, 3*height/6, 13*width/16, 3*height/6);
- gc.setLineStyle(SWT.LINE_DASHDOT);
- gc.drawLine(3*width/16, 4*height/6, 13*width/16, 4*height/6);
- gc.setLineStyle(SWT.LINE_DASHDOTDOT);
- gc.drawLine(3*width/16, 5*height/6, 13*width/16, 5*height/6);
-
- // draw labels
- Font font = new Font(device, getPlatformFont(), 20, SWT.NORMAL);
- gc.setFont(font);
-
- gc.setForeground(device.getSystemColor(SWT.COLOR_BLACK));
-
- String text = GraphicsExample.getResourceString("Solid"); //$NON-NLS-1$
- Point size = gc.stringExtent(text);
- gc.drawString(text, (width-size.x)/2, 1*height/12, true);
- text = GraphicsExample.getResourceString("Dash"); //$NON-NLS-1$
- size = gc.stringExtent(text);
- gc.drawString(text, (width-size.x)/2, 3*height/12, true);
- text = GraphicsExample.getResourceString("Dot"); //$NON-NLS-1$
- size = gc.stringExtent(text);
- gc.drawString(text, (width-size.x)/2, 5*height/12, true);
- text = GraphicsExample.getResourceString("DashDot"); //$NON-NLS-1$
- size = gc.stringExtent(text);
- gc.drawString(text, (width-size.x)/2, 7*height/12, true);
- text = GraphicsExample.getResourceString("DashDotDot"); //$NON-NLS-1$
- size = gc.stringExtent(text);
- gc.drawString(text, (width-size.x)/2, 9*height/12, true);
- font.dispose();
-}
-
-/**
- * Returns the name of a valid font for the resident platform.
- */
-static String getPlatformFont() {
- if(SWT.getPlatform() == "win32") {
- return "Arial";
- } else if (SWT.getPlatform() == "motif") {
- return "Helvetica";
- } else if (SWT.getPlatform() == "gtk") {
- return "Baekmuk Batang";
- } else if (SWT.getPlatform() == "carbon") {
- return "Arial";
- } else { // photon, etc ...
- return "Verdana";
- }
-}
-}
-
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/LineTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/LineTab.java
deleted file mode 100644
index 725f857429..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/LineTab.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.graphics.*;
-
-public class LineTab extends GraphicsTab {
-
-public LineTab(GraphicsExample example) {
- super(example);
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Lines"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("Line"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("LineDescription"); //$NON-NLS-1$
-}
-
-public void paint(GC gc, int width, int height) {
- gc.drawLine(0, 0, width, height);
- gc.drawLine(width, 0, 0, height);
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/MazeTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/MazeTab.java
deleted file mode 100644
index 674e145f4e..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/MazeTab.java
+++ /dev/null
@@ -1,328 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import java.util.*;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This tab shows three circles, each following a different path in a maze.
- * Only one of the three circles follows the correct path.
- */
-public class MazeTab extends AnimatedGraphicsTab {
-
- int nextIndex, nextIndex2, nextIndex3;
- int xcoord, ycoord, xcoord2, ycoord2, xcoord3, ycoord3;
- ArrayList nextCoord, nextCoord2, nextCoord3;
- boolean isDone, isDone2, isDone3;
- Image image;
-
-/**
- * Constructor
- * @param example A GraphicsExample
- */
-public MazeTab(GraphicsExample example) {
- super(example);
-
- // correct path
- nextCoord = new ArrayList();
- nextCoord.addAll(moveDown(20, -50, 20, 110, 10));
- nextCoord.addAll(moveRight(30, 110, 130, 110, 10));
- nextCoord.addAll(moveUp(135, 100, 135, 15, 10));
- nextCoord.addAll(moveRight(140, 15, 210, 15, 10));
- nextCoord.addAll(moveDown(210, 25, 210, 75, 10));
- nextCoord.addAll(moveRight(220, 75, 320, 75, 10));
- nextCoord.addAll(moveUp(320, 65, 320, 55, 10));
- nextCoord.addAll(moveRight(330, 50, 475, 50, 10));
- nextCoord.addAll(moveDown(475, 60, 475, 225, 10));
- nextCoord.addAll(moveLeft(465, 225, 200, 225, 10));
- nextCoord.addAll(moveUp(200, 215, 200, 180, 10));
- nextCoord.addAll(moveLeft(190, 180, 120, 180, 10));
- nextCoord.addAll(moveDown(120, 190, 120, 320, 10));
- nextCoord.addAll(moveRight(130, 320, 475, 320, 10));
- nextCoord.addAll(moveDown(475, 330, 475, 435, 10));
- nextCoord.addAll(moveLeft(465, 435, 20, 435, 10));
- nextCoord.addAll(moveDown(20, 445, 20, 495, 10));
-
- nextIndex = 0;
- xcoord = ((Integer)nextCoord.get(nextIndex)).intValue();
- ycoord = ((Integer)nextCoord.get(nextIndex+1)).intValue();
-
- // wrong path 1
- nextCoord2 = new ArrayList();
- nextCoord2.addAll(moveDown(20, -25, 20, 110, 10));
- nextCoord2.addAll(moveRight(30, 110, 130, 110, 10));
- nextCoord2.addAll(moveUp(135, 100, 135, 15, 10));
- nextCoord2.addAll(moveRight(140, 15, 520, 15, 10));
- nextCoord2.addAll(moveDown(525, 15, 525, 480, 10));
- nextCoord2.addAll(moveLeft(515, 480, 70, 480, 10));
-
- nextIndex2 = 0;
- xcoord2 = ((Integer)nextCoord2.get(nextIndex2)).intValue();
- ycoord2 = ((Integer)nextCoord2.get(nextIndex2+1)).intValue();
-
- // wrong path 2
- nextCoord3 = new ArrayList();
- nextCoord3.addAll(moveDown(20, 0, 20, 110, 10));
- nextCoord3.addAll(moveRight(30, 110, 130, 110, 10));
- nextCoord3.addAll(moveUp(135, 100, 135, 15, 10));
- nextCoord3.addAll(moveRight(140, 15, 210, 15, 10));
- nextCoord3.addAll(moveDown(210, 25, 210, 75, 10));
- nextCoord3.addAll(moveRight(220, 75, 320, 75, 10));
- nextCoord3.addAll(moveUp(320, 65, 320, 55, 10));
- nextCoord3.addAll(moveRight(330, 50, 475, 50, 10));
- nextCoord3.addAll(moveDown(475, 60, 475, 225, 10));
- nextCoord3.addAll(moveLeft(465, 225, 425, 225, 10));
- nextCoord3.addAll(moveUp(420, 225, 420, 150, 10));
- nextCoord3.addAll(moveLeft(420, 145, 70, 145, 10));
- nextCoord3.addAll(moveDown(70, 150, 70, 320, 10));
-
- nextIndex3 = 0;
- xcoord3 = ((Integer)nextCoord3.get(nextIndex3)).intValue();
- ycoord3 = ((Integer)nextCoord3.get(nextIndex3+1)).intValue();
-
- isDone = isDone2 = isDone3 = false;
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Misc"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("Maze"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("MazeDescription"); //$NON-NLS-1$
-}
-
-public int getInitialAnimationTime() {
- return 50;
-}
-
-public void dispose() {
- if (image != null) {
- image.dispose();
- image = null;
- }
-}
-
-public void createControlPanel(Composite parent) {
- super.createControlPanel(parent);
-
- // add selection listener to reset nextNumber after
- // the sequence has completed
- playItem.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- if (isDone){
- nextIndex = nextIndex2 = nextIndex3 = 0;
- isDone = isDone2 = isDone3 = false;
- }
- }
- });
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.swt.examples.graphics.AnimatedGraphicsTab#next(int, int)
- */
-public void next(int width, int height) {
-
- if (nextIndex+2 < nextCoord.size()) {
- nextIndex = (nextIndex+2)%nextCoord.size();
- xcoord = ((Integer)nextCoord.get(nextIndex)).intValue();
- ycoord = ((Integer)nextCoord.get(nextIndex+1)).intValue();
- } else {
- // stop animation
- setAnimation(false);
- isDone = true;
- }
-
- if (nextIndex2+2 < nextCoord2.size()) {
- nextIndex2 = (nextIndex2+2)%nextCoord2.size();
- xcoord2 = ((Integer)nextCoord2.get(nextIndex2)).intValue();
- ycoord2 = ((Integer)nextCoord2.get(nextIndex2+1)).intValue();
- } else {
- isDone2 = true;
- }
-
- if (nextIndex3+2 < nextCoord3.size()) {
- nextIndex3 = (nextIndex3+2)%nextCoord3.size();
- xcoord3 = ((Integer)nextCoord3.get(nextIndex3)).intValue();
- ycoord3 = ((Integer)nextCoord3.get(nextIndex3+1)).intValue();
- } else {
- isDone3 = true;
- }
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.swt.examples.graphics.GraphicsTab#paint(org.eclipse.swt.graphics.GC, int, int)
- */
-public void paint(GC gc, int width, int height) {
- Device device = gc.getDevice();
-
- if (image == null) {
- image = example.loadImage(device, "maze.bmp");
- }
- // draw maze
- Rectangle bounds = image.getBounds();
- int x = (width - bounds.width) / 2;
- int y = (height - bounds.height) / 2;
- gc.drawImage(image, x, y);
-
- // draw correct oval
- gc.setBackground(device.getSystemColor(SWT.COLOR_RED));
- gc.fillOval(x + xcoord, y + ycoord, 16, 16);
- gc.drawOval(x + xcoord, y + ycoord, 15, 15);
-
- // draw wrong oval 1
- gc.setBackground(device.getSystemColor(SWT.COLOR_BLUE));
- gc.fillOval(x + xcoord2, y + ycoord2, 16, 16);
- gc.drawOval(x + xcoord2, y + ycoord2, 15, 15);
-
- // draw wrong oval 2
- gc.setBackground(device.getSystemColor(SWT.COLOR_GREEN));
- gc.fillOval(x + xcoord3, y + ycoord3, 16, 16);
- gc.drawOval(x + xcoord3, y + ycoord3, 15, 15);
-
- if (isDone2) {
- Image helpImg = example.loadImage(device, "help.gif");
- gc.drawImage(helpImg, x + xcoord2 + 16, y + ycoord2 - 16);
- helpImg.dispose();
- }
-
- if (isDone3) {
- Image helpImg = example.loadImage(device, "help.gif");
- gc.drawImage(helpImg, x + xcoord3 + 16, y + ycoord3 - 16);
- helpImg.dispose();
- }
-}
-
-/**
- * Returns a list of coordinates moving in a "left-moving" fashion from the start
- * point to the end point inclusively.
- *
- * @param x1
- * X component of the start point
- * @param y1
- * Y component of the start point
- * @param x2
- * X component of the end point
- * @param y2
- * Y component of the end point
- * @param stepsize
- * The number of pixels that separate each coordinate
- */
-private ArrayList moveLeft(int x1, int y1, int x2, int y2, int stepsize) {
- ArrayList coords = new ArrayList();
- coords.add(new Integer(x1));
- coords.add(new Integer(y1));
- while(x1 - stepsize > x2) {
- x1 = x1 - stepsize;
- coords.add(new Integer(x1));
- coords.add(new Integer(y1));
- }
- coords.add(new Integer(x2));
- coords.add(new Integer(y2));
- return coords;
-}
-
-/**
- * Returns a list of coordinates moving in a "right-moving" fashion from the start
- * point to the end point inclusively.
- *
- * @param x1
- * X component of the start point
- * @param y1
- * Y component of the start point
- * @param x2
- * X component of the end point
- * @param y2
- * Y component of the end point
- * @param stepsize
- * The number of pixels that separate each coordinate
- */
-private ArrayList moveRight(int x1, int y1, int x2, int y2, int stepsize) {
- ArrayList coords = new ArrayList();
- coords.add(new Integer(x1));
- coords.add(new Integer(y1));
- while(x1 + stepsize < x2) {
- x1 = x1 + stepsize;
- coords.add(new Integer(x1));
- coords.add(new Integer(y1));
- }
- coords.add(new Integer(x2));
- coords.add(new Integer(y2));
- return coords;
-}
-
-/**
- * Returns a list of coordinates moving in an upward fashion from the start
- * point to the end point inclusively.
- *
- * @param x1
- * X component of the start point
- * @param y1
- * Y component of the start point
- * @param x2
- * X component of the end point
- * @param y2
- * Y component of the end point
- * @param stepsize
- * The number of pixels that separate each coordinate
- */
-private ArrayList moveUp(int x1, int y1, int x2, int y2, int stepsize) {
- ArrayList coords = new ArrayList();
- coords.add(new Integer(x1));
- coords.add(new Integer(y1));
- while(y1 - stepsize > y2) {
- y1 = y1 - stepsize;
- coords.add(new Integer(x1));
- coords.add(new Integer(y1));
- }
- coords.add(new Integer(x2));
- coords.add(new Integer(y2));
- return coords;
-}
-
-/**
- * Returns a list of coordinates moving in a downward fashion from the start
- * point to the end point inclusively.
- *
- * @param x1
- * X component of the start point
- * @param y1
- * Y component of the start point
- * @param x2
- * X component of the end point
- * @param y2
- * Y component of the end point
- * @param stepsize
- * The number of pixels that separate each coordinate
- */
-private ArrayList moveDown(int x1, int y1, int x2, int y2, int stepsize) {
- ArrayList coords = new ArrayList();
- coords.add(new Integer(x1));
- coords.add(new Integer(y1));
- while(y1 + stepsize < y2) {
- y1 = y1 + stepsize;
- coords.add(new Integer(x1));
- coords.add(new Integer(y1));
- }
- coords.add(new Integer(x2));
- coords.add(new Integer(y2));
- return coords;
-}
-
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/PathClippingAnimTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/PathClippingAnimTab.java
deleted file mode 100644
index 343c4ef90b..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/PathClippingAnimTab.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This is another tab that demonstrates the use of a path clipping.
- */
-public class PathClippingAnimTab extends AnimatedGraphicsTab {
-
- private Button colorButton;
- private GraphicsBackground background;
- private Menu menu;
- private int rectWidth = 300;
- private int rectHeight = 300;
- private int incWidth = 5;
- private int incHeight = 5;
- private boolean vertical = false;
- private int angle;
-
- public PathClippingAnimTab(GraphicsExample example) {
- super(example);
- }
-
- public String getCategory() {
- return GraphicsExample.getResourceString("Clipping"); //$NON-NLS-1$
- }
-
- public String getText() {
- return GraphicsExample.getResourceString("AnimPathClipping"); //$NON-NLS-1$
- }
-
- public String getDescription() {
- return GraphicsExample.getResourceString("AnimPathClippingDesc"); //$NON-NLS-1$
- }
-
- public void dispose() {
- if (menu != null) {
- menu.dispose();
- menu = null;
- }
- }
-
- /**
- * Creates the widgets used to control the drawing.
- */
- public void createControlPanel(Composite parent) {
- super.createControlPanel(parent);
-
- // color menu
- ColorMenu cm = new ColorMenu();
- cm.setPatternItems(example.checkAdvancedGraphics());
- menu = cm.createMenu(parent.getParent(), new ColorListener() {
- public void setColor(GraphicsBackground gb) {
- background = gb;
- colorButton.setImage(gb.getThumbNail());
- example.redraw();
- }
- });
-
- // initialize the background to the 5th item in the menu (blue)
- background = (GraphicsBackground) menu.getItem(4).getData();
-
- // color button
- Composite comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout(2, false));
-
- colorButton = new Button(comp, SWT.PUSH);
- colorButton.setText(GraphicsExample.getResourceString("Color")); //$NON-NLS-1$
- colorButton.setImage(background.getThumbNail());
- colorButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- final Button button = (Button) event.widget;
- final Composite parent = button.getParent();
- Rectangle bounds = button.getBounds();
- Point point = parent.toDisplay(new Point(bounds.x, bounds.y));
- menu.setLocation(point.x, point.y + bounds.height);
- menu.setVisible(true);
- }
- });
- }
-
- public void next(int width, int height) {
- angle = (angle + 5)%360;
- if (vertical) {
- if (rectHeight <= 0) {
- incHeight = -incHeight;
- }
- if (rectHeight >= height) {
- incHeight = -incHeight;
- vertical = false;
- }
- rectHeight = rectHeight + incHeight;
- } else {
- if (rectWidth <= 0) {
- incWidth = -incWidth;
- }
- if (rectWidth >= width) {
- incWidth = -incWidth;
- vertical = true;
- }
- rectWidth = rectWidth + incWidth;
- }
- }
-
- public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- // top triangle
- Path path = new Path(device);
- path.moveTo(width/2, 0);
- path.lineTo(width/2+100, 173);
- path.lineTo(width/2-100, 173);
- path.lineTo(width/2, 0);
-
- // bottom triangle
- Path path2 = new Path(device);
- path2.moveTo(width/2, height);
- path2.lineTo(width/2+100, height-173);
- path2.lineTo(width/2-100, height-173);
- path2.lineTo(width/2, height);
-
- // left triangle
- Path path3 = new Path(device);
- path3.moveTo(0, height/2);
- path3.lineTo(173, height/2-100);
- path3.lineTo(173, height/2+100);
- path3.lineTo(0, height/2);
-
- // right triangle
- Path path4 = new Path(device);
- path4.moveTo(width, height/2);
- path4.lineTo(width-173, height/2-100);
- path4.lineTo(width-173, height/2+100);
- path4.lineTo(width, height/2);
-
- // circle
- Path path5 = new Path(device);
- path5.moveTo((width-200)/2, (height-200)/2);
- path5.addArc((width-200)/2, (height-200)/2, 200, 200, 0, 360);
-
- // top rectangle
- Path path6 = new Path(device);
- path6.addRectangle((width-40)/2, 175, 40, ((height-200)/2)-177);
-
- // bottom rectangle
- Path path7 = new Path(device);
- path7.addRectangle((width-40)/2, ((height-200)/2)+202, 40, (height-175)-(((height-200)/2)+202));
-
- // left rectangle
- Path path8 = new Path(device);
- path8.addRectangle(175, (height-40)/2, ((width-200)/2)-177, 40);
-
- // right rectangle
- Path path9 = new Path(device);
- path9.addRectangle((width-200)/2+202, (height-40)/2, (width-175)-((width-200)/2+202), 40);
-
- path.addPath(path2);
- path.addPath(path3);
- path.addPath(path4);
- path.addPath(path5);
- path.addPath(path6);
- path.addPath(path7);
- path.addPath(path8);
- path.addPath(path9);
- gc.setClipping(path);
-
- Pattern pattern = null;
- if (background.getBgColor1() != null) {
- gc.setBackground(background.getBgColor1());
- } else if (background.getBgImage() != null) {
- pattern = new Pattern(device, background.getBgImage());
- gc.setBackgroundPattern(pattern);
- }
-
- gc.setLineWidth(2);
- gc.fillRectangle((width-rectWidth)/2, (height-rectHeight)/2, rectWidth, rectHeight);
- gc.drawPath(path);
-
- if (pattern != null)
- pattern.dispose();
-
- path9.dispose();
- path8.dispose();
- path7.dispose();
- path6.dispose();
- path5.dispose();
- path4.dispose();
- path3.dispose();
- path2.dispose();
- path.dispose();
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/PathClippingTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/PathClippingTab.java
deleted file mode 100644
index 30870295df..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/PathClippingTab.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This tab demonstrates how to apply a path clipping and the effects of
- * applying one.
- */
-public class PathClippingTab extends GraphicsTab {
-
- private Combo clippingCb;
- private Button colorButton;
- private GraphicsBackground background;
- private Menu menu;
-
-public PathClippingTab(GraphicsExample example) {
- super(example);
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Clipping"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("PathClipping"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("PathClippingDesc"); //$NON-NLS-1$
-}
-
-public void dispose() {
- if (menu != null) {
- menu.dispose();
- menu = null;
- }
-}
-
-/**
- * Creates the widgets used to control the drawing.
- */
-public void createControlPanel(Composite parent) {
-
- // create drop down combo for choosing clipping
- Composite comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout(2, false));
-
- new Label(comp, SWT.CENTER).setText(GraphicsExample
- .getResourceString("Clipping")); //$NON-NLS-1$
- clippingCb = new Combo(comp, SWT.DROP_DOWN);
- clippingCb.add(GraphicsExample.getResourceString("Circles")); //$NON-NLS-1$
- clippingCb.add(GraphicsExample.getResourceString("Rectangle")); //$NON-NLS-1$
- clippingCb.add(GraphicsExample.getResourceString("Oval")); //$NON-NLS-1$
- clippingCb.add(GraphicsExample.getResourceString("Word")); //$NON-NLS-1$
- clippingCb.add(GraphicsExample.getResourceString("Star")); //$NON-NLS-1$
- clippingCb.add(GraphicsExample.getResourceString("Triangles")); //$NON-NLS-1$
- clippingCb.add(GraphicsExample.getResourceString("Default")); //$NON-NLS-1$
- clippingCb.select(0);
- clippingCb.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- example.redraw();
- }
- });
-
- // color menu
- ColorMenu cm = new ColorMenu();
- cm.setPatternItems(example.checkAdvancedGraphics());
- menu = cm.createMenu(parent.getParent(), new ColorListener() {
- public void setColor(GraphicsBackground gb) {
- background = gb;
- colorButton.setImage(gb.getThumbNail());
- example.redraw();
- }
- });
-
- // initialize the background to the 5th item in the menu (blue)
- background =(GraphicsBackground)menu.getItem(4).getData();
-
- // color button
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout(2, false));
-
- colorButton = new Button(comp, SWT.PUSH);
- colorButton.setText(GraphicsExample
- .getResourceString("Color")); //$NON-NLS-1$
- colorButton.setImage(background.getThumbNail());
- colorButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- final Button button = (Button) event.widget;
- final Composite parent = button.getParent();
- Rectangle bounds = button.getBounds();
- Point point = parent.toDisplay(new Point(bounds.x, bounds.y));
- menu.setLocation(point.x, point.y + bounds.height);
- menu.setVisible(true);
- }
- });
-}
-public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- int clipping = clippingCb.getSelectionIndex();
- switch (clipping) {
-
- case 0: // circles
- Path path = new Path(device);
- path.addArc((width-width/5)/2, (height-height/5)/2, width/5, height/5, 0, 360);
- path.addArc(5*(width-width/8)/12, 4*(height-height/8)/12, width/8, height/8, 0, 360);
- path.addArc(7*(width-width/8)/12, 8*(height-height/8)/12, width/8, height/8, 0, 360);
- path.addArc(6*(width-width/12)/12, 3*(height-height/12)/12, width/12, height/12, 0, 360);
- path.addArc(6*(width-width/12)/12, 9*(height-height/12)/12, width/12, height/12, 0, 360);
- path.addArc(11.5f*(width-width/18)/20, 5*(height-height/18)/18, width/18, height/18, 0, 360);
- path.addArc(8.5f*(width-width/18)/20, 13*(height-height/18)/18, width/18, height/18, 0, 360);
- gc.setClipping(path);
- path.dispose();
- break;
- case 1: // rectangle
- path = new Path(device);
- path.addRectangle(100, 100, width-200, height-200);
- path.addRectangle(120, 120, width-240, height-240);
- path.addRectangle(140, 140, width-280, height-280);
- gc.setClipping(path);
- path.dispose();
- break;
- case 2: // circle
- path = new Path(device);
- path.addArc(100, 100, width-200, height-200, 0, 360);
- path.addArc((width-width/5)/2, (height-height/5)/2, width/5, height/5, 0, 360);
- path.addArc(5*(width-width/8)/12, 4*(height-height/8)/12, width/8, height/8, 0, 360);
- path.addArc(7*(width-width/8)/12, 8*(height-height/8)/12, width/8, height/8, 0, 360);
- path.addArc(6*(width-width/12)/12, 3*(height-height/12)/12, width/12, height/12, 0, 360);
- path.addArc(6*(width-width/12)/12, 9*(height-height/12)/12, width/12, height/12, 0, 360);
- path.addArc(11.5f*(width-width/18)/20, 5*(height-height/18)/18, width/18, height/18, 0, 360);
- path.addArc(8.5f*(width-width/18)/20, 13*(height-height/18)/18, width/18, height/18, 0, 360);
- gc.setClipping(path);
- path.dispose();
- break;
- case 3: // word
- path = new Path(device);
- String text = GraphicsExample.getResourceString("SWT"); //$NON-NLS-1$
- Font font = new Font(device, "Times", 200, SWT.NORMAL);
- gc.setFont(font);
- Point size = gc.stringExtent(text);
- path.addString(text, (width-size.x)/2, (height-size.y)/2, font);
- font.dispose();
- gc.setClipping(path);
- path.dispose();
- break;
- case 4: // star
- path = new Path(device);
- path.lineTo(width/2, 0);
- path.lineTo(5*width/8, height/3);
- path.lineTo(width, height/3);
- path.lineTo(3*width/4, 10*height/16);
- path.lineTo(7*width/8, height);
- path.lineTo(width/2, 3*height/4);
- path.lineTo(width/8, height);
- path.lineTo(width/4, 10*height/16);
- path.lineTo(0, height/3);
- path.lineTo(3*width/8, height/3);
- path.lineTo(width/2, 0);
-
- Path ovalPath = new Path(device);
- ovalPath.addArc(90, 90, width-180, height-180, 0, 360);
-
- path.addPath(ovalPath);
- gc.setClipping(path);
- ovalPath.dispose();
- path.dispose();
- break;
- case 5: // triangles
- path = new Path(device);
- path.addRectangle(0, 0, width, height);
- path.lineTo(width/4, 0);
- path.lineTo(width/4, height/2);
- path.lineTo(0, height/2);
- path.lineTo(width/4, 0);
-
- Path path2 = new Path(device);
- path2.lineTo(width/2, 0);
- path2.lineTo(width/4, height/2);
- path2.lineTo(3*width/4, height/2);
- path2.lineTo(width/2, 0);
-
- Path path3 = new Path(device);
- path3.lineTo(3*width/4, 0);
- path3.lineTo(3*width/4, height/2);
- path3.lineTo(width, height/2);
- path3.lineTo(3*width/4, 0);
-
- Path path4 = new Path(device);
- path4.lineTo(0, height);
- path4.lineTo(width/4, height/2);
- path4.lineTo(width/2, height);
- path4.lineTo(0, height);
-
- Path path5 = new Path(device);
- path5.lineTo(width/2, height);
- path5.lineTo(3*width/4, height/2);
- path5.lineTo(width, height);
- path5.lineTo(width/2, height);
-
- path.addPath(path2);
- path.addPath(path3);
- path.addPath(path4);
- path.addPath(path5);
- gc.setClipping(path);
-
- path5.dispose();
- path4.dispose();
- path3.dispose();
- path2.dispose();
- path.dispose();
- break;
- case 6: // default
- gc.setClipping(0, 0, width, height);
- break;
- }
-
- Pattern pattern = null;
- if (background.getBgColor1() != null) {
- gc.setBackground(background.getBgColor1());
- } else if (background.getBgImage() != null) {
- pattern = new Pattern(device, background.getBgImage());
- gc.setBackgroundPattern(pattern);
- }
- gc.fillRectangle(0, 0, width, height);
- if (pattern != null) pattern.dispose();
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/PathTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/PathTab.java
deleted file mode 100644
index deaaaed315..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/PathTab.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This tab demonstrates the use of paths. It allows the user to see the
- * differences between filling, drawing and closing paths.
- */
-public class PathTab extends GraphicsTab {
-
- Button colorButton, fillButton, drawButton, closeButton;
- GraphicsBackground fillColor;
- Menu menu;
-
-public PathTab(GraphicsExample example) {
- super(example);
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Path"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("PathOper"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("PathOperDescription"); //$NON-NLS-1$
-}
-
-public void dispose() {
- if (menu != null) {
- menu.dispose();
- menu = null;
- }
-}
-
-public void createControlPanel(Composite parent) {
-
- Composite comp;
-
- // create draw button
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout());
-
- drawButton = new Button(comp, SWT.TOGGLE);
- drawButton.setText(GraphicsExample.getResourceString("DrawPath")); //$NON-NLS-1$
- drawButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- example.redraw();
- }
- });
- drawButton.setSelection(true);
-
- // create fill button
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout());
-
- fillButton = new Button(comp, SWT.TOGGLE);
- fillButton.setText(GraphicsExample.getResourceString("FillPath")); //$NON-NLS-1$
- fillButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- example.redraw();
- }
- });
-
- // create close button
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout());
-
- closeButton = new Button(comp, SWT.TOGGLE);
- closeButton.setText(GraphicsExample.getResourceString("ClosePath")); //$NON-NLS-1$
- closeButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- example.redraw();
- }
- });
-
- // create color button
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout());
-
- ColorMenu cm = new ColorMenu();
- cm.setPatternItems(example.checkAdvancedGraphics());
- menu = cm.createMenu(parent.getParent(), new ColorListener() {
- public void setColor(GraphicsBackground gb) {
- fillColor = gb;
- colorButton.setImage(gb.getThumbNail());
- example.redraw();
- }
- });
-
- // initialize the foreground to the 5th item in the menu (green)
- fillColor = (GraphicsBackground)menu.getItem(3).getData();
-
- // color button
- colorButton = new Button(comp, SWT.PUSH);
- colorButton.setText(GraphicsExample.getResourceString("FillColor")); //$NON-NLS-1$
- colorButton.setImage(fillColor.getThumbNail());
- colorButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- final Button button = (Button) event.widget;
- final Composite parent = button.getParent();
- Rectangle bounds = button.getBounds();
- Point point = parent.toDisplay(new Point(bounds.x, bounds.y));
- menu.setLocation(point.x, point.y + bounds.height);
- menu.setVisible(true);
- }
- });
-}
-
-public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- Pattern pattern = null;
- if (fillColor.getBgColor1() != null) {
- gc.setBackground(fillColor.getBgColor1());
- } else if (fillColor.getBgImage() != null) {
- pattern = new Pattern(device, fillColor.getBgImage());
- gc.setBackgroundPattern(pattern);
- }
-
- gc.setLineWidth(5);
- gc.setForeground(device.getSystemColor(SWT.COLOR_BLACK));
-
- // arc
- Path path = new Path(device);
- path.addArc((width-250)/2, (height-400)/2, 500, 400, 90, 180);
- if (closeButton.getSelection()) path.close();
- if (fillButton.getSelection()) gc.fillPath(path);
- if (drawButton.getSelection()) gc.drawPath(path);
- path.dispose();
-
- // shape on left
- Transform transform = new Transform(device);
- transform.translate((width-250)/4, height/2-150);
- gc.setTransform(transform);
- transform.dispose();
- path = new Path(device);
- path.cubicTo(-150, 100, 150, 200, 0, 300);
- if (closeButton.getSelection()) path.close();
- if (fillButton.getSelection()) gc.fillPath(path);
- if (drawButton.getSelection()) gc.drawPath(path);
- path.dispose();
- gc.setTransform(null);
-
- // shape on right
- path = new Path(device);
- path.moveTo(3*(width-250)/4 - 25 + 250, height/2);
- path.lineTo(3*(width-250)/4 + 50 + 250, height/2 - 200);
- path.lineTo(3*(width-250)/4 + 50 + 250, height/2 + 50);
- path.lineTo(3*(width-250)/4 - 25 + 250, height/2 + 150);
- path.lineTo(3*(width-250)/4 + 25 + 250, height/2 + 50);
- if (closeButton.getSelection()) path.close();
- if (fillButton.getSelection()) gc.fillPath(path);
- if (drawButton.getSelection()) gc.drawPath(path);
- path.dispose();
-
- if (pattern != null) pattern.dispose();
-}
-}
-
-
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/RGBTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/RGBTab.java
deleted file mode 100644
index 830b3e0a1a..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/RGBTab.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-/**
- * Miscellaneous tab that demonstrates emerging colors from layering other
- * colors.
- */
-public class RGBTab extends AnimatedGraphicsTab {
-
- int translateX, translateY;
- float diagTranslateX1, diagTranslateX2, diagTranslateY1, diagTranslateY2;
-
-/**
- * Constructor
- * @param example A GraphicsExample
- */
-public RGBTab(GraphicsExample example) {
- super(example);
- translateX = translateY = 0;
- diagTranslateX1 = diagTranslateX2 = diagTranslateY1 = diagTranslateY2 = 0;
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Misc"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("rgb"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("rgbDescription"); //$NON-NLS-1$
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.swt.examples.graphics.AnimatedGraphicsTab#next(int, int)
- */
-public void next(int width, int height) {
-
- float h = height;
- float w = width;
-
- translateX = (translateX+3)%width;
- translateY = (translateY+5)%height;
-
- diagTranslateX1 = (diagTranslateX1+6)%width;
- diagTranslateY1 = diagTranslateX1*(h/w);
-
- diagTranslateX2 = (diagTranslateX2+8)%width;
- diagTranslateY2 = -diagTranslateX2*(h/w) + h;
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.swt.examples.graphics.GraphicsTab#paint(org.eclipse.swt.graphics.GC, int, int)
- */
-public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- // horizontal rectangle
- Transform transform = new Transform(device);
- transform.translate(0, translateY);
- gc.setTransform(transform);
- transform.dispose();
-
- Path path = new Path(device);
- path.addRectangle(0, 0, width, 50);
- Pattern pattern = new Pattern(device, 0, 0, width, 50,
- device.getSystemColor(SWT.COLOR_BLUE), 0x7f,
- device.getSystemColor(SWT.COLOR_RED), 0x7f);
- gc.setBackgroundPattern(pattern);
- gc.fillPath(path);
- gc.drawPath(path);
- path.dispose();
-
- // vertical rectangle
- transform = new Transform(device);
- transform.translate(translateX, 0);
- gc.setTransform(transform);
- transform.dispose();
-
- path = new Path(device);
- path.addRectangle(0, 0, 50, height);
- pattern.dispose();
- pattern = new Pattern(device, 0, 0, 50, height,
- device.getSystemColor(SWT.COLOR_DARK_CYAN), 0x7f,
- device.getSystemColor(SWT.COLOR_WHITE), 0x7f);
- gc.setBackgroundPattern(pattern);
- gc.fillPath(path);
- gc.drawPath(path);
- path.dispose();
-
- // diagonal rectangle from bottom right corner
- Rectangle rect = new Rectangle(0, 0, 50, height);
- transform = new Transform(device);
- transform.translate(width-diagTranslateX1, (height/2)-diagTranslateY1);
-
- // rotate on center of rectangle
- transform.translate(rect.width/2, rect.height/2);
- transform.rotate(45);
- transform.translate(-rect.width/2, -rect.height/2);
- gc.setTransform(transform);
- transform.dispose();
-
- path = new Path(device);
- path.addRectangle(rect.x, rect.y, rect.width, rect.height);
- pattern.dispose();
- pattern = new Pattern(device, rect.x, rect.y, rect.width, rect.height,
- device.getSystemColor(SWT.COLOR_DARK_GREEN), 0x7f,
- device.getSystemColor(SWT.COLOR_DARK_MAGENTA), 0x7f);
- gc.setBackgroundPattern(pattern);
- gc.fillPath(path);
- gc.drawPath(path);
- path.dispose();
-
- // diagonal rectangle from top right corner
- transform = new Transform(device);
- transform.translate(width-diagTranslateX2, (height/2)-diagTranslateY2);
-
- // rotate on center of rectangle
- transform.translate(rect.width/2, rect.height/2);
- transform.rotate(-45);
- transform.translate(-rect.width/2, -rect.height/2);
- gc.setTransform(transform);
- transform.dispose();
-
- path = new Path(device);
- path.addRectangle(rect.x, rect.y, rect.width, rect.height);
- pattern.dispose();
- pattern = new Pattern(device, rect.x, rect.y, rect.width, rect.height,
- device.getSystemColor(SWT.COLOR_DARK_RED), 0x7f,
- device.getSystemColor(SWT.COLOR_YELLOW), 0x7f);
- gc.setBackgroundPattern(pattern);
- gc.fillPath(path);
- gc.drawPath(path);
- pattern.dispose();
- path.dispose();
-}
-
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/RegionClippingTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/RegionClippingTab.java
deleted file mode 100644
index 6b536f02b8..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/RegionClippingTab.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This tab demonstrates how to apply a region clipping and the effects of
- * applying one.
- */
-public class RegionClippingTab extends GraphicsTab {
-
- private Combo clippingCb;
- private Button colorButton1, colorButton2;
- private Menu menu1, menu2;
- private GraphicsBackground colorGB1, colorGB2;
-
-public RegionClippingTab(GraphicsExample example) {
- super(example);
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Clipping"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("RegionClipping"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("RegionClippingDescription"); //$NON-NLS-1$
-}
-
-public void dispose() {
- if (menu1 != null) {
- menu1.dispose();
- menu1 = null;
- }
- if (menu2 != null) {
- menu2.dispose();
- menu2 = null;
- }
-}
-
-/**
- * Creates the widgets used to control the drawing.
- */
-public void createControlPanel(Composite parent) {
- // create drop down combo for choosing clipping
- Composite comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout(2, false));
-
- new Label(comp, SWT.CENTER).setText(GraphicsExample
- .getResourceString("Clipping")); //$NON-NLS-1$
- clippingCb = new Combo(comp, SWT.DROP_DOWN);
- clippingCb.add(GraphicsExample.getResourceString("Region1")); //$NON-NLS-1$
- clippingCb.add(GraphicsExample.getResourceString("Region2")); //$NON-NLS-1$
- clippingCb.add(GraphicsExample.getResourceString("Add")); //$NON-NLS-1$
- clippingCb.add(GraphicsExample.getResourceString("Sub")); //$NON-NLS-1$
- clippingCb.add(GraphicsExample.getResourceString("Inter")); //$NON-NLS-1$
- clippingCb.select(0);
- clippingCb.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- example.redraw();
- }
- });
-
- // color menu
- ColorMenu cm = new ColorMenu();
- menu1 = cm.createMenu(parent.getParent(), new ColorListener() {
- public void setColor(GraphicsBackground gb) {
- colorGB1 = gb;
- colorButton1.setImage(gb.getThumbNail());
- example.redraw();
- }
- });
- menu2 = cm.createMenu(parent.getParent(), new ColorListener() {
- public void setColor(GraphicsBackground gb) {
- colorGB2 = gb;
- colorButton2.setImage(gb.getThumbNail());
- example.redraw();
- }
- });
-
- // initialize the color to blue
- colorGB1 = (GraphicsBackground)menu1.getItem(4).getData();
- // initialize the color to red
- colorGB2 = (GraphicsBackground)menu2.getItem(2).getData();
-
- // color button 1
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout(2, false));
-
- colorButton1 = new Button(comp, SWT.PUSH);
- colorButton1.setText(GraphicsExample
- .getResourceString("Color1")); //$NON-NLS-1$
- colorButton1.setImage(colorGB1.getThumbNail());
- colorButton1.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- final Button button = (Button) event.widget;
- final Composite parent = button.getParent();
- Rectangle bounds = button.getBounds();
- Point point = parent.toDisplay(new Point(bounds.x, bounds.y));
- menu1.setLocation(point.x, point.y + bounds.height);
- menu1.setVisible(true);
- }
- });
-
- // color button 2
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout(2, false));
-
- colorButton2 = new Button(comp, SWT.PUSH);
- colorButton2.setText(GraphicsExample
- .getResourceString("Color2")); //$NON-NLS-1$
- colorButton2.setImage(colorGB2.getThumbNail());
- colorButton2.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- final Button button = (Button) event.widget;
- final Composite parent = button.getParent();
- Rectangle bounds = button.getBounds();
- Point point = parent.toDisplay(new Point(bounds.x, bounds.y));
- menu2.setLocation(point.x, point.y + bounds.height);
- menu2.setVisible(true);
- }
- });
-}
-
-public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- // array of coordinate points of polygon 1 (region 1)
- int [] polygon1 = new int [] {10, height/2, 9*width/16, 10, 9*width/16, height-10};
- Region region1 = new Region(device);
- region1.add(polygon1);
-
- // array of coordinate points of polygon 2 (region 2)
- int [] polygon2 = new int [] {
- 9*width/16, 10,
- 9*width/16, height/8,
- 7*width/16, 2*height/8,
- 9*width/16, 3*height/8,
- 7*width/16, 4*height/8,
- 9*width/16, 5*height/8,
- 7*width/16, 6*height/8,
- 9*width/16, 7*height/8,
- 9*width/16, height-10,
- width-10, height/2
- };
- Region region2 = new Region(device);
- region2.add(polygon2);
-
- gc.setAlpha(127);
-
- int clippingIndex = clippingCb.getSelectionIndex();
-
- switch (clippingIndex) {
- case 0:
- // region 1
- gc.setClipping(region1);
- gc.setBackground(colorGB1.getBgColor1());
- gc.fillPolygon(polygon1);
- break;
- case 1:
- // region 2
- gc.setClipping(region2);
- gc.setBackground(colorGB2.getBgColor1());
- gc.fillPolygon(polygon2);
- break;
- case 2:
- // add
- region1.add(region2);
- break;
- case 3:
- // sub
- region1.subtract(region2);
- break;
- case 4:
- // intersect
- region1.intersect(region2);
- break;
- }
-
- if (clippingIndex > 1) {
- gc.setClipping(region1);
-
- gc.setBackground(colorGB1.getBgColor1());
- gc.fillPolygon(polygon1);
-
- gc.setBackground(colorGB2.getBgColor1());
- gc.fillPolygon(polygon2);
- }
-
- region1.dispose();
- region2.dispose();
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ShapesTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ShapesTab.java
deleted file mode 100644
index 8cebcdb321..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ShapesTab.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-/**
- * This tab draws 3D shapes (in 2D) using various line styles.
- */
-public class ShapesTab extends AnimatedGraphicsTab {
-
- int upDownValue;
- int inc = 1;
-
-public ShapesTab(GraphicsExample example) {
- super(example);
- upDownValue = 0;
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Lines"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("Shapes"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("ShapesDescription"); //$NON-NLS-1$
-}
-
-public void next(int width, int height) {
- upDownValue += inc;
-
- if (upDownValue > 5) inc = -1;
- if (upDownValue < -5) inc = 1;
-}
-
-public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- int size = 100;
-
- gc.setLineWidth(2);
-
- // ----- cube -----
-
- Transform transform = new Transform(device);
- transform.translate(width/4 - size, height/4 + -upDownValue);
- gc.setTransform(transform);
-
- gc.setLineStyle(SWT.LINE_DOT);
-
- // fill in left face
- gc.setBackground(device.getSystemColor(SWT.COLOR_RED));
- gc.fillPolygon(new int [] {0, 0, size/3, -size/2, size/3, size/2, 0, size});
-
- gc.setLineStyle(SWT.LINE_SOLID);
-
- // square
- gc.drawRectangle(0, 0, size, size);
-
- // next 3 solid lines
- gc.drawLine(0, 0, size/3, -size/2); // left
- gc.drawLine(size, 0, 4*size/3, -size/2); // middle
- gc.drawLine(size, size, 4*size/3, size/2); // right
-
- // 2 furthest solid lines
- gc.drawLine(size/3, -size/2, 4*size/3, -size/2); // horizontal
- gc.drawLine(4*size/3, size/2, 4*size/3, -size/2); // vertical
-
- // 3 dotted lines
- gc.setLineStyle(SWT.LINE_DOT);
- gc.drawLine(0, size, size/3, size/2);
- gc.drawLine(size/3, -size/2, size/3, size/2);
- gc.drawLine(4*size/3, size/2, size/3, size/2);
-
- // fill right side of cube
- gc.setBackground(device.getSystemColor(SWT.COLOR_GRAY));
- gc.fillPolygon(new int [] {size, 0, 4*size/3, -size/2, 4*size/3, size/2, size, size});
-
- transform.dispose();
-
- // ----- pyramid -----
-
- transform = new Transform(device);
- transform.translate(width/2 + size/2, height/4 + size + upDownValue);
- gc.setTransform(transform);
-
- // fill back of pyramid
- gc.fillPolygon(new int [] {size/3, -size/2, 6*size/10, -5*size/4, 4*size/3, -size/2});
-
- // fill left side of pyramid
- gc.setBackground(device.getSystemColor(SWT.COLOR_GREEN));
- gc.fillPolygon(new int [] {0, 0, 6*size/10, -5*size/4, size/3, -size/2});
-
- // select solid line style
- gc.setLineStyle(SWT.LINE_SOLID);
-
- // 2 solid lines of base
- gc.drawLine(0, 0, size, 0);
- gc.drawLine(size, 0, 4*size/3, -size/2);
-
- // 3 solid lines of pyramid
- gc.drawLine(0, 0, 6*size/10, -5*size/4);
- gc.drawLine(size, 0, 6*size/10, -5*size/4);
- gc.drawLine(4*size/3, -size/2, 6*size/10, -5*size/4);
-
- // select dot line style
- gc.setLineStyle(SWT.LINE_DOT);
-
- // 3 dotted lines
- gc.drawLine(0, 0, size/3, -size/2); // left
- gc.drawLine(size/3, -size/2, 6*size/10, -5*size/4); // to top of pyramid
- gc.drawLine(4*size/3, -size/2, size/3, -size/2); // right
-
- transform.dispose();
-
- // ----- rectangular prism -----
-
- transform = new Transform(device);
- transform.translate(width/2 + upDownValue, height/2 + size);
- gc.setTransform(transform);
-
- // fill bottom
- gc.setBackground(device.getSystemColor(SWT.COLOR_BLUE));
- gc.fillPolygon(new int [] {0, size, size/3, size/2, 7*size/3, size/2, 2*size, size});
-
- // select solid line style
- gc.setLineStyle(SWT.LINE_SOLID);
-
- gc.drawRectangle(0, 0, 2*size, size);
-
- // next 3 solid lines
- gc.drawLine(0, 0, size/3, -size/2); // left
- gc.drawLine(2*size, 0, 7*size/3, -size/2); // middle
- gc.drawLine(2*size, size, 7*size/3, size/2); // right
-
- // 2 furthest solid lines
- gc.drawLine(size/3, -size/2, 7*size/3, -size/2); // horizontal
- gc.drawLine(7*size/3, size/2, 7*size/3, -size/2); // vertical
-
- // 3 dotted lines
- gc.setLineStyle(SWT.LINE_DASHDOTDOT);
- gc.drawLine(0, size, size/3, size/2);
- gc.drawLine(size/3, -size/2, size/3, size/2);
- gc.drawLine(7*size/3, size/2, size/3, size/2);
-
- // fill top
- gc.setBackground(device.getSystemColor(SWT.COLOR_GRAY));
- gc.fillPolygon(new int [] {0, 0, size/3, -size/2, 7*size/3, -size/2, 2*size, 0});
-
- transform.dispose();
-
- // ----- triangular shape -----
- transform = new Transform(device);
- transform.translate(width/4 - size - upDownValue, height/2 + size + upDownValue);
- gc.setTransform(transform);
-
- // fill back of shape (top left)
- gc.setBackground(device.getSystemColor(SWT.COLOR_YELLOW));
- gc.fillPolygon(new int [] {0, 0, size/2, -size, size/2, -size/3});
-
- // fill back of shape (bottom right)
- gc.fillPolygon(new int [] {size, 0, size/2, size, size/2, -size/3});
-
- // select solid line style
- gc.setLineStyle(SWT.LINE_SOLID);
-
- // solid lines of bottom triangle
- gc.drawLine(0, 0, size/2, size);
- gc.drawLine(size, 0, size/2, size);
-
- // solid lines of top triangle
- gc.drawLine(0, 0, size/2, -size);
- gc.drawLine(size, 0, size/2, -size);
-
- // solid lines on top
- gc.drawLine(0, 0, size/2, -size/3);
- gc.drawLine(size, 0, size/2, -size/3);
- gc.drawLine(size/2, -size/3, size/2, size);
- gc.drawLine(size/2, -size/3, size/2, -size);
-
- transform.dispose();
-}
-
-}
-
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/SpiralTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/SpiralTab.java
deleted file mode 100644
index 59122ef728..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/SpiralTab.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This tab presents a spiral consisting of the number of petals specified.
- * */
-public class SpiralTab extends AnimatedGraphicsTab {
-
- int angle; // angle by which to rotate the petals
- Spinner petalSpinner; // spinner to control number of petals
- Button colorButton;
- GraphicsBackground foreground;
- Menu menu;
-
-public SpiralTab(GraphicsExample example) {
- super(example);
- angle = -90;
-}
-
-public void dispose() {
- if (menu != null) {
- menu.dispose();
- menu = null;
- }
-}
-/**
- * This method creates a spinner for specifying the number of petals. The call to the
- * createControlPanel method in the super class create the controls that are
- * defined in the super class.
- *
- * @param parent The parent composite
- */
-public void createControlPanel(Composite parent) {
- super.createControlPanel(parent);
-
- // create spinner number of petals
- Composite comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout(2, false));
-
- new Label(comp, SWT.CENTER).setText(GraphicsExample
- .getResourceString("Petals")); //$NON-NLS-1$
- petalSpinner = new Spinner(comp, SWT.BORDER | SWT.WRAP);
- petalSpinner.setSelection(8);
- petalSpinner.setMinimum(3);
- petalSpinner.setMaximum(20);
- petalSpinner.addListener(SWT.Selection, new Listener() {
- public void handleEvent (Event event) {
- example.redraw();
- }
- });
-
- // create color button
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout());
-
- ColorMenu cm = new ColorMenu();
- cm.setPatternItems(example.checkAdvancedGraphics());
- menu = cm.createMenu(parent.getParent(), new ColorListener() {
- public void setColor(GraphicsBackground gb) {
- foreground = gb;
- colorButton.setImage(gb.getThumbNail());
- example.redraw();
- }
- });
-
- // initialize the foreground to the 2nd item in the menu
- foreground = (GraphicsBackground)menu.getItem(1).getData();
-
- // color button
- colorButton = new Button(comp, SWT.PUSH);
- colorButton.setText(GraphicsExample
- .getResourceString("Color")); //$NON-NLS-1$
- colorButton.setImage(foreground.getThumbNail());
- colorButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- final Button button = (Button) event.widget;
- final Composite parent = button.getParent();
- Rectangle bounds = button.getBounds();
- Point point = parent.toDisplay(new Point(bounds.x, bounds.y));
- menu.setLocation(point.x, point.y + bounds.height);
- menu.setVisible(true);
- }
- });
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Misc"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("Spiral"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("SpiralDescription"); //$NON-NLS-1$
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.swt.examples.graphics.AnimatedGraphicsTab#getAnimationTime()
- */
-public int getInitialAnimationTime() {
- return 150;
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.swt.examples.graphics.AnimatedGraphicsTab#next(int, int)
- */
-public void next(int width, int height) {
- if (angle == 270) {
- angle = -90;
- }
- angle += 10;
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.swt.examples.graphics.GraphicsTab#paint(org.eclipse.swt.graphics.GC, int, int)
- */
-public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- // set line attributes
- gc.setLineWidth(20);
- gc.setLineCap(SWT.CAP_ROUND); // round line ends
- gc.setAntialias(SWT.ON); // smooth jagged edges
-
- Pattern pattern = null;
- if (foreground.getBgColor1() != null) {
- gc.setForeground(foreground.getBgColor1());
- } else if (foreground.getBgImage() != null) {
- pattern = new Pattern(device, foreground.getBgImage());
- gc.setForegroundPattern(pattern);
- }
-
- // draw petals for the spiral
- Transform transform;
- int n = petalSpinner.getSelection();
- for (int i=0; i < n; i++) {
- transform = new Transform(device);
- transform.translate(width/2, height/2);
- transform.rotate(-(angle + 360/n * i));
- gc.setTransform(transform);
- gc.drawArc(0, 0, width/3, height/6, 0, 180);
- transform.dispose();
- }
-
- if (pattern != null) pattern.dispose();
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/StarPolyTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/StarPolyTab.java
deleted file mode 100644
index e6ea151471..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/StarPolyTab.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-public class StarPolyTab extends GraphicsTab {
- int[] radial;
- static final int POINTS = 11;
-
- Combo fillRuleCb;
-
-public StarPolyTab(GraphicsExample example) {
- super(example);
- radial = new int[POINTS * 2];
-}
-
-public void createControlPanel(Composite parent) {
- new Label(parent, SWT.NONE).setText(GraphicsExample.getResourceString("FillRule")); //$NON-NLS-1$
- fillRuleCb = new Combo(parent, SWT.DROP_DOWN);
- fillRuleCb.add("FILL_EVEN_ODD");
- fillRuleCb.add("FILL_WINDING");
- fillRuleCb.select(0);
- fillRuleCb.addListener(SWT.Selection, new Listener() {
- public void handleEvent (Event event) {
- example.redraw();
- }
- });
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Polygons"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("StarPolygon"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("StarPolygonDescription"); //$NON-NLS-1$
-}
-
-public void paint(GC gc, int width, int height) {
- int centerX = width / 2;
- int centerY = height / 2;
- int pos = 0;
- for (int i = 0; i < POINTS; ++i) {
- double r = Math.PI*2 * pos/POINTS;
- radial[i*2] = (int)((1+Math.cos(r))*centerX);
- radial[i*2+1] = (int)((1+Math.sin(r))*centerY);
- pos = (pos + POINTS/2) % POINTS;
- }
- gc.setFillRule(fillRuleCb.getSelectionIndex() != 0 ? SWT.FILL_WINDING : SWT.FILL_EVEN_ODD);
- gc.setBackground(gc.getDevice().getSystemColor(SWT.COLOR_WHITE));
- gc.fillPolygon(radial);
- gc.drawPolygon(radial);
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/TextAntialiasTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/TextAntialiasTab.java
deleted file mode 100644
index 89ba22ce0c..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/TextAntialiasTab.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.swt.examples.graphics;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This tab demonstrates antialiasing for text. Antialiasing is used for
- * smoothing jagged edges in graphics. This tab allows the user to see the
- * effects of different antialiasing values.
- */
-public class TextAntialiasTab extends GraphicsTab {
-
- Combo aliasCombo;
- static int[] aliasValues = { SWT.OFF, SWT.DEFAULT, SWT.ON };
-
- Button colorButton;
- Menu menu;
- GraphicsBackground textColor;
- String text = GraphicsExample.getResourceString("SWT");
-
-
-public TextAntialiasTab(GraphicsExample example) {
- super(example);
-}
-
-public String getCategory() {
- return GraphicsExample.getResourceString("Antialiasing"); //$NON-NLS-1$
-}
-
-public String getText() {
- return GraphicsExample.getResourceString("Text"); //$NON-NLS-1$
-}
-
-public String getDescription() {
- return GraphicsExample.getResourceString("AntialiasingTextDesc"); //$NON-NLS-1$
-}
-
-public void dispose() {
- if (menu != null) {
- menu.dispose();
- menu = null;
- }
-}
-
-public void createControlPanel(Composite parent) {
-
- Composite comp;
-
- // create drop down combo for antialiasing
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout(2, false));
- new Label(comp, SWT.CENTER).setText(GraphicsExample
- .getResourceString("Antialiasing")); //$NON-NLS-1$
- aliasCombo = new Combo(comp, SWT.DROP_DOWN);
- aliasCombo.add("OFF");
- aliasCombo.add("DEFAULT");
- aliasCombo.add("ON");
- aliasCombo.select(0);
- aliasCombo.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- example.redraw();
- }
- });
-
- ColorMenu cm = new ColorMenu();
- cm.setColorItems(true);
- menu = cm.createMenu(parent.getParent(), new ColorListener() {
- public void setColor(GraphicsBackground gb) {
- textColor = gb;
- colorButton.setImage(gb.getThumbNail());
- example.redraw();
- }
- });
-
- // create color button
- comp = new Composite(parent, SWT.NONE);
- comp.setLayout(new GridLayout());
-
- // initialize the color to black
- textColor = (GraphicsBackground)menu.getItem(1).getData();
-
- colorButton = new Button(comp, SWT.PUSH);
- colorButton.setText(GraphicsExample.getResourceString("Color")); //$NON-NLS-1$
- colorButton.setImage(textColor.getThumbNail());
-
- colorButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- final Button button = (Button) event.widget;
- final Composite parent = button.getParent();
- Rectangle bounds = button.getBounds();
- Point point = parent.toDisplay(new Point(bounds.x, bounds.y));
- menu.setLocation(point.x, point.y + bounds.height);
- menu.setVisible(true);
- }
- });
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.swt.examples.graphics.GraphicsTab#paint(org.eclipse.swt.graphics.GC, int, int)
- */
-public void paint(GC gc, int width, int height) {
- if (!example.checkAdvancedGraphics()) return;
- Device device = gc.getDevice();
-
- if (textColor != null && textColor.getBgColor1() != null)
- gc.setForeground(textColor.getBgColor1());
-
- gc.setTextAntialias(aliasValues[aliasCombo.getSelectionIndex()]);
-
- // column 1, row 1
- Font font = new Font(device, getPlatformFontFace(0), 100, SWT.NORMAL);
- gc.setFont(font);
- Point size = gc.stringExtent(text);
- gc.drawString(text, width/4 - size.x/2, height/4 - size.y/2, true);
- font.dispose();
-
- // column 1, row 2
- font = new Font(device, getPlatformFontFace(1), 100, SWT.NORMAL);
- gc.setFont(font);
- size = gc.stringExtent(text);
- gc.drawString(text, width/4 - size.x/2, 3*height/4 - size.y/2, true);
- font.dispose();
-
- // column 2, row 1
- font = new Font(device, getPlatformFontFace(2), 50, SWT.NORMAL);
- gc.setFont(font);
- size = gc.stringExtent(text);
- gc.drawString(text, (width-size.x)/2, 0, true);
- font.dispose();
-
- // column 2, row 2
- font = new Font(device, getPlatformFontFace(3), 100, SWT.ITALIC);
- gc.setFont(font);
- size = gc.stringExtent(text);
- gc.drawString(text, (width-size.x)/2, (height-size.y)/2, true);
- font.dispose();
-
- // column 2, row 3
- font = new Font(device, getPlatformFontFace(4), 50, SWT.NORMAL);
- gc.setFont(font);
- size = gc.stringExtent(text);
- gc.drawString(text, (width-size.x)/2, height-size.y, true);
- font.dispose();
-
- // column 3, row 1
- font = new Font(device, getPlatformFontFace(5), 100, SWT.NORMAL);
- gc.setFont(font);
- size = gc.stringExtent(text);
- gc.drawString(text, 3*width/4 - size.x/2, height/4 - size.y/2, true);
- font.dispose();
-
- // column 3, row 2
- font = new Font(device, getPlatformFontFace(6), 100, SWT.NORMAL);
- gc.setFont(font);
- size = gc.stringExtent(text);
- gc.drawString(text, 3*width/4 - size.x/2, 3*height/4 - size.y/2, true);
- font.dispose();
-}
-
-/**
- * Returns the name of a valid font for the host platform.
- *
- * @param index
- * index is used to determine the appropriate font face
- */
-static String getPlatformFontFace(int index) {
- if(SWT.getPlatform() == "win32" || SWT.getPlatform() == "wpf") {
- return new String [] {"Bookman Old Style", "Century Gothic", "Comic Sans MS", "Impact", "Garamond", "Lucida Console", "Monotype Corsiva"} [index];
- } else if (SWT.getPlatform() == "motif") {
- return new String [] {"urw palladio l", "Courier", "qub", "URW Gothic L", "Times", "Lucida", "URW ChanceryL"} [index];
- } else if (SWT.getPlatform() == "gtk") {
- return new String [] {"Luxi Mono", "KacstTitleL", "Baekmuk Batang", "Baekmuk Headline", "KacstFarsi", "Baekmuk Gulim", "URW Chancery L"} [index];
- } else if (SWT.getPlatform() == "carbon") {
- return new String [] {"Apple Chancery", "Brush Script MT", "Comic Sans MS", "Impact", "Herculanum", "Lucida Grande", "Papyrus"} [index];
- } else { // photon, etc ...
- return new String [] {"Courier", "Verdana", "Verdana", "Verdana", "Verdana", "Verdana", "Verdana"} [index];
- }
-}
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ace_club.jpg b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ace_club.jpg
deleted file mode 100644
index ed5ea311ca..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ace_club.jpg
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ace_diamond.jpg b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ace_diamond.jpg
deleted file mode 100644
index 3cf13f2f04..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ace_diamond.jpg
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ace_hearts.jpg b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ace_hearts.jpg
deleted file mode 100644
index e7431b155b..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ace_hearts.jpg
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ace_spade.jpg b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ace_spade.jpg
deleted file mode 100644
index f409111c79..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ace_spade.jpg
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/alpha_img1.png b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/alpha_img1.png
deleted file mode 100644
index 6b410e2eae..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/alpha_img1.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/alpha_img2.png b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/alpha_img2.png
deleted file mode 100644
index b720214832..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/alpha_img2.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/back.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/back.gif
deleted file mode 100644
index 4fb4150103..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/back.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/cube.png b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/cube.png
deleted file mode 100644
index 636a4a3dda..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/cube.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/db.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/db.gif
deleted file mode 100644
index 0a13d8cca8..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/db.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/font.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/font.gif
deleted file mode 100644
index 65389495f7..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/font.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/help.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/help.gif
deleted file mode 100644
index 9d70301dae..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/help.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/home_nav.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/home_nav.gif
deleted file mode 100644
index 4472e8ce5b..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/home_nav.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/houses.png b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/houses.png
deleted file mode 100644
index ef5814c591..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/houses.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/irmaos.jpg b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/irmaos.jpg
deleted file mode 100644
index 3352cdee65..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/irmaos.jpg
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/maze.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/maze.bmp
deleted file mode 100644
index 5b87e76271..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/maze.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/next.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/next.gif
deleted file mode 100644
index e2f8c3e1fe..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/next.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ovals.png b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ovals.png
deleted file mode 100644
index df7fe5e59a..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ovals.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/pattern1.jpg b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/pattern1.jpg
deleted file mode 100644
index d66a7d0b86..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/pattern1.jpg
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/pattern2.jpg b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/pattern2.jpg
deleted file mode 100644
index d689eca3e1..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/pattern2.jpg
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/pattern3.jpg b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/pattern3.jpg
deleted file mode 100644
index 81e06ac01a..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/pattern3.jpg
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/pause.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/pause.gif
deleted file mode 100644
index 161e3f594f..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/pause.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/play.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/play.gif
deleted file mode 100644
index 16f4e25175..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/play.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/swap.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/swap.gif
deleted file mode 100644
index 870934b693..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/swap.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/swt.png b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/swt.png
deleted file mode 100644
index 4049b5539c..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/swt.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/task.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/task.gif
deleted file mode 100644
index d3d10f5aac..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/task.gif
+++ /dev/null
Binary files differ
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 1c98dc3941..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld1.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.helloworld;
-
-
-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 320c8c8d76..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld2.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.helloworld;
-
-
-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 7b61ad157c..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld3.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.helloworld;
-
-
-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 204f458fa0..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld4.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.helloworld;
-
-
-
-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 63611549df..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/helloworld/HelloWorld5.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.helloworld;
-
-
-
-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 93f7b3e87e..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/HoverHelp.java
+++ /dev/null
@@ -1,355 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.hoverhelp;
-
-
-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);
- try {
- stream.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- } 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 | SWT.TOOL);
- 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);
- }
-}
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
deleted file mode 100755
index 26c7477336..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/information.gif
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index cf4fdf93c7..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/hoverhelp/warning.gif
+++ /dev/null
Binary files differ
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 da68073104..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java
+++ /dev/null
@@ -1,2392 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.imageanalyzer;
-
-
-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_CHARS = 5;
- static final int ALPHA_CONSTANT = 0;
- static final int ALPHA_X = 1;
- static final int ALPHA_Y = 2;
- static final String[] OPEN_FILTER_EXTENSIONS = new String[] {
- "*.bmp; *.gif; *.ico; *.jfif; *.jpeg; *.jpg; *.png; *.tif; *.tiff",
- "*.bmp", "*.gif", "*.ico", "*.jpg; *.jpeg; *.jfif", "*.png", "*.tif; *.tiff" };
- static final String[] OPEN_FILTER_NAMES = new String[] {
- bundle.getString("All_images") + " (bmp, gif, ico, jfif, jpeg, jpg, png, tif, tiff)",
- "BMP (*.bmp)", "GIF (*.gif)", "ICO (*.ico)", "JPEG (*.jpg, *.jpeg, *.jfif)",
- "PNG (*.png)", "TIFF (*.tif, *.tiff)" };
- static final String[] SAVE_FILTER_EXTENSIONS = new String[] {
- "*.bmp", "*.bmp", "*.gif", "*.ico", "*.jpg", "*.png", "*.tif", "*.bmp" };
- static final String[] SAVE_FILTER_NAMES = new String[] {
- "Uncompressed BMP (*.bmp)", "RLE Compressed BMP (*.bmp)", "GIF (*.gif)",
- "ICO (*.ico)", "JPEG (*.jpg)", "PNG (*.png)",
- "TIFF (*.tif)", "OS/2 BMP (*.bmp)" };
-
- 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.NONE);
- 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.
- 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);
-
- // Add a composite to contain some control widgets across the top.
- Composite controls = new Composite(shell, SWT.NONE);
- RowLayout rowLayout = new RowLayout();
- rowLayout.marginTop = 5;
- rowLayout.marginBottom = 5;
- rowLayout.spacing = 8;
- controls.setLayout(rowLayout);
- GridData gridData = new GridData();
- gridData.horizontalSpan = 2;
- controls.setLayoutData(gridData);
-
- // Combo to change the background.
- Group group = new Group(controls, SWT.NONE);
- 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.NONE);
- 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.NONE);
- 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.NONE);
- 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.NONE);
- 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.NONE);
- 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.NONE);
- 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 | SWT.NO_BACKGROUND);
- 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) {
- Rectangle bounds = imageCanvas.getBounds();
- event.gc.fillRectangle(0, 0, bounds.width, bounds.height);
- } else {
- 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.NONE);
- 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.NONE);
- 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.NONE);
- 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.NONE);
- 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.
- Label 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.NONE);
- 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.NONE);
- 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.NONE);
- 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.NONE);
- 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.NONE);
- 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.NONE);
- 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.NONE);
- 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.NONE);
- 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.NONE);
- 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.PUSH);
- item.setText(bundle.getString("OpenFile"));
- item.setAccelerator(SWT.MOD1 + 'O');
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- menuOpenFile();
- }
- });
-
- // File -> Open URL...
- item = new MenuItem(fileMenu, SWT.PUSH);
- item.setText(bundle.getString("OpenURL"));
- item.setAccelerator(SWT.MOD1 + 'U');
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- menuOpenURL();
- }
- });
-
- // File -> Reopen
- item = new MenuItem(fileMenu, SWT.PUSH);
- item.setText(bundle.getString("Reopen"));
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- menuReopen();
- }
- });
-
- new MenuItem(fileMenu, SWT.SEPARATOR);
-
- // File -> Load File... (natively)
- item = new MenuItem(fileMenu, SWT.PUSH);
- item.setText(bundle.getString("LoadFile"));
- item.setAccelerator(SWT.MOD1 + 'L');
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- menuLoad();
- }
- });
-
- new MenuItem(fileMenu, SWT.SEPARATOR);
-
- // File -> Save
- item = new MenuItem(fileMenu, SWT.PUSH);
- item.setText(bundle.getString("Save"));
- item.setAccelerator(SWT.MOD1 + 'S');
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- menuSave();
- }
- });
-
- // File -> Save As...
- item = new MenuItem(fileMenu, SWT.PUSH);
- 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.PUSH);
- 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.PUSH);
- item.setText(bundle.getString("Print"));
- item.setAccelerator(SWT.MOD1 + 'P');
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- menuPrint();
- }
- });
-
- new MenuItem(fileMenu, SWT.SEPARATOR);
-
- // File -> Exit
- item = new MenuItem(fileMenu, SWT.PUSH);
- 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.PUSH);
- item.setText("K");
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- menuComposeAlpha(ALPHA_CONSTANT);
- }
- });
-
- // Alpha -> (K + x) % 256
- item = new MenuItem(alphaMenu, SWT.PUSH);
- 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.PUSH);
- 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();
- }
- }
-
- /* Just use Image(device, filename) to load an image file. */
- void menuLoad() {
- animate = false; // stop any animation in progress
-
- // Get the user to choose an image file.
- FileDialog fileChooser = new FileDialog(shell, SWT.OPEN);
- if (lastPath != null)
- fileChooser.setFilterPath(lastPath);
- fileChooser.setFilterExtensions(OPEN_FILTER_EXTENSIONS);
- fileChooser.setFilterNames(OPEN_FILTER_NAMES);
- 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 {
- // Read the new image from the chosen file.
- long startTime = System.currentTimeMillis();
- Image newImage = new Image(display, filename);
- loadTime = System.currentTimeMillis() - startTime; // don't include getImageData in load time
- imageData = newImage.getImageData();
-
- // Cache the filename.
- currentName = filename;
- fileName = filename;
-
- // Fill in array and loader data.
- loader = new ImageLoader();
- imageDataArray = new ImageData[] {imageData};
- loader.data = imageDataArray;
-
- // Display the image.
- imageDataIndex = 0;
- displayImage(imageData);
- } catch (SWTException e) {
- showErrorDialog(bundle.getString("Loading_lc"), filename, e);
- } catch (SWTError e) {
- showErrorDialog(bundle.getString("Loading_lc"), filename, e);
- } catch (OutOfMemoryError e) {
- showErrorDialog(bundle.getString("Loading_lc"), filename, e);
- } finally {
- shell.setCursor(null);
- imageCanvas.setCursor(crossCursor);
- waitCursor.dispose();
- }
- }
-
- void menuOpenFile() {
- animate = false; // stop any animation in progress
-
- // Get the user to choose an image file.
- FileDialog fileChooser = new FileDialog(shell, SWT.OPEN);
- if (lastPath != null)
- fileChooser.setFilterPath(lastPath);
- fileChooser.setFilterExtensions(OPEN_FILTER_EXTENSIONS);
- fileChooser.setFilterNames(OPEN_FILTER_NAMES);
- 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);
- ImageLoader oldLoader = loader;
- 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]);
- }
- } catch (SWTException e) {
- showErrorDialog(bundle.getString("Loading_lc"), filename, e);
- loader = oldLoader;
- } catch (SWTError e) {
- showErrorDialog(bundle.getString("Loading_lc"), filename, e);
- loader = oldLoader;
- } catch (OutOfMemoryError e) {
- showErrorDialog(bundle.getString("Loading_lc"), filename, e);
- loader = oldLoader;
- } finally {
- shell.setCursor(null);
- imageCanvas.setCursor(crossCursor);
- waitCursor.dispose();
- }
- }
-
- void menuOpenURL() {
- animate = false; // stop any animation in progress
-
- // 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);
- ImageLoader oldLoader = loader;
- 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 URL.
- long startTime = System.currentTimeMillis();
- imageDataArray = loader.load(stream);
- loadTime = System.currentTimeMillis() - startTime;
- stream.close();
- if (imageDataArray.length > 0) {
- currentName = urlname;
- fileName = null;
-
- // If there are multiple images (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.
- imageDataIndex = 0;
- displayImage(imageDataArray[imageDataIndex]);
- }
- } catch (Exception e) {
- showErrorDialog(bundle.getString("Loading_lc"), urlname, e);
- loader = oldLoader;
- } catch (OutOfMemoryError e) {
- showErrorDialog(bundle.getString("Loading_lc"), urlname, e);
- loader = oldLoader;
- } 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);
- } catch (SWTError 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) {
- String name = fileName;
- int nameStart = name.lastIndexOf(java.io.File.separatorChar);
- if (nameStart > -1) {
- name = name.substring(nameStart + 1);
- }
- fileChooser.setFileName(name);
- }
- fileChooser.setFilterExtensions(SAVE_FILTER_EXTENSIONS);
- fileChooser.setFilterNames(SAVE_FILTER_NAMES);
- String filename = fileChooser.open();
- lastPath = fileChooser.getFilterPath();
- if (filename == null)
- return;
-
- // Figure out what file type the user wants saved.
- int filetype = fileChooser.getFilterIndex();
- if (filetype == -1) {
- /* The platform file dialog does not support user-selectable file filters.
- * Determine the desired type by looking at the file extension.
- */
- 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.
- boolean multi = false;
- if (loader.data.length > 1) {
- MessageBox box = new MessageBox(shell, SWT.ICON_QUESTION | SWT.YES | SWT.NO | SWT.CANCEL);
- box.setMessage(createMsg(bundle.getString("Save_all"), new Integer(loader.data.length)));
- int result = box.open();
- if (result == SWT.CANCEL) return;
- if (result == SWT.YES) multi = true;
- }
- /* If the image has transparency but the user has transparency turned off,
- * turn it off in the saved image. */
- int transparentPixel = imageData.transparentPixel;
- if (!multi && transparentPixel != -1 && !transparent) {
- imageData.transparentPixel = -1;
- }
-
- if (!multi) loader.data = new ImageData[] {imageData};
- loader.save(filename, filetype);
-
- /* Restore the previous transparency setting. */
- if (!multi && transparentPixel != -1 && !transparent) {
- imageData.transparentPixel = transparentPixel;
- }
-
- // 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);
- } catch (SWTError 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(SAVE_FILTER_EXTENSIONS);
- fileChooser.setFilterNames(SAVE_FILTER_NAMES);
- String filename = fileChooser.open();
- lastPath = fileChooser.getFilterPath();
- if (filename == null)
- return;
-
- // Figure out what file type the user wants saved.
- int filetype = fileChooser.getFilterIndex();
- if (filetype == -1) {
- /* The platform file dialog does not support user-selectable file filters.
- * Determine the desired type by looking at the file extension.
- */
- 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);
- } catch (SWTError 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.NONE);
- 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
- Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
- shell.setCursor(waitCursor);
- imageCanvas.setCursor(waitCursor);
- try {
- loader = new ImageLoader();
- ImageData[] newImageData;
- if (fileName == null) {
- URL url = new URL(currentName);
- InputStream stream = url.openStream();
- long startTime = System.currentTimeMillis();
- newImageData = loader.load(stream);
- loadTime = System.currentTimeMillis() - startTime;
- stream.close();
- } else {
- long startTime = System.currentTimeMillis();
- newImageData = loader.load(fileName);
- loadTime = System.currentTimeMillis() - startTime;
- }
- imageDataIndex = 0;
- displayImage(newImageData[imageDataIndex]);
-
- } catch (Exception e) {
- showErrorDialog(bundle.getString("Reloading_lc"), currentName, e);
- } catch (OutOfMemoryError 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);
- boolean hasAlpha = false;
- int alphaValue = 0;
- if (imageData.alphaData != null && imageData.alphaData.length > 0) {
- hasAlpha = true;
- alphaValue = imageData.getAlpha(x, y);
- }
- String rgbMessageFormat = bundle.getString(hasAlpha ? "RGBA" : "RGB");
- Object[] rgbArgs = {
- Integer.toString(rgb.red),
- Integer.toString(rgb.green),
- Integer.toString(rgb.blue),
- Integer.toString(alphaValue)
- };
- Object[] rgbHexArgs = {
- Integer.toHexString(rgb.red),
- Integer.toHexString(rgb.green),
- Integer.toHexString(rgb.blue),
- Integer.toHexString(alphaValue)
- };
- Object[] args = {
- new Integer(x),
- new Integer(y),
- new Integer(pixel),
- Integer.toHexString(pixel),
- createMsg(rgbMessageFormat, rgbArgs),
- createMsg(rgbMessageFormat, rgbHexArgs),
- (pixel == imageData.transparentPixel) ? bundle.getString("Color_at_transparent") : ""};
- 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) {
- resetScaleCombos();
- 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),
- (imageData.alphaData != null && imageData.alphaData.length > 0) ?
- bundle.getString("Scroll_for_alpha") : "" });
- 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) {
- int start = index - INDEX_DIGITS;
- int length = INDEX_DIGITS;
- if (Character.isLetter(data.charAt(index-1))) {
- start = index - ALPHA_CHARS;
- length = ALPHA_CHARS;
- }
- dataText.setStyleRange(new StyleRange(start, length, dataText.getForeground(), dataText.getBackground(), SWT.BOLD));
- }
-
- statusLabel.setText("");
-
- // Redraw both canvases.
- resetScrollBars();
- paletteCanvas.redraw();
- imageCanvas.redraw();
- }
-
- void paintImage(PaintEvent event) {
- GC gc = event.gc;
- Image paintImage = image;
-
- /* If the user wants to see the transparent pixel in its actual color,
- * then temporarily turn off transparency.
- */
- int transparentPixel = imageData.transparentPixel;
- if (transparentPixel != -1 && !transparent) {
- imageData.transparentPixel = -1;
- paintImage = new Image(display, imageData);
- }
-
- /* Scale the image when drawing, using the user's selected scaling factor. */
- int w = Math.round(imageData.width * xscale);
- int h = Math.round(imageData.height * yscale);
-
- /* If any of the background is visible, fill it with the background color. */
- Rectangle bounds = imageCanvas.getBounds();
- if (imageData.getTransparencyType() != SWT.TRANSPARENCY_NONE) {
- /* If there is any transparency at all, fill the whole background. */
- gc.fillRectangle(0, 0, bounds.width, bounds.height);
- } else {
- /* Otherwise, just fill in the backwards L. */
- if (ix + w < bounds.width) gc.fillRectangle(ix + w, 0, bounds.width - (ix + w), bounds.height);
- if (iy + h < bounds.height) gc.fillRectangle(0, iy + h, ix + w, bounds.height - (iy + h));
- }
-
- /* Draw the image */
- gc.drawImage(
- paintImage,
- 0,
- 0,
- imageData.width,
- imageData.height,
- ix + imageData.x,
- iy + imageData.y,
- w,
- h);
-
- /* If there is a mask and the user wants to see it, draw it. */
- if (showMask && (imageData.getTransparencyType() != SWT.TRANSPARENCY_NONE)) {
- ImageData maskImageData = imageData.getTransparencyMask();
- Image maskImage = new Image(display, maskImageData);
- gc.drawImage(
- maskImage,
- 0,
- 0,
- imageData.width,
- imageData.height,
- w + 10 + ix + imageData.x,
- iy + imageData.y,
- w,
- h);
- maskImage.dispose();
- }
-
- /* If transparency was temporarily disabled, restore it. */
- 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) {
- final int MAX_DUMP = 1024 * 1024;
- if (image == null) return "";
- boolean truncated = false;
- char[] dump = null;
- byte[] alphas = imageData.alphaData;
- try {
- int length = imageData.height * (6 + 3 * imageData.bytesPerLine + lineDelimiter.length());
- if (alphas != null && alphas.length > 0) {
- length += imageData.height * (6 + 3 * imageData.width + lineDelimiter.length()) + 6 + lineDelimiter.length();
- }
- dump = new char[length];
- } catch (OutOfMemoryError e) {
- /* Too much data to dump - truncate. */
- dump = new char[MAX_DUMP];
- truncated = true;
- }
- int index = 0;
- try {
- 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);
- }
- }
- }
- if (alphas != null && alphas.length > 0) {
- dump[index++] = lineDelimiter.charAt(0);
- if (lineDelimiter.length() > 1) {
- dump[index++] = lineDelimiter.charAt(1);
- }
- System.arraycopy(new char[]{'A','l','p','h','a',':'}, 0, dump, index, 6);
- index +=6;
- dump[index++] = lineDelimiter.charAt(0);
- if (lineDelimiter.length() > 1) {
- dump[index++] = lineDelimiter.charAt(1);
- }
- for (int i = 0; i < alphas.length; i++) {
- if (i % imageData.width == 0) {
- int line = i / imageData.width;
- 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 = alphas[i];
- dump[index++] = Character.forDigit((b & 0xF0) >> 4, 16);
- dump[index++] = Character.forDigit(b & 0x0F, 16);
- dump[index++] = ' ';
- if ((i + 1) % imageData.width == 0) {
- dump[index++] = lineDelimiter.charAt(0);
- if (lineDelimiter.length() > 1) {
- dump[index++] = lineDelimiter.charAt(1);
- }
- }
- }
- }
- } catch (IndexOutOfBoundsException e) {}
- String result = "";
- try {
- result = new String(dump);
- } catch (OutOfMemoryError e) {
- /* Too much data to display in the text widget - truncate. */
- result = new String(dump, 0, MAX_DUMP);
- truncated = true;
- }
- if (truncated) result += "\n ...data dump truncated at " + MAX_DUMP + "bytes...";
- return result;
- }
-
- /*
- * Open an error dialog displaying the specified information.
- */
- void showErrorDialog(String operation, String filename, Throwable 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 if (e instanceof SWTError) {
- SWTError swte = (SWTError) e;
- errorMessage = swte.getMessage();
- if (swte.throwable != null) {
- errorMessage += ":\n" + swte.throwable.toString();
- }
- } else {
- errorMessage = e.toString();
- }
- }
- box.setMessage(message + errorMessage);
- box.open();
- }
-
- /*
- * Open a dialog asking the user for more information on the type of BMP file to save.
- */
- int showBMPDialog() {
- final int [] bmpType = new int[1];
- bmpType[0] = SWT.IMAGE_BMP;
- SelectionListener radioSelected = new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- Button radio = (Button) event.widget;
- if (radio.getSelection()) bmpType[0] = ((Integer)radio.getData()).intValue();
- }
- };
- // need to externalize strings
- final Shell dialog = new Shell(shell, SWT.DIALOG_TRIM);
-
- dialog.setText(bundle.getString("Save_as_type"));
- dialog.setLayout(new GridLayout());
-
- Label label = new Label(dialog, SWT.NONE);
- label.setText(bundle.getString("Save_as_type_label"));
-
- Button radio = new Button(dialog, SWT.RADIO);
- radio.setText(bundle.getString("Save_as_type_no_compress"));
- radio.setSelection(true);
- radio.setData(new Integer(SWT.IMAGE_BMP));
- radio.addSelectionListener(radioSelected);
-
- radio = new Button(dialog, SWT.RADIO);
- radio.setText(bundle.getString("Save_as_type_rle_compress"));
- radio.setData(new Integer(SWT.IMAGE_BMP_RLE));
- radio.addSelectionListener(radioSelected);
-
- radio = new Button(dialog, SWT.RADIO);
- radio.setText(bundle.getString("Save_as_type_os2"));
- radio.setData(new Integer(SWT.IMAGE_OS2_BMP));
- radio.addSelectionListener(radioSelected);
-
- label = new Label(dialog, SWT.SEPARATOR | SWT.HORIZONTAL);
- label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- Button ok = new Button(dialog, SWT.PUSH);
- ok.setText(bundle.getString("OK"));
- GridData data = new GridData();
- data.horizontalAlignment = SWT.CENTER;
- data.widthHint = 75;
- ok.setLayoutData(data);
- ok.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- dialog.close();
- }
- });
-
- dialog.pack();
- dialog.open();
- while (!dialog.isDisposed()) {
- if (!display.readAndDispatch()) display.sleep();
- }
- return bmpType[0];
- }
-
- /*
- * 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") + ")";
- }
- 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.
- */
- String fileTypeString(int filetype) {
- if (filetype == SWT.IMAGE_BMP)
- return "BMP";
- if (filetype == SWT.IMAGE_BMP_RLE)
- return "RLE" + imageData.depth + " BMP";
- if (filetype == SWT.IMAGE_OS2_BMP)
- return "OS/2 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";
- if (filetype == SWT.IMAGE_TIFF)
- return "TIFF";
- 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.
- */
- int determineFileType(String filename) {
- String ext = filename.substring(filename.lastIndexOf('.') + 1);
- if (ext.equalsIgnoreCase("bmp")) {
- return showBMPDialog();
- }
- if (ext.equalsIgnoreCase("gif"))
- return SWT.IMAGE_GIF;
- if (ext.equalsIgnoreCase("ico"))
- return SWT.IMAGE_ICO;
- if (ext.equalsIgnoreCase("jpg") || ext.equalsIgnoreCase("jpeg") || ext.equalsIgnoreCase("jfif"))
- return SWT.IMAGE_JPEG;
- if (ext.equalsIgnoreCase("png"))
- return SWT.IMAGE_PNG;
- if (ext.equalsIgnoreCase("tif") || ext.equalsIgnoreCase("tiff"))
- return SWT.IMAGE_TIFF;
- 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 a48e850977..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaLineStyler.java
+++ /dev/null
@@ -1,377 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.javaviewer;
-
-
-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;
- }
- }
- }
- unread(c);
- return OTHER;
- case '\'': // char const
- while(true) {
- c= read();
- switch (c) {
- case '\'':
- return STRING;
- case EOF:
- unread(c);
- return STRING;
- case '\\':
- c= read();
- break;
- }
- }
-
- case '"': // string
- while(true) {
- 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 c31f57b8e3..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/javaviewer/JavaViewer.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.javaviewer;
-
-
-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.PUSH);
- item.setText (resources.getString("Open_menuitem"));
- item.setAccelerator(SWT.MOD1 + 'O');
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- openFile();
- }
- });
-
- // Exit
- item = new MenuItem (menu, SWT.PUSH);
- item.setText (resources.getString("Exit_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() {
- if (fileDialog == null) {
- fileDialog = new FileDialog(shell, SWT.OPEN);
- }
-
- fileDialog.setFilterExtensions(new String[] {"*.java", "*.*"});
- String name = fileDialog.open();
-
- open(name);
-}
-
-void open(String name) {
- final String textString;
-
- if ((name == null) || (name.length() == 0)) return;
-
- File file = new File(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 bbcc4f384b..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FillLayoutTab.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.layoutexample;
-
-
-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;
- Spinner marginWidth, marginHeight, spacing;
- /* The example layout instance */
- FillLayout fillLayout;
- /* TableEditors and related controls*/
- TableEditor comboEditor, nameEditor;
- CCombo combo;
- Text nameText;
- final int NAME_COL = 0;
- final int TOTAL_COLS = 2;
-
- /**
- * 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);
- nameEditor = new TableEditor (table);
- table.addMouseListener(new MouseAdapter() {
- public void mouseDown(MouseEvent 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);
-
- nameText = new Text(table, SWT.SINGLE);
- nameText.setText(((String[])data.elementAt(index))[NAME_COL]);
- createTextEditor(nameText, nameEditor, NAME_COL);
- }
- });
- }
-
- /**
- * 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 (SWT.FILL, SWT.FILL, true, false));
- horizontal = new Button (typeGroup, SWT.RADIO);
- horizontal.setText ("SWT.HORIZONTAL");
- horizontal.setLayoutData(new GridData (SWT.FILL, SWT.CENTER, true, false));
- horizontal.setSelection(true);
- horizontal.addSelectionListener (selectionListener);
- vertical = new Button (typeGroup, SWT.RADIO);
- vertical.setText ("SWT.VERTICAL");
- vertical.setLayoutData(new GridData (SWT.FILL, SWT.CENTER, true, false));
- vertical.addSelectionListener (selectionListener);
-
- /* Controls the margins and spacing of the FillLayout */
- Group marginGroup = new Group(controlGroup, SWT.NONE);
- marginGroup.setText (LayoutExample.getResourceString("Margins_Spacing"));
- marginGroup.setLayout(new GridLayout(2, false));
- marginGroup.setLayoutData (new GridData(SWT.FILL, SWT.CENTER, false, false));
- new Label(marginGroup, SWT.NONE).setText("marginWidth");
- marginWidth = new Spinner(marginGroup, SWT.BORDER);
- marginWidth.setSelection(0);
- marginWidth.addSelectionListener(selectionListener);
- new Label(marginGroup, SWT.NONE).setText("marginHeight");
- marginHeight = new Spinner(marginGroup, SWT.BORDER);
- marginHeight.setSelection(0);
- marginHeight.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
- marginHeight.addSelectionListener(selectionListener);
- new Label(marginGroup, SWT.NONE).setText ("spacing");
- spacing = new Spinner(marginGroup, SWT.BORDER);
- spacing.setSelection(0);
- spacing.addSelectionListener(selectionListener);
-
- /* Add common controls */
- super.createControlWidgets ();
- }
-
- /**
- * 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 ();
- nameText.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");
- }
- if (fillLayout.marginWidth != 0) {
- code.append("\t\tfillLayout.marginWidth = " + fillLayout.marginWidth + ";\n");
- }
- if (fillLayout.marginHeight != 0) {
- code.append("\t\tfillLayout.marginHeight = " + fillLayout.marginHeight + ";\n");
- }
- if (fillLayout.spacing != 0) {
- code.append("\t\tfillLayout.spacing = " + fillLayout.spacing + ";\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 string to insert when a new child control is added to the table.
- */
- String[] getInsertString (String name, String controlType) {
- return new String [] {name, controlType};
- }
-
- /**
- * Returns the layout data field names.
- */
- String [] getLayoutDataFieldNames() {
- return new String [] { "Control Name", "Control Type" };
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "FillLayout";
- }
-
- /**
- * Takes information from TableEditors and stores it.
- */
- void resetEditors (boolean tab) {
- TableItem oldItem = comboEditor.getItem ();
- comboEditor.setEditor (null, null, -1);
- if (oldItem != null) {
- int row = table.indexOf (oldItem);
- try {
- new String (nameText.getText ());
- } catch (NumberFormatException e) {
- nameText.setText (oldItem.getText (NAME_COL));
- }
- String [] insert = new String [] {nameText.getText (), combo.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 ();
- 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;
- }
-
- /* Set the margins and spacing */
- fillLayout.marginWidth = marginWidth.getSelection();
- fillLayout.marginHeight = marginHeight.getSelection();
- fillLayout.spacing = spacing.getSelection();
- }
-}
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 bea0cbc896..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java
+++ /dev/null
@@ -1,774 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.layoutexample;
-
-
-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 */
- Spinner marginWidth, marginHeight, marginLeft, marginRight, marginTop, marginBottom, spacing;
- /* The example layout instance */
- FormLayout formLayout;
- /* TableEditors and related controls*/
- TableEditor nameEditor, comboEditor, widthEditor, heightEditor;
- TableEditor leftEditor, rightEditor, topEditor, bottomEditor;
- CCombo combo;
- Text nameText, widthText, heightText;
- Button leftAttach, rightAttach, topAttach, bottomAttach;
-
- /* Constants */
- final int NAME_COL = 0;
- 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 (90);
- table.getColumn (RIGHT_COL).setWidth (90);
- table.getColumn (TOP_COL).setWidth (90);
- table.getColumn (BOTTOM_COL).setWidth (90);
-
- /* Add TableEditors */
- nameEditor = new TableEditor (table);
- 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);
-
- nameText = new Text (table, SWT.SINGLE);
- nameText.setText (((String[])data.elementAt(index))[NAME_COL]);
- createTextEditor(nameText, nameEditor, NAME_COL);
-
- 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;
- }
- }
- }
- }
- });
- }
-
- /**
- * Creates the control widgets.
- */
- void createControlWidgets () {
- /* Controls the margins and spacing of the FormLayout */
- Group marginGroup = new Group (controlGroup, SWT.NONE);
- marginGroup.setText (LayoutExample.getResourceString ("Margins_Spacing"));
- marginGroup.setLayout(new GridLayout (2, false));
- marginGroup.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, false, false));
- new Label (marginGroup, SWT.NONE).setText ("marginWidth");
- marginWidth = new Spinner(marginGroup, SWT.BORDER);
- marginWidth.setSelection(0);
- marginWidth.addSelectionListener(selectionListener);
- new Label (marginGroup, SWT.NONE).setText("marginHeight");
- marginHeight = new Spinner(marginGroup, SWT.BORDER);
- marginHeight.setSelection(0);
- marginHeight.addSelectionListener (selectionListener);
- new Label (marginGroup, SWT.NONE).setText("marginLeft");
- marginLeft = new Spinner(marginGroup, SWT.BORDER);
- marginLeft.setSelection(0);
- marginLeft.addSelectionListener(selectionListener);
- new Label(marginGroup, SWT.NONE).setText("marginRight");
- marginRight = new Spinner(marginGroup, SWT.BORDER);
- marginRight.setSelection(0);
- marginRight.addSelectionListener(selectionListener);
- new Label(marginGroup, SWT.NONE).setText("marginTop");
- marginTop = new Spinner(marginGroup, SWT.BORDER);
- marginTop.setSelection(0);
- marginTop.addSelectionListener(selectionListener);
- new Label(marginGroup, SWT.NONE).setText("marginBottom");
- marginBottom = new Spinner(marginGroup, SWT.BORDER);
- marginBottom.setSelection(0);
- marginBottom.addSelectionListener(selectionListener);
- new Label(marginGroup, SWT.NONE).setText ("spacing");
- spacing = new Spinner(marginGroup, SWT.BORDER);
- spacing.setSelection(0);
- spacing.addSelectionListener(selectionListener);
-
- /* Add common controls */
- super.createControlWidgets ();
- }
-
- /**
- * 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 ();
- nameText.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.marginWidth != 0) {
- code.append ("\t\tformLayout.marginWidth = " + formLayout.marginWidth + ";\n");
- }
- if (formLayout.marginHeight != 0) {
- code.append ("\t\tformLayout.marginHeight = " + formLayout.marginHeight + ";\n");
- }
- if(formLayout.marginLeft != 0) {
- code.append ("\t\tformLayout.marginLeft = " + formLayout.marginLeft + ";\n");
- }
- if(formLayout.marginRight != 0) {
- code.append ("\t\tformLayout.marginRight = " + formLayout.marginRight + ";\n");
- }
- if(formLayout.marginTop != 0) {
- code.append ("\t\tformLayout.marginTop = " + formLayout.marginTop + ";\n");
- }
- if(formLayout.marginBottom != 0) {
- code.append ("\t\tformLayout.marginBottom = " + formLayout.marginBottom + ";\n");
- }
- if (formLayout.spacing != 0) {
- code.append ("\t\tformLayout.spacing = " + formLayout.spacing + ";\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 string to insert when a new child control is added to the table.
- */
- String[] getInsertString (String name, String controlType) {
- return new String [] {name, controlType, "-1", "-1",
- "0,0 (" + LayoutExample.getResourceString ("Default") + ")", "",
- "0,0 (" + LayoutExample.getResourceString ("Default") + ")", ""};
- }
-
- /**
- * Returns the layout data field names.
- */
- String [] getLayoutDataFieldNames() {
- return new String [] {
- "Control Name",
- "Control Type",
- "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 (boolean tab) {
- TableItem oldItem = comboEditor.getItem ();
- if (oldItem != null) {
- int row = table.indexOf (oldItem);
- try {
- new String (nameText.getText ());
- } catch (NumberFormatException e) {
- nameText.setText (oldItem.getText (NAME_COL));
- }
- 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 [] {nameText.getText(), 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);
- }
-
- /**
- * Return the initial weight of the layout and control groups within the SashForm.
- * @return the desired sash weights for the tab page
- */
- int[] sashWeights () {
- return new int[] {40, 60};
- }
-
- /**
- * 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 */
- formLayout.marginWidth = marginWidth.getSelection ();
- formLayout.marginHeight = marginHeight.getSelection ();
- formLayout.marginLeft = marginLeft.getSelection ();
- formLayout.marginRight = marginRight.getSelection ();
- formLayout.marginTop = marginTop.getSelection ();
- formLayout.marginBottom = marginBottom.getSelection ();
- formLayout.spacing = spacing.getSelection ();
- }
-
- /**
- * <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 ());
- shell.setLayout (new GridLayout (3, true));
-
- /* 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","33","50","67","75","100"});
- position.setVisibleItemCount (7);
- position.setText (oldPos);
- position.setEnabled (!isControl);
- position.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false, 2, 1));
-
- /* 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);
- control.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false, 2, 1));
-
- /* 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);
- alignment.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false, 2, 1));
-
- /* 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);
- offset.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false, 2, 1));
-
- /* 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 (SWT.END, SWT.CENTER, false, false));
- 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 (SWT.CENTER, SWT.CENTER, false, false));
- 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.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 ();
- 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 a64fef129d..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/GridLayoutTab.java
+++ /dev/null
@@ -1,672 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.layoutexample;
-
-
-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 */
- Spinner numColumns;
- Button makeColumnsEqualWidth;
- Spinner marginWidth, marginHeight, marginLeft, marginRight, marginTop, marginBottom, horizontalSpacing, verticalSpacing;
- /* The example layout instance */
- GridLayout gridLayout;
- /* TableEditors and related controls*/
- TableEditor nameEditor, comboEditor, widthEditor, heightEditor;
- TableEditor vAlignEditor, hAlignEditor, hGrabEditor, vGrabEditor, hSpanEditor, vSpanEditor;
- TableEditor hIndentEditor, vIndentEditor, minWidthEditor, minHeightEditor, excludeEditor;
- CCombo combo, vAlign, hAlign, hGrab, vGrab, exclude;
- Text nameText, widthText, heightText, hSpan, vSpan, hIndent, vIndent, minWidthText, minHeightText;
- /* Constants */
- static final int NAME_COL = 0;
- static final int COMBO_COL = 1;
- static final int WIDTH_COL = 2;
- static final int HEIGHT_COL = 3;
- static final int HALIGN_COL = 4;
- static final int VALIGN_COL = 5;
- static final int HGRAB_COL = 6;
- static final int VGRAB_COL = 7;
- static final int HSPAN_COL = 8;
- static final int VSPAN_COL = 9;
- static final int HINDENT_COL = 10;
- static final int VINDENT_COL = 11;
- static final int MINWIDTH_COL = 12;
- static final int MINHEIGHT_COL = 13;
- static final int EXCLUDE_COL = 14;
-
- static final int TOTAL_COLS = 15;
-
- /**
- * 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 hovers to the column headers whose field names have been shortened to save space */
- table.getColumn (HALIGN_COL).setToolTipText ("horizontalAlignment");
- table.getColumn (VALIGN_COL).setToolTipText ("verticalAlignment");
- table.getColumn (HGRAB_COL).setToolTipText ("grabExcessHorizontalSpace");
- table.getColumn (VGRAB_COL).setToolTipText ("grabExcessVerticalSpace");
- table.getColumn (HSPAN_COL).setToolTipText ("horizontalSpan");
- table.getColumn (VSPAN_COL).setToolTipText ("verticalSpan");
- table.getColumn (HINDENT_COL).setToolTipText ("horizontalIndent");
- table.getColumn (VINDENT_COL).setToolTipText ("verticalIndent");
- table.getColumn (MINWIDTH_COL).setToolTipText ("minimumWidth");
- table.getColumn (MINHEIGHT_COL).setToolTipText ("minimumHeight");
-
- /* Add TableEditors */
- nameEditor = new TableEditor (table);
- comboEditor = new TableEditor (table);
- widthEditor = new TableEditor (table);
- heightEditor = new TableEditor (table);
- vAlignEditor = new TableEditor (table);
- hAlignEditor = new TableEditor (table);
- hGrabEditor = new TableEditor (table);
- vGrabEditor = new TableEditor (table);
- hSpanEditor = new TableEditor (table);
- vSpanEditor = new TableEditor (table);
- hIndentEditor = new TableEditor (table);
- vIndentEditor = new TableEditor (table);
- minWidthEditor = new TableEditor (table);
- minHeightEditor = new TableEditor (table);
- excludeEditor = 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 ();
-
- nameText = new Text (table, SWT.SINGLE);
- nameText.setText (((String [])data.elementAt (index)) [NAME_COL]);
- createTextEditor (nameText, nameEditor, NAME_COL);
-
- 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);
-
- 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);
-
- 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);
-
- hIndent = new Text (table, SWT.SINGLE);
- hIndent.setText (((String [])data.elementAt (index)) [HINDENT_COL]);
- createTextEditor (hIndent, hIndentEditor, HINDENT_COL);
-
- vIndent = new Text (table, SWT.SINGLE);
- vIndent.setText (((String [])data.elementAt (index)) [VINDENT_COL]);
- createTextEditor (vIndent, vIndentEditor, VINDENT_COL);
-
- minWidthText = new Text (table, SWT.SINGLE);
- minWidthText.setText (((String [])data.elementAt (index)) [MINWIDTH_COL]);
- createTextEditor (minWidthText, minWidthEditor, MINWIDTH_COL);
-
- minHeightText = new Text (table, SWT.SINGLE);
- minHeightText.setText (((String [])data.elementAt (index)) [MINHEIGHT_COL]);
- createTextEditor (minHeightText, minHeightEditor, MINHEIGHT_COL);
-
- exclude = new CCombo (table, SWT.NONE);
- exclude.setItems (boolValues);
- exclude.setText (newItem.getText (EXCLUDE_COL));
- excludeEditor.horizontalAlignment = SWT.LEFT;
- excludeEditor.grabHorizontal = true;
- excludeEditor.minimumWidth = 50;
- excludeEditor.setEditor (exclude, newItem, EXCLUDE_COL);
- exclude.addTraverseListener (traverseListener);
-
- for (int i=0; i<table.getColumnCount (); i++) {
- Rectangle rect = newItem.getBounds (i);
- if (rect.contains (pt)) {
- switch (i) {
- case NAME_COL:
- nameText.setFocus ();
- break;
- 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 HGRAB_COL :
- hGrab.setFocus ();
- break;
- case VGRAB_COL :
- vGrab.setFocus ();
- break;
- case HSPAN_COL :
- hSpan.setFocus ();
- break;
- case VSPAN_COL :
- vSpan.setFocus ();
- break;
- case HINDENT_COL :
- hIndent.setFocus ();
- break;
- case VINDENT_COL :
- vIndent.setFocus ();
- break;
- case MINWIDTH_COL :
- minWidthText.setFocus ();
- break;
- case MINHEIGHT_COL :
- minHeightText.setFocus ();
- break;
- case EXCLUDE_COL :
- exclude.setFocus ();
- break;
- default :
- resetEditors ();
- break;
- }
- }
- }
- }
- });
- }
-
- /**
- * Creates the control widgets.
- */
- void createControlWidgets () {
- /* Controls the columns in the GridLayout */
- Group columnGroup = new Group (controlGroup, SWT.NONE);
- columnGroup.setText (LayoutExample.getResourceString ("Columns"));
- columnGroup.setLayout(new GridLayout(2, false));
- columnGroup.setLayoutData(new GridData (SWT.FILL, SWT.FILL, false, false));
- new Label(columnGroup, SWT.NONE).setText ("numColumns");
- numColumns = new Spinner (columnGroup, SWT.BORDER);
- numColumns.setMinimum (1);
- numColumns.addSelectionListener (selectionListener);
- makeColumnsEqualWidth = new Button (columnGroup, SWT.CHECK);
- makeColumnsEqualWidth.setText ("makeColumnsEqualWidth");
- makeColumnsEqualWidth.addSelectionListener (selectionListener);
- makeColumnsEqualWidth.setEnabled (false);
- makeColumnsEqualWidth.setLayoutData (new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1));
-
- /* Controls the margins and spacing of the GridLayout */
- Group marginGroup = new Group(controlGroup, SWT.NONE);
- marginGroup.setText (LayoutExample.getResourceString("Margins_Spacing"));
- marginGroup.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
- marginGroup.setLayout(new GridLayout(2, false));
- new Label (marginGroup, SWT.NONE).setText("marginWidth");
- marginWidth = new Spinner (marginGroup, SWT.BORDER);
- marginWidth.setSelection(5);
- marginWidth.addSelectionListener(selectionListener);
- new Label(marginGroup, SWT.NONE).setText("marginHeight");
- marginHeight = new Spinner(marginGroup, SWT.BORDER);
- marginHeight.setSelection(5);
- marginHeight.addSelectionListener(selectionListener);
- new Label(marginGroup, SWT.NONE).setText("marginLeft");
- marginLeft = new Spinner(marginGroup, SWT.BORDER);
- marginLeft.setSelection(0);
- marginLeft.addSelectionListener(selectionListener);
- new Label(marginGroup, SWT.NONE).setText("marginRight");
- marginRight = new Spinner(marginGroup, SWT.BORDER);
- marginRight.setSelection(0);
- marginRight.addSelectionListener(selectionListener);
- new Label(marginGroup, SWT.NONE).setText("marginTop");
- marginTop = new Spinner(marginGroup, SWT.BORDER);
- marginTop.setSelection(0);
- marginTop.addSelectionListener(selectionListener);
- new Label(marginGroup, SWT.NONE).setText("marginBottom");
- marginBottom = new Spinner(marginGroup, SWT.BORDER);
- marginBottom.setSelection(0);
- marginBottom.addSelectionListener(selectionListener);
- new Label(marginGroup, SWT.NONE).setText("horizontalSpacing");
- horizontalSpacing = new Spinner(marginGroup, SWT.BORDER);
- horizontalSpacing.setSelection(5);
- horizontalSpacing.addSelectionListener(selectionListener);
- new Label(marginGroup, SWT.NONE).setText("verticalSpacing");
- verticalSpacing = new Spinner(marginGroup, SWT.BORDER);
- verticalSpacing.setSelection(5);
- verticalSpacing.addSelectionListener(selectionListener);
-
- /* 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 ();
- nameText.dispose ();
- widthText.dispose ();
- heightText.dispose ();
- hAlign.dispose ();
- vAlign.dispose ();
- hGrab.dispose ();
- vGrab.dispose ();
- hSpan.dispose ();
- vSpan.dispose ();
- hIndent.dispose ();
- vIndent.dispose ();
- minWidthText.dispose ();
- minHeightText.dispose ();
- exclude.dispose ();
- }
-
- /**
- * Generates code for the example layout.
- */
- StringBuffer generateLayoutCode () {
- StringBuffer code = new StringBuffer ();
- code.append ("\t\tGridLayout gridLayout = new GridLayout (");
- if (gridLayout.numColumns != 1 || gridLayout.makeColumnsEqualWidth) {
- code.append (gridLayout.numColumns + ", " + gridLayout.makeColumnsEqualWidth);
- }
- code.append(");\n");
- if (gridLayout.marginWidth != 5) {
- code.append("\t\tgridLayout.marginWidth = " + gridLayout.marginWidth + ";\n");
- }
- if (gridLayout.marginHeight != 5) {
- code.append ("\t\tgridLayout.marginHeight = " + gridLayout.marginHeight + ";\n");
- }
- if (gridLayout.marginLeft != 0) {
- code.append ("\t\tgridLayout.marginLeft = " + gridLayout.marginLeft + ";\n");
- }
- if (gridLayout.marginRight != 0) {
- code.append ("\t\tgridLayout.marginRight = " + gridLayout.marginRight + ";\n");
- }
- if (gridLayout.marginTop != 0) {
- code.append ("\t\tgridLayout.marginTop = " + gridLayout.marginTop + ";\n");
- }
- if (gridLayout.marginBottom != 0) {
- code.append ("\t\tgridLayout.marginBottom = " + gridLayout.marginBottom + ";\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;
- boolean bounds, align, grab, span;
- 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) {
- /* Use the most efficient constructor */
- bounds = data.widthHint != SWT.DEFAULT || data.heightHint != SWT.DEFAULT;
- align = data.horizontalAlignment != SWT.BEGINNING || data.verticalAlignment != SWT.CENTER;
- grab = data.grabExcessHorizontalSpace || data.grabExcessVerticalSpace;
- span = data.horizontalSpan != 1 || data.verticalSpan != 1;
-
- code.append ("\t\t");
- if (first) {
- code.append ("GridData ");
- first = false;
- }
- if (align || grab || span) {
- code.append ("data = new GridData (");
- code.append (alignmentString(data.horizontalAlignment) + ", ");
- code.append (alignmentString(data.verticalAlignment) + ", ");
- code.append (data.grabExcessHorizontalSpace + ", ");
- code.append (data.grabExcessVerticalSpace);
- if (span) {
- code.append (", " + data.horizontalSpan);
- code.append (", " + data.verticalSpan);
- }
- code.append(");\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");
- }
- } else {
- if (bounds) {
- code.append ("data = new GridData (");
- code.append (data.widthHint == SWT.DEFAULT ? "SWT.DEFAULT" : String.valueOf(data.widthHint) + ", ");
- code.append (data.heightHint == SWT.DEFAULT ? "SWT.DEFAULT" : String.valueOf(data.heightHint));
- code.append(");\n");
- } else {
- code.append ("data = new GridData ();\n");
- }
- }
- if (data.horizontalIndent != 0) {
- code.append ("\t\tdata.horizontalIndent = " + data.horizontalIndent + ";\n");
- }
- if (data.verticalIndent != 0) {
- code.append ("\t\tdata.verticalIndent = " + data.verticalIndent + ";\n");
- }
- if (data.minimumWidth != 0) {
- code.append ("\t\tdata.minimumWidth = " + data.minimumWidth + ";\n");
- }
- if (data.minimumHeight != 0) {
- code.append ("\t\tdata.minimumHeight = " + data.minimumHeight + ";\n");
- }
- if (data.exclude) {
- code.append ("\t\tdata.exclude = 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;
- }
-
- String alignmentString(int alignment) {
- if (alignment == SWT.BEGINNING) return "SWT.BEGINNING";
- if (alignment == SWT.CENTER) return "SWT.CENTER";
- if (alignment == SWT.END) return "SWT.END";
- return "SWT.FILL";
- }
-
- /**
- * Returns the string to insert when a new child control is added to the table.
- */
- String[] getInsertString (String name, String controlType) {
- return new String [] {name, controlType,
- "-1","-1","BEGINNING","CENTER",
- "false","false","1","1","0","0",
- "0","0","false"};
- }
-
- /**
- * Returns the layout data field names.
- */
- String [] getLayoutDataFieldNames() {
- return new String [] {
- "Control Name",
- "Control Type",
- "width",
- "height",
- "hAlignment", //"horizontalAlignment",
- "vAlignment", //"verticalAlignment",
- "grabH", //"grabExcessHorizontalSpace",
- "grabV", //"grabExcessVerticalSpace",
- "hSpan", //"horizontalSpan",
- "vSpan", //"verticalSpan",
- "hIndent", //"horizontalIndent",
- "vIndent", //"verticalIndent",
- "minWidth", //"minimumWidth",
- "minHeight", //"minimumHeight",
- "exclude"
- };
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "GridLayout";
- }
-
- /**
- * Takes information from TableEditors and stores it.
- */
- void resetEditors (boolean tab) {
- TableItem oldItem = comboEditor.getItem ();
- if (oldItem != null) {
- int row = table.indexOf (oldItem);
- /** Make sure user enters a valid data*/
- try {
- new String (nameText.getText ());
- } catch (NumberFormatException e) {
- nameText.setText (oldItem.getText (NAME_COL));
- }
- 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 (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));
- }
- try {
- new Integer (hIndent.getText ()).intValue ();
- } catch (NumberFormatException e) {
- hIndent.setText (oldItem.getText (HINDENT_COL));
- }
- try {
- new Integer (vIndent.getText ()).intValue ();
- } catch (NumberFormatException e) {
- vIndent.setText (oldItem.getText (VINDENT_COL));
- }
- try {
- new Integer (minWidthText.getText ()).intValue ();
- } catch (NumberFormatException e) {
- minWidthText.setText (oldItem.getText (MINWIDTH_COL));
- }
- try {
- new Integer (minHeightText.getText ()).intValue ();
- } catch (NumberFormatException e) {
- minHeightText.setText (oldItem.getText (MINHEIGHT_COL));
- }
- String [] insert = new String [] {
- nameText.getText (), combo.getText (), widthText.getText (), heightText.getText (),
- hAlign.getText (), vAlign.getText (), hGrab.getText (), vGrab.getText (),
- hSpan.getText (), vSpan.getText (), hIndent.getText (), vIndent.getText (),
- minWidthText.getText (), minHeightText.getText (), exclude.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);
- }
-
- /**
- * Return the initial weight of the layout and control groups within the SashForm.
- * @return the desired sash weights for the tab page
- */
- int[] sashWeights () {
- return new int[] {35, 65};
- }
-
- /**
- * Sets the layout data for the children of the layout.
- */
- void setLayoutData () {
- Control [] children = layoutComposite.getChildren ();
- TableItem [] items = table.getItems ();
- GridData data;
- int hSpan, vSpan, hIndent, vIndent;
- String vAlign, hAlign, vGrab, hGrab, exclude;
- 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 = SWT.CENTER;
- } else if (hAlign.equals ("END")) {
- data.horizontalAlignment = SWT.END;
- } else if (hAlign.equals ("FILL")) {
- data.horizontalAlignment = SWT.FILL;
- } else {
- data.horizontalAlignment = SWT.BEGINNING;
- }
- vAlign = items [i].getText (VALIGN_COL);
- if (vAlign.equals ("BEGINNING")) {
- data.verticalAlignment = SWT.BEGINNING;
- } else if (vAlign.equals ("END")) {
- data.verticalAlignment = SWT.END;
- } else if (vAlign.equals ("FILL")) {
- data.verticalAlignment = SWT.FILL;
- } else {
- data.verticalAlignment = SWT.CENTER;
- }
- /* Set spans and indents */
- hSpan = new Integer (items [i].getText (HSPAN_COL)).intValue ();
- data.horizontalSpan = hSpan;
- vSpan = new Integer (items [i].getText (VSPAN_COL)).intValue ();
- data.verticalSpan = vSpan;
- hIndent = new Integer (items [i].getText (HINDENT_COL)).intValue ();
- data.horizontalIndent = hIndent;
- vIndent = new Integer (items [i].getText (VINDENT_COL)).intValue ();
- data.verticalIndent = vIndent;
- /* Set grabs */
- hGrab = items [i].getText (HGRAB_COL);
- data.grabExcessHorizontalSpace = hGrab.equals ("true");
- vGrab = items [i].getText (VGRAB_COL);
- data.grabExcessVerticalSpace = vGrab.equals ("true");
- /* Set minimum width and height */
- data.minimumWidth = new Integer (items [i].getText (MINWIDTH_COL)).intValue ();
- data.minimumHeight = new Integer (items [i].getText (MINHEIGHT_COL)).intValue ();
- /* Set exclude boolean */
- exclude = items [i].getText (EXCLUDE_COL);
- data.exclude = exclude.equals ("true");
-
- children [i].setLayoutData (data);
- }
- }
-
- /**
- * Sets the state of the layout.
- */
- void setLayoutState () {
- /* Set the columns for the layout */
- gridLayout.numColumns = numColumns.getSelection ();
- gridLayout.makeColumnsEqualWidth = makeColumnsEqualWidth.getSelection ();
- makeColumnsEqualWidth.setEnabled (numColumns.getSelection () > 1);
-
- /* Set the margins and spacing */
- gridLayout.marginWidth = marginWidth.getSelection ();
- gridLayout.marginHeight = marginHeight.getSelection ();
- gridLayout.marginLeft = marginLeft.getSelection ();
- gridLayout.marginRight = marginRight.getSelection ();
- gridLayout.marginTop = marginTop.getSelection ();
- gridLayout.marginBottom = marginBottom.getSelection ();
- gridLayout.horizontalSpacing = horizontalSpacing.getSelection ();
- gridLayout.verticalSpacing = verticalSpacing.getSelection ();
- }
-}
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 862ec5d941..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/LayoutExample.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.layoutexample;
-
-
-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.NONE);
- Tab [] tabs = new Tab [] {
- new FillLayoutTab (this),
- new RowLayoutTab (this),
- new GridLayoutTab (this),
- new FormLayoutTab (this),
- new StackLayoutTab (this)
- };
- for (int i=0; i<tabs.length; i++) {
- TabItem item = new TabItem (tabFolder, SWT.NONE);
- 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 b68a0f4371..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/RowLayoutTab.java
+++ /dev/null
@@ -1,421 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.layoutexample;
-
-
-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, fill, justify, center;
- Spinner marginWidth, marginHeight, marginLeft, marginRight, marginTop, marginBottom, spacing;
- /* The example layout instance */
- RowLayout rowLayout;
- /* TableEditors and related controls*/
- TableEditor comboEditor, widthEditor, heightEditor, nameEditor, excludeEditor;
- CCombo combo, exclude;
- Text nameText, widthText, heightText;
-
- /* Constants */
- final int NAME_COL = 0;
- final int COMBO_COL = 1;
- final int WIDTH_COL = 2;
- final int HEIGHT_COL = 3;
- final int EXCLUDE_COL = 4;
- final int TOTAL_COLS = 5;
-
- /**
- * 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 */
- nameEditor = new TableEditor (table);
- comboEditor = new TableEditor (table);
- widthEditor = new TableEditor (table);
- heightEditor = new TableEditor (table);
- excludeEditor = 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);
-
- nameText = new Text(table, SWT.SINGLE);
- nameText.setText(((String[])data.elementAt(index))[NAME_COL]);
- createTextEditor(nameText, nameEditor, NAME_COL);
-
- 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 [] boolValues = new String [] {"false", "true"};
- exclude = new CCombo (table, SWT.NONE);
- exclude.setItems (boolValues);
- exclude.setText (newItem.getText (EXCLUDE_COL));
- excludeEditor.horizontalAlignment = SWT.LEFT;
- excludeEditor.grabHorizontal = true;
- excludeEditor.minimumWidth = 50;
- excludeEditor.setEditor (exclude, newItem, EXCLUDE_COL);
- exclude.addTraverseListener (traverseListener);
-
- for (int i=0; i<table.getColumnCount (); i++) {
- Rectangle rect = newItem.getBounds (i);
- if (rect.contains (pt)) {
- switch (i) {
- case NAME_COL :
- nameText.setFocus ();
- case COMBO_COL :
- combo.setFocus ();
- break;
- case WIDTH_COL :
- widthText.setFocus ();
- break;
- case HEIGHT_COL :
- heightText.setFocus ();
- break;
- case EXCLUDE_COL :
- exclude.setFocus ();
- break;
- default :
- resetEditors ();
- break;
- }
- }
- }
- }
- });
- }
-
- /**
- * 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 ());
- typeGroup.setLayoutData(new GridData (SWT.FILL, SWT.FILL, false, false));
- horizontal = new Button (typeGroup, SWT.RADIO);
- horizontal.setText ("SWT.HORIZONTAL");
- horizontal.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
- horizontal.setSelection(true);
- horizontal.addSelectionListener (selectionListener);
- vertical = new Button (typeGroup, SWT.RADIO);
- vertical.setText ("SWT.VERTICAL");
- vertical.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
- vertical.addSelectionListener (selectionListener);
-
- /* Controls the margins and spacing of the RowLayout */
- Group marginGroup = new Group (controlGroup, SWT.NONE);
- marginGroup.setText (LayoutExample.getResourceString ("Margins_Spacing"));
- marginGroup.setLayout(new GridLayout(2, false));
- marginGroup.setLayoutData(new GridData (SWT.FILL, SWT.FILL, false, false, 1, 2));
- new Label(marginGroup, SWT.NONE).setText("marginWidth");
- marginWidth = new Spinner(marginGroup, SWT.BORDER);
- marginWidth.setSelection(0);
- marginWidth.addSelectionListener(selectionListener);
- new Label (marginGroup, SWT.NONE).setText ("marginHeight");
- marginHeight = new Spinner(marginGroup, SWT.BORDER);
- marginHeight.setSelection(0);
- marginHeight.setLayoutData (new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
- marginHeight.addSelectionListener (selectionListener);
- new Label (marginGroup, SWT.NONE).setText ("marginLeft");
- marginLeft = new Spinner(marginGroup, SWT.BORDER);
- marginLeft.setSelection(3);
- marginLeft.addSelectionListener (selectionListener);
- new Label (marginGroup, SWT.NONE).setText ("marginRight");
- marginRight = new Spinner(marginGroup, SWT.BORDER);
- marginRight.setSelection(3);
- marginRight.addSelectionListener(selectionListener);
- new Label(marginGroup, SWT.NONE).setText("marginTop");
- marginTop = new Spinner(marginGroup, SWT.BORDER);
- marginTop.setSelection(3);
- marginTop.addSelectionListener(selectionListener);
- new Label (marginGroup, SWT.NONE).setText ("marginBottom");
- marginBottom = new Spinner(marginGroup, SWT.BORDER);
- marginBottom.setSelection(3);
- marginBottom.addSelectionListener (selectionListener);
- new Label (marginGroup, SWT.NONE).setText ("spacing");
- spacing = new Spinner(marginGroup, SWT.BORDER);
- spacing.setSelection(3);
- spacing.addSelectionListener (selectionListener);
-
- /* Controls other parameters of the RowLayout */
- Group specGroup = new Group (controlGroup, SWT.NONE);
- specGroup.setText (LayoutExample.getResourceString ("Properties"));
- specGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, false, false));
- specGroup.setLayout (new GridLayout ());
- wrap = new Button (specGroup, SWT.CHECK);
- wrap.setText ("Wrap");
- wrap.setSelection (true);
- wrap.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
- wrap.addSelectionListener (selectionListener);
- pack = new Button (specGroup, SWT.CHECK);
- pack.setText ("Pack");
- pack.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
- pack.setSelection (true);
- pack.addSelectionListener(selectionListener);
- fill = new Button(specGroup, SWT.CHECK);
- fill.setText("Fill");
- fill.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- fill.addSelectionListener(selectionListener);
- justify = new Button (specGroup, SWT.CHECK);
- justify.setText ("Justify");
- justify.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
- justify.addSelectionListener (selectionListener);
- center = new Button (specGroup, SWT.CHECK);
- center.setText ("Center");
- center.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false));
- center.addSelectionListener (selectionListener);
-
- /* Add common controls */
- super.createControlWidgets ();
- }
-
- /**
- * 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 ();
- nameText.dispose ();
- exclude.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.fill == true) {
- code.append("\t\trowLayout.fill = true;\n");
- }
- if (rowLayout.justify == true) {
- code.append ("\t\trowLayout.justify = true;\n");
- }
- if (rowLayout.center == true) {
- code.append ("\t\trowLayout.center = true;\n");
- }
- if (rowLayout.marginWidth != 0) {
- code.append("\t\trowLayout.marginWidth = " + rowLayout.marginWidth + ";\n");
- }
- if (rowLayout.marginHeight != 0) {
- code.append("\t\trowLayout.marginHeight = " + rowLayout.marginHeight + ";\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 rowData = (RowData) control.getLayoutData ();
- if (rowData != null) {
- if (rowData.width != -1 || rowData.height != -1 || rowData.exclude) {
- code.append ("\t\t");
- if (first) {
- code.append ("RowData ");
- first = false;
- }
- if (rowData.width == -1 && rowData.height == -1) {
- code.append ("rowData = new RowData ();\n");
- } else if (rowData.width == -1) {
- code.append ("rowData = new RowData (SWT.DEFAULT, " + rowData.height + ");\n");
- } else if (rowData.height == -1) {
- code.append ("rowData = new RowData (" + rowData.width + ", SWT.DEFAULT);\n");
- } else {
- code.append ("rowData = new RowData (" + rowData.width + ", " + rowData.height + ");\n");
- }
- if (rowData.exclude) {
- code.append ("\t\trowData.exclude = true;\n");
- }
- code.append ("\t\t" + names [i] + ".setLayoutData (rowData);\n");
- }
- }
- }
- return code;
- }
-
- /**
- * Returns the string to insert when a new child control is added to the table.
- */
- String[] getInsertString (String name, String controlType) {
- return new String [] {name, controlType, "-1", "-1", "false"};
- }
-
- /**
- * Returns the layout data field names.
- */
- String [] getLayoutDataFieldNames() {
- return new String [] {
- "Control Name",
- "Control Type",
- "width",
- "height",
- "exclude"
- };
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "RowLayout";
- }
-
- /**
- * Takes information from TableEditors and stores it.
- */
- 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 String(nameText.getText());
- } catch (NumberFormatException e) {
- nameText.setText(oldItem.getText(NAME_COL));
- }
- 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 [] {
- nameText.getText(), combo.getText (), widthText.getText (), heightText.getText (), exclude.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;
- String exclude;
- 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);
- exclude = items [i].getText (EXCLUDE_COL);
- data.exclude = exclude.equals ("true");
- children [i].setLayoutData (data);
- }
-
- }
-
- /**
- * Sets the state of the layout.
- */
- void setLayoutState () {
- /* Set the type of layout */
- rowLayout.type = vertical.getSelection () ? SWT.VERTICAL : SWT.HORIZONTAL;
-
- /* Set the margins and spacing */
- rowLayout.marginWidth = marginWidth.getSelection ();
- rowLayout.marginHeight = marginHeight.getSelection ();
- rowLayout.marginLeft = marginLeft.getSelection ();
- rowLayout.marginRight = marginRight.getSelection ();
- rowLayout.marginTop = marginTop.getSelection ();
- rowLayout.marginBottom = marginBottom.getSelection ();
- rowLayout.spacing = spacing.getSelection ();
-
- /* Set the other layout properties */
- rowLayout.wrap = wrap.getSelection ();
- rowLayout.pack = pack.getSelection ();
- rowLayout.fill = fill.getSelection ();
- rowLayout.justify = justify.getSelection ();
- rowLayout.center = center.getSelection ();
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/StackLayoutTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/StackLayoutTab.java
deleted file mode 100644
index 5d911aba86..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/StackLayoutTab.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.layoutexample;
-
-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 StackLayoutTab extends Tab {
- /* Controls for setting layout parameters */
- Button backButton, advanceButton;
- Label topControl;
- Spinner marginWidth, marginHeight;
- /* The example layout instance */
- StackLayout stackLayout;
- int currentLayer = -1;
- /* TableEditors and related controls*/
- TableEditor comboEditor, nameEditor;
- CCombo combo;
- Text nameText;
- final int NAME_COL = 0;
- final int TOTAL_COLS = 2;
-
- /**
- * Creates the Tab within a given instance of LayoutExample.
- */
- StackLayoutTab(LayoutExample instance) {
- super(instance);
- }
-
- /**
- * Creates the widgets in the "child" group.
- */
- void createChildWidgets() {
- /* Add common controls */
- super.createChildWidgets();
-
- /* Add TableEditors */
- comboEditor = new TableEditor(table);
- nameEditor = new TableEditor(table);
- table.addMouseListener (new MouseAdapter() {
- public void mouseDown(MouseEvent e) {
- resetEditors();
- index = table.getSelectionIndex();
- if (index == -1) return;
- //set top layer of stack to the selected item
- setTopControl (index);
-
- 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);
-
- nameText = new Text(table, SWT.SINGLE);
- nameText.setText(((String[])data.elementAt(index))[NAME_COL]);
- createTextEditor(nameText, nameEditor, NAME_COL);
- }
- });
- }
-
- /**
- * Creates the control widgets.
- */
- void createControlWidgets() {
- /* Controls the topControl in the StackLayout */
- Group columnGroup = new Group (controlGroup, SWT.NONE);
- columnGroup.setText ("topControl");//(LayoutExample.getResourceString ("Top_Control"));
- columnGroup.setLayout(new GridLayout(3, false));
- columnGroup.setLayoutData(new GridData (SWT.FILL, SWT.FILL, false, false));
- backButton = new Button(columnGroup, SWT.PUSH);
- backButton.setText("<<");
- backButton.setEnabled(false);
- backButton.setLayoutData(new GridData (SWT.END, SWT.CENTER, false, false));
- backButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- setTopControl (currentLayer - 1);
- }
- });
- topControl = new Label (columnGroup, SWT.BORDER);
- topControl.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- advanceButton = new Button(columnGroup, SWT.PUSH);
- advanceButton.setText(">>");
- advanceButton.setEnabled(false);
- advanceButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- setTopControl (currentLayer + 1);
- }
- });
-
- /* Controls the margins of the StackLayout */
- Group marginGroup = new Group(controlGroup, SWT.NONE);
- marginGroup.setText (LayoutExample.getResourceString("Margins"));
- marginGroup.setLayout(new GridLayout(2, false));
- marginGroup.setLayoutData (new GridData(SWT.FILL, SWT.CENTER, false, false));
- new Label(marginGroup, SWT.NONE).setText("marginWidth");
- marginWidth = new Spinner(marginGroup, SWT.BORDER);
- marginWidth.setSelection(0);
- marginWidth.addSelectionListener(selectionListener);
- new Label(marginGroup, SWT.NONE).setText("marginHeight");
- marginHeight = new Spinner(marginGroup, SWT.BORDER);
- marginHeight.setSelection(0);
- marginHeight.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
- marginHeight.addSelectionListener(selectionListener);
-
- /* Add common controls */
- super.createControlWidgets();
- }
-
- /**
- * Creates the example layout.
- */
- void createLayout() {
- stackLayout = new StackLayout();
- layoutComposite.setLayout(stackLayout);
- }
-
- void createLayoutComposite() {
- layoutComposite = new Composite(layoutGroup, SWT.BORDER);
- layoutComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
- createLayout();
- }
-
- /**
- * Disposes the editors without placing their contents
- * into the table.
- */
- void disposeEditors() {
- comboEditor.setEditor(null, null, -1);
- combo.dispose();
- nameText.dispose();
- }
-
- /**
- * Generates code for the example layout.
- */
- StringBuffer generateLayoutCode() {
- StringBuffer code = new StringBuffer();
- code.append("\t\tStackLayout stackLayout = new StackLayout ();\n");
- if (stackLayout.marginWidth != 0) {
- code.append("\t\tstackLayout.marginWidth = " + stackLayout.marginWidth + ";\n");
- }
- if (stackLayout.marginHeight != 0) {
- code.append("\t\tstackLayout.marginHeight = " + stackLayout.marginHeight + ";\n");
- }
- code.append("\t\tshell.setLayout (stackLayout);\n");
- for(int i = 0; i < children.length; i++) {
- Control control = children[i];
- code.append (getChildCode(control, i));
- }
- if (children.length > 0 && currentLayer != -1) {
- code.append("\n\t\tstackLayout.topControl = " + names[currentLayer] + ";\n");
- }
- return code;
- }
-
- boolean needsCustom() {
- return true;
- }
-
- /**
- * Returns the string to insert when a new child control is added to the table.
- */
- String[] getInsertString (String name, String controlType) {
- return new String [] {name, controlType};
- }
-
- /**
- * Returns the layout data field names.
- */
- String[] getLayoutDataFieldNames() {
- return new String[] {"Control Name", "Control Type"};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText() {
- return "StackLayout";
- }
-
- /**
- * Takes information from TableEditors and stores it.
- */
- void resetEditors (boolean tab) {
- TableItem oldItem = comboEditor.getItem ();
- comboEditor.setEditor (null, null, -1);
- if (oldItem != null) {
- int row = table.indexOf (oldItem);
- try {
- new String (nameText.getText ());
- } catch (NumberFormatException e) {
- nameText.setText (oldItem.getText (NAME_COL));
- }
- String [] insert = new String [] {nameText.getText (), combo.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 ();
- setTopControl (currentLayer);
- layoutGroup.layout (true);
- }
-
- void setTopControl (int index) {
- if (index == -1 || children.length == 0) {
- currentLayer = -1;
- topControl.setText ("");
- } else {
- currentLayer = index;
- stackLayout.topControl = children [currentLayer];
- layoutComposite.layout ();
- TableItem item = table.getItem(currentLayer);
- topControl.setText (item.getText(0));
- }
- backButton.setEnabled(children.length > 1 && currentLayer > 0);
- advanceButton.setEnabled(children.length > 1 && currentLayer < children.length - 1);
- }
-
- /**
- * Sets the state of the layout.
- */
- void setLayoutState() {
- /* Set the margins and spacing */
- stackLayout.marginWidth = marginWidth.getSelection();
- stackLayout.marginHeight = marginHeight.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 d2d848129b..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/Tab.java
+++ /dev/null
@@ -1,745 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.layoutexample;
-
-
-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 {
- Shell shell;
- Display display;
- /* 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;
- ToolItem add, delete, clear, code;
- int prevSelected = 0;
- /* Common values for working with TableEditors */
- Table table;
- int index;
- boolean comboReset = false;
- final String[] OPTIONS = {"Button", "Canvas", "Combo", "Composite", "CoolBar",
- "Group", "Label", "Link", "List", "ProgressBar", "Scale", "Slider", "StyledText",
- "Table", "Text", "ToolBar", "Tree"};
- 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 "children" 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"));
- childGroup.setLayout(new GridLayout ());
- childGroup.setLayoutData(new GridData (SWT.FILL, SWT.FILL, true, true, 2, 1));
-
- ToolBar toolBar = new ToolBar(childGroup, SWT.FLAT);
- toolBar.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false));
- add = new ToolItem(toolBar, SWT.DROP_DOWN);
- add.setText(LayoutExample.getResourceString("Add"));
- add.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected(SelectionEvent event) {
- if (event.detail == SWT.ARROW) {
- ToolItem item = (ToolItem)event.widget;
- ToolBar bar = item.getParent ();
- final Menu menu = new Menu (shell, SWT.POP_UP);
- for (int i = 0; i < OPTIONS.length; i++) {
- final MenuItem newItem = new MenuItem (menu, SWT.RADIO);
- newItem.setText (OPTIONS [i]);
- newItem.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent event) {
- MenuItem menuItem = (MenuItem)event.widget;
- if (menuItem.getSelection ()) {
- Menu menu = menuItem.getParent ();
- prevSelected = menu.indexOf (menuItem);
- String controlType = menuItem.getText ();
- String name = controlType.toLowerCase () + String.valueOf (table.getItemCount ());
- String [] insert = getInsertString (name, controlType);
- if (insert != null) {
- TableItem item = new TableItem (table, SWT.NONE);
- item.setText (insert);
- data.addElement (insert);
- }
- resetEditors ();
- }
- }
- });
- newItem.setSelection (i == prevSelected);
- }
- Point pt = display.map (bar, null, event.x, event.y);
- menu.setLocation (pt.x, pt.y);
- menu.setVisible (true);
-
- while (menu != null && !menu.isDisposed () && menu.isVisible ()) {
- if (!display.readAndDispatch ()) {
- display.sleep ();
- }
- }
- menu.dispose ();
- } else {
- String controlType = OPTIONS [prevSelected];
- String name = controlType.toLowerCase () + String.valueOf (table.getItemCount ());
- String [] insert = getInsertString (name, controlType);
- if (insert != null) {
- TableItem item = new TableItem (table, 0);
- item.setText (insert);
- data.addElement (insert);
- }
- resetEditors ();
- }
- }
- });
-
- new ToolItem(toolBar,SWT.SEPARATOR);
-
- delete = new ToolItem(toolBar, SWT.PUSH);
- delete.setText (LayoutExample.getResourceString ("Delete"));
- 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++) {
- TableItem item = table.getItem (i);
- item.setText (0, item.getText (0));
- }
- refreshLayoutComposite ();
- layoutComposite.layout (true);
- layoutGroup.layout (true);
- }
- });
-
- new ToolItem(toolBar,SWT.SEPARATOR);
- clear = new ToolItem(toolBar, SWT.PUSH);
- clear.setText (LayoutExample.getResourceString ("Clear"));
- 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);
- }
- });
- toolBar.pack();
-
- new ToolItem (toolBar,SWT.SEPARATOR);
- code = new ToolItem (toolBar, SWT.PUSH);
- code.setText (LayoutExample.getResourceString ("Generate_Code"));
- 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 Text text = new Text(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.MOD1 + '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.MOD1 + '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(500, 600);
- shell.open();
- while(!shell.isDisposed())
- if (!display.readAndDispatch()) display.sleep();
- }
- });
-
- createChildWidgets();
- }
-
- /**
- * Creates the controls for modifying the "children"
- * table, and the table itself.
- * Subclasses override this method to augment the
- * standard table.
- */
- void createChildWidgets() {
- /* 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);
- FontData def[] = display.getSystemFont().getFontData();
- table.setFont(new Font(display, def[0].getName(), 10, SWT.NONE));
- GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1);
- 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 (100);
- else if (i == 1) column.setWidth (90);
- 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 (OPTIONS);
- 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) {
- comboReset = true;
- 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 (2, true);
- layout.horizontalSpacing = 10;
- controlGroup.setLayout (layout);
- final Button preferredButton = new Button (controlGroup, SWT.CHECK);
- preferredButton.setText (LayoutExample.getResourceString ("Preferred_Size"));
- preferredButton.setSelection (false);
- preferredButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- resetEditors ();
- GridData data = (GridData)layoutComposite.getLayoutData();
- if (preferredButton.getSelection ()) {
- data.heightHint = data.widthHint = SWT.DEFAULT;
- data.verticalAlignment = data.horizontalAlignment = 0;
- data.grabExcessVerticalSpace = data.grabExcessHorizontalSpace = false;
- } else {
- data.verticalAlignment = data.horizontalAlignment = SWT.FILL;
- data.grabExcessVerticalSpace = data.grabExcessHorizontalSpace = true;
- }
- layoutComposite.setLayoutData (data);
- layoutGroup.layout (true);
- }
- });
- preferredButton.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false, 2, 1));
- createControlWidgets ();
- }
-
- /**
- * Creates the "control" widget children.
- * Subclasses override this method to augment
- * the standard controls created.
- */
- void createControlWidgets () {
- createChildGroup ();
- }
-
- /**
- * 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 (SWT.FILL, SWT.FILL, true, true));
- 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) {
- /* Cache the shell and display. */
- shell = tabFolder.getShell ();
- display = shell.getDisplay ();
-
- /* Create a two column page with a SashForm*/
- tabFolderPage = new Composite (tabFolder, SWT.NONE);
- tabFolderPage.setLayoutData (new GridData(SWT.FILL, SWT.FILL, true, true));
- tabFolderPage.setLayout (new FillLayout ());
- sash = new SashForm (tabFolderPage, SWT.HORIZONTAL);
-
- /* Create the "layout" and "control" columns */
- createLayoutGroup ();
- createControlGroup ();
-
- sash.setWeights(sashWeights ());
- return tabFolderPage;
- }
-
- /**
- * Return the initial weight of the layout and control groups within the SashForm.
- * Subclasses may override to provide tab-specific weights.
- * @return the desired sash weights for the tab page
- */
- int[] sashWeights () {
- return new int[] {50, 50};
- }
-
- /**
- * 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++) {
- TableItem myItem = table.getItem(i);
- String name = myItem.getText(0);
- if (name.matches("\\d")) {
- Control control = children [i];
- String controlClass = control.getClass ().toString ();
- String controlType = controlClass.substring (controlClass.lastIndexOf ('.') + 1);
- names [i] = controlType.toLowerCase () + i;
- } else {
- names [i] = myItem.getText(0);
- }
- }
-
- /* Create StringBuffer containing the code */
- StringBuffer code = new StringBuffer ();
- code.append ("import org.eclipse.swt.*;\n");
- code.append ("import org.eclipse.swt.layout.*;\n");
- code.append ("import org.eclipse.swt.widgets.*;\n");
- if (needsCustom ()) code.append ("import org.eclipse.swt.custom.*;\n");
- if (needsGraphics ()) code.append ("import org.eclipse.swt.graphics.*;\n");
- code.append ("\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;
- }
-
- boolean needsGraphics() {
- return false;
- }
-
- boolean needsCustom() {
- return false;
- }
-
- /**
- * 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 ("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") || controlType.equals ("Text")) {
- 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");
- code.append ("\t\tfor (int i = 0; i < 2; i++) {\n");
- code.append ("\t\tTableItem tableItem = new TableItem (" + names [i] + ", SWT.NONE);\n");
- code.append ("\t\t\ttableItem.setText (\"Item\" + i);\n\t\t}\n");
- } else if (controlType.equals ("Tree")) {
- code.append ("\t\tfor (int i = 0; i < 2; i++) {\n");
- code.append ("\t\tTreeItem treeItem = new TreeItem (" + names [i] + ", SWT.NONE);\n");
- code.append ("\t\t\ttreeItem.setText (\"Item\" + i);\n\t\t}\n");
- } else if (controlType.equals ("ToolBar")) {
- code.append ("\t\tfor (int i = 0; i < 2; i++) {\n");
- code.append ("\t\tToolItem toolItem = new ToolItem (" + names [i] + ", SWT.NONE);\n");
- code.append ("\t\t\ttoolItem.setText (\"Item\" + i);\n\t\t}\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\tPoint size = coolToolBar.computeSize (SWT.DEFAULT, SWT.DEFAULT);\n");
- code.append ("\t\tcoolItem1.setSize (coolItem1.computeSize (size.x, size.y));\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\tsize = coolToolBar.computeSize (SWT.DEFAULT, SWT.DEFAULT);\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 ("Link") ||
- controlType.equals ("StyledText") ||
- controlType.equals ("Text")) {
- code.append ("\t\t" + names [i] + ".setText (\"" + names [i] + "\");\n");
- }
- return code;
- }
-
- /**
- * Returns the string to insert when a new child control is added to the table.
- * Subclasses override this method.
- */
- String[] getInsertString (String name, String controlType) {
- return null;
- }
-
- /**
- * 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 laid 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);
- String controlName = items [i].getText (0);
- if (control.equals ("Button")) {
- Button button = new Button (layoutComposite, SWT.PUSH);
- button.setText (controlName);
- 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 (controlName);
- 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 (controlName);
- children [i] = group;
- } else if (control.equals ("Label")) {
- Label label = new Label (layoutComposite, SWT.NONE);
- label.setText (controlName);
- children [i] = label;
- } else if (control.equals ("Link")) {
- Link link = new Link (layoutComposite, SWT.NONE);
- link.setText (controlName);
- children [i] = link;
- } 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 (controlName);
- 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 (controlName);
- 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;
- }
- }
- }
-
- void resetEditors () {
- resetEditors (false);
- }
-
- /**
- * Takes information from TableEditors and stores it.
- * Subclasses override this method.
- */
- 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/paint/AirbrushTool.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/AirbrushTool.java
deleted file mode 100644
index e42c6f57b5..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/AirbrushTool.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import java.util.Random;
-import org.eclipse.swt.graphics.*;
-
-/**
- * An airbrush tool.
- */
-public class AirbrushTool extends ContinuousPaintSession implements PaintTool {
- private ToolSettings settings;
- private Random random;
- private int cachedRadiusSquared;
- private int cachedNumPoints;
-
- /**
- * Constructs a Tool.
- *
- * @param toolSettings the new tool settings
- * @param paintSurface the PaintSurface we will render on.
- */
- public AirbrushTool(ToolSettings toolSettings, PaintSurface paintSurface) {
- super(paintSurface);
- random = new Random();
- setRetriggerTimer(10);
- set(toolSettings);
- }
-
- /**
- * Sets the tool's settings.
- *
- * @param toolSettings the new tool settings
- */
- public void set(ToolSettings toolSettings) {
- // compute things we need to know for drawing
- settings = toolSettings;
- cachedRadiusSquared = settings.airbrushRadius * settings.airbrushRadius;
- cachedNumPoints = 314 * settings.airbrushIntensity * cachedRadiusSquared / 250000;
- if (cachedNumPoints == 0 && settings.airbrushIntensity != 0)
- cachedNumPoints = 1;
- }
-
- /**
- * Returns the name associated with this tool.
- *
- * @return the localized name of this tool
- */
- public String getDisplayName() {
- return PaintExample.getResourceString("tool.Airbrush.label");
- }
-
- /*
- * Template method for drawing
- */
- protected void render(Point point) {
- // Draws a bunch (cachedNumPoints) of random pixels within a specified circle (cachedRadiusSquared).
- ContainerFigure cfig = new ContainerFigure();
-
- for (int i = 0; i < cachedNumPoints; ++i) {
- int randX, randY;
- do {
- randX = (int) ((random.nextDouble() - 0.5) * settings.airbrushRadius * 2.0);
- randY = (int) ((random.nextDouble() - 0.5) * settings.airbrushRadius * 2.0);
- } while (randX * randX + randY * randY > cachedRadiusSquared);
- cfig.add(new PointFigure(settings.commonForegroundColor, point.x + randX, point.y + randY));
- }
- getPaintSurface().drawFigure(cfig);
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/BasicPaintSession.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/BasicPaintSession.java
deleted file mode 100644
index fc2fdf44f4..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/BasicPaintSession.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-public abstract class BasicPaintSession implements PaintSession {
- /**
- * The paint surface
- */
- private PaintSurface paintSurface;
-
- /**
- * Constructs a PaintSession.
- *
- * @param paintSurface the drawing surface to use
- */
- protected BasicPaintSession(PaintSurface paintSurface) {
- this.paintSurface = paintSurface;
- }
-
- /**
- * Returns the paint surface associated with this paint session.
- *
- * @return the associated PaintSurface
- */
- public PaintSurface getPaintSurface() {
- return paintSurface;
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/ContainerFigure.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/ContainerFigure.java
deleted file mode 100644
index df7753aa59..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/ContainerFigure.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * Container for Figure objects with stacking preview mechanism.
- */
-public class ContainerFigure extends Figure {
- private static final int INITIAL_ARRAY_SIZE = 16;
-
- Figure[] objectStack = null;
- int nextIndex = 0;
-
- /**
- * Constructs an empty Container
- */
- public ContainerFigure() {
- }
- /**
- * Adds an object to the container for later drawing.
- *
- * @param object the object to add to the drawing list
- */
- public void add(Figure object) {
- if (objectStack == null) {
- objectStack = new Figure[INITIAL_ARRAY_SIZE];
- } else if (objectStack.length <= nextIndex) {
- Figure[] newObjectStack = new Figure[objectStack.length * 2];
- System.arraycopy(objectStack, 0, newObjectStack, 0, objectStack.length);
- objectStack = newObjectStack;
- }
- objectStack[nextIndex] = object;
- ++nextIndex;
- }
- /**
- * Determines if the container is empty.
- * @return true if the container is empty
- */
- public boolean isEmpty() {
- return nextIndex == 0;
- }
- /**
- * Adds an object to the container and draws its preview then updates the supplied preview state.
- *
- * @param object the object to add to the drawing list
- * @param gc the GC to draw on
- * @param offset the offset to add to virtual coordinates to get display coordinates
- * @param rememberedState the state returned by a previous drawPreview() or addAndPreview()
- * using this Container, may be null if there was no such previous call
- * @return object state that must be passed to erasePreview() later to erase this object
- */
-// public Object addAndPreview(Figure object, GC gc, Point offset, Object rememberedState) {
-// Object[] stateStack = (Object[]) rememberedState;
-// if (stateStack == null) {
-// stateStack = new Object[INITIAL_ARRAY_SIZE];
-// } else if (stateStack.length <= nextIndex) {
-// Object[] newStateStack = new Object[stateStack.length * 2];
-// System.arraycopy(stateStack, 0, newStateStack, 0, stateStack.length);
-// stateStack = newStateStack;
-// }
-// add(object);
-// stateStack[nextIndex - 1] = object.drawPreview(gc, offset);
-// return stateStack;
-// }
- /**
- * Clears the container.
- * <p>
- * Note that erasePreview() cannot be called after this point to erase any previous
- * drawPreview()'s.
- * </p>
- */
- public void clear() {
- while (--nextIndex > 0) objectStack[nextIndex] = null;
- nextIndex = 0;
- }
- public void draw(FigureDrawContext fdc) {
- for (int i = 0; i < nextIndex; ++i) objectStack[i].draw(fdc);
- }
- public void addDamagedRegion(FigureDrawContext fdc, Region region) {
- for (int i = 0; i < nextIndex; ++i) objectStack[i].addDamagedRegion(fdc, region);
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/ContinuousPaintSession.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/ContinuousPaintSession.java
deleted file mode 100644
index b415351a0a..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/ContinuousPaintSession.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * The superclass for paint tools that draw continuously along the path
- * traced by the mouse's movement while the button is depressed
- */
-public abstract class ContinuousPaintSession extends BasicPaintSession {
- /**
- * True if a click-drag is in progress.
- */
- private boolean dragInProgress = false;
-
- /**
- * A cached Point array for drawing.
- */
- private Point[] points = new Point[] { new Point(-1, -1), new Point(-1, -1) };
-
- /**
- * The time to wait between retriggers in milliseconds.
- */
- private int retriggerInterval = 0;
-
- /**
- * The currently valid RetriggerHandler
- */
- protected Runnable retriggerHandler = null;
-
- /**
- * Constructs a ContinuousPaintSession.
- *
- * @param paintSurface the drawing surface to use
- */
- protected ContinuousPaintSession(PaintSurface paintSurface) {
- super(paintSurface);
- }
-
- /**
- * Sets the retrigger timer.
- * <p>
- * After the timer elapses, if the mouse is still hovering over the same point with the
- * drag button pressed, a new render order is issued and the timer is restarted.
- * </p>
- * @param interval the time in milliseconds to wait between retriggers, 0 to disable
- */
- public void setRetriggerTimer(int interval) {
- retriggerInterval = interval;
- }
-
- /**
- * Activates the tool.
- */
- public void beginSession() {
- getPaintSurface().
- setStatusMessage(PaintExample.getResourceString("session.ContinuousPaint.message"));
- dragInProgress = false;
- }
-
- /**
- * Deactivates the tool.
- */
- public void endSession() {
- abortRetrigger();
- }
-
- /**
- * Aborts the current operation.
- */
- public void resetSession() {
- abortRetrigger();
- }
-
- /**
- * Handles a mouseDown event.
- *
- * @param event the mouse event detail information
- */
- public final void mouseDown(MouseEvent event) {
- if (event.button != 1) return;
- if (dragInProgress) return; // spurious event
- dragInProgress = true;
-
- points[0].x = event.x;
- points[0].y = event.y;
- render(points[0]);
- prepareRetrigger();
- }
-
- /**
- * Handles a mouseDoubleClick event.
- *
- * @param event the mouse event detail information
- */
- public final void mouseDoubleClick(MouseEvent event) {
- }
-
- /**
- * Handles a mouseUp event.
- *
- * @param event the mouse event detail information
- */
- public final void mouseUp(MouseEvent event) {
- if (event.button != 1) return;
- if (! dragInProgress) return; // spurious event
- abortRetrigger();
- mouseSegmentFinished(event);
- dragInProgress = false;
- }
-
- /**
- * Handles a mouseMove event.
- *
- * @param event the mouse event detail information
- */
- public final void mouseMove(MouseEvent event) {
- final PaintSurface ps = getPaintSurface();
- ps.setStatusCoord(ps.getCurrentPosition());
- if (! dragInProgress) return;
- mouseSegmentFinished(event);
- prepareRetrigger();
- }
-
- /**
- * Handle a rendering segment
- *
- * @param event the mouse event detail information
- */
- private final void mouseSegmentFinished(MouseEvent event) {
- if (points[0].x == -1) return; // spurious event
- if (points[0].x != event.x || points[0].y != event.y) {
- // draw new segment
- points[1].x = event.x;
- points[1].y = event.y;
- renderContinuousSegment();
- }
- }
-
- /**
- * Draws a continuous segment from points[0] to points[1].
- * Assumes points[0] has been drawn already.
- *
- * @post points[0] will refer to the same point as points[1]
- */
- protected void renderContinuousSegment() {
- /* A lazy but effective line drawing algorithm */
- final int dX = points[1].x - points[0].x;
- final int dY = points[1].y - points[0].y;
- int absdX = Math.abs(dX);
- int absdY = Math.abs(dY);
-
- if ((dX == 0) && (dY == 0)) return;
-
- if (absdY > absdX) {
- final int incfpX = (dX << 16) / absdY;
- final int incY = (dY > 0) ? 1 : -1;
- int fpX = points[0].x << 16; // X in fixedpoint format
-
- while (--absdY >= 0) {
- points[0].y += incY;
- points[0].x = (fpX += incfpX) >> 16;
- render(points[0]);
- }
- if (points[0].x == points[1].x) return;
- points[0].x = points[1].x;
- } else {
- final int incfpY = (dY << 16) / absdX;
- final int incX = (dX > 0) ? 1 : -1;
- int fpY = points[0].y << 16; // Y in fixedpoint format
-
- while (--absdX >= 0) {
- points[0].x += incX;
- points[0].y = (fpY += incfpY) >> 16;
- render(points[0]);
- }
- if (points[0].y == points[1].y) return;
- points[0].y = points[1].y;
- }
- render(points[0]);
- }
-
- /**
- * Prepare the retrigger timer
- */
- private final void prepareRetrigger() {
- if (retriggerInterval > 0) {
- /*
- * timerExec() provides a lightweight mechanism for running code at intervals from within
- * the event loop when timing accuracy is not important.
- *
- * Since it is not possible to cancel a timerExec(), we remember the Runnable that is
- * active in order to distinguish the valid one from the stale ones. In practice,
- * if the interval is 1/100th of a second, then creating a few hundred new RetriggerHandlers
- * each second will not cause a significant performance hit.
- */
- Display display = getPaintSurface().getDisplay();
- retriggerHandler = new Runnable() {
- public void run() {
- if (retriggerHandler == this) {
- render(points[0]);
- prepareRetrigger();
- }
- }
- };
- display.timerExec(retriggerInterval, retriggerHandler);
- }
- }
-
- /**
- * Aborts the retrigger timer
- */
- private final void abortRetrigger() {
- retriggerHandler = null;
- }
-
- /**
- * Template method: Renders a point.
- * @param point, the point to render
- */
- protected abstract void render(Point point);
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/DragPaintSession.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/DragPaintSession.java
deleted file mode 100644
index 0401ca2bbb..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/DragPaintSession.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.*;
-
-/**
- * The superclass for paint tools that use click-drag-release motions to
- * draw objects.
- */
-public abstract class DragPaintSession extends BasicPaintSession {
- /**
- * True if a click-drag is in progress
- */
- private boolean dragInProgress = false;
-
- /**
- * The position of the first click in a click-drag
- */
- private Point anchorPosition = new Point(-1, -1);
-
- /**
- * A temporary point
- */
- private Point tempPosition = new Point(-1, -1);
-
- /**
- * Constructs a PaintSession.
- *
- * @param getPaintSurface() the drawing surface to use
- */
- protected DragPaintSession(PaintSurface paintSurface) {
- super(paintSurface);
- }
-
- /**
- * Activates the tool.
- */
- public void beginSession() {
- getPaintSurface().
- setStatusMessage(PaintExample.getResourceString("session.DragInteractivePaint.message"));
- anchorPosition.x = -1;
- dragInProgress = false;
- }
-
- /**
- * Deactivates the tool.
- */
- public void endSession() {
- }
-
- /**
- * Resets the tool.
- * Aborts any operation in progress.
- */
- public void resetSession() {
- getPaintSurface().clearRubberbandSelection();
- anchorPosition.x = -1;
- dragInProgress = false;
- }
-
- /**
- * Handles a mouseDown event.
- *
- * @param event the mouse event detail information
- */
- public void mouseDown(MouseEvent event) {
- if (event.button != 1) return;
- if (dragInProgress) return; // spurious event
- dragInProgress = true;
-
- anchorPosition.x = event.x;
- anchorPosition.y = event.y;
- }
-
- /**
- * Handles a mouseDoubleClick event.
- *
- * @param event the mouse event detail information
- */
- public void mouseDoubleClick(MouseEvent event) {
- }
-
- /**
- * Handles a mouseUp event.
- *
- * @param event the mouse event detail information
- */
- public void mouseUp(MouseEvent event) {
- if (event.button != 1) {
- resetSession(); // abort if right or middle mouse button pressed
- return;
- }
- if (! dragInProgress) return; // spurious event
- dragInProgress = false;
- if (anchorPosition.x == -1) return; // spurious event
-
- getPaintSurface().commitRubberbandSelection();
- }
-
- /**
- * Handles a mouseMove event.
- *
- * @param event the mouse event detail information
- */
- public void mouseMove(MouseEvent event) {
- final PaintSurface ps = getPaintSurface();
- if (! dragInProgress) {
- ps.setStatusCoord(ps.getCurrentPosition());
- return;
- }
- ps.setStatusCoordRange(anchorPosition, ps.getCurrentPosition());
- ps.clearRubberbandSelection();
- tempPosition.x = event.x;
- tempPosition.y = event.y;
- ps.addRubberbandSelection(createFigure(anchorPosition, tempPosition));
- }
-
- /**
- * Template Method: Creates a Figure for drawing rubberband entities and the final product
- *
- * @param anchor the anchor point
- * @param cursor the point marking the current pointer location
- */
- protected abstract Figure createFigure(Point anchor, Point cursor);
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/EllipseFigure.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/EllipseFigure.java
deleted file mode 100644
index ed07ef20e5..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/EllipseFigure.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-/**
- * 2D Ellipse object
- */
-public class EllipseFigure extends Figure {
- private Color foregroundColor, backgroundColor;
- private int lineStyle, x1, y1, x2, y2;
- /**
- * Constructs an Ellipse
- * These objects are defined by any two diametrically opposing corners of a box
- * bounding the ellipse.
- *
- * @param color the color for this object
- * @param lineStyle the line style for this object
- * @param x1 the virtual X coordinate of the first corner
- * @param y1 the virtual Y coordinate of the first corner
- * @param x2 the virtual X coordinate of the second corner
- * @param y2 the virtual Y coordinate of the second corner
- */
- public EllipseFigure(Color foregroundColor, Color backgroundColor, int lineStyle, int x1, int y1, int x2, int y2) {
- this.foregroundColor = foregroundColor;
- this.backgroundColor = backgroundColor;
- this.lineStyle = lineStyle;
- this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2;
- }
- public void draw(FigureDrawContext fdc) {
- Rectangle r = fdc.toClientRectangle(x1, y1, x2, y2);
- fdc.gc.setForeground(foregroundColor);
- fdc.gc.setBackground(backgroundColor);
- fdc.gc.setLineStyle(lineStyle);
- fdc.gc.drawOval(r.x, r.y, r.width - 1, r.height - 1);
- fdc.gc.setLineStyle(SWT.LINE_SOLID);
- }
- public void addDamagedRegion(FigureDrawContext fdc, Region region) {
- region.add(fdc.toClientRectangle(x1, y1, x2, y2));
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/EllipseTool.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/EllipseTool.java
deleted file mode 100644
index 6611c76d57..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/EllipseTool.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * A drawing tool.
- */
-public class EllipseTool extends DragPaintSession implements PaintTool {
- private ToolSettings settings;
-
- /**
- * Constructs a EllipseTool.
- *
- * @param toolSettings the new tool settings
- * @param paintSurface the PaintSurface we will render on.
- */
- public EllipseTool(ToolSettings toolSettings, PaintSurface paintSurface) {
- super(paintSurface);
- set(toolSettings);
- }
-
- /**
- * Sets the tool's settings.
- *
- * @param toolSettings the new tool settings
- */
- public void set(ToolSettings toolSettings) {
- settings = toolSettings;
- }
-
- /**
- * Returns name associated with this tool.
- *
- * @return the localized name of this tool
- */
- public String getDisplayName() {
- return PaintExample.getResourceString("tool.Ellipse.label");
- }
-
- /*
- * Template methods for drawing
- */
- protected Figure createFigure(Point a, Point b) {
- ContainerFigure container = new ContainerFigure();
- if (settings.commonFillType != ToolSettings.ftNone)
- container.add(new SolidEllipseFigure(settings.commonBackgroundColor, a.x, a.y, b.x, b.y));
- if (settings.commonFillType != ToolSettings.ftSolid)
- container.add(new EllipseFigure(settings.commonForegroundColor, settings.commonBackgroundColor, settings.commonLineStyle,
- a.x, a.y, b.x, b.y));
- return container;
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/Figure.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/Figure.java
deleted file mode 100644
index 7fce7e624e..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/Figure.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * Superinterface for all drawing objects.
- * All drawing objects know how to render themselved to the screen and can draw a
- * temporary version of themselves for previewing the general appearance of the
- * object onscreen before it gets committed.
- */
-public abstract class Figure {
- /**
- * Draws this object.
- *
- * @param fdc a parameter block specifying drawing-related information
- */
- public abstract void draw(FigureDrawContext fdc);
-
- /**
- * Computes the damaged screen region caused by drawing this object (imprecise), then
- * appends it to the supplied region.
- *
- * @param fdc a parameter block specifying drawing-related information
- * @param region a region to which additional damage areas will be added
- */
- public abstract void addDamagedRegion(FigureDrawContext fdc, Region region);
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/FigureDrawContext.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/FigureDrawContext.java
deleted file mode 100644
index c4ab18df58..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/FigureDrawContext.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-public class FigureDrawContext {
- /*
- * <p>
- * The GC must be set up as follows
- * (it will be returned to this state upon completion of drawing operations)
- * <ul>
- * <li>setXORMode(false)
- * </ul>
- * </p>
- */
- public GC gc = null;
- public int xOffset = 0, yOffset = 0; // substract to get GC coords
- public int xScale = 1, yScale = 1;
-
- public Rectangle toClientRectangle(int x1, int y1, int x2, int y2) {
- return new Rectangle(
- Math.min(x1, x2) * xScale - xOffset,
- Math.min(y1, y2) * yScale - yOffset,
- (Math.abs(x2 - x1) + 1) * xScale,
- (Math.abs(y2 - y1) + 1) * yScale);
- }
- public Point toClientPoint(int x, int y) {
- return new Point(x * xScale - xOffset, y * yScale - yOffset);
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/LineFigure.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/LineFigure.java
deleted file mode 100644
index 023fd19e85..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/LineFigure.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-/**
- * 2D Line object
- */
-public class LineFigure extends Figure {
- private Color foregroundColor, backgroundColor;
- private int lineStyle, x1, y1, x2, y2;
- /**
- * Constructs a Line
- * These objects are defined by their two end-points.
- *
- * @param color the color for this object
- * @param lineStyle the line style for this object
- * @param x1 the virtual X coordinate of the first end-point
- * @param y1 the virtual Y coordinate of the first end-point
- * @param x2 the virtual X coordinate of the second end-point
- * @param y2 the virtual Y coordinate of the second end-point
- */
- public LineFigure(Color foregroundColor, Color backgroundColor, int lineStyle, int x1, int y1, int x2, int y2) {
- this.foregroundColor = foregroundColor;
- this.backgroundColor = backgroundColor;
- this.lineStyle = lineStyle;
- this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2;
- }
- public void draw(FigureDrawContext fdc) {
- Point p1 = fdc.toClientPoint(x1, y1);
- Point p2 = fdc.toClientPoint(x2, y2);
- fdc.gc.setForeground(foregroundColor);
- fdc.gc.setBackground(backgroundColor);
- fdc.gc.setLineStyle(lineStyle);
- fdc.gc.drawLine(p1.x, p1.y, p2.x, p2.y);
- fdc.gc.setLineStyle(SWT.LINE_SOLID);
- }
- public void addDamagedRegion(FigureDrawContext fdc, Region region) {
- region.add(fdc.toClientRectangle(x1, y1, x2, y2));
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/LineTool.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/LineTool.java
deleted file mode 100644
index e8a64a2dea..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/LineTool.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * A line drawing tool
- */
-public class LineTool extends DragPaintSession implements PaintTool {
- private ToolSettings settings;
-
- /**
- * Constructs a LineTool.
- *
- * @param toolSettings the new tool settings
- * @param paintSurface the PaintSurface we will render on.
- */
- public LineTool(ToolSettings toolSettings, PaintSurface paintSurface) {
- super(paintSurface);
- set(toolSettings);
- }
-
- /**
- * Sets the tool's settings.
- *
- * @param toolSettings the new tool settings
- */
- public void set(ToolSettings toolSettings) {
- settings = toolSettings;
- }
-
- /**
- * Returns name associated with this tool.
- *
- * @return the localized name of this tool
- */
- public String getDisplayName() {
- return PaintExample.getResourceString("tool.Line.label");
- }
-
- /*
- * Template methods for drawing
- */
- protected Figure createFigure(Point a, Point b) {
- return new LineFigure(settings.commonForegroundColor, settings.commonBackgroundColor, settings.commonLineStyle,
- a.x, a.y, b.x, b.y);
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PaintExample.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PaintExample.java
deleted file mode 100644
index 19a10a4597..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PaintExample.java
+++ /dev/null
@@ -1,584 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.accessibility.*;
-
-import java.io.*;
-import java.text.*;
-import java.util.*;
-
-public class PaintExample {
- private static ResourceBundle resourceBundle =
- ResourceBundle.getBundle("examples_paint");
- private Composite mainComposite;
- private Canvas activeForegroundColorCanvas;
- private Canvas activeBackgroundColorCanvas;
- private Color paintColorBlack, paintColorWhite; // alias for paintColors[0] and [1]
- private Color[] paintColors;
- private Font paintDefaultFont; // do not free
- private static final int numPaletteRows = 3;
- private static final int numPaletteCols = 50;
- private ToolSettings toolSettings; // current active settings
- private PaintSurface paintSurface; // paint surface for drawing
-
- static final int Pencil_tool = 0;
- static final int Airbrush_tool = 1;
- static final int Line_tool = 2;
- static final int PolyLine_tool = 3;
- static final int Rectangle_tool = 4;
- static final int RoundedRectangle_tool = 5;
- static final int Ellipse_tool = 6;
- static final int Text_tool = 7;
- static final int None_fill = 8;
- static final int Outline_fill = 9;
- static final int Solid_fill = 10;
- static final int Solid_linestyle = 11;
- static final int Dash_linestyle = 12;
- static final int Dot_linestyle = 13;
- static final int DashDot_linestyle = 14;
- static final int Font_options = 15;
-
- static final int Default_tool = Pencil_tool;
- static final int Default_fill = None_fill;
- static final int Default_linestyle = Solid_linestyle;
-
- public static final Tool[] tools = {
- new Tool(Pencil_tool, "Pencil", "tool", SWT.RADIO),
- new Tool(Airbrush_tool, "Airbrush", "tool", SWT.RADIO),
- new Tool(Line_tool, "Line", "tool", SWT.RADIO),
- new Tool(PolyLine_tool, "PolyLine", "tool", SWT.RADIO),
- new Tool(Rectangle_tool, "Rectangle", "tool", SWT.RADIO),
- new Tool(RoundedRectangle_tool, "RoundedRectangle", "tool", SWT.RADIO),
- new Tool(Ellipse_tool, "Ellipse", "tool", SWT.RADIO),
- new Tool(Text_tool, "Text", "tool", SWT.RADIO),
- new Tool(None_fill, "None", "fill", SWT.RADIO, new Integer(ToolSettings.ftNone)),
- new Tool(Outline_fill, "Outline", "fill", SWT.RADIO, new Integer(ToolSettings.ftOutline)),
- new Tool(Solid_fill, "Solid", "fill", SWT.RADIO, new Integer(ToolSettings.ftSolid)),
- new Tool(Solid_linestyle, "Solid", "linestyle", SWT.RADIO, new Integer(SWT.LINE_SOLID)),
- new Tool(Dash_linestyle, "Dash", "linestyle", SWT.RADIO, new Integer(SWT.LINE_DASH)),
- new Tool(Dot_linestyle, "Dot", "linestyle", SWT.RADIO, new Integer(SWT.LINE_DOT)),
- new Tool(DashDot_linestyle, "DashDot", "linestyle", SWT.RADIO, new Integer(SWT.LINE_DASHDOT)),
- new Tool(Font_options, "Font", "options", SWT.PUSH)
- };
-
- /**
- * Creates an instance of a PaintExample embedded inside
- * the supplied parent Composite.
- *
- * @param parent the container of the example
- */
- public PaintExample(Composite parent) {
- mainComposite = parent;
- initResources();
- initActions();
- init();
- }
-
- /**
- * Invokes as a standalone program.
- */
- public static void main(String[] args) {
- Display display = new Display();
- Shell shell = new Shell(display);
- shell.setText(getResourceString("window.title"));
- shell.setLayout(new GridLayout());
- PaintExample instance = new PaintExample(shell);
- instance.createToolBar(shell);
- Composite composite = new Composite(shell, SWT.NONE);
- composite.setLayout(new FillLayout());
- composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
- instance.createGUI(composite);
- instance.setDefaults();
- setShellSize(display, shell);
- shell.open();
- while (! shell.isDisposed()) {
- if (! display.readAndDispatch()) display.sleep();
- }
- instance.dispose();
- }
-
- /**
- * Creates the toolbar.
- * Note: Only called by standalone.
- */
- private void createToolBar(Composite parent) {
- ToolBar toolbar = new ToolBar (parent, SWT.NONE);
- String group = null;
- for (int i = 0; i < tools.length; i++) {
- Tool tool = tools[i];
- if (group != null && !tool.group.equals(group)) {
- new ToolItem (toolbar, SWT.SEPARATOR);
- }
- group = tool.group;
- ToolItem item = addToolItem(toolbar, tool);
- if (i == Default_tool || i == Default_fill || i == Default_linestyle) item.setSelection(true);
- }
- }
-
- /**
- * Adds a tool item to the toolbar.
- * Note: Only called by standalone.
- */
- private ToolItem addToolItem(final ToolBar toolbar, final Tool tool) {
- final String id = tool.group + '.' + tool.name;
- ToolItem item = new ToolItem (toolbar, tool.type);
- item.setText (getResourceString(id + ".label"));
- item.setToolTipText(getResourceString(id + ".tooltip"));
- item.setImage(tool.image);
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- tool.action.run();
- }
- });
- final int childID = toolbar.indexOf(item);
- toolbar.getAccessible().addAccessibleListener(new AccessibleAdapter() {
- public void getName(org.eclipse.swt.accessibility.AccessibleEvent e) {
- if (e.childID == childID) {
- e.result = getResourceString(id + ".description");
- }
- }
- });
- return item;
- }
-
- /**
- * Sets the default tool item states.
- */
- public void setDefaults() {
- setPaintTool(Default_tool);
- setFillType(Default_fill);
- setLineStyle(Default_linestyle);
- setForegroundColor(paintColorBlack);
- setBackgroundColor(paintColorWhite);
- }
-
- /**
- * Creates the GUI.
- */
- public void createGUI(Composite parent) {
- GridLayout gridLayout;
- GridData gridData;
-
- /*** Create principal GUI layout elements ***/
- Composite displayArea = new Composite(parent, SWT.NONE);
- gridLayout = new GridLayout();
- gridLayout.numColumns = 1;
- displayArea.setLayout(gridLayout);
-
- // Creating these elements here avoids the need to instantiate the GUI elements
- // in strict layout order. The natural layout ordering is an artifact of using
- // SWT layouts, but unfortunately it is not the same order as that required to
- // instantiate all of the non-GUI application elements to satisfy referential
- // dependencies. It is possible to reorder the initialization to some extent, but
- // this can be very tedious.
-
- // paint canvas
- final Canvas paintCanvas = new Canvas(displayArea, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL |
- SWT.NO_REDRAW_RESIZE | SWT.NO_BACKGROUND);
- gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL);
- paintCanvas.setLayoutData(gridData);
- paintCanvas.setBackground(paintColorWhite);
-
- // color selector frame
- final Composite colorFrame = new Composite(displayArea, SWT.NONE);
- gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL);
- colorFrame.setLayoutData(gridData);
-
- // tool settings frame
- final Composite toolSettingsFrame = new Composite(displayArea, SWT.NONE);
- gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL);
- toolSettingsFrame.setLayoutData(gridData);
-
- // status text
- final Text statusText = new Text(displayArea, SWT.BORDER | SWT.SINGLE | SWT.READ_ONLY);
- gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL);
- statusText.setLayoutData(gridData);
-
- /*** Create the remaining application elements inside the principal GUI layout elements ***/
- // paintSurface
- paintSurface = new PaintSurface(paintCanvas, statusText, paintColorWhite);
-
- // finish initializing the tool data
- tools[Pencil_tool].data = new PencilTool(toolSettings, paintSurface);
- tools[Airbrush_tool].data = new AirbrushTool(toolSettings, paintSurface);
- tools[Line_tool].data = new LineTool(toolSettings, paintSurface);
- tools[PolyLine_tool].data = new PolyLineTool(toolSettings, paintSurface);
- tools[Rectangle_tool].data = new RectangleTool(toolSettings, paintSurface);
- tools[RoundedRectangle_tool].data = new RoundedRectangleTool(toolSettings, paintSurface);
- tools[Ellipse_tool].data = new EllipseTool(toolSettings, paintSurface);
- tools[Text_tool].data = new TextTool(toolSettings, paintSurface);
-
- // colorFrame
- gridLayout = new GridLayout();
- gridLayout.numColumns = 3;
- gridLayout.marginHeight = 0;
- gridLayout.marginWidth = 0;
- colorFrame.setLayout(gridLayout);
-
- // activeForegroundColorCanvas, activeBackgroundColorCanvas
- activeForegroundColorCanvas = new Canvas(colorFrame, SWT.BORDER);
- gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- gridData.heightHint = 24;
- gridData.widthHint = 24;
- activeForegroundColorCanvas.setLayoutData(gridData);
-
- activeBackgroundColorCanvas = new Canvas(colorFrame, SWT.BORDER);
- gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- gridData.heightHint = 24;
- gridData.widthHint = 24;
- activeBackgroundColorCanvas.setLayoutData(gridData);
-
- // paletteCanvas
- final Canvas paletteCanvas = new Canvas(colorFrame, SWT.BORDER | SWT.NO_BACKGROUND);
- gridData = new GridData(GridData.FILL_HORIZONTAL);
- gridData.heightHint = 24;
- paletteCanvas.setLayoutData(gridData);
- paletteCanvas.addListener(SWT.MouseDown, new Listener() {
- public void handleEvent(Event e) {
- Rectangle bounds = paletteCanvas.getClientArea();
- Color color = getColorAt(bounds, e.x, e.y);
-
- if (e.button == 1) setForegroundColor(color);
- else setBackgroundColor(color);
- }
- private Color getColorAt(Rectangle bounds, int x, int y) {
- if (bounds.height <= 1 && bounds.width <= 1) return paintColorWhite;
- final int row = (y - bounds.y) * numPaletteRows / bounds.height;
- final int col = (x - bounds.x) * numPaletteCols / bounds.width;
- return paintColors[Math.min(Math.max(row * numPaletteCols + col, 0), paintColors.length - 1)];
- }
- });
- Listener refreshListener = new Listener() {
- public void handleEvent(Event e) {
- if (e.gc == null) return;
- Rectangle bounds = paletteCanvas.getClientArea();
- for (int row = 0; row < numPaletteRows; ++row) {
- for (int col = 0; col < numPaletteCols; ++col) {
- final int x = bounds.width * col / numPaletteCols;
- final int y = bounds.height * row / numPaletteRows;
- final int width = Math.max(bounds.width * (col + 1) / numPaletteCols - x, 1);
- final int height = Math.max(bounds.height * (row + 1) / numPaletteRows - y, 1);
- e.gc.setBackground(paintColors[row * numPaletteCols + col]);
- e.gc.fillRectangle(bounds.x + x, bounds.y + y, width, height);
- }
- }
- }
- };
- paletteCanvas.addListener(SWT.Resize, refreshListener);
- paletteCanvas.addListener(SWT.Paint, refreshListener);
- //paletteCanvas.redraw();
-
- // toolSettingsFrame
- gridLayout = new GridLayout();
- gridLayout.numColumns = 4;
- gridLayout.marginHeight = 0;
- gridLayout.marginWidth = 0;
- toolSettingsFrame.setLayout(gridLayout);
-
- Label label = new Label(toolSettingsFrame, SWT.NONE);
- label.setText(getResourceString("settings.AirbrushRadius.text"));
-
- final Scale airbrushRadiusScale = new Scale(toolSettingsFrame, SWT.HORIZONTAL);
- airbrushRadiusScale.setMinimum(5);
- airbrushRadiusScale.setMaximum(50);
- airbrushRadiusScale.setSelection(toolSettings.airbrushRadius);
- airbrushRadiusScale.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL));
- airbrushRadiusScale.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- toolSettings.airbrushRadius = airbrushRadiusScale.getSelection();
- updateToolSettings();
- }
- });
-
- label = new Label(toolSettingsFrame, SWT.NONE);
- label.setText(getResourceString("settings.AirbrushIntensity.text"));
-
- final Scale airbrushIntensityScale = new Scale(toolSettingsFrame, SWT.HORIZONTAL);
- airbrushIntensityScale.setMinimum(1);
- airbrushIntensityScale.setMaximum(100);
- airbrushIntensityScale.setSelection(toolSettings.airbrushIntensity);
- airbrushIntensityScale.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL));
- airbrushIntensityScale.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- toolSettings.airbrushIntensity = airbrushIntensityScale.getSelection();
- updateToolSettings();
- }
- });
- }
-
- /**
- * Disposes of all resources associated with a particular
- * instance of the PaintExample.
- */
- public void dispose() {
- if (paintSurface != null) paintSurface.dispose();
- if (paintColors != null) {
- for (int i = 0; i < paintColors.length; ++i) {
- final Color color = paintColors[i];
- if (color != null) color.dispose();
- }
- }
- paintDefaultFont = null;
- paintColors = null;
- paintSurface = null;
- freeResources();
- }
-
- /**
- * Frees the resource bundle resources.
- */
- public void freeResources() {
- for (int i = 0; i < tools.length; ++i) {
- Tool tool = tools[i];
- final Image image = tool.image;
- if (image != null) image.dispose();
- tool.image = null;
- }
- }
-
- /**
- * Returns the Display.
- *
- * @return the display we're using
- */
- public Display getDisplay() {
- return mainComposite.getDisplay();
- }
-
- /**
- * 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 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.
- */
- public static String getResourceString(String key, Object[] args) {
- try {
- return MessageFormat.format(getResourceString(key), args);
- } catch (MissingResourceException e) {
- return key;
- } catch (NullPointerException e) {
- return "!" + key + "!";
- }
- }
-
- /**
- * Initialize colors, fonts, and tool settings.
- */
- private void init() {
- Display display = mainComposite.getDisplay();
-
- paintColorWhite = new Color(display, 255, 255, 255);
- paintColorBlack = new Color(display, 0, 0, 0);
-
- paintDefaultFont = display.getSystemFont();
-
- paintColors = new Color[numPaletteCols * numPaletteRows];
- paintColors[0] = paintColorBlack;
- paintColors[1] = paintColorWhite;
- for (int i = 2; i < paintColors.length; i++) {
- paintColors[i] = new Color(display,
- ((i*7)%255),((i*23)%255), ((i*51)%255));
- }
-
- toolSettings = new ToolSettings();
- toolSettings.commonForegroundColor = paintColorBlack;
- toolSettings.commonBackgroundColor = paintColorWhite;
- toolSettings.commonFont = paintDefaultFont;
- }
-
- /**
- * Sets the action field of the tools
- */
- private void initActions() {
- for (int i = 0; i < tools.length; ++i) {
- final Tool tool = tools[i];
- String group = tool.group;
- if (group.equals("tool")) {
- tool.action = new Runnable() {
- public void run() {
- setPaintTool(tool.id);
- }
- };
- } else if (group.equals("fill")) {
- tool.action = new Runnable() {
- public void run() {
- setFillType(tool.id);
- }
- };
- } else if (group.equals("linestyle")) {
- tool.action = new Runnable() {
- public void run() {
- setLineStyle(tool.id);
- }
- };
- } else if (group.equals("options")) {
- tool.action = new Runnable() {
- public void run() {
- FontDialog fontDialog = new FontDialog(paintSurface.getShell(), SWT.PRIMARY_MODAL);
- FontData[] fontDatum = toolSettings.commonFont.getFontData();
- if (fontDatum != null && fontDatum.length > 0) {
- fontDialog.setFontList(fontDatum);
- }
- fontDialog.setText(getResourceString("options.Font.dialog.title"));
-
- paintSurface.hideRubberband();
- FontData fontData = fontDialog.open();
- paintSurface.showRubberband();
- if (fontData != null) {
- try {
- Font font = new Font(mainComposite.getDisplay(), fontData);
- toolSettings.commonFont = font;
- updateToolSettings();
- } catch (SWTException ex) {
- }
- }
- }
- };
- }
- }
- }
-
- /**
- * Loads the image resources.
- */
- public void initResources() {
- final Class clazz = PaintExample.class;
- if (resourceBundle != null) {
- try {
- for (int i = 0; i < tools.length; ++i) {
- Tool tool = tools[i];
- String id = tool.group + '.' + tool.name;
- InputStream sourceStream = clazz.getResourceAsStream(getResourceString(id + ".image"));
- ImageData source = new ImageData(sourceStream);
- ImageData mask = source.getTransparencyMask();
- tool.image = new Image(null, source, mask);
- try {
- sourceStream.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- return;
- } catch (Throwable t) {
- }
- }
- String error = (resourceBundle != null) ?
- getResourceString("error.CouldNotLoadResources") :
- "Unable to load resources";
- freeResources();
- throw new RuntimeException(error);
- }
-
- /**
- * Grabs input focus.
- */
- public void setFocus() {
- mainComposite.setFocus();
- }
-
- /**
- * Sets the tool foreground color.
- *
- * @param color the new color to use
- */
- public void setForegroundColor(Color color) {
- if (activeForegroundColorCanvas != null)
- activeForegroundColorCanvas.setBackground(color);
- toolSettings.commonForegroundColor = color;
- updateToolSettings();
- }
-
- /**
- * Set the tool background color.
- *
- * @param color the new color to use
- */
- public void setBackgroundColor(Color color) {
- if (activeBackgroundColorCanvas != null)
- activeBackgroundColorCanvas.setBackground(color);
- toolSettings.commonBackgroundColor = color;
- updateToolSettings();
- }
-
- /**
- * Selects a tool given its ID.
- */
- public void setPaintTool(int id) {
- PaintTool paintTool = (PaintTool) tools[id].data;
- paintSurface.setPaintSession(paintTool);
- updateToolSettings();
- }
-
- /**
- * Selects a filltype given its ID.
- */
- public void setFillType(int id) {
- Integer fillType = (Integer) tools[id].data;
- toolSettings.commonFillType = fillType.intValue();
- updateToolSettings();
- }
-
- /**
- * Selects line type given its ID.
- */
- public void setLineStyle(int id) {
- Integer lineType = (Integer) tools[id].data;
- toolSettings.commonLineStyle = lineType.intValue();
- updateToolSettings();
- }
-
- /**
- * Sets the size of the shell to it's "packed" size,
- * unless that makes it bigger than the display,
- * in which case set it to 9/10 of display size.
- */
- private static void setShellSize (Display display, Shell shell) {
- Rectangle bounds = display.getBounds();
- Point size = shell.computeSize (SWT.DEFAULT, SWT.DEFAULT);
- if (size.x > bounds.width) size.x = bounds.width * 9 / 10;
- if (size.y > bounds.height) size.y = bounds.height * 9 / 10;
- shell.setSize (size);
- }
-
- /**
- * Notifies the tool that its settings have changed.
- */
- private void updateToolSettings() {
- final PaintTool activePaintTool = paintSurface.getPaintTool();
- if (activePaintTool == null) return;
-
- activePaintTool.endSession();
- activePaintTool.set(toolSettings);
- activePaintTool.beginSession();
- }
-}
-
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PaintSession.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PaintSession.java
deleted file mode 100644
index 2fa86f5752..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PaintSession.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.events.*;
-
-/**
- * Manages an interactive paint session.
- * Note that the coordinates received via the listener interfaces are virtualized to zero-origin
- * relative to the painting surface.
- */
-public interface PaintSession extends MouseListener, MouseMoveListener {
- /**
- * Returns the paint surface associated with this paint session
- *
- * @return the associated PaintSurface
- */
- public PaintSurface getPaintSurface();
-
- /**
- * Activates the session.
- *
- * Note: When overriding this method, call super.beginSession() at method start.
- */
- public abstract void beginSession();
-
- /**
- * Deactivates the session.
- *
- * Note: When overriding this method, call super.endSession() at method exit.
- */
- public abstract void endSession();
-
- /**
- * Resets the session.
- * Aborts any operation in progress.
- *
- * Note: When overriding this method, call super.resetSession() at method exit.
- */
- public abstract void resetSession();
-
-
- /**
- * Returns the name associated with this tool.
- *
- * @return the localized name of this tool
- */
- public String getDisplayName();
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PaintSurface.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PaintSurface.java
deleted file mode 100644
index 6866409b83..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PaintSurface.java
+++ /dev/null
@@ -1,521 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * Manages a simple drawing surface.
- */
-public class PaintSurface {
- private Point currentPosition = new Point(0, 0);
- private Canvas paintCanvas;
-
- private PaintSession paintSession;
- private Image image;
- private Image paintImage; // buffer for refresh blits
- private int imageWidth, imageHeight;
- private int visibleWidth, visibleHeight;
-
- private FigureDrawContext displayFDC = new FigureDrawContext();
- private FigureDrawContext imageFDC = new FigureDrawContext();
- private FigureDrawContext paintFDC = new FigureDrawContext();
-
- /* Rubberband */
- private ContainerFigure rubberband = new ContainerFigure();
- // the active rubberband selection
- private int rubberbandHiddenNestingCount = 0;
- // always >= 0, if > 0 rubberband has been hidden
-
- /* Status */
- private Text statusText;
- private String statusActionInfo, statusMessageInfo, statusCoordInfo;
-
- /**
- * Constructs a PaintSurface.
- * <p>
- * paintCanvas must have SWT.NO_REDRAW_RESIZE and SWT.NO_BACKGROUND styles,
- * and may have SWT.V_SCROLL and/or SWT.H_SCROLL.
- * </p>
- * @param paintCanvas the Canvas object in which to render
- * @param paintStatus the PaintStatus object to use for providing user feedback
- * @param fillColor the color to fill the canvas with initially
- */
- public PaintSurface(Canvas paintCanvas, Text statusText, Color fillColor) {
- this.paintCanvas = paintCanvas;
- this.statusText = statusText;
- clearStatus();
-
- /* Set up the drawing surface */
- Rectangle displayRect = paintCanvas.getDisplay().getClientArea();
- imageWidth = displayRect.width;
- imageHeight = displayRect.height;
- image = new Image(paintCanvas.getDisplay(), imageWidth, imageHeight);
-
- imageFDC.gc = new GC(image);
- imageFDC.gc.setBackground(fillColor);
- imageFDC.gc.fillRectangle(0, 0, imageWidth, imageHeight);
- displayFDC.gc = new GC(paintCanvas);
-
- /* Initialize the session */
- setPaintSession(null);
-
- /* Add our listeners */
- paintCanvas.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent e) {
- displayFDC.gc.dispose();
- }
- });
- paintCanvas.addMouseListener(new MouseAdapter() {
- public void mouseDown(MouseEvent event) {
- processMouseEventCoordinates(event);
- if (paintSession != null) paintSession.mouseDown(event);
- }
- public void mouseUp(MouseEvent event) {
- processMouseEventCoordinates(event);
- if (paintSession != null) paintSession.mouseUp(event);
- }
- public void mouseDoubleClick(MouseEvent event) {
- processMouseEventCoordinates(event);
- if (paintSession != null) paintSession.mouseDoubleClick(event);
- }
- });
- paintCanvas.addMouseMoveListener(new MouseMoveListener() {
- public void mouseMove(MouseEvent event) {
- processMouseEventCoordinates(event);
- if (paintSession != null) paintSession.mouseMove(event);
- }
- });
- paintCanvas.addPaintListener(new PaintListener() {
- public void paintControl(PaintEvent event) {
- if (rubberband.isEmpty()) {
- // Nothing to merge, so we just refresh
- event.gc.drawImage(image,
- displayFDC.xOffset + event.x, displayFDC.yOffset + event.y, event.width, event.height,
- event.x, event.y, event.width, event.height);
- } else {
- /*
- * Avoid flicker when merging overlayed objects by constructing the image on
- * a backbuffer first, then blitting it to the screen.
- */
- // Check that the backbuffer is large enough
- if (paintImage != null) {
- Rectangle rect = paintImage.getBounds();
- if ((event.width + event.x > rect.width) ||
- (event.height + event.y > rect.height)) {
- paintFDC.gc.dispose();
- paintImage.dispose();
- paintImage = null;
- }
- }
- if (paintImage == null) {
- Display display = getDisplay();
- Rectangle rect = display.getClientArea();
- paintImage = new Image(display,
- Math.max(rect.width, event.width + event.x),
- Math.max(rect.height, event.height + event.y));
- paintFDC.gc = new GC(paintImage);
- }
- // Setup clipping and the FDC
- Region clipRegion = new Region();
- event.gc.getClipping(clipRegion);
- paintFDC.gc.setClipping(clipRegion);
- clipRegion.dispose();
-
- paintFDC.xOffset = displayFDC.xOffset;
- paintFDC.yOffset = displayFDC.yOffset;
- paintFDC.xScale = displayFDC.xScale;
- paintFDC.yScale = displayFDC.yScale;
-
- // Merge the overlayed objects into the image, then blit
- paintFDC.gc.drawImage(image,
- displayFDC.xOffset + event.x, displayFDC.yOffset + event.y, event.width, event.height,
- event.x, event.y, event.width, event.height);
- rubberband.draw(paintFDC);
- event.gc.drawImage(paintImage,
- event.x, event.y, event.width, event.height,
- event.x, event.y, event.width, event.height);
- }
- }
- });
- paintCanvas.addControlListener(new ControlAdapter() {
- public void controlResized(ControlEvent event) {
- handleResize();
- }
- });
-
- /* Set up the paint canvas scroll bars */
- ScrollBar horizontal = paintCanvas.getHorizontalBar();
- horizontal.setVisible(true);
- horizontal.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- scrollHorizontally((ScrollBar)event.widget);
- }
- });
- ScrollBar vertical = paintCanvas.getVerticalBar();
- vertical.setVisible(true);
- vertical.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- scrollVertically((ScrollBar)event.widget);
- }
- });
- handleResize();
- }
-
- /**
- * Disposes of the PaintSurface's resources.
- */
- public void dispose() {
- imageFDC.gc.dispose();
- image.dispose();
- if (paintImage != null) {
- paintImage.dispose();
- paintFDC.gc.dispose();
- }
-
- currentPosition = null;
- paintCanvas = null;
- paintSession = null;
- image = null;
- paintImage = null;
- displayFDC = null;
- imageFDC = null;
- paintFDC = null;
- rubberband = null;
- statusText = null;
- statusActionInfo = null;
- statusMessageInfo = null;
- statusCoordInfo = null;
- }
-
- /**
- * Called when we must grab focus.
- */
- public void setFocus() {
- paintCanvas.setFocus();
- }
-
- /**
- * Returns the Display on which the PaintSurface resides.
- * @return the Display
- */
- public Display getDisplay() {
- return paintCanvas.getDisplay();
- }
-
- /**
- * Returns the Shell in which the PaintSurface resides.
- * @return the Shell
- */
- public Shell getShell() {
- return paintCanvas.getShell();
- }
-
- /**
- * Sets the current paint session.
- * <p>
- * If oldPaintSession != paintSession calls oldPaintSession.end()
- * and paintSession.begin()
- * </p>
- *
- * @param paintSession the paint session to activate; null to disable all sessions
- */
- public void setPaintSession(PaintSession paintSession) {
- if (this.paintSession != null) {
- if (this.paintSession == paintSession) return;
- this.paintSession.endSession();
- }
- this.paintSession = paintSession;
- clearStatus();
- if (paintSession != null) {
- setStatusAction(paintSession.getDisplayName());
- paintSession.beginSession();
- } else {
- setStatusAction(PaintExample.getResourceString("tool.Null.label"));
- setStatusMessage(PaintExample.getResourceString("session.Null.message"));
- }
- }
-
- /**
- * Returns the current paint session.
- *
- * @return the current paint session, null if none is active
- */
- public PaintSession getPaintSession() {
- return paintSession;
- }
-
- /**
- * Returns the current paint tool.
- *
- * @return the current paint tool, null if none is active (though some other session
- * might be)
- */
- public PaintTool getPaintTool() {
- return (paintSession != null && paintSession instanceof PaintTool) ?
- (PaintTool)paintSession : null;
- }
-
- /**
- * Returns the current position in an interactive operation.
- *
- * @return the last known position of the pointer
- */
- public Point getCurrentPosition() {
- return currentPosition;
- }
-
- /**
- * Draws a Figure object to the screen and to the backing store permanently.
- *
- * @param object the object to draw onscreen
- */
- public void drawFigure(Figure object) {
- object.draw(imageFDC);
- object.draw(displayFDC);
- }
-
- /**
- * Adds a Figure object to the active rubberband selection.
- * <p>
- * This object will be drawn to the screen as a preview and refreshed appropriately
- * until the selection is either cleared or committed.
- * </p>
- *
- * @param object the object to add to the selection
- */
- public void addRubberbandSelection(Figure object) {
- rubberband.add(object);
- if (! isRubberbandHidden()) object.draw(displayFDC);
- }
-
- /**
- * Clears the active rubberband selection.
- * <p>
- * Erases any rubberband objects on the screen then clears the selection.
- * </p>
- */
- public void clearRubberbandSelection() {
- if (! isRubberbandHidden()) {
- Region region = new Region();
- rubberband.addDamagedRegion(displayFDC, region);
- Rectangle r = region.getBounds();
- paintCanvas.redraw(r.x, r.y, r.width, r.height, true);
- region.dispose();
- }
- rubberband.clear();
-
- }
-
- /**
- * Commits the active rubberband selection.
- * <p>
- * Redraws any rubberband objects on the screen as permanent objects then clears the selection.
- * </p>
- */
- public void commitRubberbandSelection() {
- rubberband.draw(imageFDC);
- if (isRubberbandHidden()) rubberband.draw(displayFDC);
- rubberband.clear();
- }
-
- /**
- * Hides the rubberband (but does not eliminate it).
- * <p>
- * Increments by one the rubberband "hide" nesting count. The rubberband
- * is hidden from view (but remains active) if it wasn't already hidden.
- * </p>
- */
- public void hideRubberband() {
- if (rubberbandHiddenNestingCount++ <= 0) {
- Region region = new Region();
- rubberband.addDamagedRegion(displayFDC, region);
- Rectangle r = region.getBounds();
- paintCanvas.redraw(r.x, r.y, r.width, r.height, true);
- region.dispose();
- }
- }
-
- /**
- * Shows (un-hides) the rubberband.
- * <p>
- * Decrements by one the rubberband "hide" nesting count. The rubberband
- * is only made visible when showRubberband() has been called once for each
- * previous hideRubberband(). It is not permitted to call showRubberband() if
- * the rubber band is not presently hidden.
- * </p>
- */
- public void showRubberband() {
- if (rubberbandHiddenNestingCount <= 0)
- throw new IllegalStateException("rubberbandHiddenNestingCount > 0");
- if (--rubberbandHiddenNestingCount == 0) {
- rubberband.draw(displayFDC);
- }
- }
-
- /**
- * Determines if the rubberband is hidden.
- *
- * @return true iff the rubber is hidden
- */
- public boolean isRubberbandHidden() {
- return rubberbandHiddenNestingCount > 0;
- }
-
- /**
- * Handles a horizontal scroll event
- *
- * @param scrollbar the horizontal scroll bar that posted this event
- */
- public void scrollHorizontally(ScrollBar scrollBar) {
- if (image == null) return;
- if (imageWidth > visibleWidth) {
- final int oldOffset = displayFDC.xOffset;
- final int newOffset = Math.min(scrollBar.getSelection(), imageWidth - visibleWidth);
- if (oldOffset != newOffset) {
- paintCanvas.update();
- displayFDC.xOffset = newOffset;
- paintCanvas.scroll(Math.max(oldOffset - newOffset, 0), 0, Math.max(newOffset - oldOffset, 0), 0,
- visibleWidth, visibleHeight, false);
- }
- }
- }
-
- /**
- * Handles a vertical scroll event
- *
- * @param scrollbar the vertical scroll bar that posted this event
- */
- public void scrollVertically(ScrollBar scrollBar) {
- if (image == null) return;
- if (imageHeight > visibleHeight) {
- final int oldOffset = displayFDC.yOffset;
- final int newOffset = Math.min(scrollBar.getSelection(), imageHeight - visibleHeight);
- if (oldOffset != newOffset) {
- paintCanvas.update();
- displayFDC.yOffset = newOffset;
- paintCanvas.scroll(0, Math.max(oldOffset - newOffset, 0), 0, Math.max(newOffset - oldOffset, 0),
- visibleWidth, visibleHeight, false);
- }
- }
- }
-
- /**
- * Handles resize events
- */
- private void handleResize() {
- paintCanvas.update();
-
- Rectangle visibleRect = paintCanvas.getClientArea();
- visibleWidth = visibleRect.width;
- visibleHeight = visibleRect.height;
-
- ScrollBar horizontal = paintCanvas.getHorizontalBar();
- if (horizontal != null) {
- displayFDC.xOffset = Math.min(horizontal.getSelection(), imageWidth - visibleWidth);
- if (imageWidth <= visibleWidth) {
- horizontal.setEnabled(false);
- horizontal.setSelection(0);
- } else {
- horizontal.setEnabled(true);
- horizontal.setValues(displayFDC.xOffset, 0, imageWidth, visibleWidth,
- 8, visibleWidth);
- }
- }
-
- ScrollBar vertical = paintCanvas.getVerticalBar();
- if (vertical != null) {
- displayFDC.yOffset = Math.min(vertical.getSelection(), imageHeight - visibleHeight);
- if (imageHeight <= visibleHeight) {
- vertical.setEnabled(false);
- vertical.setSelection(0);
- } else {
- vertical.setEnabled(true);
- vertical.setValues(displayFDC.yOffset, 0, imageHeight, visibleHeight,
- 8, visibleHeight);
- }
- }
- }
-
- /**
- * Virtualizes MouseEvent coordinates and stores the current position.
- */
- private void processMouseEventCoordinates(MouseEvent event) {
- currentPosition.x = event.x =
- Math.min(Math.max(event.x, 0), visibleWidth - 1) + displayFDC.xOffset;
- currentPosition.y = event.y =
- Math.min(Math.max(event.y, 0), visibleHeight - 1) + displayFDC.yOffset;
- }
-
- /**
- * Clears the status bar.
- */
- public void clearStatus() {
- statusActionInfo = "";
- statusMessageInfo = "";
- statusCoordInfo = "";
- updateStatus();
- }
-
- /**
- * Sets the status bar action text.
- *
- * @param action the action in progress, null to clear
- */
- public void setStatusAction(String action) {
- statusActionInfo = (action != null) ? action : "";
- updateStatus();
- }
-
- /**
- * Sets the status bar message text.
- *
- * @param message the message to display, null to clear
- */
- public void setStatusMessage(String message) {
- statusMessageInfo = (message != null) ? message : "";
- updateStatus();
- }
-
- /**
- * Sets the coordinates in the status bar.
- *
- * @param coord the coordinates to display, null to clear
- */
- public void setStatusCoord(Point coord) {
- statusCoordInfo = (coord != null) ? PaintExample.getResourceString("status.Coord.format", new Object[]
- { new Integer(coord.x), new Integer(coord.y)}) : "";
- updateStatus();
- }
-
- /**
- * Sets the coordinate range in the status bar.
- *
- * @param a the "from" coordinate, must not be null
- * @param b the "to" coordinate, must not be null
- */
- public void setStatusCoordRange(Point a, Point b) {
- statusCoordInfo = PaintExample.getResourceString("status.CoordRange.format", new Object[]
- { new Integer(a.x), new Integer(a.y), new Integer(b.x), new Integer(b.y)});
- updateStatus();
- }
-
- /**
- * Updates the display.
- */
- private void updateStatus() {
- statusText.setText(
- PaintExample.getResourceString("status.Bar.format", new Object[]
- { statusActionInfo, statusMessageInfo, statusCoordInfo }));
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PaintTool.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PaintTool.java
deleted file mode 100644
index ad5614ed40..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PaintTool.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-public interface PaintTool extends PaintSession {
- /**
- * Sets the tool's settings.
- *
- * @param toolSettings the new tool settings
- */
- public void set(ToolSettings toolSettings);
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PencilTool.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PencilTool.java
deleted file mode 100644
index 167e503eef..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PencilTool.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * A pencil tool.
- */
-public class PencilTool extends ContinuousPaintSession implements PaintTool {
- private ToolSettings settings;
-
- /**
- * Constructs a pencil tool.
- *
- * @param toolSettings the new tool settings
- * @param getPaintSurface() the PaintSurface we will render on.
- */
- public PencilTool(ToolSettings toolSettings, PaintSurface paintSurface) {
- super(paintSurface);
- set(toolSettings);
- }
-
- /**
- * Sets the tool's settings.
- *
- * @param toolSettings the new tool settings
- */
- public void set(ToolSettings toolSettings) {
- settings = toolSettings;
- }
-
- /**
- * Returns the name associated with this tool.
- *
- * @return the localized name of this tool
- */
- public String getDisplayName() {
- return PaintExample.getResourceString("tool.Pencil.label");
- }
-
- /*
- * Template method for drawing
- */
- public void render(final Point point) {
- final PaintSurface ps = getPaintSurface();
- ps.drawFigure(new PointFigure(settings.commonForegroundColor, point.x, point.y));
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PointFigure.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PointFigure.java
deleted file mode 100644
index d5283172f8..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PointFigure.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * 2D Point object
- */
-public class PointFigure extends Figure {
- private Color color;
- private int x, y;
- /**
- * Constructs a Point
- *
- * @param color the color for this object
- * @param x the virtual X coordinate of the first end-point
- * @param y the virtual Y coordinate of the first end-point
- */
- public PointFigure(Color color, int x, int y) {
- this.color = color; this.x = x; this.y = y;
- }
- public void draw(FigureDrawContext fdc) {
- Point p = fdc.toClientPoint(x, y);
- fdc.gc.setBackground(color);
- fdc.gc.fillRectangle(p.x, p.y, 1, 1);
- }
- public void addDamagedRegion(FigureDrawContext fdc, Region region) {
- region.add(fdc.toClientRectangle(x, y, x, y));
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PolyLineTool.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PolyLineTool.java
deleted file mode 100644
index 2498155049..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/PolyLineTool.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * A polyline drawing tool.
- */
-public class PolyLineTool extends SegmentedPaintSession implements PaintTool {
- private ToolSettings settings;
-
- /**
- * Constructs a PolyLineTool.
- *
- * @param toolSettings the new tool settings
- * @param paintSurface the PaintSurface we will render on.
- */
- public PolyLineTool(ToolSettings toolSettings, PaintSurface paintSurface) {
- super(paintSurface);
- set(toolSettings);
- }
-
- /**
- * Sets the tool's settings.
- *
- * @param toolSettings the new tool settings
- */
- public void set(ToolSettings toolSettings) {
- settings = toolSettings;
- }
-
- /**
- * Returns the name associated with this tool.
- *
- * @return the localized name of this tool
- */
- public String getDisplayName() {
- return PaintExample.getResourceString("tool.PolyLine.label");
- }
-
- /*
- * Template methods for drawing
- */
- protected Figure createFigure(Point[] points, int numPoints, boolean closed) {
- ContainerFigure container = new ContainerFigure();
- if (closed && settings.commonFillType != ToolSettings.ftNone && numPoints >= 3) {
- container.add(new SolidPolygonFigure(settings.commonBackgroundColor, points, numPoints));
- }
- if (! closed || settings.commonFillType != ToolSettings.ftSolid || numPoints < 3) {
- for (int i = 0; i < numPoints - 1; ++i) {
- final Point a = points[i];
- final Point b = points[i + 1];
- container.add(new LineFigure(settings.commonForegroundColor, settings.commonBackgroundColor, settings.commonLineStyle,
- a.x, a.y, b.x, b.y));
- }
- if (closed) {
- final Point a = points[points.length - 1];
- final Point b = points[0];
- container.add(new LineFigure(settings.commonForegroundColor, settings.commonBackgroundColor, settings.commonLineStyle,
- a.x, a.y, b.x, b.y));
- }
- }
- return container;
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/RectangleFigure.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/RectangleFigure.java
deleted file mode 100644
index 1d80e60328..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/RectangleFigure.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-/**
- * 2D Rectangle object
- */
-public class RectangleFigure extends Figure {
- private Color foregroundColor, backgroundColor;
- private int lineStyle, x1, y1, x2, y2;
- /**
- * Constructs a Rectangle
- * These objects are defined by any two diametrically opposing corners.
- *
- * @param color the color for this object
- * @param lineStyle the line style for this object
- * @param x1 the virtual X coordinate of the first corner
- * @param y1 the virtual Y coordinate of the first corner
- * @param x2 the virtual X coordinate of the second corner
- * @param y2 the virtual Y coordinate of the second corner
- */
- public RectangleFigure(Color foregroundColor, Color backgroundColor, int lineStyle, int x1, int y1, int x2, int y2) {
- this.foregroundColor = foregroundColor;
- this.backgroundColor = backgroundColor;
- this.lineStyle = lineStyle;
- this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2;
- }
- public void draw(FigureDrawContext fdc) {
- Rectangle r = fdc.toClientRectangle(x1, y1, x2, y2);
- fdc.gc.setForeground(foregroundColor);
- fdc.gc.setBackground(backgroundColor);
- fdc.gc.setLineStyle(lineStyle);
- fdc.gc.drawRectangle(r.x, r.y, r.width - 1, r.height - 1);
- fdc.gc.setLineStyle(SWT.LINE_SOLID);
- }
- public void addDamagedRegion(FigureDrawContext fdc, Region region) {
- region.add(fdc.toClientRectangle(x1, y1, x2, y2));
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/RectangleTool.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/RectangleTool.java
deleted file mode 100644
index 0473bbd011..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/RectangleTool.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * A drawing tool.
- */
-public class RectangleTool extends DragPaintSession implements PaintTool {
- private ToolSettings settings;
-
- /**
- * Constructs a RectangleTool.
- *
- * @param toolSettings the new tool settings
- * @param paintSurface the PaintSurface we will render on.
- */
- public RectangleTool(ToolSettings toolSettings, PaintSurface paintSurface) {
- super(paintSurface);
- set(toolSettings);
- }
-
- /**
- * Sets the tool's settings.
- *
- * @param toolSettings the new tool settings
- */
- public void set(ToolSettings toolSettings) {
- settings = toolSettings;
- }
-
- /**
- * Returns name associated with this tool.
- *
- * @return the localized name of this tool
- */
- public String getDisplayName() {
- return PaintExample.getResourceString("tool.Rectangle.label");
- }
-
- /*
- * Template method for drawing
- */
- protected Figure createFigure(Point a, Point b) {
- switch (settings.commonFillType) {
- default:
- case ToolSettings.ftNone:
- return new RectangleFigure(settings.commonForegroundColor, settings.commonBackgroundColor, settings.commonLineStyle,
- a.x, a.y, b.x, b.y);
- case ToolSettings.ftSolid:
- return new SolidRectangleFigure(settings.commonBackgroundColor, a.x, a.y, b.x, b.y);
- case ToolSettings.ftOutline: {
- ContainerFigure container = new ContainerFigure();
- container.add(new SolidRectangleFigure(settings.commonBackgroundColor, a.x, a.y, b.x, b.y));
- container.add(new RectangleFigure(settings.commonForegroundColor, settings.commonBackgroundColor, settings.commonLineStyle,
- a.x, a.y, b.x, b.y));
- return container;
- }
- }
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/RoundedRectangleFigure.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/RoundedRectangleFigure.java
deleted file mode 100644
index 4c71d67263..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/RoundedRectangleFigure.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-/**
- * 2D Rectangle object
- */
-public class RoundedRectangleFigure extends Figure {
- private Color foregroundColor, backgroundColor;
- private int lineStyle, x1, y1, x2, y2, diameter;
- /**
- * Constructs a Rectangle
- * These objects are defined by any two diametrically opposing corners.
- *
- * @param color the color for this object
- * @param lineStyle the line style for this object
- * @param x1 the virtual X coordinate of the first corner
- * @param y1 the virtual Y coordinate of the first corner
- * @param x2 the virtual X coordinate of the second corner
- * @param y2 the virtual Y coordinate of the second corner
- * @param diameter the diameter of curvature of all four corners
- */
- public RoundedRectangleFigure(Color foregroundColor, Color backgroundColor, int lineStyle, int x1, int y1, int x2, int y2, int diameter) {
- this.foregroundColor = foregroundColor;
- this.backgroundColor = backgroundColor;
- this.lineStyle = lineStyle;
- this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2;
- this.diameter = diameter;
- }
- public void draw(FigureDrawContext fdc) {
- Rectangle r = fdc.toClientRectangle(x1, y1, x2, y2);
- fdc.gc.setForeground(foregroundColor);
- fdc.gc.setBackground(backgroundColor);
- fdc.gc.setLineStyle(lineStyle);
- fdc.gc.drawRoundRectangle(r.x, r.y, r.width - 1, r.height - 1, diameter, diameter);
- fdc.gc.setLineStyle(SWT.LINE_SOLID);
- }
- public void addDamagedRegion(FigureDrawContext fdc, Region region) {
- region.add(fdc.toClientRectangle(x1, y1, x2, y2));
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/RoundedRectangleTool.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/RoundedRectangleTool.java
deleted file mode 100644
index 3b5c06461a..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/RoundedRectangleTool.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * A drawing tool.
- */
-public class RoundedRectangleTool extends DragPaintSession implements PaintTool {
- private ToolSettings settings;
-
- /**
- * Constructs a RoundedRectangleTool.
- *
- * @param toolSettings the new tool settings
- * @param paintSurface the PaintSurface we will render on.
- */
- public RoundedRectangleTool(ToolSettings toolSettings, PaintSurface paintSurface) {
- super(paintSurface);
- set(toolSettings);
- }
-
- /**
- * Sets the tool's settings.
- *
- * @param toolSettings the new tool settings
- */
- public void set(ToolSettings toolSettings) {
- settings = toolSettings;
- }
-
- /**
- * Returns name associated with this tool.
- *
- * @return the localized name of this tool
- */
- public String getDisplayName() {
- return PaintExample.getResourceString("tool.RoundedRectangle.label");
- }
-
- /*
- * Template methods for drawing
- */
- protected Figure createFigure(Point a, Point b) {
- ContainerFigure container = new ContainerFigure();
- if (settings.commonFillType != ToolSettings.ftNone)
- container.add(new SolidRoundedRectangleFigure(settings.commonBackgroundColor,
- a.x, a.y, b.x, b.y, settings.roundedRectangleCornerDiameter));
- if (settings.commonFillType != ToolSettings.ftSolid)
- container.add(new RoundedRectangleFigure(settings.commonForegroundColor, settings.commonBackgroundColor,
- settings.commonLineStyle, a.x, a.y, b.x, b.y, settings.roundedRectangleCornerDiameter));
- return container;
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SegmentedPaintSession.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SegmentedPaintSession.java
deleted file mode 100644
index 4ffa99db60..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SegmentedPaintSession.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-
-import java.util.*;
-
-/**
- * The superclass for paint tools that contruct objects from individually
- * picked segments.
- */
-public abstract class SegmentedPaintSession extends BasicPaintSession {
- /**
- * The set of control points making up the segmented selection
- */
- private Vector /* of Point */ controlPoints = new Vector();
-
- /**
- * The previous figure (so that we can abort with right-button)
- */
- private Figure previousFigure = null;
-
- /**
- * The current figure (so that we can abort with right-button)
- */
- private Figure currentFigure = null;
-
- /**
- * Constructs a PaintSession.
- *
- * @param paintSurface the drawing surface to use
- */
- protected SegmentedPaintSession(PaintSurface paintSurface) {
- super(paintSurface);
- }
-
- /**
- * Activates the tool.
- */
- public void beginSession() {
- getPaintSurface().setStatusMessage(PaintExample.getResourceString(
- "session.SegmentedInteractivePaint.message.anchorMode"));
- previousFigure = null;
- currentFigure = null;
- controlPoints.clear();
- }
-
- /**
- * Deactivates the tool.
- */
- public void endSession() {
- getPaintSurface().clearRubberbandSelection();
- if (previousFigure != null) getPaintSurface().drawFigure(previousFigure);
- }
-
- /**
- * Resets the tool.
- * Aborts any operation in progress.
- */
- public void resetSession() {
- getPaintSurface().clearRubberbandSelection();
- if (previousFigure != null) getPaintSurface().drawFigure(previousFigure);
-
- getPaintSurface().setStatusMessage(PaintExample.getResourceString(
- "session.SegmentedInteractivePaint.message.anchorMode"));
- previousFigure = null;
- currentFigure = null;
- controlPoints.clear();
- }
-
- /**
- * Handles a mouseDown event.
- *
- * @param event the mouse event detail information
- */
- public void mouseDown(MouseEvent event) {
- if (event.button != 1) return;
-
- getPaintSurface().setStatusMessage(PaintExample.getResourceString(
- "session.SegmentedInteractivePaint.message.interactiveMode"));
- previousFigure = currentFigure;
-
- if (controlPoints.size() > 0) {
- final Point lastPoint = (Point) controlPoints.elementAt(controlPoints.size() - 1);
- if (lastPoint.x == event.x || lastPoint.y == event.y) return; // spurious event
- }
- controlPoints.add(new Point(event.x, event.y));
- }
-
- /**
- * Handles a mouseDoubleClick event.
- *
- * @param event the mouse event detail information
- */
- public void mouseDoubleClick(MouseEvent event) {
- if (event.button != 1) return;
- if (controlPoints.size() >= 2) {
- getPaintSurface().clearRubberbandSelection();
- previousFigure = createFigure(
- (Point[]) controlPoints.toArray(new Point[controlPoints.size()]),
- controlPoints.size(), true);
- }
- resetSession();
- }
-
- /**
- * Handles a mouseUp event.
- *
- * @param event the mouse event detail information
- */
- public void mouseUp(MouseEvent event) {
- if (event.button != 1) {
- resetSession(); // abort if right or middle mouse button pressed
- return;
- }
- }
-
- /**
- * Handles a mouseMove event.
- *
- * @param event the mouse event detail information
- */
- public void mouseMove(MouseEvent event) {
- final PaintSurface ps = getPaintSurface();
- if (controlPoints.size() == 0) {
- ps.setStatusCoord(ps.getCurrentPosition());
- return; // spurious event
- }
- ps.setStatusCoordRange((Point) controlPoints.elementAt(controlPoints.size() - 1),
- ps.getCurrentPosition());
- ps.clearRubberbandSelection();
- Point[] points = (Point[]) controlPoints.toArray(new Point[controlPoints.size() + 1]);
- points[controlPoints.size()] = ps.getCurrentPosition();
- currentFigure = createFigure(points, points.length, false);
- ps.addRubberbandSelection(currentFigure);
- }
-
- /**
- * Template Method: Creates a Figure for drawing rubberband entities and the final product
- *
- * @param points the array of control points
- * @param numPoints the number of valid points in the array (n >= 2)
- * @param closed true if the user double-clicked on the final control point
- */
- protected abstract Figure createFigure(Point[] points, int numPoints, boolean closed);
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SolidEllipseFigure.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SolidEllipseFigure.java
deleted file mode 100644
index a7e9ada352..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SolidEllipseFigure.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * 2D Solid Ellipse object
- */
-public class SolidEllipseFigure extends Figure {
- private Color color;
- private int x1, y1, x2, y2;
- /**
- * Constructs a SolidEllipse
- * These objects are defined by any two diametrically opposing corners of a box
- * bounding the ellipse.
- *
- * @param color the color for this object
- * @param x1 the virtual X coordinate of the first corner
- * @param y1 the virtual Y coordinate of the first corner
- * @param x2 the virtual X coordinate of the second corner
- * @param y2 the virtual Y coordinate of the second corner
- */
- public SolidEllipseFigure(Color color, int x1, int y1, int x2, int y2) {
- this.color = color; this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2;
- }
- public void draw(FigureDrawContext fdc) {
- Rectangle r = fdc.toClientRectangle(x1, y1, x2, y2);
- fdc.gc.setBackground(color);
- fdc.gc.fillOval(r.x, r.y, r.width, r.height);
- }
- public void addDamagedRegion(FigureDrawContext fdc, Region region) {
- region.add(fdc.toClientRectangle(x1, y1, x2, y2));
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SolidPolygonFigure.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SolidPolygonFigure.java
deleted file mode 100644
index 0051400428..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SolidPolygonFigure.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * 2D Line object
- */
-public class SolidPolygonFigure extends Figure {
- private Color color;
- private int[] points;
- /**
- * Constructs a SolidPolygon
- * These objects are defined by a sequence of vertices.
- *
- * @param color the color for this object
- * @param vertices the array of vertices making up the polygon
- * @param numPoint the number of valid points in the array (n >= 3)
- */
- public SolidPolygonFigure(Color color, Point[] vertices, int numPoints) {
- this.color = color;
- this.points = new int[numPoints * 2];
- for (int i = 0; i < numPoints; ++i) {
- points[i * 2] = vertices[i].x;
- points[i * 2 + 1] = vertices[i].y;
- }
- }
- public void draw(FigureDrawContext fdc) {
- int[] drawPoints = new int[points.length];
- for (int i = 0; i < points.length; i += 2) {
- drawPoints[i] = points[i] * fdc.xScale - fdc.xOffset;
- drawPoints[i + 1] = points[i + 1] * fdc.yScale - fdc.yOffset;
- }
- fdc.gc.setBackground(color);
- fdc.gc.fillPolygon(drawPoints);
- }
- public void addDamagedRegion(FigureDrawContext fdc, Region region) {
- int xmin = Integer.MAX_VALUE, ymin = Integer.MAX_VALUE;
- int xmax = Integer.MIN_VALUE, ymax = Integer.MIN_VALUE;
-
- for (int i = 0; i < points.length; i += 2) {
- if (points[i] < xmin) xmin = points[i];
- if (points[i] > xmax) xmax = points[i];
- if (points[i+1] < ymin) ymin = points[i+1];
- if (points[i+1] > ymax) ymax = points[i+1];
- }
- region.add(fdc.toClientRectangle(xmin, ymin, xmax, ymax));
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SolidRectangleFigure.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SolidRectangleFigure.java
deleted file mode 100644
index f3f2fb904c..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SolidRectangleFigure.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * 2D SolidRectangle object
- */
-public class SolidRectangleFigure extends Figure {
- private Color color;
- private int x1, y1, x2, y2;
- /**
- * Constructs a SolidRectangle
- * These objects are defined by any two diametrically opposing corners.
- *
- * @param color the color for this object
- * @param x1 the virtual X coordinate of the first corner
- * @param y1 the virtual Y coordinate of the first corner
- * @param x2 the virtual X coordinate of the second corner
- * @param y2 the virtual Y coordinate of the second corner
- */
- public SolidRectangleFigure(Color color, int x1, int y1, int x2, int y2) {
- this.color = color; this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2;
- }
- public void draw(FigureDrawContext fdc) {
- Rectangle r = fdc.toClientRectangle(x1, y1, x2, y2);
- fdc.gc.setBackground(color);
- fdc.gc.fillRectangle(r.x, r.y, r.width, r.height);
- }
- public void addDamagedRegion(FigureDrawContext fdc, Region region) {
- region.add(fdc.toClientRectangle(x1, y1, x2, y2));
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SolidRoundedRectangleFigure.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SolidRoundedRectangleFigure.java
deleted file mode 100644
index 9c0d2eccd4..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/SolidRoundedRectangleFigure.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * 2D SolidRectangle object
- */
-public class SolidRoundedRectangleFigure extends Figure {
- private Color color;
- private int x1, y1, x2, y2, diameter;
- /**
- * Constructs a SolidRectangle
- * These objects are defined by any two diametrically opposing corners.
- *
- * @param color the color for this object
- * @param x1 the virtual X coordinate of the first corner
- * @param y1 the virtual Y coordinate of the first corner
- * @param x2 the virtual X coordinate of the second corner
- * @param y2 the virtual Y coordinate of the second corner
- * @param diameter the diameter of curvature of all four corners
- */
- public SolidRoundedRectangleFigure(Color color, int x1, int y1, int x2, int y2, int diameter) {
- this.color = color; this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2;
- this.diameter = diameter;
- }
- public void draw(FigureDrawContext fdc) {
- Rectangle r = fdc.toClientRectangle(x1, y1, x2, y2);
- fdc.gc.setBackground(color);
- fdc.gc.fillRoundRectangle(r.x, r.y, r.width, r.height, diameter, diameter);
- }
- public void addDamagedRegion(FigureDrawContext fdc, Region region) {
- region.add(fdc.toClientRectangle(x1, y1, x2, y2));
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/TextFigure.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/TextFigure.java
deleted file mode 100644
index cabd0c3f9b..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/TextFigure.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * 2D Rectangle object
- */
-public class TextFigure extends Figure {
- private Color color;
- private Font font;
- private String text;
- private int x, y;
- /**
- * Constructs a TextFigure
- *
- * @param color the color for this object
- * @param font the font for this object
- * @param text the text to draw, tab and new-line expansion is performed
- * @param x the virtual X coordinate of the top-left corner of the text bounding box
- * @param y the virtual Y coordinate of the top-left corner of the text bounding box
- */
- public TextFigure(Color color, Font font, String text, int x, int y) {
- this.color = color; this.font = font; this.text = text; this.x = x; this.y = y;
- }
- public void draw(FigureDrawContext fdc) {
- Point p = fdc.toClientPoint(x, y);
- fdc.gc.setFont(font);
- fdc.gc.setForeground(color);
- fdc.gc.drawText(text, p.x, p.y, true);
- }
- public void addDamagedRegion(FigureDrawContext fdc, Region region) {
- Font oldFont = fdc.gc.getFont();
- fdc.gc.setFont(font);
- Point textExtent = fdc.gc.textExtent(text);
- fdc.gc.setFont(oldFont);
- region.add(fdc.toClientRectangle(x, y, x + textExtent.x, y + textExtent.y));
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/TextTool.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/TextTool.java
deleted file mode 100644
index 766787e812..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/TextTool.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-
-/**
- * A text drawing tool.
- */
-public class TextTool extends BasicPaintSession implements PaintTool {
- private ToolSettings settings;
- private String drawText = PaintExample.getResourceString("tool.Text.settings.defaulttext");
-
- /**
- * Constructs a PaintTool.
- *
- * @param toolSettings the new tool settings
- * @param paintSurface the PaintSurface we will render on.
- */
- public TextTool(ToolSettings toolSettings, PaintSurface paintSurface) {
- super(paintSurface);
- set(toolSettings);
- }
-
- /**
- * Sets the tool's settings.
- *
- * @param toolSettings the new tool settings
- */
- public void set(ToolSettings toolSettings) {
- settings = toolSettings;
- }
-
- /**
- * Returns name associated with this tool.
- *
- * @return the localized name of this tool
- */
- public String getDisplayName() {
- return PaintExample.getResourceString("tool.Text.label");
- }
-
- /**
- * Activates the tool.
- */
- public void beginSession() {
- getPaintSurface().setStatusMessage(PaintExample.getResourceString(
- "session.Text.message"));
- }
-
- /**
- * Deactivates the tool.
- */
- public void endSession() {
- getPaintSurface().clearRubberbandSelection();
- }
-
- /**
- * Aborts the current operation.
- */
- public void resetSession() {
- getPaintSurface().clearRubberbandSelection();
- }
-
- /**
- * Handles a mouseDown event.
- *
- * @param event the mouse event detail information
- */
- public void mouseDown(MouseEvent event) {
- if (event.button == 1) {
- // draw with left mouse button
- getPaintSurface().commitRubberbandSelection();
- } else {
- // set text with right mouse button
- getPaintSurface().clearRubberbandSelection();
- Shell shell = getPaintSurface().getShell();
- final Shell dialog = new Shell(shell, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
- dialog.setText(PaintExample.getResourceString("tool.Text.dialog.title"));
- dialog.setLayout(new GridLayout());
- Label label = new Label(dialog, SWT.NONE);
- label.setText(PaintExample.getResourceString("tool.Text.dialog.message"));
- label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
- final Text field = new Text(dialog, SWT.SINGLE | SWT.BORDER);
- field.setText(drawText);
- field.selectAll();
- field.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- Composite buttons = new Composite(dialog, SWT.NONE);
- GridLayout layout = new GridLayout(2, true);
- layout.marginWidth = 0;
- buttons.setLayout(layout);
- buttons.setLayoutData(new GridData(SWT.END, SWT.CENTER, false, false));
- Button ok = new Button(buttons, SWT.PUSH);
- ok.setText(PaintExample.getResourceString("OK"));
- ok.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
- ok.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- drawText = field.getText();
- dialog.dispose();
- }
- });
- Button cancel = new Button(buttons, SWT.PUSH);
- cancel.setText(PaintExample.getResourceString("Cancel"));
- cancel.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- dialog.dispose();
- }
- });
- dialog.setDefaultButton(ok);
- dialog.pack();
- dialog.open();
- Display display = dialog.getDisplay();
- while (! shell.isDisposed() && ! dialog.isDisposed()) {
- if (! display.readAndDispatch()) display.sleep();
- }
- }
- }
-
- /**
- * Handles a mouseDoubleClick event.
- *
- * @param event the mouse event detail information
- */
- public void mouseDoubleClick(MouseEvent event) {
- }
-
- /**
- * Handles a mouseUp event.
- *
- * @param event the mouse event detail information
- */
- public void mouseUp(MouseEvent event) {
- }
-
- /**
- * Handles a mouseMove event.
- *
- * @param event the mouse event detail information
- */
- public void mouseMove(MouseEvent event) {
- final PaintSurface ps = getPaintSurface();
- ps.setStatusCoord(ps.getCurrentPosition());
- ps.clearRubberbandSelection();
- ps.addRubberbandSelection(
- new TextFigure(settings.commonForegroundColor, settings.commonFont,
- drawText, event.x, event.y));
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/Tool.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/Tool.java
deleted file mode 100644
index 5b51ce2d19..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/Tool.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-import org.eclipse.swt.graphics.*;
-
-public class Tool {
- public int id;
- public String name;
- public String group;
- public int type;
- public Runnable action;
- public Image image = null;
- public Object data;
-
- public Tool(int id, String name, String group, int type) {
- super();
- this.id = id;
- this.name = name;
- this.group = group;
- this.type = type;
- }
-
- public Tool(int id, String name, String group, int type, Object data) {
- this(id, name, group, type);
- this.data = data;
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/ToolSettings.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/ToolSettings.java
deleted file mode 100644
index b69bedcc8f..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/ToolSettings.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.paint;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-/**
- * Tool Settings objects group tool-related configuration information.
- */
-public class ToolSettings {
- public static final int ftNone = 0, ftOutline = 1, ftSolid = 2;
-
- /**
- * commonForegroundColor: current tool foreground colour
- */
- public Color commonForegroundColor;
-
- /**
- * commonBackgroundColor: current tool background colour
- */
- public Color commonBackgroundColor;
-
- /**
- * commonFont: current font
- */
- public Font commonFont;
-
- /**
- * commonFillType: current fill type
- * <p>One of ftNone, ftOutline, ftSolid.</p>
- */
- public int commonFillType = ftNone;
-
- /**
- * commonLineStyle: current line type
- */
- public int commonLineStyle = SWT.LINE_SOLID;
-
- /**
- * airbrushRadius: coverage radius in pixels
- */
- public int airbrushRadius = 10;
-
- /**
- * airbrushIntensity: average surface area coverage in region defined by radius per "jot"
- */
- public int airbrushIntensity = 30;
-
- /**
- * roundedRectangleCornerDiameter: the diameter of curvature of corners in a rounded rectangle
- */
- public int roundedRectangleCornerDiameter = 16;
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/fill_none.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/fill_none.gif
deleted file mode 100644
index d26dd584e7..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/fill_none.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/fill_outline.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/fill_outline.gif
deleted file mode 100644
index c6ccfee10e..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/fill_outline.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/fill_solid.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/fill_solid.gif
deleted file mode 100644
index cb34e64a30..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/fill_solid.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/linestyle_dash.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/linestyle_dash.gif
deleted file mode 100644
index fb57bb38b7..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/linestyle_dash.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/linestyle_dashdot.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/linestyle_dashdot.gif
deleted file mode 100644
index 322968c30b..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/linestyle_dashdot.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/linestyle_dot.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/linestyle_dot.gif
deleted file mode 100644
index 4937ccb06d..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/linestyle_dot.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/linestyle_solid.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/linestyle_solid.gif
deleted file mode 100644
index 70a57ce2c4..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/linestyle_solid.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/options_font.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/options_font.gif
deleted file mode 100644
index 965fe08560..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/options_font.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_airbrush.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_airbrush.gif
deleted file mode 100644
index a310edddb2..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_airbrush.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_ellipse.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_ellipse.gif
deleted file mode 100644
index dc2142f8e2..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_ellipse.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_line.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_line.gif
deleted file mode 100644
index 2ff819f129..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_line.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_pencil.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_pencil.gif
deleted file mode 100644
index f16a234c13..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_pencil.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_polyline.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_polyline.gif
deleted file mode 100644
index aa384e9b30..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_polyline.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_rectangle.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_rectangle.gif
deleted file mode 100644
index d26dd584e7..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_rectangle.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_roundedrectangle.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_roundedrectangle.gif
deleted file mode 100644
index bf845d7602..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_roundedrectangle.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_text.gif b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_text.gif
deleted file mode 100644
index 0d7457ffa3..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/paint/tool_text.gif
+++ /dev/null
Binary files differ
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 dc75536a88..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/Images.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.texteditor;
-
-
-import java.io.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-public class Images {
-
- // Bitmap Images
- public Image Bold;
- public Image Italic;
- public Image Underline;
- public Image Strikeout;
- 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) {
- InputStream sourceStream = Images.class.getResourceAsStream (fileName + ".bmp");
- InputStream maskStream = Images.class.getResourceAsStream (fileName + "_mask.bmp");
- ImageData source = new ImageData (sourceStream);
- ImageData mask = new ImageData (maskStream);
- Image result = new Image (display, source, mask);
- try {
- sourceStream.close ();
- maskStream.close ();
- } catch (IOException e) {
- e.printStackTrace ();
- }
- return result;
-}
-
-public void loadAll (Display display) {
- // Bitmap Images
- Bold = createBitmapImage (display, "bold");
- Italic = createBitmapImage (display, "italic");
- Underline = createBitmapImage (display, "underline");
- Strikeout = createBitmapImage (display, "strikeout");
- Red = createBitmapImage (display, "red");
- Green = createBitmapImage (display, "green");
- Blue = createBitmapImage (display, "blue");
- Erase = createBitmapImage (display, "erase");
-
- AllBitmaps = new Image [] {
- Bold,
- Italic,
- Underline,
- Strikeout,
- 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 989acc5edf..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/TextEditor.java
+++ /dev/null
@@ -1,358 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.examples.texteditor;
-
-
-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;
- ToolItem boldButton, italicButton, underlineButton, strikeoutButton;
-
- 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.setAccelerator(SWT.MOD1 + 'X');
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- handleCutCopy();
- text.cut();
- }
- });
- item = new MenuItem (menu, SWT.PUSH);
- item.setText (resources.getString("Copy_menuitem"));
- item.setAccelerator(SWT.MOD1 + 'C');
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- handleCutCopy();
- text.copy();
- }
- });
- item = new MenuItem (menu, SWT.PUSH);
- item.setText (resources.getString("Paste_menuitem"));
- item.setAccelerator(SWT.MOD1 + 'V');
- 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;
-}
-
-Menu createFileMenu() {
- Menu bar = shell.getMenuBar ();
- Menu menu = new Menu (bar);
-
- MenuItem item = new MenuItem (menu, SWT.PUSH);
- item.setText (resources.getString("Exit_menuitem"));
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- shell.close ();
- }
- });
-
- return menu;
-}
-
-/*
- * Set a style
- */
-void setStyle(Widget widget) {
- Point sel = text.getSelectionRange();
- if ((sel == null) || (sel.y == 0)) return;
- StyleRange style;
- for (int i = sel.x; i<sel.x+sel.y; i++) {
- StyleRange range = text.getStyleRangeAtOffset(i);
- if (range != null) {
- style = (StyleRange)range.clone();
- style.start = i;
- style.length = 1;
- } else {
- style = new StyleRange(i, 1, null, null, SWT.NORMAL);
- }
- if (widget == boldButton) {
- style.fontStyle ^= SWT.BOLD;
- } else if (widget == italicButton) {
- style.fontStyle ^= SWT.ITALIC;
- } else if (widget == underlineButton) {
- style.underline = !style.underline;
- } else if (widget == strikeoutButton) {
- style.strikeout = !style.strikeout;
- }
- 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.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(Color fg) {
- Point sel = text.getSelectionRange();
- if ((sel == null) || (sel.y == 0)) return;
- StyleRange style, range;
- for (int i = sel.x; i<sel.x+sel.y; i++) {
- range = text.getStyleRangeAtOffset(i);
- if (range != null) {
- style = (StyleRange)range.clone();
- style.start = i;
- style.length = 1;
- style.foreground = fg;
- } else {
- style = new StyleRange (i, 1, fg, null, SWT.NORMAL);
- }
- text.setStyleRange(style);
- }
- text.setSelectionRange(sel.x + sel.y, 0);
-}
-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 ());
-
- 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);
- text.addExtendedModifyListener(new ExtendedModifyListener() {
- public void modifyText(ExtendedModifyEvent e) {
- handleExtendedModify(e);
- }
- });
-}
-
-void createToolBar() {
- toolBar = new ToolBar(shell, SWT.NONE);
- SelectionAdapter listener = new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- setStyle (event.widget);
- }
- };
- boldButton = new ToolItem(toolBar, SWT.CHECK);
- boldButton.setImage(images.Bold);
- boldButton.setToolTipText(resources.getString("Bold"));
- boldButton.addSelectionListener(listener);
- italicButton = new ToolItem(toolBar, SWT.CHECK);
- italicButton.setImage(images.Italic);
- italicButton.setToolTipText(resources.getString("Italic"));
- italicButton.addSelectionListener(listener);
- underlineButton = new ToolItem(toolBar, SWT.CHECK);
- underlineButton.setImage(images.Underline);
- underlineButton.setToolTipText(resources.getString("Underline"));
- underlineButton.addSelectionListener(listener);
- strikeoutButton = new ToolItem(toolBar, SWT.CHECK);
- strikeoutButton.setImage(images.Strikeout);
- strikeoutButton.setToolTipText(resources.getString("Strikeout"));
- strikeoutButton.addSelectionListener(listener);
-
- ToolItem 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(RED);
- }
- });
- item = new ToolItem(toolBar, SWT.PUSH);
- item.setImage(images.Green);
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- fgColor(GREEN);
- }
- });
- item = new ToolItem(toolBar, SWT.PUSH);
- item.setImage(images.Blue);
- item.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- fgColor(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();
- }
- });
-}
-/*
- * 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 = (StyleRange) style.clone ();
- style.start = event.start;
- style.length = event.length;
- } else {
- style = new StyleRange(event.start, event.length, null, null, SWT.NORMAL);
- }
- if (boldButton.getSelection()) style.fontStyle |= SWT.BOLD;
- if (italicButton.getSelection()) style.fontStyle |= SWT.ITALIC;
- style.underline = underlineButton.getSelection();
- style.strikeout = strikeoutButton.getSelection();
- if (!style.isUnstyled()) text.setStyleRange(style);
- } else {
- // paste occurring, have text take on the styles it had when it was
- // cut/copied
- 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);
- }
- }
-}
-
-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.setFontList((text.getFont()).getFontData());
- FontData fontData = fontDialog.open();
- if (fontData != null) {
- Font newFont = new Font(shell.getDisplay(), fontData);
- text.setFont(newFont);
- if (font != null) font.dispose();
- font = newFont;
- }
-}
-
-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));
-}
-}
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
deleted file mode 100755
index 84c7ac9a46..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue.bmp
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index 6ce92645e5..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/blue_mask.bmp
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index a3184bb26c..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold.bmp
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index 382751efa3..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/bold_mask.bmp
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index 1d2ace7ee3..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase.bmp
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index f6ab21e471..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/erase_mask.bmp
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index cca023fd57..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green.bmp
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index 6ce92645e5..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/green_mask.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/italic.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/italic.bmp
deleted file mode 100644
index 4136720d83..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/italic.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/italic_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/italic_mask.bmp
deleted file mode 100644
index 0c4762c943..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/italic_mask.bmp
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index 88c63be336..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red.bmp
+++ /dev/null
Binary files differ
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
deleted file mode 100755
index 6ce92645e5..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/red_mask.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/strikeout.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/strikeout.bmp
deleted file mode 100644
index 7cd29841b2..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/strikeout.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/strikeout_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/strikeout_mask.bmp
deleted file mode 100644
index d39ab32f09..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/strikeout_mask.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/underline.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/underline.bmp
deleted file mode 100644
index de3acfdcbd..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/underline.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/underline_mask.bmp b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/underline_mask.bmp
deleted file mode 100644
index a29de994fa..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/texteditor/underline_mask.bmp
+++ /dev/null
Binary files differ

Back to the top