/*
* 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.connection.ui;
import org.apache.directory.api.ldap.model.url.LdapUrl;
import org.apache.directory.studio.connection.core.ConnectionParameter;
import org.eclipse.jface.operation.IRunnableContext;
import org.eclipse.swt.widgets.Composite;
/**
* An IConnectionParameterPage is used to add connection parameter pages
* to the connection wizard and the connection property page.
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
public interface ConnectionParameterPage
{
/**
* Save the fields to the connection parameters.
*
* @param parameter the connection parameter
*/
void saveParameters( ConnectionParameter parameter );
/**
* Checks if is valid.
*
* @return true, if is valid
*/
boolean isValid();
/**
* Gets an error message that should be displayed
* to the user. Null means no error message so an
* existing error message should be cleared.
*
* @return the error message
*/
String getErrorMessage();
/**
* Gets a non-error message that should be displayed
* to the user. Null means no message so an existing
* message should be cleared.
*
* @return the message
*/
String getMessage();
/**
* Gets an info message that should be displayed
* to the user. Null means no info message so an
* existing info message should be cleared.
*
* @return the info message
*/
String getInfoMessage();
/**
* Initializes the connection parameter page.
*
* @param parent the parent
* @param listener the connection parameter page modify listener
* @param parameter the initial connection parameter
*/
void init( Composite parent, ConnectionParameterPageModifyListener listener, ConnectionParameter parameter );
/**
* Saves the dialog settings.
*/
void saveDialogSettings();
/**
* Sets the runnable context.
*
* @param runnableContext the runnable context
*/
void setRunnableContext( IRunnableContext runnableContext );
/**
* Sets the page id.
*
* @param pageId the page id
*/
void setPageId( String pageId );
/**
* Gets the page id.
*
* @return the page id
*/
String getPageId();
/**
* Sets the page name.
*
* @param pageName the page name
*/
void setPageName( String pageName );
/**
* Gets the page name.
*
* @return the page name
*/
String getPageName();
/**
* Sets the page description.
*
* @param pageDescription the page description
*/
void setPageDescription( String pageDescription );
/**
* Gets the page description.
*
* @return the page description
*/
String getPageDescription();
/**
* Sets the page id this page depends on.
*
* @param pageDependsOnId the page id this page depends on
*/
void setPageDependsOnId( String pageDependsOnId );
/**
* Gets the page id this page depends on.
*
* @return the page id this page depends on
*/
String getPageDependsOnId();
/**
* Sets the focus.
*/
void setFocus();
/**
* The implementing class must return true if important
* connection parameters were modified that require a
* reconnection to take effect.
*
* @return true if a reconnection if required
*/
boolean isReconnectionRequired();
/**
* The implementing class must return true if any
* parameter was modified.
*
* @return true, if parameters were modified
*/
boolean areParametersModifed();
/**
* Merges the connection parameters into the LDAP URL.
*
* @param parameter the source connection parameter
* @param ldapUrl the target LDAP URL
*/
void mergeParametersToLdapURL( ConnectionParameter parameter, LdapUrl ldapUrl );
/**
* Merges the LDAP URL into the connection parameters.
*
* @param ldapUrl the source LDAP URL
* @param parameter the target connection parameter
*/
void mergeLdapUrlToParameters( LdapUrl ldapUrl, ConnectionParameter parameter );
}