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

📄 swttexthelper.java

📁 A translator that converts Qt Designer UI files into SWT java classes. Use the power of Qt Designer
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    //
    //
    
    public static void generateSetTextCode(
        UIDefinition    iUIDefinition,
        Widget          iWidget,
        ClassDefinition iClassDefinition )
    {
        String text = null;

        switch (iUIDefinition.getVersion())
        {
            case UIDefinition.VERSION_2:
                if ( iWidget.containsProperty(UI_TEXT) )
                {
                    text = iWidget.getTextProperty(UI_TEXT, "");
                }
                else if ( iWidget.containsProperty(UI_HTML_2) )
                {
                    text = iWidget.getTextProperty(UI_HTML_2, "");
                }
                break;

            case UIDefinition.VERSION_3:
                if ( iWidget.containsProperty(UI_TEXT) )
                {
                    text = iWidget.getTextProperty(UI_TEXT, "");
                }
                else if ( iWidget.containsProperty(UI_HTML_3) )
                {
                    text = iWidget.getTextProperty(UI_HTML_3, "");
                }
                break;
            
            case UIDefinition.VERSION_4:
                if ( iWidget.containsProperty(UI_TEXT) )
                {
                    text = iWidget.getTextProperty(UI_TEXT, "");
                }
                else if ( iWidget.containsProperty(UI_HTML_4) )
                {
                    text = iWidget.getTextProperty(UI_HTML_4, "");
                }
                break;
        }

        generateSetTextCode(iUIDefinition, iWidget, text, iClassDefinition);
    }

    
    public static void generateSetTextCode(
        UIDefinition    iUIDefinition,
        Widget          iWidget,
        String          iText,
        ClassDefinition iClassDefinition )
    {
        if ( iText != null )
        {
            String widgetVar = iWidget.getProperty(SWT_VAR);
            
            iClassDefinition.getConstructor()
                .addMethodCall1(widgetVar, "setText", iText);
        }
    }

    
    public static void generateSetAlignmentCode(
        UIDefinition    iUIDefinition,
        Widget          iWidget,
        ClassDefinition iClassDefinition )
    {
        String widgetVar = iWidget.getProperty(SWT_VAR);
        
        switch (getAlignment(iUIDefinition, iWidget))
        {
            case SWT_ALIGNMENT_UNKNOWN:
                break;

            case SWT_ALIGNMENT_LEFT:
                iClassDefinition.getConstructor()
                    .addMethodCall1(widgetVar, "setAlignment", "SWT.LEFT");
                break;
                
            case SWT_ALIGNMENT_CENTRE:
                iClassDefinition.getConstructor()
                    .addMethodCall1(widgetVar, "setAlignment", "SWT.CENTER");
                break;
                
            case SWT_ALIGNMENT_RIGHT:
                iClassDefinition.getConstructor()
                    .addMethodCall1(widgetVar, "setAlignment", "SWT.RIGHT");
                break;
        }
    }

    
    public static void generateSetFontCode(
        UIDefinition    iUIDefinition,
        Widget          iWidget,
        ClassDefinition iClassDefinition )
    {
        if ( iWidget.containsInheritedProperty(UI_FONT_FAMILY) ||
             iWidget.containsInheritedProperty(UI_FONT_POINT_SIZE) ||
             iWidget.containsInheritedProperty(UI_FONT_BOLD) ||
             iWidget.containsInheritedProperty(UI_FONT_ITALIC) )
        {
            String  widgetVar       = iWidget.getProperty(SWT_VAR);
            String  fontFamily      = iWidget.getInheritedTextProperty(UI_FONT_FAMILY, UI_FONT_FAMILY_DEFAULT);
            int     fontPointSize   = iWidget.getInheritedIntProperty(UI_FONT_POINT_SIZE, UI_FONT_POINT_SIZE_DEFAULT);
            boolean fontBold        = getFontBold(iUIDefinition, iWidget);
            boolean fontItalic      = getFontItalic(iUIDefinition, iWidget);
            String  fontStyle;
            
            if ( fontBold && fontItalic )
            {
                fontStyle = "SWT.BOLD|SWT.ITALIC";
            }
            else if ( fontBold )
            {
                fontStyle = "SWT.BOLD";
            }
            else if ( fontItalic )
            {
                fontStyle = "SWT.ITALIC";
            }
            else
            {
                fontStyle = "SWT.NORMAL";
            }
            
            iClassDefinition
                .addImport("org.eclipse.swt.graphics.Font")
                .getConstructor().addMethodCall1(
                    widgetVar,
                    "setFont",
                    "new Font("+widgetVar+".getDisplay(),"+fontFamily+","+fontPointSize+","+fontStyle+")");
        }
    }

    
    public static void generateEchoCharCode(
        UIDefinition    iUIDefinition,
        Widget          iWidget,
        ClassDefinition iClassDefinition )
    {
        String widgetVar = iWidget.getProperty(SWTWidgetHelper.SWT_VAR);
        String echoMode  = null;
        
        switch (iUIDefinition.getVersion())
        {
            case UIDefinition.VERSION_2:
                echoMode =
                    iWidget.getStringProperty(
                        UI_ECHO_MODE,
                        UI_ECHO_MODE_NORMAL_2);
                
                if ( UI_ECHO_MODE_NO_ECHO_2.equals(echoMode) )
                {
                    iClassDefinition.getConstructor()
                        .addMethodCall1(widgetVar, "setEchoChar", "' '");
                }
                break;

                
            case UIDefinition.VERSION_3:
                echoMode =
                    iWidget.getStringProperty(
                        UI_ECHO_MODE,
                        UI_ECHO_MODE_NORMAL_3);
                
                if ( UI_ECHO_MODE_NO_ECHO_3.equals(echoMode) )
                {
                    iClassDefinition.getConstructor()
                        .addMethodCall1(widgetVar, "setEchoChar", "' '");
                }
                break;

                
            case UIDefinition.VERSION_4:
                echoMode =
                    iWidget.getStringProperty(
                        UI_ECHO_MODE,
                        UI_ECHO_MODE_NORMAL_4);
                
                if ( UI_ECHO_MODE_NO_ECHO_4.equals(echoMode) )
                {
                    iClassDefinition.getConstructor()
                        .addMethodCall1(widgetVar, "setEchoChar", "' '");
                }
                break;
        }
    }

    
    public static void generateSelectionCode(
        UIDefinition    iUIDefinition,
        Widget          iWidget,
        ClassDefinition iClassDefinition )
    {
        if ( iWidget.containsProperty(UI_CURSOR_POSITION) )
        {
            int    position =  iWidget.getIntProperty(UI_CURSOR_POSITION, 0);
            String widgetVar = iWidget.getProperty(SWTWidgetHelper.SWT_VAR);
            
            iClassDefinition.getConstructor()
                .addMethodCall2(widgetVar, "setSelection", position, position);
        }
    }

    
    //
    //
    //
    
    private static boolean getFontBold(
        UIDefinition    iUIDefinition,
        Widget          iWidget )
    {
        boolean fontBold = false;
        
        switch (iUIDefinition.getVersion())
        {
            case UIDefinition.VERSION_2:
            case UIDefinition.VERSION_3:
                fontBold = (iWidget.getInheritedIntProperty(UI_FONT_BOLD, 0) > 0);
                break;

            case UIDefinition.VERSION_4:
                fontBold = iWidget.getInheritedBoolProperty(UI_FONT_BOLD, false);
                break;
        }
        
        return fontBold;
    }
    
    
    private static boolean getFontItalic(
        UIDefinition    iUIDefinition,
        Widget          iWidget )
    {
        boolean fontItalic = false;
        int     version    = iUIDefinition.getVersion();
        
        switch (version)
        {
            case UIDefinition.VERSION_2:
            case UIDefinition.VERSION_3:
                fontItalic = (iWidget.getInheritedIntProperty(UI_FONT_ITALIC, 0) > 0);
                break;

            case UIDefinition.VERSION_4:
                fontItalic = iWidget.getInheritedBoolProperty(UI_FONT_ITALIC, false);
                break;
        }
        
        return fontItalic;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -