/*
* Copyright (c) 2010-2012 Research In Motion Limited. All rights reserved.
*
* This program and the accompanying materials are made available
* under the terms of the Eclipse Public License, Version 1.0,
* which accompanies this distribution and is available at
*
* http://www.eclipse.org/legal/epl-v10.html
*
*/
package net.rim.ejde.internal.ui.editors.model;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.ui.forms.widgets.TableWrapLayout;
/**
* This class provides several helper methods to create various layouts used within the editor.
*
* @author jkeshavarzi
*
*/
public class LayoutFactory {
public static TableWrapLayout createEditorPageLayout( boolean makeColumnsEqualWidth, int numColumns ) {
TableWrapLayout layout = new TableWrapLayout();
layout.topMargin = 12;
layout.bottomMargin = 12;
layout.leftMargin = 6;
layout.rightMargin = 6;
layout.horizontalSpacing = 20;
layout.verticalSpacing = 17;
layout.makeColumnsEqualWidth = makeColumnsEqualWidth;
layout.numColumns = numColumns;
return layout;
}
public static TableWrapLayout createEditorCompositeLayout( boolean makeColumnsEqualWidth, int numColumns ) {
TableWrapLayout layout = new TableWrapLayout();
layout.topMargin = 0;
layout.bottomMargin = 0;
layout.leftMargin = 0;
layout.rightMargin = 0;
layout.horizontalSpacing = 20;
layout.verticalSpacing = 17;
layout.makeColumnsEqualWidth = makeColumnsEqualWidth;
layout.numColumns = numColumns;
return layout;
}
/**
* Creates the GridLayout used within many of the sections clients.
*
* @param makeColumnsEqualWidth
* @param numColumns
* @return
*/
public static GridLayout createSectionGridLayout( boolean makeColumnsEqualWidth, int numColumns ) {
GridLayout layout = new GridLayout();
layout.marginHeight = 0;
layout.marginWidth = 0;
layout.marginTop = 5;
layout.marginBottom = 5;
layout.marginLeft = 2;
layout.marginRight = 2;
layout.horizontalSpacing = 5;
layout.verticalSpacing = 5;
layout.makeColumnsEqualWidth = makeColumnsEqualWidth;
layout.numColumns = numColumns;
return layout;
}
/**
* Creates a GridLayout with a value of 0 for all margins
*
* @param makeColumnsEqualWidth
* @param numColumns
* @return
*/
public static GridLayout createZeroMarginGridLayout( boolean makeColumnsEqualWidth, int numColumns ) {
GridLayout layout = new GridLayout();
layout.marginHeight = 0;
layout.marginWidth = 0;
layout.marginTop = 0;
layout.marginBottom = 0;
layout.marginLeft = 0;
layout.marginRight = 0;
layout.horizontalSpacing = 5;
layout.verticalSpacing = 5;
layout.makeColumnsEqualWidth = makeColumnsEqualWidth;
layout.numColumns = numColumns;
return layout;
}
/**
* Creates a TableWrapLayout used in sections of the App Descriptor editor
*
* @param makeColumnsEqualWidth
* @param numColumns
* @return
*/
public static TableWrapLayout createSectionTableWrapLayout( boolean makeColumnsEqualWidth, int numColumns ) {
TableWrapLayout layout = new TableWrapLayout();
layout.topMargin = 2;
layout.bottomMargin = 2;
layout.leftMargin = 2;
layout.rightMargin = 2;
layout.horizontalSpacing = 0;
layout.verticalSpacing = 0;
layout.makeColumnsEqualWidth = makeColumnsEqualWidth;
layout.numColumns = numColumns;
return layout;
}
/**
* Creates the TableWrapLayout used within the general section of the descriptor editor
*
* @param makeColumnsEqualWidth
* @param numColumns
* @return
*/
public static TableWrapLayout createSectionClientTableWrapLayout( boolean makeColumnsEqualWidth, int numColumns ) {
TableWrapLayout layout = new TableWrapLayout();
layout.topMargin = 5;
layout.bottomMargin = 5;
layout.leftMargin = 2;
layout.rightMargin = 2;
layout.horizontalSpacing = 5;
layout.verticalSpacing = 5;
layout.makeColumnsEqualWidth = makeColumnsEqualWidth;
layout.numColumns = numColumns;
return layout;
}
/**
* Creates the GridLayout used for each page in the descriptor editor
*
* @param makeColumnsEqualWidth
* @param numColumns
* @return
*/
public static GridLayout createFormGridLayout( boolean makeColumnsEqualWidth, int numColumns ) {
GridLayout layout = new GridLayout();
layout.marginHeight = 0;
layout.marginWidth = 0;
layout.marginTop = 12;
layout.marginBottom = 12;
layout.marginLeft = 6;
layout.marginRight = 6;
layout.horizontalSpacing = 20;
layout.verticalSpacing = 17;
layout.makeColumnsEqualWidth = makeColumnsEqualWidth;
layout.numColumns = numColumns;
return layout;
}
/**
* Creates the Gridlayout used for the left/right panes within each descriptor editor page
*
* @param makeColumnsEqualWidth
* @param numColumns
* @return
*/
public static GridLayout createFormPaneGridLayout( boolean makeColumnsEqualWidth, int numColumns ) {
GridLayout layout = new GridLayout();
layout.marginHeight = 0;
layout.marginWidth = 0;
layout.marginTop = 0;
layout.marginBottom = 0;
layout.marginLeft = 0;
layout.marginRight = 0;
layout.horizontalSpacing = 20;
layout.verticalSpacing = 17;
layout.makeColumnsEqualWidth = makeColumnsEqualWidth;
layout.numColumns = numColumns;
return layout;
}
/**
* Creates the GridLayout used in each section of the descriptor editor
*
* @param makeColumnsEqualWidth
* @param numColumns
* @return
*/
public static GridLayout createClearGridLayout( boolean makeColumnsEqualWidth, int numColumns ) {
GridLayout layout = new GridLayout();
layout.marginHeight = 0;
layout.marginWidth = 0;
layout.marginTop = 2;
layout.marginBottom = 2;
layout.marginLeft = 2;
layout.marginRight = 2;
layout.horizontalSpacing = 0;
layout.verticalSpacing = 0;
layout.makeColumnsEqualWidth = makeColumnsEqualWidth;
layout.numColumns = numColumns;
return layout;
}
/**
* Creates the GridLayout used in the master section of the AEP page
*
* @param makeColumnsEqualWidth
* @param numColumns
* @return
*/
public static GridLayout createMasterGridLayout( boolean makeColumnsEqualWidth, int numColumns ) {
GridLayout layout = new GridLayout();
layout.marginHeight = 0;
layout.marginWidth = 0;
layout.marginTop = 0;
layout.marginBottom = 0;
layout.marginLeft = 0;
int marginRight = 20;
marginRight = marginRight / 2;
marginRight--;
layout.marginRight = marginRight;
layout.horizontalSpacing = 20;
layout.verticalSpacing = 17;
layout.makeColumnsEqualWidth = makeColumnsEqualWidth;
layout.numColumns = numColumns;
return layout;
}
/**
* Creates the GridLayout used in the details section of the AEP page
*
* @param makeColumnsEqualWidth
* @param numColumns
* @return
*/
public static GridLayout createDetailsGridLayout( boolean makeColumnsEqualWidth, int numColumns ) {
GridLayout layout = new GridLayout();
layout.marginHeight = 0;
layout.marginWidth = 0;
layout.marginTop = 0;
layout.marginBottom = 0;
int marginLeft = 20;
marginLeft = marginLeft / 2;
marginLeft--;
layout.marginLeft = marginLeft;
layout.marginRight = 1;
layout.horizontalSpacing = 20;
layout.verticalSpacing = 17;
layout.makeColumnsEqualWidth = makeColumnsEqualWidth;
layout.numColumns = numColumns;
return layout;
}
/**
* Creates a GridLayout used in the AEP page details section
*
* @param makeColumnsEqualWidth
* @param numColumns
* @return
*/
public static GridLayout createSectionClientGridLayout( boolean makeColumnsEqualWidth, int numColumns ) {
GridLayout layout = new GridLayout();
layout.marginHeight = 0;
layout.marginWidth = 0;
layout.marginTop = 5;
layout.marginBottom = 5;
layout.marginLeft = 2;
layout.marginRight = 2;
layout.horizontalSpacing = 5;
layout.verticalSpacing = 5;
layout.makeColumnsEqualWidth = makeColumnsEqualWidth;
layout.numColumns = numColumns;
return layout;
}
}