📄 swtgridlayouthelper.java
字号:
int[] iColumnExpand )
{
for ( int i = 0; i < iRowExpand.length; i++ )
{
iRowExpand[i] = SWT_EXPAND_PREFER_NO;
}
for ( int i = 0; i < iColumnExpand.length; i++ )
{
iColumnExpand[i] = SWT_EXPAND_PREFER_NO;
}
for ( int i = 0; i < iChildren.length; i++ )
{
Widget child = iChildren[i];
int row = child.getIntProperty(SWT_ROW, 0);
int column = child.getIntProperty(SWT_COLUMN, 0);
int expandHorizontal = getChildExpandHorizontalProperty(child);
int expandVertical = getChildExpandVerticalProperty(child);
iRowExpand[row] =
mergeRowColumnExpandProperty(
iRowExpand[row],
expandVertical);
iColumnExpand[column] =
mergeRowColumnExpandProperty(
iColumnExpand[column],
expandHorizontal);
}
}
private static int getWidgetExpandHorizontalProperty( int[] iColumnExpand )
{
int expand = SWT_EXPAND_PREFER_YES;
if ( iColumnExpand.length > 0 )
{
expand = iColumnExpand[0];
for ( int i = 1; i < iColumnExpand.length; i++ )
{
expand = mergeWidgetExpandProperty(expand, iColumnExpand[i]);
}
}
return expand;
}
private static int getWidgetExpandVerticalProperty( int[] iRowExpand )
{
int expand = SWT_EXPAND_PREFER_YES;
if ( iRowExpand.length > 0 )
{
expand = iRowExpand[0];
for ( int i = 1; i < iRowExpand.length; i++ )
{
expand = mergeWidgetExpandProperty(expand, iRowExpand[i]);
}
}
return expand;
}
private static void generateChildLayoutData(
UIDefinition iUIDefinition,
Widget iChild,
int iWidgetExpandHorizontal,
int iWidgetExpandVertical,
int iRowExpand,
int iColumnExpand,
int iChildExpandHorizontal,
int iChildExpandVertical,
ClassDefinition iClassDefinition )
{
boolean stretchHorizontal = false;
boolean stretchVertical = false;
String alignHorizontal = SWT_GRID_DATA_ALIGN_FILL;
String alignVertical = SWT_GRID_DATA_ALIGN_FILL;
switch (iColumnExpand)
{
case SWT_EXPAND_YES:
stretchHorizontal = true;
break;
case SWT_EXPAND_NO:
stretchHorizontal = false;
break;
case SWT_EXPAND_PREFER_YES:
switch (iWidgetExpandHorizontal)
{
case SWT_EXPAND_YES:
stretchHorizontal = false;
break;
case SWT_EXPAND_NO:
case SWT_EXPAND_PREFER_YES:
case SWT_EXPAND_PREFER_NO:
stretchHorizontal = true;
break;
}
break;
case SWT_EXPAND_PREFER_NO:
switch (iWidgetExpandHorizontal)
{
case SWT_EXPAND_YES:
case SWT_EXPAND_PREFER_YES:
stretchHorizontal = false;
break;
case SWT_EXPAND_NO:
case SWT_EXPAND_PREFER_NO:
stretchHorizontal = true;
break;
}
break;
}
switch (iRowExpand)
{
case SWT_EXPAND_YES:
stretchVertical = true;
break;
case SWT_EXPAND_NO:
stretchVertical = false;
break;
case SWT_EXPAND_PREFER_YES:
switch (iWidgetExpandVertical)
{
case SWT_EXPAND_YES:
stretchVertical = false;
break;
case SWT_EXPAND_NO:
case SWT_EXPAND_PREFER_YES:
case SWT_EXPAND_PREFER_NO:
stretchVertical = true;
break;
}
break;
case SWT_EXPAND_PREFER_NO:
switch (iWidgetExpandVertical)
{
case SWT_EXPAND_YES:
case SWT_EXPAND_PREFER_YES:
stretchVertical = false;
break;
case SWT_EXPAND_NO:
case SWT_EXPAND_PREFER_NO:
stretchVertical = true;
break;
}
break;
}
switch (iChildExpandHorizontal)
{
case SWT_EXPAND_YES:
case SWT_EXPAND_PREFER_YES:
alignHorizontal = SWT_GRID_DATA_ALIGN_FILL;
break;
case SWT_EXPAND_NO:
case SWT_EXPAND_PREFER_NO:
alignHorizontal = SWT_GRID_DATA_ALIGN_BEGINNING;
break;
}
switch (iChildExpandVertical)
{
case SWT_EXPAND_YES:
case SWT_EXPAND_PREFER_YES:
alignVertical = SWT_GRID_DATA_ALIGN_FILL;
break;
case SWT_EXPAND_NO:
case SWT_EXPAND_PREFER_NO:
alignVertical = SWT_GRID_DATA_ALIGN_CENTER;
break;
}
String childVar = iChild.getProperty(SWT_VAR);
String dataVar = getLocalVariableName("GridData");
int minSizeHorizontal = iChild.getIntProperty(SWT_MIN_SIZE_HORIZONTAL, 0);
int minSizeVertical = iChild.getIntProperty(SWT_MIN_SIZE_VERTICAL, 0);
iClassDefinition.addImport("org.eclipse.swt.layout.GridData");
iClassDefinition.getConstructor()
.addLocalVariable("GridData", dataVar)
.addVariableInstantiation0(dataVar, "GridData")
.addVariableFieldAssignment(dataVar, "horizontalAlignment", alignHorizontal)
.addVariableFieldAssignment(dataVar, "grabExcessHorizontalSpace", stretchHorizontal)
.addVariableFieldAssignment(dataVar, "verticalAlignment", alignVertical)
.addVariableFieldAssignment(dataVar, "grabExcessVerticalSpace", stretchVertical);
if ( minSizeHorizontal > 0 )
{
iClassDefinition.getConstructor()
.addVariableFieldAssignment(dataVar, "minimumWidth", minSizeHorizontal);
}
if ( minSizeVertical > 0 )
{
iClassDefinition.getConstructor()
.addVariableFieldAssignment(dataVar, "minimumHeight", minSizeVertical);
}
iClassDefinition.getConstructor()
.addMethodCall1(childVar, "setLayoutData", dataVar);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -