/* * Copyright 2015 Red Hat, Inc. and/or its affiliates. * * 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.uberfire.client.workbench.events; import org.uberfire.client.mvp.PlaceManager; import org.uberfire.mvp.PlaceRequest; /** * Fired by the PlaceManager before the process of closing a place begins. */ public class BeforeClosePlaceEvent extends AbstractPlaceEvent { private final boolean force; /** * Applications should not fire this event, so there is no reason to create instances of this class! * <p> * This constructor will be removed in UberFire 0.6. * @deprecated Prior to UberFire 0.5, it was possible for an application to close a place by firing this event. This * no longer works. Instead, use one of the PlaceManager.closeXXX methods. */ @Deprecated public BeforeClosePlaceEvent(final PlaceRequest place) { super(place); throw new UnsupportedOperationException("Don't fire this event from apps. Use one of the PlaceManager.closeXXX methods instead."); } /** * Applications should not fire this event, so there is no reason to create instances of this class! * <p> * This constructor will be removed in UberFire 0.6. * @deprecated Prior to UberFire 0.5, it was possible for an application to close a place by firing this event. This * no longer works. Instead, use one of the PlaceManager.closeXXX methods. */ @Deprecated public BeforeClosePlaceEvent(final PlaceRequest place, final boolean force) { super(place); throw new UnsupportedOperationException("Don't fire this event from apps. Use one of the PlaceManager.closeXXX methods instead."); } /** * Internal workbench API. Don't use! If you want to close a place, use {@link PlaceManager#closePlace(PlaceRequest)}. * @param place The place that's about to be closed. Not null. * @param force Whether this will be a forced close operation. * @param frameworkInternal flag to differentiate from the deprecated/disabled constructors. */ public BeforeClosePlaceEvent(PlaceRequest place, boolean force, boolean frameworkInternal) { super(place); this.force = force; } /** * Indicates whether or not the place is being closed forcibly. See * {@link PlaceManager#forceClosePlace(PlaceRequest)} for details. */ public boolean isForce() { return force; } @Override public String toString() { return "BeforeClosePlaceEvent [place=" + getPlace() + ", force=" + force + "]"; } }