/*
* 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.apacheds.configuration.editor;
import java.util.List;
import org.apache.directory.server.config.beans.ChangePasswordServerBean;
import org.apache.directory.server.config.beans.DirectoryServiceBean;
import org.apache.directory.server.config.beans.KdcServerBean;
import org.apache.directory.server.config.beans.PartitionBean;
import org.apache.directory.server.config.beans.TransportBean;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.events.HyperlinkAdapter;
import org.eclipse.ui.forms.events.HyperlinkEvent;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.Hyperlink;
import org.eclipse.ui.forms.widgets.Section;
import org.eclipse.ui.forms.widgets.TableWrapData;
import org.eclipse.ui.forms.widgets.TableWrapLayout;
/**
* This class represents the General Page of the Server Configuration Editor.
*
* The Overview tab exposes 4 panels, in 2 columns :
*
* <pre>
* +-------------------------------------------------------------------------------+
* | +------------------------------------+ +------------------------------------+ |
* | | .--------------------------------. | | +--------------------------------+ | |
* | | | LDAP/LDAPS Transport | | | | Kerberos Server | | |
* | | +--------------------------------| | | +--------------------------------+ | |
* | | | [X] Enabled LDAP server | | | | [X] Enable Kerberos Server | | |
* | | | Port : [/////////] | | | | Port : [/////] | | |
* | | | [X] Enabled LDAPS server | | | | [X] Enable Kerberos ChangePwd | | |
* | | | Port : [/////////] | | | | Port : [/////] | | |
* | | | <advanced LDAP/LDAPS config> | | | | <advanced Kerberos config> | | |
* | | +--------------------------------| | | +--------------------------------+ | |
* | | .--------------------------------. | | +--------------------------------+ | |
* | | | Partitions | | | | Options | | |
* | | +--------------------------------| | | +--------------------------------+ | |
* | | | +----------------------------+ | | | | [X] Allow anonymous access | | |
* | | | | Partition 1 | | | | | [X] Enable Access Control | | |
* | | | | Partition 2 | | | | | [X] Password Hidden | | |
* | | | | ... | | | | | | | |
* | | | +----------------------------+ | | | | | | |
* | | | <advanced partitionsS config> | | | | | | |
* | | +--------------------------------+ | | +--------------------------------+ | |
* | +------------------------------------+ +------------------------------------+ |
* </pre>
*
* We just expose the more frequent parameters in this page.
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
public class OverviewPage extends ServerConfigurationEditorPage
{
/** The Page ID*/
public static final String ID = OverviewPage.class.getName(); //$NON-NLS-1$
/** The Page Title */
private static final String TITLE = Messages.getString( "OverviewPage.Overview" ); //$NON-NLS-1$
// UI Controls
/** LDAP Server controls */
private Button enableLdapCheckbox;
private Text ldapPortText;
private Button enableLdapsCheckbox;
private Text ldapsPortText;
// This link opens the advanced LDAP/LDAPS configuration tab
private Hyperlink openLdapConfigurationLink;
/** Kerberos Server controls */
private Button enableKerberosCheckbox;
private Text kerberosPortText;
private Button enableChangePasswordCheckbox;
private Text changePasswordPortText;
// This link opens the advanced kerberos configuration tab
private Hyperlink openKerberosConfigurationLink;
/** The Partitions controls */
private Label partitionsLabel;
private TableViewer partitionsTableViewer;
// This link open the advanced partitions configuration Tab */
private Hyperlink openPartitionsConfigurationLink;
/** The LDAP Options controls */
private Button allowAnonymousAccessCheckbox;
private Button enableAccessControlCheckbox;
private Button enableHiddenPasswordCheckbox;
// UI Control Listeners
/**
* The LDAP transport checkbox selection adapter.
*/
private SelectionAdapter enableLdapCheckboxListener = new SelectionAdapter()
{
public void widgetSelected( SelectionEvent e )
{
boolean enableLdap = enableLdapCheckbox.getSelection();
LdapLdapsServersPage.getLdapServerTransportBean( getDirectoryServiceBean() ).setEnabled(
enableLdap );
setEnabled( ldapPortText, enableLdap );
}
};
/**
* The Ldap port modify listener
*/
private ModifyListener ldapPortTextListener = new ModifyListener()
{
public void modifyText( ModifyEvent e )
{
try
{
int port = Integer.parseInt( ldapPortText.getText() );
LdapLdapsServersPage.getLdapServerTransportBean( getDirectoryServiceBean() ).setSystemPort( port );
}
catch ( NumberFormatException nfe )
{
System.out.println( "Wrong LDAP TCP Port : it must be an integer" );
}
}
};
/**
* The LDAPS transport checkbox selection adapter
*/
private SelectionAdapter enableLdapsCheckboxListener = new SelectionAdapter()
{
public void widgetSelected( SelectionEvent e )
{
boolean enableLdaps = enableLdapsCheckbox.getSelection();
LdapLdapsServersPage.getLdapTransportBean( getDirectoryServiceBean(), LdapLdapsServersPage.TRANSPORT_ID_LDAPS ).setEnabled(
enableLdaps );
setEnabled( ldapsPortText, enableLdaps );
}
};
/**
* The Ldaps port modify listener
*/
private ModifyListener ldapsPortTextListener = new ModifyListener()
{
public void modifyText( ModifyEvent e )
{
try
{
int port = Integer.parseInt( ldapsPortText.getText() );
LdapLdapsServersPage.getLdapsServerTransportBean( getDirectoryServiceBean() ).setSystemPort( port );
}
catch ( NumberFormatException nfe )
{
System.out.println( "Wrong LDAPS TCP Port : it must be an integer" );
}
}
};
/**
* The advanced LDAP/LDAPS configuration hyper link adapter
*/
private HyperlinkAdapter openLdapConfigurationLinkListener = new HyperlinkAdapter()
{
public void linkActivated( HyperlinkEvent e )
{
getServerConfigurationEditor().showPage( LdapLdapsServersPage.class );
}
};
/**
* The Kerberos server selection adpater
*/
private SelectionAdapter enableKerberosCheckboxListener = new SelectionAdapter()
{
public void widgetSelected( SelectionEvent e )
{
boolean enableKerberos = enableKerberosCheckbox.getSelection();
KerberosServerPage.enableKerberosServer( getDirectoryServiceBean(), enableKerberos );
setEnabled( kerberosPortText, enableKerberos );
}
};
/**
* The Kerberos port listener
*/
private ModifyListener kerberosPortTextListener = new ModifyListener()
{
public void modifyText( ModifyEvent e )
{
KerberosServerPage.setKerberosPort( getDirectoryServiceBean(), kerberosPortText.getText() );
}
};
/**
* The ChangePassword server selection adapter
*/
private SelectionAdapter enableChangePasswordCheckboxListener = new SelectionAdapter()
{
public void widgetSelected( SelectionEvent e )
{
ChangePasswordServerBean changePasswordServerBean = getDirectoryServiceBean().getChangePasswordServerBean();
boolean enableChangePassword = enableChangePasswordCheckbox.getSelection();
changePasswordServerBean.setEnabled( enableChangePassword );
setEnabled( changePasswordPortText, enableChangePassword );
}
};
/**
* The ChangePassword server port listener
*/
private ModifyListener changePasswordPortTextListener = new ModifyListener()
{
public void modifyText( ModifyEvent e )
{
KerberosServerPage.setChangePasswordPort( getDirectoryServiceBean(), changePasswordPortText.getText() );
}
};
/**
* The advanced Kerberos configuration hyperlink
*/
private HyperlinkAdapter openKerberosConfigurationLinkListener = new HyperlinkAdapter()
{
public void linkActivated( HyperlinkEvent e )
{
getServerConfigurationEditor().showPage( KerberosServerPage.class );
}
};
/**
* The advanced Partition configuration hyperlink
*/
private HyperlinkAdapter openPartitionsConfigurationLinkListener = new HyperlinkAdapter()
{
public void linkActivated( HyperlinkEvent e )
{
getServerConfigurationEditor().showPage( PartitionsPage.class );
}
};
/**
* The AllowAnonymousAccess checkbox listener
*/
private SelectionAdapter allowAnonymousAccessCheckboxListener = new SelectionAdapter()
{
public void widgetSelected( SelectionEvent e )
{
getDirectoryServiceBean().setDsAllowAnonymousAccess( allowAnonymousAccessCheckbox.getSelection() );
}
};
/**
* The AccessControl checkbox listener
*/
private SelectionAdapter enableAccessControlCheckboxListener = new SelectionAdapter()
{
public void widgetSelected( SelectionEvent e )
{
getDirectoryServiceBean().setDsAccessControlEnabled( enableAccessControlCheckbox.getSelection() );
}
};
/**
* The HiddenPassword checkbox listener
*/
private SelectionAdapter enableHiddenPasswordCheckboxListener = new SelectionAdapter()
{
public void widgetSelected( SelectionEvent e )
{
getDirectoryServiceBean().setDsPasswordHidden( enableHiddenPasswordCheckbox.getSelection() );
}
};
/**
* Creates a new instance of GeneralPage.
*
* @param editor the associated editor
*/
public OverviewPage( ServerConfigurationEditor editor )
{
super( editor, ID, TITLE );
}
/**
* Creates the global Overview Tab. It contains 2 columns, each one of
* them having two sections :
*
* <pre>
* +-----------------------------------+---------------------------------+
* | | |
* | LDAP/LDAPS configuration section | Kerberos/ChangePassword section |
* | | |
* +-----------------------------------+---------------------------------+
* | | |
* | Partition section | Options configuration section |
* | | |
* +-----------------------------------+---------------------------------+
* </pre>
*
* @param parent the parent element
* @param toolkit the form toolkit
*/
protected void createFormContent( Composite parent, FormToolkit toolkit )
{
TableWrapLayout twl = new TableWrapLayout();
twl.numColumns = 2;
parent.setLayout( twl );
// Left Composite
Composite leftComposite = toolkit.createComposite( parent );
leftComposite.setLayout( new GridLayout() );
TableWrapData leftCompositeTableWrapData = new TableWrapData( TableWrapData.FILL, TableWrapData.TOP );
leftCompositeTableWrapData.grabHorizontal = true;
leftComposite.setLayoutData( leftCompositeTableWrapData );
// Right Composite
Composite rightComposite = toolkit.createComposite( parent );
rightComposite.setLayout( new GridLayout() );
TableWrapData rightCompositeTableWrapData = new TableWrapData( TableWrapData.FILL, TableWrapData.TOP );
rightCompositeTableWrapData.grabHorizontal = true;
rightComposite.setLayoutData( rightCompositeTableWrapData );
// Creating the sections
createLdapLdapsServersSection( toolkit, leftComposite );
createPartitionsSection( toolkit, leftComposite );
createKerberosChangePasswordServersSection( toolkit, rightComposite );
createOptionsSection( toolkit, rightComposite );
// Refreshing the UI
refreshUI();
}
/**
* Creates the LDAP and LDAPS Servers section. This section is a grid with 4 columns,
* where we configure LDAPa and LDAPS servers.
* We can enable or disable those servers, and if they are enabled, we can configure
* the port.
*
* <pre>
* .--------------------------------.
* | LDAP/LDAPS Transport |
* +--------------------------------|
* | [X] Enabled LDAP server |
* | Port : [/////////] |
* | [X] Enabled LDAPS server |
* | Port : [/////////] |
* | <advanced LDAP/LDAPS config> |
* +--------------------------------|
* </pre>
*
* @param toolkit the toolkit
* @param parent the parent composite
*/
private void createLdapLdapsServersSection( FormToolkit toolkit, Composite parent )
{
// Creation of the section
int nbColumns = 4;
Composite composite = createSection( toolkit, parent, "OverviewPage.LdapLdapsServers", nbColumns, Section.TITLE_BAR );
// Enable LDAP Server Checkbox
enableLdapCheckbox = toolkit.createButton( composite,
Messages.getString( "OverviewPage.EnableLdapServer" ), SWT.CHECK ); //$NON-NLS-1$
enableLdapCheckbox.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, nbColumns, 1 ) );
// LDAP Server Port Text
toolkit.createLabel( composite, TABULATION );
toolkit.createLabel( composite, Messages.getString( "OverviewPage.Port" ) ); //$NON-NLS-1$
ldapPortText = createPortText( toolkit, composite );
createDefaultValueLabel( toolkit, composite, Integer.toString( DEFAULT_PORT_LDAP ) ); //$NON-NLS-1$
// Enable LDAPS Server Checkbox
enableLdapsCheckbox = toolkit.createButton( composite,
Messages.getString( "OverviewPage.EnableLdapsServer" ), SWT.CHECK ); //$NON-NLS-1$
enableLdapsCheckbox.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, nbColumns, 1 ) );
// LDAPS Server Port Text
toolkit.createLabel( composite, TABULATION );
toolkit.createLabel( composite, Messages.getString( "OverviewPage.Port" ) ); //$NON-NLS-1$
ldapsPortText = createPortText( toolkit, composite );
createDefaultValueLabel( toolkit, composite, Integer.toString( DEFAULT_PORT_LDAPS ) ); //$NON-NLS-1$
// LDAP Configuration Link
openLdapConfigurationLink = toolkit.createHyperlink( composite,
Messages.getString( "OverviewPage.AdvancedLdapLdapsConfiguration" ), SWT.NONE ); //$NON-NLS-1$
openLdapConfigurationLink.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, nbColumns, 1 ) );
openLdapConfigurationLink.addHyperlinkListener( openLdapConfigurationLinkListener );
}
/**
* Creates the Kerberos and Change Password Servers section. As for the LDAP/LDAPS
* server, we can configure the Kerberos and ChangePassword ports if they are enabled.
* <pre>
* +--------------------------------+
* | Kerberos Server |
* +--------------------------------+
* | [X] Enable Kerberos Server |
* | Port : [/////] |
* | [X] Enable Kerberos ChangePwd |
* | Port : [/////] |
* | <advanced Kerberos config> |
* +--------------------------------+
* </pre>
*
* @param toolkit the toolkit
* @param parent the parent composite
*/
private void createKerberosChangePasswordServersSection( FormToolkit toolkit, Composite parent )
{
// Creation of the section
int nbColumns = 4;
Composite composite = createSection( toolkit, parent, "OverviewPage.KerberosServer", nbColumns, Section.TITLE_BAR );
// Enable Kerberos Server Checkbox
enableKerberosCheckbox = toolkit.createButton( composite,
Messages.getString( "OverviewPage.EnableKerberosServer" ), SWT.CHECK ); //$NON-NLS-1$
enableKerberosCheckbox
.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, nbColumns, 1 ) );
// Kerberos Server Port Text
toolkit.createLabel( composite, TABULATION );
toolkit.createLabel( composite, Messages.getString( "OverviewPage.Port" ) ); //$NON-NLS-1$
kerberosPortText = createPortText( toolkit, composite );
createDefaultValueLabel( toolkit, composite, Integer.toString( DEFAULT_PORT_KERBEROS ) ); //$NON-NLS-1$
// Enable Change Password Server Checkbox
enableChangePasswordCheckbox = toolkit.createButton( composite,
Messages.getString( "OverviewPage.EnableKerberosChangePasswordServer" ), //$NON-NLS-1$
SWT.CHECK );
enableChangePasswordCheckbox.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false,
nbColumns, 1 ) );
// Change Password Server Port Text
toolkit.createLabel( composite, TABULATION );
toolkit.createLabel( composite, Messages.getString( "OverviewPage.Port" ) ); //$NON-NLS-1$
changePasswordPortText = createPortText( toolkit, composite );
createDefaultValueLabel( toolkit, composite, Integer.toString( DEFAULT_PORT_CHANGE_PASSWORD ) ); //$NON-NLS-1$
// Kerberos Configuration Link
openKerberosConfigurationLink = toolkit.createHyperlink( composite,
Messages.getString( "OverviewPage.AdvancedKerberosConfiguration" ), SWT.NONE ); //$NON-NLS-1$
openKerberosConfigurationLink.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false,
nbColumns, 1 ) );
openKerberosConfigurationLink.addHyperlinkListener( openKerberosConfigurationLinkListener );
}
/**
* Creates the Partitions section. This is just an informative section,
* where we list the existing partitions.
*
* <pre>
* .--------------------------------.
* | Partitions |
* +--------------------------------|
* | +----------------------------+ |
* | | Partition 1 | |
* | | Partition 2 | |
* | | ... | |
* | +----------------------------+ |
* | <advanced partitionsS config> |
* +--------------------------------+
* </pre>
*
* @param toolkit the toolkit
* @param parent the parent composite
*/
private void createPartitionsSection( FormToolkit toolkit, Composite parent )
{
// Creation of the section
int nbColumns = 1;
Composite composite = createSection( toolkit, parent, "OverviewPage.Partitions", nbColumns, Section.TITLE_BAR );
// Partitions Label
partitionsLabel = toolkit.createLabel( composite, "" ); //$NON-NLS-1$
partitionsLabel.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) );
// Partitions Table Viewer
Table partitionsTable = toolkit.createTable( composite, SWT.NULL );
GridData gd = new GridData( SWT.FILL, SWT.NONE, true, false );
gd.heightHint = 45;
partitionsTable.setLayoutData( gd );
partitionsTableViewer = new TableViewer( partitionsTable );
partitionsTableViewer.setContentProvider( new ArrayContentProvider() );
partitionsTableViewer.setLabelProvider( PartitionsPage.PARTITIONS_LABEL_PROVIDER );
partitionsTableViewer.setComparator( PartitionsPage.PARTITIONS_COMPARATOR );
// Partitions Configuration Link
openPartitionsConfigurationLink = toolkit.createHyperlink( composite,
Messages.getString( "OverviewPage.AdvancedPartitionsConfiguration" ), SWT.NONE ); //$NON-NLS-1$
openPartitionsConfigurationLink.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, nbColumns, 1 ) );
openPartitionsConfigurationLink.addHyperlinkListener( openPartitionsConfigurationLinkListener );
}
/**
* Creates the Options section. This section expose a few critical options that are
* generally useful (allow anonymous, or enable control access atm).
*
* <pre>
* +--------------------------------+
* | Options |
* +--------------------------------+
* | [X] Allow anonymous access |
* | [X] Enable Access Control |
* | |
* +--------------------------------+
* </pre>
*
* @param toolkit the toolkit
* @param parent the parent composite
*/
private void createOptionsSection( FormToolkit toolkit, Composite parent )
{
// Creation of the section
int nbColumns = 1;
Composite composite = createSection( toolkit, parent, "OverviewPage.Options", nbColumns, Section.TITLE_BAR );
// Allow Anonymous Access Checkbox
allowAnonymousAccessCheckbox = toolkit.createButton( composite,
Messages.getString( "OverviewPage.AllowAnonymousAccess" ), SWT.CHECK ); //$NON-NLS-1$
allowAnonymousAccessCheckbox.setLayoutData( new GridData( SWT.NONE, SWT.NONE, true, false ) );
// Enable Access Control Checkbox
enableAccessControlCheckbox = toolkit.createButton( composite,
Messages.getString( "OverviewPage.EnableAccessControl" ), SWT.CHECK ); //$NON-NLS-1$
enableAccessControlCheckbox.setLayoutData( new GridData( SWT.NONE, SWT.NONE, true, false ) );
// Enable Hidden Password Checkbox
enableHiddenPasswordCheckbox = toolkit.createButton( composite,
Messages.getString( "OverviewPage.EnableHiddenPassword" ), SWT.CHECK ); //$NON-NLS-1$
enableHiddenPasswordCheckbox.setLayoutData( new GridData( SWT.NONE, SWT.NONE, true, false ) );
}
/**
* Adds listeners to UI Controls.
*/
private void addListeners()
{
// Enable LDAP Checkbox
addDirtyListener( enableLdapCheckbox );
addSelectionListener( enableLdapCheckbox, enableLdapCheckboxListener );
// LDAP Port Text
addDirtyListener( ldapPortText );
addModifyListener( ldapPortText, ldapPortTextListener );
// Enable LDAPS Checkbox
addDirtyListener( enableLdapsCheckbox );
addSelectionListener( enableLdapsCheckbox, enableLdapsCheckboxListener );
// LDAPS Port Text
addDirtyListener( ldapsPortText );
addModifyListener( ldapsPortText, ldapsPortTextListener );
// Enable Kerberos Checkbox
addDirtyListener( enableKerberosCheckbox );
addSelectionListener( enableKerberosCheckbox, enableKerberosCheckboxListener );
// Kerberos Port Text
addDirtyListener( kerberosPortText );
addModifyListener( kerberosPortText, kerberosPortTextListener );
// Enable Change Password Checkbox
addDirtyListener( enableChangePasswordCheckbox );
addSelectionListener( enableChangePasswordCheckbox, enableChangePasswordCheckboxListener );
// Change Password Port Text
addDirtyListener( changePasswordPortText );
addModifyListener( changePasswordPortText, changePasswordPortTextListener );
// Allow Anonymous Access Checkbox
addDirtyListener( allowAnonymousAccessCheckbox );
addSelectionListener( allowAnonymousAccessCheckbox, allowAnonymousAccessCheckboxListener );
// Enable Access Control Checkbox
addDirtyListener( enableAccessControlCheckbox );
addSelectionListener( enableAccessControlCheckbox, enableAccessControlCheckboxListener );
// Enable Hidden Password Checkbox
addDirtyListener( enableHiddenPasswordCheckbox );
addSelectionListener( enableHiddenPasswordCheckbox, enableHiddenPasswordCheckboxListener );
}
/**
* Removes listeners to UI Controls.
*/
private void removeListeners()
{
// Enable LDAP Checkbox
removeDirtyListener( enableLdapCheckbox );
removeSelectionListener( enableLdapCheckbox, enableLdapCheckboxListener );
// LDAP Port Text
removeDirtyListener( ldapPortText );
removeModifyListener( ldapPortText, ldapPortTextListener );
// Enable LDAPS Checkbox
removeDirtyListener( enableLdapsCheckbox );
removeSelectionListener( enableLdapsCheckbox, enableLdapsCheckboxListener );
// LDAPS Port Text
removeDirtyListener( ldapsPortText );
removeModifyListener( ldapsPortText, ldapsPortTextListener );
// Enable Kerberos Checkbox
removeDirtyListener( enableKerberosCheckbox );
removeSelectionListener( enableKerberosCheckbox, enableKerberosCheckboxListener );
// Kerberos Port Text
removeDirtyListener( kerberosPortText );
removeModifyListener( kerberosPortText, kerberosPortTextListener );
// Enable Change Password Checkbox
removeDirtyListener( enableChangePasswordCheckbox );
removeSelectionListener( enableChangePasswordCheckbox, enableChangePasswordCheckboxListener );
// Change Password Port Text
removeDirtyListener( changePasswordPortText );
removeModifyListener( changePasswordPortText, changePasswordPortTextListener );
// Allow Anonymous Access Checkbox
removeDirtyListener( allowAnonymousAccessCheckbox );
removeSelectionListener( allowAnonymousAccessCheckbox, allowAnonymousAccessCheckboxListener );
// Enable Access Control Checkbox
removeDirtyListener( enableAccessControlCheckbox );
removeSelectionListener( enableAccessControlCheckbox, enableAccessControlCheckboxListener );
// Enable Hidden Password Checkbox
removeDirtyListener( enableHiddenPasswordCheckbox );
removeSelectionListener( enableHiddenPasswordCheckbox, enableHiddenPasswordCheckboxListener );
}
/**
* {@inheritDoc}
*/
protected void refreshUI()
{
if ( isInitialized() )
{
removeListeners();
DirectoryServiceBean directoryServiceBean = getDirectoryServiceBean();
// LDAP Server
TransportBean ldapServerTransportBean = LdapLdapsServersPage
.getLdapServerTransportBean( directoryServiceBean );
setSelection( enableLdapCheckbox, ldapServerTransportBean.isEnabled() );
setEnabled( ldapPortText, enableLdapCheckbox.getSelection() );
setText( ldapPortText, Integer.toString( ldapServerTransportBean.getSystemPort() ) );
// LDAPS Server
TransportBean ldapsServerTransportBean = LdapLdapsServersPage
.getLdapsServerTransportBean( directoryServiceBean );
setSelection( enableLdapsCheckbox, ldapsServerTransportBean.isEnabled() );
setEnabled( ldapsPortText, enableLdapsCheckbox.getSelection() );
setText( ldapsPortText, Integer.toString( ldapsServerTransportBean.getSystemPort() ) );
// Kerberos Server
KdcServerBean kdcServerBean = KerberosServerPage.getKdcServerBean( directoryServiceBean );
setSelection( enableKerberosCheckbox, kdcServerBean.isEnabled() );
setEnabled( kerberosPortText, enableKerberosCheckbox.getSelection() );
setText( kerberosPortText, Integer.toString( kdcServerBean.getTransports()[0].getSystemPort() ) );
// Change Password Server
ChangePasswordServerBean changePasswordServerBean = KerberosServerPage
.getChangePasswordServerBean( directoryServiceBean );
setSelection( enableChangePasswordCheckbox, changePasswordServerBean.isEnabled() );
setEnabled( changePasswordPortText, enableChangePasswordCheckbox.getSelection() );
setText( changePasswordPortText,
Integer.toString( changePasswordServerBean.getTransports()[0].getSystemPort() ) );
// Partitions
List<PartitionBean> partitions = directoryServiceBean.getPartitions();
if ( partitions.size() == 1 )
{
partitionsLabel.setText( Messages.getString( "OverviewPage.ThereIsOnePartitionDefined" ) ); //$NON-NLS-1$
}
else
{
partitionsLabel.setText( NLS.bind(
Messages.getString( "OverviewPage.ThereAreXPartitionsDefined" ), partitions.size() ) ); //$NON-NLS-1$
}
partitionsTableViewer.setInput( partitions.toArray() );
// Options
allowAnonymousAccessCheckbox.setSelection( directoryServiceBean.isDsAllowAnonymousAccess() );
enableAccessControlCheckbox.setSelection( directoryServiceBean.isDsAccessControlEnabled() );
enableHiddenPasswordCheckbox.setSelection( directoryServiceBean.isDsPasswordHidden() );
addListeners();
}
}
}