| /* |
| * Copyright (c) 2014, 2015 Eike Stepper (Loehne, Germany) and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v2.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v20.html |
| * |
| * Contributors: |
| * Eike Stepper - initial API and implementation |
| */ |
| package org.eclipse.oomph.version.ui.quickfixes; |
| |
| import org.eclipse.oomph.internal.version.VersionBuilderArguments; |
| import org.eclipse.oomph.version.Markers; |
| import org.eclipse.oomph.version.ui.Activator; |
| |
| import org.eclipse.core.resources.IMarker; |
| import org.eclipse.core.resources.IProject; |
| |
| /** |
| * @author Eike Stepper |
| */ |
| public class ConfigureResolution extends AbstractResolution |
| { |
| private String option; |
| |
| public ConfigureResolution(IMarker marker, String option) |
| { |
| super(marker, "Configure the project to ignore the problem", Activator.CORRECTION_CONFIGURE_GIF); |
| this.option = option; |
| } |
| |
| @Override |
| public String getDescription() |
| { |
| IProject project = getMarker().getResource().getProject(); |
| return "Set " + option + " = true in '/" + project.getName() + "/.project'"; |
| } |
| |
| @Override |
| protected boolean isApplicable(IMarker marker) |
| { |
| String requiredOption = Markers.getQuickFixConfigureOption(marker); |
| return option.equals(requiredOption); |
| } |
| |
| @Override |
| protected void apply(IMarker marker) throws Exception |
| { |
| String option = Markers.getQuickFixConfigureOption(marker); |
| String value = Markers.getQuickFixConfigureValue(marker); |
| |
| IProject project = marker.getResource().getProject(); |
| VersionBuilderArguments arguments = new VersionBuilderArguments(project); |
| arguments.put(option, value); |
| arguments.applyTo(project); |
| } |
| } |