/**
* Copyright 2008-2016 Qualogy Solutions B.V.
*
* 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.qualogy.qafe.mgwt.client.main;
import java.util.List;
import java.util.Map;
import com.google.gwt.place.shared.PlaceController;
import com.google.gwt.user.client.ui.UIObject;
import com.google.web.bindery.event.shared.EventBus;
import com.google.web.bindery.event.shared.SimpleEventBus;
import com.qualogy.qafe.mgwt.client.activities.AboutView;
import com.qualogy.qafe.mgwt.client.activities.AboutViewGwtImpl;
import com.qualogy.qafe.mgwt.client.activities.ShowCaseListView;
import com.qualogy.qafe.mgwt.client.activities.UIView;
import com.qualogy.qafe.mgwt.client.activities.UIViewImpl;
import com.qualogy.qafe.mgwt.client.activities.animation.AnimationView;
import com.qualogy.qafe.mgwt.client.activities.animation.AnimationViewGwtImpl;
import com.qualogy.qafe.mgwt.client.activities.animationdone.AnimationDoneView;
import com.qualogy.qafe.mgwt.client.activities.animationdone.AnimationDoneViewGwtImpl;
import com.qualogy.qafe.mgwt.client.activities.button.ButtonView;
import com.qualogy.qafe.mgwt.client.activities.button.ButtonViewGwtImpl;
import com.qualogy.qafe.mgwt.client.activities.buttonbar.ButtonBarView;
import com.qualogy.qafe.mgwt.client.activities.buttonbar.ButtonBarViewGwtImpl;
import com.qualogy.qafe.mgwt.client.activities.elements.ElementsView;
import com.qualogy.qafe.mgwt.client.activities.elements.ElementsViewImpl;
import com.qualogy.qafe.mgwt.client.activities.forms.FormsView;
import com.qualogy.qafe.mgwt.client.activities.forms.FormsViewGwtImpl;
import com.qualogy.qafe.mgwt.client.activities.menu.MenuView;
import com.qualogy.qafe.mgwt.client.activities.popup.PopupView;
import com.qualogy.qafe.mgwt.client.activities.popup.PopupViewGwtImpl;
import com.qualogy.qafe.mgwt.client.activities.progressbar.ProgressBarView;
import com.qualogy.qafe.mgwt.client.activities.progressbar.ProgressBarViewImpl;
import com.qualogy.qafe.mgwt.client.activities.progressindicator.ProgressIndicatorView;
import com.qualogy.qafe.mgwt.client.activities.progressindicator.ProgressIndicatorViewImpl;
import com.qualogy.qafe.mgwt.client.activities.pulltorefresh.PullToRefreshDisplay;
import com.qualogy.qafe.mgwt.client.activities.pulltorefresh.PullToRefreshDisplayGwtImpl;
import com.qualogy.qafe.mgwt.client.activities.scrollwidget.ScrollWidgetView;
import com.qualogy.qafe.mgwt.client.activities.scrollwidget.ScrollWidgetViewImpl;
import com.qualogy.qafe.mgwt.client.activities.searchbox.SearchBoxView;
import com.qualogy.qafe.mgwt.client.activities.searchbox.SearchBoxViewGwtImpl;
import com.qualogy.qafe.mgwt.client.activities.slider.SliderView;
import com.qualogy.qafe.mgwt.client.activities.slider.SliderViewGwtImpl;
import com.qualogy.qafe.mgwt.client.activities.tabbar.TabBarView;
import com.qualogy.qafe.mgwt.client.activities.tabbar.TabBarViewGwtImpl;
import com.qualogy.qafe.mgwt.client.util.ComponentRepository;
import com.qualogy.qafe.mgwt.client.views.AbstractView;
import com.qualogy.qafe.mgwt.client.views.AppView;
import com.qualogy.qafe.mgwt.client.views.AppsView;
import com.qualogy.qafe.mgwt.client.views.HomeView;
import com.qualogy.qafe.mgwt.client.views.WindowView;
import com.qualogy.qafe.mgwt.client.views.impl.AppViewImpl;
import com.qualogy.qafe.mgwt.client.views.impl.AppsViewImpl;
import com.qualogy.qafe.mgwt.client.views.impl.HomeViewImpl;
import com.qualogy.qafe.mgwt.client.views.impl.WindowViewImpl;
import com.qualogy.qafe.mgwt.client.vo.ui.ComponentGVO;
public class ClientFactoryImpl implements ClientFactory {
private EventBus eventBus;
private PlaceController placeController;
private HomeView homeView = null;
private AppsView appsView = null;
private AppView appView = null;
private ShowCaseListView homeViewImpl;
private UIView uiView;
private AboutView aboutView;
private AnimationView animationView;
private AnimationDoneView animationDoneView;
private ScrollWidgetView scrollWidgetView;
private ElementsView elementsView;
private ButtonBarViewGwtImpl footerPanelView;
private SearchBoxViewGwtImpl searchBoxViewGwtImpl;
private TabBarView tabBarView;
private ButtonView buttonView;
private PopupView popupView;
private ProgressBarView progressBarView;
private SliderView sliderView;
private PullToRefreshDisplayGwtImpl pullToRefreshView;
private ProgressIndicatorViewImpl progressIndicatorView;
private FormsViewGwtImpl formsView;
private UIModel ui;
public ClientFactoryImpl() {
eventBus = new SimpleEventBus();
placeController = new QPlaceController(eventBus);
}
@Override
public EventBus getEventBus() {
return eventBus;
}
@Override
public PlaceController getPlaceController() {
return placeController;
}
@Override
public HomeView getHomeView() {
if (homeView == null) {
homeView = new HomeViewImpl();
}
return homeView;
}
@Override
public AppsView getAppsView() {
if (appsView == null) {
appsView = new AppsViewImpl();
}
return appsView;
}
@Override
public AppView getAppView() {
if (appView == null) {
appView = new AppViewImpl();
}
return appView;
}
@Override
public WindowView createWindowView() {
return new WindowViewImpl();
}
@Override
public AbstractView getView(String viewKey) {
return ComponentRepository.getInstance().getView(viewKey);
}
@Override
public Map<UIObject,ComponentGVO> getComponents(String viewKey) {
return ComponentRepository.getInstance().getComponents(viewKey);
}
@Override
public UIObject getOwner(String viewKey, String ownerId) {
return ComponentRepository.getInstance().getOwner(viewKey, ownerId);
}
@Override
public void addOwner(String viewKey, String ownerId, UIObject owner, ComponentGVO ownerGVO) {
ComponentRepository.getInstance().addOwner(viewKey, ownerId, owner, ownerGVO);
}
@Override
public Map<UIObject,ComponentGVO> getComponents(String viewKey, String ownerId) {
return ComponentRepository.getInstance().getComponents(viewKey, ownerId);
}
@Override
public boolean removeComponents(String viewKey, String ownerId) {
return ComponentRepository.getInstance().removeComponents(viewKey, ownerId);
}
@Override
public List<UIObject> getComponentById(String componentKey) {
return ComponentRepository.getInstance().getComponentById(componentKey);
}
@Override
public List<UIObject> getComponentByName(String componentKey) {
return ComponentRepository.getInstance().getComponentByName(componentKey);
}
@Override
public List<UIObject> getComponentByGroup(String componentKey) {
return ComponentRepository.getInstance().getComponentByGroup(componentKey);
}
@Override
public String generateViewKey(String windowId, String context) {
return ComponentRepository.getInstance().generateViewKey(windowId, context);
}
@Override
public String generateComponentKey(String component, String windowId, String context) {
return ComponentRepository.getInstance().generateComponentKey(component, windowId, context);
}
@Override
public UIModel getUIModel() {
return ui;
}
@Override
public void setUIModel(UIModel ui) {
this.ui= ui;
}
@Override
public UIView getUIView() {
if (uiView == null) {
uiView = new UIViewImpl();
}
return uiView;
}
@Override
public AboutView getAboutView() {
if (aboutView == null) {
aboutView = new AboutViewGwtImpl();
}
return aboutView;
}
@Override
public AnimationView getAnimationView() {
if (animationView == null) {
animationView = new AnimationViewGwtImpl();
}
return animationView;
}
@Override
public AnimationDoneView getAnimationDoneView() {
if (animationDoneView == null) {
animationDoneView = new AnimationDoneViewGwtImpl();
}
return animationDoneView;
}
@Override
public ScrollWidgetView getScrollWidgetView() {
if (scrollWidgetView == null) {
scrollWidgetView = new ScrollWidgetViewImpl();
}
return scrollWidgetView;
}
@Override
public ElementsView getElementsView() {
if (elementsView == null) {
elementsView = new ElementsViewImpl();
}
return elementsView;
}
@Override
public ButtonBarView getButtonBarView() {
if (footerPanelView == null) {
footerPanelView = new ButtonBarViewGwtImpl();
}
return footerPanelView;
}
@Override
public SearchBoxView getSearchBoxView() {
if (searchBoxViewGwtImpl == null) {
searchBoxViewGwtImpl = new SearchBoxViewGwtImpl();
}
return searchBoxViewGwtImpl;
}
@Override
public TabBarView getTabBarView() {
if (tabBarView == null) {
tabBarView = new TabBarViewGwtImpl();
}
return tabBarView;
}
@Override
public ButtonView getButtonView() {
if (buttonView == null) {
buttonView = new ButtonViewGwtImpl();
}
return buttonView;
}
@Override
public PopupView getPopupView() {
if (popupView == null) {
popupView = new PopupViewGwtImpl();
}
return popupView;
}
@Override
public ProgressBarView getProgressBarView() {
if (progressBarView == null) {
progressBarView = new ProgressBarViewImpl();
}
return progressBarView;
}
@Override
public SliderView getSliderView() {
if (sliderView == null) {
sliderView = new SliderViewGwtImpl();
}
return sliderView;
}
@Override
public PullToRefreshDisplay getPullToRefreshDisplay() {
if (pullToRefreshView == null) {
pullToRefreshView = new PullToRefreshDisplayGwtImpl();
}
return pullToRefreshView;
}
@Override
public ProgressIndicatorView getProgressIndicatorView() {
if (progressIndicatorView == null) {
progressIndicatorView = new ProgressIndicatorViewImpl();
}
return progressIndicatorView;
}
@Override
public FormsView getFormsView() {
if (formsView == null) {
formsView = new FormsViewGwtImpl();
}
return formsView;
}
@Override
public MenuView getMenuView() {
return null;
}
}