blob: 88588b45eae24b6a7ae9edbb40b98d72397fe84f [file] [log] [blame]
/*
* Copyright (c) 2013, 2015 Eike Stepper (Berlin, Germany) and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Eike Stepper - initial API and implementation
*/
package org.eclipse.emf.cdo.internal.ui.actions;
import org.eclipse.emf.cdo.internal.ui.messages.Messages;
import org.eclipse.emf.cdo.transaction.CDOConflictResolver;
import org.eclipse.emf.cdo.transaction.CDOTransaction;
import org.eclipse.net4j.util.ui.actions.SafeAction;
import org.eclipse.emf.spi.cdo.CDOMergingConflictResolver;
/**
* @author Eike Stepper
*/
public class MergeConflictsAction extends SafeAction
{
private static final String TITLE = Messages.getString("MergeConflictsAction.0"); //$NON-NLS-1$
private static final String TOOL_TIP = Messages.getString("MergeConflictsAction.1"); //$NON-NLS-1$
private final CDOTransaction transaction;
public MergeConflictsAction(CDOTransaction transaction)
{
super(TITLE, AS_CHECK_BOX);
setToolTipText(TOOL_TIP);
this.transaction = transaction;
for (CDOConflictResolver conflictResolver : transaction.options().getConflictResolvers())
{
setEnabled(false);
if (conflictResolver instanceof CDOMergingConflictResolver)
{
setEnabled(true);
setChecked(true);
return;
}
}
}
@Override
protected void safeRun() throws Exception
{
for (CDOConflictResolver conflictResolver : transaction.options().getConflictResolvers())
{
if (conflictResolver instanceof CDOMergingConflictResolver)
{
transaction.options().removeConflictResolver(conflictResolver);
return;
}
}
CDOMergingConflictResolver conflictResolver = new CDOMergingConflictResolver();
transaction.options().addConflictResolver(conflictResolver);
}
}