/* * Copyright (c) 2010, Michael 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 THE COPYRIGHT OWNER OR CONTRIBUTORS 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.api.widgets.blueprint.factory; import java.text.DateFormat; import java.util.Collection; import java.util.Date; import java.util.List; import org.jowidgets.api.convert.IConverter; import org.jowidgets.api.convert.IObjectStringConverter; import org.jowidgets.api.convert.ISliderViewerConverter; import org.jowidgets.api.login.ILoginInterceptor; import org.jowidgets.api.model.levelmeter.ILevelMeterModel; import org.jowidgets.api.model.table.ITableColumnModel; import org.jowidgets.api.model.table.ITableModel; import org.jowidgets.api.model.tree.ITreeNodeModel; import org.jowidgets.api.password.IPasswordChangeExecutor; import org.jowidgets.api.widgets.IInputComponent; import org.jowidgets.api.widgets.IInputControl; import org.jowidgets.api.widgets.IWidget; import org.jowidgets.api.widgets.blueprint.IActionMenuItemBluePrint; import org.jowidgets.api.widgets.blueprint.IButtonBluePrint; import org.jowidgets.api.widgets.blueprint.ICalendarBluePrint; import org.jowidgets.api.widgets.blueprint.ICanvasBluePrint; import org.jowidgets.api.widgets.blueprint.ICheckBoxBluePrint; import org.jowidgets.api.widgets.blueprint.ICheckedMenuItemBluePrint; import org.jowidgets.api.widgets.blueprint.ICollectionInputControlBluePrint; import org.jowidgets.api.widgets.blueprint.ICollectionInputDialogBluePrint; import org.jowidgets.api.widgets.blueprint.ICollectionInputFieldBluePrint; import org.jowidgets.api.widgets.blueprint.ICombinedCollectionInputFieldBluePrint; import org.jowidgets.api.widgets.blueprint.IComboBoxBluePrint; import org.jowidgets.api.widgets.blueprint.IComboBoxSelectionBluePrint; import org.jowidgets.api.widgets.blueprint.ICompositeBluePrint; import org.jowidgets.api.widgets.blueprint.IDialogBluePrint; import org.jowidgets.api.widgets.blueprint.IDirectoryChooserBluePrint; import org.jowidgets.api.widgets.blueprint.IDynamicFlowLayoutCompositeBluePrint; import org.jowidgets.api.widgets.blueprint.IExpandCompositeBluePrint; import org.jowidgets.api.widgets.blueprint.IFileChooserBluePrint; import org.jowidgets.api.widgets.blueprint.IFrameBluePrint; import org.jowidgets.api.widgets.blueprint.IIconBluePrint; import org.jowidgets.api.widgets.blueprint.IInputComponentValidationLabelBluePrint; import org.jowidgets.api.widgets.blueprint.IInputCompositeBluePrint; import org.jowidgets.api.widgets.blueprint.IInputDialogBluePrint; import org.jowidgets.api.widgets.blueprint.IInputFieldBluePrint; import org.jowidgets.api.widgets.blueprint.ILabelBluePrint; import org.jowidgets.api.widgets.blueprint.ILevelMeterBluePrint; import org.jowidgets.api.widgets.blueprint.ILoginDialogBluePrint; import org.jowidgets.api.widgets.blueprint.IMainMenuBluePrint; import org.jowidgets.api.widgets.blueprint.IMessageDialogBluePrint; import org.jowidgets.api.widgets.blueprint.IPasswordChangeDialogBluePrint; import org.jowidgets.api.widgets.blueprint.IPopupDialogBluePrint; import org.jowidgets.api.widgets.blueprint.IProgressBarBluePrint; import org.jowidgets.api.widgets.blueprint.IQuestionDialogBluePrint; import org.jowidgets.api.widgets.blueprint.IRadioMenuItemBluePrint; import org.jowidgets.api.widgets.blueprint.IScrollCompositeBluePrint; import org.jowidgets.api.widgets.blueprint.ISeparatorBluePrint; import org.jowidgets.api.widgets.blueprint.ISeparatorMenuItemBluePrint; import org.jowidgets.api.widgets.blueprint.ISeparatorToolBarItemBluePrint; import org.jowidgets.api.widgets.blueprint.ISliderBluePrint; import org.jowidgets.api.widgets.blueprint.ISliderViewerBluePrint; import org.jowidgets.api.widgets.blueprint.ISplitCompositeBluePrint; import org.jowidgets.api.widgets.blueprint.ISubMenuBluePrint; import org.jowidgets.api.widgets.blueprint.ITabFolderBluePrint; import org.jowidgets.api.widgets.blueprint.ITabItemBluePrint; import org.jowidgets.api.widgets.blueprint.ITableBluePrint; import org.jowidgets.api.widgets.blueprint.ITextAreaBluePrint; import org.jowidgets.api.widgets.blueprint.ITextFieldBluePrint; import org.jowidgets.api.widgets.blueprint.ITextLabelBluePrint; import org.jowidgets.api.widgets.blueprint.ITextSeparatorBluePrint; import org.jowidgets.api.widgets.blueprint.IToggleButtonBluePrint; import org.jowidgets.api.widgets.blueprint.IToolBarBluePrint; import org.jowidgets.api.widgets.blueprint.IToolBarButtonBluePrint; import org.jowidgets.api.widgets.blueprint.IToolBarContainerItemBluePrint; import org.jowidgets.api.widgets.blueprint.IToolBarMenuBluePrint; import org.jowidgets.api.widgets.blueprint.IToolBarPopupButtonBluePrint; import org.jowidgets.api.widgets.blueprint.IToolBarToggleButtonBluePrint; import org.jowidgets.api.widgets.blueprint.ITreeBluePrint; import org.jowidgets.api.widgets.blueprint.ITreeNodeBluePrint; import org.jowidgets.api.widgets.blueprint.ITreeViewerBluePrint; import org.jowidgets.api.widgets.blueprint.IUnitValueFieldBluePrint; import org.jowidgets.api.widgets.blueprint.IValidationResultLabelBluePrint; import org.jowidgets.api.widgets.blueprint.convenience.ISetupBuilderConvenience; import org.jowidgets.api.widgets.blueprint.defaults.IDefaultInitializer; import org.jowidgets.api.widgets.content.IInputContentCreator; import org.jowidgets.api.widgets.descriptor.IInputFieldDescriptor; import org.jowidgets.api.widgets.descriptor.setup.ICollectionInputControlSetup; import org.jowidgets.common.image.IImageConstant; import org.jowidgets.common.mask.ITextMask; import org.jowidgets.common.model.ITableDataModel; import org.jowidgets.common.types.FileChooserType; import org.jowidgets.common.widgets.builder.ISetupBuilder; import org.jowidgets.common.widgets.descriptor.IWidgetDescriptor; import org.jowidgets.common.widgets.factory.ICustomWidgetCreator; import org.jowidgets.unit.api.IUnit; import org.jowidgets.unit.api.IUnitConverter; import org.jowidgets.unit.api.IUnitSet; public interface IBluePrintFactory { /** * @deprecated Use {@link IBluePrintProxyFactory#bluePrint(Class)} instead */ @Deprecated <WIDGET_TYPE extends IWidget, BLUE_PRINT_TYPE extends ISetupBuilder<BLUE_PRINT_TYPE> & IWidgetDescriptor<WIDGET_TYPE>> BLUE_PRINT_TYPE bluePrint( Class<BLUE_PRINT_TYPE> bluePrintType); /** * @deprecated Use {@link IBluePrintProxyFactory#setSetupBuilderConvenience(Class, ISetupBuilderConvenience)} instead */ @Deprecated @SuppressWarnings("rawtypes") void setSetupBuilderConvenience( Class<? extends ISetupBuilder> setupBuilder, ISetupBuilderConvenience<?> setupBuilderConvenience); /** * @deprecated Use {@link IBluePrintProxyFactory#addDefaultsInitializer(Class, IDefaultInitializer)} instead */ @Deprecated @SuppressWarnings("rawtypes") void addDefaultsInitializer(Class<? extends ISetupBuilder> setupBuilder, IDefaultInitializer<?> defaultInitializer); /** * @deprecated Use {@link IBluePrintProxyFactory#setDefaultsInitializer(Class, IDefaultInitializer)} instead */ @Deprecated @SuppressWarnings("rawtypes") void setDefaultsInitializer(Class<? extends ISetupBuilder> setupBuilder, IDefaultInitializer<?> defaultInitializer); //////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////// basic widgets////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////// IFrameBluePrint frame(); IDialogBluePrint dialog(); IPopupDialogBluePrint popupDialog(); IFileChooserBluePrint fileChooser(FileChooserType type); IDirectoryChooserBluePrint directoryChooser(); ICompositeBluePrint composite(); IScrollCompositeBluePrint scrollComposite(); ISplitCompositeBluePrint splitComposite(); ITextLabelBluePrint textLabel(); IIconBluePrint icon(); ISeparatorBluePrint separator(); ITextFieldBluePrint textField(); ITextAreaBluePrint textArea(); IButtonBluePrint button(); ICheckBoxBluePrint checkBox(); IToggleButtonBluePrint toggleButton(); <INPUT_TYPE> IComboBoxBluePrint<INPUT_TYPE> comboBox(IConverter<INPUT_TYPE> converter); <INPUT_TYPE> IComboBoxSelectionBluePrint<INPUT_TYPE> comboBoxSelection( IObjectStringConverter<INPUT_TYPE> objectStringConverter); IActionMenuItemBluePrint menuItem(); IRadioMenuItemBluePrint radioMenuItem(); ICheckedMenuItemBluePrint checkedMenuItem(); ISubMenuBluePrint subMenu(); IMainMenuBluePrint mainMenu(); ISeparatorMenuItemBluePrint menuSeparator(); ISeparatorToolBarItemBluePrint toolBarSeparator(); IToolBarBluePrint toolBar(); IToolBarButtonBluePrint toolBarButton(); IToolBarToggleButtonBluePrint toolBarToggleButton(); IToolBarPopupButtonBluePrint toolBarPopupButton(); IToolBarMenuBluePrint toolBarMenu(); IToolBarContainerItemBluePrint toolBarContainerItem(); ITabFolderBluePrint tabFolder(); ITabItemBluePrint tabItem(); ITreeBluePrint tree(); <ROOT_NODE_VALUE_TYPE> ITreeViewerBluePrint<ROOT_NODE_VALUE_TYPE> treeViewer(ITreeNodeModel<ROOT_NODE_VALUE_TYPE> model); ITreeNodeBluePrint treeNode(); ITableBluePrint table(ITableModel model); ITableBluePrint table(ITableColumnModel columnModel, ITableDataModel dataModel); ICalendarBluePrint calendar(); ISliderBluePrint slider(); ICanvasBluePrint canvas(); ILevelMeterBluePrint levelMeter(ILevelMeterModel model); ///////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////some convenience methods starting here/////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////// IFrameBluePrint frame(String title); IFrameBluePrint frame(String title, IImageConstant icon); IDialogBluePrint dialog(String title); IDialogBluePrint dialog(String title, IImageConstant icon); ICompositeBluePrint compositeWithBorder(); ICompositeBluePrint composite(String borderTitle); IScrollCompositeBluePrint scrollCompositeWithBorder(); IScrollCompositeBluePrint scrollComposite(String borderTitle); ISplitCompositeBluePrint splitHorizontal(); ISplitCompositeBluePrint splitVertical(); IButtonBluePrint button(String text); IButtonBluePrint button(String text, String toolTipText); IButtonBluePrint buttonOk(); IButtonBluePrint buttonCancel(); IButtonBluePrint buttonSave(); IButtonBluePrint buttonClose(); IButtonBluePrint buttonDetails(); IIconBluePrint icon(IImageConstant icon); ITextLabelBluePrint textLabel(String text); ITextLabelBluePrint textLabel(String text, String tooltipText); IComboBoxBluePrint<String> comboBox(); IComboBoxBluePrint<String> comboBox(String... elements); IComboBoxBluePrint<String> comboBox(List<String> elements); IComboBoxBluePrint<String> comboBoxString(); IComboBoxBluePrint<Long> comboBoxLongNumber(); IComboBoxBluePrint<Integer> comboBoxIntegerNumber(); IComboBoxBluePrint<Short> comboBoxShortNumber(); IComboBoxSelectionBluePrint<String> comboBoxSelection(); IComboBoxSelectionBluePrint<String> comboBoxSelection(String... elements); <VALUE_TYPE> IComboBoxSelectionBluePrint<VALUE_TYPE> comboBoxSelection(Collection<VALUE_TYPE> elements); IComboBoxSelectionBluePrint<String> comboBoxSelection(List<String> elements); <ENUM_TYPE extends Enum<?>> IComboBoxSelectionBluePrint<ENUM_TYPE> comboBoxSelection(ENUM_TYPE... enumValues); IComboBoxSelectionBluePrint<IUnit> comboBoxSelection(IUnitSet unitSet); IComboBoxSelectionBluePrint<String> comboBoxSelectionString(); IComboBoxSelectionBluePrint<Long> comboBoxSelectionLongNumber(); IComboBoxSelectionBluePrint<Integer> comboBoxSelectionIntegerNumber(); IComboBoxSelectionBluePrint<Short> comboBoxSelectionShortNumber(); IComboBoxSelectionBluePrint<Boolean> comboBoxSelectionBoolean(); IActionMenuItemBluePrint menuItem(String text); IRadioMenuItemBluePrint radioMenuItem(String text); ICheckedMenuItemBluePrint checkedMenuItem(String text); ISubMenuBluePrint subMenu(String text); IMainMenuBluePrint mainMenu(String text); //////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////// composite widgets////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////// ILabelBluePrint label(); ITextSeparatorBluePrint textSeparator(); IInputComponentValidationLabelBluePrint inputComponentValidationLabel(IInputComponent<?> inputComponent); IInputComponentValidationLabelBluePrint inputComponentValidationLabel(); IValidationResultLabelBluePrint validationResultLabel(); <INPUT_TYPE> IInputFieldBluePrint<INPUT_TYPE> inputField(); <INPUT_TYPE> IInputFieldBluePrint<INPUT_TYPE> inputField(IConverter<INPUT_TYPE> converter); <INPUT_TYPE> IInputFieldBluePrint<INPUT_TYPE> inputField(IObjectStringConverter<INPUT_TYPE> converter); <BASE_VALUE_TYPE, UNIT_VALUE_TYPE> IUnitValueFieldBluePrint<BASE_VALUE_TYPE, UNIT_VALUE_TYPE> unitValueField(); <BASE_VALUE_TYPE, UNIT_VALUE_TYPE> IUnitValueFieldBluePrint<BASE_VALUE_TYPE, UNIT_VALUE_TYPE> unitValueField( Class<? extends UNIT_VALUE_TYPE> inputFieldType); <BASE_VALUE_TYPE, UNIT_VALUE_TYPE> IUnitValueFieldBluePrint<BASE_VALUE_TYPE, UNIT_VALUE_TYPE> unitValueField( IUnitSet unitSet, IUnitConverter<BASE_VALUE_TYPE, UNIT_VALUE_TYPE> converter, IInputFieldDescriptor<UNIT_VALUE_TYPE> inputField); <BASE_VALUE_TYPE, UNIT_VALUE_TYPE> IUnitValueFieldBluePrint<BASE_VALUE_TYPE, UNIT_VALUE_TYPE> unitValueField( IUnitSet unitSet, IUnitConverter<BASE_VALUE_TYPE, UNIT_VALUE_TYPE> converter, Class<? extends UNIT_VALUE_TYPE> inputFieldType); IMessageDialogBluePrint messageDialog(); IQuestionDialogBluePrint questionDialog(); IProgressBarBluePrint progressBar(); <INPUT_TYPE> IInputDialogBluePrint<INPUT_TYPE> inputDialog(IInputContentCreator<INPUT_TYPE> contentCreator); <INPUT_TYPE> IInputCompositeBluePrint<INPUT_TYPE> inputComposite(IInputContentCreator<INPUT_TYPE> contentCreator); ILoginDialogBluePrint loginDialog(ILoginInterceptor interceptor); IPasswordChangeDialogBluePrint passwordChangeDialog(IPasswordChangeExecutor executor); <ELEMENT_TYPE> ICollectionInputControlBluePrint<ELEMENT_TYPE> collectionInputControl( ICustomWidgetCreator<IInputControl<ELEMENT_TYPE>> widgetCreator); <ELEMENT_TYPE> ICollectionInputDialogBluePrint<ELEMENT_TYPE> collectionInputDialog( ICollectionInputControlSetup<ELEMENT_TYPE> setup); <ELEMENT_TYPE> ICollectionInputFieldBluePrint<ELEMENT_TYPE> collectionInputField(IConverter<ELEMENT_TYPE> converter); <ELEMENT_TYPE> ICollectionInputFieldBluePrint<ELEMENT_TYPE> collectionInputField( IObjectStringConverter<ELEMENT_TYPE> converter); <ELEMENT_TYPE> ICollectionInputFieldBluePrint<ELEMENT_TYPE> collectionInputField(); <ELEMENT_TYPE> ICombinedCollectionInputFieldBluePrint<ELEMENT_TYPE> combinedCollectionInputField( ICustomWidgetCreator<IInputControl<ELEMENT_TYPE>> elementTypeCreator, ICustomWidgetCreator<IInputControl<? extends Collection<ELEMENT_TYPE>>> collectionTypeCreator); IExpandCompositeBluePrint expandComposite(); <VALUE_TYPE> ISliderViewerBluePrint<VALUE_TYPE> sliderViewer(); <VALUE_TYPE> ISliderViewerBluePrint<VALUE_TYPE> sliderViewer(ISliderViewerConverter<VALUE_TYPE> converter); IDynamicFlowLayoutCompositeBluePrint dynamicFlowLayoutComposite(); //////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////// some input fields here///////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////// IInputFieldBluePrint<String> inputFieldString(); IInputFieldBluePrint<Long> inputFieldLongNumber(); IInputFieldBluePrint<Integer> inputFieldIntegerNumber(); IInputFieldBluePrint<Short> inputFieldShortNumber(); IInputFieldBluePrint<Double> inputFieldDoubleNumber(); IInputFieldBluePrint<Double> inputFieldDoubleNumber(int minFractionDigits, int maxFractionDigits); IInputFieldBluePrint<Date> inputFieldDate(DateFormat dateFormat, String formatHint, ITextMask mask); IInputFieldBluePrint<Date> inputFieldDate(DateFormat dateFormat, String formatHint); IInputFieldBluePrint<Date> inputFieldDate(); IInputFieldBluePrint<Date> inputFieldDateTime(); IInputFieldBluePrint<Date> inputFieldTime(); ///////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////some convenience methods starting here/////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////// ILabelBluePrint label(IImageConstant icon); ILabelBluePrint label(IImageConstant icon, String text); ILabelBluePrint label(IImageConstant icon, String text, String toolTiptext); ITextSeparatorBluePrint textSeparator(String text); ITextSeparatorBluePrint textSeparator(String text, String tooltipText); IQuestionDialogBluePrint yesNoQuestion(); IQuestionDialogBluePrint yesNoCancelQuestion(); IQuestionDialogBluePrint yesNoQuestion(String question); IQuestionDialogBluePrint yesNoCancelQuestion(String question); IMessageDialogBluePrint infoDialog(); IMessageDialogBluePrint warningDialog(); IMessageDialogBluePrint errorDialog(); IMessageDialogBluePrint infoDialog(String message); IMessageDialogBluePrint warningDialog(String message); IMessageDialogBluePrint errorDialog(String message); IProgressBarBluePrint progressBar(int minimum, int maximum); IProgressBarBluePrint progressBar(int maximum); <ELEMENT_TYPE> ICollectionInputControlBluePrint<ELEMENT_TYPE> collectionInputControl( IWidgetDescriptor<? extends IInputControl<ELEMENT_TYPE>> descriptor); <ELEMENT_TYPE> ICollectionInputDialogBluePrint<ELEMENT_TYPE> collectionInputDialog( ICustomWidgetCreator<? extends IInputControl<ELEMENT_TYPE>> widgetCreator); <ELEMENT_TYPE> ICollectionInputDialogBluePrint<ELEMENT_TYPE> collectionInputDialog( IWidgetDescriptor<? extends IInputControl<ELEMENT_TYPE>> descriptor); ISliderViewerBluePrint<Double> sliderViewerDouble(); ISliderViewerBluePrint<Double> sliderViewerDouble(double max); ISliderViewerBluePrint<Double> sliderViewerDouble(double min, double max); ISliderViewerBluePrint<Float> sliderViewerFloat(); ISliderViewerBluePrint<Float> sliderViewerFloat(float max); ISliderViewerBluePrint<Float> sliderViewerFloat(float min, float max); ISliderViewerBluePrint<Integer> sliderViewerInteger(int max); ISliderViewerBluePrint<Integer> sliderViewerInteger(int min, int max); ISliderViewerBluePrint<Long> sliderViewerLong(long max); ISliderViewerBluePrint<Long> sliderViewerLong(long min, long max); }