package org.kie.eclipse.navigator.view.actions.repository;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.kie.eclipse.navigator.view.actions.KieNavigatorAction;
import org.kie.eclipse.navigator.view.content.ContentNode;
import org.kie.eclipse.navigator.view.content.IContainerNode;
import org.kie.eclipse.navigator.view.content.RepositoryNode;
import org.kie.eclipse.server.IKieResourceHandler;
public class SyncRepositoryAction extends KieNavigatorAction {
protected SyncRepositoryAction(ISelectionProvider provider, String text) {
super(provider, text);
}
public SyncRepositoryAction(ISelectionProvider selectionProvider) {
this(selectionProvider, "Synchronize Repository");
}
@Override
public boolean isEnabled() {
IContainerNode<?> container = getContainer();
if (container instanceof ContentNode) {
IKieResourceHandler handler = container.getHandler();
if (handler == null || !handler.isLoaded())
return false;
}
return true;
}
@Override
public String getToolTipText() {
return "Synchronize this local Git Repository with the remote server";
}
@Override
public void run() {
final IContainerNode<?> container = getContainer();
if (container==null)
return;
new PullOperationUI((RepositoryNode) container).start();
}
}