package com.baselet.plugin; import org.apache.maven.project.MavenProject; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.m2e.core.project.IMavenProjectChangedListener; import org.eclipse.m2e.core.project.MavenProjectChangedEvent; import com.baselet.plugin.builder.AddRemoveUmletNatureHandler; /** * Listener to add and remove the umlet nature when the maven project changes */ public class MavenProjectChangedListener implements IMavenProjectChangedListener { private static String configPropertyValue(MavenProject project) { if (project == null) { return null; } String propertyValue = project.getProperties().getProperty("com.umlet.nature.enabled"); return propertyValue; } @Override public void mavenProjectChanged(MavenProjectChangedEvent[] events, IProgressMonitor pm) { for (MavenProjectChangedEvent event : events) { try { IProject project = event.getMavenProject().getProject(); String propertyValue = configPropertyValue(event.getMavenProject().getMavenProject()); if ("true".equalsIgnoreCase(propertyValue)) { AddRemoveUmletNatureHandler.addUmletNature(project); } else if ("false".equalsIgnoreCase(propertyValue)) { AddRemoveUmletNatureHandler.removeUmletNature(project); } } catch (CoreException e) { MainPlugin.logError("Error while updating maven project", e); } } } }