Package org.rioproject.entry

Source Code of org.rioproject.entry.UIDescriptorFactory

/*
* Copyright 2008 the original author or authors.
* Copyright 2005 Sun Microsystems, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.rioproject.entry;

import net.jini.lookup.entry.UIDescriptor;
import net.jini.lookup.ui.MainUI;
import net.jini.lookup.ui.attribute.UIFactoryTypes;
import net.jini.lookup.ui.factory.JComponentFactory;
import net.jini.lookup.ui.factory.JDialogFactory;
import net.jini.lookup.ui.factory.JFrameFactory;
import net.jini.lookup.ui.factory.JWindowFactory;
import org.rioproject.serviceui.UIComponentFactory;
import org.rioproject.serviceui.UIDialogFactory;
import org.rioproject.serviceui.UIFrameFactory;
import org.rioproject.serviceui.UIWindowFactory;

import java.io.IOException;
import java.net.URL;
import java.rmi.MarshalledObject;
import java.util.Collections;

/**
* A helper utility that creates a UIDescriptor as part of the ServiceUI project.
*
* @author Dennis Reedy
*/
public class UIDescriptorFactory {

   /**
    * Get a UIDescriptor for a JComponent
    *
    * @param artifact The artifact
    * @param className The classname
    * @return A UIDescriptor
    * @throws IOException if the MarshalledObject cannot be created
    */
    public static UIDescriptor getJComponentDesc(String artifact, String className) throws IOException {
        if(artifact == null)
            throw new IllegalArgumentException("artifact is null");
        return (getJComponentDesc(artifact, new String[]{""}, className));
    }

    /**
     * Get a UIDescriptor for a JComponent
     *
     * @param codebase The codebase
     * @param jarName The jar name
     * @param className The classname
     * @return A UIDescriptor
     * @throws IOException if the MarshalledObject cannot be created
     */
    public static UIDescriptor getJComponentDesc(String codebase, String jarName, String className) throws IOException {
        if(jarName == null)
            throw new IllegalArgumentException("jarName is null");
        return (getJComponentDesc(codebase, new String[]{jarName}, className));
    }

    /**
     * Get a UIDescriptor for a JComponent
     *
     * @param codebase The codebase
     * @param jars The jars to use
     * @param className The classname
     * @return A UIDescriptor
     * @throws IOException if the MarshalledObject cannot be created
     */
    public static UIDescriptor getJComponentDesc(String codebase, String[] jars, String className) throws IOException {
        if(codebase == null)
            throw new IllegalArgumentException("codebase is null");
        if(jars == null)
            throw new IllegalArgumentException("jars are null");
        if(className == null)
            throw new IllegalArgumentException("className is null");
        return getUIDescriptor(MainUI.ROLE, JComponentFactory.TYPE_NAME, codebase, jars, className);
    }

    /**
     * Get a UIDescriptor for a JFrame
     *
     * @param codebase The codebase
     * @param jarName The jar name
     * @param className The classname
     *
     * @return A UIDescriptor
     * @throws IOException if the MarshalledObject cannot be created
     */
    public static UIDescriptor getJFrameDesc(String codebase,
                                             String jarName,
                                             String className)
        throws IOException {
        if(codebase == null)
            throw new IllegalArgumentException("codebase is null");
        if(jarName == null)
            throw new IllegalArgumentException("jarName is null");
        if(className == null)
            throw new IllegalArgumentException("className is null");
        return getUIDescriptor(MainUI.ROLE, JFrameFactory.TYPE_NAME, codebase, new String[]{jarName}, className);
    }

    /**
     * Get a UIDescriptor for a JFrame
     *
     * @param codebase The codebase
     * @param jars The jars to use
     * @param className The classname
     * @return A UIDescriptor
     * @throws IOException if the MarshalledObject cannot be created
     */
    public static UIDescriptor getJFrameDesc(String codebase, String[] jars, String className)
    throws IOException {
        if(codebase==null)
            throw new IllegalArgumentException("codebase is null");
        if(jars==null)
            throw new IllegalArgumentException("jars are null");
        if(className==null)
            throw new IllegalArgumentException("className is null");
        return getUIDescriptor(MainUI.ROLE, JFrameFactory.TYPE_NAME, codebase, jars, className);
    }
   
    /**
     * Get a UIDescriptor
     *
     * @param role The role
     * @param typeName The type
     * @param codebase The codebase
     * @param jars The jars to use
     * @param className The classname
     * @return A UIDescriptor
    
     * @throws IOException if the MarshalledObject cannot be created
     */
    public static UIDescriptor getUIDescriptor(String role,
                                               String typeName,
                                               String codebase,
                                               String[] jars,
                                               String className) throws IOException {
        if(role == null)
            throw new IllegalArgumentException("role is null");
        if(typeName == null)
            throw new IllegalArgumentException("typeName is null");
        if(codebase == null)
            throw new IllegalArgumentException("codebase is null");
        if(jars == null)
            throw new IllegalArgumentException("jars are null");
        if(className == null)
            throw new IllegalArgumentException("className is null");
        UIDescriptor desc = new UIDescriptor();
        desc.role = role;
        UIFactoryTypes types  ;
        MarshalledObject factory;
        URL[] urls = new URL[jars.length];
       
        for(int i = 0; i < urls.length; i++) {
            urls[i] = new URL(codebase+(codebase.endsWith("/")?"":"/")+jars[i]);
        }
       
        if(typeName.equals(JComponentFactory.TYPE_NAME)) {
            types = new UIFactoryTypes( Collections.singleton(JComponentFactory.TYPE_NAME));
            factory = new MarshalledObject<UIComponentFactory>(new UIComponentFactory(urls, className));
            desc.toolkit = JComponentFactory.TOOLKIT;
        } else if(typeName.equals(JDialogFactory.TYPE_NAME)) {
            types = new UIFactoryTypes(
                Collections.singleton(JDialogFactory.TYPE_NAME));
            factory = new MarshalledObject<UIDialogFactory>(new UIDialogFactory(urls, className));
            desc.toolkit = JDialogFactory.TOOLKIT;
        } else if(typeName.equals(JFrameFactory.TYPE_NAME)) {
            types = new UIFactoryTypes(
                Collections.singleton(JFrameFactory.TYPE_NAME));
            factory = new MarshalledObject<UIFrameFactory>(new UIFrameFactory(urls, className));
            desc.toolkit = JFrameFactory.TOOLKIT;
        } else if(typeName.equals(JWindowFactory.TYPE_NAME)) {
            types = new UIFactoryTypes(
                Collections.singleton(JWindowFactory.TYPE_NAME));
            factory = new MarshalledObject<UIWindowFactory>(new UIWindowFactory(urls, className));
            desc.toolkit = JWindowFactory.TOOLKIT;
        } else {
            throw new IllegalArgumentException("unknown typeName "+typeName);
        }
        desc.attributes = Collections.singleton(types);
        desc.factory = factory;
        return (desc);
    }
   
    /**
     * Get a UIDescriptor for a JComponentFactory
     *
     * @param role The role
     * @param factory A JComponentFactory
     *
     * @return A UIDescriptor
     *
     * @throws IOException if the MarshalledObject cannot be created
     */
    public static UIDescriptor getUIDescriptor(String role, JComponentFactory factory) throws IOException {
        if(role==null)
            throw new IllegalArgumentException("role is null");
        if(factory==null)
            throw new IllegalArgumentException("factory is null");
        UIDescriptor desc = new UIDescriptor();
        desc.role = role;
        desc.toolkit = JComponentFactory.TOOLKIT;
        desc.attributes = Collections.singleton(new UIFactoryTypes(Collections.singleton(JComponentFactory.TYPE_NAME)));
        desc.factory = new MarshalledObject<JComponentFactory>(factory);
        return (desc);
    }

    /**
     * Get a UIDescriptor for a JDialogFactory
     *
     * @param role The role
     * @param factory A JDialogFactory
     *
     * @return A UIDescriptor
     *
     * @throws IOException if the MarshalledObject cannot be created
     */
    public static UIDescriptor getUIDescriptor(String role, JDialogFactory factory) throws IOException {
        if(role==null)
            throw new IllegalArgumentException("role is null");
        if(factory==null)
            throw new IllegalArgumentException("factory is null");
        UIDescriptor desc = new UIDescriptor();
        desc.role = role;
        desc.toolkit = JDialogFactory.TOOLKIT;
        desc.attributes = Collections.singleton(new UIFactoryTypes(Collections.singleton(JDialogFactory.TYPE_NAME)));
        desc.factory = new MarshalledObject<JDialogFactory>(factory);
        return (desc);
    }

    /**
     * Get a UIDescriptor for a JFrameFactory
     * @param role The role
     * @param factory A JFrameFactory
     *
     * @return A UIDescriptor
     *
     * @throws IOException if the MarshalledObject cannot be created
     */
    public static UIDescriptor getUIDescriptor(String role, JFrameFactory factory) throws IOException {
        if(role==null)
            throw new IllegalArgumentException("role is null");
        if(factory==null)
            throw new IllegalArgumentException("factory is null");
        UIDescriptor desc = new UIDescriptor();
        desc.role = role;
        desc.toolkit = JFrameFactory.TOOLKIT;
        desc.attributes = Collections.singleton(new UIFactoryTypes(Collections.singleton(JFrameFactory.TYPE_NAME)));
        desc.factory = new MarshalledObject<JFrameFactory>(factory);
        return (desc);
    }

    public static UIDescriptor getUIDescriptor(String role, JWindowFactory factory) throws IOException {
        if(role==null)
            throw new IllegalArgumentException("role is null");
        if(factory==null)
            throw new IllegalArgumentException("factory is null");
        UIDescriptor desc = new UIDescriptor();
        desc.role = role;
        desc.toolkit = JWindowFactory.TOOLKIT;
        desc.attributes = Collections.singleton(new UIFactoryTypes(Collections.singleton(JWindowFactory.TYPE_NAME)));
        desc.factory = new MarshalledObject<JWindowFactory>(factory);
        return (desc);
    }
}
TOP

Related Classes of org.rioproject.entry.UIDescriptorFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.