blob: a35689980b540000cfb142c54dbd91c8ffe96f45 [file] [log] [blame]
/*
* 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.common.dialogs.preferences;
import org.apache.directory.studio.common.ui.widgets.BaseWidgetUtils;
import org.apache.directory.studio.common.ui.widgets.WidgetModifyEvent;
import org.apache.directory.studio.common.ui.widgets.WidgetModifyListener;
import org.apache.directory.studio.ldapbrowser.common.BrowserCommonActivator;
import org.apache.directory.studio.ldapbrowser.common.BrowserCommonConstants;
import org.apache.directory.studio.ldapbrowser.common.widgets.BinaryEncodingInput;
import org.apache.directory.studio.ldapbrowser.common.widgets.FileEncodingInput;
import org.apache.directory.studio.ldapbrowser.common.widgets.LineSeparatorInput;
import org.apache.directory.studio.ldapbrowser.common.widgets.OptionsInput;
import org.apache.directory.studio.ldapbrowser.core.BrowserCoreConstants;
import org.apache.directory.studio.ldapbrowser.core.BrowserCorePlugin;
import org.eclipse.core.runtime.Preferences;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.VerifyEvent;
import org.eclipse.swt.events.VerifyListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
/**
* The BinaryAttributesAndSyntaxesPreferencePage is used to specify
* binary attributes and syntaxes.
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
public class TextFormatsPreferencePage extends PreferencePage implements IWorkbenchPreferencePage,
WidgetModifyListener, ModifyListener
{
/** The constant used to preselect the 'LDIF' tab */
public static final String LDIF_TAB = "LDIF"; //$NON-NLS-1$
/** The constant used to preselect the 'CSV Export' tab */
public static final String CSV_TAB = "CSV"; //$NON-NLS-1$
/** The constant used to preselect the 'Excel Export' tab */
public static final String XLS_TAB = "XLS"; //$NON-NLS-1$
/** The constant used to preselect the 'ODF Export' tab */
public static final String ODF_TAB = "ODF"; //$NON-NLS-1$
/** The constant used to preselect the 'CSV Copy' tab */
public static final String TABLE_TAB = "TABLE"; //$NON-NLS-1$
private Preferences coreStore = BrowserCorePlugin.getDefault().getPluginPreferences();
private TabFolder tabFolder;
private TabItem ldifTab;
private TabItem tableTab;
private TabItem csvTab;
private TabItem xlsTab;
private TabItem odfTab;
private Text ldifLineLengthText;
private Button ldifSpaceAfterColonButton;
private Button includeVersionLineButton;
private LineSeparatorInput ldifLineSeparator;
private OptionsInput tableAttributeDelimiterWidget;
private OptionsInput tableValueDelimiterWidget;
private OptionsInput tableQuoteWidget;
private LineSeparatorInput tableLineSeparator;
private BinaryEncodingInput tableBinaryEncodingWidget;
private OptionsInput csvAttributeDelimiterWidget;
private OptionsInput csvValueDelimiterWidget;
private OptionsInput csvQuoteWidget;
private LineSeparatorInput csvLineSeparator;
private BinaryEncodingInput csvBinaryEncodingWidget;
private FileEncodingInput csvEncodingWidget;
private OptionsInput xlsValueDelimiterWidget;
private OptionsInput xlsBinaryEncodingWidget;
private OptionsInput odfValueDelimiterWidget;
private OptionsInput odfBinaryEncodingWidget;
/**
* Creates a new instance of TextFormatsPreferencePage.
*/
public TextFormatsPreferencePage()
{
super( Messages.getString( "TextFormatsPreferencePage.TextFormats" ) ); //$NON-NLS-1$
super.setPreferenceStore( BrowserCommonActivator.getDefault().getPreferenceStore() );
super.setDescription( Messages.getString( "TextFormatsPreferencePage.SettingsForTextFormats" ) ); //$NON-NLS-1$
}
/**
* {@inheritDoc}
*/
public void init( IWorkbench workbench )
{
}
/**
* {@inheritDoc}
*/
public void applyData( Object data )
{
if ( data != null && tabFolder != null )
{
if ( LDIF_TAB.equals( data ) )
{
tabFolder.setSelection( 0 );
}
else if ( TABLE_TAB.equals( data ) )
{
tabFolder.setSelection( 1 );
}
else if ( CSV_TAB.equals( data ) )
{
tabFolder.setSelection( 2 );
}
else if ( XLS_TAB.equals( data ) )
{
tabFolder.setSelection( 3 );
}
else if ( ODF_TAB.equals( data ) )
{
tabFolder.setSelection( 4 );
}
}
}
/**
* {@inheritDoc}
*/
protected Control createContents( Composite parent )
{
BaseWidgetUtils.createSpacer( parent, 1 );
tabFolder = new TabFolder( parent, SWT.TOP );
createLdifTab();
createTableTab();
createCsvTab();
createXlsTab();
createOdfTab();
validate();
applyDialogFont( tabFolder );
return tabFolder;
}
private void createTableTab()
{
tableTab = new TabItem( tabFolder, SWT.NONE );
tableTab.setText( Messages.getString( "TextFormatsPreferencePage.CSVCopy" ) ); //$NON-NLS-1$
Composite tableComposite = new Composite( tabFolder, SWT.NONE );
tableComposite.setLayout( new GridLayout( 1, false ) );
Composite tableInnerComposite = BaseWidgetUtils.createColumnContainer( tableComposite, 3, 1 );
BaseWidgetUtils.createLabel( tableInnerComposite,
Messages.getString( "TextFormatsPreferencePage.CSVCopyLabel" ), 3 ); //$NON-NLS-1$
BaseWidgetUtils.createSpacer( tableInnerComposite, 3 );
tableAttributeDelimiterWidget = new OptionsInput(
Messages.getString( "TextFormatsPreferencePage.AttributeDelimiter" ), Messages.getString( "TextFormatsPreferencePage.Tabulator" ), "\t", new String[] //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
{
Messages.getString( "TextFormatsPreferencePage.Tabulator" ), Messages.getString( "TextFormatsPreferencePage.Comma" ), Messages.getString( "TextFormatsPreferencePage.Semicolon" ) }, new String[] //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
{ "\t", ",", ";" }, getPreferenceStore().getString( //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
BrowserCommonConstants.PREFERENCE_FORMAT_TABLE_ATTRIBUTEDELIMITER ), false, true );
tableAttributeDelimiterWidget.createWidget( tableInnerComposite );
tableAttributeDelimiterWidget.addWidgetModifyListener( this );
tableValueDelimiterWidget = new OptionsInput(
Messages.getString( "TextFormatsPreferencePage.ValueDelimiter" ), Messages.getString( "TextFormatsPreferencePage.Pipe" ), "|", new String[] //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
{
Messages.getString( "TextFormatsPreferencePage.Pipe" ), Messages.getString( "TextFormatsPreferencePage.Comma" ), Messages.getString( "TextFormatsPreferencePage.Semicolon" ), Messages.getString( "TextFormatsPreferencePage.Newline" ) }, new String[] //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
{ "|", ",", ";", "\n" }, getPreferenceStore().getString( //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
BrowserCommonConstants.PREFERENCE_FORMAT_TABLE_VALUEDELIMITER ), false, true );
tableValueDelimiterWidget.createWidget( tableInnerComposite );
tableValueDelimiterWidget.addWidgetModifyListener( this );
tableQuoteWidget = new OptionsInput(
Messages.getString( "TextFormatsPreferencePage.QuoteCharacter" ), Messages.getString( "TextFormatsPreferencePage.DoubleQuote" ), "\"", new String[] //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
{
Messages.getString( "TextFormatsPreferencePage.DoubleQuote" ), Messages.getString( "TextFormatsPreferencePage.SingleQuote" ) }, new String[] //$NON-NLS-1$ //$NON-NLS-2$
{ "\"", "'" }, getPreferenceStore().getString( //$NON-NLS-1$ //$NON-NLS-2$
BrowserCommonConstants.PREFERENCE_FORMAT_TABLE_QUOTECHARACTER ), false, true );
tableQuoteWidget.createWidget( tableInnerComposite );
tableQuoteWidget.addWidgetModifyListener( this );
tableLineSeparator = new LineSeparatorInput( getPreferenceStore().getString(
BrowserCommonConstants.PREFERENCE_FORMAT_TABLE_LINESEPARATOR ), false );
tableLineSeparator.createWidget( tableInnerComposite );
tableLineSeparator.addWidgetModifyListener( this );
tableBinaryEncodingWidget = new BinaryEncodingInput( getPreferenceStore().getString(
BrowserCommonConstants.PREFERENCE_FORMAT_TABLE_BINARYENCODING ), false );
tableBinaryEncodingWidget.createWidget( tableInnerComposite );
tableBinaryEncodingWidget.addWidgetModifyListener( this );
Composite copyTableHintComposite = BaseWidgetUtils.createColumnContainer( tableInnerComposite, 3, 3 );
Text hintText = BaseWidgetUtils.createWrappedLabeledText( copyTableHintComposite, Messages
.getString( "TextFormatsPreferencePage.CSVCopyHint" ), 1 ); //$NON-NLS-1$
GridData hintTextGridData = new GridData( SWT.FILL, SWT.NONE, true, false );
hintTextGridData.widthHint = 300;
hintText.setLayoutData( hintTextGridData );
tableTab.setControl( tableComposite );
}
private void createCsvTab()
{
csvTab = new TabItem( tabFolder, SWT.NONE );
csvTab.setText( Messages.getString( "TextFormatsPreferencePage.CSVExport" ) ); //$NON-NLS-1$
Composite csvComposite = new Composite( tabFolder, SWT.NONE );
csvComposite.setLayout( new GridLayout( 1, false ) );
Composite csvInnerComposite = BaseWidgetUtils.createColumnContainer( csvComposite, 3, 1 );
BaseWidgetUtils.createLabel( csvInnerComposite,
Messages.getString( "TextFormatsPreferencePage.CSVExportLabel" ), 3 ); //$NON-NLS-1$
BaseWidgetUtils.createSpacer( csvInnerComposite, 3 );
csvAttributeDelimiterWidget = new OptionsInput(
Messages.getString( "TextFormatsPreferencePage.AttributeDelimiter" ), Messages.getString( "TextFormatsPreferencePage.Comma" ), ",", new String[] //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
{
Messages.getString( "TextFormatsPreferencePage.Comma" ), Messages.getString( "TextFormatsPreferencePage.Semicolon" ), Messages.getString( "TextFormatsPreferencePage.Tabulator" ) }, new String[] //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
{ ",", ";", "\t" }, coreStore.getString( BrowserCoreConstants.PREFERENCE_FORMAT_CSV_ATTRIBUTEDELIMITER ), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
false, true );
csvAttributeDelimiterWidget.createWidget( csvInnerComposite );
csvAttributeDelimiterWidget.addWidgetModifyListener( this );
csvValueDelimiterWidget = new OptionsInput(
Messages.getString( "TextFormatsPreferencePage.ValueDelimiter" ), Messages.getString( "TextFormatsPreferencePage.Pipe" ), "|", new String[] //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
{
Messages.getString( "TextFormatsPreferencePage.Pipe" ), Messages.getString( "TextFormatsPreferencePage.Comma" ), Messages.getString( "TextFormatsPreferencePage.Semicolon" ), Messages.getString( "TextFormatsPreferencePage.Newline" ) }, new String[] //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
{ "|", ",", ";", "\n" }, coreStore.getString( BrowserCoreConstants.PREFERENCE_FORMAT_CSV_VALUEDELIMITER ), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
false, true );
csvValueDelimiterWidget.createWidget( csvInnerComposite );
csvValueDelimiterWidget.addWidgetModifyListener( this );
csvQuoteWidget = new OptionsInput(
Messages.getString( "TextFormatsPreferencePage.QuoteCharacter" ), Messages.getString( "TextFormatsPreferencePage.DoubleQuote" ), "\"", new String[] //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
{
Messages.getString( "TextFormatsPreferencePage.DoubleQuote" ), Messages.getString( "TextFormatsPreferencePage.SingleQuote" ) }, new String[] //$NON-NLS-1$ //$NON-NLS-2$
{ "\"", "'" }, coreStore.getString( BrowserCoreConstants.PREFERENCE_FORMAT_CSV_QUOTECHARACTER ), false, //$NON-NLS-1$ //$NON-NLS-2$
true );
csvQuoteWidget.createWidget( csvInnerComposite );
csvQuoteWidget.addWidgetModifyListener( this );
csvLineSeparator = new LineSeparatorInput( coreStore
.getString( BrowserCoreConstants.PREFERENCE_FORMAT_CSV_LINESEPARATOR ), false );
csvLineSeparator.createWidget( csvInnerComposite );
csvLineSeparator.addWidgetModifyListener( this );
csvBinaryEncodingWidget = new BinaryEncodingInput( coreStore
.getString( BrowserCoreConstants.PREFERENCE_FORMAT_CSV_BINARYENCODING ), false );
csvBinaryEncodingWidget.createWidget( csvInnerComposite );
csvBinaryEncodingWidget.addWidgetModifyListener( this );
csvEncodingWidget = new FileEncodingInput( coreStore
.getString( BrowserCoreConstants.PREFERENCE_FORMAT_CSV_ENCODING ), false );
csvEncodingWidget.createWidget( csvInnerComposite );
csvEncodingWidget.addWidgetModifyListener( this );
csvTab.setControl( csvComposite );
}
private void createXlsTab()
{
xlsTab = new TabItem( tabFolder, SWT.NONE );
xlsTab.setText( Messages.getString( "TextFormatsPreferencePage.ExcelExport" ) ); //$NON-NLS-1$
Composite xlsComposite = new Composite( tabFolder, SWT.NONE );
xlsComposite.setLayout( new GridLayout( 1, false ) );
Composite xlsInnerComposite = BaseWidgetUtils.createColumnContainer( xlsComposite, 3, 1 );
BaseWidgetUtils.createLabel( xlsInnerComposite, Messages
.getString( "TextFormatsPreferencePage.ExcelExportLabel" ), 3 ); //$NON-NLS-1$
BaseWidgetUtils.createSpacer( xlsInnerComposite, 3 );
xlsValueDelimiterWidget = new OptionsInput(
Messages.getString( "TextFormatsPreferencePage.ValueDelimiter" ), Messages.getString( "TextFormatsPreferencePage.Pipe" ), "|", new String[] //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
{
Messages.getString( "TextFormatsPreferencePage.Pipe" ), Messages.getString( "TextFormatsPreferencePage.Comma" ), Messages.getString( "TextFormatsPreferencePage.Semicolon" ), Messages.getString( "TextFormatsPreferencePage.Newline" ) }, new String[] //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
{ "|", ",", ";", "\n" }, coreStore.getString( BrowserCoreConstants.PREFERENCE_FORMAT_XLS_VALUEDELIMITER ), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
false, true );
xlsValueDelimiterWidget.createWidget( xlsInnerComposite );
xlsValueDelimiterWidget.addWidgetModifyListener( this );
xlsBinaryEncodingWidget = new BinaryEncodingInput( coreStore
.getString( BrowserCoreConstants.PREFERENCE_FORMAT_XLS_BINARYENCODING ), false );
xlsBinaryEncodingWidget.createWidget( xlsInnerComposite );
xlsBinaryEncodingWidget.addWidgetModifyListener( this );
xlsTab.setControl( xlsComposite );
}
private void createOdfTab()
{
odfTab = new TabItem( tabFolder, SWT.NONE );
odfTab.setText( Messages.getString( "TextFormatsPreferencePage.OdfExport" ) ); //$NON-NLS-1$
Composite odfComposite = new Composite( tabFolder, SWT.NONE );
odfComposite.setLayout( new GridLayout( 1, false ) );
Composite odfInnerComposite = BaseWidgetUtils.createColumnContainer( odfComposite, 3, 1 );
BaseWidgetUtils.createLabel( odfInnerComposite,
Messages.getString( "TextFormatsPreferencePage.OdfExportLabel" ), 3 ); //$NON-NLS-1$
BaseWidgetUtils.createSpacer( odfInnerComposite, 3 );
odfValueDelimiterWidget = new OptionsInput(
Messages.getString( "TextFormatsPreferencePage.ValueDelimiter" ), Messages.getString( "TextFormatsPreferencePage.Pipe" ), "|", new String[] //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
{
Messages.getString( "TextFormatsPreferencePage.Pipe" ), Messages.getString( "TextFormatsPreferencePage.Comma" ), Messages.getString( "TextFormatsPreferencePage.Semicolon" ), Messages.getString( "TextFormatsPreferencePage.Newline" ) }, new String[] //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
{ "|", ",", ";", "\n" }, coreStore.getString( BrowserCoreConstants.PREFERENCE_FORMAT_ODF_VALUEDELIMITER ), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
false, true );
odfValueDelimiterWidget.createWidget( odfInnerComposite );
odfValueDelimiterWidget.addWidgetModifyListener( this );
odfBinaryEncodingWidget = new BinaryEncodingInput( coreStore
.getString( BrowserCoreConstants.PREFERENCE_FORMAT_ODF_BINARYENCODING ), false );
odfBinaryEncodingWidget.createWidget( odfInnerComposite );
odfBinaryEncodingWidget.addWidgetModifyListener( this );
odfTab.setControl( odfComposite );
}
private void createLdifTab()
{
ldifTab = new TabItem( tabFolder, SWT.NONE );
ldifTab.setText( Messages.getString( "TextFormatsPreferencePage.LDIF" ) ); //$NON-NLS-1$
Composite ldifComposite = new Composite( tabFolder, SWT.NONE );
ldifComposite.setLayout( new GridLayout( 1, false ) );
Composite ldifInnerComposite = BaseWidgetUtils.createColumnContainer( ldifComposite, 1, 1 );
BaseWidgetUtils
.createLabel( ldifInnerComposite, Messages.getString( "TextFormatsPreferencePage.LDIFLabel" ), 1 ); //$NON-NLS-1$
BaseWidgetUtils.createSpacer( ldifInnerComposite, 1 );
ldifLineSeparator = new LineSeparatorInput( coreStore
.getString( BrowserCoreConstants.PREFERENCE_LDIF_LINE_SEPARATOR ), true );
ldifLineSeparator.createWidget( ldifInnerComposite );
ldifLineSeparator.addWidgetModifyListener( this );
BaseWidgetUtils.createSpacer( ldifInnerComposite, 1 );
Composite lineLengthComposite = BaseWidgetUtils.createColumnContainer( ldifInnerComposite, 3, 1 );
BaseWidgetUtils.createLabel( lineLengthComposite,
Messages.getString( "TextFormatsPreferencePage.LineLength1" ), 1 ); //$NON-NLS-1$
ldifLineLengthText = BaseWidgetUtils.createText( lineLengthComposite, "", 3, 1 ); //$NON-NLS-1$
ldifLineLengthText.setText( coreStore.getString( BrowserCoreConstants.PREFERENCE_LDIF_LINE_WIDTH ) );
ldifLineLengthText.addVerifyListener( new VerifyListener()
{
public void verifyText( VerifyEvent e )
{
if ( !e.text.matches( "[0-9]*" ) ) //$NON-NLS-1$
{
e.doit = false;
}
if ( "".equals( ldifLineLengthText.getText() ) && e.text.matches( "[0]" ) ) //$NON-NLS-1$ //$NON-NLS-2$
{
e.doit = false;
}
}
} );
ldifLineLengthText.addModifyListener( this );
BaseWidgetUtils.createLabel( lineLengthComposite,
Messages.getString( "TextFormatsPreferencePage.LineLength2" ), 1 ); //$NON-NLS-1$
ldifSpaceAfterColonButton = BaseWidgetUtils.createCheckbox( ldifInnerComposite, Messages
.getString( "TextFormatsPreferencePage.SpaceAfterColon" ), 1 ); //$NON-NLS-1$
ldifSpaceAfterColonButton.setSelection( coreStore
.getBoolean( BrowserCoreConstants.PREFERENCE_LDIF_SPACE_AFTER_COLON ) );
includeVersionLineButton = BaseWidgetUtils.createCheckbox( ldifInnerComposite, Messages
.getString( "TextFormatsPreferencePage.IncludeVersionLine" ), 1 ); //$NON-NLS-1$
includeVersionLineButton.setSelection( coreStore
.getBoolean( BrowserCoreConstants.PREFERENCE_LDIF_INCLUDE_VERSION_LINE ) );
ldifTab.setControl( ldifComposite );
}
/**
* {@inheritDoc}
*/
public boolean performOk()
{
coreStore.setValue( BrowserCoreConstants.PREFERENCE_LDIF_LINE_WIDTH, ldifLineLengthText.getText() );
coreStore.setValue( BrowserCoreConstants.PREFERENCE_LDIF_LINE_SEPARATOR, ldifLineSeparator.getRawValue() );
coreStore.setValue( BrowserCoreConstants.PREFERENCE_LDIF_SPACE_AFTER_COLON, ldifSpaceAfterColonButton
.getSelection() );
coreStore.setValue( BrowserCoreConstants.PREFERENCE_LDIF_INCLUDE_VERSION_LINE, includeVersionLineButton
.getSelection() );
coreStore.setValue( BrowserCoreConstants.PREFERENCE_FORMAT_CSV_ATTRIBUTEDELIMITER, csvAttributeDelimiterWidget
.getRawValue() );
coreStore.setValue( BrowserCoreConstants.PREFERENCE_FORMAT_CSV_VALUEDELIMITER, csvValueDelimiterWidget
.getRawValue() );
coreStore.setValue( BrowserCoreConstants.PREFERENCE_FORMAT_CSV_QUOTECHARACTER, csvQuoteWidget.getRawValue() );
coreStore.setValue( BrowserCoreConstants.PREFERENCE_FORMAT_CSV_LINESEPARATOR, csvLineSeparator.getRawValue() );
coreStore.setValue( BrowserCoreConstants.PREFERENCE_FORMAT_CSV_BINARYENCODING, csvBinaryEncodingWidget
.getRawValue() );
coreStore.setValue( BrowserCoreConstants.PREFERENCE_FORMAT_CSV_ENCODING, csvEncodingWidget.getRawValue() );
getPreferenceStore().setValue( BrowserCommonConstants.PREFERENCE_FORMAT_TABLE_ATTRIBUTEDELIMITER,
tableAttributeDelimiterWidget.getRawValue() );
getPreferenceStore().setValue( BrowserCommonConstants.PREFERENCE_FORMAT_TABLE_VALUEDELIMITER,
tableValueDelimiterWidget.getRawValue() );
getPreferenceStore().setValue( BrowserCommonConstants.PREFERENCE_FORMAT_TABLE_QUOTECHARACTER,
tableQuoteWidget.getRawValue() );
getPreferenceStore().setValue( BrowserCommonConstants.PREFERENCE_FORMAT_TABLE_LINESEPARATOR,
tableLineSeparator.getRawValue() );
getPreferenceStore().setValue( BrowserCommonConstants.PREFERENCE_FORMAT_TABLE_BINARYENCODING,
tableBinaryEncodingWidget.getRawValue() );
coreStore.setValue( BrowserCoreConstants.PREFERENCE_FORMAT_XLS_VALUEDELIMITER, xlsValueDelimiterWidget
.getRawValue() );
coreStore.setValue( BrowserCoreConstants.PREFERENCE_FORMAT_XLS_BINARYENCODING, xlsBinaryEncodingWidget
.getRawValue() );
BrowserCorePlugin.getDefault().savePluginPreferences();
validate();
return true;
}
/**
* {@inheritDoc}
*/
protected void performDefaults()
{
ldifLineLengthText.setText( coreStore.getDefaultString( BrowserCoreConstants.PREFERENCE_LDIF_LINE_WIDTH ) );
ldifLineSeparator
.setRawValue( coreStore.getDefaultString( BrowserCoreConstants.PREFERENCE_LDIF_LINE_SEPARATOR ) );
ldifSpaceAfterColonButton.setSelection( coreStore
.getDefaultBoolean( BrowserCoreConstants.PREFERENCE_LDIF_SPACE_AFTER_COLON ) );
includeVersionLineButton.setSelection( coreStore
.getDefaultBoolean( BrowserCoreConstants.PREFERENCE_LDIF_INCLUDE_VERSION_LINE ) );
csvAttributeDelimiterWidget.setRawValue( coreStore
.getDefaultString( BrowserCoreConstants.PREFERENCE_FORMAT_CSV_ATTRIBUTEDELIMITER ) );
csvValueDelimiterWidget.setRawValue( coreStore
.getDefaultString( BrowserCoreConstants.PREFERENCE_FORMAT_CSV_VALUEDELIMITER ) );
csvQuoteWidget.setRawValue( coreStore
.getDefaultString( BrowserCoreConstants.PREFERENCE_FORMAT_CSV_QUOTECHARACTER ) );
csvLineSeparator.setRawValue( coreStore
.getDefaultString( BrowserCoreConstants.PREFERENCE_FORMAT_CSV_LINESEPARATOR ) );
csvBinaryEncodingWidget.setRawValue( coreStore
.getDefaultString( BrowserCoreConstants.PREFERENCE_FORMAT_CSV_BINARYENCODING ) );
csvEncodingWidget
.setRawValue( coreStore.getDefaultString( BrowserCoreConstants.PREFERENCE_FORMAT_CSV_ENCODING ) );
tableAttributeDelimiterWidget.setRawValue( getPreferenceStore().getDefaultString(
BrowserCommonConstants.PREFERENCE_FORMAT_TABLE_ATTRIBUTEDELIMITER ) );
tableValueDelimiterWidget.setRawValue( getPreferenceStore().getDefaultString(
BrowserCommonConstants.PREFERENCE_FORMAT_TABLE_VALUEDELIMITER ) );
tableQuoteWidget.setRawValue( getPreferenceStore().getDefaultString(
BrowserCommonConstants.PREFERENCE_FORMAT_TABLE_QUOTECHARACTER ) );
tableLineSeparator.setRawValue( getPreferenceStore().getDefaultString(
BrowserCommonConstants.PREFERENCE_FORMAT_TABLE_LINESEPARATOR ) );
tableBinaryEncodingWidget.setRawValue( getPreferenceStore().getDefaultString(
BrowserCommonConstants.PREFERENCE_FORMAT_TABLE_BINARYENCODING ) );
xlsValueDelimiterWidget.setRawValue( coreStore
.getDefaultString( BrowserCoreConstants.PREFERENCE_FORMAT_XLS_VALUEDELIMITER ) );
xlsBinaryEncodingWidget.setRawValue( coreStore
.getDefaultString( BrowserCoreConstants.PREFERENCE_FORMAT_XLS_BINARYENCODING ) );
validate();
super.performDefaults();
}
public void widgetModified( WidgetModifyEvent event )
{
validate();
}
public void modifyText( ModifyEvent e )
{
validate();
}
protected void validate()
{
setValid( !"".equals( csvAttributeDelimiterWidget.getRawValue() ) //$NON-NLS-1$
&& !"".equals( csvValueDelimiterWidget.getRawValue() ) && !"".equals( csvQuoteWidget.getRawValue() ) //$NON-NLS-1$ //$NON-NLS-2$
&& !"".equals( csvLineSeparator.getRawValue() ) && !"".equals( csvBinaryEncodingWidget.getRawValue() ) //$NON-NLS-1$ //$NON-NLS-2$
&& !"".equals( csvEncodingWidget.getRawValue() ) && //$NON-NLS-1$
!"".equals( tableAttributeDelimiterWidget.getRawValue() ) //$NON-NLS-1$
&& !"".equals( tableValueDelimiterWidget.getRawValue() ) && !"".equals( tableQuoteWidget.getRawValue() ) //$NON-NLS-1$ //$NON-NLS-2$
&& !"".equals( tableLineSeparator.getRawValue() ) && !"".equals( tableBinaryEncodingWidget.getRawValue() ) //$NON-NLS-1$ //$NON-NLS-2$
&&
!"".equals( xlsValueDelimiterWidget.getRawValue() ) && !"".equals( xlsBinaryEncodingWidget.getRawValue() ) //$NON-NLS-1$ //$NON-NLS-2$
&&
!"".equals( ldifLineLengthText.getText() ) && !"".equals( ldifLineSeparator.getRawValue() ) ); //$NON-NLS-1$ //$NON-NLS-2$
}
}