/* * * Goko * Copyright (C) 2013 PsyKo * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ package org.goko.controller.grbl.v09.configuration; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Point; 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.swt.widgets.Label; import org.eclipse.wb.swt.SWTResourceManager; import org.goko.controller.grbl.v09.configuration.editors.GrblBigDecimalSettingFieldEditor; import org.goko.controller.grbl.v09.configuration.editors.GrblBitMaskFieldEditor; import org.goko.controller.grbl.v09.configuration.editors.GrblBooleanFieldEditor; import org.goko.controller.grbl.v09.configuration.editors.GrblIntegerSettingFieldEditor; import org.goko.core.common.exception.GkException; import org.goko.core.log.GkLog; /** * * @author PsyKo * */ public class GrblConfigurationDialog extends AbstractGrblConfigurationPage { private static final GkLog LOG = GkLog.getLogger(GrblConfigurationDialog.class); public GrblConfigurationDialog(GrblConfiguration configuration) { super(configuration); setTitle("Grbl configuration"); } /** (inheritDoc) * @see org.goko.common.preferences.GkFieldEditorPreferencesPage#createPreferencePage(org.eclipse.swt.widgets.Composite) */ @Override protected void createPreferencePage(Composite parent) throws GkException { Composite composite = new Composite(parent, SWT.NONE); composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); GridLayout gl_composite = new GridLayout(1, false); gl_composite.marginWidth = 0; gl_composite.marginHeight = 0; composite.setLayout(gl_composite); Group grpAxisConfiguration = new Group(composite, SWT.NONE); grpAxisConfiguration.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); grpAxisConfiguration.setFont(SWTResourceManager.getFont("Segoe UI", 9, SWT.BOLD)); grpAxisConfiguration.setLayout(new GridLayout(1, false)); grpAxisConfiguration.setText("Axis configuration"); Composite composite_1 = new Composite(grpAxisConfiguration, SWT.NONE); GridLayout gl_composite_1 = new GridLayout(4, true); gl_composite_1.marginTop = 3; gl_composite_1.marginHeight = 0; composite_1.setLayout(gl_composite_1); composite_1.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); Label lblNewLabel = new Label(composite_1, SWT.NONE); lblNewLabel.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, false, 1, 1)); lblNewLabel.setText("step/mm"); Label lblNewLabel_1 = new Label(composite_1, SWT.NONE); lblNewLabel_1.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1)); lblNewLabel_1.setText("max rate"); Label lblNewLabel_2 = new Label(composite_1, SWT.NONE); lblNewLabel_2.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1)); lblNewLabel_2.setText("accel"); Label lblNewLabel_3 = new Label(composite_1, SWT.NONE); lblNewLabel_3.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1)); lblNewLabel_3.setText("max travel"); Composite composite_10 = new Composite(grpAxisConfiguration, SWT.NONE); composite_10.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); GridLayout gl_composite_10 = new GridLayout(4, true); gl_composite_10.verticalSpacing = 2; gl_composite_10.marginHeight = 0; composite_10.setLayout(gl_composite_10); GrblBigDecimalSettingFieldEditor stepXField = new GrblBigDecimalSettingFieldEditor(composite_10, SWT.NONE); stepXField.setWidthInChars(10); stepXField.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); stepXField.setLabel("$100 x"); stepXField.setPreferenceName("$100"); GrblBigDecimalSettingFieldEditor maxRateXField = new GrblBigDecimalSettingFieldEditor(composite_10, SWT.NONE); maxRateXField.setPreferenceName("$110"); maxRateXField.setWidthInChars(10); maxRateXField.setLabel("$110 x"); GrblBigDecimalSettingFieldEditor accelXField = new GrblBigDecimalSettingFieldEditor(composite_10, SWT.NONE); accelXField.setPreferenceName("$120"); accelXField.setLabel("$120 x"); accelXField.setWidthInChars(10); GrblBigDecimalSettingFieldEditor maxTravelXField = new GrblBigDecimalSettingFieldEditor(composite_10, SWT.NONE); maxTravelXField.setPreferenceName("$130"); maxTravelXField.setLabel("$130 x"); maxTravelXField.setWidthInChars(10); GrblBigDecimalSettingFieldEditor stepYField = new GrblBigDecimalSettingFieldEditor(composite_10, SWT.NONE); stepYField.setPreferenceName("$101"); stepYField.setWidthInChars(10); stepYField.setLabel("$101 y"); GrblBigDecimalSettingFieldEditor maxRateYField = new GrblBigDecimalSettingFieldEditor(composite_10, SWT.NONE); maxRateYField.setPreferenceName("$111"); maxRateYField.setWidthInChars(10); maxRateYField.setLabel("$111 y"); GrblBigDecimalSettingFieldEditor accelYField = new GrblBigDecimalSettingFieldEditor(composite_10, SWT.NONE); accelYField.setPreferenceName("$121"); accelYField.setLabel("$121 y"); accelYField.setWidthInChars(10); GrblBigDecimalSettingFieldEditor maxTravelYField = new GrblBigDecimalSettingFieldEditor(composite_10, SWT.NONE); maxTravelYField.setPreferenceName("$131"); maxTravelYField.setLabel("$131 y"); maxTravelYField.setWidthInChars(10); GrblBigDecimalSettingFieldEditor stepZField = new GrblBigDecimalSettingFieldEditor(composite_10, SWT.NONE); stepZField.setPreferenceName("$102"); stepZField.setWidthInChars(10); stepZField.setLabel("$102 z"); GrblBigDecimalSettingFieldEditor maxRateZField = new GrblBigDecimalSettingFieldEditor(composite_10, SWT.NONE); maxRateZField.setPreferenceName("$112"); maxRateZField.setWidthInChars(10); maxRateZField.setLabel("$112 z"); GrblBigDecimalSettingFieldEditor accelZField = new GrblBigDecimalSettingFieldEditor(composite_10, SWT.NONE); accelZField.setPreferenceName("$122"); accelZField.setLabel("$122 z"); accelZField.setWidthInChars(10); GrblBigDecimalSettingFieldEditor maxTravelZField = new GrblBigDecimalSettingFieldEditor(composite_10, SWT.NONE); maxTravelZField.setPreferenceName("$132"); maxTravelZField.setLabel("$132 z"); maxTravelZField.setWidthInChars(10); Composite composite_3 = new Composite(grpAxisConfiguration, SWT.NONE); composite_3.setLayout(new GridLayout(6, false)); composite_3.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); Label lblstepPort = new Label(composite_3, SWT.NONE); lblstepPort.setText("$2 (step port invert mask)"); lblstepPort.setBounds(0, 0, 134, 15); GrblBitMaskFieldEditor stepPortInvertXField = new GrblBitMaskFieldEditor(composite_3, SWT.NONE); stepPortInvertXField.setPreferenceName("$2"); stepPortInvertXField.setLabel("Invert X"); new Label(composite_3, SWT.NONE); GrblBitMaskFieldEditor stepPortInvertYField = new GrblBitMaskFieldEditor(composite_3, SWT.NONE); stepPortInvertYField.setBitPosition(1); stepPortInvertYField.setPreferenceName("$2"); stepPortInvertYField.setLabel("Invert Y"); new Label(composite_3, SWT.NONE); GrblBitMaskFieldEditor stepPortInvertZField = new GrblBitMaskFieldEditor(composite_3, SWT.NONE); stepPortInvertZField.setPreferenceName("$2"); stepPortInvertZField.setLabel("Invert Z"); stepPortInvertZField.setBitPosition(2); Group grpGeneral = new Group(composite, SWT.NONE); grpGeneral.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); grpGeneral.setFont(SWTResourceManager.getFont("Segoe UI", 9, SWT.BOLD)); grpGeneral.setLayout(new GridLayout(1, false)); grpGeneral.setText("General"); Composite composite_5 = new Composite(grpGeneral, SWT.NONE); composite_5.setLayout(new GridLayout(3, false)); composite_5.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); GrblIntegerSettingFieldEditor stepPulseField = new GrblIntegerSettingFieldEditor(composite_5, SWT.NONE); stepPulseField.setLabelWidthInChar(23); stepPulseField.setWidthInChars(8); stepPulseField.setPreferenceName("$0"); stepPulseField.setLabel("$0 (step pulse, usec)"); new Label(composite_5, SWT.NONE); GrblIntegerSettingFieldEditor stepIdleField = new GrblIntegerSettingFieldEditor(composite_5, SWT.NONE); stepIdleField.setLabelWidthInChar(19); stepIdleField.setWidthInChars(8); stepIdleField.setPreferenceName("$1"); stepIdleField.setLabel("$1 (step idle delay, msec)"); GrblBigDecimalSettingFieldEditor junctionDeviationField = new GrblBigDecimalSettingFieldEditor(composite_5, SWT.NONE); junctionDeviationField.setLabelWidthInChar(23); junctionDeviationField.setWidthInChars(8); junctionDeviationField.setPreferenceName("$11"); junctionDeviationField.setLabel("$11 (junction deviation, mm)"); new Label(composite_5, SWT.NONE); GrblBigDecimalSettingFieldEditor arcToleranceField = new GrblBigDecimalSettingFieldEditor(composite_5, SWT.NONE); arcToleranceField.setLabelWidthInChar(19); arcToleranceField.setWidthInChars(8); arcToleranceField.setPreferenceName("$12"); arcToleranceField.setLabel("$12 (arc tolerance, mm)"); GrblBooleanFieldEditor stepEnableInvertField = new GrblBooleanFieldEditor(composite_5, SWT.NONE); stepEnableInvertField.setLabel("$4 (step enable invert)"); stepEnableInvertField.setPreferenceName("$4"); new Label(composite_5, SWT.NONE); new Label(composite_5, SWT.NONE); GrblBooleanFieldEditor limitPinInvertField = new GrblBooleanFieldEditor(composite_5, SWT.NONE); limitPinInvertField.setPreferenceName("$5"); limitPinInvertField.setLabel("$5 (limit pins invert)"); new Label(composite_5, SWT.NONE); GrblBooleanFieldEditor reportInchesField = new GrblBooleanFieldEditor(composite_5, SWT.NONE); reportInchesField.setPreferenceName("$13"); reportInchesField.setLabel("$13 (report inches)"); GrblBooleanFieldEditor probePinInvertField = new GrblBooleanFieldEditor(composite_5, SWT.NONE); probePinInvertField.setPreferenceName("$6"); probePinInvertField.setLabel("$6 (probe pin invert)"); new Label(composite_5, SWT.NONE); new Label(composite_5, SWT.NONE); Group grpHoming = new Group(composite, SWT.NONE); grpHoming.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); grpHoming.setFont(SWTResourceManager.getFont("Segoe UI", 9, SWT.BOLD)); grpHoming.setLayout(new GridLayout(1, false)); grpHoming.setText("Homing"); Composite composite_6 = new Composite(grpHoming, SWT.NONE); composite_6.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); composite_6.setLayout(new GridLayout(5, false)); GrblBooleanFieldEditor softLimitsField = new GrblBooleanFieldEditor(composite_6, SWT.NONE); softLimitsField.setLabel("$20 (soft limits)"); softLimitsField.setPreferenceName("$20"); new Label(composite_6, SWT.NONE); GrblBooleanFieldEditor hardLimitsField = new GrblBooleanFieldEditor(composite_6, SWT.NONE); hardLimitsField.setPreferenceName("$21"); hardLimitsField.setLabel("$21 (hard limits)"); new Label(composite_6, SWT.NONE); GrblBooleanFieldEditor homingCycleField = new GrblBooleanFieldEditor(composite_6, SWT.NONE); homingCycleField.setLabel("$22 (homing cycle)"); homingCycleField.setPreferenceName("$22"); Composite composite_7 = new Composite(grpHoming, SWT.NONE); composite_7.setLayout(new GridLayout(6, false)); composite_7.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); Label lblhomingDir = new Label(composite_7, SWT.NONE); lblhomingDir.setText("$23 (homing dir invert mask)"); GrblBitMaskFieldEditor homingInvertXField = new GrblBitMaskFieldEditor(composite_7, SWT.NONE); homingInvertXField.setPreferenceName("$23"); homingInvertXField.setLabel("Invert X"); new Label(composite_7, SWT.NONE); GrblBitMaskFieldEditor homingInvertYField = new GrblBitMaskFieldEditor(composite_7, SWT.NONE); homingInvertYField.setBitPosition(1); homingInvertYField.setPreferenceName("$23"); homingInvertYField.setLabel("Invert Y"); new Label(composite_7, SWT.NONE); GrblBitMaskFieldEditor homingInvertZField = new GrblBitMaskFieldEditor(composite_7, SWT.NONE); homingInvertZField.setBitPosition(2); homingInvertZField.setPreferenceName("$23"); homingInvertZField.setLabel("Invert Z"); Composite composite_8 = new Composite(grpHoming, SWT.NONE); composite_8.setLayout(new GridLayout(3, false)); composite_8.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); GrblBigDecimalSettingFieldEditor homingFeedField = new GrblBigDecimalSettingFieldEditor(composite_8, SWT.NONE); homingFeedField.setWidthInChars(8); homingFeedField.setLabelWidthInChar(22); homingFeedField.setPreferenceName("$24"); homingFeedField.setLabel("$24 (homing feed, mm/min)"); new Label(composite_8, SWT.NONE); GrblBigDecimalSettingFieldEditor homingDebounceField = new GrblBigDecimalSettingFieldEditor(composite_8, SWT.NONE); homingDebounceField.setWidthInChars(8); homingDebounceField.setLabelWidthInChar(24); homingDebounceField.setPreferenceName("$26"); homingDebounceField.setLabel("$26 (homing debounce, msec)"); GrblBigDecimalSettingFieldEditor homingSeekField = new GrblBigDecimalSettingFieldEditor(composite_8, SWT.NONE); homingSeekField.setWidthInChars(8); homingSeekField.setLabelWidthInChar(22); homingSeekField.setPreferenceName("$25"); homingSeekField.setLabel("$25 (homing seek, mm/min)"); new Label(composite_8, SWT.NONE); GrblBigDecimalSettingFieldEditor homingPulloffField = new GrblBigDecimalSettingFieldEditor(composite_8, SWT.NONE); homingPulloffField.setWidthInChars(8); homingPulloffField.setLabelWidthInChar(24); homingPulloffField.setLabel("$27 (homing pull-off, mm)"); homingPulloffField.setPreferenceName("$27"); addField(stepXField); addField(maxRateXField); addField(accelXField); addField(maxTravelXField); addField(stepYField); addField(maxRateYField); addField(accelYField); addField(maxTravelYField); addField(stepZField); addField(maxRateZField); addField(accelZField); addField(maxTravelZField); addField(stepPortInvertXField); addField(stepPortInvertYField); addField(stepPortInvertZField); addField(stepPulseField); addField(stepIdleField); addField(junctionDeviationField); addField(arcToleranceField); addField(stepEnableInvertField); addField(limitPinInvertField); addField(reportInchesField); addField(probePinInvertField); addField(softLimitsField); addField(hardLimitsField); addField(homingCycleField); addField(homingInvertXField); addField(homingInvertYField); addField(homingInvertZField); addField(homingFeedField); addField(homingDebounceField); addField(homingSeekField); addField(homingPulloffField); } protected Point getInitialSize() { return new Point(627, 650); } }