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/11/06 12:42:30 UTC

svn commit: r1712945 - /directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/DatabaseTypeDialog.java

Author: elecharny
Date: Fri Nov  6 11:42:30 2015
New Revision: 1712945

URL: http://svn.apache.org/viewvc?rev=1712945&view=rev
Log:
Added the DatabaseType dialog

Added:
    directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/DatabaseTypeDialog.java

Added: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/DatabaseTypeDialog.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/DatabaseTypeDialog.java?rev=1712945&view=auto
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/DatabaseTypeDialog.java (added)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/dialogs/DatabaseTypeDialog.java Fri Nov  6 11:42:30 2015
@@ -0,0 +1,209 @@
+/*
+ *  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.dialogs;
+
+
+import org.apache.directory.studio.common.ui.widgets.BaseWidgetUtils;
+import org.apache.directory.studio.openldap.common.ui.model.DatabaseTypeEnum;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Shell;
+
+
+/**
+ * A Dialog used to select the DatabaseType for newly created Database. It
+ * offers a choice in :
+ * <ul>
+ * <li>None (not exposed)</li>
+ * <li>Frontend DB</li>
+ * <li>Config DB</li>
+ * <li>BDB</li>
+ * <li>DB Perl (not exposed)</li>
+ * <li>DB_Socket</li>
+ * <li>HDB</li>
+ * <li>LDAP</li>
+ * <li>LDIF</li>
+ * <li>META</li>
+ * <li>MDB</li>
+ * <li>MONITOR</li>
+ * <li>NDB (not exposed)</li>
+ * <li>PASSWORD (not exposed)</li>
+ * <li>RELAY</li>
+ * <li>SHELL (not exposed)</li>
+ * <li>SQL DB (not exposed)</li>
+ * <li>NULL</li>
+ * </ul>
+ * 
+ * Here is the layout :
+ * <pre>
+ * +-------------------------------------+
+ * | Database Type                       |
+ * | .---------------------------------. |
+ * | |  [----------------------------] | |
+ * | '---------------------------------' |
+ * |                                     |
+ * |  (Cancel)                    (OK)   |
+ * +-------------------------------------+
+ * </pre>
+ * 
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public class DatabaseTypeDialog extends Dialog
+{
+    // UI widgets
+    private Combo databaseTypeCombo;
+    
+    /**
+     * The listener in charge of exposing the changes when some buttons are checked
+     */
+    private SelectionListener databaseTypeSelectionListener = new SelectionAdapter()
+    {
+        public void widgetSelected( SelectionEvent e )
+        {
+            Object object = e.getSource();
+            
+            if ( object instanceof Combo )
+            {
+                Combo databaseTypeCombo = (Combo)object;
+                Button okButton = getButton( IDialogConstants.OK_ID );
+                
+                DatabaseTypeEnum databaseType = DatabaseTypeEnum.getDatabaseType( databaseTypeCombo.getText() );
+                
+                okButton.setEnabled( databaseType != DatabaseTypeEnum.NONE );
+            }
+        }
+    };
+
+
+    /**
+     * Creates a new instance of DatabaseBaseDialog.
+     * 
+     * @param parentShell the parent shell
+     */
+    public DatabaseTypeDialog( Shell parentShell )
+    {
+        super( parentShell );
+        super.setShellStyle( super.getShellStyle() | SWT.RESIZE );
+    }
+
+
+    /**
+     * {@inheritDoc}
+     */
+    protected void configureShell( Shell shell )
+    {
+        super.configureShell( shell );
+        shell.setText( "Database Type" );
+    }
+
+
+    /**
+     * {@inheritDoc}
+     */
+    protected void okPressed()
+    {
+        // Do nothing if the selected feature is NONE
+        if ( DatabaseTypeEnum.getDatabaseType( databaseTypeCombo.getText() ) != DatabaseTypeEnum.NONE )
+        {
+            super.okPressed();
+        }
+    }
+
+
+    /**
+     * Create the Dialog for the SSF :
+     * <pre>
+     * +-------------------------------------+
+     * | Database Type                       |
+     * | .---------------------------------. |
+     * | |  [----------------------------] | |
+     * | '---------------------------------' |
+     * |                                     |
+     * |  (Cancel)                    (OK)   |
+     * +-------------------------------------+
+     * </pre>
+     */
+    protected Control createDialogArea( Composite parent )
+    {
+        Composite composite = ( Composite ) super.createDialogArea( parent );
+        GridData gd = new GridData( GridData.FILL_BOTH );
+        composite.setLayoutData( gd );
+
+        Group databaseTypeEditGroup = BaseWidgetUtils.createGroup( composite, "Database Type", 1 );
+        databaseTypeEditGroup.setLayout( new GridLayout( 2, false ) );
+
+        // The DatabaseTypes
+        databaseTypeCombo = BaseWidgetUtils.createCombo( databaseTypeEditGroup, DatabaseTypeEnum.getNames(), 0, 2 );
+        
+        initDialog();
+        addListeners();
+        applyDialogFont( composite );
+        
+        return composite;
+    }
+
+    
+    /**
+     * Overriding the createButton method, so that we can disable the OK button if no feature is selected.
+     * 
+     * {@inheritDoc}
+     */
+    protected Button createButton(Composite parent, int id, String label, boolean defaultButton) 
+    {
+        Button button = super.createButton( parent, id, label, defaultButton );
+        
+        // Disable the OK button at startup
+        if ( id == IDialogConstants.OK_ID )
+        {
+            button.setEnabled( false );
+        }
+        
+        return button;
+    }
+    
+    
+    /**
+     * Initializes the Dialog with the values
+     */
+    protected void initDialog()
+    {
+        databaseTypeCombo.setText( DatabaseTypeEnum.NONE.getName() );
+    }
+
+
+    /**
+     * Adds listeners.
+     */
+    private void addListeners()
+    {
+        databaseTypeCombo.addSelectionListener( databaseTypeSelectionListener );
+    }
+}