/** * DecorDemo.java * * Copyright � 1998-2011 Research In Motion Limited * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Note: For the sake of simplicity, this sample application may not leverage * resource bundles and resource strings. However, it is STRONGLY recommended * that application developers make use of the localization features available * within the BlackBerry development platform to ensure a seamless application * experience across a variety of languages and geographies. For more information * on localizing your application, please refer to the BlackBerry Java Development * Environment Development Guide associated with this release. */ package com.rim.samples.device.ui.decordemo; import net.rim.device.api.system.Bitmap; import net.rim.device.api.ui.Color; import net.rim.device.api.ui.Field; import net.rim.device.api.ui.UiApplication; import net.rim.device.api.ui.XYEdges; import net.rim.device.api.ui.component.Dialog; import net.rim.device.api.ui.component.RichTextField; import net.rim.device.api.ui.container.MainScreen; import net.rim.device.api.ui.decor.Background; import net.rim.device.api.ui.decor.BackgroundFactory; import net.rim.device.api.ui.decor.Border; import net.rim.device.api.ui.decor.BorderFactory; /** * This sample application shows functionality for the * net.rim.device.api.ui.decor package and all of its classes. */ public final class DecorDemo extends UiApplication { /** * Entry point for application * * @param args * Command line arguments (not used) */ public static void main(final String[] args) { // Create a new instance of the application and make the currently // running thread the application's event dispatch thread. final DecorDemo theApp = new DecorDemo(); theApp.enterEventDispatcher(); } // Constructor public DecorDemo() { final DecorDemoScreen screen = new DecorDemoScreen(); pushScreen(screen); } } /** * This class is the main screen of the application */ final class DecorDemoScreen extends MainScreen { /** * Creates a new DecorDemoScreen object */ public DecorDemoScreen() { // XYEdge objects are used to represent different padding configurations // Each integer represents the amount of space between the box and // border // The four parameters of an XYEdge object represents each edge, // clockwise starting at the top final XYEdges thickPadding = new XYEdges(10, 10, 10, 10); final XYEdges noPadding = new XYEdges(0, 0, 0, 0); // Sample padding objects: // XYEdges verticalPadding = new XYEdges(10, 0, 10, 0); // XYEdges horizontalPadding = new XYEdges(0, 10, 0, 10); // XYEdges can also be used to represent colors final XYEdges multiColors = new XYEdges(Color.BLUEVIOLET, Color.AZURE, Color.DARKRED, Color.KHAKI); final XYEdges pinkColors = new XYEdges(Color.HOTPINK, Color.HOTPINK, Color.HOTPINK, Color.HOTPINK); final XYEdges blueColors = new XYEdges(Color.MIDNIGHTBLUE, Color.MIDNIGHTBLUE, Color.MIDNIGHTBLUE, Color.MIDNIGHTBLUE); final XYEdges oliveColors = new XYEdges(Color.OLIVE, Color.OLIVE, Color.OLIVE, Color.OLIVE); // Set the title of the application setTitle("D�cor Demo"); add(new RichTextField(Field.NON_FOCUSABLE)); // Sample text field with a thick and solid rounded border // and single solid color background. final RichTextField simpleField = new RichTextField("Solid rounded border, solid background"); // Create border and background objects final Border roundedBorder = BorderFactory.createRoundedBorder(thickPadding, Border.STYLE_SOLID); final Background solidBackground = BackgroundFactory.createSolidBackground(Color.LIGHTSTEELBLUE); // Set the objects for use simpleField.setBorder(roundedBorder); simpleField.setBackground(solidBackground); // Add the field to the screen add(simpleField); add(new RichTextField(Field.NON_FOCUSABLE)); // Sample text field with a thick and dotted rounded border // and single color transparent background. final RichTextField transparentField = new RichTextField( "Dotted rounded border, transparent background"); final Border dottedBorder = BorderFactory.createRoundedBorder(thickPadding, Border.STYLE_DOTTED); final Background transparentBackground = BackgroundFactory.createSolidTransparentBackground( Color.LIGHTSTEELBLUE, 50); transparentField.setBorder(dottedBorder); transparentField.setBackground(transparentBackground); add(transparentField); add(new RichTextField(Field.NON_FOCUSABLE)); // Sample text field with a thick and dashed border // and gradient background. final RichTextField gradientField = new RichTextField("Dashed simple border, gradient background"); final Border dashedBorder = BorderFactory.createSimpleBorder(thickPadding, blueColors, Border.STYLE_DASHED); final Background gradientBackground = BackgroundFactory.createLinearGradientBackground(Color.RED, Color.GREEN, Color.BLUE, Color.WHITE); gradientField.setBorder(dashedBorder); gradientField.setBackground(gradientBackground); add(gradientField); add(new RichTextField(Field.NON_FOCUSABLE)); // Sample text field with a no padding dotted border and no background. final RichTextField noPaddingField = new RichTextField("Dotted simple border, no padding"); final Border noPaddingBorder = BorderFactory.createSimpleBorder(noPadding, oliveColors, Border.STYLE_DOTTED); noPaddingField.setBorder(noPaddingBorder); add(noPaddingField); add(new RichTextField(Field.NON_FOCUSABLE)); // Sample text field with a thick bevel border and bitmap background. final RichTextField bevelAndBitmapField = new RichTextField("Bevel border, bitmap background"); final Border bevelBorder = BorderFactory.createBevelBorder(thickPadding, multiColors, pinkColors); // Attempt to load a bitmap background try { final Background bitmapBackground = BackgroundFactory.createBitmapBackground(Bitmap .getBitmapResource("smiley.bmp"), Background.POSITION_X_CENTER, Background.POSITION_Y_CENTER, Background.REPEAT_BOTH); bevelAndBitmapField.setBackground(bitmapBackground); } catch (final IllegalArgumentException e) { UiApplication.getUiApplication().invokeLater(new Runnable() { public void run() { Dialog.alert(e.toString()); } }); } bevelAndBitmapField.setBorder(bevelBorder); add(bevelAndBitmapField); } }