// CHECKSTYLE:FileLength:OFF /*! ****************************************************************************** * * 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.mail; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CCombo; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; import org.eclipse.swt.events.FocusListener; 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.graphics.Cursor; 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.DirectoryDialog; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.FileDialog; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; 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.core.Props; import org.pentaho.di.core.exception.KettleException; import org.pentaho.di.core.row.RowMetaInterface; 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.steps.mail.MailMeta; import org.pentaho.di.ui.core.dialog.ErrorDialog; import org.pentaho.di.ui.core.widget.ColumnInfo; import org.pentaho.di.ui.core.widget.LabelText; import org.pentaho.di.ui.core.widget.LabelTextVar; import org.pentaho.di.ui.core.widget.TableView; import org.pentaho.di.ui.core.widget.TextVar; import org.pentaho.di.ui.trans.step.BaseStepDialog; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Random; /** * Send mail step. based on Mail job entry * * @author Samatar * @since 28-07-2008 */ public class MailDialog extends BaseStepDialog implements StepDialogInterface { private static Class<?> PKG = MailMeta.class; // for i18n purposes, needed by Translator2!! private static final String[] FILETYPES = new String[] { BaseMessages.getString( PKG, "MailDialog.Filetype.All" ) }; private static final String[] IMAGES_FILE_TYPES = new String[] { BaseMessages.getString( PKG, "MailDialog.Filetype.Png" ), BaseMessages.getString( PKG, "MailDialog.Filetype.Jpeg" ), BaseMessages.getString( PKG, "MailDialog.Filetype.Gif" ), BaseMessages.getString( PKG, "MailDialog.Filetype.All" ) }; private boolean gotEncodings = false; private Group wOriginFiles, wZipGroup, wAttachedContent; private Button wisFileDynamic, wisattachContentField; private Label wlisFileDynamic, wlDynamicFilenameField, wlisattachContentField; private Label wlattachContentField, wlattachContentFileNameField; private CCombo wDynamicFilenameField, wattachContentField, wattachContentFileNameField; private Label wlDynamicWildcardField; private CCombo wDynamicWildcardField; private CTabFolder wTabFolder; private Composite wGeneralComp, wContentComp, wAttachedComp, wMessageComp, wembeddedComp; private CTabItem wGeneralTab, wContentTab, wAttachedTab, wMessageTab, wembeddedTab; private FormData fdGeneralComp, fdContentComp, fdAttachedComp, fdMessageComp, fdembeddedComp; private FormData fdTabFolder; private Label wlisZipFileDynamic; private Label wlReplyToAddresses; private FormData fdReplyToAddresses; private CCombo wReplyToAddresses; private FormData fdlReplyToAddresses; private Group wDestinationGroup, wReplyGroup, wServerGroup, wAuthentificationGroup; private Group wMessageSettingsGroup, wMessageGroup; private LabelText wName; private FormData fdlDestination, fdlDestinationBCc; private CCombo wDestination; private Label wlDestination; private CCombo wDestinationCc, wDestinationBCc; private Label wlDestinationCc, wlDestinationBCc; private FormData fdlDestinationCc; private FormData fdDestination; private FormData fdDestinationCc; private FormData fdDestinationBCc; private CCombo wServer; private Label wlServer; private FormData fdlServer; private FormData fdServer; private CCombo wPort; private Label wlPort; private FormData fdlPort; private FormData fdPort; private Label wlUseAuth; private Button wUseAuth; private FormData fdlUseAuth, fdUseAuth; private Label wlUseSecAuth; private Button wUseSecAuth; private FormData fdlUseSecAuth, fdUseSecAuth; private CCombo wAuthUser; private Label wlAuthUser; private FormData fdAuthUser; private CCombo wAuthPass; private Label wlAuthPass; private FormData fdlAuthPass; private FormData fdAuthPass; private CCombo wReply, wReplyName; private FormData fdReply, fdReplyName; private CCombo wSubject; private Label wlSubject; private FormData fdlSubject; private FormData fdSubject; private Label wlAddDate; private Button wAddDate; private FormData fdlAddDate, fdAddDate; private Label wlReply, wlReplyName; private FormData fdlReply, fdlReplyName; private FormData fdlAuthUser; private CCombo wPerson; private Label wlWildcard; private TextVar wWildcard; private FormData fdlWildcard; private FormData fdWildcard; private Label wlPerson, wlPhone; private FormData fdlPerson, fdlPhone; private FormData fdPerson; private CCombo wPhone; private FormData fdPhone; private CCombo wComment; private Label wlComment; private Label wlSourceFileFoldername; private Button wbFileFoldername, wbSourceFolder; private TextVar wSourceFileFoldername; private FormData fdlSourceFileFoldername, fdbSourceFileFoldername, fdSourceFileFoldername, fdbSourceFolder; private Label wlincludeSubFolders; private Button wincludeSubFolders; private FormData fdlincludeSubFolders, fdincludeSubFolders; private FormData fdlComment, fdComment; private Label wlOnlyComment, wlUseHTML, wlUsePriority; private Button wOnlyComment, wUseHTML, wUsePriority; private FormData fdlOnlyComment, fdOnlyComment, fdlUseHTML, fdUseHTML, fdUsePriority; private Label wlEncoding; private CCombo wEncoding; private FormData fdlEncoding, fdEncoding; private Label wlSecureConnectionType; private CCombo wSecureConnectionType; private FormData fdlSecureConnectionType, fdSecureConnectionType; private Label wlPriority; private CCombo wPriority; private FormData fdlPriority, fdPriority; private Label wlImportance; private CCombo wImportance; private FormData fdlImportance, fdImportance; private Label wlSensitivity; private CCombo wSensitivity; private FormData fdlSensitivity, fdSensitivity; private Label wlZipFiles; private FormData fdlisZipFileDynamic; private Label wlDynamicZipFileField; private CCombo wDynamicZipFileField; private FormData fdlDynamicZipFileField; private FormData fdDynamicZipFileField; private FormData fdisZipFileDynamic; private Button wisZipFileDynamic; private Button wZipFiles; private FormData fdlZipFiles, fdZipFiles; private LabelTextVar wZipFilename; private LabelTextVar wZipSizeCondition; private FormData fdZipFilename; private FormData fdZipSizeCondition; private Label wlImageFilename, wlContentID, wlFields; private Button wbImageFilename, wbaImageFilename, wbdImageFilename, wbeImageFilename; private TextVar wImageFilename, wContentID; private TableView wFields; private boolean getpreviousFields = false; private MailMeta input; public MailDialog( Shell parent, Object in, TransMeta tr, String sname ) { super( parent, (BaseStepMeta) in, tr, sname ); input = (MailMeta) 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, "MailDialog.Shell.Title" ) ); int middle = props.getMiddlePct(); int margin = Const.MARGIN; // Stepname line wlStepname = new Label( shell, SWT.RIGHT ); wlStepname.setText( BaseMessages.getString( PKG, "MailDialog.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, Props.WIDGET_STYLE_TAB ); // //////////////////////// // START OF GENERAL TAB /// // //////////////////////// wGeneralTab = new CTabItem( wTabFolder, SWT.NONE ); wGeneralTab.setText( BaseMessages.getString( PKG, "Mail.Tab.General.Label" ) ); wGeneralComp = new Composite( wTabFolder, SWT.NONE ); props.setLook( wGeneralComp ); FormLayout generalLayout = new FormLayout(); generalLayout.marginWidth = 3; generalLayout.marginHeight = 3; wGeneralComp.setLayout( generalLayout ); // //////////////////////// // START OF Destination Settings GROUP // //////////////////////// wDestinationGroup = new Group( wGeneralComp, SWT.SHADOW_NONE ); props.setLook( wDestinationGroup ); wDestinationGroup.setText( BaseMessages.getString( PKG, "Mail.Group.DestinationAddress.Label" ) ); FormLayout destinationgroupLayout = new FormLayout(); destinationgroupLayout.marginWidth = 10; destinationgroupLayout.marginHeight = 10; wDestinationGroup.setLayout( destinationgroupLayout ); // Destination wlDestination = new Label( wDestinationGroup, SWT.RIGHT ); wlDestination.setText( BaseMessages.getString( PKG, "Mail.DestinationAddress.Label" ) ); props.setLook( wlDestination ); fdlDestination = new FormData(); fdlDestination.left = new FormAttachment( 0, -margin ); fdlDestination.top = new FormAttachment( wStepname, margin ); fdlDestination.right = new FormAttachment( middle, -2 * margin ); wlDestination.setLayoutData( fdlDestination ); wDestination = new CCombo( wDestinationGroup, SWT.BORDER | SWT.READ_ONLY ); wDestination.setEditable( true ); props.setLook( wDestination ); wDestination.addModifyListener( lsMod ); fdDestination = new FormData(); fdDestination.left = new FormAttachment( middle, -margin ); fdDestination.top = new FormAttachment( wStepname, margin ); fdDestination.right = new FormAttachment( 100, -margin ); wDestination.setLayoutData( fdDestination ); wDestination.addFocusListener( new FocusListener() { public void focusLost( org.eclipse.swt.events.FocusEvent e ) { } public void focusGained( org.eclipse.swt.events.FocusEvent e ) { Cursor busy = new Cursor( shell.getDisplay(), SWT.CURSOR_WAIT ); shell.setCursor( busy ); getPreviousFields(); shell.setCursor( null ); busy.dispose(); } } ); // DestinationCcCc wlDestinationCc = new Label( wDestinationGroup, SWT.RIGHT ); wlDestinationCc.setText( BaseMessages.getString( PKG, "Mail.DestinationAddressCc.Label" ) ); props.setLook( wlDestinationCc ); fdlDestinationCc = new FormData(); fdlDestinationCc.left = new FormAttachment( 0, -margin ); fdlDestinationCc.top = new FormAttachment( wDestination, margin ); fdlDestinationCc.right = new FormAttachment( middle, -2 * margin ); wlDestinationCc.setLayoutData( fdlDestinationCc ); wDestinationCc = new CCombo( wDestinationGroup, SWT.BORDER | SWT.READ_ONLY ); wDestinationCc.setEditable( true ); props.setLook( wDestinationCc ); wDestinationCc.addModifyListener( lsMod ); fdDestinationCc = new FormData(); fdDestinationCc.left = new FormAttachment( middle, -margin ); fdDestinationCc.top = new FormAttachment( wDestination, margin ); fdDestinationCc.right = new FormAttachment( 100, -margin ); wDestinationCc.setLayoutData( fdDestinationCc ); wDestinationCc.addFocusListener( new FocusListener() { public void focusLost( org.eclipse.swt.events.FocusEvent e ) { } public void focusGained( org.eclipse.swt.events.FocusEvent e ) { Cursor busy = new Cursor( shell.getDisplay(), SWT.CURSOR_WAIT ); shell.setCursor( busy ); getPreviousFields(); shell.setCursor( null ); busy.dispose(); } } ); // DestinationBCc wlDestinationBCc = new Label( wDestinationGroup, SWT.RIGHT ); wlDestinationBCc.setText( BaseMessages.getString( PKG, "Mail.DestinationAddressBCc.Label" ) ); props.setLook( wlDestinationBCc ); fdlDestinationBCc = new FormData(); fdlDestinationBCc.left = new FormAttachment( 0, -margin ); fdlDestinationBCc.top = new FormAttachment( wDestinationCc, margin ); fdlDestinationBCc.right = new FormAttachment( middle, -2 * margin ); wlDestinationBCc.setLayoutData( fdlDestinationBCc ); wDestinationBCc = new CCombo( wDestinationGroup, SWT.BORDER | SWT.READ_ONLY ); wDestinationBCc.setEditable( true ); props.setLook( wDestinationBCc ); wDestinationBCc.addModifyListener( lsMod ); fdDestinationBCc = new FormData(); fdDestinationBCc.left = new FormAttachment( middle, -margin ); fdDestinationBCc.top = new FormAttachment( wDestinationCc, margin ); fdDestinationBCc.right = new FormAttachment( 100, -margin ); wDestinationBCc.setLayoutData( fdDestinationBCc ); wDestinationBCc.addFocusListener( new FocusListener() { public void focusLost( org.eclipse.swt.events.FocusEvent e ) { } public void focusGained( org.eclipse.swt.events.FocusEvent e ) { Cursor busy = new Cursor( shell.getDisplay(), SWT.CURSOR_WAIT ); shell.setCursor( busy ); getPreviousFields(); shell.setCursor( null ); busy.dispose(); } } ); FormData fdDestinationGroup = new FormData(); fdDestinationGroup.left = new FormAttachment( 0, margin ); fdDestinationGroup.top = new FormAttachment( wName, margin ); fdDestinationGroup.right = new FormAttachment( 100, -margin ); wDestinationGroup.setLayoutData( fdDestinationGroup ); // /////////////////////////////////////////////////////////// // / END OF DESTINATION ADDRESS GROUP // /////////////////////////////////////////////////////////// // //////////////////////// // START OF Reply Settings GROUP // //////////////////////// wReplyGroup = new Group( wGeneralComp, SWT.SHADOW_NONE ); props.setLook( wReplyGroup ); wReplyGroup.setText( BaseMessages.getString( PKG, "MailDialog.Group.Reply.Label" ) ); FormLayout replygroupLayout = new FormLayout(); replygroupLayout.marginWidth = 10; replygroupLayout.marginHeight = 10; wReplyGroup.setLayout( replygroupLayout ); // ReplyName wlReplyName = new Label( wReplyGroup, SWT.RIGHT ); wlReplyName.setText( BaseMessages.getString( PKG, "Mail.ReplyName.Label" ) ); props.setLook( wlReplyName ); fdlReplyName = new FormData(); fdlReplyName.left = new FormAttachment( 0, -margin ); fdlReplyName.top = new FormAttachment( wDestinationGroup, margin ); fdlReplyName.right = new FormAttachment( middle, -2 * margin ); wlReplyName.setLayoutData( fdlReplyName ); wReplyName = new CCombo( wReplyGroup, SWT.BORDER | SWT.READ_ONLY ); wReplyName.setEditable( true ); props.setLook( wReplyName ); wReplyName.addModifyListener( lsMod ); fdReplyName = new FormData(); fdReplyName.left = new FormAttachment( middle, -margin ); fdReplyName.top = new FormAttachment( wDestinationGroup, margin ); fdReplyName.right = new FormAttachment( 100, -margin ); wReplyName.setLayoutData( fdReplyName ); wReplyName.addFocusListener( new FocusListener() { public void focusLost( org.eclipse.swt.events.FocusEvent e ) { } public void focusGained( org.eclipse.swt.events.FocusEvent e ) { Cursor busy = new Cursor( shell.getDisplay(), SWT.CURSOR_WAIT ); shell.setCursor( busy ); getPreviousFields(); shell.setCursor( null ); busy.dispose(); } } ); // Reply wlReply = new Label( wReplyGroup, SWT.RIGHT ); wlReply.setText( BaseMessages.getString( PKG, "Mail.ReplyAddress.Label" ) ); props.setLook( wlReply ); fdlReply = new FormData(); fdlReply.left = new FormAttachment( 0, -margin ); fdlReply.top = new FormAttachment( wReplyName, margin ); fdlReply.right = new FormAttachment( middle, -2 * margin ); wlReply.setLayoutData( fdlReply ); wReply = new CCombo( wReplyGroup, SWT.BORDER | SWT.READ_ONLY ); wReply.setEditable( true ); props.setLook( wReply ); wReply.addModifyListener( lsMod ); fdReply = new FormData(); fdReply.left = new FormAttachment( middle, -margin ); fdReply.top = new FormAttachment( wReplyName, margin ); fdReply.right = new FormAttachment( 100, -margin ); wReply.setLayoutData( fdReply ); wReply.addFocusListener( new FocusListener() { public void focusLost( org.eclipse.swt.events.FocusEvent e ) { } public void focusGained( org.eclipse.swt.events.FocusEvent e ) { Cursor busy = new Cursor( shell.getDisplay(), SWT.CURSOR_WAIT ); shell.setCursor( busy ); getPreviousFields(); shell.setCursor( null ); busy.dispose(); } } ); FormData fdReplyGroup = new FormData(); fdReplyGroup.left = new FormAttachment( 0, margin ); fdReplyGroup.top = new FormAttachment( wDestinationGroup, margin ); fdReplyGroup.right = new FormAttachment( 100, -margin ); wReplyGroup.setLayoutData( fdReplyGroup ); // /////////////////////////////////////////////////////////// // / END OF Reply GROUP // /////////////////////////////////////////////////////////// // Reply to addresses wlReplyToAddresses = new Label( wGeneralComp, SWT.RIGHT ); wlReplyToAddresses.setText( BaseMessages.getString( PKG, "MailDialog.ReplyToAddresses.Label" ) ); props.setLook( wlReplyToAddresses ); fdlReplyToAddresses = new FormData(); fdlReplyToAddresses.left = new FormAttachment( 0, -margin ); fdlReplyToAddresses.top = new FormAttachment( wReplyGroup, 2 * margin ); fdlReplyToAddresses.right = new FormAttachment( middle, -2 * margin ); wlReplyToAddresses.setLayoutData( fdlReplyToAddresses ); wReplyToAddresses = new CCombo( wGeneralComp, SWT.BORDER | SWT.READ_ONLY ); wReplyToAddresses.setEditable( true ); props.setLook( wReplyToAddresses ); wReplyToAddresses.addModifyListener( lsMod ); fdReplyToAddresses = new FormData(); fdReplyToAddresses.left = new FormAttachment( middle, -margin ); fdReplyToAddresses.top = new FormAttachment( wReplyGroup, 2 * margin ); fdReplyToAddresses.right = new FormAttachment( 100, -margin ); wReplyToAddresses.setLayoutData( fdReplyToAddresses ); wReplyToAddresses.addFocusListener( new FocusListener() { public void focusLost( org.eclipse.swt.events.FocusEvent e ) { } public void focusGained( org.eclipse.swt.events.FocusEvent e ) { Cursor busy = new Cursor( shell.getDisplay(), SWT.CURSOR_WAIT ); shell.setCursor( busy ); getPreviousFields(); shell.setCursor( null ); busy.dispose(); } } ); // Person wlPerson = new Label( wGeneralComp, SWT.RIGHT ); wlPerson.setText( BaseMessages.getString( PKG, "Mail.Contact.Label" ) ); props.setLook( wlPerson ); fdlPerson = new FormData(); fdlPerson.left = new FormAttachment( 0, -margin ); fdlPerson.top = new FormAttachment( wReplyToAddresses, 2 * margin ); fdlPerson.right = new FormAttachment( middle, -2 * margin ); wlPerson.setLayoutData( fdlPerson ); wPerson = new CCombo( wGeneralComp, SWT.BORDER | SWT.READ_ONLY ); wPerson.setEditable( true ); props.setLook( wPerson ); wPerson.addModifyListener( lsMod ); fdPerson = new FormData(); fdPerson.left = new FormAttachment( middle, -margin ); fdPerson.top = new FormAttachment( wReplyToAddresses, 2 * margin ); fdPerson.right = new FormAttachment( 100, -margin ); wPerson.setLayoutData( fdPerson ); wPerson.addFocusListener( new FocusListener() { public void focusLost( org.eclipse.swt.events.FocusEvent e ) { } public void focusGained( org.eclipse.swt.events.FocusEvent e ) { Cursor busy = new Cursor( shell.getDisplay(), SWT.CURSOR_WAIT ); shell.setCursor( busy ); getPreviousFields(); shell.setCursor( null ); busy.dispose(); } } ); // Phone line wlPhone = new Label( wGeneralComp, SWT.RIGHT ); wlPhone.setText( BaseMessages.getString( PKG, "Mail.ContactPhone.Label" ) ); props.setLook( wlPhone ); fdlPhone = new FormData(); fdlPhone.left = new FormAttachment( 0, -margin ); fdlPhone.top = new FormAttachment( wPerson, margin ); fdlPhone.right = new FormAttachment( middle, -2 * margin ); wlPhone.setLayoutData( fdlPhone ); wPhone = new CCombo( wGeneralComp, SWT.BORDER | SWT.READ_ONLY ); wPhone.setEditable( true ); props.setLook( wPhone ); wPhone.addModifyListener( lsMod ); fdPhone = new FormData(); fdPhone.left = new FormAttachment( middle, -margin ); fdPhone.top = new FormAttachment( wPerson, margin ); fdPhone.right = new FormAttachment( 100, -margin ); wPhone.setLayoutData( fdPhone ); wPhone.addFocusListener( new FocusListener() { public void focusLost( org.eclipse.swt.events.FocusEvent e ) { } public void focusGained( org.eclipse.swt.events.FocusEvent e ) { Cursor busy = new Cursor( shell.getDisplay(), SWT.CURSOR_WAIT ); shell.setCursor( busy ); getPreviousFields(); shell.setCursor( null ); busy.dispose(); } } ); 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( 500, -margin ); wGeneralComp.setLayoutData( fdGeneralComp ); wGeneralComp.layout(); wGeneralTab.setControl( wGeneralComp ); props.setLook( wGeneralComp ); // /////////////////////////////////////////////////////////// // / END OF GENERAL TAB // /////////////////////////////////////////////////////////// // //////////////////////////////////// // START OF SERVER TAB /// // /////////////////////////////////// wContentTab = new CTabItem( wTabFolder, SWT.NONE ); wContentTab.setText( BaseMessages.getString( PKG, "MailDialog.Server.Label" ) ); FormLayout contentLayout = new FormLayout(); contentLayout.marginWidth = 3; contentLayout.marginHeight = 3; wContentComp = new Composite( wTabFolder, SWT.NONE ); props.setLook( wContentComp ); wContentComp.setLayout( contentLayout ); // //////////////////////// // START OF SERVER GROUP // ///////////////////////// wServerGroup = new Group( wContentComp, SWT.SHADOW_NONE ); props.setLook( wServerGroup ); wServerGroup.setText( BaseMessages.getString( PKG, "Mail.Group.SMTPServer.Label" ) ); FormLayout servergroupLayout = new FormLayout(); servergroupLayout.marginWidth = 10; servergroupLayout.marginHeight = 10; wServerGroup.setLayout( servergroupLayout ); // Server wlServer = new Label( wServerGroup, SWT.RIGHT ); wlServer.setText( BaseMessages.getString( PKG, "Mail.SMTPServer.Label" ) ); props.setLook( wlServer ); fdlServer = new FormData(); fdlServer.left = new FormAttachment( 0, -margin ); fdlServer.top = new FormAttachment( 0, margin ); fdlServer.right = new FormAttachment( middle, -2 * margin ); wlServer.setLayoutData( fdlServer ); wServer = new CCombo( wServerGroup, SWT.BORDER | SWT.READ_ONLY ); wServer.setEditable( true ); props.setLook( wServer ); wServer.addModifyListener( lsMod ); fdServer = new FormData(); fdServer.left = new FormAttachment( middle, -margin ); fdServer.top = new FormAttachment( 0, margin ); fdServer.right = new FormAttachment( 100, -margin ); wServer.setLayoutData( fdServer ); wServer.addFocusListener( new FocusListener() { public void focusLost( org.eclipse.swt.events.FocusEvent e ) { } public void focusGained( org.eclipse.swt.events.FocusEvent e ) { Cursor busy = new Cursor( shell.getDisplay(), SWT.CURSOR_WAIT ); shell.setCursor( busy ); getPreviousFields(); shell.setCursor( null ); busy.dispose(); } } ); // Port wlPort = new Label( wServerGroup, SWT.RIGHT ); wlPort.setText( BaseMessages.getString( PKG, "Mail.Port.Label" ) ); props.setLook( wlPort ); fdlPort = new FormData(); fdlPort.left = new FormAttachment( 0, -margin ); fdlPort.top = new FormAttachment( wServer, margin ); fdlPort.right = new FormAttachment( middle, -2 * margin ); wlPort.setLayoutData( fdlPort ); wPort = new CCombo( wServerGroup, SWT.BORDER | SWT.READ_ONLY ); wPort.setEditable( true ); props.setLook( wPort ); wPort.addModifyListener( lsMod ); fdPort = new FormData(); fdPort.left = new FormAttachment( middle, -margin ); fdPort.top = new FormAttachment( wServer, margin ); fdPort.right = new FormAttachment( 100, -margin ); wPort.setLayoutData( fdPort ); wPort.addFocusListener( new FocusListener() { public void focusLost( org.eclipse.swt.events.FocusEvent e ) { } public void focusGained( org.eclipse.swt.events.FocusEvent e ) { Cursor busy = new Cursor( shell.getDisplay(), SWT.CURSOR_WAIT ); shell.setCursor( busy ); getPreviousFields(); shell.setCursor( null ); busy.dispose(); } } ); FormData fdServerGroup = new FormData(); fdServerGroup.left = new FormAttachment( 0, margin ); fdServerGroup.top = new FormAttachment( wName, margin ); fdServerGroup.right = new FormAttachment( 100, -margin ); wServerGroup.setLayoutData( fdServerGroup ); // ////////////////////////////////////// // / END OF SERVER ADDRESS GROUP // /////////////////////////////////////// // //////////////////////////////////// // START OF AUTHENTIFICATION GROUP // //////////////////////////////////// wAuthentificationGroup = new Group( wContentComp, SWT.SHADOW_NONE ); props.setLook( wAuthentificationGroup ); wAuthentificationGroup.setText( BaseMessages.getString( PKG, "Mail.Group.Authentification.Label" ) ); FormLayout authentificationgroupLayout = new FormLayout(); authentificationgroupLayout.marginWidth = 10; authentificationgroupLayout.marginHeight = 10; wAuthentificationGroup.setLayout( authentificationgroupLayout ); // Authentication? wlUseAuth = new Label( wAuthentificationGroup, SWT.RIGHT ); wlUseAuth.setText( BaseMessages.getString( PKG, "Mail.UseAuthentication.Label" ) ); props.setLook( wlUseAuth ); fdlUseAuth = new FormData(); fdlUseAuth.left = new FormAttachment( 0, 0 ); fdlUseAuth.top = new FormAttachment( wServerGroup, margin ); fdlUseAuth.right = new FormAttachment( middle, -2 * margin ); wlUseAuth.setLayoutData( fdlUseAuth ); wUseAuth = new Button( wAuthentificationGroup, SWT.CHECK ); props.setLook( wUseAuth ); fdUseAuth = new FormData(); fdUseAuth.left = new FormAttachment( middle, -margin ); fdUseAuth.top = new FormAttachment( wServerGroup, margin ); fdUseAuth.right = new FormAttachment( 100, 0 ); wUseAuth.setLayoutData( fdUseAuth ); wUseAuth.addSelectionListener( new SelectionAdapter() { public void widgetSelected( SelectionEvent e ) { setUseAuth(); input.setChanged(); } } ); // AuthUser line wlAuthUser = new Label( wAuthentificationGroup, SWT.RIGHT ); wlAuthUser.setText( BaseMessages.getString( PKG, "Mail.AuthenticationUser.Label" ) ); props.setLook( wlAuthUser ); fdlAuthUser = new FormData(); fdlAuthUser.left = new FormAttachment( 0, -margin ); fdlAuthUser.top = new FormAttachment( wUseAuth, margin ); fdlAuthUser.right = new FormAttachment( middle, -2 * margin ); wlAuthUser.setLayoutData( fdlAuthUser ); wAuthUser = new CCombo( wAuthentificationGroup, SWT.BORDER | SWT.READ_ONLY ); wAuthUser.setEditable( true ); props.setLook( wAuthUser ); wAuthUser.addModifyListener( lsMod ); fdAuthUser = new FormData(); fdAuthUser.left = new FormAttachment( middle, -margin ); fdAuthUser.top = new FormAttachment( wUseAuth, margin ); fdAuthUser.right = new FormAttachment( 100, -margin ); wAuthUser.setLayoutData( fdAuthUser ); wAuthUser.addFocusListener( new FocusListener() { public void focusLost( org.eclipse.swt.events.FocusEvent e ) { } public void focusGained( org.eclipse.swt.events.FocusEvent e ) { Cursor busy = new Cursor( shell.getDisplay(), SWT.CURSOR_WAIT ); shell.setCursor( busy ); getPreviousFields(); shell.setCursor( null ); busy.dispose(); } } ); // AuthPass line wlAuthPass = new Label( wAuthentificationGroup, SWT.RIGHT ); wlAuthPass.setText( BaseMessages.getString( PKG, "Mail.AuthenticationPassword.Label" ) ); props.setLook( wlAuthPass ); fdlAuthPass = new FormData(); fdlAuthPass.left = new FormAttachment( 0, -margin ); fdlAuthPass.top = new FormAttachment( wAuthUser, margin ); fdlAuthPass.right = new FormAttachment( middle, -2 * margin ); wlAuthPass.setLayoutData( fdlAuthPass ); wAuthPass = new CCombo( wAuthentificationGroup, SWT.BORDER | SWT.READ_ONLY ); wAuthPass.setEditable( true ); props.setLook( wAuthPass ); wAuthPass.addModifyListener( lsMod ); fdAuthPass = new FormData(); fdAuthPass.left = new FormAttachment( middle, -margin ); fdAuthPass.top = new FormAttachment( wAuthUser, margin ); fdAuthPass.right = new FormAttachment( 100, -margin ); wAuthPass.setLayoutData( fdAuthPass ); wAuthPass.addFocusListener( new FocusListener() { public void focusLost( org.eclipse.swt.events.FocusEvent e ) { } public void focusGained( org.eclipse.swt.events.FocusEvent e ) { Cursor busy = new Cursor( shell.getDisplay(), SWT.CURSOR_WAIT ); shell.setCursor( busy ); getPreviousFields(); shell.setCursor( null ); busy.dispose(); } } ); // Use secure authentication? wlUseSecAuth = new Label( wAuthentificationGroup, SWT.RIGHT ); wlUseSecAuth.setText( BaseMessages.getString( PKG, "Mail.UseSecAuthentication.Label" ) ); props.setLook( wlUseSecAuth ); fdlUseSecAuth = new FormData(); fdlUseSecAuth.left = new FormAttachment( 0, 0 ); fdlUseSecAuth.top = new FormAttachment( wAuthPass, margin ); fdlUseSecAuth.right = new FormAttachment( middle, -2 * margin ); wlUseSecAuth.setLayoutData( fdlUseSecAuth ); wUseSecAuth = new Button( wAuthentificationGroup, SWT.CHECK ); props.setLook( wUseSecAuth ); fdUseSecAuth = new FormData(); fdUseSecAuth.left = new FormAttachment( middle, -margin ); fdUseSecAuth.top = new FormAttachment( wAuthPass, margin ); fdUseSecAuth.right = new FormAttachment( 100, 0 ); wUseSecAuth.setLayoutData( fdUseSecAuth ); wUseSecAuth.addSelectionListener( new SelectionAdapter() { public void widgetSelected( SelectionEvent e ) { setSecureConnectiontype(); input.setChanged(); } } ); // SecureConnectionType wlSecureConnectionType = new Label( wAuthentificationGroup, SWT.RIGHT ); wlSecureConnectionType.setText( BaseMessages.getString( PKG, "Mail.SecureConnectionType.Label" ) ); props.setLook( wlSecureConnectionType ); fdlSecureConnectionType = new FormData(); fdlSecureConnectionType.left = new FormAttachment( 0, 0 ); fdlSecureConnectionType.top = new FormAttachment( wUseSecAuth, margin ); fdlSecureConnectionType.right = new FormAttachment( middle, -2 * margin ); wlSecureConnectionType.setLayoutData( fdlSecureConnectionType ); wSecureConnectionType = new CCombo( wAuthentificationGroup, SWT.BORDER | SWT.READ_ONLY ); wSecureConnectionType.setEditable( true ); props.setLook( wSecureConnectionType ); wSecureConnectionType.addModifyListener( lsMod ); fdSecureConnectionType = new FormData(); fdSecureConnectionType.left = new FormAttachment( middle, -margin ); fdSecureConnectionType.top = new FormAttachment( wUseSecAuth, margin ); fdSecureConnectionType.right = new FormAttachment( 100, 0 ); wSecureConnectionType.setLayoutData( fdSecureConnectionType ); wSecureConnectionType.add( "SSL" ); wSecureConnectionType.add( "TLS" ); wSecureConnectionType.addSelectionListener( new SelectionAdapter() { public void widgetSelected( SelectionEvent e ) { setSecureConnectiontype(); input.setChanged(); } } ); FormData fdAuthentificationGroup = new FormData(); fdAuthentificationGroup.left = new FormAttachment( 0, margin ); fdAuthentificationGroup.top = new FormAttachment( wServerGroup, margin ); fdAuthentificationGroup.right = new FormAttachment( 100, -margin ); fdAuthentificationGroup.bottom = new FormAttachment( 100, -margin ); wAuthentificationGroup.setLayoutData( fdAuthentificationGroup ); // ////////////////////////////////////// // / END OF AUTHENTIFICATION GROUP // /////////////////////////////////////// fdContentComp = new FormData(); fdContentComp.left = new FormAttachment( 0, 0 ); fdContentComp.top = new FormAttachment( 0, 0 ); fdContentComp.right = new FormAttachment( 100, 0 ); fdContentComp.bottom = new FormAttachment( 100, 0 ); wContentComp.setLayoutData( wContentComp ); wContentComp.layout(); wContentTab.setControl( wContentComp ); // /////////////////////////////////////////////////////////// // / END OF SERVER TAB // /////////////////////////////////////////////////////////// // //////////////////////////////////// // START OF MESSAGE TAB /// // /////////////////////////////////// wMessageTab = new CTabItem( wTabFolder, SWT.NONE ); wMessageTab.setText( BaseMessages.getString( PKG, "Mail.Tab.Message.Label" ) ); FormLayout messageLayout = new FormLayout(); messageLayout.marginWidth = 3; messageLayout.marginHeight = 3; wMessageComp = new Composite( wTabFolder, SWT.NONE ); props.setLook( wMessageComp ); wMessageComp.setLayout( contentLayout ); // //////////////////////////////////// // START OF MESSAGE SETTINGS GROUP // //////////////////////////////////// wMessageSettingsGroup = new Group( wMessageComp, SWT.SHADOW_NONE ); props.setLook( wMessageSettingsGroup ); wMessageSettingsGroup.setText( BaseMessages.getString( PKG, "Mail.Group.MessageSettings.Label" ) ); FormLayout messagesettingsgroupLayout = new FormLayout(); messagesettingsgroupLayout.marginWidth = 10; messagesettingsgroupLayout.marginHeight = 10; wMessageSettingsGroup.setLayout( messagesettingsgroupLayout ); // Add date to logfile name? wlAddDate = new Label( wMessageSettingsGroup, SWT.RIGHT ); wlAddDate.setText( BaseMessages.getString( PKG, "Mail.IncludeDate.Label" ) ); props.setLook( wlAddDate ); fdlAddDate = new FormData(); fdlAddDate.left = new FormAttachment( 0, 0 ); fdlAddDate.top = new FormAttachment( 0, margin ); fdlAddDate.right = new FormAttachment( middle, -2 * margin ); wlAddDate.setLayoutData( fdlAddDate ); wAddDate = new Button( wMessageSettingsGroup, SWT.CHECK ); props.setLook( wAddDate ); fdAddDate = new FormData(); fdAddDate.left = new FormAttachment( middle, -margin ); fdAddDate.top = new FormAttachment( 0, margin ); fdAddDate.right = new FormAttachment( 100, 0 ); wAddDate.setLayoutData( fdAddDate ); wAddDate.addSelectionListener( new SelectionAdapter() { public void widgetSelected( SelectionEvent e ) { input.setChanged(); } } ); // Only send the comment in the mail body wlOnlyComment = new Label( wMessageSettingsGroup, SWT.RIGHT ); wlOnlyComment.setText( BaseMessages.getString( PKG, "Mail.OnlyCommentInBody.Label" ) ); props.setLook( wlOnlyComment ); fdlOnlyComment = new FormData(); fdlOnlyComment.left = new FormAttachment( 0, 0 ); fdlOnlyComment.top = new FormAttachment( wAddDate, margin ); fdlOnlyComment.right = new FormAttachment( middle, -2 * margin ); wlOnlyComment.setLayoutData( fdlOnlyComment ); wOnlyComment = new Button( wMessageSettingsGroup, SWT.CHECK ); props.setLook( wOnlyComment ); fdOnlyComment = new FormData(); fdOnlyComment.left = new FormAttachment( middle, -margin ); fdOnlyComment.top = new FormAttachment( wAddDate, margin ); fdOnlyComment.right = new FormAttachment( 100, 0 ); wOnlyComment.setLayoutData( fdOnlyComment ); wOnlyComment.addSelectionListener( new SelectionAdapter() { public void widgetSelected( SelectionEvent e ) { input.setChanged(); } } ); // HTML format ? wlUseHTML = new Label( wMessageSettingsGroup, SWT.RIGHT ); wlUseHTML.setText( BaseMessages.getString( PKG, "Mail.UseHTMLInBody.Label" ) ); props.setLook( wlUseHTML ); fdlUseHTML = new FormData(); fdlUseHTML.left = new FormAttachment( 0, 0 ); fdlUseHTML.top = new FormAttachment( wOnlyComment, margin ); fdlUseHTML.right = new FormAttachment( middle, -2 * margin ); wlUseHTML.setLayoutData( fdlUseHTML ); wUseHTML = new Button( wMessageSettingsGroup, SWT.CHECK ); props.setLook( wUseHTML ); fdUseHTML = new FormData(); fdUseHTML.left = new FormAttachment( middle, -margin ); fdUseHTML.top = new FormAttachment( wOnlyComment, margin ); fdUseHTML.right = new FormAttachment( 100, 0 ); wUseHTML.setLayoutData( fdUseHTML ); wUseHTML.addSelectionListener( new SelectionAdapter() { public void widgetSelected( SelectionEvent e ) { SetEnabledEncoding(); input.setChanged(); } } ); // Encoding wlEncoding = new Label( wMessageSettingsGroup, SWT.RIGHT ); wlEncoding.setText( BaseMessages.getString( PKG, "Mail.Encoding.Label" ) ); props.setLook( wlEncoding ); fdlEncoding = new FormData(); fdlEncoding.left = new FormAttachment( 0, 0 ); fdlEncoding.top = new FormAttachment( wUseHTML, margin ); fdlEncoding.right = new FormAttachment( middle, -2 * margin ); wlEncoding.setLayoutData( fdlEncoding ); wEncoding = new CCombo( wMessageSettingsGroup, SWT.BORDER | SWT.READ_ONLY ); wEncoding.setEditable( true ); props.setLook( wEncoding ); wEncoding.addModifyListener( lsMod ); fdEncoding = new FormData(); fdEncoding.left = new FormAttachment( middle, -margin ); fdEncoding.top = new FormAttachment( wUseHTML, margin ); fdEncoding.right = new FormAttachment( 100, 0 ); wEncoding.setLayoutData( fdEncoding ); wEncoding.addFocusListener( new FocusListener() { public void focusLost( org.eclipse.swt.events.FocusEvent e ) { } public void focusGained( org.eclipse.swt.events.FocusEvent e ) { Cursor busy = new Cursor( shell.getDisplay(), SWT.CURSOR_WAIT ); shell.setCursor( busy ); setEncodings(); shell.setCursor( null ); busy.dispose(); } } ); // Use Priority ? wlUsePriority = new Label( wMessageSettingsGroup, SWT.RIGHT ); wlUsePriority.setText( BaseMessages.getString( PKG, "Mail.UsePriority.Label" ) ); props.setLook( wlUsePriority ); fdlPriority = new FormData(); fdlPriority.left = new FormAttachment( 0, 0 ); fdlPriority.top = new FormAttachment( wEncoding, margin ); fdlPriority.right = new FormAttachment( middle, -2 * margin ); wlUsePriority.setLayoutData( fdlPriority ); wUsePriority = new Button( wMessageSettingsGroup, SWT.CHECK ); wUsePriority.setToolTipText( BaseMessages.getString( PKG, "Mail.UsePriority.Tooltip" ) ); props.setLook( wUsePriority ); fdUsePriority = new FormData(); fdUsePriority.left = new FormAttachment( middle, -margin ); fdUsePriority.top = new FormAttachment( wEncoding, margin ); fdUsePriority.right = new FormAttachment( 100, 0 ); wUsePriority.setLayoutData( fdUsePriority ); wUsePriority.addSelectionListener( new SelectionAdapter() { public void widgetSelected( SelectionEvent e ) { activeUsePriority(); input.setChanged(); } } ); SelectionAdapter selChanged = new SelectionAdapter() { public void widgetSelected( SelectionEvent e ) { input.setChanged(); } }; // Priority wlPriority = new Label( wMessageSettingsGroup, SWT.RIGHT ); wlPriority.setText( BaseMessages.getString( PKG, "Mail.Priority.Label" ) ); props.setLook( wlPriority ); fdlPriority = new FormData(); fdlPriority.left = new FormAttachment( 0, 0 ); fdlPriority.right = new FormAttachment( middle, -2 * margin ); fdlPriority.top = new FormAttachment( wUsePriority, margin ); wlPriority.setLayoutData( fdlPriority ); wPriority = new CCombo( wMessageSettingsGroup, SWT.SINGLE | SWT.READ_ONLY | SWT.BORDER ); wPriority.add( BaseMessages.getString( PKG, "Mail.Priority.Low.Label" ) ); wPriority.add( BaseMessages.getString( PKG, "Mail.Priority.Normal.Label" ) ); wPriority.add( BaseMessages.getString( PKG, "Mail.Priority.High.Label" ) ); wPriority.select( 1 ); // +1: starts at -1 wPriority.addSelectionListener( selChanged ); props.setLook( wPriority ); fdPriority = new FormData(); fdPriority.left = new FormAttachment( middle, -margin ); fdPriority.top = new FormAttachment( wUsePriority, margin ); fdPriority.right = new FormAttachment( 100, 0 ); wPriority.setLayoutData( fdPriority ); // Importance wlImportance = new Label( wMessageSettingsGroup, SWT.RIGHT ); wlImportance.setText( BaseMessages.getString( PKG, "Mail.Importance.Label" ) ); props.setLook( wlImportance ); fdlImportance = new FormData(); fdlImportance.left = new FormAttachment( 0, 0 ); fdlImportance.right = new FormAttachment( middle, -2 * margin ); fdlImportance.top = new FormAttachment( wPriority, margin ); wlImportance.setLayoutData( fdlImportance ); wImportance = new CCombo( wMessageSettingsGroup, SWT.SINGLE | SWT.READ_ONLY | SWT.BORDER ); wImportance.add( BaseMessages.getString( PKG, "Mail.Priority.Low.Label" ) ); wImportance.add( BaseMessages.getString( PKG, "Mail.Priority.Normal.Label" ) ); wImportance.add( BaseMessages.getString( PKG, "Mail.Priority.High.Label" ) ); wImportance.select( 1 ); // +1: starts at -1 wImportance.addSelectionListener( selChanged ); props.setLook( wImportance ); fdImportance = new FormData(); fdImportance.left = new FormAttachment( middle, -margin ); fdImportance.top = new FormAttachment( wPriority, margin ); fdImportance.right = new FormAttachment( 100, 0 ); wImportance.setLayoutData( fdImportance ); // Sensitivity wlSensitivity = new Label( wMessageSettingsGroup, SWT.RIGHT ); wlSensitivity.setText( BaseMessages.getString( PKG, "Mail.Sensitivity.Label" ) ); props.setLook( wlSensitivity ); fdlSensitivity = new FormData(); fdlSensitivity.left = new FormAttachment( 0, 0 ); fdlSensitivity.right = new FormAttachment( middle, -2 * margin ); fdlSensitivity.top = new FormAttachment( wImportance, margin ); wlSensitivity.setLayoutData( fdlSensitivity ); wSensitivity = new CCombo( wMessageSettingsGroup, SWT.SINGLE | SWT.READ_ONLY | SWT.BORDER ); wSensitivity.add( BaseMessages.getString( PKG, "Mail.Sensitivity.normal.Label" ) ); wSensitivity.add( BaseMessages.getString( PKG, "Mail.Sensitivity.personal.Label" ) ); wSensitivity.add( BaseMessages.getString( PKG, "Mail.Sensitivity.private.Label" ) ); wSensitivity.add( BaseMessages.getString( PKG, "Mail.Sensitivity.confidential.Label" ) ); wSensitivity.select( 0 ); wSensitivity.addSelectionListener( selChanged ); props.setLook( wSensitivity ); fdSensitivity = new FormData(); fdSensitivity.left = new FormAttachment( middle, -margin ); fdSensitivity.top = new FormAttachment( wImportance, margin ); fdSensitivity.right = new FormAttachment( 100, 0 ); wSensitivity.setLayoutData( fdSensitivity ); FormData fdMessageSettingsGroup = new FormData(); fdMessageSettingsGroup.left = new FormAttachment( 0, margin ); fdMessageSettingsGroup.top = new FormAttachment( wName, margin ); fdMessageSettingsGroup.right = new FormAttachment( 100, -margin ); wMessageSettingsGroup.setLayoutData( fdMessageSettingsGroup ); // ////////////////////////////////////// // / END OF MESSAGE SETTINGS GROUP // /////////////////////////////////////// // //////////////////////////////////// // START OF MESSAGE GROUP // //////////////////////////////////// wMessageGroup = new Group( wMessageComp, SWT.SHADOW_NONE ); props.setLook( wMessageGroup ); wMessageGroup.setText( BaseMessages.getString( PKG, "Mail.Group.Message.Label" ) ); FormLayout messagegroupLayout = new FormLayout(); messagegroupLayout.marginWidth = 10; messagegroupLayout.marginHeight = 10; wMessageGroup.setLayout( messagegroupLayout ); // Subject line wlSubject = new Label( wMessageGroup, SWT.RIGHT ); wlSubject.setText( BaseMessages.getString( PKG, "Mail.Subject.Label" ) ); props.setLook( wlSubject ); fdlSubject = new FormData(); fdlSubject.left = new FormAttachment( 0, -margin ); fdlSubject.top = new FormAttachment( wMessageSettingsGroup, margin ); fdlSubject.right = new FormAttachment( middle, -2 * margin ); wlSubject.setLayoutData( fdlSubject ); wSubject = new CCombo( wMessageGroup, SWT.BORDER | SWT.READ_ONLY ); wSubject.setEditable( true ); props.setLook( wSubject ); wSubject.addModifyListener( lsMod ); fdSubject = new FormData(); fdSubject.left = new FormAttachment( middle, -margin ); fdSubject.top = new FormAttachment( wMessageSettingsGroup, margin ); fdSubject.right = new FormAttachment( 100, -margin ); wSubject.setLayoutData( fdSubject ); wSubject.addFocusListener( new FocusListener() { public void focusLost( org.eclipse.swt.events.FocusEvent e ) { } public void focusGained( org.eclipse.swt.events.FocusEvent e ) { Cursor busy = new Cursor( shell.getDisplay(), SWT.CURSOR_WAIT ); shell.setCursor( busy ); getPreviousFields(); shell.setCursor( null ); busy.dispose(); } } ); // Comment line wlComment = new Label( wMessageGroup, SWT.RIGHT ); wlComment.setText( BaseMessages.getString( PKG, "Mail.Comment.Label" ) ); props.setLook( wlComment ); fdlComment = new FormData(); fdlComment.left = new FormAttachment( 0, -margin ); fdlComment.top = new FormAttachment( wSubject, margin ); fdlComment.right = new FormAttachment( middle, -2 * margin ); wlComment.setLayoutData( fdlComment ); wComment = new CCombo( wMessageGroup, SWT.BORDER | SWT.READ_ONLY ); wComment.setEditable( true ); props.setLook( wComment ); wComment.addModifyListener( lsMod ); fdComment = new FormData(); fdComment.left = new FormAttachment( middle, -margin ); fdComment.top = new FormAttachment( wSubject, margin ); fdComment.right = new FormAttachment( 100, -margin ); wComment.setLayoutData( fdComment ); wComment.addFocusListener( new FocusListener() { public void focusLost( org.eclipse.swt.events.FocusEvent e ) { } public void focusGained( org.eclipse.swt.events.FocusEvent e ) { Cursor busy = new Cursor( shell.getDisplay(), SWT.CURSOR_WAIT ); shell.setCursor( busy ); getPreviousFields(); shell.setCursor( null ); busy.dispose(); } } ); FormData fdMessageGroup = new FormData(); fdMessageGroup.left = new FormAttachment( 0, margin ); fdMessageGroup.top = new FormAttachment( wMessageSettingsGroup, margin ); fdMessageGroup.bottom = new FormAttachment( 100, -margin ); fdMessageGroup.right = new FormAttachment( 100, -margin ); wMessageGroup.setLayoutData( fdMessageGroup ); // ////////////////////////////////////// // / END OF MESSAGE GROUP // /////////////////////////////////////// fdMessageComp = new FormData(); fdMessageComp.left = new FormAttachment( 0, 0 ); fdMessageComp.top = new FormAttachment( 0, 0 ); fdMessageComp.right = new FormAttachment( 100, 0 ); fdMessageComp.bottom = new FormAttachment( 100, 0 ); wMessageComp.setLayoutData( wMessageComp ); wMessageComp.layout(); wMessageTab.setControl( wMessageComp ); // /////////////////////////////////////////////////////////// // / END OF MESSAGE TAB // /////////////////////////////////////////////////////////// // //////////////////////////////////// // START OF ATTACHED FILES TAB /// // /////////////////////////////////// wAttachedTab = new CTabItem( wTabFolder, SWT.NONE ); wAttachedTab.setText( BaseMessages.getString( PKG, "Mail.Tab.AttachedFiles.Label" ) ); FormLayout attachedLayout = new FormLayout(); attachedLayout.marginWidth = 3; attachedLayout.marginHeight = 3; wAttachedComp = new Composite( wTabFolder, SWT.NONE ); props.setLook( wAttachedComp ); wAttachedComp.setLayout( attachedLayout ); // /////////////////////////////// // START OF Attached files GROUP // // /////////////////////////////// wAttachedContent = new Group( wAttachedComp, SWT.SHADOW_NONE ); props.setLook( wAttachedContent ); wAttachedContent.setText( BaseMessages.getString( PKG, "MailDialog.AttachedContent.Label" ) ); FormLayout AttachedContentgroupLayout = new FormLayout(); AttachedContentgroupLayout.marginWidth = 10; AttachedContentgroupLayout.marginHeight = 10; wAttachedContent.setLayout( AttachedContentgroupLayout ); // Is Filename defined in a Field wlisattachContentField = new Label( wAttachedContent, SWT.RIGHT ); wlisattachContentField.setText( BaseMessages.getString( PKG, "MailDialog.isattachContentField.Label" ) ); props.setLook( wlisattachContentField ); FormData fdlisattachContentField = new FormData(); fdlisattachContentField.left = new FormAttachment( 0, -margin ); fdlisattachContentField.top = new FormAttachment( 0, margin ); fdlisattachContentField.right = new FormAttachment( middle, -2 * margin ); wlisattachContentField.setLayoutData( fdlisattachContentField ); wisattachContentField = new Button( wAttachedContent, SWT.CHECK ); props.setLook( wisattachContentField ); wisattachContentField.setToolTipText( BaseMessages.getString( PKG, "MailDialog.isattachContentField.Tooltip" ) ); FormData fdisattachContentField = new FormData(); fdisattachContentField.left = new FormAttachment( middle, -margin ); fdisattachContentField.top = new FormAttachment( 0, margin ); wisattachContentField.setLayoutData( fdisattachContentField ); SelectionAdapter lisattachContentField = new SelectionAdapter() { public void widgetSelected( SelectionEvent arg0 ) { activeISAttachContentField(); input.setChanged(); } }; wisattachContentField.addSelectionListener( lisattachContentField ); // attache file content field wlattachContentField = new Label( wAttachedContent, SWT.RIGHT ); wlattachContentField.setText( BaseMessages.getString( PKG, "MailDialog.attachContentField.Label" ) ); props.setLook( wlattachContentField ); FormData fdlattachContentField = new FormData(); fdlattachContentField.left = new FormAttachment( 0, -margin ); fdlattachContentField.top = new FormAttachment( wisattachContentField, margin ); fdlattachContentField.right = new FormAttachment( middle, -2 * margin ); wlattachContentField.setLayoutData( fdlattachContentField ); wattachContentField = new CCombo( wAttachedContent, SWT.BORDER | SWT.READ_ONLY ); wattachContentField.setEditable( true ); props.setLook( wattachContentField ); wattachContentField.addModifyListener( lsMod ); FormData fdattachContentField = new FormData(); fdattachContentField.left = new FormAttachment( middle, -margin ); fdattachContentField.top = new FormAttachment( wisattachContentField, margin ); fdattachContentField.right = new FormAttachment( 100, -margin ); wattachContentField.setLayoutData( fdattachContentField ); wattachContentField.addFocusListener( new FocusListener() { public void focusLost( org.eclipse.swt.events.FocusEvent e ) { } public void focusGained( org.eclipse.swt.events.FocusEvent e ) { Cursor busy = new Cursor( shell.getDisplay(), SWT.CURSOR_WAIT ); shell.setCursor( busy ); getPreviousFields(); shell.setCursor( null ); busy.dispose(); } } ); // attached content filename field wlattachContentFileNameField = new Label( wAttachedContent, SWT.RIGHT ); wlattachContentFileNameField.setText( BaseMessages.getString( PKG, "MailDialog.attachContentFileNameField.Label" ) ); props.setLook( wlattachContentFileNameField ); FormData fdlattachContentFileNameField = new FormData(); fdlattachContentFileNameField.left = new FormAttachment( 0, -margin ); fdlattachContentFileNameField.top = new FormAttachment( wattachContentField, margin ); fdlattachContentFileNameField.right = new FormAttachment( middle, -2 * margin ); wlattachContentFileNameField.setLayoutData( fdlattachContentFileNameField ); wattachContentFileNameField = new CCombo( wAttachedContent, SWT.BORDER | SWT.READ_ONLY ); wattachContentFileNameField.setEditable( true ); props.setLook( wattachContentFileNameField ); wattachContentFileNameField.addModifyListener( lsMod ); FormData fdattachContentFileNameField = new FormData(); fdattachContentFileNameField.left = new FormAttachment( middle, -margin ); fdattachContentFileNameField.top = new FormAttachment( wattachContentField, margin ); fdattachContentFileNameField.right = new FormAttachment( 100, -margin ); wattachContentFileNameField.setLayoutData( fdattachContentFileNameField ); wattachContentFileNameField.addFocusListener( new FocusListener() { public void focusLost( org.eclipse.swt.events.FocusEvent e ) { } public void focusGained( org.eclipse.swt.events.FocusEvent e ) { Cursor busy = new Cursor( shell.getDisplay(), SWT.CURSOR_WAIT ); shell.setCursor( busy ); getPreviousFields(); shell.setCursor( null ); busy.dispose(); } } ); FormData fdAttachedContent = new FormData(); fdAttachedContent.left = new FormAttachment( 0, margin ); fdAttachedContent.top = new FormAttachment( 0, 2 * margin ); fdAttachedContent.right = new FormAttachment( 100, -margin ); wAttachedContent.setLayoutData( fdAttachedContent ); // /////////////////////////////////////////////////////////// // / END OF Attached files GROUP // /////////////////////////////////////////////////////////// // /////////////////////////////// // START OF Origin files GROUP // // /////////////////////////////// wOriginFiles = new Group( wAttachedComp, SWT.SHADOW_NONE ); props.setLook( wOriginFiles ); wOriginFiles.setText( BaseMessages.getString( PKG, "MailDialog.OriginAttachedFiles.Label" ) ); FormLayout OriginFilesgroupLayout = new FormLayout(); OriginFilesgroupLayout.marginWidth = 10; OriginFilesgroupLayout.marginHeight = 10; wOriginFiles.setLayout( OriginFilesgroupLayout ); // Is Filename defined in a Field wlisFileDynamic = new Label( wOriginFiles, SWT.RIGHT ); wlisFileDynamic.setText( BaseMessages.getString( PKG, "MailDialog.isFileDynamic.Label" ) ); props.setLook( wlisFileDynamic ); FormData fdlisFileDynamic = new FormData(); fdlisFileDynamic.left = new FormAttachment( 0, -margin ); fdlisFileDynamic.top = new FormAttachment( wAttachedContent, margin ); fdlisFileDynamic.right = new FormAttachment( middle, -2 * margin ); wlisFileDynamic.setLayoutData( fdlisFileDynamic ); wisFileDynamic = new Button( wOriginFiles, SWT.CHECK ); props.setLook( wisFileDynamic ); wisFileDynamic.setToolTipText( BaseMessages.getString( PKG, "MailDialog.isFileDynamic.Tooltip" ) ); FormData fdisFileDynamic = new FormData(); fdisFileDynamic.left = new FormAttachment( middle, -margin ); fdisFileDynamic.top = new FormAttachment( wAttachedContent, margin ); wisFileDynamic.setLayoutData( fdisFileDynamic ); SelectionAdapter lisFileDynamic = new SelectionAdapter() { public void widgetSelected( SelectionEvent arg0 ) { ActiveisFileDynamic(); input.setChanged(); } }; wisFileDynamic.addSelectionListener( lisFileDynamic ); // Filename field wlDynamicFilenameField = new Label( wOriginFiles, SWT.RIGHT ); wlDynamicFilenameField.setText( BaseMessages.getString( PKG, "MailDialog.DynamicFilenameField.Label" ) ); props.setLook( wlDynamicFilenameField ); FormData fdlFilenameField = new FormData(); fdlFilenameField.left = new FormAttachment( 0, -margin ); fdlFilenameField.top = new FormAttachment( wisFileDynamic, margin ); fdlFilenameField.right = new FormAttachment( middle, -2 * margin ); wlDynamicFilenameField.setLayoutData( fdlFilenameField ); wDynamicFilenameField = new CCombo( wOriginFiles, SWT.BORDER | SWT.READ_ONLY ); wDynamicFilenameField.setEditable( true ); props.setLook( wDynamicFilenameField ); wDynamicFilenameField.addModifyListener( lsMod ); FormData fdFilenameField = new FormData(); fdFilenameField.left = new FormAttachment( middle, -margin ); fdFilenameField.top = new FormAttachment( wisFileDynamic, margin ); fdFilenameField.right = new FormAttachment( 100, -margin ); wDynamicFilenameField.setLayoutData( fdFilenameField ); wDynamicFilenameField.addFocusListener( new FocusListener() { public void focusLost( org.eclipse.swt.events.FocusEvent e ) { } public void focusGained( org.eclipse.swt.events.FocusEvent e ) { Cursor busy = new Cursor( shell.getDisplay(), SWT.CURSOR_WAIT ); shell.setCursor( busy ); getPreviousFields(); shell.setCursor( null ); busy.dispose(); } } ); // Wildcard field wlDynamicWildcardField = new Label( wOriginFiles, SWT.RIGHT ); wlDynamicWildcardField.setText( BaseMessages.getString( PKG, "MailDialog.DynamicWildcardField.Label" ) ); props.setLook( wlDynamicWildcardField ); FormData fdlDynamicWildcardField = new FormData(); fdlDynamicWildcardField.left = new FormAttachment( 0, -margin ); fdlDynamicWildcardField.top = new FormAttachment( wDynamicFilenameField, margin ); fdlDynamicWildcardField.right = new FormAttachment( middle, -2 * margin ); wlDynamicWildcardField.setLayoutData( fdlDynamicWildcardField ); wDynamicWildcardField = new CCombo( wOriginFiles, SWT.BORDER | SWT.READ_ONLY ); wDynamicWildcardField.setEditable( true ); props.setLook( wDynamicWildcardField ); wDynamicWildcardField.addModifyListener( lsMod ); FormData fdDynamicWildcardField = new FormData(); fdDynamicWildcardField.left = new FormAttachment( middle, -margin ); fdDynamicWildcardField.top = new FormAttachment( wDynamicFilenameField, margin ); fdDynamicWildcardField.right = new FormAttachment( 100, -margin ); wDynamicWildcardField.setLayoutData( fdDynamicWildcardField ); wDynamicWildcardField.addFocusListener( new FocusListener() { public void focusLost( org.eclipse.swt.events.FocusEvent e ) { } public void focusGained( org.eclipse.swt.events.FocusEvent e ) { Cursor busy = new Cursor( shell.getDisplay(), SWT.CURSOR_WAIT ); shell.setCursor( busy ); getPreviousFields(); shell.setCursor( null ); busy.dispose(); } } ); // FileFoldername line wlSourceFileFoldername = new Label( wOriginFiles, SWT.RIGHT ); wlSourceFileFoldername.setText( BaseMessages.getString( PKG, "MailDialog.FileFoldername.Label" ) ); props.setLook( wlSourceFileFoldername ); fdlSourceFileFoldername = new FormData(); fdlSourceFileFoldername.left = new FormAttachment( 0, 0 ); fdlSourceFileFoldername.top = new FormAttachment( wDynamicWildcardField, 2 * margin ); fdlSourceFileFoldername.right = new FormAttachment( middle, -margin ); wlSourceFileFoldername.setLayoutData( fdlSourceFileFoldername ); // Browse Destination folders button ... wbSourceFolder = new Button( wOriginFiles, SWT.PUSH | SWT.CENTER ); props.setLook( wbSourceFolder ); wbSourceFolder.setText( BaseMessages.getString( PKG, "MailDialog.BrowseFolders.Label" ) ); fdbSourceFolder = new FormData(); fdbSourceFolder.right = new FormAttachment( 100, 0 ); fdbSourceFolder.top = new FormAttachment( wDynamicWildcardField, 2 * margin ); wbSourceFolder.setLayoutData( fdbSourceFolder ); wbSourceFolder.addSelectionListener( new SelectionAdapter() { public void widgetSelected( SelectionEvent e ) { DirectoryDialog ddialog = new DirectoryDialog( shell, SWT.OPEN ); if ( wSourceFileFoldername.getText() != null ) { ddialog.setFilterPath( transMeta.environmentSubstitute( wSourceFileFoldername.getText() ) ); } // Calling open() will open and run the dialog. // It will return the selected directory, or // null if user cancels String dir = ddialog.open(); if ( dir != null ) { // Set the text box to the new selection wSourceFileFoldername.setText( dir ); } } } ); // Browse source file button ... wbFileFoldername = new Button( wOriginFiles, SWT.PUSH | SWT.CENTER ); props.setLook( wbFileFoldername ); wbFileFoldername.setText( BaseMessages.getString( PKG, "MailDialog.BrowseFiles.Label" ) ); fdbSourceFileFoldername = new FormData(); fdbSourceFileFoldername.right = new FormAttachment( wbSourceFolder, -margin ); fdbSourceFileFoldername.top = new FormAttachment( wDynamicWildcardField, 2 * margin ); wbFileFoldername.setLayoutData( fdbSourceFileFoldername ); wSourceFileFoldername = new TextVar( transMeta, wOriginFiles, SWT.SINGLE | SWT.LEFT | SWT.BORDER ); props.setLook( wSourceFileFoldername ); wSourceFileFoldername.addModifyListener( lsMod ); fdSourceFileFoldername = new FormData(); fdSourceFileFoldername.left = new FormAttachment( middle, 0 ); fdSourceFileFoldername.top = new FormAttachment( wDynamicWildcardField, 2 * margin ); fdSourceFileFoldername.right = new FormAttachment( wbFileFoldername, -margin ); wSourceFileFoldername.setLayoutData( fdSourceFileFoldername ); // Whenever something changes, set the tooltip to the expanded version: wSourceFileFoldername.addModifyListener( new ModifyListener() { public void modifyText( ModifyEvent e ) { wSourceFileFoldername.setToolTipText( transMeta.environmentSubstitute( wSourceFileFoldername.getText() ) ); } } ); wbFileFoldername.addSelectionListener( new SelectionAdapter() { public void widgetSelected( SelectionEvent e ) { FileDialog dialog = new FileDialog( shell, SWT.OPEN ); dialog.setFilterExtensions( new String[] { "*" } ); if ( wSourceFileFoldername.getText() != null ) { dialog.setFileName( transMeta.environmentSubstitute( wSourceFileFoldername.getText() ) ); } dialog.setFilterNames( FILETYPES ); if ( dialog.open() != null ) { wSourceFileFoldername.setText( dialog.getFilterPath() + Const.FILE_SEPARATOR + dialog.getFileName() ); } } } ); // Include sub folders wlincludeSubFolders = new Label( wOriginFiles, SWT.RIGHT ); wlincludeSubFolders.setText( BaseMessages.getString( PKG, "MailDialog.includeSubFolders.Label" ) ); props.setLook( wlincludeSubFolders ); fdlincludeSubFolders = new FormData(); fdlincludeSubFolders.left = new FormAttachment( 0, 0 ); fdlincludeSubFolders.top = new FormAttachment( wSourceFileFoldername, margin ); fdlincludeSubFolders.right = new FormAttachment( middle, -margin ); wlincludeSubFolders.setLayoutData( fdlincludeSubFolders ); wincludeSubFolders = new Button( wOriginFiles, SWT.CHECK ); props.setLook( wincludeSubFolders ); wincludeSubFolders.setToolTipText( BaseMessages.getString( PKG, "MailDialog.includeSubFolders.Tooltip" ) ); fdincludeSubFolders = new FormData(); fdincludeSubFolders.left = new FormAttachment( middle, 0 ); fdincludeSubFolders.top = new FormAttachment( wSourceFileFoldername, margin ); fdincludeSubFolders.right = new FormAttachment( 100, 0 ); wincludeSubFolders.setLayoutData( fdincludeSubFolders ); wincludeSubFolders.addSelectionListener( new SelectionAdapter() { public void widgetSelected( SelectionEvent e ) { input.setChanged(); } } ); // Wildcard wlWildcard = new Label( wOriginFiles, SWT.RIGHT ); wlWildcard.setText( BaseMessages.getString( PKG, "MailDialog.Wildcard.Label" ) ); props.setLook( wlWildcard ); fdlWildcard = new FormData(); fdlWildcard.left = new FormAttachment( 0, 0 ); fdlWildcard.top = new FormAttachment( wincludeSubFolders, margin ); fdlWildcard.right = new FormAttachment( middle, -margin ); wlWildcard.setLayoutData( fdlWildcard ); wWildcard = new TextVar( transMeta, wOriginFiles, SWT.SINGLE | SWT.LEFT | SWT.BORDER ); props.setLook( wWildcard ); wWildcard.setToolTipText( BaseMessages.getString( PKG, "MailDialog.Wildcard.Tooltip" ) ); wWildcard.addModifyListener( lsMod ); fdWildcard = new FormData(); fdWildcard.left = new FormAttachment( middle, 0 ); fdWildcard.top = new FormAttachment( wincludeSubFolders, margin ); fdWildcard.right = new FormAttachment( wbFileFoldername, -margin ); wWildcard.setLayoutData( fdWildcard ); // Whenever something changes, set the tooltip to the expanded version: wWildcard.addModifyListener( new ModifyListener() { public void modifyText( ModifyEvent e ) { wWildcard.setToolTipText( transMeta.environmentSubstitute( wWildcard.getText() ) ); } } ); FormData fdOriginFiles = new FormData(); fdOriginFiles.left = new FormAttachment( 0, margin ); fdOriginFiles.top = new FormAttachment( wAttachedContent, 2 * margin ); fdOriginFiles.right = new FormAttachment( 100, -margin ); wOriginFiles.setLayoutData( fdOriginFiles ); // /////////////////////////////////////////////////////////// // / END OF Origin files GROUP // /////////////////////////////////////////////////////////// // /////////////////////////////// // START OF Zip Group files GROUP // // /////////////////////////////// wZipGroup = new Group( wAttachedComp, SWT.SHADOW_NONE ); props.setLook( wZipGroup ); wZipGroup.setText( BaseMessages.getString( PKG, "MailDialog.ZipGroup.Label" ) ); FormLayout ZipGroupgroupLayout = new FormLayout(); ZipGroupgroupLayout.marginWidth = 10; ZipGroupgroupLayout.marginHeight = 10; wZipGroup.setLayout( ZipGroupgroupLayout ); // Zip Files? wlZipFiles = new Label( wZipGroup, SWT.RIGHT ); wlZipFiles.setText( BaseMessages.getString( PKG, "MailDialog.ZipFiles.Label" ) ); props.setLook( wlZipFiles ); fdlZipFiles = new FormData(); fdlZipFiles.left = new FormAttachment( 0, -margin ); fdlZipFiles.top = new FormAttachment( wOriginFiles, margin ); fdlZipFiles.right = new FormAttachment( middle, -2 * margin ); wlZipFiles.setLayoutData( fdlZipFiles ); wZipFiles = new Button( wZipGroup, SWT.CHECK ); props.setLook( wZipFiles ); fdZipFiles = new FormData(); fdZipFiles.left = new FormAttachment( middle, -margin ); fdZipFiles.top = new FormAttachment( wOriginFiles, margin ); fdZipFiles.right = new FormAttachment( 100, -margin ); wZipFiles.setLayoutData( fdZipFiles ); wZipFiles.addSelectionListener( new SelectionAdapter() { public void widgetSelected( SelectionEvent e ) { input.setChanged(); setZip(); } } ); // is zipfilename is dynamic? wlisZipFileDynamic = new Label( wZipGroup, SWT.RIGHT ); wlisZipFileDynamic.setText( BaseMessages.getString( PKG, "MailDialog.isZipFileDynamic.Label" ) ); props.setLook( wlisZipFileDynamic ); fdlisZipFileDynamic = new FormData(); fdlisZipFileDynamic.left = new FormAttachment( 0, -margin ); fdlisZipFileDynamic.top = new FormAttachment( wZipFiles, margin ); fdlisZipFileDynamic.right = new FormAttachment( middle, -2 * margin ); wlisZipFileDynamic.setLayoutData( fdlisZipFileDynamic ); wisZipFileDynamic = new Button( wZipGroup, SWT.CHECK ); props.setLook( wisZipFileDynamic ); fdisZipFileDynamic = new FormData(); fdisZipFileDynamic.left = new FormAttachment( middle, -margin ); fdisZipFileDynamic.top = new FormAttachment( wZipFiles, margin ); fdisZipFileDynamic.right = new FormAttachment( 100, -margin ); wisZipFileDynamic.setLayoutData( fdisZipFileDynamic ); wisZipFileDynamic.addSelectionListener( new SelectionAdapter() { public void widgetSelected( SelectionEvent e ) { input.setChanged(); setDynamicZip(); } } ); // ZipFile field wlDynamicZipFileField = new Label( wZipGroup, SWT.RIGHT ); wlDynamicZipFileField.setText( BaseMessages.getString( PKG, "MailDialog.DynamicZipFileField.Label" ) ); props.setLook( wlDynamicZipFileField ); fdlDynamicZipFileField = new FormData(); fdlDynamicZipFileField.left = new FormAttachment( 0, -margin ); fdlDynamicZipFileField.top = new FormAttachment( wisZipFileDynamic, margin ); fdlDynamicZipFileField.right = new FormAttachment( middle, -2 * margin ); wlDynamicZipFileField.setLayoutData( fdlDynamicZipFileField ); wDynamicZipFileField = new CCombo( wZipGroup, SWT.BORDER | SWT.READ_ONLY ); wDynamicZipFileField.setEditable( true ); props.setLook( wDynamicZipFileField ); wDynamicZipFileField.addModifyListener( lsMod ); fdDynamicZipFileField = new FormData(); fdDynamicZipFileField.left = new FormAttachment( middle, -margin ); fdDynamicZipFileField.top = new FormAttachment( wisZipFileDynamic, margin ); fdDynamicZipFileField.right = new FormAttachment( 100, -margin ); wDynamicZipFileField.setLayoutData( fdDynamicZipFileField ); wDynamicZipFileField.addFocusListener( new FocusListener() { public void focusLost( org.eclipse.swt.events.FocusEvent e ) { } public void focusGained( org.eclipse.swt.events.FocusEvent e ) { Cursor busy = new Cursor( shell.getDisplay(), SWT.CURSOR_WAIT ); shell.setCursor( busy ); getPreviousFields(); shell.setCursor( null ); busy.dispose(); } } ); // ZipFilename line wZipFilename = new LabelTextVar( transMeta, wZipGroup, BaseMessages.getString( PKG, "MailDialog.ZipFilename.Label" ), BaseMessages .getString( PKG, "MailDialog.ZipFilename.Tooltip" ) ); wZipFilename.addModifyListener( lsMod ); fdZipFilename = new FormData(); fdZipFilename.left = new FormAttachment( 0, -margin ); fdZipFilename.top = new FormAttachment( wDynamicZipFileField, margin ); fdZipFilename.right = new FormAttachment( 100, -4 * margin ); wZipFilename.setLayoutData( fdZipFilename ); // Zip files on condition? wZipSizeCondition = new LabelTextVar( transMeta, wZipGroup, BaseMessages.getString( PKG, "MailDialog.ZipSizeCondition.Label" ), BaseMessages .getString( PKG, "MailDialog.ZipSizeCondition.Tooltip" ) ); wZipSizeCondition.addModifyListener( lsMod ); fdZipSizeCondition = new FormData(); fdZipSizeCondition.left = new FormAttachment( 0, -margin ); fdZipSizeCondition.top = new FormAttachment( wZipFilename, margin ); fdZipSizeCondition.right = new FormAttachment( 100, -4 * margin ); wZipSizeCondition.setLayoutData( fdZipSizeCondition ); FormData fdZipGroup = new FormData(); fdZipGroup.left = new FormAttachment( 0, margin ); fdZipGroup.top = new FormAttachment( wOriginFiles, margin ); fdZipGroup.right = new FormAttachment( 100, -margin ); wZipGroup.setLayoutData( fdZipGroup ); // /////////////////////////////////////////////////////////// // / END OF Zip Group GROUP // /////////////////////////////////////////////////////////// fdAttachedComp = new FormData(); fdAttachedComp.left = new FormAttachment( 0, 0 ); fdAttachedComp.top = new FormAttachment( 0, 0 ); fdAttachedComp.right = new FormAttachment( 100, 0 ); fdAttachedComp.bottom = new FormAttachment( 100, 0 ); wAttachedComp.setLayoutData( wAttachedComp ); wAttachedComp.layout(); wAttachedTab.setControl( wAttachedComp ); // /////////////////////////////////////////////////////////// // / END OF FILES TAB // /////////////////////////////////////////////////////////// // //////////////////////////////////// // START OF embedded images TAB /// // /////////////////////////////////// wembeddedTab = new CTabItem( wTabFolder, SWT.NONE ); wembeddedTab.setText( BaseMessages.getString( PKG, "Mail.Tab.embeddedImages.Label" ) ); FormLayout embeddedLayout = new FormLayout(); embeddedLayout.marginWidth = 3; embeddedLayout.marginHeight = 3; wembeddedComp = new Composite( wTabFolder, SWT.NONE ); props.setLook( wembeddedComp ); wembeddedComp.setLayout( embeddedLayout ); // ImageFilename line wlImageFilename = new Label( wembeddedComp, SWT.RIGHT ); wlImageFilename.setText( BaseMessages.getString( PKG, "MailDialog.ImageFilename.Label" ) ); props.setLook( wlImageFilename ); FormData fdlImageFilename = new FormData(); fdlImageFilename.left = new FormAttachment( 0, 0 ); fdlImageFilename.top = new FormAttachment( wStepname, margin ); fdlImageFilename.right = new FormAttachment( middle, -margin ); wlImageFilename.setLayoutData( fdlImageFilename ); wbImageFilename = new Button( wembeddedComp, SWT.PUSH | SWT.CENTER ); props.setLook( wbImageFilename ); wbImageFilename.setText( BaseMessages.getString( PKG, "MailDialog.BrowseFiles.Label" ) ); wbImageFilename.setToolTipText( BaseMessages.getString( PKG, "MailDialog.BrowseFiles.Tooltip" ) ); FormData fdbImageFilename = new FormData(); fdbImageFilename.right = new FormAttachment( 100, 0 ); fdbImageFilename.top = new FormAttachment( wStepname, margin ); fdbImageFilename.right = new FormAttachment( 100, -margin ); wbImageFilename.setLayoutData( fdbImageFilename ); wbaImageFilename = new Button( wembeddedComp, SWT.PUSH | SWT.CENTER ); props.setLook( wbaImageFilename ); wbaImageFilename.setText( BaseMessages.getString( PKG, "MailDialog.ImageFilenameAdd.Button" ) ); wbaImageFilename.setToolTipText( BaseMessages.getString( PKG, "MailDialog.ImageFilenameAdd.Tooltip" ) ); FormData fdbaImageFilename = new FormData(); fdbaImageFilename.right = new FormAttachment( wbImageFilename, -margin ); fdbaImageFilename.top = new FormAttachment( wStepname, margin ); wbaImageFilename.setLayoutData( fdbaImageFilename ); wImageFilename = new TextVar( transMeta, wembeddedComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER ); props.setLook( wImageFilename ); wImageFilename.addModifyListener( lsMod ); FormData fdImageFilename = new FormData(); fdImageFilename.left = new FormAttachment( middle, 0 ); fdImageFilename.top = new FormAttachment( wStepname, margin ); fdImageFilename.right = new FormAttachment( wbaImageFilename, -margin ); wImageFilename.setLayoutData( fdImageFilename ); // Whenever something changes, set the tooltip to the expanded version: wImageFilename.addModifyListener( new ModifyListener() { public void modifyText( ModifyEvent e ) { wImageFilename.setToolTipText( transMeta.environmentSubstitute( wImageFilename.getText() ) ); } } ); wbImageFilename.addSelectionListener( new SelectionAdapter() { public void widgetSelected( SelectionEvent e ) { FileDialog dialog = new FileDialog( shell, SWT.OPEN ); dialog.setFilterExtensions( new String[] { "*png;*PNG", "*jpeg;*jpg;*JPEG;*JPG", "*gif;*GIF", "*" } ); if ( wImageFilename.getText() != null ) { dialog.setFileName( transMeta.environmentSubstitute( wImageFilename.getText() ) ); } dialog.setFilterNames( IMAGES_FILE_TYPES ); if ( dialog.open() != null ) { wImageFilename.setText( dialog.getFilterPath() + Const.FILE_SEPARATOR + dialog.getFileName() ); Random randomgen = new Random(); wContentID.setText( Long.toString( Math.abs( randomgen.nextLong() ), 32 ) ); } } } ); // ContentID wlContentID = new Label( wembeddedComp, SWT.RIGHT ); wlContentID.setText( BaseMessages.getString( PKG, "MailDialog.ContentID.Label" ) ); props.setLook( wlContentID ); FormData fdlContentID = new FormData(); fdlContentID.left = new FormAttachment( 0, 0 ); fdlContentID.top = new FormAttachment( wImageFilename, margin ); fdlContentID.right = new FormAttachment( middle, -margin ); wlContentID.setLayoutData( fdlContentID ); wContentID = new TextVar( transMeta, wembeddedComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER, BaseMessages.getString( PKG, "MailDialog.ContentID.Tooltip" ) ); props.setLook( wContentID ); wContentID.addModifyListener( lsMod ); FormData fdContentID = new FormData(); fdContentID.left = new FormAttachment( middle, 0 ); fdContentID.top = new FormAttachment( wImageFilename, margin ); fdContentID.right = new FormAttachment( wbaImageFilename, -margin ); wContentID.setLayoutData( fdContentID ); // Buttons to the right of the screen... wbdImageFilename = new Button( wembeddedComp, SWT.PUSH | SWT.CENTER ); props.setLook( wbdImageFilename ); wbdImageFilename.setText( BaseMessages.getString( PKG, "MailDialog.ImageFilenameDelete.Button" ) ); wbdImageFilename.setToolTipText( BaseMessages.getString( PKG, "MailDialog.ImageFilenameDelete.Tooltip" ) ); FormData fdbdImageFilename = new FormData(); fdbdImageFilename.right = new FormAttachment( 100, 0 ); fdbdImageFilename.top = new FormAttachment( wContentID, 40 ); wbdImageFilename.setLayoutData( fdbdImageFilename ); wbeImageFilename = new Button( wembeddedComp, SWT.PUSH | SWT.CENTER ); props.setLook( wbeImageFilename ); wbeImageFilename.setText( BaseMessages.getString( PKG, "MailDialog.ImageFilenameEdit.Button" ) ); wbeImageFilename.setToolTipText( BaseMessages.getString( PKG, "MailDialog.ImageFilenameEdit.Tooltip" ) ); FormData fdbeImageFilename = new FormData(); fdbeImageFilename.right = new FormAttachment( 100, 0 ); fdbeImageFilename.left = new FormAttachment( wbdImageFilename, 0, SWT.LEFT ); fdbeImageFilename.top = new FormAttachment( wbdImageFilename, margin ); wbeImageFilename.setLayoutData( fdbeImageFilename ); wlFields = new Label( wembeddedComp, SWT.NONE ); wlFields.setText( BaseMessages.getString( PKG, "MailDialog.Fields.Label" ) ); props.setLook( wlFields ); FormData fdlFields = new FormData(); fdlFields.left = new FormAttachment( 0, 0 ); fdlFields.right = new FormAttachment( middle, -margin ); fdlFields.top = new FormAttachment( wContentID, margin ); wlFields.setLayoutData( fdlFields ); int rows = input.getEmbeddedImages() == null ? 1 : ( input.getEmbeddedImages().length == 0 ? 0 : input .getEmbeddedImages().length ); final int FieldsRows = rows; ColumnInfo[] colinf = new ColumnInfo[] { new ColumnInfo( BaseMessages.getString( PKG, "MailDialog.Fields.Image.Label" ), ColumnInfo.COLUMN_TYPE_TEXT, false ), new ColumnInfo( BaseMessages.getString( PKG, "MailDialog.Fields.ContentID.Label" ), ColumnInfo.COLUMN_TYPE_TEXT, false ), }; colinf[0].setUsingVariables( true ); colinf[0].setToolTip( BaseMessages.getString( PKG, "MailDialog.Fields.Image.Tooltip" ) ); colinf[1].setUsingVariables( true ); colinf[1].setToolTip( BaseMessages.getString( PKG, "MailDialog.Fields.ContentID.Tooltip" ) ); wFields = new TableView( transMeta, wembeddedComp, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, colinf, FieldsRows, lsMod, props ); FormData fdFields = new FormData(); fdFields.left = new FormAttachment( 0, 0 ); fdFields.top = new FormAttachment( wlFields, margin ); fdFields.right = new FormAttachment( wbeImageFilename, -margin ); fdFields.bottom = new FormAttachment( 100, -margin ); wFields.setLayoutData( fdFields ); // Add the file to the list of files... SelectionAdapter selA = new SelectionAdapter() { public void widgetSelected( SelectionEvent arg0 ) { wFields.add( new String[] { wImageFilename.getText(), wContentID.getText() } ); wImageFilename.setText( "" ); wContentID.setText( "" ); wFields.removeEmptyRows(); wFields.setRowNums(); wFields.optWidth( true ); } }; wbaImageFilename.addSelectionListener( selA ); wImageFilename.addSelectionListener( selA ); // Delete files from the list of files... wbdImageFilename.addSelectionListener( new SelectionAdapter() { public void widgetSelected( SelectionEvent arg0 ) { int[] idx = wFields.getSelectionIndices(); wFields.remove( idx ); wFields.removeEmptyRows(); wFields.setRowNums(); } } ); // Edit the selected file & remove from the list... wbeImageFilename.addSelectionListener( new SelectionAdapter() { public void widgetSelected( SelectionEvent arg0 ) { int idx = wFields.getSelectionIndex(); if ( idx >= 0 ) { String[] string = wFields.getItem( idx ); wImageFilename.setText( string[0] ); wContentID.setText( string[1] ); wFields.remove( idx ); } wFields.removeEmptyRows(); wFields.setRowNums(); } } ); fdembeddedComp = new FormData(); fdembeddedComp.left = new FormAttachment( 0, 0 ); fdembeddedComp.top = new FormAttachment( 0, 0 ); fdembeddedComp.right = new FormAttachment( 100, 0 ); fdembeddedComp.bottom = new FormAttachment( 100, 0 ); wembeddedComp.setLayoutData( wembeddedComp ); wembeddedComp.layout(); wembeddedTab.setControl( wembeddedComp ); // /////////////////////////////////////////////////////////// // / END OF embedded images 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 ); // Some buttons wOK = new Button( shell, SWT.PUSH ); wOK.setText( BaseMessages.getString( PKG, "System.Button.OK" ) ); wCancel = new Button( shell, SWT.PUSH ); wCancel.setText( BaseMessages.getString( PKG, "System.Button.Cancel" ) ); setButtonPositions( new Button[] { wOK, wCancel }, margin, wTabFolder ); // Add listeners lsCancel = new Listener() { public void handleEvent( Event e ) { cancel(); } }; lsOK = new Listener() { public void handleEvent( Event e ) { ok(); } }; wCancel.addListener( SWT.Selection, lsCancel ); wOK.addListener( SWT.Selection, lsOK ); 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(); } } ); // Set the shell size, based upon previous time... setSize(); getData(); ActiveisFileDynamic(); SetEnabledEncoding(); activeUsePriority(); setDynamicZip(); setZip(); setUseAuth(); activeISAttachContentField(); input.setChanged( changed ); wTabFolder.setSelection( 0 ); shell.open(); while ( !shell.isDisposed() ) { if ( !display.readAndDispatch() ) { display.sleep(); } } return stepname; } private void setDynamicZip() { wDynamicZipFileField.setEnabled( wZipFiles.getSelection() && wisZipFileDynamic.getSelection() ); wlDynamicZipFileField.setEnabled( wZipFiles.getSelection() && wisZipFileDynamic.getSelection() ); } private void setZip() { wZipFilename.setEnabled( wZipFiles.getSelection() ); wZipSizeCondition.setEnabled( wZipFiles.getSelection() ); wlisZipFileDynamic.setEnabled( wZipFiles.getSelection() ); wisZipFileDynamic.setEnabled( wZipFiles.getSelection() ); setDynamicZip(); } private void ActiveisFileDynamic() { wlDynamicFilenameField.setEnabled( wisFileDynamic.getSelection() ); wDynamicFilenameField.setEnabled( wisFileDynamic.getSelection() ); wlDynamicWildcardField.setEnabled( wisFileDynamic.getSelection() ); wDynamicWildcardField.setEnabled( wisFileDynamic.getSelection() ); wWildcard.setEnabled( !wisFileDynamic.getSelection() ); wlWildcard.setEnabled( !wisFileDynamic.getSelection() ); wSourceFileFoldername.setEnabled( !wisFileDynamic.getSelection() ); wlSourceFileFoldername.setEnabled( !wisFileDynamic.getSelection() ); wbFileFoldername.setEnabled( !wisFileDynamic.getSelection() ); wbSourceFolder.setEnabled( !wisFileDynamic.getSelection() ); } private void getPreviousFields() { try { if ( !getpreviousFields ) { getpreviousFields = true; String destination = null; if ( wDestination != null ) { destination = wDestination.getText(); } wDestination.removeAll(); String destinationcc = null; if ( wDestinationCc != null ) { destinationcc = wDestinationCc.getText(); } wDestinationCc.removeAll(); String destinationbcc = null; if ( wDestinationBCc != null ) { destinationbcc = wDestinationBCc.getText(); } wDestinationBCc.removeAll(); String replyToaddress = null; if ( wReplyToAddresses != null ) { replyToaddress = wReplyToAddresses.getText(); } wReplyToAddresses.removeAll(); String replyname = null; if ( wReplyName != null ) { replyname = wReplyName.getText(); } wReplyName.removeAll(); String replyaddress = null; if ( wReply != null ) { replyaddress = wReply.getText(); } wReply.removeAll(); String person = null; if ( wPerson != null ) { person = wPerson.getText(); } wPerson.removeAll(); String phone = null; if ( wPhone != null ) { phone = wPhone.getText(); } wPhone.removeAll(); String servername = null; if ( wServer != null ) { servername = wServer.getText(); } wServer.removeAll(); String port = null; if ( wPort != null ) { port = wPort.getText(); } wPort.removeAll(); String authuser = null; String authpass = null; if ( wAuthUser != null ) { authuser = wAuthUser.getText(); } wAuthUser.removeAll(); if ( wAuthPass != null ) { authpass = wAuthPass.getText(); } wAuthPass.removeAll(); String subject = null; if ( wSubject != null ) { subject = wSubject.getText(); } wSubject.removeAll(); String comment = null; if ( wComment != null ) { comment = wComment.getText(); } wComment.removeAll(); String dynamFile = null; String dynamWildcard = null; if ( wDynamicFilenameField != null ) { dynamFile = wDynamicFilenameField.getText(); } wDynamicFilenameField.removeAll(); if ( wDynamicWildcardField != null ) { dynamWildcard = wDynamicWildcardField.getText(); } wDynamicWildcardField.removeAll(); String dynamZipFile = null; if ( wDynamicZipFileField != null ) { dynamZipFile = wDynamicZipFileField.getText(); } wDynamicZipFileField.removeAll(); String attachcontent = null; if ( wattachContentField != null ) { attachcontent = wattachContentField.getText(); } wattachContentField.removeAll(); String attachcontentfilename = null; if ( wattachContentFileNameField != null ) { attachcontentfilename = wattachContentFileNameField.getText(); } wattachContentFileNameField.removeAll(); RowMetaInterface r = transMeta.getPrevStepFields( stepname ); if ( r != null ) { String[] fieldnames = r.getFieldNames(); wDestination.setItems( fieldnames ); wDestinationCc.setItems( fieldnames ); wDestinationBCc.setItems( fieldnames ); wReplyName.setItems( fieldnames ); wReply.setItems( fieldnames ); wPerson.setItems( fieldnames ); wPhone.setItems( fieldnames ); wServer.setItems( fieldnames ); wPort.setItems( fieldnames ); wAuthUser.setItems( fieldnames ); wAuthPass.setItems( fieldnames ); wSubject.setItems( fieldnames ); wComment.setItems( fieldnames ); wDynamicFilenameField.setItems( fieldnames ); wDynamicWildcardField.setItems( fieldnames ); wDynamicZipFileField.setItems( fieldnames ); wReplyToAddresses.setItems( fieldnames ); wattachContentField.setItems( fieldnames ); wattachContentFileNameField.setItems( fieldnames ); } if ( destination != null ) { wDestination.setText( destination ); } if ( destinationcc != null ) { wDestinationCc.setText( destinationcc ); } if ( destinationbcc != null ) { wDestinationBCc.setText( destinationbcc ); } if ( replyname != null ) { wReplyName.setText( replyname ); } if ( replyaddress != null ) { wReply.setText( replyaddress ); } if ( person != null ) { wPerson.setText( person ); } if ( phone != null ) { wPhone.setText( phone ); } if ( servername != null ) { wServer.setText( servername ); } if ( port != null ) { wPort.setText( port ); } if ( authuser != null ) { wAuthUser.setText( authuser ); } if ( authpass != null ) { wAuthPass.setText( authpass ); } if ( subject != null ) { wSubject.setText( subject ); } if ( comment != null ) { wComment.setText( comment ); } if ( dynamFile != null ) { wDynamicFilenameField.setText( dynamFile ); } if ( dynamWildcard != null ) { wDynamicWildcardField.setText( dynamWildcard ); } if ( dynamZipFile != null ) { wDynamicZipFileField.setText( dynamZipFile ); } if ( replyToaddress != null ) { wReplyToAddresses.setText( replyToaddress ); } if ( attachcontent != null ) { wattachContentField.setText( attachcontent ); } if ( attachcontentfilename != null ) { wattachContentFileNameField.setText( attachcontentfilename ); } } } catch ( KettleException ke ) { new ErrorDialog( shell, BaseMessages.getString( PKG, "MailDialog.FailedToGetFields.DialogTitle" ), BaseMessages .getString( PKG, "MailDialog.FailedToGetFields.DialogMessage" ), ke ); } } private void activeUsePriority() { wlPriority.setEnabled( wUsePriority.getSelection() ); wPriority.setEnabled( wUsePriority.getSelection() ); wlImportance.setEnabled( wUsePriority.getSelection() ); wImportance.setEnabled( wUsePriority.getSelection() ); wlSensitivity.setEnabled( wUsePriority.getSelection() ); wSensitivity.setEnabled( wUsePriority.getSelection() ); } private void SetEnabledEncoding() { wEncoding.setEnabled( wUseHTML.getSelection() ); wlEncoding.setEnabled( wUseHTML.getSelection() ); wlImageFilename.setEnabled( wUseHTML.getSelection() ); wlImageFilename.setEnabled( wUseHTML.getSelection() ); wbImageFilename.setEnabled( wUseHTML.getSelection() ); wbaImageFilename.setEnabled( wUseHTML.getSelection() ); wImageFilename.setEnabled( wUseHTML.getSelection() ); wlContentID.setEnabled( wUseHTML.getSelection() ); wContentID.setEnabled( wUseHTML.getSelection() ); wbdImageFilename.setEnabled( wUseHTML.getSelection() ); wbeImageFilename.setEnabled( wUseHTML.getSelection() ); wlFields.setEnabled( wUseHTML.getSelection() ); wFields.setEnabled( wUseHTML.getSelection() ); } protected void setSecureConnectiontype() { wSecureConnectionType.setEnabled( wUseSecAuth.getSelection() ); wlSecureConnectionType.setEnabled( wUseSecAuth.getSelection() ); } private void setEncodings() { // Encoding of the text file: if ( !gotEncodings ) { gotEncodings = true; wEncoding.removeAll(); ArrayList<Charset> values = new ArrayList<Charset>( Charset.availableCharsets().values() ); for ( int i = 0; i < values.size(); i++ ) { Charset charSet = values.get( i ); wEncoding.add( charSet.displayName() ); } // Now select the default! String defEncoding = Const.getEnvironmentVariable( "file.encoding", "UTF-8" ); int idx = Const.indexOfString( defEncoding, wEncoding.getItems() ); if ( idx >= 0 ) { wEncoding.select( idx ); } } } protected void setUseAuth() { wlAuthUser.setEnabled( wUseAuth.getSelection() ); wAuthUser.setEnabled( wUseAuth.getSelection() ); wlAuthPass.setEnabled( wUseAuth.getSelection() ); wAuthPass.setEnabled( wUseAuth.getSelection() ); wUseSecAuth.setEnabled( wUseAuth.getSelection() ); wlUseSecAuth.setEnabled( wUseAuth.getSelection() ); if ( !wUseAuth.getSelection() ) { wSecureConnectionType.setEnabled( false ); wlSecureConnectionType.setEnabled( false ); } else { setSecureConnectiontype(); } } /** * Copy information from the meta-data input to the dialog fields. */ public void getData() { wisattachContentField.setSelection( input.isAttachContentFromField() ); if ( input.getAttachContentField() != null ) { wattachContentField.setText( input.getAttachContentField() ); } if ( input.getAttachContentFileNameField() != null ) { wattachContentFileNameField.setText( input.getAttachContentFileNameField() ); } if ( input.getDestination() != null ) { wDestination.setText( input.getDestination() ); } if ( input.getDestinationCc() != null ) { wDestinationCc.setText( input.getDestinationCc() ); } if ( input.getDestinationBCc() != null ) { wDestinationBCc.setText( input.getDestinationBCc() ); } if ( input.getServer() != null ) { wServer.setText( input.getServer() ); } if ( input.getPort() != null ) { wPort.setText( input.getPort() ); } if ( input.getReplyAddress() != null ) { wReply.setText( input.getReplyAddress() ); } if ( input.getReplyName() != null ) { wReplyName.setText( input.getReplyName() ); } if ( input.getSubject() != null ) { wSubject.setText( input.getSubject() ); } if ( input.getContactPerson() != null ) { wPerson.setText( input.getContactPerson() ); } if ( input.getContactPhone() != null ) { wPhone.setText( input.getContactPhone() ); } if ( input.getComment() != null ) { wComment.setText( input.getComment() ); } wAddDate.setSelection( input.getIncludeDate() ); wisFileDynamic.setSelection( input.isDynamicFilename() ); if ( input.getDynamicFieldname() != null ) { wDynamicFilenameField.setText( input.getDynamicFieldname() ); } if ( input.getDynamicWildcard() != null ) { wDynamicWildcardField.setText( input.getDynamicWildcard() ); } if ( input.getSourceFileFoldername() != null ) { wSourceFileFoldername.setText( input.getSourceFileFoldername() ); } if ( input.getSourceWildcard() != null ) { wWildcard.setText( input.getSourceWildcard() ); } wincludeSubFolders.setSelection( input.isIncludeSubFolders() ); wZipFiles.setSelection( input.isZipFiles() ); if ( input.getZipFilename() != null ) { wZipFilename.setText( input.getZipFilename() ); } if ( input.getZipLimitSize() != null ) { wZipSizeCondition.setText( input.getZipLimitSize() ); } else { wZipSizeCondition.setText( "0" ); } wisZipFileDynamic.setSelection( input.isZipFilenameDynamic() ); if ( input.getDynamicZipFilenameField() != null ) { wDynamicZipFileField.setText( input.getDynamicZipFilenameField() ); } wUseAuth.setSelection( input.isUsingAuthentication() ); wUseSecAuth.setSelection( input.isUsingSecureAuthentication() ); if ( input.getAuthenticationUser() != null ) { wAuthUser.setText( input.getAuthenticationUser() ); } if ( input.getAuthenticationPassword() != null ) { wAuthPass.setText( input.getAuthenticationPassword() ); } wOnlyComment.setSelection( input.isOnlySendComment() ); wUseHTML.setSelection( input.isUseHTML() ); if ( input.getEncoding() != null ) { wEncoding.setText( "" + input.getEncoding() ); } else { wEncoding.setText( "UTF-8" ); } // Secure connection type if ( input.getSecureConnectionType() != null ) { wSecureConnectionType.setText( input.getSecureConnectionType() ); } else { wSecureConnectionType.setText( "SSL" ); } wUsePriority.setSelection( input.isUsePriority() ); // Priority if ( input.getPriority() != null ) { if ( input.getPriority().equals( "low" ) ) { wPriority.select( 0 ); // Low } else if ( input.getPriority().equals( "normal" ) ) { wPriority.select( 1 ); // Normal } else { wPriority.select( 2 ); // Default High } } else { wPriority.select( 3 ); // Default High } // Importance if ( input.getImportance() != null ) { if ( input.getImportance().equals( "low" ) ) { wImportance.select( 0 ); // Low } else if ( input.getImportance().equals( "normal" ) ) { wImportance.select( 1 ); // Normal } else { wImportance.select( 2 ); // Default High } } else { wImportance.select( 3 ); // Default High } if ( input.getReplyToAddresses() != null ) { wReplyToAddresses.setText( input.getReplyToAddresses() ); } // Sensitivity if ( input.getSensitivity() != null ) { if ( input.getSensitivity().equals( "personal" ) ) { wSensitivity.select( 1 ); } else if ( input.getSensitivity().equals( "private" ) ) { wSensitivity.select( 2 ); } else if ( input.getSensitivity().equals( "company-confidential" ) ) { wSensitivity.select( 3 ); } else { wSensitivity.select( 0 ); } } else { wSensitivity.select( 0 ); // Default normal } if ( input.getEmbeddedImages() != null ) { for ( int i = 0; i < input.getEmbeddedImages().length; i++ ) { TableItem ti = wFields.table.getItem( i ); if ( input.getEmbeddedImages()[i] != null ) { ti.setText( 1, input.getEmbeddedImages()[i] ); } if ( input.getContentIds()[i] != null ) { ti.setText( 2, input.getContentIds()[i] ); } } wFields.setRowNums(); wFields.optWidth( true ); } wStepname.selectAll(); wStepname.setFocus(); } private void cancel() { stepname = null; input.setChanged( changed ); dispose(); } private void ok() { if ( Utils.isEmpty( wStepname.getText() ) ) { return; } stepname = wStepname.getText(); // return value input.setAttachContentFromField( wisattachContentField.getSelection() ); input.setAttachContentField( wattachContentField.getText() ); input.setAttachContentFileNameField( wattachContentFileNameField.getText() ); input.setDestination( wDestination.getText() ); input.setDestinationCc( wDestinationCc.getText() ); input.setDestinationBCc( wDestinationBCc.getText() ); input.setServer( wServer.getText() ); input.setPort( wPort.getText() ); input.setReplyAddress( wReply.getText() ); input.setReplyName( wReplyName.getText() ); input.setSubject( wSubject.getText() ); input.setContactPerson( wPerson.getText() ); input.setContactPhone( wPhone.getText() ); input.setComment( wComment.getText() ); input.setIncludeSubFolders( wincludeSubFolders.getSelection() ); input.setIncludeDate( wAddDate.getSelection() ); input.setisDynamicFilename( wisFileDynamic.getSelection() ); input.setDynamicFieldname( wDynamicFilenameField.getText() ); input.setDynamicWildcard( wDynamicWildcardField.getText() ); input.setDynamicZipFilenameField( wDynamicZipFileField.getText() ); input.setSourceFileFoldername( wSourceFileFoldername.getText() ); input.setSourceWildcard( wWildcard.getText() ); input.setZipLimitSize( wZipSizeCondition.getText() ); input.setZipFilenameDynamic( wisZipFileDynamic.getSelection() ); input.setZipFilename( wZipFilename.getText() ); input.setZipFiles( wZipFiles.getSelection() ); input.setAuthenticationUser( wAuthUser.getText() ); input.setAuthenticationPassword( wAuthPass.getText() ); input.setUsingAuthentication( wUseAuth.getSelection() ); input.setUsingSecureAuthentication( wUseSecAuth.getSelection() ); input.setOnlySendComment( wOnlyComment.getSelection() ); input.setUseHTML( wUseHTML.getSelection() ); input.setUsePriority( wUsePriority.getSelection() ); input.setEncoding( wEncoding.getText() ); input.setPriority( wPriority.getText() ); // Priority if ( wPriority.getSelectionIndex() == 0 ) { input.setPriority( "low" ); } else if ( wPriority.getSelectionIndex() == 1 ) { input.setPriority( "normal" ); } else { input.setPriority( "high" ); } // Importance if ( wImportance.getSelectionIndex() == 0 ) { input.setImportance( "low" ); } else if ( wImportance.getSelectionIndex() == 1 ) { input.setImportance( "normal" ); } else { input.setImportance( "high" ); } // Sensitivity if ( wSensitivity.getSelectionIndex() == 1 ) { input.setSensitivity( "personal" ); } else if ( wSensitivity.getSelectionIndex() == 2 ) { input.setSensitivity( "private" ); } else if ( wSensitivity.getSelectionIndex() == 3 ) { input.setSensitivity( "company-confidential" ); } else { input.setSensitivity( "normal" ); // default is normal } // Secure Connection type input.setSecureConnectionType( wSecureConnectionType.getText() ); input.setReplyToAddresses( wReplyToAddresses.getText() ); int nritems = wFields.nrNonEmpty(); int nr = 0; for ( int i = 0; i < nritems; i++ ) { String arg = wFields.getNonEmpty( i ).getText( 1 ); if ( arg != null && arg.length() != 0 ) { nr++; } } input.allocate( nr ); nr = 0; for ( int i = 0; i < nritems; i++ ) { String image = wFields.getNonEmpty( i ).getText( 1 ); String id = wFields.getNonEmpty( i ).getText( 2 ); input.setEmbeddedImage( i, image ); input.setContentIds( i, id ); nr++; } dispose(); } private void activeISAttachContentField() { wOriginFiles.setEnabled( !wisattachContentField.getSelection() ); wZipGroup.setEnabled( !wisattachContentField.getSelection() ); wlattachContentField.setEnabled( wisattachContentField.getSelection() ); wattachContentField.setEnabled( wisattachContentField.getSelection() ); wlattachContentFileNameField.setEnabled( wisattachContentField.getSelection() ); wattachContentFileNameField.setEnabled( wisattachContentField.getSelection() ); } }