package org.goko.gcode.rs274ngcv3.ui.workspace.uiprovider.menu.modifier; 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.gcode.rs274ngcv3.element.GCodeProvider; import org.goko.core.gcode.rs274ngcv3.element.IModifier; import org.goko.core.log.GkLog; import org.goko.core.workspace.action.AbstractDeleteAction; public class DeleteModifierAction extends AbstractDeleteAction { /** LOG */ private static final GkLog LOG = GkLog.getLogger(DeleteModifierAction.class); /** GCode service */ private IRS274NGCService rs274Service; public DeleteModifierAction(IRS274NGCService rs274Service, Integer idTarget) { super(idTarget); this.rs274Service = rs274Service; } /** (inheritDoc) * @see org.eclipse.jface.action.Action#isEnabled() */ @Override public boolean isEnabled() { try { IModifier<GCodeProvider> modifier = rs274Service.getModifier(getIdTarget()); IGCodeProvider provider = rs274Service.getGCodeProvider(modifier.getIdGCodeProvider()); return !provider.isLocked(); } catch (GkException e) { LOG.error(e); return false; } } /** (inheritDoc) * @see org.goko.gcode.rs274ngcv3.ui.workspace.uiprovider.menu.AbstractDeleteAction#deleteById(java.lang.Integer) */ @Override protected void deleteById(Integer id) throws GkException { rs274Service.deleteModifier(id); } }