/**
*
*/
package org.goko.gcode.rs274ngcv3.ui.workspace.modifierbuilder.rotate;
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.wb.swt.SWTResourceManager;
import org.goko.common.preferences.fieldeditor.ui.UiAngleFieldEditor;
import org.goko.common.preferences.fieldeditor.ui.UiRadioGroupFieldEditor;
import org.goko.core.common.exception.GkException;
import org.goko.core.common.measure.quantity.AngleUnit;
import org.goko.core.controller.bean.EnumControllerAxis;
import org.goko.core.gcode.rs274ngcv3.modifier.rotate.RotateModifier;
import org.goko.core.workspace.bean.IPropertiesPanel;
import org.goko.gcode.rs274ngcv3.ui.workspace.uiprovider.panel.AbstractModifierPropertiesPanel;
/**
* @author PsyKo
* @date 17 janv. 2016
*/
public class RotatePropertiesPanel extends AbstractModifierPropertiesPanel<RotateModifier, RotateModifierPropertiesController, RotateModifierPropertiesModel> implements IPropertiesPanel{
/**
* @param context
* @param abstractController
*/
public RotatePropertiesPanel(IEclipseContext context) {
super(context, new RotateModifierPropertiesController());
}
/**
* @wbp.parser.entryPoint
*/
public void createContent(Composite parent) throws GkException {
Composite rootComposite = new Composite(parent, SWT.NONE);
rootComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
rootComposite.setLayout(new GridLayout(1, false));
Group composite = new Group(rootComposite, SWT.NONE);
composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
composite.setFont(SWTResourceManager.getFont("Segoe UI", 9, SWT.BOLD));
composite.setText("Properties");
composite.setLayout(new GridLayout(1, false));
UiRadioGroupFieldEditor<EnumControllerAxis> radioGroupFieldEditor = new UiRadioGroupFieldEditor<EnumControllerAxis>(composite, SWT.NONE);
radioGroupFieldEditor.setLabel("Rotation axis");
radioGroupFieldEditor.addOption("Around X", EnumControllerAxis.X_POSITIVE);
radioGroupFieldEditor.addOption("Around Y", EnumControllerAxis.Y_POSITIVE);
radioGroupFieldEditor.addOption("Around Z", EnumControllerAxis.Z_POSITIVE);
radioGroupFieldEditor.setPropertyName(RotateModifierPropertiesModel.ROTATION_AXIS);
UiAngleFieldEditor angleFieldEditor = new UiAngleFieldEditor(composite, SWT.NONE);
angleFieldEditor.setEmptyStringAllowed(false);
angleFieldEditor.setWidthInChars(5);
angleFieldEditor.setUnit(AngleUnit.DEGREE_ANGLE);
angleFieldEditor.setPropertyName(RotateModifierPropertiesModel.ROTATION_ANGLE);
angleFieldEditor.setLabel("Angle");
getController().addFieldEditor(radioGroupFieldEditor);
getController().addFieldEditor(angleFieldEditor);
}
}