/** * */ package org.goko.gcode.rs274ngcv3.ui.workspace.modifierbuilder.wrap; 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.UiBigDecimalFieldEditor; import org.goko.common.preferences.fieldeditor.ui.UiRadioGroupFieldEditor; import org.goko.core.common.exception.GkException; import org.goko.core.gcode.rs274ngcv3.modifier.wrap.WrapModifier; import org.goko.core.gcode.rs274ngcv3.modifier.wrap.WrapModifierAxis; 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 WrapPropertiesPanel extends AbstractModifierPropertiesPanel<WrapModifier, WrapModifierPropertiesController, WrapModifierPropertiesModel> implements IPropertiesPanel{ /** * @param context * @param abstractController */ public WrapPropertiesPanel(IEclipseContext context) { super(context, new WrapModifierPropertiesController()); } /** * @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)); // voir : // http://eclipsercpdev.blogspot.fr/2013/04/databinding-with-radio-buttons-and.html // http://www.vogella.com/tutorials/EclipseDataBinding/article.html#SelectObservableValue UiRadioGroupFieldEditor<WrapModifierAxis> radioGroupFieldEditor = new UiRadioGroupFieldEditor<WrapModifierAxis>(composite, SWT.NONE); radioGroupFieldEditor.setLabel("Axis transformation"); radioGroupFieldEditor.addOption(WrapModifierAxis.X_TO_A_AXIS.getLabel(), WrapModifierAxis.X_TO_A_AXIS); radioGroupFieldEditor.addOption(WrapModifierAxis.Y_TO_A_AXIS.getLabel(), WrapModifierAxis.Y_TO_A_AXIS); // Default value getDataModel().setAxis(WrapModifierAxis.X_TO_A_AXIS); radioGroupFieldEditor.setPropertyName(WrapModifierPropertiesModel.AXIS); UiBigDecimalFieldEditor ratio = new UiBigDecimalFieldEditor(composite, SWT.NONE); ratio.setEmptyStringAllowed(false); ratio.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1)); ratio.setWidthInChars(8); ratio.setPropertyName(WrapModifierPropertiesModel.RATIO); ratio.setLabel("Unit ratio"); getController().addFieldEditor(radioGroupFieldEditor); getController().addFieldEditor(ratio); } }