/******************************************************************************* * Copyright (c) 2009, 2013 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; import java.io.File; import org.eclipse.rap.rwt.RWT; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; public final class ExampleUtil { private static final int DEFAULT_SPACE = 10; private static final String DATA_DIR_PROP = "org.eclipse.rap.examples.dataDir"; private static final String DEFAULT_DATA_DIR = "/data/rapdemo"; public static File getDataDirectory() { return new File( System.getProperty( DATA_DIR_PROP, DEFAULT_DATA_DIR ) ); } public static Composite initPage( String title, Composite parent ) { Composite pageComp = new Composite( parent, SWT.NONE ); pageComp.setLayout( ExampleUtil.createGridLayoutWithoutMargin( 1, false ) ); Label label = createHeadlineLabel( pageComp, title ); label.setLayoutData( createHeadlineLayoutData() ); Composite contentComp = new Composite( pageComp, SWT.NONE ); contentComp.setLayoutData( ExampleUtil.createFillData() ); return contentComp; } public static void createHeading( Composite parent, String text, int horizontalSpan ) { Label label = new Label( parent, SWT.NONE ); label.setText( text ); label.setData( RWT.CUSTOM_VARIANT, "heading" ); GridData labelLayoutData = new GridData(); labelLayoutData.horizontalSpan = horizontalSpan; label.setLayoutData( labelLayoutData ); } public static GridLayout createMainLayout( int numColumns ) { GridLayout result = new GridLayout( numColumns, true ); result.marginWidth = 0; result.marginHeight = 0; result.marginTop = 0; result.verticalSpacing = 0; result.horizontalSpacing = 60; return result; } public static GridLayout createMainLayout( int numColumns, int horzSpacing ) { GridLayout result = new GridLayout( numColumns, true ); result.marginWidth = 0; result.marginHeight = 0; result.marginTop = 0; result.verticalSpacing = 0; result.horizontalSpacing = horzSpacing; return result; } public static GridLayout createGridLayout( int numColumns, boolean makeColsEqualWidth, boolean setTopMargin, boolean setVertSpacing ) { GridLayout result = new GridLayout( numColumns, makeColsEqualWidth ); result.marginWidth = DEFAULT_SPACE; result.marginHeight = 0; result.marginBottom = DEFAULT_SPACE; result.horizontalSpacing = DEFAULT_SPACE; if( setTopMargin ) { result.marginTop = DEFAULT_SPACE; } if( setVertSpacing ) { result.verticalSpacing = DEFAULT_SPACE; } return result; } public static GridLayout createGridLayoutWithoutMargin( int numColumns, boolean makeColsEqualWidth ) { GridLayout result = new GridLayout( numColumns, makeColsEqualWidth ); result.marginHeight = 0; result.marginWidth = 0; return result; } public static RowLayout createRowLayout( int type, boolean setMargin ) { RowLayout result = new RowLayout( type ); result.marginTop = 0; result.marginLeft = 0; result.marginHeight = 0; if( setMargin ) { result.marginBottom = DEFAULT_SPACE; result.marginWidth = DEFAULT_SPACE; } else { result.marginBottom = 0; result.marginWidth = 0; } return result; } public static FillLayout createFillLayout( boolean setMargin ) { FillLayout result = new FillLayout(); if( setMargin ) { result.marginWidth = DEFAULT_SPACE; result.marginHeight = DEFAULT_SPACE; } return result; } public static GridData createHorzFillData() { return new GridData( SWT.FILL, SWT.TOP, true, false ); } public static GridData createFillData() { return new GridData( SWT.FILL, SWT.FILL, true, true ); } private static Label createHeadlineLabel( Composite parent, String text ) { Label label = new Label( parent, SWT.NONE ); label.setText( text.replace( "&", "&&" ) ); label.setData( RWT.CUSTOM_VARIANT, "pageHeadline" ); return label; } private static GridData createHeadlineLayoutData() { GridData layoutData = new GridData(); layoutData.verticalIndent = 30; layoutData.horizontalIndent = DEFAULT_SPACE; return layoutData; } private ExampleUtil() { // prevent instantiation } }