/******************************************************************************* * Copyright (c) 2009 EclipseSource and others. All rights reserved. * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * EclipseSource - initial API and implementation ******************************************************************************/ package org.eclipse.rap.examples.pages; import org.eclipse.rap.examples.IExamplePage; import org.eclipse.rwt.graphics.Graphics; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CLabel; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.*; public class LabelExample implements IExamplePage { public void createControl( final Composite parent ) { parent.setLayout( ExampleUtil.createGridLayout( 1, false, 10, 20 ) ); createTextLabels( parent ); createAlignedLabels( parent ); createImageLabels( parent ); createCLabels( parent ); createLinks( parent ); } private void createTextLabels( final Composite parent ) { Group textGroup = new Group( parent, SWT.NONE ); textGroup.setLayoutData( new GridData( SWT.FILL, SWT.TOP, true, false ) ); textGroup.setText( "Text Labels" ); textGroup.setLayout( ExampleUtil.createGridLayout( 2, false, 10, 20 ) ); Label simpleLabel = new Label( textGroup, SWT.NONE ); simpleLabel.setText( "A simple text label." ); Label wrappedLabel = new Label( textGroup, SWT.BORDER | SWT.WRAP ); wrappedLabel.setText( "A fixed width label with a long text that wraps." + " A long text that wraps. A long text that wraps." + " A long text that wraps." ); GridData wrappedData = new GridData( 200, SWT.DEFAULT ); wrappedData.verticalSpan = 2; wrappedLabel.setLayoutData( wrappedData ); Label borderLabel = new Label( textGroup, SWT.BORDER ); borderLabel.setText( "A label with a border." ); } private void createAlignedLabels( final Composite parent ) { Group group = new Group( parent, SWT.NONE ); group.setLayoutData( new GridData( SWT.FILL, SWT.TOP, true, false ) ); group.setText( "Alignment" ); group.setLayout( ExampleUtil.createGridLayout( 3, false, 10, 20 ) ); Label leftLabel = new Label( group, SWT.BORDER | SWT.LEFT ); leftLabel.setText( "These lines\nare\nleft-aligned" ); leftLabel.setLayoutData( new GridData( SWT.FILL, SWT.TOP, true, false ) ); Label centerLabel = new Label( group, SWT.BORDER | SWT.CENTER ); centerLabel.setText( "These lines\nare\ncentered" ); centerLabel.setLayoutData( new GridData( SWT.FILL, SWT.TOP, true, false ) ); Label rightLabel = new Label( group, SWT.BORDER | SWT.RIGHT ); rightLabel.setText( "These lines\nare\nright-aligned" ); rightLabel.setLayoutData( new GridData( SWT.FILL, SWT.TOP, true, false ) ); } private void createImageLabels( final Composite parent ) { Group group = new Group( parent, SWT.NONE ); group.setText( "Image Labels" ); group.setLayoutData( new GridData( SWT.FILL, SWT.TOP, true, false ) ); group.setLayout( ExampleUtil.createGridLayout( 1, false, 0, 0 ) ); Composite comp = new Composite( group, SWT.NONE ); comp.setLayoutData( new GridData( SWT.CENTER, SWT.TOP, true, false ) ); comp.setLayout( ExampleUtil.createGridLayout( 5, false, 10, 20 ) ); ClassLoader classLoader = getClass().getClassLoader(); Image image1 = Graphics.getImage( "resources/emblem-system.png", classLoader ); Image image2 = Graphics.getImage( "resources/go-bottom.png", classLoader ); Image image3 = Graphics.getImage( "resources/system-search.png", classLoader ); Label imageLabel1 = new Label( comp, SWT.NONE ); imageLabel1.setImage( image1 ); new Label( comp, SWT.SEPARATOR | SWT.VERTICAL ); Label imageLabel2 = new Label( comp, SWT.NONE ); imageLabel2.setImage( image2 ); new Label( comp, SWT.SEPARATOR | SWT.VERTICAL ); Label imageLabel3 = new Label( comp, SWT.NONE ); imageLabel3.setImage( image3 ); } private void createCLabels( final Composite parent ) { Group group = new Group( parent, SWT.NONE ); group.setText( "CLabel" ); group.setLayoutData( new GridData( SWT.FILL, SWT.TOP, true, false ) ); group.setLayout( ExampleUtil.createGridLayout( 3, false, 10, 20 ) ); ClassLoader classLoader = getClass().getClassLoader(); Image image4 = Graphics.getImage( "resources/button-image.gif", classLoader ); CLabel cLabel1 = new CLabel( group, SWT.NONE ); cLabel1.setText( "Image and text" ); cLabel1.setImage( image4 ); cLabel1.setAlignment( SWT.CENTER ); cLabel1.setLayoutData( new GridData( SWT.FILL, SWT.TOP, true, false ) ); CLabel cLabel2 = new CLabel( group, SWT.SHADOW_IN ); cLabel2.setText( "Shadow-in style" ); cLabel2.setImage( image4 ); cLabel2.setAlignment( SWT.CENTER ); cLabel2.setLayoutData( new GridData( SWT.FILL, SWT.TOP, true, false ) ); CLabel cLabel3 = new CLabel( group, SWT.SHADOW_OUT ); cLabel3.setText( "Shadow-out style" ); cLabel3.setImage( image4 ); cLabel3.setAlignment( SWT.CENTER ); cLabel3.setLayoutData( new GridData( SWT.FILL, SWT.TOP, true, false ) ); } private void createLinks( final Composite parent ) { Group group = new Group( parent, SWT.NONE ); group.setText( "Links" ); group.setLayoutData( new GridData( SWT.FILL, SWT.TOP, true, false ) ); group.setLayout( ExampleUtil.createGridLayout( 1, false, 10, 20 ) ); Link link = new Link( group, SWT.NONE ); link.setText( "A link widget with <a>two</a> embedded <a>hyperlinks</a>" ); final Label linkLabel = new Label( group, SWT.NONE ); linkLabel.setLayoutData( new GridData( SWT.FILL, SWT.TOP, true, false ) ); link.addSelectionListener( new SelectionAdapter() { public void widgetSelected( final SelectionEvent e ) { linkLabel.setText( "clicked \"" + e.text + "\"" ); } } ); } }