blob: 83e28caf92b7aab59e10f7b23eb2ad4944e875a3 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
*/
package org.apache.uima.tools.internal.ui.forms;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Layout;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.FormColors;
import org.eclipse.ui.forms.widgets.ColumnLayout;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.Section;
import org.eclipse.ui.forms.widgets.TableWrapData;
import org.eclipse.ui.forms.widgets.TableWrapLayout;
/**
*
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class FormSection {
public static class LabelAndObject {
public Label label;
public Object object;
}
public static Section createGridDataSection (FormToolkit toolkit, Composite parent,
int sectionStyle, String title, String description,
int marginWidth, int marginHeight,
int layoutStyle, int horizontalSpan, int verticalSpan)
{
// Create Section
Section section = toolkit.createSection(parent, sectionStyle);
section.setText(title);
section.setDescription(description);
section.marginWidth = marginWidth;
section.marginHeight = marginHeight;
// toolkit.createCompositeSeparator(section);
GridData layoutData = new GridData(layoutStyle);
layoutData.horizontalSpan = horizontalSpan;
layoutData.verticalSpan = verticalSpan;
section.setLayoutData(layoutData);
return section;
} // createGridDataSection
public static Section createTableWrapDataSection (FormToolkit toolkit, Composite parent,
int sectionStyle, String title, String description,
int marginWidth, int marginHeight,
int align, int valign, int rowspan, int colspan)
{
// Create Section
Section section = toolkit.createSection(parent, sectionStyle);
section.setText(title);
section.setDescription(description);
section.marginWidth = marginWidth;
section.marginHeight = marginHeight;
toolkit.createCompositeSeparator(section);
TableWrapData layoutData = new TableWrapData(align, valign, rowspan, colspan);
layoutData.grabHorizontal = true;
layoutData.grabVertical = true;
section.setLayoutData(layoutData);
// final SectionPart spart = new SectionPart(section);
// mform.addPart(spart);
// spart.initialize (mform); // Need this code. Otherwise, exception in SectionPart !!!
return section;
} // createTableWrapDataSection
public static Label createLabelAndLabel (FormToolkit toolkit, Composite parent,
String labelText, String textText, int textWidthHint, int textHeightHint)
{
Label label = toolkit.createLabel(parent, labelText);
label.setForeground(toolkit.getColors().getColor(FormColors.TITLE));
Label text = toolkit.createLabel(parent, textText); //$NON-NLS-1$
FormSection.fillIntoGridOrTableLayout (parent, label, text, textWidthHint, textHeightHint);
return text;
} // createLabelAndLabel
public static Text createLabelAndText (FormToolkit toolkit, Composite parent,
String labelText, String textText, int style, int textWidthHint, int textHeightHint)
{
Label label = toolkit.createLabel(parent, labelText);
label.setForeground(toolkit.getColors().getColor(FormColors.TITLE));
Text text = toolkit.createText(parent, textText, style); //$NON-NLS-1$
FormSection.fillIntoGridOrTableLayout (parent, label, text, textWidthHint, textHeightHint);
return text;
} // createLabelAndText
public static Text createLabelAndText (FormToolkit toolkit, Composite parent,
Label label, String textText, int style, int textWidthHint, int textHeightHint)
{
label.setForeground(toolkit.getColors().getColor(FormColors.TITLE));
Text text = toolkit.createText(parent, textText, style); //$NON-NLS-1$
FormSection.fillIntoGridOrTableLayout (parent, label, text, textWidthHint, textHeightHint);
return text;
} // createLabelAndText
public static CCombo createLabelAndCCombo (FormToolkit toolkit, Composite parent,
String labelText, int style)
{
Label label = toolkit.createLabel(parent, labelText);
label.setForeground(toolkit.getColors().getColor(FormColors.TITLE));
CCombo ccombo = new CCombo (parent, style);
toolkit.adapt(ccombo);
FormSection.fillIntoGridOrTableLayout (parent, label, ccombo, 10, 0);
return ccombo;
} // createLabelAndCCombo
public static void fillIntoGridLayout (Composite parent,
Label label, Control control,
int widthHint, int heightHint)
{
Layout layout = parent.getLayout();
if (layout instanceof GridLayout) {
GridData gd;
int span = ((GridLayout) layout).numColumns;
int tspan = span - 1;
gd = new GridData();
if (control != null && (control.getStyle() & SWT.MULTI) > 0 ) {
gd.verticalAlignment = SWT.BEGINNING;
} else {
gd.verticalAlignment = SWT.CENTER;
}
if (control == null) {
gd.horizontalSpan = tspan;
}
label.setLayoutData(gd);
if (control != null) {
gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
gd.horizontalSpan = tspan;
gd.grabExcessHorizontalSpace = (tspan == 1);
gd.widthHint = widthHint;
// gd.verticalIndent = 4;
if (control != null && (control.getStyle() & SWT.MULTI) > 0 ) {
gd.heightHint = heightHint;
}
control.setLayoutData(gd);
}
}
} // fillIntoGridLayout
public static void fillIntoTableLayout (Composite parent,
Label label, Control control, int heightHint)
{
Layout layout = parent.getLayout();
if (layout instanceof TableWrapLayout) {
TableWrapData td;
int span = ((TableWrapLayout) layout).numColumns;
int tspan = span - 1;
td = new TableWrapData();
td.valign = TableWrapData.TOP; // MIDDLE;
if (control == null) {
td.colspan = tspan;
}
label.setLayoutData(td);
if (control != null) {
td = new TableWrapData(TableWrapData.FILL);
td.colspan = tspan;
td.grabHorizontal = (tspan == 1);
if (heightHint > 0) {
td.heightHint = heightHint;
}
control.setLayoutData(td);
}
}
} // fillIntoTableLayout
public static void fillIntoGridOrTableLayout (Composite parent,
Label label, Control control,
int widthHint, int heightHint)
{
Layout layout = parent.getLayout();
if (layout instanceof GridLayout) {
fillIntoGridLayout (parent, label, control, widthHint, heightHint);
} else if (layout instanceof TableWrapLayout) {
fillIntoTableLayout (parent, label, control, heightHint);
}
} // fillIntoGridOrTableLayout
public static Composite createColumnLayoutContainer ( FormToolkit toolkit, Composite parent,
int minNumColumns, int maxNumColumns )
{
Composite container = toolkit.createComposite(parent, SWT.WRAP);
ColumnLayout layout = new ColumnLayout();
layout.minNumColumns = minNumColumns;
layout.maxNumColumns = maxNumColumns;
container.setLayout(layout);
// toolkit.paintBordersFor(container);
return container;
} // createColumnLayoutContainer
public static Composite createGridLayoutContainer ( FormToolkit toolkit, Composite parent,
int numColumns, int marginWidth, int marginHeight )
{
Composite container = toolkit.createComposite(parent, SWT.WRAP);
GridLayout layout = new GridLayout();
layout.numColumns = numColumns;
layout.marginWidth = marginWidth;
layout.marginHeight = marginHeight;
container.setLayout(layout);
// toolkit.paintBordersFor(container);
return container;
} // createGridLayoutContainer
public static ScrolledComposite createGridLayoutScrolledContainer ( FormToolkit toolkit, Composite parent,
int numColumns, int marginWidth, int marginHeight )
{
// Composite container = toolkit.createComposite(parent, SWT.WRAP);
ScrolledComposite container = new ScrolledComposite(parent,
SWT.WRAP|SWT.V_SCROLL|SWT.H_SCROLL);
toolkit.adapt(container);
GridLayout layout = new GridLayout();
layout.numColumns = numColumns;
layout.marginWidth = marginWidth;
layout.marginHeight = marginHeight;
container.setLayout(layout);
// toolkit.paintBordersFor(container);
return container;
} // createGridLayoutContainer
public static Composite createTableLayoutContainer ( FormToolkit toolkit, Composite parent,
int numColumns, boolean makeColumnsEqualWidth,
int topMargin, int bottomMargin,
int leftMargin, int rightMargin)
{
Composite container = toolkit.createComposite(parent);
TableWrapLayout layout = new TableWrapLayout();
layout.numColumns = numColumns;
layout.makeColumnsEqualWidth = makeColumnsEqualWidth;
layout.topMargin = topMargin;
layout.bottomMargin = bottomMargin;
layout.leftMargin = leftMargin;
layout.rightMargin = rightMargin;
container.setLayout(layout);
return container;
} // createTableLayoutContainer
public static ScrolledComposite createTableLayoutScrolledContainer ( FormToolkit toolkit, Composite parent,
int numColumns, boolean makeColumnsEqualWidth,
int topMargin, int bottomMargin,
int leftMargin, int rightMargin)
{
// Composite container = toolkit.createComposite(parent);
ScrolledComposite container = new ScrolledComposite(parent, SWT.WRAP|SWT.V_SCROLL);
toolkit.adapt(container);
TableWrapLayout layout = new TableWrapLayout();
layout.numColumns = numColumns;
layout.makeColumnsEqualWidth = makeColumnsEqualWidth;
layout.topMargin = topMargin;
layout.bottomMargin = bottomMargin;
layout.leftMargin = leftMargin;
layout.rightMargin = rightMargin;
container.setLayout(layout);
return container;
} // createTableLayoutScrolledContainer
}