package org.goko.gcode.rs274ngcv3.ui.workspace.uiprovider.menu.gcodeprovider; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.jface.action.Action; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.graphics.Image; import org.eclipse.wb.swt.ResourceManager; import org.goko.common.dialog.GkDialog; import org.goko.core.common.exception.GkException; import org.goko.core.gcode.element.IGCodeProvider; import org.goko.core.gcode.rs274ngcv3.IRS274NGCService; import org.goko.core.log.GkLog; public class ReloadGCodeProviderAction extends Action { /** LOG */ private static final GkLog LOG = GkLog.getLogger(ReloadGCodeProviderAction.class); /** GCode service */ private IRS274NGCService rs274Service; /** Target GCode provider */ private Integer idGCodeProvider; public ReloadGCodeProviderAction(IRS274NGCService rs274NGCService, Integer idTarget) { super("Reload"); this.rs274Service = rs274NGCService; this.idGCodeProvider = idTarget; } /** (inheritDoc) * @see org.eclipse.jface.action.Action#getImageDescriptor() */ @Override public ImageDescriptor getImageDescriptor() { Image image = ResourceManager.getPluginImage("org.goko.core.workspace", "icons/menu/arrow_refresh_small.png"); return ImageDescriptor.createFromImage(image); } /** (inheritDoc) * @see org.eclipse.jface.action.Action#isEnabled() */ @Override public boolean isEnabled() { boolean enabled = false; try { IGCodeProvider provider = rs274Service.getGCodeProvider(idGCodeProvider); if(provider.getSource() != null && !provider.isLocked()){ enabled = true; } } catch (GkException e) { LOG.error(e); } return enabled; } /** (inheritDoc) * @see org.eclipse.jface.action.Action#run() */ @Override public void run() { try { rs274Service.reload(idGCodeProvider, new NullProgressMonitor()); } catch (GkException e) { LOG.error(e); GkDialog.openDialog(null, e); } } }