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

📄 launcher.java

📁 A translator that converts Qt Designer UI files into SWT java classes. Use the power of Qt Designer
💻 JAVA
字号:
/* This file is part of ui2swt.
 *
 * $Revision: 1.3 $
 * $Date: 2007/02/18 03:24:20 $
 * $Name:  $
 *
 * Copyright (C) 2006-2007 James Forbes, All Rights Reserved.
 *
 * This software is provided 'as-is', without any express or implied warranty.
 * In no event will the authors be held liable for any damages arising from the
 * use of this software.
 *
 * Permission is granted to anyone to use this software for any purpose,
 * including commercial applications, and to alter it and redistribute it
 * freely, subject to the following restrictions:
 *
 *  1. The origin of this software must not be misrepresented; you must not
 *     claim that you wrote the original software. If you use this software in
 *     a product, an acknowledgment in the product documentation would be
 *     appreciated but is not required.
 *
 *  2. Altered source versions must be plainly marked as such, and must not be
 *     misrepresented as being the original software.
 *
 *  3. This notice may not be removed or altered from any source distribution.
 */

package ui2swt.test;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Shell;


public class Launcher
{
    public Launcher()
    {}
    
    
    //
    //
    //
    
    public void launchTest( Shell iParent, String iClassName )
    {
        try
        {
            Shell  testShell = new Shell(iParent, SWT.SHELL_TRIM);
            Object test      = null;
            
            testShell.setText(iClassName);
            test = this.constructTest(testShell, iClassName);
            this.setTestActions(test);
            
            testShell.pack();
            testShell.setMinimumSize(testShell.getSize());
        
            testShell.open();
        }
        catch ( Throwable iE )
        {
            iE.printStackTrace();
        }
    }
    
    
    //
    //
    //
    
    private Object constructTest( Shell iTestShell, String iClassName )
        throws Exception
    {
        Object      test = null;
        Constructor constructors[] = Class.forName(iClassName).getConstructors();
        
        if ( constructors[0].getParameterTypes().length == 1 )
        {
            test = constructors[0].newInstance(new Object[]{iTestShell});
        }
        else
        {
            test = constructors[0].newInstance(new Object[]{iTestShell,new Integer(SWT.NONE)});
            iTestShell.setLayout(new FillLayout());
        }
        
        return test;
    }
    
    
    private void setTestActions( Object iTest ) throws Exception
    {
        Field[] fields = iTest.getClass().getFields();
        
        for ( int i = 0; i < fields.length; i++ )
        {
            Field field = fields[i];
            
            if ( field.getType() == Runnable.class )
            {
                field.set(iTest, new Action(field.getName()));
            }
        }
    }
}

⌨️ 快捷键说明

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