package org.goko.gcode.rs274ngcv3.ui.workspace.uiprovider.panel;
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.goko.common.GkUiComponent;
import org.goko.core.common.exception.GkException;
import org.goko.core.gcode.rs274ngcv3.element.GCodeProvider;
import org.goko.core.gcode.rs274ngcv3.element.IModifier;
public class AbstractModifierPropertiesPanel<M extends IModifier<GCodeProvider>,C extends AbstractModifierPanelController<D, M>, D extends AbstractModifierModelObject> extends GkUiComponent<C, D> implements IModifierPropertiesPanel<M>{
/**
* Constructor
* @param context
* @param abstractController
*/
public AbstractModifierPropertiesPanel(IEclipseContext context, C abstractController) {
super(context, abstractController);
}
/** (inheritDoc)
* @see org.goko.core.workspace.bean.IPropertiesPanel#beforeDiscard()
*/
@Override
public void beforeDiscard() throws GkException {
getController().performUpdateModifier();
}
/** (inheritDoc)
* @see org.goko.core.workspace.bean.IPropertiesPanel#discard()
*/
@Override
public void discard() throws GkException {
}
/** (inheritDoc)
* @see org.goko.gcode.rs274ngcv3.ui.workspace.uiprovider.panel.IModifierPropertiesPanel#setModifier(org.goko.core.gcode.rs274ngcv3.element.IModifier)
*/
@Override
public void setModifier(M modifier) {
getController().setModifier(modifier);
}
/** (inheritDoc)
* @see org.goko.gcode.rs274ngcv3.ui.workspace.uiprovider.panel.IModifierPropertiesPanel#initializeFromModifier()
*/
@Override
public void initializeFromModifier() throws GkException {
getController().setLockModifierUpdateOnPropertyChange(true);
getController().initializeFromModifier();
getDataModel().setDirty(false);
getController().setLockModifierUpdateOnPropertyChange(false);
}
}