blob: 7f7bd61b1defcaf82bd8949a98e131ae570ff28e [file] [log] [blame]
/*=============================================================================#
# Copyright (c) 2012, 2020 Dirk Fauth and others.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# https://www.eclipse.org/legal/epl-2.0.
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# Dirk Fauth <dirk.fauth@gmail.com> - initial API and implementation
#=============================================================================*/
package org.eclipse.statet.ecommons.waltable.persistence;
/**
* Event that will be fired if the NatTable states/view configurations are changed
* using the PersistenceDialog.
*
* <p>Will only contain the name of the view configuration (might also be known as
* state prefix) and the type of change made to it. It will not carry the
* Properties itself.
*
* @see IStateChangedListener
*/
public class StateChangeEvent {
/**
* Enum for the type of change that was done to a NatTable view configuration.
*/
public enum StateChangeType {
/**
* A view configuration has changed. This normally occurs if an existing
* view configuration gets overridden.
*/
CHANGE,
/**
* A view configuration was created by saving a current NatTable state via
* the PersistenceDialog.
*/
CREATE,
/**
* A view configuration was deleted by using the PersistenceDialog.
*/
DELETE
}
/**
* The type of change that was done to a view configuration.
*/
private final StateChangeType type;
/**
* The name of the view configuration (or prefix) that has been changed.
*/
private final String viewConfigName;
/**
* Create a new {@link StateChangeEvent} for the given view configuration name and type of change.
* @param viewConfigName The name of the view configuration (or prefix) that has been changed.
* @param type The type of change that was done to a view configuration.
*/
public StateChangeEvent(final String viewConfigName, final StateChangeType type) {
this.viewConfigName= viewConfigName;
this.type= type;
}
/**
* @return The type of change that was done to a view configuration.
*/
public StateChangeType getType() {
return this.type;
}
/**
* @return The name of the view configuration (or prefix) that has been changed.
*/
public String getViewConfigName() {
return this.viewConfigName;
}
}