⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 swtgridlayouthelper.java

📁 A translator that converts Qt Designer UI files into SWT java classes. Use the power of Qt Designer
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        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 + -