/* * Copyright (c) 2010, grossmann * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of the jo-widgets.org nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL jo-widgets.org BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ package org.jowidgets.tools.powo; import org.jowidgets.api.widgets.descriptor.IActionMenuItemDescriptor; import org.jowidgets.api.widgets.descriptor.IButtonDescriptor; import org.jowidgets.api.widgets.descriptor.ICheckBoxDescriptor; import org.jowidgets.api.widgets.descriptor.ICheckedMenuItemDescriptor; import org.jowidgets.api.widgets.descriptor.IComboBoxDescriptor; import org.jowidgets.api.widgets.descriptor.IComboBoxSelectionDescriptor; import org.jowidgets.api.widgets.descriptor.ICompositeDescriptor; import org.jowidgets.api.widgets.descriptor.IIconDescriptor; import org.jowidgets.api.widgets.descriptor.ILabelDescriptor; import org.jowidgets.api.widgets.descriptor.IProgressBarDescriptor; import org.jowidgets.api.widgets.descriptor.IRadioMenuItemDescriptor; import org.jowidgets.api.widgets.descriptor.IScrollCompositeDescriptor; import org.jowidgets.api.widgets.descriptor.ISeparatorDescriptor; import org.jowidgets.api.widgets.descriptor.ISeparatorMenuItemDescriptor; import org.jowidgets.api.widgets.descriptor.ISplitCompositeDescriptor; import org.jowidgets.api.widgets.descriptor.ISubMenuDescriptor; import org.jowidgets.api.widgets.descriptor.ITextLabelDescriptor; import org.jowidgets.api.widgets.descriptor.IToggleButtonDescriptor; import org.jowidgets.common.widgets.descriptor.IWidgetDescriptor; import org.jowidgets.util.Assert; /** * @deprecated The idea of POWO's (Plain Old Widget Object's) has not been established. * For that, POWO's will no longer be supported and may removed completely in middle term. * Feel free to move them to your own open source project. */ @Deprecated class JoWidgetFactory { @SuppressWarnings({"rawtypes", "unchecked"}) Widget create(final IWidgetDescriptor descriptor) { Assert.paramNotNull(descriptor, "descriptor"); if (descriptor instanceof IButtonDescriptor) { return new JoButton((IButtonDescriptor) descriptor); } else if (descriptor instanceof ICheckBoxDescriptor) { return new JoCheckBox((ICheckBoxDescriptor) descriptor); } else if (descriptor instanceof IComboBoxSelectionDescriptor) { return new JoComboBoxSelection((IComboBoxSelectionDescriptor) descriptor); } else if (descriptor instanceof IComboBoxDescriptor) { return new JoComboBox((IComboBoxDescriptor) descriptor); } else if (descriptor instanceof ICompositeDescriptor) { return new JoComposite((ICompositeDescriptor) descriptor); } else if (descriptor instanceof IIconDescriptor) { return new JoIcon((IIconDescriptor) descriptor); } else if (descriptor instanceof ILabelDescriptor) { return new JoLabel((ILabelDescriptor) descriptor); } else if (descriptor instanceof IProgressBarDescriptor) { return new JoProgressBar((IProgressBarDescriptor) descriptor); } else if (descriptor instanceof IScrollCompositeDescriptor) { return new JoScrollComposite((IScrollCompositeDescriptor) descriptor); } else if (descriptor instanceof ISplitCompositeDescriptor) { return new JoSplitComposite((ISplitCompositeDescriptor) descriptor); } else if (descriptor instanceof ITextLabelDescriptor) { return new JoTextLabel((ITextLabelDescriptor) descriptor); } else if (descriptor instanceof IToggleButtonDescriptor) { return new JoToggleButton((IToggleButtonDescriptor) descriptor); } else if (descriptor instanceof IActionMenuItemDescriptor) { return new JoActionMenuItem((IActionMenuItemDescriptor) descriptor); } else if (descriptor instanceof ICheckedMenuItemDescriptor) { return new JoCheckedMenuItem((ICheckedMenuItemDescriptor) descriptor); } else if (descriptor instanceof IRadioMenuItemDescriptor) { return new JoRadioMenuItem((IRadioMenuItemDescriptor) descriptor); } else if (descriptor instanceof ISubMenuDescriptor) { return new JoSubMenu((ISubMenuDescriptor) descriptor); } else if (descriptor instanceof ISeparatorMenuItemDescriptor) { return new JoSeparatorMenuItem((ISeparatorMenuItemDescriptor) descriptor); } else if (descriptor instanceof ISeparatorDescriptor) { return new Control(descriptor); } else { throw new IllegalArgumentException("Could not create a Widget from descriptor '" + descriptor.getDescriptorInterface().getName() + "' Descriptor is not yet supported for Powo's (Plain old widget objects)"); } } }