/******************************************************************************* * Copyright (c) 2015 Red Hat. * 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: * Red Hat - Initial Contribution *******************************************************************************/ package org.eclipse.linuxtools.internal.vagrant.ui.commands; import java.util.List; import org.eclipse.core.filesystem.EFS; import org.eclipse.core.filesystem.IFileStore; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.Path; import org.eclipse.linuxtools.internal.vagrant.ui.Activator; import org.eclipse.linuxtools.internal.vagrant.ui.views.DVMessages; import org.eclipse.linuxtools.vagrant.core.IVagrantVM; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PartInitException; import org.eclipse.ui.ide.IDE; public class OpenVagrantfileCommandHandler extends BaseVMCommandHandler { private static final String OPEN_VM_FILE_MSG = "OpenVMFile.msg"; //$NON-NLS-1$ private static final String OPEN_VM_FILE_TITLE = "OpenVMFile.title"; //$NON-NLS-1$ @Override String getJobName(List<IVagrantVM> selectedVMs) { return DVMessages.getFormattedString(OPEN_VM_FILE_MSG); } @Override String getTaskName(IVagrantVM vm) { return DVMessages.getFormattedString(OPEN_VM_FILE_TITLE, vm.name(), vm.id(), vm.directory().getAbsolutePath()); } @Override void executeInJob(IVagrantVM vm, IProgressMonitor monitor) { Display.getDefault().asyncExec(() -> { IWorkbenchPage activePage = Activator.getDefault().getWorkbench() .getActiveWorkbenchWindow().getActivePage(); IPath vgFilePath = new Path(vm.directory().getAbsolutePath()) .append("Vagrantfile"); //$NON-NLS-1$ IFileStore file = EFS.getLocalFileSystem().getStore(vgFilePath); try { IDE.openEditorOnFileStore(activePage, file); } catch (PartInitException e) { Activator.log(e); } }); } }