blob: c81dbb99e5564ea3a2235b9c6fc6536de8a8013c [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2005, 2020 BEA Systems, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Konstantin Komissarchik - initial API and implementation
******************************************************************************/
package org.eclipse.wst.web.ui.internal;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.IMarkerResolution;
import org.eclipse.ui.IMarkerResolutionGenerator;
import org.eclipse.ui.views.markers.WorkbenchMarkerResolution;
import org.eclipse.wst.common.componentcore.internal.ModuleMigratorManager;
/**
* This has been deprecated since WTP 3.1.2 and will be deleted post WTP 3.2.
* See https://bugs.eclipse.org/bugs/show_bug.cgi?id=292934
* @deprecated
* @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
*/
public final class ModuleCoreValidatorMarkerResolutions
implements IMarkerResolutionGenerator
{
@Override
public IMarkerResolution[] getResolutions( IMarker marker )
{
return new IMarkerResolution[]
{
new ModuleCoreMigrationResolution( marker )
};
}
private class ModuleCoreMigrationResolution extends WorkbenchMarkerResolution
{
private final IMarker theMarker;
private final String MARKERTYPE = "org.eclipse.wst.common.modulecore.ModuleCoreValidatorMarker"; //$NON-NLS-1$
public ModuleCoreMigrationResolution( IMarker marker )
{
this.theMarker = marker;
}
@Override
public String getLabel()
{
return Resources.migrateMetaData;
}
@Override
public void run( IMarker marker )
{
IProject proj = marker.getResource().getProject();
try
{
ModuleMigratorManager manager = ModuleMigratorManager.getManager(proj);
if (!manager.isMigrating() && !ResourcesPlugin.getWorkspace().isTreeLocked())
manager.migrateOldMetaData(proj,true);
}
catch( Exception e )
{
WSTWebUIPlugin.logError(e);
}
}
@Override
public String getDescription() {
return Resources.migrateMetaData;
}
@Override
public Image getImage() {
return null;
}
@Override
public IMarker[] findOtherMarkers(IMarker[] markers) {
List marks = new ArrayList();
for (int i = 0; i < markers.length; i++) {
IMarker marker = markers[i];
try {
if (marker.getType().equals(MARKERTYPE) && !(marker.equals(theMarker)))
marks.add(marker);
} catch (CoreException e) {
WSTWebUIPlugin.logError(e);
}
}
return (IMarker[])marks.toArray(new IMarker[marks.size()]);
}
}
private static final class Resources
extends NLS
{
public static String migrateMetaData;
static
{
initializeMessages( ModuleCoreValidatorMarkerResolutions.class.getName(),
Resources.class );
}
}
}