package rocks.inspectit.ui.rcp.ci.listener.impl;
import rocks.inspectit.shared.cs.ci.AgentMappings;
import rocks.inspectit.shared.cs.ci.Environment;
import rocks.inspectit.shared.cs.ci.Profile;
import rocks.inspectit.ui.rcp.ci.dialog.InstrumentationUpdateDialog;
import rocks.inspectit.ui.rcp.ci.handler.InstrumentationUpdateHandler;
import rocks.inspectit.ui.rcp.ci.listener.IAgentMappingsChangeListener;
import rocks.inspectit.ui.rcp.ci.listener.IEnvironmentChangeListener;
import rocks.inspectit.ui.rcp.ci.listener.IProfileChangeListener;
import rocks.inspectit.ui.rcp.repository.CmrRepositoryDefinition;
/**
* Listener to open the {@link InstrumentationUpdateDialog} when the instrumentation changed due to
* agent mapping, environment or profile modifications.
*
* @author Marius Oehler
*
*/
public class InstrumentationUpdateListener implements IProfileChangeListener, IEnvironmentChangeListener, IAgentMappingsChangeListener {
/**
* The text of the closing button.
*/
private static final String CLOSE_BUTTON_LABEL = "Not Now";
/**
* {@inheritDoc}
*/
@Override
public void agentMappingsUpdated(AgentMappings agentMappings, CmrRepositoryDefinition repositoryDefinition) {
// show instrumentation update dialog if necessary
InstrumentationUpdateHandler.execute(repositoryDefinition, CLOSE_BUTTON_LABEL);
}
/**
* {@inheritDoc}
*/
@Override
public void environmentCreated(Environment environment, CmrRepositoryDefinition repositoryDefinition) {
// not needed
}
/**
* {@inheritDoc}
*/
@Override
public void environmentUpdated(Environment environment, CmrRepositoryDefinition repositoryDefinition) {
// show instrumentation update dialog if necessary
InstrumentationUpdateHandler.execute(repositoryDefinition, CLOSE_BUTTON_LABEL);
}
/**
* {@inheritDoc}
*/
@Override
public void environmentDeleted(Environment environment, CmrRepositoryDefinition repositoryDefinition) {
// show instrumentation update dialog if necessary
InstrumentationUpdateHandler.execute(repositoryDefinition, CLOSE_BUTTON_LABEL);
}
/**
* {@inheritDoc}
*/
@Override
public void profileCreated(Profile profile, CmrRepositoryDefinition repositoryDefinition) {
// not needed
}
/**
* {@inheritDoc}
*/
@Override
public void profileUpdated(Profile profile, CmrRepositoryDefinition repositoryDefinition, boolean onlyProperties) {
// show instrumentation update dialog if necessary
InstrumentationUpdateHandler.execute(repositoryDefinition, CLOSE_BUTTON_LABEL);
}
/**
* {@inheritDoc}
*/
@Override
public void profileDeleted(Profile profile, CmrRepositoryDefinition repositoryDefinition) {
// show instrumentation update dialog if necessary
InstrumentationUpdateHandler.execute(repositoryDefinition, CLOSE_BUTTON_LABEL);
}
}