package org.goko.gcode.rs274ngcv3.ui.workspace.uiprovider.menu.modifier;
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.core.common.exception.GkException;
import org.goko.core.gcode.rs274ngcv3.IRS274NGCService;
import org.goko.core.gcode.rs274ngcv3.element.GCodeProvider;
import org.goko.core.gcode.rs274ngcv3.element.IModifier;
import org.goko.core.log.GkLog;
public class ModifierMoveUpAction extends Action {
/** LOG */
private static final GkLog LOG = GkLog.getLogger(ModifierMoveUpAction.class);
/** GCode service */
private IRS274NGCService rs274Service;
/** Target modifier */
private Integer idModifier;
public ModifierMoveUpAction(IRS274NGCService rs274Service, Integer idModifier) {
super("Move up");
this.idModifier = idModifier;
this.rs274Service = rs274Service;
}
/** (inheritDoc)
* @see org.eclipse.jface.action.Action#isEnabled()
*/
@Override
public boolean isEnabled() {
try {
IModifier<GCodeProvider> modifier = rs274Service.getModifier(idModifier);
return modifier.getOrder() > 0;
} catch (GkException e) {
LOG.error(e);
}
return false;
}
/**
* (inheritDoc)
*
* @see org.eclipse.jface.action.Action#run()
*/
@Override
public void run() {
try {
IModifier<GCodeProvider> modifier = rs274Service.getModifier(idModifier);
rs274Service.setModifierOrder(modifier, modifier.getOrder() - 1);
} catch (GkException e) {
LOG.error(e);
}
}
/** (inheritDoc)
* @see org.eclipse.jface.action.Action#getImageDescriptor()
*/
@Override
public ImageDescriptor getImageDescriptor() {
Image image = ResourceManager.getPluginImage("org.goko.gcode.rs274ngcv3.ui", "resources/icons/menu/move-modifier-up.png");
return ImageDescriptor.createFromImage(image);
}
}