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

📄 swtwidgethelper.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 generateConstructCode(
        UIDefinition    iUIDefinition,
        Widget          iWidget,
        ClassDefinition iClassDefinition )
    {
        if ( iWidget.containsProperty(SWT_PARENT_VAR) )
        {
            if ( iWidget.containsProperty(SWT_NAME) )
            {
                generateConstructAttributeCode(
                    iUIDefinition,
                    iWidget,
                    iClassDefinition);
            }
            else
            {
                generateConstructLocalCode(
                    iUIDefinition,
                    iWidget,
                    iClassDefinition);
            }
        }
        else
        {
            generateConstructClassCode(
                iUIDefinition,
                iWidget,
                iClassDefinition);
        }
    }

    
    public static void generateConstructClassCode(
        UIDefinition    iUIDefinition,
        Widget          iWidget,
        ClassDefinition iClassDefinition )
    {
        String widgetName   = iWidget.getProperty(SWT_NAME);
        String className    = iWidget.getProperty(SWT_CLASS);
        String packageName  = iWidget.getStringProperty(SWT_PACKAGE, "org.eclipse.swt.widgets");

        iClassDefinition
            .addImport("org.eclipse.swt.SWT")
            .addImport("org.eclipse.swt.widgets.Composite")
            .addImport(packageName+'.'+className)
            .setName(widgetName)
            .setSuperName(className)
            .getConstructor()
                .setParameters("Composite iParent, int iStyle")
                .addStatement("super(iParent, iStyle);");
    }

    
    public static void generateConstructAttributeCode(
        UIDefinition    iUIDefinition,
        Widget          iWidget,
        ClassDefinition iClassDefinition )
    {
        String widgetName   = iWidget.getProperty(SWT_NAME);
        String widgetVar    = iWidget.getProperty(SWT_VAR);
        String parentVar    = iWidget.getProperty(SWT_PARENT_VAR);
        String className    = iWidget.getProperty(SWT_CLASS);
        String packageName  = iWidget.getStringProperty(SWT_PACKAGE, "org.eclipse.swt.widgets");
        String style        = iWidget.getStringProperty(SWT_STYLE, "SWT.NONE");

        iClassDefinition
            .addImport("org.eclipse.swt.SWT")
            .addImport(packageName+'.'+className)
            .addAttribute("public", className, widgetName)
            .getConstructor()
                .addVariableInstantiation2(widgetVar, className, parentVar, style);
    }

    
    public static void generateConstructLocalCode(
        UIDefinition    iUIDefinition,
        Widget          iWidget,
        ClassDefinition iClassDefinition )
    {
        String className    = iWidget.getProperty(SWT_CLASS);
        String widgetVar    = getCountedLocalVariableName(className);
        String parentVar    = iWidget.getProperty(SWT_PARENT_VAR);
        String packageName  = iWidget.getStringProperty(SWT_PACKAGE, "org.eclipse.swt.widgets");
        String style        = iWidget.getStringProperty(SWT_STYLE, "SWT.NONE");

        iWidget.setProperty(SWT_VAR, widgetVar);
        
        iClassDefinition
            .addImport("org.eclipse.swt.SWT")
            .addImport(packageName+'.'+className)
            .getConstructor()
                .addLocalVariable(className, widgetVar)
                .addVariableInstantiation2(
                    widgetVar, className, parentVar, style);
    }

    
    public static void generateConstructAnonymousCode(
        UIDefinition    iUIDefinition,
        Widget          iWidget,
        ClassDefinition iClassDefinition )
    {
        String parentVar    = iWidget.getProperty(SWT_PARENT_VAR);
        String className    = iWidget.getProperty(SWT_CLASS);
        String packageName  = iWidget.getStringProperty(SWT_PACKAGE, "org.eclipse.swt.widgets");
        String style        = iWidget.getStringProperty(SWT_STYLE, "SWT.NONE");
        
        iClassDefinition
            .addImport("org.eclipse.swt.SWT")
            .addImport(packageName+'.'+className)
            .getConstructor()
                .addVariableInstantiation2(
                    null, className, parentVar, style);
    }

    
    //
    //
    //
    
    public static void generateSetEnabledCode(
        UIDefinition    iUIDefinition,
        Widget          iWidget,
        ClassDefinition iClassDefinition )
    {
        if ( iWidget.containsProperty(UI_ENABLED) )
        {
            String  widgetVar = iWidget.getProperty(SWT_VAR);
            boolean enabled   = iWidget.getBoolProperty(UI_ENABLED, true);
            
            iClassDefinition.getConstructor()
                .addMethodCall1(widgetVar, "setEnabled", enabled);
        }
    }

    
    public static void generateSetSizeCode(
        UIDefinition    iUIDefinition,
        Widget          iWidget,
        ClassDefinition iClassDefinition )
    {
        String widgetVar = iWidget.getProperty(SWT_VAR);
        
        if ( iWidget.containsProperty(UI_GEOMETRY_WIDTH) )
        {
            int width  = iWidget.getIntProperty(UI_GEOMETRY_WIDTH, 0);
            int height = iWidget.getIntProperty(UI_GEOMETRY_HEIGHT, 0);
            
            iClassDefinition.getConstructor()
                .addMethodCall2(widgetVar, "setSize", width, height);
        }
    }

    
    public static void generateSetToolTipCode(
        UIDefinition    iUIDefinition,
        Widget          iWidget,
        ClassDefinition iClassDefinition )
    {
        String widgetVar = iWidget.getProperty(SWT_VAR);
        
        if ( iWidget.containsProperty(UI_TOOL_TIP) )
        {
            String toolTip = iWidget.getTextProperty(UI_TOOL_TIP, "");

            iClassDefinition.getConstructor()
                .addMethodCall1(widgetVar, "setToolTipText", toolTip);
        }
    }

    
    public static void generateSetTitleCode(
        UIDefinition    iUIDefinition,
        Widget          iWidget,
        ClassDefinition iClassDefinition )
    {
        switch (iUIDefinition.getVersion())
        {
            case UIDefinition.VERSION_2:
                if ( iWidget.containsProperty(UI_WINDOW_TITLE_2) )
                {
                    String widgetVar = iWidget.getProperty(SWT_VAR);
                    String title     = iWidget.getTextProperty(UI_WINDOW_TITLE_2, "");

                    iClassDefinition.getConstructor()
                        .addMethodCall1(widgetVar, "setText", title);
                }
                else if ( iWidget.containsProperty(UI_WIDGET_TITLE) )
                {
                    String widgetVar = iWidget.getProperty(SWT_VAR);
                    String title     = iWidget.getTextProperty(UI_WIDGET_TITLE, "");

                    iClassDefinition.getConstructor()
                        .addMethodCall1(widgetVar, "setText", title);
                }
                break;
                
            case UIDefinition.VERSION_3:
                if ( iWidget.containsProperty(UI_WINDOW_TITLE_3) )
                {
                    String widgetVar = iWidget.getProperty(SWT_VAR);
                    String title     = iWidget.getTextProperty(UI_WINDOW_TITLE_3, "");

                    iClassDefinition.getConstructor()
                        .addMethodCall1(widgetVar, "setText", title);
                }
                else if ( iWidget.containsProperty(UI_WIDGET_TITLE) )
                {
                    String widgetVar = iWidget.getProperty(SWT_VAR);
                    String title     = iWidget.getTextProperty(UI_WIDGET_TITLE, "");

                    iClassDefinition.getConstructor()
                        .addMethodCall1(widgetVar, "setText", title);
                }
                break;

                
            case UIDefinition.VERSION_4:
                if ( iWidget.containsProperty(UI_WINDOW_TITLE_4) )
                {
                    String widgetVar = iWidget.getProperty(SWT_VAR);
                    String title     = iWidget.getTextProperty(UI_WINDOW_TITLE_4, "");

                    iClassDefinition.getConstructor()
                        .addMethodCall1(widgetVar, "setText", title);
                }
                else if ( iWidget.containsProperty(UI_WIDGET_TITLE) )
                {
                    String widgetVar = iWidget.getProperty(SWT_VAR);
                    String title     = iWidget.getTextProperty(UI_WIDGET_TITLE, "");

                    iClassDefinition.getConstructor()
                        .addMethodCall1(widgetVar, "setText", title);
                }
                break;
        }
    }
    
    
    public static void translateChildren(
        Translator      iTranslator,
        UIDefinition    iUIDefinition,
        Widget          iWidget,
        Widget[]        iChildren,
        ClassDefinition iClassDefinition )
    {
        for ( int i = 0; i < iChildren.length; i++ )
        {
            iTranslator.translateWidget(iUIDefinition, iChildren[i], iClassDefinition);
        }
    }
}

⌨️ 快捷键说明

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