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 );
+ }
+}