/* * Copyright (c) 2009-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.common; import org.eurekastreams.web.client.history.CreateUrlRequest; import org.eurekastreams.web.client.ui.Session; import org.eurekastreams.web.client.ui.pages.master.StaticResourceBundle; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Hyperlink; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.RootPanel; /** * A settings panel should be extended to add a border, dim the banner, and add a close button. NOTE: This only works if * a banner is on the screen. More work would be needed otherwise. * */ public class SettingsPanel extends FlowPanel { /** * The content panel. */ private FlowPanel contentPanel; /** * The close button. */ private Hyperlink close; /** * The page title. */ private Label pageTitleLabel = new Label(); /** * Default constructor. * * @param inContentPanel * the panel containing the settings content. * * @param inPageTitle * the page title. */ public SettingsPanel(final FlowPanel inContentPanel, final String inPageTitle) { contentPanel = inContentPanel; setPageTitle(inPageTitle); RootPanel.get().addStyleName(StaticResourceBundle.INSTANCE.coreCss().settingsPanel()); contentPanel.setStyleName(StaticResourceBundle.INSTANCE.coreCss().settingsContent()); FlowPanel title = new FlowPanel(); title.addStyleName(StaticResourceBundle.INSTANCE.coreCss().settingsTitleBar()); close = new Hyperlink(); title.add(close); pageTitleLabel.setText(inPageTitle); title.add(pageTitleLabel); contentPanel.add(title); this.add(contentPanel); } /** * Sets the previous page link. * * @param urlRequest * the request to process to go to the previous page. * * @param title * the title for the link. */ public void setPreviousPage(final CreateUrlRequest urlRequest, final String title) { close.setText(title); close.setTargetHistoryToken(Session.getInstance().generateUrl(urlRequest)); } /** * Clears the panel, and adds the title bar. */ public void clearContentPanel() { contentPanel.clear(); FlowPanel title = new FlowPanel(); title.addStyleName(StaticResourceBundle.INSTANCE.coreCss().settingsTitleBar()); title.add(close); title.add(pageTitleLabel); contentPanel.add(title); } /** * @param inPageTitle * the pageTitle to set */ public void setPageTitle(final String inPageTitle) { pageTitleLabel.setText(inPageTitle); } }