/*
* Copyright (c) 2011 PonySDK
* Owners:
* Luciano Broussal <luciano.broussal AT gmail.com>
* Mathieu Barbier <mathieu.barbier AT gmail.com>
* Nicolas Ciaravola <nicolas.ciaravola.pro AT gmail.com>
*
* WebSite:
* http://code.google.com/p/pony-sdk/
*
* 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 com.ponysdk.core.terminal;
import java.util.logging.Logger;
import com.google.gwt.user.client.Window;
import com.ponysdk.core.model.WidgetType;
import com.ponysdk.core.terminal.ui.PTAbsolutePanel;
import com.ponysdk.core.terminal.ui.PTAddOn;
import com.ponysdk.core.terminal.ui.PTAddOnComposite;
import com.ponysdk.core.terminal.ui.PTAnchor;
import com.ponysdk.core.terminal.ui.PTBrowser;
import com.ponysdk.core.terminal.ui.PTButton;
import com.ponysdk.core.terminal.ui.PTCheckBox;
import com.ponysdk.core.terminal.ui.PTDateBox;
import com.ponysdk.core.terminal.ui.PTDatePicker;
import com.ponysdk.core.terminal.ui.PTDecoratedPopupPanel;
import com.ponysdk.core.terminal.ui.PTDecoratorPanel;
import com.ponysdk.core.terminal.ui.PTDialogBox;
import com.ponysdk.core.terminal.ui.PTDisclosurePanel;
import com.ponysdk.core.terminal.ui.PTDockLayoutPanel;
import com.ponysdk.core.terminal.ui.PTElement;
import com.ponysdk.core.terminal.ui.PTFileUpload;
import com.ponysdk.core.terminal.ui.PTFlexTable;
import com.ponysdk.core.terminal.ui.PTFlowPanel;
import com.ponysdk.core.terminal.ui.PTFocusPanel;
import com.ponysdk.core.terminal.ui.PTFrame;
import com.ponysdk.core.terminal.ui.PTGrid;
import com.ponysdk.core.terminal.ui.PTHTML;
import com.ponysdk.core.terminal.ui.PTHeaderPanel;
import com.ponysdk.core.terminal.ui.PTHorizontalPanel;
import com.ponysdk.core.terminal.ui.PTImage;
import com.ponysdk.core.terminal.ui.PTLabel;
import com.ponysdk.core.terminal.ui.PTLayoutPanel;
import com.ponysdk.core.terminal.ui.PTListBox;
import com.ponysdk.core.terminal.ui.PTMenuBar;
import com.ponysdk.core.terminal.ui.PTMenuItem;
import com.ponysdk.core.terminal.ui.PTMenuItemSeparator;
import com.ponysdk.core.terminal.ui.PTMultiWordSuggestOracle;
import com.ponysdk.core.terminal.ui.PTObject;
import com.ponysdk.core.terminal.ui.PTPasswordTextBox;
import com.ponysdk.core.terminal.ui.PTPopupPanel;
import com.ponysdk.core.terminal.ui.PTPushButton;
import com.ponysdk.core.terminal.ui.PTRadioButton;
import com.ponysdk.core.terminal.ui.PTRichTextArea;
import com.ponysdk.core.terminal.ui.PTRichTextToolbar;
import com.ponysdk.core.terminal.ui.PTRootLayoutPanel;
import com.ponysdk.core.terminal.ui.PTRootPanel;
import com.ponysdk.core.terminal.ui.PTScript;
import com.ponysdk.core.terminal.ui.PTScrollPanel;
import com.ponysdk.core.terminal.ui.PTSimpleLayoutPanel;
import com.ponysdk.core.terminal.ui.PTSimplePanel;
import com.ponysdk.core.terminal.ui.PTSplitLayoutPanel;
import com.ponysdk.core.terminal.ui.PTStackLayoutPanel;
import com.ponysdk.core.terminal.ui.PTSuggestBox;
import com.ponysdk.core.terminal.ui.PTTabLayoutPanel;
import com.ponysdk.core.terminal.ui.PTTabPanel;
import com.ponysdk.core.terminal.ui.PTTextArea;
import com.ponysdk.core.terminal.ui.PTTextBox;
import com.ponysdk.core.terminal.ui.PTTree;
import com.ponysdk.core.terminal.ui.PTTreeItem;
import com.ponysdk.core.terminal.ui.PTVerticalPanel;
import com.ponysdk.core.terminal.ui.PTWindow;
class UIFactory {
private static final Logger log = Logger.getLogger(UIFactory.class.getName());
PTObject newUIObject(final WidgetType widgetType) {
switch (widgetType) {
case ABSOLUTE_PANEL:
return new PTAbsolutePanel();
case ADDON:
return new PTAddOn();
case ADDON_COMPOSITE:
return new PTAddOnComposite();
case ANCHOR:
return new PTAnchor();
case BUTTON:
return new PTButton();
case CHECKBOX:
return new PTCheckBox<>();
case COMPOSITE:
log.severe("UIFactory: Client implementation not found, type : " + widgetType);
break;
case DATEBOX:
return new PTDateBox();
case DATEPICKER:
return new PTDatePicker();
case DECORATED_POPUP_PANEL:
return new PTDecoratedPopupPanel<>();
case DECORATOR_PANEL:
return new PTDecoratorPanel();
case DIALOG_BOX:
return new PTDialogBox();
case DISCLOSURE_PANEL:
return new PTDisclosurePanel();
case DOCK_LAYOUT_PANEL:
return new PTDockLayoutPanel<>();
case ELEMENT:
return new PTElement();
case FILE_UPLOAD:
return new PTFileUpload();
case FLEX_TABLE:
return new PTFlexTable();
case FLOW_PANEL:
return new PTFlowPanel();
case FOCUS_PANEL:
return new PTFocusPanel();
case GRID:
return new PTGrid();
case HEADER_PANEL:
return new PTHeaderPanel();
case HORIZONTAL_PANEL:
return new PTHorizontalPanel();
case HTML:
return new PTHTML();
case IMAGE:
return new PTImage();
case LABEL:
return new PTLabel<>();
case LAYOUT_PANEL:
return new PTLayoutPanel();
case LISTBOX:
return new PTListBox();
case MENU_BAR:
return new PTMenuBar();
case MENU_ITEM:
return new PTMenuItem();
case MENU_ITEM_SEPARATOR:
return new PTMenuItemSeparator();
case MULTIWORD_SUGGEST_ORACLE:
return new PTMultiWordSuggestOracle();
case PASSWORD_TEXTBOX:
return new PTPasswordTextBox();
case POPUP_PANEL:
return new PTPopupPanel<>();
case PUSH_BUTTON:
return new PTPushButton();
case RADIO_BUTTON:
return new PTRadioButton();
case RICH_TEXT_AREA:
return new PTRichTextArea();
case RICH_TEXT_TOOLBAR:
return new PTRichTextToolbar();
case ROOT_LAYOUT_PANEL:
return new PTRootLayoutPanel();
case ROOT_PANEL:
return new PTRootPanel();
case SCRIPT:
return new PTScript();
case SCROLL_PANEL:
return new PTScrollPanel();
case SIMPLE_LAYOUT_PANEL:
return new PTSimpleLayoutPanel();
case SIMPLE_PANEL:
return new PTSimplePanel<>();
case SPLIT_LAYOUT_PANEL:
return new PTSplitLayoutPanel();
case STACKLAYOUT_PANEL:
return new PTStackLayoutPanel();
case SUGGESTBOX:
return new PTSuggestBox();
case TAB_LAYOUT_PANEL:
return new PTTabLayoutPanel();
case TAB_PANEL:
return new PTTabPanel();
case TEXTBOX:
return new PTTextBox();
case TEXT_AREA:
return new PTTextArea();
case TREE:
return new PTTree();
case TREE_ITEM:
return new PTTreeItem();
case VERTICAL_PANEL:
return new PTVerticalPanel();
case WINDOW:
return new PTWindow();
case BROWSER:
return new PTBrowser();
case FRAME:
return new PTFrame();
default:
log.severe("UIFactory: Client implementation not found, type : " + widgetType);
break;
}
return null;
}
}