/** * Copyright (C) 2015 Orange * 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.francetelecom.clara.cloud.presentation.environments; import com.francetelecom.clara.cloud.core.service.ManageApplication; import com.francetelecom.clara.cloud.core.service.ManageEnvironment; import com.francetelecom.clara.cloud.logicalmodel.LogicalConfigService; import com.francetelecom.clara.cloud.presentation.HomePage; import com.francetelecom.clara.cloud.presentation.common.Breadcrumbs; import com.francetelecom.clara.cloud.presentation.common.NavigationMenuFirstLevel; import com.francetelecom.clara.cloud.presentation.designer.pages.DesignerHelperPage; import com.francetelecom.clara.cloud.presentation.tools.BreadcrumbsItem; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxLink; import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.panel.EmptyPanel; import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.request.mapper.parameter.PageParameters; import org.apache.wicket.spring.injection.annot.SpringBean; import org.slf4j.LoggerFactory; import org.wicketstuff.annotation.mount.MountPath; import java.util.ArrayList; import java.util.List; /** * Created by IntelliJ IDEA. * User: lzxv3002 * Date: 29/07/11 * Time: 17:51 * To change this template use File | Settings | File Templates. */ @MountPath("/environments") @AuthorizeInstantiation({"ROLE_USER","ROLE_ADMIN"}) public class EnvironmentsPage extends DesignerHelperPage { /** * serialUID */ private static final long serialVersionUID = -2297075104182302118L; /** * logger */ private static final transient org.slf4j.Logger logger = LoggerFactory.getLogger(EnvironmentsPage.class); @SpringBean private ManageEnvironment manageEnvironment; @SpringBean private ManageApplication manageApplication; private WebMarkupContainer container; private FeedbackPanel globalFeedback; private AjaxLink newEnvironment; private WebMarkupContainer buttonContainer; private EnvironmentsTablePanel environmentsTablePanel; private EnvironmentCreatePanel envCreatePanel; public EnvironmentsPage(final PageParameters params) { super(params); initComponents(); } private void initComponents() { setPagetitle(); createFirstLevelNavigation(); createBreadCrumbs(); createGlobalFeedbackPanel(); createEmptyEnvironmentsFormPanel(); createNewEnvironmentButton(); createEnvironmentsTable(); } private void setPagetitle() { /* set head page title to display in browser title bar */ add(new Label("head_page_title", getString("portal.design.web.title.environments.home"))); } private void createFirstLevelNavigation() { NavigationMenuFirstLevel navFirstLvl = new NavigationMenuFirstLevel(); add(navFirstLvl); } private void createBreadCrumbs() { List<BreadcrumbsItem> breadcrumbsItems = new ArrayList<>(); breadcrumbsItems.add(new BreadcrumbsItem(HomePage.class, getPageParameters(), "portal.design.breadcrumbs.homepage", null, false)); breadcrumbsItems.add(new BreadcrumbsItem(this.getClass(), getPageParameters(), "portal.design.breadcrumbs.release.environment.home", null, true)); Breadcrumbs breadcrumbs = new Breadcrumbs("breadcrumbs", breadcrumbsItems); add(breadcrumbs); } private void createGlobalFeedbackPanel() { // globalFeedback = new FeedbackPanel("globalFeedback", new ComponentFeedbackMessageFilter(this)); globalFeedback = new FeedbackPanel("globalFeedback"); globalFeedback.setOutputMarkupId(true); add(globalFeedback); } private void createEmptyEnvironmentsFormPanel() { container = new WebMarkupContainer("createEnvironmentContainer"); container.setOutputMarkupId(true); container.add(new EmptyPanel("createEnvironmentForm")); add(container); } private void createNewEnvironmentButton() { buttonContainer = new WebMarkupContainer("buttonContainer"); buttonContainer.setOutputMarkupId(true); //create link newEnvironment = new AjaxLink("newEnvLink") { @Override public void onClick(AjaxRequestTarget target) { envCreatePanel = new EnvironmentCreatePanel("createEnvironmentForm", null, manageApplicationRelease, manageEnvironment, manageApplication); container.addOrReplace(envCreatePanel); target.add(container); this.setVisible(false); target.add(buttonContainer); } }; newEnvironment.setMarkupId("newEnvLink"); buttonContainer.add(newEnvironment); add(buttonContainer); } private void createEnvironmentsTable() { environmentsTablePanel = new EnvironmentsTablePanel("envsTablePanel", manageApplicationRelease, manageEnvironment, null); environmentsTablePanel.setOutputMarkupId(true); add(environmentsTablePanel); } public void cancelEnvironmentCreation(AjaxRequestTarget target) { resetPage(target); } private void resetPage(AjaxRequestTarget target) { newEnvironment.setVisible(true); target.add(buttonContainer); container.addOrReplace(new EmptyPanel("createEnvironmentForm")); target.add(container); } public FeedbackPanel getFeedbackPanel() { return globalFeedback; } public EnvironmentsTablePanel getEnvironmentsTablePanel() { return environmentsTablePanel; } public ManageEnvironment getManageEnvironment() { return manageEnvironment; } public void addEnvironmentConfigOverride(LogicalConfigService logicalConfigOverride) { envCreatePanel.addEnvironmentConfigOverride(logicalConfigOverride); } public LogicalConfigService getEnvironmentConfigOverride(String label) { return envCreatePanel.getEnvironmentConfigOverride(label); } }