/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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.apache.directory.studio.ldapbrowser.ui.wizards; import org.apache.directory.studio.common.ui.widgets.BaseWidgetUtils; import org.apache.directory.studio.ldapbrowser.ui.BrowserUIPlugin; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; /** * This class implements the Finish page of the Batch Operation Wizard. * * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a> */ public class BatchOperationFinishWizardPage extends WizardPage { /** The continue on error flag key */ public static final String EXECUTE_METHOD_DIALOGSETTING_KEY = BatchOperationFinishWizardPage.class.getName() + ".executeMethod"; //$NON-NLS-1$ /** The continue on error flag key */ public static final String CONTINUE_ON_ERROR_DIALOGSETTING_KEY = BatchOperationFinishWizardPage.class.getName() + ".continueOnError"; //$NON-NLS-1$ // Execution Method Values public final static int EXECUTION_METHOD_NONE = -1; public final static int EXECUTION_METHOD_ON_CONNECTION = 0; public final static int EXECUTION_METHOD_LDIF_EDITOR = 1; public final static int EXECUTION_METHOD_LDIF_FILE = 2; public final static int EXECUTION_METHOD_LDIF_CLIPBOARD = 3; // UI widgets private Button executeOnConnectionButton; private Button continueOnErrorButton; private Button generateLdifButton; private Button generateInLDIFEditorButton; private Button generateInFileButton; private Button generateInClipboardButton; // Listeners private SelectionListener validateSelectionListener = new SelectionAdapter() { public void widgetSelected( SelectionEvent e ) { validate(); } }; /** * Creates a new instance of BatchOperationFinishWizardPage. * * @param pageName the page name */ public BatchOperationFinishWizardPage( String pageName ) { super( pageName ); super.setTitle( Messages.getString( "BatchOperationFinishWizardPage.SelectExecutionMethod" ) ); //$NON-NLS-1$ super.setDescription( Messages.getString( "BatchOperationFinishWizardPage.PleaseSelectBatchOperation" ) ); //$NON-NLS-1$ super.setPageComplete( false ); } /** * {@inheritDoc} */ public void createControl( Composite parent ) { // Composite Composite composite = new Composite( parent, SWT.NONE ); GridLayout gl = new GridLayout(); composite.setLayout( gl ); composite.setLayoutData( new GridData( GridData.FILL_BOTH ) ); // Execute On Connection Button executeOnConnectionButton = BaseWidgetUtils.createRadiobutton( composite, Messages .getString( "BatchOperationFinishWizardPage.ExecuteOnConnection" ), 1 ); //$NON-NLS-1$ // Execute On Connection Composite Composite executeOnConnectionComposite = BaseWidgetUtils.createColumnContainer( composite, 2, 1 ); // Continue On Error Radio Button BaseWidgetUtils.createRadioIndent( executeOnConnectionComposite, 1 ); continueOnErrorButton = BaseWidgetUtils.createCheckbox( executeOnConnectionComposite, Messages .getString( "ImportLdifMainWizardPage.ContinueOnError" ), 1 ); //$NON-NLS-1$ // Generate LDIF Button generateLdifButton = BaseWidgetUtils.createRadiobutton( composite, Messages .getString( "BatchOperationFinishWizardPage.GenerateLDIF" ), 1 ); //$NON-NLS-1$ // Generate LDIF Button Composite Composite generateLdifButtonComposite = BaseWidgetUtils.createColumnContainer( composite, 2, 1 ); // In The LDIF Editor Button BaseWidgetUtils.createRadioIndent( generateLdifButtonComposite, 1 ); generateInLDIFEditorButton = BaseWidgetUtils.createRadiobutton( generateLdifButtonComposite, Messages .getString( "BatchOperationFinishWizardPage.GenerateLDIFInLDIFEditor" ), 1 ); //$NON-NLS-1$ // In A File Button BaseWidgetUtils.createRadioIndent( generateLdifButtonComposite, 1 ); generateInFileButton = BaseWidgetUtils.createRadiobutton( generateLdifButtonComposite, Messages .getString( "BatchOperationFinishWizardPage.GenerateLDIFInFile" ), 1 ); //$NON-NLS-1$ // In The Clipboard Button BaseWidgetUtils.createRadioIndent( generateLdifButtonComposite, 1 ); generateInClipboardButton = BaseWidgetUtils.createRadiobutton( generateLdifButtonComposite, Messages .getString( "BatchOperationFinishWizardPage.GenerateLDIFInClipBoard" ), 1 ); //$NON-NLS-1$ init(); validate(); addListeners(); setControl( composite ); } /** * Initializes the UI. */ private void init() { try { // Default value for the 'Execute Method' dialog setting if ( BrowserUIPlugin.getDefault().getDialogSettings().get( EXECUTE_METHOD_DIALOGSETTING_KEY ) == null ) { BrowserUIPlugin.getDefault().getDialogSettings() .put( EXECUTE_METHOD_DIALOGSETTING_KEY, EXECUTION_METHOD_ON_CONNECTION ); } // Default value for the 'Continue On Error' dialog setting if ( BrowserUIPlugin.getDefault().getDialogSettings().get( CONTINUE_ON_ERROR_DIALOGSETTING_KEY ) == null ) { BrowserUIPlugin.getDefault().getDialogSettings().put( CONTINUE_ON_ERROR_DIALOGSETTING_KEY, true ); } // Getting the 'Execute Method' dialog setting int executeMethod = BrowserUIPlugin.getDefault().getDialogSettings() .getInt( EXECUTE_METHOD_DIALOGSETTING_KEY ); switch ( executeMethod ) { case EXECUTION_METHOD_ON_CONNECTION: executeOnConnectionButton.setSelection( true ); generateInLDIFEditorButton.setSelection( true ); break; case EXECUTION_METHOD_LDIF_EDITOR: generateLdifButton.setSelection( true ); generateInLDIFEditorButton.setSelection( true ); break; case EXECUTION_METHOD_LDIF_FILE: generateLdifButton.setSelection( true ); generateInFileButton.setSelection( true ); break; case EXECUTION_METHOD_LDIF_CLIPBOARD: generateLdifButton.setSelection( true ); generateInClipboardButton.setSelection( true ); break; } // Getting the 'Continue On Error' dialog setting continueOnErrorButton.setSelection( BrowserUIPlugin.getDefault().getDialogSettings() .getBoolean( CONTINUE_ON_ERROR_DIALOGSETTING_KEY ) ); } catch ( Exception e ) { // Nothing to do } } /** * Validates the page. */ private void validate() { continueOnErrorButton.setEnabled( executeOnConnectionButton.getSelection() ); generateInLDIFEditorButton.setEnabled( generateLdifButton.getSelection() ); generateInFileButton.setEnabled( generateLdifButton.getSelection() ); generateInClipboardButton.setEnabled( generateLdifButton.getSelection() ); setPageComplete( getExecutionMethod() != EXECUTION_METHOD_NONE ); } /** * Adds listeners. */ private void addListeners() { executeOnConnectionButton.addSelectionListener( validateSelectionListener ); generateLdifButton.addSelectionListener( validateSelectionListener ); } /** * Gets the execution method. * * @return the execution method */ public int getExecutionMethod() { if ( executeOnConnectionButton.getSelection() ) { return EXECUTION_METHOD_ON_CONNECTION; } else if ( generateLdifButton.getSelection() ) { if ( generateInLDIFEditorButton.getSelection() ) { return EXECUTION_METHOD_LDIF_EDITOR; } else if ( generateInFileButton.getSelection() ) { return EXECUTION_METHOD_LDIF_FILE; } else if ( generateInClipboardButton.getSelection() ) { return EXECUTION_METHOD_LDIF_CLIPBOARD; } } return EXECUTION_METHOD_NONE; } /** * Gets the continue on error flag. * * @return the continue on error flag */ public boolean getContinueOnError() { return continueOnErrorButton.getSelection(); } /** * Saves the dialog settings. */ public void saveDialogSettings() { BrowserUIPlugin.getDefault().getDialogSettings().put( EXECUTE_METHOD_DIALOGSETTING_KEY, getExecutionMethod() ); BrowserUIPlugin.getDefault().getDialogSettings() .put( CONTINUE_ON_ERROR_DIALOGSETTING_KEY, getContinueOnError() ); } }