/*
* Copyright (c) 2010 Lockheed Martin Corporation
*
* 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 org.eurekastreams.web.client.ui.pages.master;
import java.util.List;
import org.eurekastreams.server.domain.Page;
import org.eurekastreams.web.client.ui.ActionExecutorPanel;
import org.eurekastreams.web.client.ui.Session;
import org.eurekastreams.web.client.ui.pages.help.HelpContent;
import org.eurekastreams.web.client.ui.pages.metrics.MetricsSummaryContent;
import org.eurekastreams.web.client.ui.pages.oauth.OAuthAuthorizeContent;
import org.eurekastreams.web.client.ui.pages.profile.GroupProfilePanel;
import org.eurekastreams.web.client.ui.pages.profile.OrganizationProfilePanel;
import org.eurekastreams.web.client.ui.pages.profile.PersonalProfilePanel;
import org.eurekastreams.web.client.ui.pages.profile.settings.CreateGroupPanel;
import org.eurekastreams.web.client.ui.pages.profile.settings.CreateOrganizationPanel;
import org.eurekastreams.web.client.ui.pages.profile.settings.GroupProfileSettingsPanel;
import org.eurekastreams.web.client.ui.pages.profile.settings.OrganizationProfileSettingsPanel;
import org.eurekastreams.web.client.ui.pages.profile.settings.PersonalProfileSettingsPanel;
import org.eurekastreams.web.client.ui.pages.search.SearchContent;
import org.eurekastreams.web.client.ui.pages.settings.SettingsContent;
import org.eurekastreams.web.client.ui.pages.start.StartPageContent;
import org.eurekastreams.web.client.ui.pages.start.gallery.GalleryContent;
import org.eurekastreams.web.client.ui.pages.stream.StreamContent;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
/**
* Creates a page given a page and view.
*
*/
public class PageFactory
{
/**
* Creates a page given a page and view.
*
* @param page
* the page.
* @param views
* the views.
* @return the page widget.
*/
public Widget createPage(final Page page, final List<String> views)
{
RootPanel.get().setStyleName("");
String view = "";
if (views.size() > 0)
{
view = views.get(0);
}
switch (page)
{
case ACTION:
return new ActionExecutorPanel(Session.getInstance().getActionProcessor(), view);
case SEARCH:
return new SearchContent();
case SETTINGS:
return new SettingsContent(Session.getInstance().getActionProcessor());
case AUTHORIZE:
return new OAuthAuthorizeContent(Session.getInstance().getActionProcessor(), view);
case GALLERY:
return new GalleryContent();
case ACTIVITY:
return new StreamContent();
case PEOPLE:
return new PersonalProfilePanel(view);
case PERSONAL_SETTINGS:
return new PersonalProfileSettingsPanel();
case GROUPS:
return new GroupProfilePanel(view);
case GROUP_SETTINGS:
return new GroupProfileSettingsPanel(view);
case NEW_GROUP:
return new CreateGroupPanel(view);
case ORGANIZATIONS:
return new OrganizationProfilePanel(view);
case ORG_SETTINGS:
return new OrganizationProfileSettingsPanel(view);
case NEW_ORG:
return new CreateOrganizationPanel(view);
case HELP:
return new HelpContent();
case METRICS:
return new MetricsSummaryContent();
default:
return new StartPageContent();
}
}
}