/*! ****************************************************************************** * * Pentaho Data Integration * * Copyright (C) 2002-2016 by Pentaho : http://www.pentaho.com * ******************************************************************************* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ******************************************************************************/ package org.pentaho.di.ui.trans.steps.stepsmetrics; import java.util.ArrayList; import java.util.List; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.ShellAdapter; import org.eclipse.swt.events.ShellEvent; import org.eclipse.swt.layout.FormAttachment; import org.eclipse.swt.layout.FormData; import org.eclipse.swt.layout.FormLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableItem; import org.eclipse.swt.widgets.Text; import org.pentaho.di.core.Const; import org.pentaho.di.core.util.Utils; import org.pentaho.di.i18n.BaseMessages; import org.pentaho.di.trans.TransMeta; import org.pentaho.di.trans.step.BaseStepMeta; import org.pentaho.di.trans.step.StepDialogInterface; import org.pentaho.di.trans.step.StepMeta; import org.pentaho.di.trans.steps.stepsmetrics.StepsMetrics; import org.pentaho.di.trans.steps.stepsmetrics.StepsMetricsMeta; import org.pentaho.di.ui.core.PropsUI; import org.pentaho.di.ui.core.widget.ColumnInfo; import org.pentaho.di.ui.core.widget.TableView; import org.pentaho.di.ui.core.widget.TextVar; import org.pentaho.di.ui.trans.step.BaseStepDialog; public class StepsMetricsDialog extends BaseStepDialog implements StepDialogInterface { private static Class<?> PKG = StepsMetrics.class; // for i18n purposes, needed by Translator2!! private static final String[] YES_NO_COMBO = new String[] { BaseMessages.getString( PKG, "System.Combo.No" ), BaseMessages.getString( PKG, "System.Combo.Yes" ) }; private String[] previousSteps; private StepsMetricsMeta input; private Label wlFields; private TableView wFields; private FormData fdlFields, fdFields; private CTabFolder wTabFolder; private FormData fdTabFolder; private CTabItem wGeneralTab, wFieldsTab; private FormData fdGeneralComp, fdFieldsComp; private Label wlStepnameField; private TextVar wStepnameField; private FormData fdlStepnameField, fdStepnameField; private Label wlStepidField; private TextVar wStepidField; private FormData fdlStepidField, fdStepidField; private Label wlLinesinputField; private TextVar wLinesinputField; private FormData fdlLinesinputField, fdLinesinputField; private Label wlLinesoutputField; private TextVar wLinesoutputField; private FormData fdlLinesoutputField, fdLinesoutputField; private Label wlLinesreadField; private TextVar wLinesreadField; private FormData fdlLinesreadField, fdLinesreadField; private Label wlLineswrittenField; private TextVar wLineswrittenField; private FormData fdlLineswrittenField, fdLineswrittenField; private Label wlLineserrorsField; private TextVar wLineserrorsField; private FormData fdlLineserrorsField, fdLineserrorsField; private Label wlSecondsField; private TextVar wSecondsField; private FormData fdlSecondsField, fdSecondsField; private Label wlLinesupdatedField; private TextVar wLinesupdatedField; private FormData fdlLinesupdatedField, fdLinesupdatedField; public StepsMetricsDialog( Shell parent, Object in, TransMeta tr, String sname ) { super( parent, (BaseStepMeta) in, tr, sname ); input = (StepsMetricsMeta) in; } public String open() { Shell parent = getParent(); Display display = parent.getDisplay(); shell = new Shell( parent, SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MIN | SWT.MAX ); props.setLook( shell ); setShellImage( shell, input ); ModifyListener lsMod = new ModifyListener() { public void modifyText( ModifyEvent e ) { input.setChanged(); } }; changed = input.hasChanged(); FormLayout formLayout = new FormLayout(); formLayout.marginWidth = Const.FORM_MARGIN; formLayout.marginHeight = Const.FORM_MARGIN; shell.setLayout( formLayout ); shell.setText( BaseMessages.getString( PKG, "StepsMetricsDialog.Shell.Title" ) ); int middle = props.getMiddlePct(); int margin = Const.MARGIN; // Stepname line wlStepname = new Label( shell, SWT.RIGHT ); wlStepname.setText( BaseMessages.getString( PKG, "StepsMetricsDialog.Stepname.Label" ) ); props.setLook( wlStepname ); fdlStepname = new FormData(); fdlStepname.left = new FormAttachment( 0, 0 ); fdlStepname.right = new FormAttachment( middle, -margin ); fdlStepname.top = new FormAttachment( 0, margin ); wlStepname.setLayoutData( fdlStepname ); wStepname = new Text( shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER ); wStepname.setText( stepname ); props.setLook( wStepname ); wStepname.addModifyListener( lsMod ); fdStepname = new FormData(); fdStepname.left = new FormAttachment( middle, 0 ); fdStepname.top = new FormAttachment( 0, margin ); fdStepname.right = new FormAttachment( 100, 0 ); wStepname.setLayoutData( fdStepname ); wTabFolder = new CTabFolder( shell, SWT.BORDER ); props.setLook( wTabFolder, PropsUI.WIDGET_STYLE_TAB ); // //////////////////////// // START OF GENERAL TAB/// // / wGeneralTab = new CTabItem( wTabFolder, SWT.NONE ); wGeneralTab.setText( BaseMessages.getString( PKG, "StepsMetricsDialog.General" ) ); Composite wGeneralComp = new Composite( wTabFolder, SWT.NONE ); props.setLook( wGeneralComp ); FormLayout fileLayout = new FormLayout(); fileLayout.marginWidth = 3; fileLayout.marginHeight = 3; wGeneralComp.setLayout( fileLayout ); // Get the previous steps... setStepNames(); wOK = new Button( shell, SWT.PUSH ); wOK.setText( BaseMessages.getString( PKG, "System.Button.OK" ) ); wGet = new Button( shell, SWT.PUSH ); wGet.setText( BaseMessages.getString( PKG, "StepsMetricsDialog.getSteps.Label" ) ); wCancel = new Button( shell, SWT.PUSH ); wCancel.setText( BaseMessages.getString( PKG, "System.Button.Cancel" ) ); setButtonPositions( new Button[] { wOK, wGet, wCancel }, margin, null ); // Table with fields wlFields = new Label( wGeneralComp, SWT.NONE ); wlFields.setText( BaseMessages.getString( PKG, "StepsMetricsDialog.Fields.Label" ) ); props.setLook( wlFields ); fdlFields = new FormData(); fdlFields.left = new FormAttachment( 0, 0 ); fdlFields.top = new FormAttachment( wStepname, margin ); wlFields.setLayoutData( fdlFields ); final int FieldsCols = 3; final int FieldsRows = input.getStepName().length; ColumnInfo[] colinf = new ColumnInfo[FieldsCols]; colinf[0] = new ColumnInfo( BaseMessages.getString( PKG, "StepsMetricsDialog.Fieldname.Step" ), ColumnInfo.COLUMN_TYPE_CCOMBO, previousSteps, false ); colinf[1] = new ColumnInfo( BaseMessages.getString( PKG, "StepsMetricsDialog.Fieldname.CopyNr" ), ColumnInfo.COLUMN_TYPE_TEXT, false ); colinf[2] = new ColumnInfo( BaseMessages.getString( PKG, "StepsMetricsDialog.Required.Column" ), ColumnInfo.COLUMN_TYPE_CCOMBO, YES_NO_COMBO ); colinf[1].setUsingVariables( true ); wFields = new TableView( transMeta, wGeneralComp, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, colinf, FieldsRows, lsMod, props ); fdFields = new FormData(); fdFields.left = new FormAttachment( 0, 0 ); fdFields.top = new FormAttachment( wlFields, margin ); fdFields.right = new FormAttachment( 100, 0 ); fdFields.bottom = new FormAttachment( 100, -2 * margin ); wFields.setLayoutData( fdFields ); fdGeneralComp = new FormData(); fdGeneralComp.left = new FormAttachment( 0, 0 ); fdGeneralComp.top = new FormAttachment( 0, 0 ); fdGeneralComp.right = new FormAttachment( 100, 0 ); fdGeneralComp.bottom = new FormAttachment( 100, 0 ); wGeneralComp.setLayoutData( fdGeneralComp ); wGeneralComp.layout(); wGeneralTab.setControl( wGeneralComp ); // /////////////////////////////////////////////////////////// // / END OF GENERAL TAB // /////////////////////////////////////////////////////////// // //////////////////////// // START OF FIELDS TAB/// // / wFieldsTab = new CTabItem( wTabFolder, SWT.NONE ); wFieldsTab.setText( BaseMessages.getString( PKG, "StepsMetricsDialog.Group.Fields" ) ); Composite wFieldsComp = new Composite( wTabFolder, SWT.NONE ); props.setLook( wFieldsComp ); FormLayout fieldsLayout = new FormLayout(); fieldsLayout.marginWidth = 3; fieldsLayout.marginHeight = 3; wFieldsComp.setLayout( fieldsLayout ); // Stepname line wlStepnameField = new Label( wFieldsComp, SWT.RIGHT ); wlStepnameField.setText( BaseMessages.getString( PKG, "StepsMetricsDialog.Label.StepnameField" ) ); props.setLook( wlStepnameField ); fdlStepnameField = new FormData(); fdlStepnameField.left = new FormAttachment( 0, 0 ); fdlStepnameField.top = new FormAttachment( 0, margin ); fdlStepnameField.right = new FormAttachment( middle, -margin ); wlStepnameField.setLayoutData( fdlStepnameField ); wStepnameField = new TextVar( transMeta, wFieldsComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER ); wStepnameField.setText( "" ); props.setLook( wStepnameField ); wStepnameField.addModifyListener( lsMod ); fdStepnameField = new FormData(); fdStepnameField.left = new FormAttachment( middle, 0 ); fdStepnameField.top = new FormAttachment( 0, margin ); fdStepnameField.right = new FormAttachment( 100, -margin ); wStepnameField.setLayoutData( fdStepnameField ); // Stepid line wlStepidField = new Label( wFieldsComp, SWT.RIGHT ); wlStepidField.setText( BaseMessages.getString( PKG, "StepsMetricsDialog.Label.StepidField" ) ); props.setLook( wlStepidField ); fdlStepidField = new FormData(); fdlStepidField.left = new FormAttachment( 0, 0 ); fdlStepidField.top = new FormAttachment( wStepnameField, margin ); fdlStepidField.right = new FormAttachment( middle, -margin ); wlStepidField.setLayoutData( fdlStepidField ); wStepidField = new TextVar( transMeta, wFieldsComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER ); wStepidField.setText( "" ); props.setLook( wStepidField ); wStepidField.addModifyListener( lsMod ); fdStepidField = new FormData(); fdStepidField.left = new FormAttachment( middle, 0 ); fdStepidField.top = new FormAttachment( wStepnameField, margin ); fdStepidField.right = new FormAttachment( 100, -margin ); wStepidField.setLayoutData( fdStepidField ); // Linesinput line wlLinesinputField = new Label( wFieldsComp, SWT.RIGHT ); wlLinesinputField.setText( BaseMessages.getString( PKG, "StepsMetricsDialog.Label.LinesinputField" ) ); props.setLook( wlLinesinputField ); fdlLinesinputField = new FormData(); fdlLinesinputField.left = new FormAttachment( 0, 0 ); fdlLinesinputField.top = new FormAttachment( wStepidField, margin ); fdlLinesinputField.right = new FormAttachment( middle, -margin ); wlLinesinputField.setLayoutData( fdlLinesinputField ); wLinesinputField = new TextVar( transMeta, wFieldsComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER ); wLinesinputField.setText( "" ); props.setLook( wLinesinputField ); wLinesinputField.addModifyListener( lsMod ); fdLinesinputField = new FormData(); fdLinesinputField.left = new FormAttachment( middle, 0 ); fdLinesinputField.top = new FormAttachment( wStepidField, margin ); fdLinesinputField.right = new FormAttachment( 100, -margin ); wLinesinputField.setLayoutData( fdLinesinputField ); // Linesoutput line wlLinesoutputField = new Label( wFieldsComp, SWT.RIGHT ); wlLinesoutputField.setText( BaseMessages.getString( PKG, "StepsMetricsDialog.Label.LinesoutputField" ) ); props.setLook( wlLinesoutputField ); fdlLinesoutputField = new FormData(); fdlLinesoutputField.left = new FormAttachment( 0, 0 ); fdlLinesoutputField.top = new FormAttachment( wLinesinputField, margin ); fdlLinesoutputField.right = new FormAttachment( middle, -margin ); wlLinesoutputField.setLayoutData( fdlLinesoutputField ); wLinesoutputField = new TextVar( transMeta, wFieldsComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER ); wLinesoutputField.setText( "" ); props.setLook( wLinesoutputField ); wLinesoutputField.addModifyListener( lsMod ); fdLinesoutputField = new FormData(); fdLinesoutputField.left = new FormAttachment( middle, 0 ); fdLinesoutputField.top = new FormAttachment( wLinesinputField, margin ); fdLinesoutputField.right = new FormAttachment( 100, -margin ); wLinesoutputField.setLayoutData( fdLinesoutputField ); // Linesread line wlLinesreadField = new Label( wFieldsComp, SWT.RIGHT ); wlLinesreadField.setText( BaseMessages.getString( PKG, "StepsMetricsDialog.Label.LinesreadField" ) ); props.setLook( wlLinesreadField ); fdlLinesreadField = new FormData(); fdlLinesreadField.left = new FormAttachment( 0, 0 ); fdlLinesreadField.top = new FormAttachment( wLinesoutputField, margin ); fdlLinesreadField.right = new FormAttachment( middle, -margin ); wlLinesreadField.setLayoutData( fdlLinesreadField ); wLinesreadField = new TextVar( transMeta, wFieldsComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER ); wLinesreadField.setText( "" ); props.setLook( wLinesreadField ); wLinesreadField.addModifyListener( lsMod ); fdLinesreadField = new FormData(); fdLinesreadField.left = new FormAttachment( middle, 0 ); fdLinesreadField.top = new FormAttachment( wLinesoutputField, margin ); fdLinesreadField.right = new FormAttachment( 100, -margin ); wLinesreadField.setLayoutData( fdLinesreadField ); // Linesupdated line wlLinesupdatedField = new Label( wFieldsComp, SWT.RIGHT ); wlLinesupdatedField.setText( BaseMessages.getString( PKG, "StepsMetricsDialog.Label.LinesupdatedField" ) ); props.setLook( wlLinesupdatedField ); fdlLinesupdatedField = new FormData(); fdlLinesupdatedField.left = new FormAttachment( 0, 0 ); fdlLinesupdatedField.top = new FormAttachment( wLinesreadField, margin ); fdlLinesupdatedField.right = new FormAttachment( middle, -margin ); wlLinesupdatedField.setLayoutData( fdlLinesupdatedField ); wLinesupdatedField = new TextVar( transMeta, wFieldsComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER ); wLinesupdatedField.setText( "" ); props.setLook( wLinesupdatedField ); wLinesupdatedField.addModifyListener( lsMod ); fdLinesupdatedField = new FormData(); fdLinesupdatedField.left = new FormAttachment( middle, 0 ); fdLinesupdatedField.top = new FormAttachment( wLinesreadField, margin ); fdLinesupdatedField.right = new FormAttachment( 100, -margin ); wLinesupdatedField.setLayoutData( fdLinesupdatedField ); // Lineswritten line wlLineswrittenField = new Label( wFieldsComp, SWT.RIGHT ); wlLineswrittenField.setText( BaseMessages.getString( PKG, "StepsMetricsDialog.Label.LineswrittenField" ) ); props.setLook( wlLineswrittenField ); fdlLineswrittenField = new FormData(); fdlLineswrittenField.left = new FormAttachment( 0, 0 ); fdlLineswrittenField.top = new FormAttachment( wLinesupdatedField, margin ); fdlLineswrittenField.right = new FormAttachment( middle, -margin ); wlLineswrittenField.setLayoutData( fdlLineswrittenField ); wLineswrittenField = new TextVar( transMeta, wFieldsComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER ); wLineswrittenField.setText( "" ); props.setLook( wLineswrittenField ); wLineswrittenField.addModifyListener( lsMod ); fdLineswrittenField = new FormData(); fdLineswrittenField.left = new FormAttachment( middle, 0 ); fdLineswrittenField.top = new FormAttachment( wLinesupdatedField, margin ); fdLineswrittenField.right = new FormAttachment( 100, -margin ); wLineswrittenField.setLayoutData( fdLineswrittenField ); // Lineserrors line wlLineserrorsField = new Label( wFieldsComp, SWT.RIGHT ); wlLineserrorsField.setText( BaseMessages.getString( PKG, "StepsMetricsDialog.Label.LineserrorsField" ) ); props.setLook( wlLineserrorsField ); fdlLineserrorsField = new FormData(); fdlLineserrorsField.left = new FormAttachment( 0, 0 ); fdlLineserrorsField.top = new FormAttachment( wLineswrittenField, margin ); fdlLineserrorsField.right = new FormAttachment( middle, -margin ); wlLineserrorsField.setLayoutData( fdlLineserrorsField ); wLineserrorsField = new TextVar( transMeta, wFieldsComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER ); wLineserrorsField.setText( "" ); props.setLook( wLineserrorsField ); wLineserrorsField.addModifyListener( lsMod ); fdLineserrorsField = new FormData(); fdLineserrorsField.left = new FormAttachment( middle, 0 ); fdLineserrorsField.top = new FormAttachment( wLineswrittenField, margin ); fdLineserrorsField.right = new FormAttachment( 100, -margin ); wLineserrorsField.setLayoutData( fdLineserrorsField ); // Seconds line wlSecondsField = new Label( wFieldsComp, SWT.RIGHT ); wlSecondsField.setText( BaseMessages.getString( PKG, "StepsMetricsDialog.Label.DurationField" ) ); props.setLook( wlSecondsField ); fdlSecondsField = new FormData(); fdlSecondsField.left = new FormAttachment( 0, 0 ); fdlSecondsField.top = new FormAttachment( wLineserrorsField, margin ); fdlSecondsField.right = new FormAttachment( middle, -margin ); wlSecondsField.setLayoutData( fdlSecondsField ); wSecondsField = new TextVar( transMeta, wFieldsComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER ); wSecondsField.setText( "" ); props.setLook( wSecondsField ); wSecondsField.addModifyListener( lsMod ); fdSecondsField = new FormData(); fdSecondsField.left = new FormAttachment( middle, 0 ); fdSecondsField.top = new FormAttachment( wLineserrorsField, margin ); fdSecondsField.right = new FormAttachment( 100, -margin ); wSecondsField.setLayoutData( fdSecondsField ); fdFieldsComp = new FormData(); fdFieldsComp.left = new FormAttachment( 0, 0 ); fdFieldsComp.top = new FormAttachment( 0, 0 ); fdFieldsComp.right = new FormAttachment( 100, 0 ); fdFieldsComp.bottom = new FormAttachment( 100, 0 ); wFieldsComp.setLayoutData( fdFieldsComp ); wFieldsComp.layout(); wFieldsTab.setControl( wFieldsComp ); // /////////////////////////////////////////////////////////// // / END OF FIELDS TAB // /////////////////////////////////////////////////////////// fdTabFolder = new FormData(); fdTabFolder.left = new FormAttachment( 0, 0 ); fdTabFolder.top = new FormAttachment( wStepname, margin ); fdTabFolder.right = new FormAttachment( 100, 0 ); fdTabFolder.bottom = new FormAttachment( 100, -50 ); wTabFolder.setLayoutData( fdTabFolder ); // Add listeners lsCancel = new Listener() { public void handleEvent( Event e ) { cancel(); } }; lsGet = new Listener() { public void handleEvent( Event e ) { get(); } }; lsOK = new Listener() { public void handleEvent( Event e ) { ok(); } }; wCancel.addListener( SWT.Selection, lsCancel ); wOK.addListener( SWT.Selection, lsOK ); wGet.addListener( SWT.Selection, lsGet ); lsDef = new SelectionAdapter() { public void widgetDefaultSelected( SelectionEvent e ) { ok(); } }; wStepname.addSelectionListener( lsDef ); // Detect X or ALT-F4 or something that kills this window... shell.addShellListener( new ShellAdapter() { public void shellClosed( ShellEvent e ) { cancel(); } } ); wTabFolder.setSelection( 0 ); // Set the shell size, based upon previous time... setSize(); getData(); input.setChanged( changed ); shell.open(); while ( !shell.isDisposed() ) { if ( !display.readAndDispatch() ) { display.sleep(); } } return stepname; } private void setStepNames() { previousSteps = transMeta.getStepNames(); String[] nextSteps = transMeta.getNextStepNames( stepMeta ); List<String> entries = new ArrayList<String>(); for ( int i = 0; i < previousSteps.length; i++ ) { if ( !previousSteps[i].equals( stepname ) ) { if ( nextSteps != null ) { for ( int j = 0; j < nextSteps.length; j++ ) { if ( !nextSteps[j].equals( previousSteps[i] ) ) { entries.add( previousSteps[i] ); } } } } } previousSteps = entries.toArray( new String[entries.size()] ); } private void get() { wFields.removeAll(); Table table = wFields.table; for ( int i = 0; i < previousSteps.length; i++ ) { TableItem ti = new TableItem( table, SWT.NONE ); ti.setText( 0, "" + ( i + 1 ) ); ti.setText( 1, previousSteps[i] ); ti.setText( 2, "0" ); ti.setText( 3, BaseMessages.getString( PKG, "System.Combo.No" ) ); } wFields.removeEmptyRows(); wFields.setRowNums(); wFields.optWidth( true ); } /** * Copy information from the meta-data input to the dialog fields. */ public void getData() { Table table = wFields.table; if ( input.getStepName().length > 0 ) { table.removeAll(); } for ( int i = 0; i < input.getStepName().length; i++ ) { TableItem ti = new TableItem( table, SWT.NONE ); ti.setText( 0, "" + ( i + 1 ) ); if ( input.getStepName()[i] != null ) { ti.setText( 1, input.getStepName()[i] ); ti.setText( 2, String.valueOf( Const.toInt( input.getStepCopyNr()[i], 0 ) ) ); ti.setText( 3, input.getRequiredStepsDesc( input.getStepRequired()[i] ) ); } } wFields.removeEmptyRows(); wFields.setRowNums(); wFields.optWidth( true ); if ( input.getStepNameFieldName() != null ) { wStepnameField.setText( input.getStepNameFieldName() ); } if ( input.getStepIdFieldName() != null ) { wStepidField.setText( input.getStepIdFieldName() ); } if ( input.getStepLinesInputFieldName() != null ) { wLinesinputField.setText( input.getStepLinesInputFieldName() ); } if ( input.getStepLinesOutputFieldName() != null ) { wLinesoutputField.setText( input.getStepLinesOutputFieldName() ); } if ( input.getStepLinesReadFieldName() != null ) { wLinesreadField.setText( input.getStepLinesReadFieldName() ); } if ( input.getStepLinesWrittenFieldName() != null ) { wLineswrittenField.setText( input.getStepLinesWrittenFieldName() ); } if ( input.getStepLinesUpdatedFieldName() != null ) { wLinesupdatedField.setText( input.getStepLinesUpdatedFieldName() ); } if ( input.getStepLinesErrorsFieldName() != null ) { wLineserrorsField.setText( input.getStepLinesErrorsFieldName() ); } if ( input.getStepSecondsFieldName() != null ) { wSecondsField.setText( input.getStepSecondsFieldName() ); } wStepname.selectAll(); wStepname.setFocus(); } private void cancel() { stepname = null; input.setChanged( changed ); dispose(); } private void ok() { if ( Utils.isEmpty( wStepname.getText() ) ) { return; } getInfo( input ); dispose(); } private void getInfo( StepsMetricsMeta in ) { stepname = wStepname.getText(); // return value int nrsteps = wFields.nrNonEmpty(); in.allocate( nrsteps ); for ( int i = 0; i < nrsteps; i++ ) { TableItem ti = wFields.getNonEmpty( i ); StepMeta tm = transMeta.findStep( ti.getText( 1 ) ); //CHECKSTYLE:Indentation:OFF if ( tm != null ) { in.getStepName()[i] = tm.getName(); in.getStepCopyNr()[i] = "" + Const.toInt( ti.getText( 2 ), 0 ); in.getStepRequired()[i] = in.getRequiredStepsCode( ti.getText( 3 ) ); } } in.setStepNameFieldName( wStepnameField.getText() ); in.setStepIdFieldName( wStepidField.getText() ); in.setStepLinesInputFieldName( wLinesinputField.getText() ); in.setStepLinesOutputFieldName( wLinesoutputField.getText() ); in.setStepLinesReadFieldName( wLinesreadField.getText() ); in.setStepLinesWrittenFieldName( wLineswrittenField.getText() ); in.setStepLinesUpdatedFieldName( wLinesupdatedField.getText() ); in.setStepLinesErrorsFieldName( wLineserrorsField.getText() ); in.setStepSecondsFieldName( wSecondsField.getText() ); } }