|
|
@@ -0,0 +1,126 @@ |
|
|
package com.eclipsesource.swt.util; |
|
|
|
|
|
import org.eclipse.swt.SWT; |
|
|
import org.eclipse.swt.layout.GridData; |
|
|
import org.eclipse.swt.widgets.Control; |
|
|
|
|
|
public class GridDataUtil { |
|
|
|
|
|
private final GridData gridData; |
|
|
|
|
|
private GridDataUtil( GridData gridData ) { |
|
|
this.gridData = gridData; |
|
|
} |
|
|
|
|
|
public static GridDataUtil applyGridData( Control control ) { |
|
|
GridData gridData = new GridData(); |
|
|
control.setLayoutData( gridData ); |
|
|
return new GridDataUtil( gridData ); |
|
|
} |
|
|
|
|
|
public static GridDataUtil onGridData( Control control ) { |
|
|
Object layoutData = control.getLayoutData(); |
|
|
if( layoutData instanceof GridData ) { |
|
|
return new GridDataUtil( ( GridData )layoutData ); |
|
|
} |
|
|
throw new IllegalStateException( "Control must have GridData layout data. Has " + layoutData ); |
|
|
} |
|
|
|
|
|
public GridDataUtil withHorizontalFill() { |
|
|
gridData.horizontalAlignment = SWT.FILL; |
|
|
gridData.verticalAlignment = SWT.CENTER; |
|
|
gridData.grabExcessHorizontalSpace = true; |
|
|
gridData.grabExcessVerticalSpace = false; |
|
|
return this; |
|
|
} |
|
|
|
|
|
public GridDataUtil withVerticalFill() { |
|
|
gridData.horizontalAlignment = SWT.TOP; |
|
|
gridData.verticalAlignment = SWT.FILL; |
|
|
gridData.grabExcessHorizontalSpace = false; |
|
|
gridData.grabExcessVerticalSpace = true; |
|
|
return this; |
|
|
} |
|
|
|
|
|
public GridDataUtil withFill() { |
|
|
gridData.horizontalAlignment = SWT.FILL; |
|
|
gridData.verticalAlignment = SWT.FILL; |
|
|
gridData.grabExcessHorizontalSpace = true; |
|
|
gridData.grabExcessVerticalSpace = true; |
|
|
return this; |
|
|
} |
|
|
|
|
|
public GridDataUtil withCenterCollapse() { |
|
|
gridData.horizontalAlignment = SWT.CENTER; |
|
|
gridData.verticalAlignment = SWT.CENTER; |
|
|
gridData.grabExcessHorizontalSpace = false; |
|
|
gridData.grabExcessVerticalSpace = false; |
|
|
return this; |
|
|
} |
|
|
|
|
|
public GridDataUtil grabExcessHorizontalSpace( boolean grabExcessHorizontalSpace ) { |
|
|
gridData.grabExcessHorizontalSpace = grabExcessHorizontalSpace; |
|
|
return this; |
|
|
} |
|
|
|
|
|
public GridDataUtil grabExcessVerticalSpace( boolean grabExcessVerticalSpace ) { |
|
|
gridData.grabExcessVerticalSpace = grabExcessVerticalSpace; |
|
|
return this; |
|
|
} |
|
|
|
|
|
public GridDataUtil horizontalSpan( int horizontalSpan ) { |
|
|
gridData.horizontalSpan = horizontalSpan; |
|
|
return this; |
|
|
} |
|
|
|
|
|
public GridDataUtil verticalSpan( int verticalSpan ) { |
|
|
gridData.verticalSpan = verticalSpan; |
|
|
return this; |
|
|
} |
|
|
|
|
|
public GridDataUtil minimumHeight( int minimumHeight ) { |
|
|
gridData.minimumHeight = minimumHeight; |
|
|
return this; |
|
|
} |
|
|
|
|
|
public GridDataUtil minimumWidth( int minimumWidth ) { |
|
|
gridData.minimumWidth = minimumWidth; |
|
|
return this; |
|
|
} |
|
|
|
|
|
public GridDataUtil verticalIndent( int verticalIndent ) { |
|
|
gridData.verticalIndent = verticalIndent; |
|
|
return this; |
|
|
} |
|
|
|
|
|
public GridDataUtil horizontalIndent( int horizontalIndent ) { |
|
|
gridData.horizontalIndent = horizontalIndent; |
|
|
return this; |
|
|
} |
|
|
|
|
|
public GridDataUtil heightHint( int heightHint ) { |
|
|
gridData.heightHint = heightHint; |
|
|
return this; |
|
|
} |
|
|
|
|
|
public GridDataUtil widthHint( int widthHint ) { |
|
|
gridData.widthHint = widthHint; |
|
|
return this; |
|
|
} |
|
|
|
|
|
public GridDataUtil verticalAlignment( int verticalAlignment ) { |
|
|
gridData.verticalAlignment = verticalAlignment; |
|
|
return this; |
|
|
} |
|
|
|
|
|
public GridDataUtil horizontalAlignment( int horizontalAlignment ) { |
|
|
gridData.horizontalAlignment = horizontalAlignment; |
|
|
return this; |
|
|
} |
|
|
|
|
|
public GridDataUtil exclude( boolean exclude ) { |
|
|
gridData.exclude = exclude; |
|
|
return this; |
|
|
} |
|
|
|
|
|
} |