You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2015/07/03 17:51:58 UTC
svn commit: r1689040 [1/2] - in /directory/studio/trunk/plugins:
openldap.common.ui/src/main/java/org/apache/directory/studio/openldap/common/ui/model/
openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/
o...
Author: elecharny
Date: Fri Jul 3 15:51:57 2015
New Revision: 1689040
URL: http://svn.apache.org/r1689040
Log:
o Added a DbIndexTypeEnum to list the possible indexes
o Used a TableWidget instead of a IndexWidget for the MDB database
o Created the logic for the TableWidget<DbIndexWrapper> :
o Create a DbIndexWrapper
o Created a DbIndexDialog
o Created a DbIndexDecorator
o Deleted the IndexDialog class (replaced by DbIndexDialog)
o Some fixes in the SsfDialog and StringValueDialog
o Fixed the OlcDbIndex toString() method
o Almost ripped of the IndexWidget. It will be removed soon.
o Externalized some Strings.
Added:
directory/studio/trunk/plugins/openldap.common.ui/src/main/java/org/apache/directory/studio/openldap/common/ui/model/DbIndexTypeEnum.java
- copied, changed from r1688864, directory/studio/trunk/plugins/openldap.common.ui/src/main/java/org/apache/directory/studio/openldap/common/ui/model/IndexTypeEnum.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/Messages.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/messages.properties
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/messages_de.properties
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/messages_fr.properties
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/DbIndexDialog.java
- copied, changed from r1688864, directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/IndexDialog.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/DbIndexDecorator.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/DbIndexWrapper.java
Removed:
directory/studio/trunk/plugins/openldap.common.ui/src/main/java/org/apache/directory/studio/openldap/common/ui/model/IndexTypeEnum.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/IndexDialog.java
Modified:
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/BerkeleyDbDatabaseSpecificDetailsBlock.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/DatabaseTypeEnum.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/DatabasesDetailsPage.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/MdbDatabaseSpecificDetailsBlock.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/OrderedStringValueDialog.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/SsfDialog.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/StringValueDialog.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/OlcDbIndex.java
directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/model/widgets/IndicesWidget.java
Copied: directory/studio/trunk/plugins/openldap.common.ui/src/main/java/org/apache/directory/studio/openldap/common/ui/model/DbIndexTypeEnum.java (from r1688864, directory/studio/trunk/plugins/openldap.common.ui/src/main/java/org/apache/directory/studio/openldap/common/ui/model/IndexTypeEnum.java)
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.common.ui/src/main/java/org/apache/directory/studio/openldap/common/ui/model/DbIndexTypeEnum.java?p2=directory/studio/trunk/plugins/openldap.common.ui/src/main/java/org/apache/directory/studio/openldap/common/ui/model/DbIndexTypeEnum.java&p1=directory/studio/trunk/plugins/openldap.common.ui/src/main/java/org/apache/directory/studio/openldap/common/ui/model/IndexTypeEnum.java&r1=1688864&r2=1689040&rev=1689040&view=diff
==============================================================================
--- directory/studio/trunk/plugins/openldap.common.ui/src/main/java/org/apache/directory/studio/openldap/common/ui/model/IndexTypeEnum.java (original)
+++ directory/studio/trunk/plugins/openldap.common.ui/src/main/java/org/apache/directory/studio/openldap/common/ui/model/DbIndexTypeEnum.java Fri Jul 3 15:51:57 2015
@@ -39,32 +39,37 @@ package org.apache.directory.studio.open
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
-public enum IndexTypeEnum
+public enum DbIndexTypeEnum
{
- APPROX( "approx" ),
- EQ( "eq" ),
- NOLANG( "nolang" ),
- NOSUBTYPES( "nosubtypes" ),
- NOTAGS( "notags" ),
- PRES( "pres" ),
- SUB( "sub" ),
- SUBANY( "subany" ),
- SUBFINAL( "subfinal" ),
- SUBINITIAL( "subinitial" ),
- SUBSTR( "substr" ),
- NONE( "none" );
+ APPROX( 0, "approx" ),
+ EQ( 1, "eq" ),
+ NOLANG( 2, "nolang" ),
+ NOSUBTYPES( 3, "nosubtypes" ),
+ NOTAGS( 4, "notags" ),
+ PRES( 5, "pres" ),
+ SUB( 6, "sub" ),
+ SUBANY( 7, "subany" ),
+ SUBFINAL( 8, "subfinal" ),
+ SUBINITIAL( 9, "subinitial" ),
+ SUBSTR( 10, "substr" ), // Same as SUB
+ NONE( 11, "none" );
/** The internal name */
private String name;
+ /** The internal number */
+ private int number;
+
/**
* A private constructor for this class
*/
- private IndexTypeEnum( String name )
+ private DbIndexTypeEnum( int number, String name )
{
this.name = name;
+ this.number = number;
}
+
/**
* @return the name
*/
@@ -75,21 +80,64 @@ public enum IndexTypeEnum
/**
- * Return an instance of IndexTypeEnum from a String
+ * @return the number
+ */
+ public int getNumber()
+ {
+ return number;
+ }
+
+
+ /**
+ * Return an instance of DbIndexTypeEnum from a String
*
* @param name The indexType's name
- * @return The associated IndexTypeEnum
+ * @return The associated DbIndexTypeEnum
*/
- public static IndexTypeEnum getIndexType( String name )
+ public static DbIndexTypeEnum getIndexType( String name )
{
- for ( IndexTypeEnum indexType : values() )
+ for ( DbIndexTypeEnum indexType : values() )
{
if ( indexType.getName().equalsIgnoreCase( name ) )
{
- return indexType;
+ if ( SUBSTR.getName().equalsIgnoreCase( name ) )
+ {
+ // SUB and SUBSTR are the same. Return SUB
+ return SUB;
+ }
+ else
+ {
+ return indexType;
+ }
}
}
return NONE;
}
+
+
+ /**
+ * Get the DbIndexTypeEnum instance from its number
+ *
+ * @param number The number we are looking for
+ * @return The associated DbIndexTypeEnum instance
+ */
+ public static DbIndexTypeEnum getIndexType( int number )
+ {
+ switch ( number )
+ {
+ case 0 : return APPROX;
+ case 1 : return EQ;
+ case 2 : return NOLANG;
+ case 3 : return NOSUBTYPES;
+ case 4 : return NOTAGS;
+ case 5 : return PRES;
+ case 6 : return SUB;
+ case 7 : return SUBANY;
+ case 8 : return SUBFINAL;
+ case 9 : return SUBINITIAL;
+ case 10 : return SUBSTR;
+ default : return NONE;
+ }
+ }
}
Modified: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/BerkeleyDbDatabaseSpecificDetailsBlock.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/BerkeleyDbDatabaseSpecificDetailsBlock.java?rev=1689040&r1=1689039&r2=1689040&view=diff
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/BerkeleyDbDatabaseSpecificDetailsBlock.java (original)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/BerkeleyDbDatabaseSpecificDetailsBlock.java Fri Jul 3 15:51:57 2015
@@ -223,7 +223,7 @@ public class BerkeleyDbDatabaseSpecificD
// Indices Widget
indicesWidget = new IndicesWidget( browserConnection );
- indicesWidget.createWidget( databaseIndexesComposite, toolkit );
+ indicesWidget.createWidgetWithEdit( databaseIndexesComposite, toolkit );
indicesWidget.getControl().setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, 2, 1 ) );
// Linear Indexes Widget
@@ -377,7 +377,7 @@ public class BerkeleyDbDatabaseSpecificD
sharedMemoryKeyText.setText( ( sharedMemoryKey == null ) ? "" : "" + sharedMemoryKey ); //$NON-NLS-1$
// Indices Text
- indicesWidget.setIndices( database.getOlcDbIndex() );
+ //indicesWidget.setIndices( database.getOlcDbIndex() );
// Linear Index Widget
linearIndexBooleanWithDefaultWidget.setValue( database.getOlcDbLinearIndex() );
@@ -544,10 +544,12 @@ public class BerkeleyDbDatabaseSpecificD
// Indices Widget
database.clearOlcDbIndex();
+ /*
for ( String index : indicesWidget.getIndices() )
{
database.addOlcDbIndex( index );
}
+ */
// Linear Index Widget
database.setOlcDbLinearIndex( linearIndexBooleanWithDefaultWidget.getValue() );
Modified: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/DatabaseTypeEnum.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/DatabaseTypeEnum.java?rev=1689040&r1=1689039&r2=1689040&view=diff
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/DatabaseTypeEnum.java (original)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/DatabaseTypeEnum.java Fri Jul 3 15:51:57 2015
@@ -119,4 +119,5 @@ public enum DatabaseTypeEnum
{
return name;
}
+
}
\ No newline at end of file
Modified: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/DatabasesDetailsPage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/DatabasesDetailsPage.java?rev=1689040&r1=1689039&r2=1689040&view=diff
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/DatabasesDetailsPage.java (original)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/DatabasesDetailsPage.java Fri Jul 3 15:51:57 2015
@@ -95,29 +95,6 @@ import org.eclipse.ui.forms.widgets.Sect
*/
public class DatabasesDetailsPage implements IDetailsPage
{
- /** The editable database types array */
- private static DatabaseTypeEnum[] EDITABLE_DATABASE_TYPES = new DatabaseTypeEnum[]
- {
- DatabaseTypeEnum.NONE,
- DatabaseTypeEnum.FRONTEND,
- DatabaseTypeEnum.CONFIG,
- DatabaseTypeEnum.BDB,
- DatabaseTypeEnum.DB_PERL,
- DatabaseTypeEnum.DB_SOCKET,
- DatabaseTypeEnum.HDB,
- DatabaseTypeEnum.MDB,
- DatabaseTypeEnum.LDAP,
- DatabaseTypeEnum.LDIF,
- DatabaseTypeEnum.META,
- DatabaseTypeEnum.MONITOR,
- DatabaseTypeEnum.NDB,
- DatabaseTypeEnum.NULL,
- DatabaseTypeEnum.PASSWD,
- DatabaseTypeEnum.RELAY,
- DatabaseTypeEnum.SHELL,
- DatabaseTypeEnum.SQL
- };
-
/** The frontend database type array */
private static DatabaseTypeEnum[] FRONTEND_DATABASE_TYPES = new DatabaseTypeEnum[]
{
@@ -463,7 +440,12 @@ public class DatabasesDetailsPage implem
/**
* Creates the General Settings Section. This will expose the following attributes :
* <ul>
- * <li></li>
+ * <li>olcSuffix</li>
+ * <li>olcDirectory</li>
+ * <li>olcDbMode</li>
+ * <li>olcRootDN</li>
+ * <li>olcRootPW</li>
+ * <li>olcIndex</li>
* </ul>
*
* @param parent the parent composite
@@ -1158,7 +1140,7 @@ public class DatabasesDetailsPage implem
// OlcHdbConfig Type
if ( database instanceof OlcHdbConfig )
{
- databaseTypeComboViewer.setInput( EDITABLE_DATABASE_TYPES );
+ databaseTypeComboViewer.setInput( DatabaseTypeEnum.values() );
databaseTypeComboViewer.setSelection( new StructuredSelection( DatabaseTypeEnum.HDB ) );
databaseSpecificDetailsBlock = new BerkeleyDbDatabaseSpecificDetailsBlock<OlcHdbConfig>( instance,
( OlcHdbConfig ) database, browserConnection );
@@ -1166,7 +1148,7 @@ public class DatabasesDetailsPage implem
// OlcBdbConfig Type
else if ( database instanceof OlcBdbConfig )
{
- databaseTypeComboViewer.setInput( EDITABLE_DATABASE_TYPES );
+ databaseTypeComboViewer.setInput( DatabaseTypeEnum.values() );
databaseTypeComboViewer.setSelection( new StructuredSelection( DatabaseTypeEnum.BDB ) );
databaseSpecificDetailsBlock = new BerkeleyDbDatabaseSpecificDetailsBlock<OlcBdbConfig>( instance,
( OlcBdbConfig ) database, browserConnection );
@@ -1174,7 +1156,7 @@ public class DatabasesDetailsPage implem
// OlcMdbConfig Type
else if ( database instanceof OlcMdbConfig )
{
- databaseTypeComboViewer.setInput( EDITABLE_DATABASE_TYPES );
+ databaseTypeComboViewer.setInput( DatabaseTypeEnum.values() );
databaseTypeComboViewer.setSelection( new StructuredSelection( DatabaseTypeEnum.MDB ) );
databaseSpecificDetailsBlock = new MdbDatabaseSpecificDetailsBlock( instance,
( OlcMdbConfig ) database, browserConnection );
@@ -1182,7 +1164,7 @@ public class DatabasesDetailsPage implem
// OlcLdifConfig Type
else if ( database instanceof OlcLdifConfig )
{
- databaseTypeComboViewer.setInput( EDITABLE_DATABASE_TYPES );
+ databaseTypeComboViewer.setInput( DatabaseTypeEnum.values() );
databaseTypeComboViewer.setSelection( new StructuredSelection( DatabaseTypeEnum.LDIF ) );
databaseSpecificDetailsBlock = new LdifDatabaseSpecificDetailsBlock( instance,
( OlcLdifConfig ) database );
@@ -1190,7 +1172,7 @@ public class DatabasesDetailsPage implem
// OlcNullConfig Type
else if ( database instanceof OlcNullConfig )
{
- databaseTypeComboViewer.setInput( EDITABLE_DATABASE_TYPES );
+ databaseTypeComboViewer.setInput( DatabaseTypeEnum.values() );
databaseTypeComboViewer.setSelection( new StructuredSelection( DatabaseTypeEnum.NULL ) );
databaseSpecificDetailsBlock = new NullDatabaseSpecificDetailsBlock( instance,
( OlcNullConfig ) database );
@@ -1198,7 +1180,7 @@ public class DatabasesDetailsPage implem
// OlcRelayConfig Type
else if ( database instanceof OlcRelayConfig )
{
- databaseTypeComboViewer.setInput( EDITABLE_DATABASE_TYPES );
+ databaseTypeComboViewer.setInput( DatabaseTypeEnum.values() );
databaseTypeComboViewer.setSelection( new StructuredSelection( DatabaseTypeEnum.RELAY ) );
databaseSpecificDetailsBlock = new RelayDatabaseSpecificDetailsBlock( instance,
( OlcRelayConfig ) database, browserConnection );
@@ -1224,7 +1206,7 @@ public class DatabasesDetailsPage implem
// Any other type of database
else
{
- databaseTypeComboViewer.setInput( EDITABLE_DATABASE_TYPES );
+ databaseTypeComboViewer.setInput( DatabaseTypeEnum.values() );
databaseTypeComboViewer.setSelection( new StructuredSelection( DatabaseTypeEnum.NONE ) );
databaseSpecificDetailsBlock = null;
}
Modified: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/MdbDatabaseSpecificDetailsBlock.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/MdbDatabaseSpecificDetailsBlock.java?rev=1689040&r1=1689039&r2=1689040&view=diff
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/MdbDatabaseSpecificDetailsBlock.java (original)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/MdbDatabaseSpecificDetailsBlock.java Fri Jul 3 15:51:57 2015
@@ -22,9 +22,11 @@ package org.apache.directory.studio.open
import org.apache.directory.api.util.Strings;
import org.apache.directory.studio.common.ui.widgets.BaseWidgetUtils;
+import org.apache.directory.studio.common.ui.widgets.TableWidget;
import org.apache.directory.studio.ldapbrowser.core.model.IBrowserConnection;
+import org.apache.directory.studio.openldap.config.editor.wrappers.DbIndexDecorator;
+import org.apache.directory.studio.openldap.config.editor.wrappers.DbIndexWrapper;
import org.apache.directory.studio.openldap.config.model.database.OlcMdbConfig;
-import org.apache.directory.studio.openldap.config.model.widgets.IndicesWidget;
import org.apache.directory.studio.openldap.common.ui.widgets.BooleanWithDefaultWidget;
import org.apache.directory.studio.openldap.common.ui.widgets.DirectoryBrowserWidget;
import org.apache.directory.studio.openldap.common.ui.widgets.UnixPermissionsWidget;
@@ -45,9 +47,12 @@ import org.eclipse.ui.forms.widgets.Sect
* .--------------------------------------------------------------------.
* | Database Specific Settings |
* +--------------------------------------------------------------------+
- * | v Database Configuration |
- * | Directory : [ [v] (browse...) |
- * | Mode : [--------(0000) ] (Edit Permissions...) |
+ * | .----------------------------------------------------------------. |
+ * | |v MDB Configuration | |
+ * | +----------------------------------------------------------------+ |
+ * | | Directory : [////////////////////////////[v] (Browse) | |
+ * | | Mode : [--------(0000) ] (Edit Permissions) | |
+ * | +----------------------------------------------------------------+ |
* | |
* | v Database indices |
* | +----------------------------------------------+ |
@@ -89,7 +94,7 @@ public class MdbDatabaseSpecificDetailsB
private Text envFlagsText;
/** The olcDbIndex attribute (String, multi-values) */
- private IndicesWidget indicesWidget;
+ private TableWidget<DbIndexWrapper> indicesWidget;
/** The olcMaxEntrySize attribute (Integer) No yet available (2.4.41) */
private Text maxEntrySizeText;
@@ -155,6 +160,14 @@ public class MdbDatabaseSpecificDetailsB
* <li>olcDbMode</li>
* </ul>
*
+ * <pre>
+ * .------------------------------------------------------------------.
+ * |v MDB Configuration |
+ * +------------------------------------------------------------------+
+ * | Directory : [///////////////////////////////] (Browse) |
+ * | Mode : [///////////////////////////////] (Edit Permissions) |
+ * +------------------------------------------------------------------+
+ * </pre
* @param parent the parent composite
* @param toolkit the toolkit
*/
@@ -162,7 +175,7 @@ public class MdbDatabaseSpecificDetailsB
{
// Database Configuration Section
Section databaseConfigurationSection = toolkit.createSection( parent, Section.TWISTIE );
- databaseConfigurationSection.setText( "Database Configuration" );
+ databaseConfigurationSection.setText( Messages.getString( "OpenLDAPMDBConfiguration.Section" ) );
databaseConfigurationSection.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) );
Composite databaseConfigurationComposite = toolkit.createComposite( databaseConfigurationSection );
toolkit.paintBordersFor( databaseConfigurationComposite );
@@ -170,7 +183,7 @@ public class MdbDatabaseSpecificDetailsB
databaseConfigurationSection.setClient( databaseConfigurationComposite );
// Directory Text
- toolkit.createLabel( databaseConfigurationComposite, "Directory:" );
+ toolkit.createLabel( databaseConfigurationComposite, Messages.getString( "OpenLDAPMDBConfiguration.Directory" ) );
Composite directoryComposite = toolkit.createComposite( databaseConfigurationComposite );
GridLayout directoryCompositeGridLayout = new GridLayout( 2, false );
directoryCompositeGridLayout.marginHeight = directoryCompositeGridLayout.marginWidth = 0;
@@ -181,7 +194,7 @@ public class MdbDatabaseSpecificDetailsB
directoryBrowserWidget.createWidget( directoryComposite, toolkit );
// Mode Text
- toolkit.createLabel( databaseConfigurationComposite, "Mode:" );
+ toolkit.createLabel( databaseConfigurationComposite, Messages.getString( "OpenLDAPMDBConfiguration.Mode" ) );
modeUnixPermissionsWidget = new UnixPermissionsWidget();
modeUnixPermissionsWidget.create( databaseConfigurationComposite, toolkit );
modeUnixPermissionsWidget.getControl().setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) );
@@ -202,7 +215,7 @@ public class MdbDatabaseSpecificDetailsB
{
// Database Indices Section
Section databaseIndexesSection = toolkit.createSection( parent, Section.TWISTIE );
- databaseIndexesSection.setText( "Database Indices" );
+ databaseIndexesSection.setText( Messages.getString( "OpenLDAPMDBConfiguration.IndicesSection" ) );
databaseIndexesSection.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) );
Composite databaseIndexesComposite = toolkit.createComposite( databaseIndexesSection );
toolkit.paintBordersFor( databaseIndexesComposite );
@@ -210,8 +223,8 @@ public class MdbDatabaseSpecificDetailsB
databaseIndexesSection.setClient( databaseIndexesComposite );
// Indices Widget
- indicesWidget = new IndicesWidget( browserConnection );
- indicesWidget.createWidget( databaseIndexesComposite, toolkit );
+ indicesWidget = new TableWidget<DbIndexWrapper>( new DbIndexDecorator( null, browserConnection ) );
+ indicesWidget.createWidgetWithEdit( databaseIndexesComposite, toolkit );
indicesWidget.getControl().setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, 2, 1 ) );
}
@@ -322,7 +335,7 @@ public class MdbDatabaseSpecificDetailsB
modeUnixPermissionsWidget.setValue( mode );
// Indices Text
- indicesWidget.setIndices( database.getOlcDbIndex() );
+ //indicesWidget.setIndices( database.getOlcDbIndex() );
// Max Readers Text
Integer maxReaders = database.getOlcDbMaxReaders();
@@ -435,10 +448,12 @@ public class MdbDatabaseSpecificDetailsB
// Indices
database.clearOlcDbIndex();
+ /*
for ( String index : indicesWidget.getIndices() )
{
database.addOlcDbIndex( index );
}
+ */
// Max readers
try
Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/Messages.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/Messages.java?rev=1689040&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/Messages.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/Messages.java Fri Jul 3 15:51:57 2015
@@ -0,0 +1,55 @@
+/*
+ * 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.openldap.config.editor.databases;
+
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+
+/**
+ * This class get messages from the resources file for the databases OpenLDAP pages.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public class Messages
+{
+ /** The resource name */
+ private static final ResourceBundle RESOURCE_BUNDLE =
+ ResourceBundle.getBundle( Messages.class.getPackage().getName() + ".messages" );
+
+ /**
+ * Get back a message from the resource file given a key
+ *
+ * @param key The key associated with the message
+ * @return The found message
+ */
+ public static String getString( String key )
+ {
+ try
+ {
+ return RESOURCE_BUNDLE.getString( key );
+ }
+ catch ( MissingResourceException e )
+ {
+ return '!' + key + '!';
+ }
+ }
+}
Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/messages.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/messages.properties?rev=1689040&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/messages.properties (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/messages.properties Fri Jul 3 15:51:57 2015
@@ -0,0 +1,29 @@
+# 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.
+#---------------------------------------------------------------------------------------
+# The MasterDetail block
+#---------------------------------------------------------------------------------------
+OpenLDAPMasterDetail.Title=Overview
+
+#---------------------------------------------------------------------------------------
+# The MDB specific block
+#---------------------------------------------------------------------------------------
+OpenLDAPMDBConfiguration.Section=MDB Configuration
+OpenLDAPMDBConfiguration.Directory=Directory :
+OpenLDAPMDBConfiguration.Mode=Mode :
+OpenLDAPMDBConfiguration.IndicesSection=Database Indices
+
Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/messages_de.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/messages_de.properties?rev=1689040&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/messages_de.properties (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/messages_de.properties Fri Jul 3 15:51:57 2015
@@ -0,0 +1,28 @@
+# 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.
+#---------------------------------------------------------------------------------------
+# The MasterDetail block
+#---------------------------------------------------------------------------------------
+OpenLDAPMasterDetail.Title=Overview
+
+#---------------------------------------------------------------------------------------
+# The MDB specific block
+#---------------------------------------------------------------------------------------
+OpenLDAPMDBConfiguration.Section=MDB Konfiguration
+OpenLDAPMDBConfiguration.Directory=R\u00E9pertoire :
+OpenLDAPMDBConfiguration.Mode=Mode :
+OpenLDAPMDBConfiguration.IndicesSection=Indexes
Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/messages_fr.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/messages_fr.properties?rev=1689040&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/messages_fr.properties (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/databases/messages_fr.properties Fri Jul 3 15:51:57 2015
@@ -0,0 +1,28 @@
+# 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.
+#---------------------------------------------------------------------------------------
+# The MasterDetail block
+#---------------------------------------------------------------------------------------
+OpenLDAPMasterDetail.Title=G\u00E9n\u00E9ral
+
+#---------------------------------------------------------------------------------------
+# The MDB specific block
+#---------------------------------------------------------------------------------------
+OpenLDAPMDBConfiguration.Section=Configuration MDB
+OpenLDAPMDBConfiguration.Directory=R\u00E9pertoire :
+OpenLDAPMDBConfiguration.Mode=Mode :
+OpenLDAPMDBConfiguration.IndicesSection=Index de la base
Copied: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/DbIndexDialog.java (from r1688864, directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/IndexDialog.java)
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/DbIndexDialog.java?p2=directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/DbIndexDialog.java&p1=directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/IndexDialog.java&r1=1688864&r2=1689040&rev=1689040&view=diff
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/IndexDialog.java (original)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/DbIndexDialog.java Fri Jul 3 15:51:57 2015
@@ -22,22 +22,19 @@ package org.apache.directory.studio.open
import java.util.ArrayList;
import java.util.List;
+import java.util.Set;
+import org.apache.directory.studio.common.ui.AddEditDialog;
import org.apache.directory.studio.common.ui.widgets.BaseWidgetUtils;
+import org.apache.directory.studio.common.ui.widgets.TableWidget;
+import org.apache.directory.studio.common.ui.widgets.WidgetModifyEvent;
+import org.apache.directory.studio.common.ui.widgets.WidgetModifyListener;
import org.apache.directory.studio.ldapbrowser.core.model.IBrowserConnection;
-import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
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.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
@@ -45,13 +42,12 @@ import org.eclipse.swt.widgets.Composite
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-
-import org.apache.directory.studio.openldap.common.ui.dialogs.AttributeDialog;
+import org.apache.directory.studio.openldap.common.ui.model.DbIndexTypeEnum;
import org.apache.directory.studio.openldap.config.OpenLdapConfigurationPlugin;
import org.apache.directory.studio.openldap.config.OpenLdapConfigurationPluginConstants;
-import org.apache.directory.studio.openldap.config.model.OlcDbIndex;
-import org.apache.directory.studio.openldap.config.model.OlcDbIndexTypeEnum;
+import org.apache.directory.studio.openldap.config.editor.wrappers.DbIndexWrapper;
+import org.apache.directory.studio.openldap.config.editor.wrappers.StringValueDecorator;
+import org.apache.directory.studio.openldap.config.editor.wrappers.StringValueWrapper;
/**
@@ -60,16 +56,17 @@ import org.apache.directory.studio.openl
* +--------------------------------------------------+
* | Attributes |
* | .----------------------------------------------. |
- * | | +------------------------------+ | |
- * | | o | | (Add...) | |
- * | | | | (Delete) | |
- * | | +------------------------------+ | |
- * | | o Default | |
+ * | | +----------------------------+ | |
+ * | | (o) | | (Add...) | |
+ * | | | | (Delete) | |
+ * | | +----------------------------+ | |
+ * | | (o) Default | |
* | '----------------------------------------------' |
* | Indices |
* | .----------------------------------------------. |
* | | [] pres [] eq [] approx | |
- * | | [] sub [] nolang [] nosubtypes | |
+ * | | [] nolang [] noSubtypes [] notags | |
+ * | | [] sub | |
* | | [] subinitial | |
* | | [] subany | |
* | | [] subfinal | |
@@ -79,112 +76,62 @@ import org.apache.directory.studio.openl
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
-public class IndexDialog extends Dialog
+public class DbIndexDialog extends AddEditDialog<DbIndexWrapper>
{
- /** The index */
- private OlcDbIndex index;
-
- /** The new index */
- private OlcDbIndex newIndex;
-
- /** The connection */
- private IBrowserConnection browserConnection;
-
/** The attributes list */
private List<String> attributes = new ArrayList<String>();
// UI widgets
- private Button okButton;
+ // The attribute's group
private Button attributesCheckbox;
- private Table table;
- private TableViewer tableViewer;
- private Button addButton;
- private Button deleteButton;
+ private TableWidget<StringValueWrapper> attributeTable;
private Button defaultCheckbox;
+
+ // The index type section
private Button presCheckbox;
private Button eqCheckbox;
private Button approxCheckbox;
private Button subCheckbox;
private Button noLangCheckbox;
private Button noSubtypesCheckbox;
+ private Button noTagsCheckbox;
private Button subInitialCheckbox;
private Button subAnyCheckbox;
private Button subFinalCheckbox;
-
+
+ // The list of all the type buttons
+ private Button[] typeButtons = new Button[10];
+
/**
- * Listeners for the Attributes radiobutton. It will enable the buttons accordingly
- * to the content of the Attributes table : Add is always active, Delete is active if
- * an attribute is selected.
+ * Listeners for the Attributes radioButton. It will enable the Attributes table.
* */
private SelectionListener attributesCheckboxSelectionListener = new SelectionAdapter()
{
public void widgetSelected( SelectionEvent e )
{
- table.setEnabled( true );
- addButton.setEnabled( true );
- deleteButton.setEnabled( !tableViewer.getSelection().isEmpty() );
+ attributeTable.enable();
+ getEditedElement().setDefault( false );
checkAndUpdateOkButtonEnableState();
}
};
- /**
- * A listener on the Attributes Table : if one attribute is selected, then the Delete
- * button will be activated.
- */
- private ISelectionChangedListener tableViewerSelectionChangedListener = new ISelectionChangedListener()
- {
- public void selectionChanged( SelectionChangedEvent event )
- {
- deleteButton.setEnabled( !tableViewer.getSelection().isEmpty() );
- }
- };
/**
- * A listener on the Attributes Add button. If selected, it opens a dialog that lists
- * the possible attributes. The added attribute will be selected.
+ * The attribute table listener
*/
- private SelectionListener addButtonSelectionListener = new SelectionAdapter()
+ private WidgetModifyListener attributeTableListener = new WidgetModifyListener()
{
- public void widgetSelected( SelectionEvent e )
+ public void widgetModified( WidgetModifyEvent e )
{
- AttributeDialog dialog = new AttributeDialog( addButton.getShell(), browserConnection );
+ getEditedElement().getAttributes().clear();
- if ( dialog.open() == AttributeDialog.OK )
+ for ( StringValueWrapper attribute : attributeTable.getElements() )
{
- String attribute = dialog.getAttribute();
-
- if ( !attributes.contains( attribute ) )
- {
- attributes.add( attribute );
- tableViewer.refresh();
- tableViewer.setSelection( new StructuredSelection( attribute ) );
- checkAndUpdateOkButtonEnableState();
- }
+ getEditedElement().getAttributes().add( attribute.getValue() );
}
}
};
-
- /**
- * A listener on the Attributes Delete button. If an attribute is selected (which should
- * always be the case, otherwise the button would be disabled!), then it will be removed
- * from the table.
- */
- private SelectionListener deleteButtonSelectionListener = new SelectionAdapter()
- {
- public void widgetSelected( SelectionEvent e )
- {
- StructuredSelection selection = ( StructuredSelection ) tableViewer.getSelection();
-
- if ( !selection.isEmpty() )
- {
- String selectedAttribute = ( String ) selection.getFirstElement();
- attributes.remove( selectedAttribute );
- tableViewer.refresh();
- checkAndUpdateOkButtonEnableState();
- }
- }
- };
/**
* A listener on the Default radio button. It will disable the Attributes table
@@ -194,42 +141,246 @@ public class IndexDialog extends Dialog
{
public void widgetSelected( SelectionEvent e )
{
- disableAttributesTableAndButtons();
+ attributeTable.disable();
+ getEditedElement().setDefault( true );
checkAndUpdateOkButtonEnableState();
}
};
+
/**
- * A listener on the SUB indice check box
+ * A listener on one of the indexType checkboxes (but SUB and SUBxxx)
*/
- private SelectionListener subCheckboxSelectionListener = new SelectionAdapter()
+ private SelectionListener typeButtonSelectionListener = new SelectionAdapter()
{
public void widgetSelected( SelectionEvent e )
{
- setSelectionForSubCheckboxes( subCheckbox.getSelection() );
checkAndUpdateOkButtonEnableState();
- }
+ DbIndexWrapper indexWrapper = getEditedElement();
+
+ // Update the edited element
+ Button selectedCheckbox = (Button)e.getSource();
+
+ for ( int i = 0; i < typeButtons.length; i++ )
+ {
+ if ( typeButtons[i] == selectedCheckbox )
+ {
+ DbIndexTypeEnum indexType = DbIndexTypeEnum.getIndexType( i );
+
+ if ( selectedCheckbox.getSelection() )
+ {
+ indexWrapper.getTypes().add( indexType );
+ }
+ else
+ {
+ indexWrapper.getTypes().remove( indexType );
+ }
+
+ System.out.println( indexWrapper );
+ }
+ }
+ };
};
+
/**
- * A listener on the OkButton
+ * A listener on the SUB indice check box. If it's selected, we will grey all the sub-sub indexes.
+ * If it's delected, we will remove all the sub-sub indexes
*/
- private SelectionListener checkOkButtonSelectionListener = new SelectionAdapter()
+ private SelectionListener subCheckboxSelectionListener = new SelectionAdapter()
{
public void widgetSelected( SelectionEvent e )
{
+ DbIndexWrapper indexWrapper = getEditedElement();
+
+ if ( subCheckbox.getSelection() )
+ {
+ indexWrapper.getIndexTypes().add( DbIndexTypeEnum.SUB );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBINITIAL );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBANY );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBFINAL );
+
+ subInitialCheckbox.setSelection( true );
+ subAnyCheckbox.setSelection( true );
+ subFinalCheckbox.setSelection( true );
+ }
+ else
+ {
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUB );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBINITIAL );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBANY );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBFINAL );
+
+ subInitialCheckbox.setSelection( false );
+ subAnyCheckbox.setSelection( false );
+ subFinalCheckbox.setSelection( false );
+ }
+
+ System.out.println( indexWrapper );
+
checkAndUpdateOkButtonEnableState();
- };
+ }
};
+
/**
- * A listener on the SUB related indice check boxs
+ * A listener on the SUB related indices check boxes. We will disable the SUB checkbox, no matter what
*/
- private SelectionListener checkSubCheckboxSelectionListener = new SelectionAdapter()
+ private SelectionListener subSubCheckboxSelectionListener = new SelectionAdapter()
{
public void widgetSelected( SelectionEvent e )
{
- checkAndUpdateSubCheckboxSelectionState();
+ // Check that we aren't coming from a modification of the SUB button
+ DbIndexWrapper indexWrapper = getEditedElement();
+
+ Button button = (Button)e.getSource();
+
+ // First, update the indexTypes set
+ if ( button == subAnyCheckbox )
+ {
+ if ( button.getSelection() )
+ {
+ if ( subInitialCheckbox.getSelection() && subFinalCheckbox.getSelection() )
+ {
+ // The three subXXX indexes are selected : select the SUB checkbox
+ subCheckbox.setSelection( true );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBINITIAL );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBANY );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBFINAL );
+ indexWrapper.getIndexTypes().add( DbIndexTypeEnum.SUB );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBSTR );
+ }
+ else if ( subInitialCheckbox.getSelection() || subFinalCheckbox.getSelection() )
+ {
+ indexWrapper.getIndexTypes().add( DbIndexTypeEnum.SUBANY );
+ }
+ else
+ {
+ // Gray the sub checkbox, and select it
+ subCheckbox.setSelection( true );
+ subCheckbox.setGrayed( true );
+ indexWrapper.getIndexTypes().add( DbIndexTypeEnum.SUBANY );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUB );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBSTR );
+ }
+ }
+ else
+ {
+ if ( !subInitialCheckbox.getSelection() && !subFinalCheckbox.getSelection() )
+ {
+ subCheckbox.setGrayed( false );
+ subCheckbox.setSelection( false );
+ }
+ else if ( subInitialCheckbox.getSelection() && subFinalCheckbox.getSelection() )
+ {
+ indexWrapper.getIndexTypes().add( DbIndexTypeEnum.SUBINITIAL );
+ indexWrapper.getIndexTypes().add( DbIndexTypeEnum.SUBFINAL );
+ subCheckbox.setGrayed( true );
+ }
+
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBANY );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUB );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBSTR );
+ }
+ }
+ else if ( button == subInitialCheckbox )
+ {
+ if ( button.getSelection() )
+ {
+ if ( subAnyCheckbox.getSelection() && subFinalCheckbox.getSelection() )
+ {
+ // The three subXXX indexes are selected : select the SUB checkbox
+ subCheckbox.setSelection( true );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBINITIAL );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBANY );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBFINAL );
+ indexWrapper.getIndexTypes().add( DbIndexTypeEnum.SUB );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBSTR );
+ }
+ else if ( subAnyCheckbox.getSelection() || subFinalCheckbox.getSelection() )
+ {
+ indexWrapper.getIndexTypes().add( DbIndexTypeEnum.SUBINITIAL );
+ }
+ else
+ {
+ // Gray the sub checkbox, and select it
+ subCheckbox.setSelection( true );
+ subCheckbox.setGrayed( true );
+ indexWrapper.getIndexTypes().add( DbIndexTypeEnum.SUBANY );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUB );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBSTR );
+ }
+ }
+ else
+ {
+ if ( !subAnyCheckbox.getSelection() && !subFinalCheckbox.getSelection() )
+ {
+ subCheckbox.setGrayed( false );
+ subCheckbox.setSelection( false );
+ }
+ else if ( subAnyCheckbox.getSelection() && subFinalCheckbox.getSelection() )
+ {
+ indexWrapper.getIndexTypes().add( DbIndexTypeEnum.SUBANY );
+ indexWrapper.getIndexTypes().add( DbIndexTypeEnum.SUBFINAL );
+ subCheckbox.setGrayed( true );
+ }
+
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBINITIAL );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUB );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBSTR );
+ }
+ }
+ else if ( button == subFinalCheckbox )
+ {
+ if ( button.getSelection() )
+ {
+ if ( subAnyCheckbox.getSelection() && subInitialCheckbox.getSelection() )
+ {
+ // The three subXXX indexes are selected : select the SUB checkbox
+ subCheckbox.setSelection( true );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBINITIAL );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBANY );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBFINAL );
+ indexWrapper.getIndexTypes().add( DbIndexTypeEnum.SUB );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBSTR );
+ }
+ else if ( subAnyCheckbox.getSelection() || subInitialCheckbox.getSelection() )
+ {
+ indexWrapper.getIndexTypes().add( DbIndexTypeEnum.SUBFINAL );
+ }
+ else
+ {
+ // Gray the sub checkbox, and select it
+ subCheckbox.setSelection( true );
+ subCheckbox.setGrayed( true );
+ indexWrapper.getIndexTypes().add( DbIndexTypeEnum.SUBFINAL );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUB );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBSTR );
+ }
+ }
+ else
+ {
+ if ( !subAnyCheckbox.getSelection() && !subInitialCheckbox.getSelection() )
+ {
+ subCheckbox.setGrayed( false );
+ subCheckbox.setSelection( false );
+ }
+ else if ( subAnyCheckbox.getSelection() && subInitialCheckbox.getSelection() )
+ {
+ indexWrapper.getIndexTypes().add( DbIndexTypeEnum.SUBANY );
+ indexWrapper.getIndexTypes().add( DbIndexTypeEnum.SUBINITIAL );
+ subCheckbox.setGrayed( true );
+ }
+
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBFINAL );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUB );
+ indexWrapper.getIndexTypes().remove( DbIndexTypeEnum.SUBSTR );
+ }
+ }
+
+ System.out.println( indexWrapper );
+
+ // Last, update the subCheckbox state
checkAndUpdateOkButtonEnableState();
}
};
@@ -239,15 +390,12 @@ public class IndexDialog extends Dialog
* Creates a new instance of OverlayDialog.
*
* @param parentShell the parent shell
- * @param index the index
* @param browserConnection the connection
*/
- public IndexDialog( Shell parentShell, OlcDbIndex index, IBrowserConnection browserConnection )
+ public DbIndexDialog( Shell parentShell, IBrowserConnection browserConnection )
{
super( parentShell );
super.setShellStyle( super.getShellStyle() | SWT.RESIZE );
- this.index = index;
- this.browserConnection = browserConnection;
}
@@ -262,116 +410,22 @@ public class IndexDialog extends Dialog
/**
- * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite)
- */
- protected void createButtonsForButtonBar( Composite parent )
- {
- okButton = createButton( parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true );
- createButton( parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false );
-
- checkAndUpdateOkButtonEnableState();
- }
-
-
- /**
- * When the OK button is pressed, a list of actions is done :
- * <ul>
- * <li>- we create a new index</li>
- * <li>- the attributes list is added to this instance</li>
- * <li>- the index types are added</li>
- * </ul>
- * {@inheritDoc}
- */
- protected void okPressed()
- {
- // Creating the new index
- newIndex = new OlcDbIndex();
-
- // Default
- if ( defaultCheckbox.getSelection() )
- {
- newIndex.setDefault( true );
- }
- else
- {
- // Attributes
- if ( attributes.size() > 0 )
- {
- for ( String attribute : attributes )
- {
- newIndex.addAttribute( attribute );
- }
- }
- }
-
- // Index types
- if ( presCheckbox.getSelection() )
- {
- newIndex.addIndexType( OlcDbIndexTypeEnum.PRES );
- }
-
- if ( eqCheckbox.getSelection() )
- {
- newIndex.addIndexType( OlcDbIndexTypeEnum.EQ );
- }
-
- if ( approxCheckbox.getSelection() )
- {
- newIndex.addIndexType( OlcDbIndexTypeEnum.APPROX );
- }
-
- if ( ( subCheckbox.getSelection() ) && ( !subCheckbox.getGrayed() ) )
- {
- newIndex.addIndexType( OlcDbIndexTypeEnum.SUB );
- }
- else
- {
- if ( subInitialCheckbox.getSelection() )
- {
- newIndex.addIndexType( OlcDbIndexTypeEnum.SUBINITIAL );
- }
-
- if ( subAnyCheckbox.getSelection() )
- {
- newIndex.addIndexType( OlcDbIndexTypeEnum.SUBANY );
- }
-
- if ( subFinalCheckbox.getSelection() )
- {
- newIndex.addIndexType( OlcDbIndexTypeEnum.SUBFINAL );
- }
- }
-
- if ( noLangCheckbox.getSelection() )
- {
- newIndex.addIndexType( OlcDbIndexTypeEnum.NOLANG );
- }
-
- if ( noSubtypesCheckbox.getSelection() )
- {
- newIndex.addIndexType( OlcDbIndexTypeEnum.NOSUBTYPES );
- }
-
- super.okPressed();
- }
-
-
- /**
* Creates the IndexDialog, which has two groups : attributes and indices.
* <pre>
* +--------------------------------------------------+
* | Attributes |
* | .----------------------------------------------. |
- * | | +------------------------------+ | |
- * | | o | | (Add...) | |
- * | | | | (Delete) | |
- * | | +------------------------------+ | |
- * | | o Default | |
+ * | | +----------------------------+ | |
+ * | | (o) | | (Add...) | |
+ * | | | | (Delete) | |
+ * | | +----------------------------+ | |
+ * | | (o) Default | |
* | '----------------------------------------------' |
* | Indices |
* | .----------------------------------------------. |
* | | [] pres [] eq [] approx | |
- * | | [] sub [] nolang [] nosubtypes | |
+ * | | [] nolang [] noSubtypes [] notags | |
+ * | | [] sub | |
* | | [] subinitial | |
* | | [] subany | |
* | | [] subfinal | |
@@ -393,7 +447,8 @@ public class IndexDialog extends Dialog
createIndicesGroup( composite );
// Load the dialog if this was an Edit call
- initFromIndex();
+ initDialog();
+ //addListeners();
applyDialogFont( composite );
@@ -406,11 +461,11 @@ public class IndexDialog extends Dialog
* <pre>
* Attributes
* .----------------------------------------------.
- * | +------------------------------+ |
- * | o | | (Add...) |
- * | | | (Delete) |
- * | +------------------------------+ |
- * | o Default |
+ * | +----------------------------+ |
+ * | (o) | | (Add...) |
+ * | | | (Delete) |
+ * | +----------------------------+ |
+ * | (o) Default |
* '----------------------------------------------'
*
* @param parent the parent composite
@@ -429,42 +484,15 @@ public class IndexDialog extends Dialog
attributesCheckbox.setSelection( true );
attributesCheckbox.addSelectionListener( attributesCheckboxSelectionListener );
- Composite attributesComposite = new Composite( attributesGroup, SWT.NONE );
- GridLayout attributesCompositeGridLayout = new GridLayout( 2, false );
- attributesCompositeGridLayout.marginHeight = attributesCompositeGridLayout.marginWidth = 0;
- attributesCompositeGridLayout.verticalSpacing = attributesCompositeGridLayout.horizontalSpacing = 0;
- attributesComposite.setLayout( attributesCompositeGridLayout );
- attributesComposite.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) );
-
- // Table and Table Viewer
- table = new Table( attributesComposite, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER );
- GridData gd = new GridData( SWT.FILL, SWT.FILL, true, true, 1, 3 );
- gd.heightHint = 20;
- gd.widthHint = 100;
- table.setLayoutData( gd );
- tableViewer = new TableViewer( table );
- tableViewer.setContentProvider( new ArrayContentProvider() );
- tableViewer.setLabelProvider( new LabelProvider()
- {
- public Image getImage( Object element )
- {
- return OpenLdapConfigurationPlugin.getDefault().getImage(
- OpenLdapConfigurationPluginConstants.IMG_ATTRIBUTE );
- }
- } );
- tableViewer.setInput( attributes );
- tableViewer.addSelectionChangedListener( tableViewerSelectionChangedListener );
-
- // Add Button
- addButton = BaseWidgetUtils.createButton( attributesComposite, "Add...", 1 );
- addButton.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, false, false ) );
- addButton.addSelectionListener( addButtonSelectionListener );
-
- // Delete Button
- deleteButton = BaseWidgetUtils.createButton( attributesComposite, "Delete", 1 );
- deleteButton.setEnabled( false );
- deleteButton.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, false, false ) );
- deleteButton.addSelectionListener( deleteButtonSelectionListener );
+ // Attributes table
+ StringValueDecorator decorator = new StringValueDecorator( parent.getShell(), "Attribute" );
+ decorator.setImage( OpenLdapConfigurationPlugin.getDefault().getImage(
+ OpenLdapConfigurationPluginConstants.IMG_ATTRIBUTE ) );
+ attributeTable = new TableWidget<StringValueWrapper>( decorator );
+
+ attributeTable.createWidgetNoEdit( attributesGroup, null );
+ attributeTable.getControl().setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, 1, 1 ) );
+ attributeTable.addWidgetModifyListener( attributeTableListener );
// Attributes Checkbox
defaultCheckbox = BaseWidgetUtils.createRadiobutton( attributesGroup, " Default", 2 );
@@ -475,10 +503,11 @@ public class IndexDialog extends Dialog
/**
* Creates the indices group.
* <pre>
- * Indices
+ * Indices
* .----------------------------------------------.
* | [] pres [] eq [] approx |
- * | [] sub [] nolang [] nosubtypes |
+ * | [] nolang [] noSubtypes [] notags |
+ * | [] sub |
* | [] subinitial |
* | [] subany |
* | [] subfinal |
@@ -497,27 +526,38 @@ public class IndexDialog extends Dialog
// Pres Checkbox
presCheckbox = BaseWidgetUtils.createCheckbox( indicesGroup, "pres", 1 );
- presCheckbox.addSelectionListener( checkOkButtonSelectionListener );
+ presCheckbox.addSelectionListener( typeButtonSelectionListener );
+ typeButtons[DbIndexTypeEnum.PRES.getNumber()] = presCheckbox;
// Eq Checkbox
eqCheckbox = BaseWidgetUtils.createCheckbox( indicesGroup, "eq", 1 );
- eqCheckbox.addSelectionListener( checkOkButtonSelectionListener );
+ eqCheckbox.addSelectionListener( typeButtonSelectionListener );
+ typeButtons[DbIndexTypeEnum.EQ.getNumber()] = eqCheckbox;
// Approx Checkbox
approxCheckbox = BaseWidgetUtils.createCheckbox( indicesGroup, "approx", 1 );
- approxCheckbox.addSelectionListener( checkOkButtonSelectionListener );
-
- // Sub Checkbox
- subCheckbox = BaseWidgetUtils.createCheckbox( indicesGroup, "sub", 1 );
- subCheckbox.addSelectionListener( subCheckboxSelectionListener );
+ approxCheckbox.addSelectionListener( typeButtonSelectionListener );
+ typeButtons[DbIndexTypeEnum.APPROX.getNumber()] = approxCheckbox;
// NoLang Checkbox
noLangCheckbox = BaseWidgetUtils.createCheckbox( indicesGroup, "nolang", 1 );
- noLangCheckbox.addSelectionListener( checkOkButtonSelectionListener );
+ noLangCheckbox.addSelectionListener( typeButtonSelectionListener );
+ typeButtons[DbIndexTypeEnum.NOLANG.getNumber()] = noLangCheckbox;
// NoSybtypes Checkbox
noSubtypesCheckbox = BaseWidgetUtils.createCheckbox( indicesGroup, "nosubtypes", 1 );
- noSubtypesCheckbox.addSelectionListener( checkOkButtonSelectionListener );
+ noSubtypesCheckbox.addSelectionListener( typeButtonSelectionListener );
+ typeButtons[DbIndexTypeEnum.NOSUBTYPES.getNumber()] = noSubtypesCheckbox;
+
+ // NoTags Checkbox
+ noTagsCheckbox = BaseWidgetUtils.createCheckbox( indicesGroup, "notags", 1 );
+ noTagsCheckbox.addSelectionListener( typeButtonSelectionListener );
+ typeButtons[DbIndexTypeEnum.NOTAGS.getNumber()] = noTagsCheckbox;
+
+ // Sub Checkbox
+ subCheckbox = BaseWidgetUtils.createCheckbox( indicesGroup, "sub", 1 );
+ subCheckbox.addSelectionListener( subCheckboxSelectionListener );
+ typeButtons[DbIndexTypeEnum.SUB.getNumber()] = subCheckbox;
// Sub Composite
Composite subComposite = new Composite( indicesGroup, SWT.NONE );
@@ -529,28 +569,20 @@ public class IndexDialog extends Dialog
// SubInitial Checkbox
BaseWidgetUtils.createRadioIndent( subComposite, 1 );
subInitialCheckbox = BaseWidgetUtils.createCheckbox( subComposite, "subinitial", 1 );
- subInitialCheckbox.addSelectionListener( checkSubCheckboxSelectionListener );
+ subInitialCheckbox.addSelectionListener( subSubCheckboxSelectionListener );
+ typeButtons[DbIndexTypeEnum.SUBINITIAL.getNumber()] = subInitialCheckbox;
// SubAny Checkbox
BaseWidgetUtils.createRadioIndent( subComposite, 1 );
subAnyCheckbox = BaseWidgetUtils.createCheckbox( subComposite, "subany", 1 );
- subAnyCheckbox.addSelectionListener( checkSubCheckboxSelectionListener );
+ subAnyCheckbox.addSelectionListener( subSubCheckboxSelectionListener );
+ typeButtons[DbIndexTypeEnum.SUBANY.getNumber()] = subAnyCheckbox;
// SubFinal Checkbox
BaseWidgetUtils.createRadioIndent( subComposite, 1 );
subFinalCheckbox = BaseWidgetUtils.createCheckbox( subComposite, "subfinal", 1 );
- subFinalCheckbox.addSelectionListener( checkSubCheckboxSelectionListener );
- }
-
-
- /**
- * Disables the attributes table and buttons.
- */
- private void disableAttributesTableAndButtons()
- {
- table.setEnabled( false );
- addButton.setEnabled( false );
- deleteButton.setEnabled( false );
+ subFinalCheckbox.addSelectionListener( subSubCheckboxSelectionListener );
+ typeButtons[DbIndexTypeEnum.SUBFINAL.getNumber()] = subFinalCheckbox;
}
@@ -581,59 +613,114 @@ public class IndexDialog extends Dialog
subCheckbox.setSelection( atLeastOneSelected );
}
+
+ private void initAttributeTable( Set<String> attributes )
+ {
+ List<StringValueWrapper> attributeWrappers = new ArrayList<StringValueWrapper>();
+
+ if ( attributes != null )
+ {
+ for ( String attribute : attributes )
+ {
+ attributeWrappers.add( new StringValueWrapper( attribute, false ) );
+ }
+ }
+
+ attributeTable.setElements( attributeWrappers );
+ }
+
/**
- * Inits the UI from the index
+ * Inits the UI from the DbIndexWrapper
*/
- private void initFromIndex()
+ protected void initDialog()
{
- if ( index != null )
+ DbIndexWrapper editedElement = (DbIndexWrapper)getEditedElement();
+
+ if ( editedElement != null )
{
// Attributes
- List<String> attributes = index.getAttributes();
-
- if ( ( attributes != null ) && ( attributes.size() > 0 ) )
- {
- this.attributes.addAll( attributes );
- tableViewer.refresh();
- }
+ initAttributeTable( editedElement.getAttributes() );
// Default
- if ( index.isDefault() )
+ if ( editedElement.isDefault() )
{
attributesCheckbox.setSelection( false );
- disableAttributesTableAndButtons();
+ attributeTable.disable();
defaultCheckbox.setSelection( true );
}
// Index types
- List<OlcDbIndexTypeEnum> indexTypes = index.getIndexTypes();
+ Set<DbIndexTypeEnum> indexTypes = editedElement.getTypes();
if ( ( indexTypes != null ) && ( indexTypes.size() > 0 ) )
{
- presCheckbox.setSelection( indexTypes.contains( OlcDbIndexTypeEnum.PRES ) );
- eqCheckbox.setSelection( indexTypes.contains( OlcDbIndexTypeEnum.EQ ) );
- approxCheckbox.setSelection( indexTypes.contains( OlcDbIndexTypeEnum.APPROX ) );
+ presCheckbox.setSelection( indexTypes.contains( DbIndexTypeEnum.PRES ) );
+ eqCheckbox.setSelection( indexTypes.contains( DbIndexTypeEnum.EQ ) );
+ approxCheckbox.setSelection( indexTypes.contains( DbIndexTypeEnum.APPROX ) );
- if ( indexTypes.contains( OlcDbIndexTypeEnum.SUB ) )
+ if ( indexTypes.contains( DbIndexTypeEnum.SUB ) )
{
subCheckbox.setSelection( true );
- setSelectionForSubCheckboxes( indexTypes.contains( OlcDbIndexTypeEnum.SUB ) );
+ setSelectionForSubCheckboxes( indexTypes.contains( DbIndexTypeEnum.SUB ) );
}
else
{
- subInitialCheckbox.setSelection( indexTypes.contains( OlcDbIndexTypeEnum.SUBINITIAL ) );
- subAnyCheckbox.setSelection( indexTypes.contains( OlcDbIndexTypeEnum.SUBANY ) );
- subFinalCheckbox.setSelection( indexTypes.contains( OlcDbIndexTypeEnum.SUBFINAL ) );
+ subInitialCheckbox.setSelection( indexTypes.contains( DbIndexTypeEnum.SUBINITIAL ) );
+ subAnyCheckbox.setSelection( indexTypes.contains( DbIndexTypeEnum.SUBANY ) );
+ subFinalCheckbox.setSelection( indexTypes.contains( DbIndexTypeEnum.SUBFINAL ) );
checkAndUpdateSubCheckboxSelectionState();
}
- noLangCheckbox.setSelection( indexTypes.contains( OlcDbIndexTypeEnum.NOLANG ) );
- noSubtypesCheckbox.setSelection( indexTypes.contains( OlcDbIndexTypeEnum.NOSUBTYPES ) );
+ noLangCheckbox.setSelection( indexTypes.contains( DbIndexTypeEnum.NOLANG ) );
+ noSubtypesCheckbox.setSelection( indexTypes.contains( DbIndexTypeEnum.NOSUBTYPES ) );
+ noTagsCheckbox.setSelection( indexTypes.contains( DbIndexTypeEnum.NOTAGS ) );
}
}
}
+
+ /**
+ * Add a new Element that will be edited
+ */
+ protected void addNewElement( DbIndexWrapper editedElement )
+ {
+ DbIndexWrapper newElement = (DbIndexWrapper)editedElement.clone();
+ setEditedElement( newElement );
+ }
+
+
+ /**
+ * Add a new Element that will be edited
+ */
+ public void addNewElement()
+ {
+ setEditedElement( new DbIndexWrapper( "" ) );
+ }
+
+
+ /**
+ * Overriding the createButton method. The OK button is not enabled until
+ *
+ * {@inheritDoc}
+ */
+ protected Button createButton(Composite parent, int id, String label, boolean defaultButton)
+ {
+ Button button = super.createButton(parent, id, label, defaultButton);
+
+ if ( id == IDialogConstants.OK_ID )
+ {
+ DbIndexWrapper dbIndexWrapper = (DbIndexWrapper)getEditedElement();
+
+ if ( ( dbIndexWrapper == null ) || ( dbIndexWrapper.getAttributes().size() == 0 ) )
+ {
+ button.setEnabled( false );
+ }
+ }
+
+ return button;
+ }
+
/**
* Checks and updates the OK button 'enable' state. For the OK button to be enabled, either
@@ -642,31 +729,25 @@ public class IndexDialog extends Dialog
*/
private void checkAndUpdateOkButtonEnableState()
{
- boolean enableOkButton = true;
+ Button okButton = getButton( IDialogConstants.OK_ID );
if ( defaultCheckbox.getSelection() )
{
- enableOkButton = presCheckbox.getSelection() || eqCheckbox.getSelection() || approxCheckbox.getSelection()
- || subCheckbox.getSelection() || subInitialCheckbox.getSelection() || subAnyCheckbox.getSelection()
- || subFinalCheckbox.getSelection() || noLangCheckbox.getSelection()
- || noSubtypesCheckbox.getSelection();
+ okButton.setEnabled(
+ presCheckbox.getSelection() ||
+ eqCheckbox.getSelection() ||
+ approxCheckbox.getSelection() ||
+ subCheckbox.getSelection() ||
+ subInitialCheckbox.getSelection() ||
+ subAnyCheckbox.getSelection() ||
+ subFinalCheckbox.getSelection() ||
+ noLangCheckbox.getSelection() ||
+ noLangCheckbox.getSelection() ||
+ noSubtypesCheckbox.getSelection() );
}
else
{
- enableOkButton = attributes.size() > 0;
+ okButton.setEnabled( attributes.size() > 0 );
}
-
- okButton.setEnabled( enableOkButton );
- }
-
-
- /**
- * Gets the new index.
- *
- * @return the new index
- */
- public OlcDbIndex getNewIndex()
- {
- return newIndex;
}
}
Modified: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/OrderedStringValueDialog.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/OrderedStringValueDialog.java?rev=1689040&r1=1689039&r2=1689040&view=diff
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/OrderedStringValueDialog.java (original)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/OrderedStringValueDialog.java Fri Jul 3 15:51:57 2015
@@ -185,7 +185,6 @@ public class OrderedStringValueDialog ex
}
- @Override
public void addNewElement( OrderedStringValueWrapper editedElement )
{
OrderedStringValueWrapper newElement = (OrderedStringValueWrapper)editedElement.clone();
Modified: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/SsfDialog.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/SsfDialog.java?rev=1689040&r1=1689039&r2=1689040&view=diff
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/SsfDialog.java (original)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/SsfDialog.java Fri Jul 3 15:51:57 2015
@@ -394,9 +394,10 @@ public class SsfDialog extends AddEditDi
*/
protected Button createButton(Composite parent, int id, String label, boolean defaultButton)
{
- if (id == IDialogConstants.OK_ID)
+ Button button = super.createButton( parent, id, label, defaultButton );
+
+ if ( id == IDialogConstants.OK_ID )
{
- Button okButton = super.createButton(parent, id, label, defaultButton);
SsfWrapper ssfWrapper = (SsfWrapper)getEditedElement();
if ( ssfWrapper != null )
@@ -405,17 +406,15 @@ public class SsfDialog extends AddEditDi
if ( feature == SsfFeatureEnum.NONE )
{
- okButton.setEnabled( false );
+ button.setEnabled( false );
}
}
-
- return okButton;
- }
- else
- {
- return super.createButton(parent, id, label, defaultButton);
}
+
+ return button;
}
+
+
/**
* Initializes the Dialog with the values
*/
Modified: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/StringValueDialog.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/StringValueDialog.java?rev=1689040&r1=1689039&r2=1689040&view=diff
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/StringValueDialog.java (original)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/StringValueDialog.java Fri Jul 3 15:51:57 2015
@@ -177,7 +177,6 @@ public class StringValueDialog extends A
}
- @Override
public void addNewElement( StringValueWrapper editedElement )
{
StringValueWrapper newElement = (StringValueWrapper)editedElement.clone();
Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/DbIndexDecorator.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/DbIndexDecorator.java?rev=1689040&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/DbIndexDecorator.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/DbIndexDecorator.java Fri Jul 3 15:51:57 2015
@@ -0,0 +1,103 @@
+/*
+ * 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.openldap.config.editor.wrappers;
+
+import org.apache.directory.studio.common.ui.TableDecorator;
+import org.apache.directory.studio.ldapbrowser.core.model.IBrowserConnection;
+import org.apache.directory.studio.openldap.common.ui.model.DisallowFeatureEnum;
+import org.apache.directory.studio.openldap.config.editor.dialogs.DbIndexDialog;
+import org.apache.directory.studio.openldap.config.editor.dialogs.DisallowFeatureDialog;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * A decorator for the DbIndex table.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public class DbIndexDecorator extends TableDecorator<DbIndexWrapper>
+{
+ /**
+ * Create a new instance of DbIndexDecorator
+ * @param parentShell The parent Shell
+ */
+ public DbIndexDecorator( Shell parentShell, IBrowserConnection browserConnection )
+ {
+ setDialog( new DbIndexDialog( parentShell, browserConnection ) );
+ }
+
+ /**
+ * Construct the label for an DisallowFeature.
+ *
+ */
+ public String getText( Object element )
+ {
+ if ( element instanceof DisallowFeatureEnum )
+ {
+ String disallowFeature = ( ( DisallowFeatureEnum ) element ).toString();
+
+ return disallowFeature;
+ }
+
+ return super.getText( element );
+ };
+
+
+ /**
+ * Get the image. We have none
+ *
+ * {@inheritDoc}
+ */
+ public Image getImage( Object element )
+ {
+ return null;
+ };
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int compare( DbIndexWrapper e1, DbIndexWrapper e2 )
+ {
+ if ( e1 != null )
+ {
+ if ( e2 == null )
+ {
+ return 1;
+ }
+ else
+ {
+ return e1.compareTo( e2 );
+ }
+ }
+ else
+ {
+ if ( e2 == null )
+ {
+ return 0;
+ }
+ else
+ {
+ return 1;
+ }
+ }
+ }
+}