Java JProgressBar generateProgressBarFor(Object... objs)

Here you can find the source of generateProgressBarFor(Object... objs)

Description

generate Progress Bar For

License

Open Source License

Declaration

public static JProgressBar generateProgressBarFor(Object... objs) 

Method Source Code

//package com.java2s;
//License from project: Open Source License 

import java.awt.event.ComponentListener;
import java.awt.event.ContainerListener;
import java.awt.event.FocusListener;
import java.awt.event.HierarchyBoundsListener;
import java.awt.event.HierarchyListener;
import java.awt.event.InputMethodListener;

import java.awt.event.KeyListener;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.event.MouseWheelListener;
import java.beans.PropertyChangeListener;
import java.beans.VetoableChangeListener;

import javax.swing.BoundedRangeModel;

import javax.swing.JComponent;

import javax.swing.JProgressBar;

import javax.swing.event.AncestorListener;

import javax.swing.plaf.ProgressBarUI;

import java.awt.Container;
import java.awt.Component;

public class Main {
    public static JProgressBar generateProgressBarFor(Object... objs) {
        Container c = search(objs, Container.class);
        String[] name_value = search(objs, String[].class);
        BoundedRangeModel model = search(objs, BoundedRangeModel.class);
        Integer[] params = search(objs, Integer[].class);
        ProgressBarUI ui = search(objs, ProgressBarUI.class);
        JProgressBar pbar = (params == null || params.length > 3 || params.length < 1) ? new JProgressBar()
                : (params.length == 1 ? new JProgressBar(params[0])
                        : (params.length == 2 ? new JProgressBar(params[0], params[1])
                                : new JProgressBar(params[0], params[1], params[2])));
        if (model != null)
            pbar.setModel(model);//www. ja  va  2s .  co  m
        if (ui != null)
            pbar.setUI(ui);
        addJContainerListeners(pbar, objs);
        if (c != null)
            addToContainer(c, pbar);
        return pbar;
    }

    public static <T extends Component> T search(String name, Component comp) {
        if (name.equals(comp.getName())) {
            return (T) comp;
        } else if (comp instanceof Container) {
            for (Component c : ((Container) comp).getComponents())
                if ((c = search(name, c)) != null)
                    return (T) c;
        }
        return null;
    }

    private static <T> T search(Object[] objs, Class c) {
        for (Object o : objs) {
            if (c.isInstance(o))
                return (T) o;
        }
        return null;
    }

    private static void addJContainerListeners(JComponent c, Object... objs) {
        if (c == null)
            return;
        addContainerListeners(c, objs);
        AncestorListener ancestorListener = search(objs, AncestorListener.class);
        VetoableChangeListener vetoableChangeListener = search(objs, VetoableChangeListener.class);
        if (ancestorListener != null)
            c.addAncestorListener(ancestorListener);
        if (vetoableChangeListener != null)
            c.addVetoableChangeListener(vetoableChangeListener);
    }

    private static void addToContainer(Container c, Component element) {
        if (c == null)
            return;
        c.add(element);
    }

    private static void addContainerListeners(Container c, Object... objs) {
        if (c == null)
            return;
        addComponentListeners(c, objs);
        ContainerListener containerListener = search(objs, ContainerListener.class);
        PropertyChangeListener propertyChangeListener = search(objs, PropertyChangeListener.class);
        if (containerListener != null)
            c.addContainerListener(containerListener);
        if (propertyChangeListener != null)
            c.addPropertyChangeListener(propertyChangeListener);
    }

    private static void addComponentListeners(Component c, Object... objs) {
        if (c == null)
            return;
        ComponentListener componentListener = search(objs, ComponentListener.class);
        FocusListener focusListener = search(objs, FocusListener.class);
        HierarchyBoundsListener hierarchyBoundsListener = search(objs, HierarchyBoundsListener.class);
        HierarchyListener hierarchyListener = search(objs, HierarchyListener.class);
        InputMethodListener inputMethodListener = search(objs, InputMethodListener.class);
        KeyListener keyListener = search(objs, KeyListener.class);
        MouseListener mouseListener = search(objs, MouseListener.class);
        MouseMotionListener mouseMotionListener = search(objs, MouseMotionListener.class);
        MouseWheelListener mouseWheelListener = search(objs, MouseWheelListener.class);
        if (componentListener != null)
            c.addComponentListener(componentListener);
        if (focusListener != null)
            c.addFocusListener(focusListener);
        if (hierarchyBoundsListener != null)
            c.addHierarchyBoundsListener(hierarchyBoundsListener);
        if (hierarchyListener != null)
            c.addHierarchyListener(hierarchyListener);
        if (inputMethodListener != null)
            c.addInputMethodListener(inputMethodListener);
        if (keyListener != null)
            c.addKeyListener(keyListener);
        if (mouseListener != null)
            c.addMouseListener(mouseListener);
        if (mouseMotionListener != null)
            c.addMouseMotionListener(mouseMotionListener);
        if (mouseWheelListener != null)
            c.addMouseWheelListener(mouseWheelListener);
    }
}

Related

  1. createJProgressBar(String title)
  2. createPanel(String message, JProgressBar progressBar)
  3. createProgressBar()
  4. excutePost(String targetURL, String urlParameters, JProgressBar progress)
  5. incProgressBar(JProgressBar jpb)
  6. printProgress(JProgressBar prBar, int progressValue)
  7. SetProgressBar(JProgressBar jpb)
  8. showProgressBar(String message, int steps)