Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'examples/org.eclipse.swt.examples/src')
-rw-r--r--examples/org.eclipse.swt.examples/src/examples_addressbook.properties69
-rw-r--r--examples/org.eclipse.swt.examples/src/examples_browser.properties20
-rw-r--r--examples/org.eclipse.swt.examples/src/examples_control.properties253
-rw-r--r--examples/org.eclipse.swt.examples/src/examples_fileviewer.properties69
-rw-r--r--examples/org.eclipse.swt.examples/src/examples_graphics.properties164
-rw-r--r--examples/org.eclipse.swt.examples/src/examples_helloworld.properties11
-rw-r--r--examples/org.eclipse.swt.examples/src/examples_hoverhelp.properties26
-rw-r--r--examples/org.eclipse.swt.examples/src/examples_images.properties114
-rw-r--r--examples/org.eclipse.swt.examples/src/examples_javaviewer.properties17
-rw-r--r--examples/org.eclipse.swt.examples/src/examples_layout.properties51
-rw-r--r--examples/org.eclipse.swt.examples/src/examples_paint.properties115
-rw-r--r--examples/org.eclipse.swt.examples/src/examples_texteditor.properties22
-rw-r--r--examples/org.eclipse.swt.examples/src/import.properties26
-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.java428
-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
-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.java243
-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.java488
-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.java330
-rwxr-xr-xexamples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/Tab.java1456
-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.java681
-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.java379
-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.java780
-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/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.java1361
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/ImageTransfer.java82
-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/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.java2383
-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.java179
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java761
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/GridLayoutTab.java590
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/LayoutExample.java114
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/RowLayoutTab.java413
-rw-r--r--examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/Tab.java646
-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
250 files changed, 0 insertions, 33406 deletions
diff --git a/examples/org.eclipse.swt.examples/src/examples_addressbook.properties b/examples/org.eclipse.swt.examples/src/examples_addressbook.properties
deleted file mode 100644
index 29252e1fd6..0000000000
--- a/examples/org.eclipse.swt.examples/src/examples_addressbook.properties
+++ /dev/null
@@ -1,69 +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
-###############################################################################
-Last_name = Last Name
-First_name = First Name
-Business_phone = Business Phone
-Home_phone = Home Phone
-Email = Email
-Fax = Fax
-Close_save = The address book contents have changed.\nDo you want to save the changes?
-New_title = Untitled
-Column = Column:
-Book_extension = .adr
-Book_filter_name = Address Books
-All_filter_name = All Files
-File = File
-Does_not_exist = does not exist.
-File_not_found = File not found:
-IO_error_read = IO error reading text file:
-IO_error_write = IO error writing text file:
-IO_error_close = IO error closing text file:
-Title_bar = Address Book -
-Save_as_title = Save As
-Query_overwrite = already exists.\nDo you want to replace it?
-File_menu_title = &File
-New_contact = &New Contact...\tCtrl+N
-Edit_contact = &Edit Contact...\tCtrl+E
-New_address_book = New Address &Book\tCtrl+B
-Open_address_book = &Open Address Book...\tCtrl+O
-Save_address_book = &Save Address Book\tCtrl+S
-Save_book_as = Save &Address Book As...\tCtrl+A
-Exit = E&xit
-Edit_menu_title = &Edit
-Edit = &Edit...\tCtrl+E
-Copy = &Copy\tCtrl+C
-Paste = &Paste\tCtrl+V
-Delete = De&lete\tDel
-Sort = &Sort
-Search_menu_title = &Search
-Find = &Find...\tCtrl+F
-Find_next = Find &Next...\tF3
-Pop_up_new = &New...
-Pop_up_edit = &Edit...
-Pop_up_copy = &Copy
-Pop_up_paste = &Paste
-Pop_up_delete = &Delete
-Pop_up_find = &Find...
-Help_menu_title = &Help
-About = &About Address Book...
-About_1 = About
-About_2 = \nversion 1.0
-OK = OK
-Cancel = Cancel
-Search_dialog_title = Find
-Dialog_find_what = Fi&nd what:
-Dialog_match_case = Match &case
-Dialog_match_word = Match &whole word
-Dialog_direction = Direction
-Dialog_dir_up = &Up
-Dialog_dir_down = &Down
-Dialog_find = &Find
-Cannot_find = Cannot find \ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples/src/examples_browser.properties b/examples/org.eclipse.swt.examples/src/examples_browser.properties
deleted file mode 100644
index e9779907e8..0000000000
--- a/examples/org.eclipse.swt.examples/src/examples_browser.properties
+++ /dev/null
@@ -1,20 +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
-###############################################################################
-error.CouldNotLoadResources = Unable to load resources
-window.title = SWT Browser
-
-Back = Back
-BrowserNotCreated = Error - The Browser widget could not be instantiated. Please check the Browser widget is supported on this platform. Supported platforms and software requirements for the Browser widget are listed on the SWT FAQ web page.
-Forward = Forward
-Stop = Stop
-Refresh = Refresh
-Go = Go
-Startup = http://www.eclipse.org
diff --git a/examples/org.eclipse.swt.examples/src/examples_control.properties b/examples/org.eclipse.swt.examples/src/examples_control.properties
deleted file mode 100644
index a540e11e17..0000000000
--- a/examples/org.eclipse.swt.examples/src/examples_control.properties
+++ /dev/null
@@ -1,253 +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
-###############################################################################
-error.CouldNotLoadResources = Unable to load resources
-window.title = SWT Controls
-custom.window.title = SWT Custom Controls
-
-Text_Buttons = Text Buttons
-Size = Size
-Alignment = Alignment
-Left = Left
-Right = Right
-Up = Up
-Down = Down
-Center = Center
-One = One
-Two = Two
-Three = Three
-Image_Buttons = Image Buttons
-Image_Text_Buttons = Image and Text Buttons
-Control_Example = Control Example
-Parameters = Parameters
-Other = Other
-Enabled = Enabled
-Visible = Visible
-BackgroundColor = Background Color
-BackgroundImage = Background Image
-PopupMenu = Popup Menu
-Preferred = Preferred
-Styles = Styles
-Menu_Styles = Menu Styles
-MenuItem_Styles = MenuItem Styles
-Background_Mode = Background Mode on Parent
-Listeners = Listeners
-Select_Listeners = Select Listeners
-Listen = Listen
-Clear = Clear
-Set_Get = Set/Get API
-Parameter_Info = {0} e.g. {1}
-Info_int = 4
-Info_intA = 0,1,2
-Info_long = 4
-Info_longA = 0,1,2
-Info_char = c
-Info_charA = a,b,c
-Info_boolean = true
-Info_booleanA = true,true,false
-Info_String = hello
-Info_StringA = hello,there
-Info_Point = 0,0
-Info_TabItem = Tab 0
-Info_TabItemA = Tab 0,Tab 2
-Info_TableItem = Index:2
-Info_TableItemA = Index:2,Index:4
-Info_TreeItem = Node 1
-Info_TreeItemA = Node 1,Node 3
-Select_All = Select All
-Deselect_All = Deselect All
-OK = OK
-FillDamage = Fill Damaged Area With Color
-Title_Text = Title Text
-Text_Labels = Text Labels
-Image_Labels = Image Labels
-Custom_Labels = Custom Labels
-Custom_Combo = Custom Combo
-One_Two_Three = One Two Three
-Text_ToolBar = Text ToolBar
-Image_ToolBar = Image ToolBar
-ImageText_ToolBar = Image and Text ToolBar
-Maximum = Maximum
-Minimum = Minimum
-Selection = Selection
-Increment = Increment
-Page_Increment = Page Increment
-Thumb = Thumb
-Digits = Digits
-Tree_With_Images = Tree With Images
-Dialog_Type = Dialog Type
-Create_Dialog = Create Dialog
-Button_Styles = Button Styles
-Icon_Styles = Icon Styles
-Modal_Styles = Modal Styles
-File_Dialog_Styles = File Dialog Styles
-Item_Styles = Item Styles
-Dialog_Result = Dialog Result
-ColorDialog = ColorDialog
-DirectoryDialog = DirectoryDialog
-FileDialog = FileDialog
-FontDialog = FontDialog
-PrintDialog = PrintDialog
-MessageBox = MessageBox
-Multi_line = A multi line text widget.
-Example_string = The quick brown fox jumps over the lazy dog.
-Header_Visible = Header Visible
-Sort_Indicator = Sort Indicator
-Header_Images = Header Images
-Sub_Images = Sub Images
-Lines_Visible = Lines Visible
-Moveable_Columns = Moveable Columns
-Resizable_Columns = Resizable Columns
-Multiple_Columns = Multiple Columns
-Locked = Locked
-Combo_child = Combo Child
-Node_1 = Node 1
-Node_2 = Node 2
-Node_3 = Node 3
-Node_4 = Node 4
-Node_1_1 = Node 1.1
-Node_2_1 = Node 2.1
-Node_3_1 = Node 3.1
-Node_2_2 = Node 2.2
-Node_2_2_1 = Node 2.2.1
-Parent = Parent
-No_Parent = No Parent
-Decoration_Styles = Decoration Styles
-Create_Shell = Create Shell
-Close_All_Shells = Close All Shells
-Push = Push
-Radio = Radio
-Check = Check
-Cascade = Cascade
-Drop_Down = Drop Down
-Images_failed = Warning: Failed to load images
-readme_txt = readme.txt
-Index = Index:
-Title = Title:
-Close = Close
-Result = Result: {0}
-FilterName_0 = Text Files
-FilterName_1 = Batch Files
-FilterName_2 = Doc Files
-FilterName_3 = All Files
-TableTitle_0 = Name
-TableTitle_1 = Type
-TableTitle_2 = Size
-TableTitle_3 = Modified
-TableLine0_0 = <empty>
-TableLine0_1 = classes
-TableLine0_2 = 0
-TableLine0_3 = today
-TableLine1_0 = <empty>
-TableLine1_1 = databases
-TableLine1_2 = 2556
-TableLine1_3 = tomorrow
-TableLine2_0 = <empty>
-TableLine2_1 = images
-TableLine2_2 = 91571
-TableLine2_3 = yesterday
-ListData0_0 = Line 1
-ListData0_1 = Line 2
-ListData0_2 = Line 3
-ListData0_3 = Line 4
-ListData0_4 = Line 5
-ListData0_5 = Line 6
-ListData0_6 = Line 7
-ListData0_7 = Line 8
-ListData0_8 = Longest Line In List
-ListData1_0 = Apples
-ListData1_1 = Oranges
-ListData1_2 = Bananas
-ListData1_3 = Grapefruit
-ListData1_4 = Peaches
-ListData1_5 = Kiwi
-ListData1_6 = Apricots
-ListData1_7 = Strawberries
-ListData1_8 = The Longest String
-DropDownData_0 = Apples
-DropDownData_1 = Oranges
-DropDownData_2 =
-DropDownData_3 = Grapefruit
-DropDownData_4 = Peaches
-DropDownData_5 = Kiwi
-DropDownData_6 =
-DropDownData_7 = Strawberries
-DropDownData_8 = The Longest String
-Colors = Colors and Font
-Change = &Change...
-Defaults = &Defaults
-Foreground_Color = Foreground Color
-Background_Color = Background Color
-Font = Font
-Item_Foreground_Color = Item 0 Foreground Color
-Item_Background_Color = Item 0 Background Color
-Item_Font = Item 0 Font
-Cell_Foreground_Color = Item 0 Col 1 Foreground Color
-Cell_Background_Color = Item 0 Col 1 Background Color
-Cell_Font = Item 0 Col 1 Font
-Wrap_Text = Jack and Jill went up the hill to fetch a pail of water, \
- Jack fell down and broke his crown and Jill came tumbling after!
-Foreground_Style = Foreground
-Background_Style = Background
-StyledText_Styles = Text Styles
-StyledText_Style_Instructions = Select text, then style.
-Bold = Bold
-Italic = Italic
-Underline = Underline
-Strikeout = Strikeout
-Fill_X = Horizontal Fill
-Fill_Y = Vertical Fill
-Pack_Columns = Pack Columns
-TabItem1_0 = Tab 0
-TabItem1_1 = Tab 1
-TabItem1_2 = Tab 2
-TabItem_content = TabItem Content
-CTabItem1_0 = CTabItem 0
-CTabItem1_1 = CTabItem 1
-CTabItem1_2 = CTabItem 2 has a long name
-CItem_Colors = CTabItem Colors
-CTabItem_content = CTabItem Content
-Set_Simple_Tabs = Simple Tabs
-Set_Single_Tabs = Single Tab
-Set_Min_Visible = Minimize
-Set_Max_Visible = Maximize
-Set_Unselected_Close_Visible = Close on Unselected Tabs
-Set_Unselected_Image_Visible = Image on Unselected Tabs
-Selection_Foreground_Color = Selection Foreground Color
-Selection_Background_Color = Selection Background Color
-Set_Image = Set Image
-TableTree_column = Column
-MenuItem_Cut = Cu&t Ctrl+X
-MenuItem_Copy = &Copy Ctrl+C
-MenuItem_Paste = &Paste Ctrl+V
-MenuItem_SelectAll = Select &All Ctrl+A
-Orientation = Orientation
-Default = Default (Inherit)
-Images = Images
-Accelerators = Accelerators
-Mnemonics = Mnemonics
-SubMenu = Sub-Menu
-SubSubMenu = Sub-Sub-Menu
-1Radio = Radio1
-2Radio = Radio2
-1RadioWithMnemonic = Radio&1
-2RadioWithMnemonic = Radio&2
-PushWithMnemonic = &Push
-RadioWithMnemonic = &Radio
-CheckWithMnemonic = &Check
-CascadeWithMnemonic = C&ascade
-PopupMenuHere = Popup Menu Here
-LinkText=Visit the <A HREF=\"www.eclipse.org\">Eclipse.org</A> project and the <A HREF=\"www.eclipse.org\\swt">SWT</A> homepage.
-Tooltip = Tooltip: {0}
-Item1_Text = What is your favorite button?
-Item2_Text = What is your favorite icon?
-ToolTip_Title = Foxes vs. Dogs
-No_Icon = No Icon
-Show_In_Tray = Show In Tray
diff --git a/examples/org.eclipse.swt.examples/src/examples_fileviewer.properties b/examples/org.eclipse.swt.examples/src/examples_fileviewer.properties
deleted file mode 100644
index c0cddcf483..0000000000
--- a/examples/org.eclipse.swt.examples/src/examples_fileviewer.properties
+++ /dev/null
@@ -1,69 +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
-###############################################################################
-Title = SWT FileViewer - {0}
-
-menu.File.text = &File
-menu.File.Close.text = &Close
-menu.File.SimulateOnly.text = Simulate File Operations
-menu.Help.text = &Help
-menu.Help.About.text = &About
-
-tool.Cut.tiptext = Cut
-tool.Copy.tiptext = Copy
-tool.Delete.tiptext = Delete
-tool.Parent.tiptext = Parent
-tool.Paste.tiptext = Paste
-tool.Print.tiptext = Print
-tool.Refresh.tiptext = Refresh
-tool.Rename.tiptext = Rename
-tool.Search.tiptext = Search
-
-details.AllFolders.text = All Folders
-details.ContentsOf.text = Contents of ''{0}''
-details.FileSize.text = {0} bytes
-details.DirNumberOfObjects.text = {0} object(s)
-details.NumberOfSelectedFiles.text = {0} object(s) selected
-
-table.Name.title = Name
-table.Size.title = Size
-table.Type.title = Type
-table.Modified.title = Modified
-
-filetype.Unknown = {0} File
-filetype.None = File
-filetype.Folder = Folder
-filesize.KB = {0} kb
-
-dialog.About.title = About SWT FileViewer
-dialog.About.description = SWT FileViewer\n\nVersion: 0.9\n\nRunning on: {0}
-
-dialog.NotImplemented.title = Not Implemented
-dialog.ActionNotImplemented.description = Sorry! The action you selected has not been implemented.
-
-dialog.FailedCopy.title = Copy Files Error
-dialog.FailedCopy.description = An error occurred while trying to copy "{0}" to "{1}".
-
-dialog.FailedDelete.title = Delete Files Error
-dialog.FailedDelete.description = An error occurred while trying to delete "{0}".
-
-progressDialog.cancelButton.text = Cancel
-progressDialog.Copy.title = Copy Files
-progressDialog.Copy.description = Copying files.
-progressDialog.Copy.operation = Copying... {0}
-progressDialog.Move.title = Move Files
-progressDialog.Move.description = Moving files.
-progressDialog.Delete.operation = Deleting... {0}
-
-simulate.CopyFromTo.text = Simulated copy from "{0}" to "{1}".
-simulate.DirectoriesCreated.text = Simulated directories created for "{0}".
-simulate.Delete.text = Simulated delete of "{0}".
-
-error.FailedLaunch.message = Could not launch "{0}"
diff --git a/examples/org.eclipse.swt.examples/src/examples_graphics.properties b/examples/org.eclipse.swt.examples/src/examples_graphics.properties
deleted file mode 100644
index 6d2b502142..0000000000
--- a/examples/org.eclipse.swt.examples/src/examples_graphics.properties
+++ /dev/null
@@ -1,164 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-AdvancedGraphics=Advanced Graphics
-SWTGraphics=SWT Graphics
-Warning=Warning
-LibNotFound=Advanced graphics library not found. Some examples will not display.
-Settings=Settings
-Play=Play
-Pause=Pause
-Background=Background
-DoubleBuffer=Double Buffer
-White=White
-Black=Black
-Red=Red
-Green=Green
-Blue=Blue
-Cyan=Cyan
-Yellow=Yellow
-CustomColor=Custom Color
-CustomPattern=Custom Pattern
-Pattern1=Pink Losange
-Pattern2=Purple Checkers
-Pattern3=Blue Pentagon
-Animation=Animation
-StarPolygon=Star Polygon
-Line=Line
-BlackHole=Black Hole
-FillRule=Fill Rule:
-Polygons=Polygons
-Introduction=Introduction
-SWT=SWT
-Bounce=Bounce
-Font=Font
-Misc=Misc
-Countdown=Countdown
-LineWidth=Line Width
-Antialiasing=Antialiasing
-LineCap=Line Cap
-Spiral=Spiral
-Petals=Petals
-Gradient=Gradient
-GradImage=Gradient Image
-SwapColors=Swap Colors
-Curves=Curves
-Cubic=Cubic
-Quadratic=Quadratic
-Lines=Lines
-Flat=Flat
-Square=Square
-Round=Round
-LineStyles=Line Styles
-GradientDlgMsg=Please select two colors:
-GradientDlgButton1=Color 1
-GradientDlgButton2=Color 2
-GradientTabItem1=Color 1
-GradientTabItem2=Color 2
-Alpha=Alpha
-CustomFont=Custom Font
-Regular=Regular
-Italic=Italic
-Bold=Bold
-BoldItalic=Bold Italic
-FontFace=Face
-FontStyle=Style
-FontSize=Size
-Color=Color
-Clipping=Clipping
-PathClipping=Path Clipping
-Circles=Circles
-Rectangle=Rectangle
-Oval=Oval
-Word=Word
-Star=Star
-Triangles=Triangles
-Default=Default
-RegionClipping=Region Clipping
-Region1=Region 1
-Region2=Region 2
-Add=Add
-Sub=Subtract
-Inter=Intersect
-Interpolation=Interpolation
-Image=Image
-OriginalImg=Original Image
-House=House
-Question=Question
-Task=Task
-Cube=Cube
-Ovals=Ovals
-None=None
-Low=Low
-Default=Default
-High=High
-Transform=Transform
-Cards=Cards
-Solid=Solid
-Dash=Dash
-Dot=Dot
-DashDot=Dash Dot
-DashDotDot=Dash Dot Dot
-LineJoin=Line Join
-bevel=BEVEL
-miter=MITER
-round=ROUND
-Ball=Ball
-CustomAlpha=Custom Alpha
-Maze=Maze
-rgb=RGB
-Graphics=Graphics
-Flip=Flip
-Rotate=Rotate
-xscale=X-Scale
-yscale=Y-Scale
-Invert=Invert
-Path=Path
-PathOper=Path Operations
-DrawPath=Draw Path
-FillPath=Fill Path
-ClosePath=Close Path
-FillColor=Fill Color
-Text=Text
-Shapes=Shapes
-Next=Next
-Back=Back
-AnimPathClipping=Animated Path Clipping
-##### ------------------ Tab Descriptions ------------------ #####
-AlphaDescription=This tab demonstrates alpha blending. It draws various shapes and images as alpha values change.
-BallDescription=This tab uses alpha blending to simulate \"ghosting\" of a ball in movement.
-BlackHoleDescription=This is a miscellaneous demonstration that makes use of the fillOval() operation to simulate a black hole.
-CardsDescription=This tab demonstrates various transformations, such as scaling, rotation, and translation.
-CountdownDescription=This miscellaneous tab presents a count down from 5 to 1, then displays SWT.
-CurvesSWTDescription=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.
-CurvesDescription=This tab presents cubic and quadratic curves that can be drawn. The user may reposition the cubic and quadratic handles
-CustomAlphaDescription=This tab demonstrates the use of alpha blending. It allows a user to specify a custom alpha value.
-CustomFontDescription=This tab demonstrates various text fonts. It allows the user to specify font parameters such as face, style and size.
-FontBounceDescription=This tab is an animated graphic. It presents the word SWT in different fonts as it bounces around the screen.
-GradientImageDescription=This tab is an animated graphic. It presents the word SWT in different fonts as it bounces around the screen.
-AntialiasingGraphicsDesc=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.
-FlipDescription=This tab demonstrates how an image can be flipped in various fashions.
-TransformImgDescription=This tab demonstrates transformations, such as scaling, rotation, and invert. It allows the user to specify values for scaling and rotation.
-ImageInterpolationDesc=This tab shows the effects of applying various interpolation algorithms to images that have been stretched or shrunk.
-IntroductionDescription=This is the introduction tab. This demonstration makes use of a path clipping.
-LineCapDescription=This tab demonstrates various line caps applicable to a line.
-LineJoinDescription=This tab demonstrates various line joins. It allows a user to choose from bevel, miter and round.
-LineStylesDescription=This tab demonstrates line styles applicable to a line. It shows the use of the setLineStyle() method.
-LineDescription=This tab draws two lines.
-MazeDescription=This is a miscellaneous demonstration. Three objects move through the maze, each following a different path. Only one of the three follows the correct path.
-AnimPathClippingDesc=This tab demonstrates the use of path clipping. A clipping is the area onto which a drawing is made visible. The default clipping is the entire canvas (all the space in the right panel). However, one can set the clipping to be something different. In this tab, the clipping is the set of triangles, rectangles and the circle. When the blue rectangle is drawn, only the portions of the blue rectangle appearing in the clipping are visible.
-PathClippingDesc=This tab demonstrates the use of path clipping. A clipping is the area onto which a drawing is made visible. The default clipping is the entire canvas (all the space in the right panel). However, one can set the clipping to be something different.
-PathOperDescription=This tab demonstrates the use of paths. It allows the user to see the differences between filling, drawing and closing paths.
-rgbDescription=Miscellaneous tab that demonstrates emerging colors from layering other colors.
-RegionClippingDescription=This tab demonstrates how to apply a region clipping and the effects of applying one. It also demonstrates the operations that can be applied between two regions.
-ShapesDescription=This tab draws 3D shapes (in 2D) using various line styles.
-SpiralDescription=Miscellaneous tab that presents a spiral consisting of the number of petals specified.
-StarPolygonDescription=This tab draws a polygon and shows the effects of setting different fill rules: SWT.FILL_WINDING or SWT.FILL_EVEN_ODD
-AntialiasingTextDesc=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.
diff --git a/examples/org.eclipse.swt.examples/src/examples_helloworld.properties b/examples/org.eclipse.swt.examples/src/examples_helloworld.properties
deleted file mode 100644
index f440a18ebc..0000000000
--- a/examples/org.eclipse.swt.examples/src/examples_helloworld.properties
+++ /dev/null
@@ -1,11 +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
-###############################################################################
-Hello_world = Hello World \ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples/src/examples_hoverhelp.properties b/examples/org.eclipse.swt.examples/src/examples_hoverhelp.properties
deleted file mode 100644
index 85ca63de0c..0000000000
--- a/examples/org.eclipse.swt.examples/src/examples_hoverhelp.properties
+++ /dev/null
@@ -1,26 +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
-###############################################################################
-error.CouldNotLoadResources = Unable to load resources : {0}
-
-ToolItem.text = ToolItem {0}
-ToolItem.tooltip = Tooltip for {0}. Try F1 on me.
-ToolItem.help = Help text for {0}.
-
-TableItem.text = TableItem {0}
-TableItem.tooltip = Tooltip for {0}. Try F1 on me.
-TableItem.help = Help text for {0}.
-
-TreeItem.text = TreeItem {0}
-TreeItem.tooltip = Tooltip for {0}. Try F1 on me.
-TreeItem.help = Help text for {0}.
-
-Hello.text = Hello
-Hello.tooltip = Greetings!
diff --git a/examples/org.eclipse.swt.examples/src/examples_images.properties b/examples/org.eclipse.swt.examples/src/examples_images.properties
deleted file mode 100644
index 268989cab1..0000000000
--- a/examples/org.eclipse.swt.examples/src/examples_images.properties
+++ /dev/null
@@ -1,114 +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
-###############################################################################
-Image_analyzer = Image Analyzer
-None = None
-White = White
-Black = Black
-Red = Red
-Green = Green
-Blue = Blue
-X_scale = X Scale
-Y_scale = Y Scale
-Alpha_K = Alpha-K
-Display = Display
-Incremental = Incremental
-Transparent = Transparent
-Transparent_lc = transparent
-Mask = Mask
-Background = Background
-Animation = Animation
-Previous = < &Previous
-Next = &Next >
-Animate = &Animate
-Type_initial = Type:
-Type_string = Type: {0}
-Type_index = Type: {0} [{1,number,integer} of {2,number,integer}]
-Size_initial = Size:
-Size_value = Size: {0,number,integer} x {1,number,integer}
-Depth_initial = Depth:
-Depth_value = Depth: {0}
-Transparent_pixel_initial = Transparent pixel:
-Transparent_pixel_value = Transparent pixel: {0}
-Time_to_load_initial = Time to load:
-Time_to_load_value = Time to load: {0} ms
-Animation_size_initial = Animation size:
-Animation_size_value = Animation size: {0,number,integer} x {1,number,integer}
-Background_pixel_initial = Background pixel:
-Background_pixel_value = Background pixel: {0}
-Image_location_initial = Image location:
-Image_location_value = Image location: ({0,number,integer}, {1,number,integer})
-Disposal_initial = Disposal:
-Disposal_value = Disposal: {0,number,integer} ({1})
-Delay_initial = Delay:
-Delay_value = Delay: {0,number,integer} ms (using {1,number,integer} ms)
-Delay_used = Delay: {0,number,integer} ms
-Repeats_initial = Repeats:
-Repeats_value = Repeats: {0,number,integer}
-Repeats_forever = Repeats: {0,number,integer} (forever)
-Palette_initial = Palette:
-Palette_direct = Palette: Direct
-Palette_value = Palette size: {0,number,integer}
-Max_length_string = Transparent pixel: -1 (none)
-Pixel_data_initial = Pixel data:
-Pixel_data_value = Pixel data: Bytes per line: {0,number,integer} \
- Scanline pad: {1,number,integer} {2} {3}
-Depth_info = Depth: {0,number,integer} -- {1}
-One_byte = 1 byte per pixel
-Multi_bytes = {0,number,integer} bytes per pixel
-Multi_pixels = {0,number,integer} pixels per byte {1}
-Scroll_for_alpha = (Scroll down to see alpha data)
-File = &File
-OpenFile = &Open File...\tCtrl+O
-OpenURL = Open &URL...\tCtrl+U
-Reopen = &Reopen
-LoadFile = &Load File...\tCtrl+L
-Save = &Save\tCtrl+S
-Save_as = Save &As...
-Save_mask_as = Save &Mask As...
-Print = &Print\tCtrl+P
-Exit = E&xit
-Alpha = Alpha
-OpenURLDialog = Open URL
-EnterURL = Enter the URL for an image (bmp, gif, ico, jfif, jpeg, jpg, png, tif, tiff):
-All_images = All Image Files
-Loading_lc = loading
-Saving_lc = saving
-Unknown_extension = Unknown file extension: {0}\nPlease use bmp, gif, ico, jfif, jpeg, jpg, png, tif, or tiff.
-Overwrite = Overwrite {0}?
-Save_all = Save all {0} images into a multi-image file?
-Analyzer_on = Image Analyzer on: {0}
-Reloading_lc = reloading
-Color_at = Image color at ({0,number,integer}, {1,number,integer}) \
- - pixel {2,number,integer} [0x{3}] - is {4} [0x{5}] {6}
-RGB = RGB '{'{0}, {1}, {2}'}'
-RGBA = RGBA '{'{0}, {1}, {2}, {3}'}'
-Color_at_transparent = (transparent)
-Creating_image = Creating image # {0,number,integer} from
-OK = OK
-Cancel = Cancel
-Stop = &Stop
-Creating_from = Creating image read from
-Bytes_per_line = Bytes per line:
-Scanline_pad = Scanline pad:
-Printing_error = Printing error:
-Error = Error {0} file\n{1}\n\n
-Unsupported_lc = unsupported
-None_lc = none
-Background_lc = background
-Previous_lc = previous
-Unspecified_lc = unspecified
-Unknown_ac = UNKNOWN
-Forever_lc = forever
-Save_as_type = Save As BMP Type...
-Save_as_type_label = Select the type of BMP to save as:
-Save_as_type_no_compress = No Compression
-Save_as_type_rle_compress = RLE Compression
-Save_as_type_os2 = OS/2 BMP
diff --git a/examples/org.eclipse.swt.examples/src/examples_javaviewer.properties b/examples/org.eclipse.swt.examples/src/examples_javaviewer.properties
deleted file mode 100644
index 47afc732c2..0000000000
--- a/examples/org.eclipse.swt.examples/src/examples_javaviewer.properties
+++ /dev/null
@@ -1,17 +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
-###############################################################################
-Open_menuitem=&Open...\tCtrl+O
-Exit_menuitem=E&xit
-File_menuitem=&File
-Window_title=SWT Java Viewer
-Err_file_no_exist=File {0} does not exist.
-Err_file_io=IO error reading file:\n{0}
-Err_file_not_found=File not found:\n{0} \ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples/src/examples_layout.properties b/examples/org.eclipse.swt.examples/src/examples_layout.properties
deleted file mode 100644
index 47a9c80a27..0000000000
--- a/examples/org.eclipse.swt.examples/src/examples_layout.properties
+++ /dev/null
@@ -1,51 +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
-###############################################################################
-window.title = SWT Layouts
-
-Add = &Add
-Delete = &Delete
-Clear = &Clear
-Children = Children
-Type = Type
-Layout = Layout
-Preferred_Size = Preferred Size
-Code = C&ode
-Generated_Code = Generated Code
-Parameters = Parameters
-Properties = Properties
-Margins = Margins
-Margins_Spacing = Margins and Spacing
-Columns = Columns
-Attach_Edit = Edit
-Left_Attachment = Edit Left Attachment
-Right_Attachment = Edit Right Attachment
-Top_Attachment = Edit Top Attachment
-Bottom_Attachment = Edit Bottom Attachment
-Position = Position
-Control = Control
-Offset = Offset [+/-]
-Item = Item {0}
-Combo_Index = Combo {0}
-Group_Index = Group {0}
-Label_Index = Label {0}
-Button_Index = Button {0}
-StyledText_Index = StyledText {0}
-Text_Index = Text {0}
-OK = OK
-Cancel = Cancel
-Edit = &Edit
-Select_All = Select &All\tCtrl+A
-Copy = &Copy\tCtrl+C
-Exit = E&xit
-Name_Title = Enter Names
-Name_Label = Enter names for your controls
-Invalid_Name = Invalid Name - Please enter valid variable names for your controls
-Default = Default \ No newline at end of file
diff --git a/examples/org.eclipse.swt.examples/src/examples_paint.properties b/examples/org.eclipse.swt.examples/src/examples_paint.properties
deleted file mode 100644
index b2ecec5a13..0000000000
--- a/examples/org.eclipse.swt.examples/src/examples_paint.properties
+++ /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
-###############################################################################
-error.CouldNotLoadResources = Unable to load resources
-window.title = Paint
-
-menu.Tools.label = Tools
-menu.Options.label = Options
-
-tool.Pencil.label = Pencil
-tool.Pencil.tooltip = Pencil tool
-tool.Pencil.image = tool_pencil.gif
-tool.Pencil.description = Selects the Pencil tool.
-
-tool.Airbrush.label = Airbrush
-tool.Airbrush.tooltip = Airbrush tool
-tool.Airbrush.image = tool_airbrush.gif
-tool.Airbrush.description = Selects the Airbrush tool.
-
-tool.Line.label = Line
-tool.Line.tooltip = Line tool
-tool.Line.image = tool_line.gif
-tool.Line.description = Selects the Line tool.
-
-tool.PolyLine.label = Polygon
-tool.PolyLine.tooltip = Polygon tool
-tool.PolyLine.image = tool_polyline.gif
-tool.PolyLine.description = Selects the PolyLine tool.
-
-tool.Rectangle.label = Rectangle
-tool.Rectangle.tooltip = Rectangle tool
-tool.Rectangle.image = tool_rectangle.gif
-tool.Rectangle.description = Selects the Rectangle tool.
-
-tool.Ellipse.label = Ellipse
-tool.Ellipse.tooltip = Ellipse tool
-tool.Ellipse.image = tool_ellipse.gif
-tool.Ellipse.description = Selects the Ellipse tool.
-
-tool.RoundedRectangle.label = Rounded Rectangle
-tool.RoundedRectangle.tooltip = Rounded Rectangle tool
-tool.RoundedRectangle.image = tool_roundedrectangle.gif
-tool.RoundedRectangle.description = Selects the Rounded Rectangle tool.
-
-tool.Text.label = Text
-tool.Text.tooltip = Text tool
-tool.Text.image = tool_text.gif
-tool.Text.description = Selects the Text tool.
-tool.Text.settings.defaulttext = Hello!
-tool.Text.dialog.title = Text Tool Settings
-tool.Text.dialog.message = Please enter the new text string to be painted.
-
-tool.Null.label = <none>
-
-fill.None.label = No Fill
-fill.None.tooltip = No fill mode
-fill.None.image = fill_none.gif
-fill.None.description = Selects No Fill mode.
-
-fill.Outline.label = Outline Fill
-fill.Outline.tooltip = Outline fill mode
-fill.Outline.image = fill_outline.gif
-fill.Outline.description = Selects Outline Fill mode.
-
-fill.Solid.label = Solid Fill
-fill.Solid.tooltip = Solid fill mode
-fill.Solid.image = fill_solid.gif
-fill.Solid.description = Selects Solid Fill mode.
-
-linestyle.Solid.label = Solid Line
-linestyle.Solid.tooltip = Solid line style
-linestyle.Solid.image = linestyle_solid.gif
-linestyle.Solid.description = Select Solid Line style.
-
-linestyle.Dot.label = Dotted Line
-linestyle.Dot.tooltip = Dotted line style
-linestyle.Dot.image = linestyle_dot.gif
-linestyle.Dot.description = Select Dotted Line style.
-
-linestyle.Dash.label = Dashed Line
-linestyle.Dash.tooltip = Dashed line style
-linestyle.Dash.image = linestyle_dash.gif
-linestyle.Dash.description = Select Dashed Line style.
-
-linestyle.DashDot.label = Dash-Dot Line
-linestyle.DashDot.tooltip = Dash-Dot line style
-linestyle.DashDot.image = linestyle_dashdot.gif
-linestyle.DashDot.description = Select Dash-Dot Line style.
-
-options.Font.label = Text Tool Font
-options.Font.tooltip = Select Text Tool font
-options.Font.image = options_font.gif
-options.Font.description = Selects Text Tool font.
-options.Font.dialog.title = Text Tool Font
-
-settings.AirbrushRadius.text = Airbrush Radius
-settings.AirbrushIntensity.text = Airbrush Intensity
-
-session.Null.message = Select a tool...
-session.ContinuousPaint.message = Click and drag to draw...
-session.DragInteractivePaint.message = Click and drag to preview, release to draw, right-click to cancel...
-session.SegmentedInteractivePaint.message.anchorMode = Click to set anchor...
-session.SegmentedInteractivePaint.message.interactiveMode = Click to draw, double-click to close figure, right-click to cancel...
-session.Text.message = Click to draw text, right-click to edit text...
-
-status.Coord.format = ({0}, {1})
-status.CoordRange.format = ({0}, {1}) - ({2}, {3})
-status.Bar.format = {0} : {1} {2}
diff --git a/examples/org.eclipse.swt.examples/src/examples_texteditor.properties b/examples/org.eclipse.swt.examples/src/examples_texteditor.properties
deleted file mode 100644
index 1c55fe63ff..0000000000
--- a/examples/org.eclipse.swt.examples/src/examples_texteditor.properties
+++ /dev/null
@@ -1,22 +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
-###############################################################################
-Exit_menuitem=E&xit
-Cut_menuitem=Cu&t\tCtrl+X
-Copy_menuitem=&Copy\tCtrl+C
-Paste_menuitem=&Paste\tCtrl+V
-Window_title=SWT Text Editor
-Font_menuitem=Set &Font...
-Edit_menuitem=&Edit
-File_menuitem=&File
-Bold=Bold
-Italic=Italic
-Underline=Underline
-Strikeout=Strikeout
diff --git a/examples/org.eclipse.swt.examples/src/import.properties b/examples/org.eclipse.swt.examples/src/import.properties
deleted file mode 100644
index 1f7937eab8..0000000000
--- a/examples/org.eclipse.swt.examples/src/import.properties
+++ /dev/null
@@ -1,26 +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
-###############################################################################
-# Persist project settings for later import
-natures = org.eclipse.jdt.core.javanature; org.eclipse.pde.PluginNature
-builders = org.eclipse.jdt.core.javabuilder; org.eclipse.pde.ManifestBuilder; org.eclipse.pde.SchemaBuilder
-var.ECLIPSE_PLUGINS = <<ECLIPSE_PLUGINS>>
-vmargs.org/eclipse/swt/examples/addressbook/AddressBook.java%AddressBook = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/controlexample/ControlExample.java%ControlExample = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/fileviewer/FileViewer.java%FileViewer = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/helloworld/HelloWorld1.java%HelloWorld1 = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/helloworld/HelloWorld2.java%HelloWorld2 = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/helloworld/HelloWorld3.java%HelloWorld3 = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/helloworld/HelloWorld4.java%HelloWorld4 = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/helloworld/HelloWorld5.java%HelloWorld5 = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/hoverhelp/HoverHelp.java%HoverHelp = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java%ImageAnalyzer = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/javaviewer/JavaViewer.java%JavaViewer = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
-vmargs.org/eclipse/swt/examples/texteditor/TextEditor.java%TextEditor = "-Djava.library.path=<<SWT_LIBRARY_PATH>>"
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/AddressBook.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/addressbook/AddressBook.java
deleted file mode 100755
index 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 a2fdc76bf2..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/clipboard/ClipboardExample.java
+++ /dev/null
@@ -1,428 +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 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 copyText;
- Text pasteText;
- Text copyRtfText;
- Text pasteRtfText;
- Text copyHtmlText;
- Text pasteHtmlText;
- Table copyFileTable;
- Table pasteFileTable;
- 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);
- 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$
- 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$
- 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$
- 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$
- 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$
- 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$
- 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);
-
- 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){
- //copyFileTable.removeAll();
- 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$
- 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 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/ButtonTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ButtonTab.java
deleted file mode 100755
index 8dabaa947e..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[] {"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 6061125660..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.READ_ONLY);
- 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 92227c3f3c..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ControlExample.java
+++ /dev/null
@@ -1,243 +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),
- };
- }
-
- /**
- * 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 5a31612820..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.
- */
- public 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 79b83db903..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/DialogTab.java
+++ /dev/null
@@ -1,488 +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 + 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);
- 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 (Text.DELIMITER);
- return;
- }
-
- if (name.equals (ControlExample.getResourceString("FontDialog"))) {
- FontDialog dialog = new FontDialog (shell, style);
- dialog.setText (ControlExample.getResourceString("Title"));
- FontData result = dialog.open ();
- textWidget.append (ControlExample.getResourceString("FontDialog") + Text.DELIMITER);
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"" + result}) + Text.DELIMITER + Text.DELIMITER);
- return;
- }
-
- if (name.equals (ControlExample.getResourceString("PrintDialog"))) {
- PrintDialog dialog = new PrintDialog (shell, style);
- dialog.setText(ControlExample.getResourceString("Title"));
- PrinterData result = dialog.open ();
- textWidget.append (ControlExample.getResourceString("PrintDialog") + Text.DELIMITER);
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"" + result}) + Text.DELIMITER + Text.DELIMITER);
- return;
- }
-
- if (name.equals(ControlExample.getResourceString("MessageBox"))) {
- MessageBox dialog = new MessageBox (shell, style);
- dialog.setMessage (ControlExample.getResourceString("Example_string"));
- dialog.setText (ControlExample.getResourceString("Title"));
- int result = dialog.open ();
- textWidget.append (ControlExample.getResourceString("MessageBox") + Text.DELIMITER);
- /*
- * The resulting integer depends on the original
- * dialog style. Decode the result and display it.
- */
- switch (result) {
- case SWT.OK:
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.OK"}));
- break;
- case SWT.YES:
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.YES"}));
- break;
- case SWT.NO:
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.NO"}));
- break;
- case SWT.CANCEL:
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.CANCEL"}));
- break;
- case SWT.ABORT:
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.ABORT"}));
- break;
- case SWT.RETRY:
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.RETRY"}));
- break;
- case SWT.IGNORE:
- textWidget.append (ControlExample.getResourceString("Result", new String [] {"SWT.IGNORE"}));
- break;
- default:
- textWidget.append(ControlExample.getResourceString("Result", new String [] {"" + result}));
- break;
- }
- textWidget.append (Text.DELIMITER + Text.DELIMITER);
- }
- }
-
- /**
- * Creates the "Control" group.
- */
- void createControlGroup () {
- /*
- * Create the "Control" group. This is the group on the
- * 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 4b95583e2a..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.
- */
- public 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 d657251a1b..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[] {"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 1de5faf74b..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", "ToolTipText"};
- }
-
- /**
- * Gets the short text for the tab folder item.
- */
- public 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 a70b9395fa..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 closeButton = new Button(currentShell, SWT.PUSH);
- closeButton.setBounds(160, 20, 120, 30);
- closeButton.setText(ControlExample.getResourceString("Close"));
- closeButton.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- currentShell.dispose();
- }
- });
-
- /* Set the size, title, and 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 8208d5bbbc..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", "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 e9da26c206..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/StyledTextTab.java
+++ /dev/null
@@ -1,330 +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 "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[] {"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";
- }
-
- /**
- * 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 81b64242a2..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/Tab.java
+++ /dev/null
@@ -1,1456 +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 = false;
- 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;
-
- /* Event logging variables and controls */
- Text eventConsole;
- boolean logging = false;
- boolean [] eventsFilter;
-
- /* Set/Get API controls */
- Combo nameCombo;
- Label returnTypeLabel;
- Button getButton, setButton;
- Text setText, getText;
-
- static final Object [][] EVENT_NAMES = {
- {"Activate", new Integer(SWT.Activate)},
- {"Arm", new Integer(SWT.Arm)},
- {"Close", new Integer(SWT.Close)},
- {"Collapse", new Integer(SWT.Collapse)},
- {"Deactivate", new Integer(SWT.Deactivate)},
- {"DefaultSelection", new Integer(SWT.DefaultSelection)},
- {"Deiconify", new Integer(SWT.Deiconify)},
- {"Dispose", new Integer(SWT.Dispose)},
- {"DragDetect", new Integer(SWT.DragDetect)},
- {"EraseItem", new Integer(SWT.EraseItem)},
- {"Expand", new Integer(SWT.Expand)},
- {"FocusIn", new Integer(SWT.FocusIn)},
- {"FocusOut", new Integer(SWT.FocusOut)},
- {"HardKeyDown", new Integer(SWT.HardKeyDown)},
- {"HardKeyUp", new Integer(SWT.HardKeyUp)},
- {"Help", new Integer(SWT.Help)},
- {"Hide", new Integer(SWT.Hide)},
- {"Iconify", new Integer(SWT.Iconify)},
- {"KeyDown", new Integer(SWT.KeyDown)},
- {"KeyUp", new Integer(SWT.KeyUp)},
- {"MeasureItem", new Integer(SWT.MeasureItem)},
- {"MenuDetect", new Integer(SWT.MenuDetect)},
- {"Modify", new Integer(SWT.Modify)},
- {"MouseDoubleClick", new Integer(SWT.MouseDoubleClick)},
- {"MouseDown", new Integer(SWT.MouseDown)},
- {"MouseEnter", new Integer(SWT.MouseEnter)},
- {"MouseExit", new Integer(SWT.MouseExit)},
- {"MouseHover", new Integer(SWT.MouseHover)},
- {"MouseMove", new Integer(SWT.MouseMove)},
- {"MouseUp", new Integer(SWT.MouseUp)},
- {"MouseWheel", new Integer(SWT.MouseWheel)},
- {"Move", new Integer(SWT.Move)},
- {"Paint", new Integer(SWT.Paint)},
- {"PaintItem", new Integer(SWT.PaintItem)},
- {"Resize", new Integer(SWT.Resize)},
- {"Selection", new Integer(SWT.Selection)},
- {"SetData", new Integer(SWT.SetData)},
-// {"Settings", new Integer(SWT.Settings)}, // note: this event only goes to Display
- {"Show", new Integer(SWT.Show)},
- {"Traverse", new Integer(SWT.Traverse)},
- {"Verify", new Integer(SWT.Verify)},
- };
-
- boolean samplePopup = false;
-
- /**
- * 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 (RTL_SUPPORT_ENABLE) {
- 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 (RTL_SUPPORT_ENABLE) {
- 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) {
- 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) {
- Button button = (Button)e.widget;
- Point pt = button.getLocation();
- pt = e.display.map(button, null, pt);
- createSetGetDialog(pt.x, pt.y, methodNames);
- }
- });
- }
- }
-
- /**
- * 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);
- }
-
- /**
- * 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.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 = 2;
- table.setLayoutData(data);
- for (int i = 0; i < EVENT_NAMES.length; i++) {
- TableItem item = new TableItem (table, SWT.NONE);
- item.setText ((String)EVENT_NAMES[i][0]);
- 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_NAMES.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_NAMES.length; i++) {
- items[i].setChecked(true);
- }
- for (int i = 0; i < customNames.length; i++) {
- items[EVENT_NAMES.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 | GridData.VERTICAL_ALIGN_BEGINNING));
- deselectAll.addSelectionListener (new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- TableItem [] items = table.getItems();
- for (int i = 0; i < EVENT_NAMES.length; i++) {
- items[i].setChecked(false);
- }
- for (int i = 0; i < customNames.length; i++) {
- items[EVENT_NAMES.length + i].setChecked(false);
- }
- }
- });
- 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_NAMES.length; i++) {
- eventsFilter[i] = items[i].getChecked();
- }
- for (int i = 0; i < customNames.length; i++) {
- eventsFilter[EVENT_NAMES.length + i] = items[EVENT_NAMES.length + i].getChecked();
- }
- dialog.dispose();
- }
- });
- dialog.pack ();
- 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_NAMES.length + customEventCount];
- for (int i = 0; i < EVENT_NAMES.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;
- }
-
- void createSetGetDialog(int x, int y, 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.setLocation(x, y);
- dialog.open();
- }
-
- 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 (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) {
- getText.setText(e.toString());
- }
- }
- }
-
- 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.
- *
- * @return an array containing custom event names
- */
- 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 children's items, if any.
- *
- * @return an array containing the example widget children'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_NAMES.length + i]) hookCustomListener (customNames[i]);
- }
- }
- }
-
- /**
- * Hooks the custom listener specified by eventName.
- */
- 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_NAMES.length; i++) {
- if (eventsFilter [i]) widget.addListener (((Integer)EVENT_NAMES[i][1]).intValue(), listener);
- }
- }
- }
-
- /**
- * Logs an untyped event to the event console.
- */
- void log(Event event) {
- int i = 0;
- while (i < EVENT_NAMES.length) {
- if (((Integer)EVENT_NAMES[i][1]).intValue() == event.type) break;
- i++;
- }
- String toString = (String)EVENT_NAMES[i][0] + " ["+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 ();
- }
- eventConsole.append (toString);
- eventConsole.append ("\n");
- }
-
- /**
- * 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();
- }
-
- /**
- * 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
- * reimplement 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 () {
- 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 939cdb6b46..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.
- */
- public 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 d5e0dd4465..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TableTab.java
+++ /dev/null
@@ -1,681 +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 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 (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 */
- 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 ();
- 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 () {
- if (sortIndicatorButton.getSelection ()) {
- /* Reset to known state: 'down' on column 0. */
- table1.setSortDirection (SWT.DOWN);
- TableColumn [] columns = table1.getColumns();
- 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);
- TableColumn [] columns = table1.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 () {
- 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 49ada12f53..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/ToolBarTab.java
+++ /dev/null
@@ -1,379 +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.
- */
- public 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;
- 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);
- 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;
- }
- }
-}
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 3e19df53a5..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/controlexample/TreeTab.java
+++ /dev/null
@@ -1,780 +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 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 (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(image);
- }
- }
- 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 */
- 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 ();
- checkButton.setSelection ((tree1.getStyle () & SWT.CHECK) != 0);
- checkButton.setSelection ((tree2.getStyle () & SWT.CHECK) != 0);
- fullSelectionButton.setSelection ((tree1.getStyle () & SWT.FULL_SELECTION) != 0);
- fullSelectionButton.setSelection ((tree2.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/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 d9fd0e6f3e..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/DNDExample.java
+++ /dev/null
@@ -1,1361 +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 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[] 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 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;
-
-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 = 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;
- }
- }
- }
- }
- 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 (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;
- }
- default:
- throw new SWTError(SWT.ERROR_NOT_IMPLEMENTED);
- }
- if (dragDataText != null) {
- dragDataRTF = "{\\rtf1{\\colortbl;\\red255\\green0\\blue0;}\\cf1\\b "+dragDataText+"}";
- dragDataHTML = "<b>"+dragDataText+"</b>";
- }
-
- 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 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("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.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)) {
- 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;
- }
- 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("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.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);
- }
- 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);
- 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);
- 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);
- }
- }
- }
- 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;
- }
- 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());
-
- 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();
- }
-}
-
-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/ImageTransfer.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/ImageTransfer.java
deleted file mode 100644
index c3f7ed177c..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/dnd/ImageTransfer.java
+++ /dev/null
@@ -1,82 +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.dnd;
-
-
-/**
- * Transfer type to transfer SWT ImageData objects.
- */
-
-import java.io.*;
-import org.eclipse.swt.dnd.*;
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-
-public class ImageTransfer extends ByteArrayTransfer {
-
- private static final String TYPENAME = "imagedata";
- private static final int TYPEID = registerType(TYPENAME);
- private static ImageTransfer _instance = new ImageTransfer();
-
-public static ImageTransfer getInstance () {
- return _instance;
-}
-
-public void javaToNative (Object object, TransferData transferData) {
- if (!checkImage(object) || !isSupportedType(transferData)) {
- DND.error(DND.ERROR_INVALID_DATA);
- }
- ImageData imdata = (ImageData)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);
- ImageLoader loader = new ImageLoader();
- loader.data = new ImageData [] {imdata};
- loader.save(writeOut, SWT.IMAGE_BMP);
- writeOut.close();
- byte[] buffer = out.toByteArray();
- super.javaToNative(buffer, transferData);
- out.close();
- }
- catch (IOException e) {
- }
-}
-public Object nativeToJava(TransferData transferData){
- if (!isSupportedType(transferData)) return null;
-
- byte[] buffer = (byte[])super.nativeToJava(transferData);
- if (buffer == null) return null;
-
- ImageData imdata;
- try {
- ByteArrayInputStream in = new ByteArrayInputStream(buffer);
- DataInputStream readIn = new DataInputStream(in);
- imdata = new ImageData(readIn);
- readIn.close();
- } catch (IOException ex) {
- return null;
- }
- return imdata;
-}
-protected String[] getTypeNames(){
- return new String[]{TYPENAME};
-}
-protected int[] getTypeIds(){
- return new int[] {TYPEID};
-}
-boolean checkImage(Object object) {
- return (object != null && object instanceof ImageData);
-}
-protected boolean validate(Object object) {
- return checkImage(object);
-}
-}
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 400fe1ac84..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);
- System.out.println(event.x);
- 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 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("AdvancedGraphics")); //$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/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 8f29e6bbbd..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java
+++ /dev/null
@@ -1,2383 +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", "*.gif", "*.ico", "*.jpg", "*.png", "*.tif" };
- static final String[] SAVE_FILTER_NAMES = new String[] {
- "BMP (*.bmp)", "GIF (*.gif)", "ICO (*.ico)", "JPEG (*.jpg)",
- "PNG (*.png)", "TIFF (*.tif)" };
-
- 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.
- // We need to rely on the file extension because FileDialog
- // does not have API for asking what filter type was selected.
- int filetype = determineFileType(filename);
- if (filetype == SWT.IMAGE_UNDEFINED) {
- MessageBox box = new MessageBox(shell, SWT.ICON_ERROR);
- box.setMessage(createMsg(bundle.getString("Unknown_extension"),
- filename.substring(filename.lastIndexOf('.') + 1)));
- box.open();
- return;
- }
-
- if (new java.io.File(filename).exists()) {
- MessageBox box = new MessageBox(shell, SWT.ICON_QUESTION | SWT.OK | SWT.CANCEL);
- box.setMessage(createMsg(bundle.getString("Overwrite"), filename));
- if (box.open() == SWT.CANCEL)
- return;
- }
-
- Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
- shell.setCursor(waitCursor);
- imageCanvas.setCursor(waitCursor);
- try {
- // Save the current image to the specified file.
- 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.
- // We need to rely on the file extension because FileDialog
- // does not have API for asking what filter type was selected.
- int filetype = determineFileType(filename);
- if (filetype == SWT.IMAGE_UNDEFINED) {
- MessageBox box = new MessageBox(shell, SWT.ICON_ERROR);
- box.setMessage(createMsg(bundle.getString("Unknown_extension"),
- filename.substring(filename.lastIndexOf('.') + 1)));
- box.open();
- return;
- }
-
- if (new java.io.File(filename).exists()) {
- MessageBox box = new MessageBox(shell, SWT.ICON_QUESTION | SWT.OK | SWT.CANCEL);
- box.setMessage(createMsg(bundle.getString("Overwrite"), filename));
- if (box.open() == SWT.CANCEL)
- return;
- }
-
- Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
- shell.setCursor(waitCursor);
- imageCanvas.setCursor(waitCursor);
- try {
- // Save the mask of the current image to the specified file.
- ImageData maskImageData = imageData.getTransparencyMask();
- loader.data = new ImageData[] {maskImageData};
- loader.save(filename, filetype);
-
- } catch (SWTException e) {
- showErrorDialog(bundle.getString("Saving_lc"), filename, e);
- } 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 a84b065d72..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FillLayoutTab.java
+++ /dev/null
@@ -1,179 +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;
- /* The example layout instance */
- FillLayout fillLayout;
- /* TableEditors and related controls*/
- TableEditor comboEditor;
- CCombo combo;
-
- /**
- * Creates the Tab within a given instance of LayoutExample.
- */
- FillLayoutTab(LayoutExample instance) {
- super(instance);
- }
-
- /**
- * Creates the widgets in the "child" group.
- */
- void createChildWidgets () {
- /* Add common controls */
- super.createChildWidgets ();
-
- /* Add TableEditors */
- comboEditor = new TableEditor (table);
- table.addSelectionListener (new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- resetEditors ();
- index = table.getSelectionIndex ();
- if (index == -1) return;
- TableItem oldItem = comboEditor.getItem ();
- newItem = table.getItem (index);
- if (newItem == oldItem || newItem != lastSelected) {
- lastSelected = newItem;
- return;
- }
- table.showSelection ();
-
- combo = new CCombo (table, SWT.READ_ONLY);
- createComboEditor (combo, comboEditor);
- }
- });
-
-
- /* Add listener to add an element to the table */
- add.addSelectionListener(new SelectionAdapter () {
- public void widgetSelected(SelectionEvent e) {
- TableItem item = new TableItem (table, 0);
- item.setText (0, String.valueOf (table.indexOf (item)));
- item.setText (1, "Button");
- data.addElement ("Button");
- resetEditors ();
- }
- });
- }
-
- /**
- * Creates the control widgets.
- */
- void createControlWidgets () {
- /* Controls the type of FillLayout */
- Group typeGroup = new Group (controlGroup, SWT.NONE);
- typeGroup.setText (LayoutExample.getResourceString ("Type"));
- typeGroup.setLayout (new GridLayout ());
- typeGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
- horizontal = new Button (typeGroup, SWT.RADIO);
- horizontal.setText ("SWT.HORIZONTAL");
- horizontal.setLayoutData(new GridData (GridData.FILL_HORIZONTAL));
- horizontal.setSelection(true);
- horizontal.addSelectionListener (selectionListener);
- vertical = new Button (typeGroup, SWT.RADIO);
- vertical.setText ("SWT.VERTICAL");
- vertical.setLayoutData(new GridData (GridData.FILL_HORIZONTAL));
- vertical.addSelectionListener (selectionListener);
-
- /* Add common controls */
- super.createControlWidgets ();
-
- /* Position the sash */
- sash.setWeights (new int [] {4,1});
- }
-
- /**
- * Creates the example layout.
- */
- void createLayout () {
- fillLayout = new FillLayout ();
- layoutComposite.setLayout (fillLayout);
- }
-
- /**
- * Disposes the editors without placing their contents
- * into the table.
- */
- void disposeEditors () {
- comboEditor.setEditor (null, null, -1);
- combo.dispose ();
- }
-
-
- /**
- * Generates code for the example layout.
- */
- StringBuffer generateLayoutCode () {
- StringBuffer code = new StringBuffer ();
- code.append ("\t\tFillLayout fillLayout = new FillLayout ();\n");
- if (fillLayout.type == SWT.VERTICAL) {
- code.append ("\t\tfillLayout.type = SWT.VERTICAL;\n");
- }
- code.append ("\t\tshell.setLayout (fillLayout);\n");
- for (int i = 0; i < children.length; i++) {
- Control control = children [i];
- code.append (getChildCode (control, i));
- }
- return code;
- }
-
- /**
- * Returns the layout data field names.
- */
- String [] getLayoutDataFieldNames() {
- return new String [] {"","Control"};
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "FillLayout";
- }
-
- /**
- * Takes information from TableEditors and stores it.
- */
- void resetEditors () {
- TableItem oldItem = comboEditor.getItem ();
- comboEditor.setEditor (null, null, -1);
- if (oldItem != null) {
- int row = table.indexOf (oldItem);
- data.insertElementAt (combo.getText (), row);
- oldItem.setText (1, data.elementAt (row).toString ());
- combo.dispose ();
- }
- setLayoutState ();
- refreshLayoutComposite ();
- layoutComposite.layout (true);
- layoutGroup.layout (true);
- }
-
- /**
- * Sets the state of the layout.
- */
- void setLayoutState () {
- if (vertical.getSelection()) {
- fillLayout.type = SWT.VERTICAL;
- } else {
- fillLayout.type = SWT.HORIZONTAL;
- }
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java
deleted file mode 100644
index 1adb77b85a..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java
+++ /dev/null
@@ -1,761 +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 */
- Combo marginHeight, marginWidth;
- /* The example layout instance */
- FormLayout formLayout;
- /* TableEditors and related controls*/
- TableEditor comboEditor, widthEditor, heightEditor;
- TableEditor leftEditor, rightEditor, topEditor, bottomEditor;
- CCombo combo;
- Text widthText, heightText;
- Button leftAttach, rightAttach, topAttach, bottomAttach;
-
- /* Constants */
- final int COMBO_COL = 1;
- final int WIDTH_COL = 2;
- final int HEIGHT_COL = 3;
- final int LEFT_COL = 4;
- final int RIGHT_COL = 5;
- final int TOP_COL = 6;
- final int BOTTOM_COL = 7;
-
- final int MODIFY_COLS = 4; // The number of columns with combo or text editors
- final int TOTAL_COLS = 8;
-
- /**
- * Creates the Tab within a given instance of LayoutExample.
- */
- FormLayoutTab(LayoutExample instance) {
- super(instance);
- }
-
- /**
- * Returns the constant for the alignment for an
- * attachment given a string.
- */
- int alignmentConstant (String align) {
- if (align.equals("LEFT")) return SWT.LEFT;
- if (align.equals("RIGHT")) return SWT.RIGHT;
- if (align.equals("TOP")) return SWT.TOP;
- if (align.equals("BOTTOM")) return SWT.BOTTOM;
- if (align.equals("CENTER")) return SWT.CENTER;
- return SWT.DEFAULT;
- }
-
- /**
- * Returns a string representing the alignment for an
- * attachment given a constant.
- */
- String alignmentString (int align) {
- switch (align) {
- case SWT.LEFT: return "LEFT";
- case SWT.RIGHT: return "RIGHT";
- case SWT.TOP: return "TOP";
- case SWT.BOTTOM: return "BOTTOM";
- case SWT.CENTER: return "CENTER";
- }
- return "DEFAULT";
- }
-
- /**
- * Update the attachment field in case the type of control
- * has changed.
- */
- String checkAttachment (String oldAttach, FormAttachment newAttach) {
- String controlClass = newAttach.control.getClass().toString ();
- String controlType = controlClass.substring (controlClass.lastIndexOf ('.') + 1);
- int i = 0;
- while (i < oldAttach.length () && !Character.isDigit(oldAttach.charAt (i))) {
- i++;
- }
- String index = oldAttach.substring (i, oldAttach.indexOf (','));
- return controlType + index + "," + newAttach.offset + ":" + alignmentString (newAttach.alignment);
- }
-
- /**
- * Creates the widgets in the "child" group.
- */
- void createChildWidgets () {
- /* Add common controls */
- super.createChildWidgets ();
-
- /* Resize the columns */
- table.getColumn (LEFT_COL).setWidth (100);
- table.getColumn (RIGHT_COL).setWidth (100);
- table.getColumn (TOP_COL).setWidth (100);
- table.getColumn (BOTTOM_COL).setWidth (100);
-
- /* Add TableEditors */
- comboEditor = new TableEditor (table);
- widthEditor = new TableEditor (table);
- heightEditor = new TableEditor (table);
- leftEditor = new TableEditor (table);
- rightEditor = new TableEditor (table);
- topEditor = new TableEditor (table);
- bottomEditor = new TableEditor (table);
- table.addMouseListener (new MouseAdapter () {
- public void mouseDown(MouseEvent e) {
- resetEditors();
- index = table.getSelectionIndex ();
- Point pt = new Point (e.x, e.y);
- newItem = table.getItem (pt);
- if (newItem == null) return;
- TableItem oldItem = comboEditor.getItem ();
- if (newItem == oldItem || newItem != lastSelected) {
- lastSelected = newItem;
- return;
- }
- table.showSelection ();
-
- combo = new CCombo (table, SWT.READ_ONLY);
- createComboEditor (combo, comboEditor);
-
- widthText = new Text (table, SWT.SINGLE);
- widthText.setText (((String [])data.elementAt (index)) [WIDTH_COL]);
- createTextEditor (widthText, widthEditor, WIDTH_COL);
-
- heightText = new Text (table, SWT.SINGLE);
- heightText.setText (((String [])data.elementAt (index)) [HEIGHT_COL]);
- createTextEditor (heightText, heightEditor, HEIGHT_COL);
-
- leftAttach = new Button (table, SWT.PUSH);
- leftAttach.setText (LayoutExample.getResourceString ("Attach_Edit"));
- leftEditor.horizontalAlignment = SWT.LEFT;
- leftEditor.grabHorizontal = true;
- leftEditor.minimumWidth = leftAttach.computeSize (SWT.DEFAULT, SWT.DEFAULT).x;
- leftEditor.setEditor (leftAttach, newItem, LEFT_COL);
- leftAttach.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- Shell shell = tabFolderPage.getShell ();
- AttachDialog dialog = new AttachDialog (shell);
- dialog.setText (LayoutExample.getResourceString ("Left_Attachment"));
- dialog.setColumn (LEFT_COL);
- String attach = dialog.open ();
- newItem.setText (LEFT_COL, attach);
- resetEditors ();
- }
- });
-
- rightAttach = new Button (table, SWT.PUSH);
- rightAttach.setText (LayoutExample.getResourceString ("Attach_Edit"));
- rightEditor.horizontalAlignment = SWT.LEFT;
- rightEditor.grabHorizontal = true;
- rightEditor.minimumWidth = rightAttach.computeSize (SWT.DEFAULT, SWT.DEFAULT).x;
- rightEditor.setEditor (rightAttach, newItem, RIGHT_COL);
- rightAttach.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- Shell shell = tabFolderPage.getShell ();
- AttachDialog dialog = new AttachDialog (shell);
- dialog.setText (LayoutExample.getResourceString ("Right_Attachment"));
- dialog.setColumn (RIGHT_COL);
- String attach = dialog.open ();
- newItem.setText (RIGHT_COL, attach);
- if (newItem.getText (LEFT_COL).endsWith (")")) newItem.setText (LEFT_COL, "");
- resetEditors ();
- }
- });
-
- topAttach = new Button (table, SWT.PUSH);
- topAttach.setText (LayoutExample.getResourceString ("Attach_Edit"));
- topEditor.horizontalAlignment = SWT.LEFT;
- topEditor.grabHorizontal = true;
- topEditor.minimumWidth = topAttach.computeSize (SWT.DEFAULT, SWT.DEFAULT).x;
- topEditor.setEditor (topAttach, newItem, TOP_COL);
- topAttach.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- Shell shell = tabFolderPage.getShell ();
- AttachDialog dialog = new AttachDialog (shell);
- dialog.setText (LayoutExample.getResourceString ("Top_Attachment"));
- dialog.setColumn (TOP_COL);
- String attach = dialog.open ();
- newItem.setText (TOP_COL, attach);
- resetEditors ();
- }
- });
- bottomAttach = new Button (table, SWT.PUSH);
- bottomAttach.setText (LayoutExample.getResourceString ("Attach_Edit"));
- bottomEditor.horizontalAlignment = SWT.LEFT;
- bottomEditor.grabHorizontal = true;
- bottomEditor.minimumWidth = bottomAttach.computeSize (SWT.DEFAULT, SWT.DEFAULT).x;
- bottomEditor.setEditor (bottomAttach, newItem, BOTTOM_COL);
- bottomAttach.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- Shell shell = tabFolderPage.getShell ();
- AttachDialog dialog = new AttachDialog (shell);
- dialog.setText (LayoutExample.getResourceString ("Bottom_Attachment"));
- dialog.setColumn (BOTTOM_COL);
- String attach = dialog.open ();
- newItem.setText (BOTTOM_COL, attach);
- if (newItem.getText (TOP_COL).endsWith (")")) newItem.setText (TOP_COL, "");
- resetEditors ();
- }
- });
-
- for (int i=0; i<table.getColumnCount (); i++) {
- Rectangle rect = newItem.getBounds (i);
- if (rect.contains (pt)) {
- switch (i) {
- case 0:
- resetEditors ();
- break;
- case COMBO_COL :
- combo.setFocus ();
- break;
- case WIDTH_COL :
- widthText.setFocus ();
- break;
- case HEIGHT_COL :
- heightText.setFocus ();
- break;
- default :
- break;
- }
- }
- }
- }
- });
-
- /* Add listener to add an element to the table */
- add.addSelectionListener(new SelectionAdapter () {
- public void widgetSelected(SelectionEvent e) {
- TableItem item = new TableItem (table, 0);
- String [] insert = new String [] {
- String.valueOf (table.indexOf (item)), "Button", "-1", "-1",
- "0,0 (" + LayoutExample.getResourceString ("Default") + ")", "",
- "0,0 (" + LayoutExample.getResourceString ("Default") + ")", ""};
- item.setText (insert);
- data.addElement (insert);
- resetEditors ();
- }
- });
- }
-
- /**
- * Creates the control widgets.
- */
- void createControlWidgets () {
- /* Controls the margins and spacing of the FormLayout */
- String [] marginValues = new String [] {"0","3","5","10"};
- Group marginGroup = new Group (controlGroup, SWT.NONE);
- marginGroup.setText (LayoutExample.getResourceString ("Margins"));
- GridLayout layout = new GridLayout ();
- layout.numColumns = 2;
- marginGroup.setLayout (layout);
- marginGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
- new Label (marginGroup, SWT.NONE).setText ("marginHeight");
- marginHeight = new Combo (marginGroup, SWT.NONE);
- marginHeight.setItems (marginValues);
- marginHeight.select (0);
- marginHeight.addSelectionListener (selectionListener);
- marginHeight.addTraverseListener (traverseListener);
- GridData data = new GridData (GridData.FILL_HORIZONTAL);
- data.widthHint = 60;
- marginHeight.setLayoutData (data);
- new Label (marginGroup, SWT.NONE).setText ("marginWidth");
- marginWidth = new Combo (marginGroup, SWT.NONE);
- marginWidth.setItems (marginValues);
- marginWidth.select (0);
- marginWidth.addSelectionListener (selectionListener);
- marginWidth.addTraverseListener (traverseListener);
- data = new GridData (GridData.FILL_HORIZONTAL);
- data.widthHint = 60;
- marginWidth.setLayoutData (data);
-
- /* Add common controls */
- super.createControlWidgets ();
-
- /* Position the sash */
- sash.setWeights (new int [] {6,4});
- }
-
- /**
- * Creates the example layout.
- */
- void createLayout () {
- formLayout = new FormLayout ();
- layoutComposite.setLayout (formLayout);
- }
-
- /**
- * Disposes the editors without placing their contents
- * into the table.
- */
- void disposeEditors () {
- comboEditor.setEditor (null, null, -1);
- combo.dispose ();
- widthText.dispose ();
- heightText.dispose ();
- leftAttach.dispose ();
- rightAttach.dispose ();
- topAttach.dispose ();
- bottomAttach.dispose ();
- }
-
- /**
- * Generates code for the example layout.
- */
- StringBuffer generateLayoutCode () {
- StringBuffer code = new StringBuffer ();
- code.append ("\t\tFormLayout formLayout = new FormLayout ();\n");
- if (formLayout.marginHeight != 0) {
- code.append ("\t\tformLayout.marginHeight = " + formLayout.marginHeight + ";\n");
- }
- if (formLayout.marginWidth != 0) {
- code.append ("\t\tformLayout.marginWidth = " + formLayout.marginWidth + ";\n");
- }
- code.append ("\t\tshell.setLayout (formLayout);\n");
-
- boolean first = true;
- for (int i = 0; i < children.length; i++) {
- Control control = children [i];
- code.append (getChildCode (control, i));
- FormData data = (FormData) control.getLayoutData ();
- if (data != null) {
- code.append ("\t\t");
- if (first) {
- code.append ("FormData ");
- first = false;
- }
- code.append ("data = new FormData ();\n");
- if (data.width != SWT.DEFAULT) {
- code.append ("\t\tdata.width = " + data.width + ";\n");
- }
- if (data.height != SWT.DEFAULT) {
- code.append ("\t\tdata.height = " + data.height + ";\n");
- }
- if (data.left != null) {
- if (data.left.control != null) {
- TableItem item = table.getItem (i);
- String controlString = item.getText (LEFT_COL);
- int index = new Integer (controlString.substring (controlString.indexOf (',') - 1, controlString.indexOf (','))).intValue ();
- code.append ("\t\tdata.left = new FormAttachment (" + names [index] + ", " + data.left.offset + ", SWT." + alignmentString (data.left.alignment) + ");\n");
- } else {
- if (data.right != null || (data.left.numerator != 0 ||data.left.offset != 0)) {
- code.append ("\t\tdata.left = new FormAttachment (" + data.left.numerator + ", " + data.left.offset + ");\n");
- }
- }
- }
- if (data.right != null) {
- if (data.right.control != null) {
- TableItem item = table.getItem (i);
- String controlString = item.getText (RIGHT_COL);
- int index = new Integer (controlString.substring (controlString.indexOf (',') - 1, controlString.indexOf (','))).intValue ();
- code.append ("\t\tdata.right = new FormAttachment (" + names [index] + ", " + data.right.offset + ", SWT." + alignmentString (data.right.alignment) + ");\n");
- } else {
- code.append ("\t\tdata.right = new FormAttachment (" + data.right.numerator + ", " + data.right.offset + ");\n");
- }
- }
- if (data.top != null) {
- if (data.top.control != null) {
- TableItem item = table.getItem (i);
- String controlString = item.getText (TOP_COL);
- int index = new Integer (controlString.substring (controlString.indexOf (',') - 1, controlString.indexOf (','))).intValue ();
- code.append ("\t\tdata.top = new FormAttachment (" + names [index] + ", " + data.top.offset + ", SWT." + alignmentString (data.top.alignment) + ");\n");
- } else {
- if (data.bottom != null || (data.top.numerator != 0 ||data.top.offset != 0)) {
- code.append ("\t\tdata.top = new FormAttachment (" + data.top.numerator + ", " + data.top.offset + ");\n");
- }
- }
- }
- if (data.bottom != null) {
- if (data.bottom.control != null) {
- TableItem item = table.getItem (i);
- String controlString = item.getText (BOTTOM_COL);
- int index = new Integer (controlString.substring (controlString.indexOf (',') - 1, controlString.indexOf (','))).intValue ();
- code.append ("\t\tdata.bottom = new FormAttachment (" + names [index] + ", " + data.bottom.offset + ", SWT." + alignmentString (data.bottom.alignment) + ");\n");
- } else {
- code.append ("\t\tdata.bottom = new FormAttachment (" + data.bottom.numerator + ", " + data.bottom.offset + ");\n");
- }
- }
- code.append ("\t\t" + names [i] + ".setLayoutData (data);\n");
- }
- }
- return code;
- }
-
- /**
- * Returns the layout data field names.
- */
- String [] getLayoutDataFieldNames() {
- return new String [] {
- "",
- "Control",
- "width",
- "height",
- "left",
- "right",
- "top",
- "bottom"
- };
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "FormLayout";
- }
-
- /**
- * Takes information from TableEditors and stores it.
- */
- void resetEditors () {
- resetEditors (false);
- }
-
- void resetEditors (boolean tab) {
- TableItem oldItem = comboEditor.getItem ();
- if (oldItem != null) {
- int row = table.indexOf (oldItem);
- try {
- new Integer (widthText.getText ()).intValue ();
- } catch (NumberFormatException e) {
- widthText.setText (oldItem.getText (WIDTH_COL));
- }
- try {
- new Integer (heightText.getText ()).intValue ();
- } catch (NumberFormatException e) {
- heightText.setText (oldItem.getText (HEIGHT_COL));
- }
- String [] insert = new String [] {String.valueOf (row), combo.getText (), widthText.getText (), heightText.getText ()};
- data.setElementAt (insert, row);
- for (int i = 0 ; i < MODIFY_COLS; i++) {
- oldItem.setText (i, ((String [])data.elementAt (row)) [i]);
- }
- if (!tab) disposeEditors ();
- }
- setLayoutState ();
- refreshLayoutComposite ();
- setLayoutData ();
- layoutComposite.layout (true);
- layoutGroup.layout (true);
- }
-
- /**
- * Sets an attachment to the edge of a widget using the
- * information in the table.
- */
- FormAttachment setAttachment (String attachment) {
- String control, align;
- int position, offset;
- int comma = attachment.indexOf (',');
- char first = attachment.charAt (0);
- if (Character.isLetter(first)) {
- /* Case where there is a control */
- control = attachment.substring (0, comma);
- int i = 0;
- while (i < control.length () && !Character.isDigit (control.charAt (i))) {
- i++;
- }
- String end = control.substring (i);
- int index = new Integer (end).intValue ();
- Control attachControl = children [index];
- int colon = attachment.indexOf (':');
- try {
- offset = new Integer (attachment.substring (comma + 1, colon)).intValue ();
- } catch (NumberFormatException e) {
- offset = 0;
- }
- align = attachment.substring (colon + 1);
- return new FormAttachment (attachControl, offset, alignmentConstant (align));
- }
- /* Case where there is a position */
- try {
- position = new Integer (attachment.substring (0,comma)).intValue ();
- } catch (NumberFormatException e) {
- position = 0;
- }
- try {
- offset = new Integer (attachment.substring (comma + 1)).intValue ();
- } catch (NumberFormatException e) {
- offset = 0;
- }
- return new FormAttachment (position, offset);
- }
-
- /**
- * Sets the layout data for the children of the layout.
- */
- void setLayoutData () {
- Control [] children = layoutComposite.getChildren ();
- TableItem [] items = table.getItems ();
- FormData data;
- int width, height;
- String left, right, top, bottom;
- for (int i = 0; i < children.length; i++) {
- width = new Integer (items [i].getText (WIDTH_COL)).intValue ();
- height = new Integer (items [i].getText (HEIGHT_COL)).intValue ();
- data = new FormData ();
- if (width > 0) data.width = width;
- if (height > 0) data.height = height;
-
- left = items [i].getText (LEFT_COL);
- if (left.length () > 0) {
- data.left = setAttachment (left);
- if (data.left.control != null) {
- String attachment = checkAttachment (left, data.left);
- items [i].setText (LEFT_COL, attachment);
- }
- }
- right = items [i].getText (RIGHT_COL);
- if (right.length () > 0) {
- data.right = setAttachment (right);
- if (data.right.control != null) {
- String attachment = checkAttachment (right, data.right);
- items [i].setText (RIGHT_COL, attachment);
- }
- }
- top = items [i].getText (TOP_COL);
- if (top.length () > 0 ) {
- data.top = setAttachment (top);
- if (data.top.control != null) {
- String attachment = checkAttachment (top, data.top);
- items [i].setText (TOP_COL, attachment);
- }
- }
- bottom = items [i].getText (BOTTOM_COL);
- if (bottom.length () > 0) {
- data.bottom = setAttachment (bottom);
- if (data.bottom.control != null) {
- String attachment = checkAttachment (bottom, data.bottom);
- items [i].setText (BOTTOM_COL, attachment);
- }
- }
- children [i].setLayoutData (data);
- }
- }
-
- /**
- * Sets the state of the layout.
- */
- void setLayoutState () {
- /* Set the margins and spacing */
- try {
- formLayout.marginHeight = new Integer (marginHeight.getText ()).intValue ();
- } catch (NumberFormatException e) {
- formLayout.marginHeight = 0;
- marginHeight.select (0);
- }
- try {
- formLayout.marginWidth = new Integer (marginWidth.getText ()).intValue ();
- } catch (NumberFormatException e) {
- formLayout.marginWidth = 0;
- marginWidth.select (0);
- }
- }
-
-
- /**
- * <code>AttachDialog</code> is the class that creates a
- * dialog specific for this example. It creates a dialog
- * with controls to set the values in a FormAttachment.
- */
- public class AttachDialog extends Dialog {
- String result = "";
- String controlInput, positionInput, alignmentInput, offsetInput;
- int col = 0;
-
- public AttachDialog (Shell parent, int style) {
- super (parent, style);
- }
-
- public AttachDialog (Shell parent) {
- this (parent, 0);
- }
-
- public void setColumn (int col) {
- this.col = col;
- }
-
- public String open () {
- Shell parent = getParent ();
- final Shell shell = new Shell (parent, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
- shell.setText (getText ());
- GridLayout layout = new GridLayout ();
- layout.numColumns = 3;
- layout.makeColumnsEqualWidth = true;
- shell.setLayout (layout);
-
- /* Find out what was previously set as an attachment */
- TableItem newItem = leftEditor.getItem ();
- result = newItem.getText (col);
- String oldAttach = result;
- String oldPos = "0", oldControl = "", oldAlign = "DEFAULT", oldOffset = "0";
- boolean isControl = false;
- if (oldAttach.length () != 0) {
- char first = oldAttach.charAt (0);
- if (Character.isLetter(first)) {
- /* We have a control */
- isControl = true;
- oldControl = oldAttach.substring (0, oldAttach.indexOf (','));
- oldAlign = oldAttach.substring (oldAttach.indexOf (':') + 1);
- oldOffset = oldAttach.substring (oldAttach.indexOf (',') + 1, oldAttach.indexOf (':'));
- } else {
- /* We have a position */
- oldPos = oldAttach.substring (0, oldAttach.indexOf (','));
- oldOffset = oldAttach.substring (oldAttach.indexOf (',') + 1);
- if (oldOffset.endsWith (")")) { // i.e. (Default)
- oldOffset = oldOffset.substring (0, oldOffset.indexOf (' '));
- }
- }
- }
-
- /* Add position field */
- final Button posButton = new Button (shell, SWT.RADIO);
- posButton.setText (LayoutExample.getResourceString ("Position"));
- posButton.setSelection (!isControl);
- final Combo position = new Combo (shell, SWT.NONE);
- position.setItems (new String [] {"0","25","50","75","100"});
- position.setText (oldPos);
- position.setEnabled (!isControl);
- GridData data = new GridData (GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
- position.setLayoutData (data);
-
- /* Add control field */
- final Button contButton = new Button (shell, SWT.RADIO);
- contButton.setText (LayoutExample.getResourceString ("Control"));
- contButton.setSelection (isControl);
- final Combo control = new Combo (shell, SWT.READ_ONLY);
- TableItem [] items = table.getItems ();
- TableItem currentItem = leftEditor.getItem ();
- for (int i = 0; i < table.getItemCount (); i++) {
- if (items [i].getText (0).length() > 0) {
- if (items [i] != currentItem) {
- control.add (items [i].getText (COMBO_COL) + i);
- }
- }
- }
- if (oldControl.length () != 0) control.setText (oldControl);
- else control.select (0);
- control.setEnabled (isControl);
- data = new GridData (GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
- control.setLayoutData (data);
-
- /* Add alignment field */
- new Label (shell, SWT.NONE).setText (LayoutExample.getResourceString ("Alignment"));
- final Combo alignment = new Combo (shell, SWT.NONE);
- String[] alignmentValues;
- if (col == LEFT_COL || col == RIGHT_COL) {
- alignmentValues = new String [] {"SWT.LEFT", "SWT.RIGHT", "SWT.CENTER", "SWT.DEFAULT"};
- } else {
- // col == TOP_COL || col == BOTTOM_COL
- alignmentValues = new String [] {"SWT.TOP", "SWT.BOTTOM", "SWT.CENTER", "SWT.DEFAULT"};
- }
- alignment.setItems (alignmentValues);
- alignment.setText ("SWT." + oldAlign);
- alignment.setEnabled (isControl);
- data = new GridData (GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
- alignment.setLayoutData (data);
-
- /* Add offset field */
- new Label (shell, SWT.NONE).setText (LayoutExample.getResourceString ("Offset"));
- final Text offset = new Text (shell, SWT.SINGLE | SWT.BORDER);
- offset.setText (oldOffset);
- data = new GridData (GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
- offset.setLayoutData (data);
-
- /* Add listeners for choosing between position and control */
- posButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- position.setEnabled (true);
- control.setEnabled (false);
- alignment.setEnabled(false);
- }
- });
- contButton.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- position.setEnabled (false);
- control.setEnabled (true);
- alignment.setEnabled(true);
- }
- });
-
- Button clear = new Button (shell, SWT.PUSH);
- clear.setText (LayoutExample.getResourceString ("Clear"));
- clear.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_END));
- clear.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- result = "";
- shell.close ();
- }
- });
- /* OK button sets data into table */
- Button ok = new Button (shell, SWT.PUSH);
- ok.setText (LayoutExample.getResourceString ("OK"));
- ok.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_CENTER));
- ok.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- controlInput = control.getText ();
- alignmentInput = alignment.getText ().substring (4);
- positionInput = position.getText ();
- if (positionInput.length () == 0) positionInput = "0";
- try {
- new Integer (positionInput).intValue ();
- } catch (NumberFormatException except) {
- positionInput = "0";
- }
- offsetInput = offset.getText ();
- if (offsetInput.length () == 0) offsetInput = "0";
- try {
- new Integer (offsetInput).intValue ();
- } catch (NumberFormatException except) {
- offsetInput = "0";
- }
- if (posButton.getSelection() || controlInput.length () == 0) {
- result = positionInput + "," + offsetInput;
- } else {
- result = controlInput + "," + offsetInput + ":" + alignmentInput;
- }
- shell.close ();
- }
- });
- Button cancel = new Button (shell, SWT.PUSH);
- cancel.setText (LayoutExample.getResourceString ("Cancel"));
- cancel.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_BEGINNING));
- cancel.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- shell.close ();
- }
- });
-
- shell.setDefaultButton (ok);
- shell.pack ();
- /* Center the dialog */
- Point center = parent.getLocation ();
- center.x = center.x + (parent.getBounds ().width / 2) - (shell.getBounds ().width / 2);
- center.y = center.y + (parent.getBounds ().height / 2) - (shell.getBounds ().height / 2);
- shell.setLocation (center);
- shell.open ();
- Display display = shell.getDisplay ();
- while (!shell.isDisposed ()) {
- if (display.readAndDispatch ()) display.sleep ();
- }
-
- return result;
- }
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/GridLayoutTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/GridLayoutTab.java
deleted file mode 100644
index bc26f0ae40..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/GridLayoutTab.java
+++ /dev/null
@@ -1,590 +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 */
- Text numColumns;
- Button makeColumnsEqualWidth;
- Combo marginHeight, marginWidth, horizontalSpacing, verticalSpacing;
- /* The example layout instance */
- GridLayout gridLayout;
- /* TableEditors and related controls*/
- TableEditor comboEditor, widthEditor, heightEditor;
- TableEditor vAlignEditor, hAlignEditor, hIndentEditor;
- TableEditor hSpanEditor, vSpanEditor, hGrabEditor, vGrabEditor;
- CCombo combo, vAlign, hAlign, hGrab, vGrab;
- Text widthText, heightText, hIndent, hSpan, vSpan;
-
- /* Constants */
- final int COMBO_COL = 1;
- final int WIDTH_COL = 2;
- final int HEIGHT_COL = 3;
- final int HALIGN_COL = 4;
- final int VALIGN_COL = 5;
- final int HINDENT_COL = 6;
- final int HSPAN_COL = 7;
- final int VSPAN_COL = 8;
- final int HGRAB_COL = 9;
- final int VGRAB_COL = 10;
-
- final int TOTAL_COLS = 11;
-
- /**
- * Creates the Tab within a given instance of LayoutExample.
- */
- GridLayoutTab(LayoutExample instance) {
- super(instance);
- }
-
- /**
- * Creates the widgets in the "child" group.
- */
- void createChildWidgets () {
- /* Create the TraverseListener */
- final TraverseListener traverseListener = new TraverseListener () {
- public void keyTraversed (TraverseEvent e) {
- if (e.detail == SWT.TRAVERSE_RETURN || e.detail == SWT.TRAVERSE_TAB_NEXT)
- resetEditors ();
- if (e.detail == SWT.TRAVERSE_ESCAPE)
- disposeEditors ();
- }
- };
-
- /* Add common controls */
- super.createChildWidgets ();
-
- /* Add TableEditors */
- comboEditor = new TableEditor (table);
- widthEditor = new TableEditor (table);
- heightEditor = new TableEditor (table);
- vAlignEditor = new TableEditor (table);
- hAlignEditor = new TableEditor (table);
- hIndentEditor = new TableEditor (table);
- hSpanEditor = new TableEditor (table);
- vSpanEditor = new TableEditor (table);
- hGrabEditor = new TableEditor (table);
- vGrabEditor = new TableEditor (table);
- table.addMouseListener (new MouseAdapter () {
- public void mouseDown(MouseEvent e) {
- resetEditors();
- index = table.getSelectionIndex ();
- Point pt = new Point (e.x, e.y);
- newItem = table.getItem (pt);
- if (newItem == null) return;
- TableItem oldItem = comboEditor.getItem ();
- if (newItem == oldItem || newItem != lastSelected) {
- lastSelected = newItem;
- return;
- }
- table.showSelection ();
-
- combo = new CCombo (table, SWT.READ_ONLY);
- createComboEditor (combo, comboEditor);
-
- widthText = new Text (table, SWT.SINGLE);
- widthText.setText (((String [])data.elementAt (index)) [WIDTH_COL]);
- createTextEditor (widthText, widthEditor, WIDTH_COL);
-
- heightText = new Text (table, SWT.SINGLE);
- heightText.setText (((String [])data.elementAt (index)) [HEIGHT_COL]);
- createTextEditor (heightText, heightEditor, HEIGHT_COL);
- String [] alignValues = new String [] {"BEGINNING","CENTER","END","FILL"};
- hAlign = new CCombo (table, SWT.NONE);
- hAlign.setItems (alignValues);
- hAlign.setText (newItem.getText (HALIGN_COL));
- hAlignEditor.horizontalAlignment = SWT.LEFT;
- hAlignEditor.grabHorizontal = true;
- hAlignEditor.minimumWidth = 50;
- hAlignEditor.setEditor (hAlign, newItem, HALIGN_COL);
- hAlign.addTraverseListener (traverseListener);
-
- vAlign = new CCombo (table, SWT.NONE);
- vAlign.setItems (alignValues);
- vAlign.setText (newItem.getText (VALIGN_COL));
- vAlignEditor.horizontalAlignment = SWT.LEFT;
- vAlignEditor.grabHorizontal = true;
- vAlignEditor.minimumWidth = 50;
- vAlignEditor.setEditor (vAlign, newItem, VALIGN_COL);
- vAlign.addTraverseListener (traverseListener);
-
- hIndent = new Text (table, SWT.SINGLE);
- hIndent.setText (((String [])data.elementAt (index)) [HINDENT_COL]);
- createTextEditor (hIndent, hIndentEditor, HINDENT_COL);
-
- hSpan = new Text (table, SWT.SINGLE);
- hSpan.setText (((String [])data.elementAt (index)) [HSPAN_COL]);
- createTextEditor (hSpan, hSpanEditor, HSPAN_COL);
-
- vSpan = new Text (table, SWT.SINGLE);
- vSpan.setText (((String [])data.elementAt (index)) [VSPAN_COL]);
- createTextEditor (vSpan, vSpanEditor, VSPAN_COL);
-
- String [] boolValues = new String [] {"false","true"};
- hGrab = new CCombo (table, SWT.NONE);
- hGrab.setItems (boolValues);
- hGrab.setText (newItem.getText (HGRAB_COL));
- hGrabEditor.horizontalAlignment = SWT.LEFT;
- hGrabEditor.grabHorizontal = true;
- hGrabEditor.minimumWidth = 50;
- hGrabEditor.setEditor (hGrab, newItem, HGRAB_COL);
- hGrab.addTraverseListener (traverseListener);
-
- vGrab = new CCombo (table, SWT.NONE);
- vGrab.setItems (boolValues);
- vGrab.setText (newItem.getText (VGRAB_COL));
- vGrabEditor.horizontalAlignment = SWT.LEFT;
- vGrabEditor.grabHorizontal = true;
- vGrabEditor.minimumWidth = 50;
- vGrabEditor.setEditor (vGrab, newItem, VGRAB_COL);
- vGrab.addTraverseListener (traverseListener);
-
- for (int i=0; i<table.getColumnCount (); i++) {
- Rectangle rect = newItem.getBounds (i);
- if (rect.contains (pt)) {
- switch (i) {
- case COMBO_COL :
- combo.setFocus ();
- break;
- case WIDTH_COL :
- widthText.setFocus ();
- break;
- case HEIGHT_COL :
- heightText.setFocus ();
- break;
- case HALIGN_COL :
- hAlign.setFocus ();
- break;
- case VALIGN_COL :
- vAlign.setFocus ();
- break;
- case HINDENT_COL :
- hIndent.setFocus ();
- break;
- case HSPAN_COL :
- hSpan.setFocus ();
- break;
- case VSPAN_COL :
- vSpan.setFocus ();
- break;
- case HGRAB_COL :
- hGrab.setFocus ();
- break;
- case VGRAB_COL :
- vGrab.setFocus ();
- break;
- default :
- resetEditors ();
- break;
- }
- }
- }
- }
- });
-
- /* Add listener to add an element to the table */
- add.addSelectionListener(new SelectionAdapter () {
- public void widgetSelected(SelectionEvent e) {
- TableItem item = new TableItem (table, 0);
- String [] insert = new String [] {
- String.valueOf (table.indexOf (item)), "Button",
- "-1","-1","BEGINNING","CENTER",
- "0","1","1","false","false"};
- item.setText (insert);
- data.addElement (insert);
- resetEditors ();
- }
- });
- }
-
- /**
- * Creates the control widgets.
- */
- void createControlWidgets () {
- /* Rearrange the layout of the control group */
- size.setLayoutData (new GridData ());
-
- /* Controls the margins and spacing of the GridLayout */
- String [] marginValues = new String [] {"0","3","5","10"};
- Group marginGroup = new Group (controlGroup, SWT.NONE);
- marginGroup.setText (LayoutExample.getResourceString ("Margins_Spacing"));
- GridData data = new GridData (GridData.FILL_HORIZONTAL);
- data.verticalSpan = 2;
- marginGroup.setLayoutData (data);
- GridLayout layout = new GridLayout ();
- layout.numColumns = 2;
- marginGroup.setLayout (layout);
- new Label (marginGroup, SWT.NONE).setText ("marginHeight");
- marginHeight = new Combo (marginGroup, SWT.NONE);
- marginHeight.setItems (marginValues);
- marginHeight.select (2);
- data = new GridData (GridData.FILL_HORIZONTAL);
- data.widthHint = 60;
- marginHeight.setLayoutData (data);
- marginHeight.addSelectionListener (selectionListener);
- marginHeight.addTraverseListener (traverseListener);
- new Label (marginGroup, SWT.NONE).setText ("marginWidth");
- marginWidth = new Combo (marginGroup, SWT.NONE);
- marginWidth.setItems (marginValues);
- marginWidth.select (2);
- data = new GridData (GridData.FILL_HORIZONTAL);
- data.widthHint = 60;
- marginWidth.setLayoutData (data);
- marginWidth.addSelectionListener (selectionListener);
- marginWidth.addTraverseListener (traverseListener);
- new Label (marginGroup, SWT.NONE).setText ("horizontalSpacing");
- horizontalSpacing = new Combo (marginGroup, SWT.NONE);
- horizontalSpacing.setItems (marginValues);
- horizontalSpacing.select (2);
- data = new GridData (GridData.FILL_HORIZONTAL);
- data.widthHint = 60;
- horizontalSpacing.setLayoutData (data);
- horizontalSpacing.addSelectionListener (selectionListener);
- horizontalSpacing.addTraverseListener (traverseListener);
- new Label (marginGroup, SWT.NONE).setText ("verticalSpacing");
- verticalSpacing = new Combo (marginGroup, SWT.NONE);
- verticalSpacing.setItems (marginValues);
- verticalSpacing.select (2);
- data = new GridData (GridData.FILL_HORIZONTAL);
- data.widthHint = 60;
- verticalSpacing.setLayoutData (data);
- verticalSpacing.addSelectionListener (selectionListener);
- verticalSpacing.addTraverseListener (traverseListener);
-
- /* Controls the columns in the GridLayout */
- Group columnGroup = new Group (controlGroup, SWT.NONE);
- columnGroup.setText (LayoutExample.getResourceString ("Columns"));
- layout = new GridLayout ();
- layout.numColumns = 2;
- columnGroup.setLayout (layout);
- data = new GridData (GridData.VERTICAL_ALIGN_FILL);
- columnGroup.setLayoutData (data);
- numColumns = new Text (columnGroup, SWT.BORDER);
- numColumns.setText ("1");
- numColumns.addSelectionListener (selectionListener);
- numColumns.addTraverseListener (traverseListener);
- data = new GridData (GridData.FILL_HORIZONTAL);
- data.widthHint = 15;
- numColumns.setLayoutData (data);
- new Label (columnGroup, SWT.NONE).setText ("numColumns");
- makeColumnsEqualWidth = new Button (columnGroup, SWT.CHECK);
- makeColumnsEqualWidth.setText ("makeColumnsEqualWidth");
- makeColumnsEqualWidth.addSelectionListener (selectionListener);
- data = new GridData (GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
- data.horizontalIndent = 14;
- makeColumnsEqualWidth.setLayoutData (data);
-
- /* Add common controls */
- super.createControlWidgets ();
- controlGroup.pack();
- }
-
- /**
- * Creates the example layout.
- */
- void createLayout () {
- gridLayout = new GridLayout ();
- layoutComposite.setLayout (gridLayout);
- }
-
- /**
- * Disposes the editors without placing their contents
- * into the table.
- */
- void disposeEditors () {
- comboEditor.setEditor (null, null, -1);
- combo.dispose ();
- widthText.dispose ();
- heightText.dispose ();
- hAlign.dispose ();
- vAlign.dispose ();
- hIndent.dispose ();
- hSpan.dispose ();
- vSpan.dispose ();
- hGrab.dispose ();
- vGrab.dispose ();
- }
-
- /**
- * Generates code for the example layout.
- */
- StringBuffer generateLayoutCode () {
- StringBuffer code = new StringBuffer ();
- code.append ("\t\tGridLayout gridLayout = new GridLayout ();\n");
- if (gridLayout.numColumns != 1) {
- code.append ("\t\tgridLayout.numColumns = " + gridLayout.numColumns + ";\n");
- }
- if (gridLayout.makeColumnsEqualWidth) {
- code.append ("\t\tgridLayout.makeColumnsEqualWidth = true;\n");
- }
- if (gridLayout.marginHeight != 5) {
- code.append ("\t\tgridLayout.marginHeight = " + gridLayout.marginHeight + ";\n");
- }
- if (gridLayout.marginWidth != 5) {
- code.append ("\t\tgridLayout.marginWidth = " + gridLayout.marginWidth + ";\n");
- }
- if (gridLayout.horizontalSpacing != 5) {
- code.append ("\t\tgridLayout.horizontalSpacing = " + gridLayout.horizontalSpacing + ";\n");
- }
- if (gridLayout.verticalSpacing != 5) {
- code.append ("\t\tgridLayout.verticalSpacing = " + gridLayout.verticalSpacing + ";\n");
- }
- code.append ("\t\tshell.setLayout (gridLayout);\n");
-
- boolean first = true;
- for (int i = 0; i < children.length; i++) {
- Control control = children [i];
- code.append (getChildCode (control, i));
- GridData data = (GridData) control.getLayoutData ();
- if (data != null) {
- code.append ("\t\t");
- if (first) {
- code.append ("GridData ");
- first = false;
- }
- code.append ("data = new GridData ();\n");
- if (data.widthHint != SWT.DEFAULT) {
- code.append ("\t\tdata.widthHint = " + data.widthHint + ";\n");
- }
- if (data.heightHint != SWT.DEFAULT) {
- code.append ("\t\tdata.heightHint = " + data.heightHint + ";\n");
- }
- if (data.horizontalAlignment != GridData.BEGINNING) {
- String alignment;
- int hAlignment = data.horizontalAlignment;
- if (hAlignment == GridData.CENTER) alignment = "GridData.CENTER";
- else if (hAlignment == GridData.END) alignment = "GridData.END";
- else alignment = "GridData.FILL";
- code.append ("\t\tdata.horizontalAlignment = " + alignment + ";\n");
- }
- if (data.verticalAlignment != GridData.CENTER) {
- String alignment;
- int vAlignment = data.verticalAlignment;
- if (vAlignment == GridData.BEGINNING) alignment = "GridData.BEGINNING";
- else if (vAlignment == GridData.END) alignment = "GridData.END";
- else alignment = "GridData.FILL";
- code.append ("\t\tdata.verticalAlignment = " + alignment + ";\n");
- }
- if (data.horizontalIndent != 0) {
- code.append ("\t\tdata.horizontalIndent = " + data.horizontalIndent + ";\n");
- }
- if (data.horizontalSpan != 1) {
- code.append ("\t\tdata.horizontalSpan = " + data.horizontalSpan + ";\n");
- }
- if (data.verticalSpan != 1) {
- code.append ("\t\tdata.verticalSpan = " + data.verticalSpan + ";\n");
- }
- if (data.grabExcessHorizontalSpace) {
- code.append ("\t\tdata.grabExcessHorizontalSpace = true;\n");
- }
- if (data.grabExcessVerticalSpace) {
- code.append ("\t\tdata.grabExcessVerticalSpace = true;\n");
- }
- if (code.substring (code.length () - 33).equals ("GridData data = new GridData ();\n")) {
- code.delete (code.length () - 33, code.length ());
- first = true;
- } else if (code.substring (code.length () - 24).equals ("data = new GridData ();\n")) {
- code.delete (code.length () - 24, code.length ());
- } else {
- code.append ("\t\t" + names [i] + ".setLayoutData (data);\n");
- }
- }
- }
- return code;
- }
-
- /**
- * Returns the layout data field names.
- */
- String [] getLayoutDataFieldNames() {
- return new String [] {
- "",
- "Control",
- "width",
- "height",
- "horizontalAlignment",
- "verticalAlignment",
- "horizontalIndent",
- "horizontalSpan",
- "verticalSpan",
- "grabExcessHorizontalSpace",
- "grabExcessVerticalSpace"
- };
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "GridLayout";
- }
-
- /**
- * Takes information from TableEditors and stores it.
- */
- void resetEditors () {
- resetEditors (false);
- }
-
- void resetEditors (boolean tab) {
- TableItem oldItem = comboEditor.getItem ();
- if (oldItem != null) {
- int row = table.indexOf (oldItem);
- try {
- new Integer (widthText.getText ()).intValue ();
- } catch (NumberFormatException e) {
- widthText.setText (oldItem.getText (WIDTH_COL));
- }
- try {
- new Integer (heightText.getText ()).intValue ();
- } catch (NumberFormatException e) {
- heightText.setText (oldItem.getText (HEIGHT_COL));
- }
- try {
- new Integer (hIndent.getText ()).intValue ();
- } catch (NumberFormatException e) {
- hIndent.setText (oldItem.getText (HINDENT_COL));
- }
- try {
- new Integer (hSpan.getText ()).intValue ();
- } catch (NumberFormatException e) {
- hSpan.setText (oldItem.getText (HSPAN_COL));
- }
- try {
- new Integer (vSpan.getText ()).intValue ();
- } catch (NumberFormatException e) {
- vSpan.setText (oldItem.getText (VSPAN_COL));
- }
- String [] insert = new String [] {
- String.valueOf (row), combo.getText (), widthText.getText (), heightText.getText (),
- hAlign.getText (), vAlign.getText (), hIndent.getText (),
- hSpan.getText (), vSpan.getText (), hGrab.getText (), vGrab.getText ()
- };
- data.setElementAt (insert, row);
- for (int i = 0; i < TOTAL_COLS; i++) {
- oldItem.setText (i, ((String [])data.elementAt (row)) [i]);
- }
- if (!tab) disposeEditors ();
- }
- setLayoutState ();
- refreshLayoutComposite ();
- setLayoutData ();
- layoutComposite.layout (true);
- layoutGroup.layout (true);
- }
-
- /**
- * Sets the layout data for the children of the layout.
- */
- void setLayoutData () {
- Control [] children = layoutComposite.getChildren ();
- TableItem [] items = table.getItems ();
- GridData data;
- int hIndent, hSpan, vSpan;
- String vAlign, hAlign, vGrab, hGrab;
- for (int i = 0; i < children.length; i++) {
- data = new GridData ();
- /* Set widthHint and heightHint */
- data.widthHint = new Integer (items [i].getText (WIDTH_COL)).intValue ();
- data.heightHint = new Integer (items [i].getText (HEIGHT_COL)).intValue ();
- /* Set vertical alignment and horizontal alignment */
- hAlign = items [i].getText (HALIGN_COL);
- if (hAlign.equals ("CENTER")) {
- data.horizontalAlignment = GridData.CENTER;
- } else if (hAlign.equals ("END")) {
- data.horizontalAlignment = GridData.END;
- } else if (hAlign.equals ("FILL")) {
- data.horizontalAlignment = GridData.FILL;
- } else {
- data.horizontalAlignment = GridData.BEGINNING;
- }
- vAlign = items [i].getText (VALIGN_COL);
- if (vAlign.equals ("BEGINNING")) {
- data.verticalAlignment = GridData.BEGINNING;
- } else if (vAlign.equals ("END")) {
- data.verticalAlignment = GridData.END;
- } else if (vAlign.equals ("FILL")) {
- data.verticalAlignment = GridData.FILL;
- } else {
- data.verticalAlignment = GridData.CENTER;
- }
- /* Set indents and spans */
- hIndent = new Integer (items [i].getText (HINDENT_COL)).intValue ();
- data.horizontalIndent = hIndent;
- hSpan = new Integer (items [i].getText (HSPAN_COL)).intValue ();
- data.horizontalSpan = hSpan;
- vSpan = new Integer (items [i].getText (VSPAN_COL)).intValue ();
- data.verticalSpan = vSpan;
- /* Set grabbers */
- hGrab = items [i].getText (HGRAB_COL);
- if (hGrab.equals ("true")) {
- data.grabExcessHorizontalSpace = true;
- } else {
- data.grabExcessHorizontalSpace = false;
- }
- vGrab = items [i].getText (VGRAB_COL);
- if (vGrab.equals ("true")) {
- data.grabExcessVerticalSpace = true;
- } else {
- data.grabExcessVerticalSpace = false;
- }
- children [i].setLayoutData (data);
- }
- }
-
- /**
- * Sets the state of the layout.
- */
- void setLayoutState () {
- /* Set the columns for the layout */
- try {
- gridLayout.numColumns = new Integer (numColumns.getText ()).intValue ();
- } catch (NumberFormatException e) {
- gridLayout.numColumns = 1;
- }
- gridLayout.makeColumnsEqualWidth = makeColumnsEqualWidth.getSelection ();
-
- /* Set the margins and spacing */
- try {
- gridLayout.marginHeight = new Integer (marginHeight.getText ()).intValue ();
- } catch (NumberFormatException e) {
- gridLayout.marginHeight = 5;
- marginHeight.select (2);
- }
- try {
- gridLayout.marginWidth = new Integer (marginWidth.getText ()).intValue ();
- } catch (NumberFormatException e) {
- gridLayout.marginWidth = 5;
- marginWidth.select (2);
- }
- try {
- gridLayout.horizontalSpacing = new Integer (horizontalSpacing.getText ()).intValue ();
- } catch (NumberFormatException e) {
- gridLayout.horizontalSpacing = 5;
- horizontalSpacing.select (2);
- }
- try {
- gridLayout.verticalSpacing = new Integer (verticalSpacing.getText ()).intValue ();
- } catch (NumberFormatException e) {
- gridLayout.verticalSpacing = 5;
- verticalSpacing.select (2);
- }
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/LayoutExample.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/LayoutExample.java
deleted file mode 100644
index 2f5a48990f..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/LayoutExample.java
+++ /dev/null
@@ -1,114 +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),
- };
- 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 2d37352593..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/RowLayoutTab.java
+++ /dev/null
@@ -1,413 +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, justify;
- Combo marginRight, marginLeft, marginTop, marginBottom, spacing;
- /* The example layout instance */
- RowLayout rowLayout;
- /* TableEditors and related controls*/
- TableEditor comboEditor, widthEditor, heightEditor;
- CCombo combo;
- Text widthText, heightText;
-
- /* Constants */
- final int COMBO_COL = 1;
- final int WIDTH_COL = 2;
- final int HEIGHT_COL = 3;
-
- final int TOTAL_COLS = 4;
-
- /**
- * Creates the Tab within a given instance of LayoutExample.
- */
- RowLayoutTab(LayoutExample instance) {
- super(instance);
- }
-
- /**
- * Creates the widgets in the "child" group.
- */
- void createChildWidgets () {
- /* Add common controls */
- super.createChildWidgets ();
-
- /* Add TableEditors */
- comboEditor = new TableEditor (table);
- widthEditor = new TableEditor (table);
- heightEditor = new TableEditor (table);
- table.addMouseListener (new MouseAdapter () {
- public void mouseDown(MouseEvent e) {
- resetEditors();
- index = table.getSelectionIndex ();
- Point pt = new Point (e.x, e.y);
- newItem = table.getItem (pt);
- if (newItem == null) return;
- TableItem oldItem = comboEditor.getItem ();
- if (newItem == oldItem || newItem != lastSelected) {
- lastSelected = newItem;
- return;
- }
- table.showSelection ();
-
- combo = new CCombo (table, SWT.READ_ONLY);
- createComboEditor (combo, comboEditor);
-
- widthText = new Text (table, SWT.SINGLE);
- widthText.setText (((String [])data.elementAt (index)) [WIDTH_COL]);
- createTextEditor (widthText, widthEditor, WIDTH_COL);
-
- heightText = new Text (table, SWT.SINGLE);
- heightText.setText (((String [])data.elementAt (index)) [HEIGHT_COL]);
- createTextEditor (heightText, heightEditor, HEIGHT_COL);
-
- for (int i=0; i<table.getColumnCount (); i++) {
- Rectangle rect = newItem.getBounds (i);
- if (rect.contains (pt)) {
- switch (i) {
- case COMBO_COL :
- combo.setFocus ();
- break;
- case WIDTH_COL :
- widthText.setFocus ();
- break;
- case HEIGHT_COL :
- heightText.setFocus ();
- break;
- default :
- resetEditors ();
- break;
- }
- }
- }
- }
- });
-
- /* Add listener to add an element to the table */
- add.addSelectionListener(new SelectionAdapter () {
- public void widgetSelected(SelectionEvent e) {
- TableItem item = new TableItem (table, 0);
- String [] insert = new String [] {
- String.valueOf (table.indexOf (item)),
- "Button", "-1", "-1"};
- item.setText (insert);
- data.addElement (insert);
- resetEditors ();
- }
- });
- }
-
- /**
- * Creates the control widgets.
- */
- void createControlWidgets () {
- /* Controls the type of RowLayout */
- Group typeGroup = new Group (controlGroup, SWT.NONE);
- typeGroup.setText (LayoutExample.getResourceString ("Type"));
- typeGroup.setLayout (new GridLayout ());
- GridData data = new GridData (GridData.FILL_HORIZONTAL);
- typeGroup.setLayoutData (data);
- horizontal = new Button (typeGroup, SWT.RADIO);
- horizontal.setText ("SWT.HORIZONTAL");
- horizontal.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
- horizontal.setSelection(true);
- horizontal.addSelectionListener (selectionListener);
- vertical = new Button (typeGroup, SWT.RADIO);
- vertical.setText ("SWT.VERTICAL");
- vertical.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
- vertical.addSelectionListener (selectionListener);
-
- /* Controls the margins and spacing of the RowLayout */
- String [] marginValues = new String [] {"0","3","5","10"};
- Group marginGroup = new Group (controlGroup, SWT.NONE);
- marginGroup.setText (LayoutExample.getResourceString ("Margins_Spacing"));
- data = new GridData (GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);
- data.verticalSpan = 2;
- marginGroup.setLayoutData (data);
- GridLayout layout = new GridLayout ();
- layout.numColumns = 2;
- marginGroup.setLayout (layout);
- new Label (marginGroup, SWT.NONE).setText ("marginRight");
- marginRight = new Combo (marginGroup, SWT.NONE);
- marginRight.setItems (marginValues);
- marginRight.select (1);
- marginRight.setLayoutData (new GridData(GridData.FILL_HORIZONTAL));
- marginRight.addSelectionListener (selectionListener);
- marginRight.addTraverseListener (traverseListener);
- new Label (marginGroup, SWT.NONE).setText ("marginLeft");
- marginLeft = new Combo (marginGroup, SWT.NONE);
- marginLeft.setItems (marginValues);
- marginLeft.select (1);
- marginLeft.setLayoutData (new GridData(GridData.FILL_HORIZONTAL));
- marginLeft.addSelectionListener (selectionListener);
- marginLeft.addTraverseListener(traverseListener);
- new Label (marginGroup, SWT.NONE).setText ("marginTop");
- marginTop = new Combo (marginGroup, SWT.NONE);
- marginTop.setItems (marginValues);
- marginTop.select (1);
- marginTop.setLayoutData (new GridData(GridData.FILL_HORIZONTAL));
- marginTop.addSelectionListener (selectionListener);
- marginTop.addTraverseListener(traverseListener);
- new Label (marginGroup, SWT.NONE).setText ("marginBottom");
- marginBottom = new Combo (marginGroup, SWT.NONE);
- marginBottom.setItems (marginValues);
- marginBottom.select (1);
- marginBottom.setLayoutData (new GridData(GridData.FILL_HORIZONTAL));
- marginBottom.addSelectionListener (selectionListener);
- marginBottom.addTraverseListener(traverseListener);
- new Label (marginGroup, SWT.NONE).setText ("spacing");
- spacing = new Combo (marginGroup, SWT.NONE);
- spacing.setItems (marginValues);
- spacing.select (1);
- spacing.setLayoutData (new GridData(GridData.FILL_HORIZONTAL));
- spacing.addSelectionListener (selectionListener);
- spacing.addTraverseListener(traverseListener);
-
- /* Controls other parameters of the RowLayout */
- Group specGroup = new Group (controlGroup, SWT.NONE);
- specGroup.setText (LayoutExample.getResourceString ("Properties"));
- specGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
- specGroup.setLayout (new GridLayout ());
- wrap = new Button (specGroup, SWT.CHECK);
- wrap.setText ("wrap");
- wrap.setSelection (true);
- wrap.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
- wrap.addSelectionListener (selectionListener);
- pack = new Button (specGroup, SWT.CHECK);
- pack.setText ("pack");
- pack.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
- pack.setSelection (true);
- pack.addSelectionListener (selectionListener);
- justify = new Button (specGroup, SWT.CHECK);
- justify.setText ("justify");
- justify.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
- justify.addSelectionListener (selectionListener);
-
- /* Add common controls */
- super.createControlWidgets ();
-
- /* Position the sash */
- sash.setWeights (new int [] {6,5});
- }
-
- /**
- * Creates the example layout.
- */
- void createLayout () {
- rowLayout = new RowLayout ();
- layoutComposite.setLayout (rowLayout);
- }
-
- /**
- * Disposes the editors without placing their contents
- * into the table.
- */
- void disposeEditors () {
- comboEditor.setEditor (null, null, -1);
- combo.dispose ();
- widthText.dispose ();
- heightText.dispose ();
- }
-
- /**
- * Generates code for the example layout.
- */
- StringBuffer generateLayoutCode () {
- StringBuffer code = new StringBuffer ();
- code.append ("\t\tRowLayout rowLayout = new RowLayout ();\n");
- if (rowLayout.type == SWT.VERTICAL) {
- code.append ("\t\trowLayout.type = SWT.VERTICAL;\n");
- }
- if (rowLayout.wrap == false) {
- code.append ("\t\trowLayout.wrap = false;\n");
- }
- if (rowLayout.pack == false) {
- code.append ("\t\trowLayout.pack = false;\n");
- }
- if (rowLayout.justify == true) {
- code.append ("\t\trowLayout.justify = true;\n");
- }
- if (rowLayout.marginLeft != 3) {
- code.append ("\t\trowLayout.marginLeft = " + rowLayout.marginLeft + ";\n");
- }
- if (rowLayout.marginRight != 3) {
- code.append ("\t\trowLayout.marginRight = " + rowLayout.marginRight + ";\n");
- }
- if (rowLayout.marginTop != 3) {
- code.append ("\t\trowLayout.marginTop = " + rowLayout.marginTop + ";\n");
- }
- if (rowLayout.marginBottom != 3) {
- code.append ("\t\trowLayout.marginBottom = " + rowLayout.marginBottom + ";\n");
- }
- if (rowLayout.spacing != 3) {
- code.append ("\t\trowLayout.spacing = " + rowLayout.spacing + ";\n");
- }
- code.append ("\t\tshell.setLayout (rowLayout);\n");
-
- boolean first = true;
- for (int i = 0; i < children.length; i++) {
- Control control = children [i];
- code.append (getChildCode (control,i));
- RowData data = (RowData) control.getLayoutData ();
- if (data != null) {
- if (data.width != -1 || data.height != -1) {
- code.append ("\t\t");
- if (first) {
- code.append ("RowData ");
- first = false;
- }
- if (data.width == -1) {
- code.append ("data = new RowData (SWT.DEFAULT, " + data.height + ");\n");
- } else if (data.height == -1) {
- code.append ("data = new RowData (" + data.width + ", SWT.DEFAULT);\n");
- } else {
- code.append ("data = new RowData (" + data.width + ", " + data.height + ");\n");
- }
- code.append ("\t\t" + names [i] + ".setLayoutData (data);\n");
- }
- }
- }
- return code;
- }
-
- /**
- * Returns the layout data field names.
- */
- String [] getLayoutDataFieldNames() {
- return new String [] {
- "",
- "Control",
- "width",
- "height"
- };
- }
-
- /**
- * Gets the text for the tab folder item.
- */
- String getTabText () {
- return "RowLayout";
- }
-
- /**
- * Takes information from TableEditors and stores it.
- */
- void resetEditors () {
- resetEditors (false);
- }
-
- void resetEditors (boolean tab) {
- TableItem oldItem = comboEditor.getItem ();
- if (oldItem != null) {
- int row = table.indexOf (oldItem);
- /* Make sure user has entered valid data */
- try {
- new Integer (widthText.getText ()).intValue ();
- } catch (NumberFormatException e) {
- widthText.setText (oldItem.getText (WIDTH_COL));
- }
- try {
- new Integer (heightText.getText ()).intValue ();
- } catch (NumberFormatException e) {
- heightText.setText (oldItem.getText (HEIGHT_COL));
- }
- String [] insert = new String [] {
- String.valueOf (row), combo.getText (), widthText.getText (), heightText.getText ()};
- data.setElementAt (insert, row);
- for (int i = 0 ; i < TOTAL_COLS; i++) {
- oldItem.setText (i, ((String [])data.elementAt (row)) [i]);
- }
- if (!tab) disposeEditors ();
- }
- setLayoutState ();
- refreshLayoutComposite ();
- setLayoutData ();
- layoutComposite.layout (true);
- layoutGroup.layout (true);
- }
-
- /**
- * Sets the layout data for the children of the layout.
- */
- void setLayoutData () {
- Control [] children = layoutComposite.getChildren ();
- TableItem [] items = table.getItems ();
- RowData data;
- int width, height;
- for (int i = 0; i < children.length; i++) {
- width = new Integer (items [i].getText (WIDTH_COL)).intValue ();
- height = new Integer (items [i].getText (HEIGHT_COL)).intValue ();
- data = new RowData (width, height);
- children [i].setLayoutData (data);
- }
-
- }
-
- /**
- * Sets the state of the layout.
- */
- void setLayoutState () {
- /* Set the type of layout */
- if (vertical.getSelection ()) {
- rowLayout.type = SWT.VERTICAL;
- } else {
- rowLayout.type = SWT.HORIZONTAL;
- }
-
- /* Set the margins and spacing */
- try {
- rowLayout.marginRight = new Integer (marginRight.getText ()).intValue ();
- } catch (NumberFormatException e) {
- rowLayout.marginRight = 3;
- marginRight.select (1);
- }
- try {
- rowLayout.marginLeft = new Integer (marginLeft.getText ()).intValue ();
- } catch (NumberFormatException e) {
- rowLayout.marginLeft = 3;
- marginLeft.select (1);
- }
- try {
- rowLayout.marginTop = new Integer (marginTop.getText ()).intValue ();
- } catch (NumberFormatException e) {
- rowLayout.marginTop = 3;
- marginTop.select (1);
- }
- try {
- rowLayout.marginBottom = new Integer (marginBottom.getText ()).intValue ();
- } catch (NumberFormatException e) {
- rowLayout.marginBottom = 3;
- marginBottom.select (1);
- }
- try {
- rowLayout.spacing = new Integer (spacing.getText ()).intValue ();
- } catch (NumberFormatException e) {
- rowLayout.spacing = 3;
- spacing.select (1);
- }
-
- /* Set the other layout properties */
- rowLayout.wrap = wrap.getSelection ();
- rowLayout.pack = pack.getSelection ();
- rowLayout.justify = justify.getSelection ();
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/Tab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/Tab.java
deleted file mode 100644
index 05f3c074b0..0000000000
--- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/Tab.java
+++ /dev/null
@@ -1,646 +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 {
- /* Common groups and composites */
- Composite tabFolderPage;
- SashForm sash;
- Group layoutGroup, controlGroup, childGroup;
- /* The composite that contains the example layout */
- Composite layoutComposite;
- /* Common controls for modifying the example layout */
- String [] names;
- Control [] children;
- Button size, add, delete, clear, code;
- /* Common values for working with TableEditors */
- Table table;
- int index;
- TableItem newItem, lastSelected;
- Vector data = new Vector ();
- /* Controlling instance */
- final LayoutExample instance;
-
- /* Listeners */
- SelectionListener selectionListener = new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- resetEditors ();
- }
- };
-
- TraverseListener traverseListener = new TraverseListener () {
- public void keyTraversed (TraverseEvent e) {
- if (e.detail == SWT.TRAVERSE_RETURN) {
- e.doit = false;
- resetEditors ();
- }
- }
- };
-
- /**
- * Creates the Tab within a given instance of LayoutExample.
- */
- Tab(LayoutExample instance) {
- this.instance = instance;
- }
-
- /**
- * Creates the "child" group. This is the group that allows
- * you to add children to the layout. It exists within the
- * controlGroup.
- */
- void createChildGroup () {
- childGroup = new Group (controlGroup, SWT.NONE);
- childGroup.setText (LayoutExample.getResourceString("Children"));
- GridLayout layout = new GridLayout ();
- layout.numColumns = 3;
- childGroup.setLayout (layout);
- GridData data = new GridData (GridData.FILL_BOTH);
- data.horizontalSpan = 2;
- childGroup.setLayoutData (data);
- createChildWidgets ();
- }
-
- /**
- * Creates the controls for modifying the "children"
- * table, and the table itself.
- * Subclasses override this method to augment the
- * standard table.
- */
- void createChildWidgets () {
- /* Controls for adding and removing children */
- add = new Button (childGroup, SWT.PUSH);
- add.setText (LayoutExample.getResourceString ("Add"));
- add.setLayoutData(new GridData (GridData.FILL_HORIZONTAL));
- delete = new Button (childGroup, SWT.PUSH);
- delete.setText (LayoutExample.getResourceString ("Delete"));
- delete.setLayoutData(new GridData (GridData.FILL_HORIZONTAL));
- delete.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- resetEditors ();
- int [] selected = table.getSelectionIndices ();
- table.remove (selected);
- /* Refresh the control indices of the table */
- for (int i = 0; i < table.getItemCount(); i++) {
- table.getItem (i).setText (0, String.valueOf (i));
- }
- refreshLayoutComposite ();
- layoutComposite.layout (true);
- layoutGroup.layout (true);
- }
- });
- clear = new Button (childGroup, SWT.PUSH);
- clear.setText (LayoutExample.getResourceString ("Clear"));
- clear.setLayoutData(new GridData (GridData.FILL_HORIZONTAL));
- clear.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- resetEditors ();
- children = layoutComposite.getChildren ();
- for (int i = 0; i < children.length; i++) {
- children [i].dispose ();
- }
- table.removeAll ();
- data.clear ();
- children = new Control [0];
- layoutGroup.layout (true);
- }
- });
- /* Create the "children" table */
- table = new Table (childGroup, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.HIDE_SELECTION);
- table.setLinesVisible (true);
- table.setHeaderVisible (true);
- GridData gridData = new GridData (GridData.FILL_BOTH);
- gridData.horizontalSpan = 3;
- gridData.heightHint = 150;
- table.setLayoutData (gridData);
- table.addTraverseListener (traverseListener);
-
- /* Add columns to the table */
- String [] columnHeaders = getLayoutDataFieldNames ();
- for (int i = 0; i < columnHeaders.length; i++) {
- TableColumn column = new TableColumn(table, SWT.NONE);
- column.setText (columnHeaders [i]);
- if (i == 0) column.setWidth (20);
- else if (i == 1) column.setWidth (80);
- else column.pack ();
- }
- }
-
- /**
- * Creates the TableEditor with a CCombo in the first column
- * of the table. This CCombo lists all the controls that
- * the user can select to place on their layout.
- */
- void createComboEditor (CCombo combo, TableEditor comboEditor) {
- combo.setItems (new String [] {
- "Button", "Canvas", "Combo", "Composite",
- "CoolBar", "Group", "Label", "List",
- "ProgressBar", "Scale", "Slider", "StyledText",
- "Table", "Text", "ToolBar", "Tree"});
- combo.setText (newItem.getText (1));
-
- /* Set up editor */
- comboEditor.horizontalAlignment = SWT.LEFT;
- comboEditor.grabHorizontal = true;
- comboEditor.minimumWidth = 50;
- comboEditor.setEditor (combo, newItem, 1);
-
- /* Add listener */
- combo.addTraverseListener(new TraverseListener() {
- public void keyTraversed(TraverseEvent e) {
- if (e.detail == SWT.TRAVERSE_TAB_NEXT || e.detail == SWT.TRAVERSE_RETURN) {
- resetEditors ();
- }
- if (e.detail == SWT.TRAVERSE_ESCAPE) {
- disposeEditors ();
- }
- }
- });
- }
-
- /**
- * Creates the "control" group. This is the group on the
- * right half of each example tab. It contains controls
- * for adding new children to the layoutComposite, and
- * for modifying the children's layout data.
- */
- void createControlGroup () {
- controlGroup = new Group (sash, SWT.NONE);
- controlGroup.setText (LayoutExample.getResourceString("Parameters"));
- GridLayout layout = new GridLayout ();
- layout.numColumns = 2;
- controlGroup.setLayout (layout);
- size = new Button (controlGroup, SWT.CHECK);
- size.setText (LayoutExample.getResourceString ("Preferred_Size"));
- size.setSelection (false);
- size.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- resetEditors ();
- if (size.getSelection ()) {
- layoutComposite.setLayoutData (new GridData ());
- layoutGroup.layout (true);
- } else {
- layoutComposite.setLayoutData (new GridData (GridData.FILL_BOTH));
- layoutGroup.layout (true);
- }
- }
- });
- GridData data = new GridData (GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
- size.setLayoutData (data);
- createControlWidgets ();
- }
-
- /**
- * Creates the "control" widget children.
- * Subclasses override this method to augment
- * the standard controls created.
- */
- void createControlWidgets () {
- createChildGroup ();
- code = new Button (controlGroup, SWT.PUSH);
- code.setText (LayoutExample.getResourceString ("Code"));
- GridData gridData = new GridData (GridData.HORIZONTAL_ALIGN_CENTER | GridData.GRAB_HORIZONTAL);
- gridData.horizontalSpan = 2;
- code.setLayoutData (gridData);
- code.addSelectionListener (new SelectionAdapter () {
- public void widgetSelected (SelectionEvent e) {
- final Shell shell = new Shell ();
- shell.setText (LayoutExample.getResourceString ("Generated_Code"));
- shell.setLayout (new FillLayout ());
- final StyledText text = new StyledText (shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
- String layoutCode = generateCode ().toString ();
- if (layoutCode.length () == 0) return;
- text.setText (layoutCode);
-
- Menu bar = new Menu (shell, SWT.BAR);
- shell.setMenuBar (bar);
- MenuItem editItem = new MenuItem (bar, SWT.CASCADE);
- editItem.setText (LayoutExample.getResourceString ("Edit"));
- Menu menu = new Menu (bar);
- MenuItem select = new MenuItem (menu, SWT.PUSH);
- select.setText (LayoutExample.getResourceString ("Select_All"));
- select.setAccelerator (SWT.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 (400, 500);
- shell.open ();
- Display display = shell.getDisplay ();
- while (!shell.isDisposed ())
- if (!display.readAndDispatch ()) display.sleep ();
- }
- });
- }
-
- /**
- * Creates the example layout.
- * Subclasses override this method.
- */
- void createLayout () {
- }
-
- /**
- * Creates the composite that contains the example layout.
- */
- void createLayoutComposite () {
- layoutComposite = new Composite (layoutGroup, SWT.BORDER);
- layoutComposite.setLayoutData (new GridData (GridData.FILL_BOTH));
- createLayout ();
- }
-
- /**
- * Creates the layout group. This is the group on the
- * left half of each example tab.
- */
- void createLayoutGroup () {
- layoutGroup = new Group (sash, SWT.NONE);
- layoutGroup.setText (LayoutExample.getResourceString("Layout"));
- layoutGroup.setLayout (new GridLayout ());
- createLayoutComposite ();
- }
-
- /**
- * Creates the tab folder page.
- *
- * @param tabFolder org.eclipse.swt.widgets.TabFolder
- * @return the new page for the tab folder
- */
- Composite createTabFolderPage (TabFolder tabFolder) {
- /* Create a two column page with a SashForm*/
- tabFolderPage = new Composite (tabFolder, SWT.NONE);
- tabFolderPage.setLayout (new FillLayout ());
- sash = new SashForm (tabFolderPage, SWT.HORIZONTAL);
-
- /* Create the "layout" and "control" columns */
- createLayoutGroup ();
- createControlGroup ();
-
- return tabFolderPage;
- }
-
- /**
- * Creates the TableEditor with a Text in the given column
- * of the table.
- */
- void createTextEditor (Text text, TableEditor textEditor, int column) {
- text.setFont (table.getFont ());
- text.selectAll ();
- textEditor.horizontalAlignment = SWT.LEFT;
- textEditor.grabHorizontal = true;
- textEditor.setEditor (text, newItem, column);
-
- text.addTraverseListener(new TraverseListener() {
- public void keyTraversed(TraverseEvent e) {
- if (e.detail == SWT.TRAVERSE_TAB_NEXT) {
- resetEditors (true);
- }
- if (e.detail == SWT.TRAVERSE_ESCAPE) {
- disposeEditors ();
- }
- }
- });
- }
-
- /**
- * Disposes the editors without placing their contents
- * into the table.
- * Subclasses override this method.
- */
- void disposeEditors () {
- }
-
- /**
- * Generates the code needed to produce the example layout.
- */
- StringBuffer generateCode () {
- /* Make sure all information being entered is stored in the table */
- resetEditors ();
-
- /* Get names for controls in the layout */
- names = new String [children.length];
- for (int i = 0; i < children.length; i++) {
- Control control = children [i];
- String controlClass = control.getClass ().toString ();
- String controlType = controlClass.substring (controlClass.lastIndexOf ('.') + 1);
- names [i] = controlType.toLowerCase () + i;
- }
-
- /* Create StringBuffer containing the code */
- StringBuffer code = new StringBuffer ();
- code.append ("import org.eclipse.swt.*;\n");
- code.append ("import org.eclipse.swt.custom.*;\n");
- code.append ("import org.eclipse.swt.graphics.*;\n");
- code.append ("import org.eclipse.swt.layout.*;\n");
- code.append ("import org.eclipse.swt.widgets.*;\n\n");
- code.append ("public class MyLayout {\n");
- code.append ("\tpublic static void main (String [] args) {\n");
- code.append ("\t\tDisplay display = new Display ();\n");
- code.append ("\t\tShell shell = new Shell (display);\n");
-
- /* Get layout specific code */
- code.append (generateLayoutCode ());
-
- code.append ("\n\t\tshell.pack ();\n\t\tshell.open ();\n\n");
- code.append ("\t\twhile (!shell.isDisposed ()) {\n");
- code.append ("\t\t\tif (!display.readAndDispatch ())\n");
- code.append ("\t\t\t\tdisplay.sleep ();\n\t\t}\n\t\tdisplay.dispose ();\n\t}\n}");
-
- return code;
- }
-
- /**
- * Generates layout specific code for the example layout.
- * Subclasses override this method.
- */
- StringBuffer generateLayoutCode () {
- return new StringBuffer ();
- }
-
- /**
- * Returns the StringBuffer for the code which will
- * create a child control.
- */
- StringBuffer getChildCode (Control control, int i) {
- StringBuffer code = new StringBuffer ();
- /* Find the type of control */
- String controlClass = control.getClass().toString ();
- String controlType = controlClass.substring (controlClass.lastIndexOf ('.') + 1);
- /* Find the style of the control */
- String styleString;
- if (controlType.equals ("Button")) {
- styleString = "SWT.PUSH";
- } else if (controlType.equals ("Text")) {
- styleString = "SWT.BORDER";
- } else if (controlType.equals ("StyledText")) {
- styleString = "SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL";
- } else if (controlType.equals ("Canvas") || controlType.equals ("Composite") ||
- controlType.equals ("Table") || controlType.equals ("StyledText") ||
- controlType.equals ("ToolBar") || controlType.equals ("Tree") ||
- controlType.equals ("List")) {
- styleString = "SWT.BORDER";
- } else styleString = "SWT.NONE";
- /* Write out the control being declared */
- code.append ("\n\t\t" + controlType + " " + names [i] +
- " = new " + controlType + " (shell, " + styleString + ");\n");
- /* Add items to those controls that need items */
- if (controlType.equals ("Combo") || controlType.equals ("List")) {
- code.append ("\t\t" + names [i] + ".setItems (new String [] {\"Item 1\", \"Item 2\", \"Item 2\"});\n");
- } else if (controlType.equals ("Table")) {
- code.append ("\t\t" + names [i] + ".setLinesVisible (true);\n");
- for (int j = 1; j < 3; j++) {
- code.append ("\t\tTableItem tableItem" + j + " = new TableItem (" + names [i] + ", SWT.NONE);\n");
- code.append ("\t\ttableItem" + j + ".setText (\"Item" + j + "\");\n");
- }
- } else if (controlType.equals ("Tree")) {
- for (int j = 1; j < 3; j++) {
- code.append ("\t\tTreeItem treeItem" + j + " = new TreeItem (" + names [i] + ", SWT.NONE);\n");
- code.append ("\t\ttreeItem" + j + ".setText (\"Item" + j + "\");\n");
- }
- } else if (controlType.equals ("ToolBar")) {
- for (int j = 1; j < 3; j++) {
- code.append ("\t\tToolItem toolItem" + j + " = new ToolItem (" + names [i] + ", SWT.NONE);\n");
- code.append ("\t\ttoolItem" + j + ".setText (\"Item" + j + "\");\n");
- }
- } else if (controlType.equals ("CoolBar")) {
- code.append ("\t\tToolBar coolToolBar = new ToolBar (" + names [i] + ", SWT.BORDER);\n");
- code.append ("\t\tToolItem coolToolItem = new ToolItem (coolToolBar, SWT.NONE);\n");
- code.append ("\t\tcoolToolItem.setText (\"Item 1\");\n");
- code.append ("\t\tcoolToolItem = new ToolItem (coolToolBar, SWT.NONE);\n");
- code.append ("\t\tcoolToolItem.setText (\"Item 2\");\n");
- code.append ("\t\tCoolItem coolItem1 = new CoolItem (" + names [i] + ", SWT.NONE);\n");
- code.append ("\t\tcoolItem1.setControl (coolToolBar);\n");
- code.append ("\t\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 ("StyledText") ||
- controlType.equals ("Text")) {
- code.append ("\t\t" + names [i] + ".setText (\"" + names [i] + "\");\n");
- }
- return code;
- }
-
- /**
- * Returns the layout data field names.
- * Subclasses override this method.
- */
- String [] getLayoutDataFieldNames () {
- return new String [] {};
- }
-
- /**
- * Gets the text for the tab folder item.
- * Subclasses override this method.
- */
- String getTabText () {
- return "";
- }
-
- /**
- * Refreshes the composite and draws all controls
- * in the layout example.
- */
- void refreshLayoutComposite () {
- /* Remove children that are already 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);
- if (control.equals ("Button")) {
- Button button = new Button (layoutComposite, SWT.PUSH);
- button.setText (LayoutExample.getResourceString ("Button_Index", new String [] {new Integer (i).toString ()}));
- children [i] = button;
- } else if (control.equals ("Canvas")) {
- Canvas canvas = new Canvas (layoutComposite, SWT.BORDER);
- children [i] = canvas;
- } else if (control.equals ("Combo")) {
- Combo combo = new Combo (layoutComposite, SWT.NONE);
- combo.setItems (itemValues);
- combo.setText (LayoutExample.getResourceString ("Combo_Index", new String [] {new Integer (i).toString ()}));
- children [i] = combo;
- } else if (control.equals ("Composite")) {
- Composite composite = new Composite (layoutComposite, SWT.BORDER);
- children [i] = composite;
- } else if (control.equals ("CoolBar")) {
- CoolBar coolBar = new CoolBar (layoutComposite, SWT.NONE);
- ToolBar toolBar = new ToolBar (coolBar, SWT.BORDER);
- ToolItem item = new ToolItem (toolBar, 0);
- item.setText (LayoutExample.getResourceString ("Item",new String [] {"1"}));
- item = new ToolItem (toolBar, 0);
- item.setText (LayoutExample.getResourceString ("Item",new String [] {"2"}));
- CoolItem coolItem1 = new CoolItem (coolBar, 0);
- coolItem1.setControl (toolBar);
- toolBar = new ToolBar (coolBar, SWT.BORDER);
- item = new ToolItem (toolBar, 0);
- item.setText (LayoutExample.getResourceString ("Item",new String [] {"3"}));
- item = new ToolItem (toolBar, 0);
- item.setText (LayoutExample.getResourceString ("Item",new String [] {"4"}));
- CoolItem coolItem2 = new CoolItem (coolBar, 0);
- coolItem2.setControl (toolBar);
- Point size = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT);
- coolItem1.setSize(coolItem1.computeSize (size.x, size.y));
- coolItem2.setSize(coolItem2.computeSize (size.x, size.y));
- coolBar.setSize(coolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT));
- children [i] = coolBar;
- } else if (control.equals ("Group")) {
- Group group = new Group (layoutComposite, SWT.NONE);
- group.setText (LayoutExample.getResourceString ("Group_Index", new String [] {new Integer (i).toString ()}));
- children [i] = group;
- } else if (control.equals ("Label")) {
- Label label = new Label (layoutComposite, SWT.NONE);
- label.setText (LayoutExample.getResourceString ("Label_Index", new String [] {new Integer (i).toString ()}));
- children [i] = label;
- } else if (control.equals ("List")) {
- List list = new List (layoutComposite, SWT.BORDER);
- list.setItems (itemValues);
- children [i] = list;
- } else if (control.equals ("ProgressBar")) {
- ProgressBar progress = new ProgressBar (layoutComposite, SWT.NONE);
- progress.setSelection (50);
- children [i] = progress;
- } else if (control.equals ("Scale")) {
- Scale scale = new Scale (layoutComposite, SWT.NONE);
- children [i] = scale;
- } else if (control.equals ("Slider")) {
- Slider slider = new Slider (layoutComposite, SWT.NONE);
- children [i] = slider;
- } else if (control.equals ("StyledText")) {
- StyledText styledText = new StyledText (layoutComposite, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
- styledText.setText (LayoutExample.getResourceString ("StyledText_Index", new String [] {new Integer (i).toString ()}));
- children [i] = styledText;
- } else if (control.equals ("Table")) {
- Table table = new Table (layoutComposite, SWT.BORDER);
- table.setLinesVisible (true);
- TableItem item1 = new TableItem (table, 0);
- item1.setText (LayoutExample.getResourceString ("Item",new String [] {"1"}));
- TableItem item2 = new TableItem (table, 0);
- item2.setText (LayoutExample.getResourceString ("Item",new String [] {"2"}));
- children [i] = table;
- } else if (control.equals ("Text")) {
- Text text = new Text (layoutComposite, SWT.BORDER);
- text.setText (LayoutExample.getResourceString ("Text_Index", new String [] {new Integer (i).toString ()}));
- children [i] = text;
- } else if (control.equals ("ToolBar")) {
- ToolBar toolBar = new ToolBar (layoutComposite, SWT.BORDER);
- ToolItem item1 = new ToolItem (toolBar, 0);
- item1.setText (LayoutExample.getResourceString ("Item",new String [] {"1"}));
- ToolItem item2 = new ToolItem (toolBar, 0);
- item2.setText (LayoutExample.getResourceString ("Item",new String [] {"2"}));
- children [i] = toolBar;
- } else {
- Tree tree = new Tree (layoutComposite, SWT.BORDER);
- TreeItem item1 = new TreeItem (tree, 0);
- item1.setText (LayoutExample.getResourceString ("Item",new String [] {"1"}));
- TreeItem item2 = new TreeItem (tree, 0);
- item2.setText (LayoutExample.getResourceString ("Item",new String [] {"2"}));
- children [i] = tree;
- }
- }
- }
-
- /**
- * Takes information from TableEditors and stores it.
- * Subclasses override this method.
- */
- void resetEditors () {
- resetEditors (false);
- }
-
- void resetEditors (boolean tab) {
- }
-
- /**
- * Sets the layout data for the children of the layout.
- * Subclasses override this method.
- */
- void setLayoutData () {
- }
-
- /**
- * Sets the state of the layout.
- * Subclasses override this method.
- */
- void setLayoutState () {
- }
-}
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/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