You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pa...@apache.org on 2010/11/22 14:49:51 UTC
svn commit: r1037718 - in
/directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2:
editor/ jobs/
Author: pamarcelot
Date: Mon Nov 22 13:49:51 2010
New Revision: 1037718
URL: http://svn.apache.org/viewvc?rev=1037718&view=rev
Log:
Added listeners to all UI Controls to set the editor dirty when a value is edited in the UI.
Modified:
directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/KerberosServerPage.java
directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/LdapLdapsServersPage.java
directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/OverviewPage.java
directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditor.java
directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditorPage.java
directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/jobs/LoadConfigurationRunnable.java
Modified: directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/KerberosServerPage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/KerberosServerPage.java?rev=1037718&r1=1037717&r2=1037718&view=diff
==============================================================================
--- directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/KerberosServerPage.java (original)
+++ directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/KerberosServerPage.java Mon Nov 22 13:49:51 2010
@@ -51,7 +51,7 @@ public class KerberosServerPage extends
/** The Page Title */
private static final String TITLE = "Kerberos Server";
- // UI Fields
+ // UI Controls
private Button enableKerberosCheckbox;
private Text kerberosPortText;
private Button enableChangePasswordCheckbox;
@@ -109,6 +109,8 @@ public class KerberosServerPage extends
createTicketSettingsSection( toolkit, leftComposite );
initUI();
+
+ addListeners();
}
@@ -237,7 +239,6 @@ public class KerberosServerPage extends
maximumTicketLifetimeComposite.setLayout( new GridLayout( 2, false ) );
toolkit.createLabel( maximumTicketLifetimeComposite, "Maximum Ticket Lifetime:" );
maximumTicketLifetimeText = createIntegerText( toolkit, maximumTicketLifetimeComposite );
-
}
@@ -268,4 +269,29 @@ public class KerberosServerPage extends
maximumRenewableLifetimeText.setText( kdcServerBean.getKrbMaximumRenewableLifetime() + "" );
maximumTicketLifetimeText.setText( kdcServerBean.getKrbMaximumTicketLifetime() + "" );
}
+
+
+ /**
+ * Adds listeners to UI Controls.
+ */
+ private void addListeners()
+ {
+ addDirtyListener( enableKerberosCheckbox );
+ addDirtyListener( kerberosPortText );
+ addDirtyListener( enableChangePasswordCheckbox );
+ addDirtyListener( changePasswordPortText );
+ addDirtyListener( kdcPrincipalText );
+ addDirtyListener( primaryKdcRealmText );
+ addDirtyListener( kdcSearchBaseDnText );
+ addDirtyListener( encryptionTypesText );
+ addDirtyListener( allowClockSkewButton );
+ addDirtyListener( verifyBodyChecksumButton );
+ addDirtyListener( allowEmptyAddressesButton );
+ addDirtyListener( allowForwardableAddressesButton );
+ addDirtyListener( requirePreAuthenticationByEncryptedTimeStampButton );
+ addDirtyListener( allowPostdatedTicketsButtons );
+ addDirtyListener( allowRenewableTicketsButton );
+ addDirtyListener( maximumRenewableLifetimeText );
+ addDirtyListener( maximumTicketLifetimeText );
+ }
}
Modified: directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/LdapLdapsServersPage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/LdapLdapsServersPage.java?rev=1037718&r1=1037717&r2=1037718&view=diff
==============================================================================
--- directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/LdapLdapsServersPage.java (original)
+++ directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/LdapLdapsServersPage.java Mon Nov 22 13:49:51 2010
@@ -53,7 +53,7 @@ public class LdapLdapsServersPage extend
/** The Page Title */
private static final String TITLE = "LDAP/LDAPS Servers";
- // UI Fields
+ // UI Controls
private Button enableLdapCheckbox;
private Text ldapPortText;
private Button enableLdapsCheckbox;
@@ -66,10 +66,6 @@ public class LdapLdapsServersPage extend
private Button authMechGssapiCheckbox;
private Button authMechNtlmCheckbox;
private Button authMechGssSpnegoCheckbox;
- private CheckboxTableViewer supportedMechanismsTableViewer;
- private Button editSupportedMechanismButton;
- private Button selectAllSupportedMechanismsButton;
- private Button deselectAllSupportedMechanismsButton;
private Text saslHostText;
private Text saslPrincipalText;
private Text saslSearchBaseDnText;
@@ -115,6 +111,8 @@ public class LdapLdapsServersPage extend
createSaslSettingsSection( toolkit, rightComposite );
initUI();
+
+ addListeners();
}
@@ -327,4 +325,27 @@ public class LdapLdapsServersPage extend
saslPrincipalText.setText( ldapServerBean.getLdapServerSaslPrincipal() );
saslSearchBaseDnText.setText( ldapServerBean.getSearchBaseDn().toString() );
}
+
+
+ /**
+ * Adds listeners to UI Controls.
+ */
+ private void addListeners()
+ {
+ addDirtyListener( enableLdapCheckbox );
+ addDirtyListener( ldapPortText );
+ addDirtyListener( enableLdapsCheckbox );
+ addDirtyListener( ldapsPortText );
+ addDirtyListener( maxTimeLimitText );
+ addDirtyListener( maxSizeLimitText );
+ addDirtyListener( authMechSimpleCheckbox );
+ addDirtyListener( authMechCramMd5Checkbox );
+ addDirtyListener( authMechDigestMd5Checkbox );
+ addDirtyListener( authMechGssapiCheckbox );
+ addDirtyListener( authMechNtlmCheckbox );
+ addDirtyListener( authMechGssSpnegoCheckbox );
+ addDirtyListener( saslHostText );
+ addDirtyListener( saslPrincipalText );
+ addDirtyListener( saslSearchBaseDnText );
+ }
}
Modified: directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/OverviewPage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/OverviewPage.java?rev=1037718&r1=1037717&r2=1037718&view=diff
==============================================================================
--- directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/OverviewPage.java (original)
+++ directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/OverviewPage.java Mon Nov 22 13:49:51 2010
@@ -120,6 +120,8 @@ public class OverviewPage extends Server
createOptionsSection( toolkit, rightComposite );
initUI();
+
+ addListeners();
}
@@ -290,10 +292,18 @@ public class OverviewPage extends Server
/**
- * {@inheritDoc}
+ * Adds listeners to UI Controls.
*/
- public void setFocus()
+ private void addListeners()
{
- // Does Nothing
+ addDirtyListener( enableLdapCheckbox );
+ addDirtyListener( ldapPortText );
+ addDirtyListener( enableLdapsCheckbox );
+ addDirtyListener( ldapsPortText );
+ addDirtyListener( enableKerberosCheckbox );
+ addDirtyListener( kerberosPortText );
+ addDirtyListener( enableChangePasswordCheckbox );
+ addDirtyListener( allowAnonymousAccessCheckbox );
+ addDirtyListener( enableAccesControlCheckbox );
}
}
Modified: directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditor.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditor.java?rev=1037718&r1=1037717&r2=1037718&view=diff
==============================================================================
--- directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditor.java (original)
+++ directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditor.java Mon Nov 22 13:49:51 2010
@@ -21,8 +21,6 @@ package org.apache.directory.studio.apac
import org.apache.directory.server.config.beans.ConfigBean;
-import org.apache.directory.studio.apacheds.configuration.v2.ApacheDS2ConfigurationPlugin;
-import org.apache.directory.studio.apacheds.configuration.v2.ApacheDS2ConfigurationPluginConstants;
import org.apache.directory.studio.apacheds.configuration.v2.jobs.LoadConfigurationRunnable;
import org.apache.directory.studio.common.core.jobs.StudioJob;
import org.apache.directory.studio.common.core.jobs.StudioRunnableWithProgress;
@@ -46,9 +44,12 @@ import org.eclipse.ui.forms.editor.FormE
*/
public class ServerConfigurationEditor extends FormEditor
{
- /** The Page ID*/
+ /** The Editor ID */
public static final String ID = ServerConfigurationEditor.class.getName();
+ /** The flag indicating if the editor is dirty */
+ private boolean dirty = false;
+
/** The configuration bean */
private ConfigBean configBean;
@@ -61,9 +62,11 @@ public class ServerConfigurationEditor e
super.init( site, input );
setPartName( input.getName() );
+ System.out.println( ID );
// Creating and scheduling the job to delete the server
- StudioJob<StudioRunnableWithProgress> job = new StudioJob<StudioRunnableWithProgress>( new LoadConfigurationRunnable( this ) );
+ StudioJob<StudioRunnableWithProgress> job = new StudioJob<StudioRunnableWithProgress>(
+ new LoadConfigurationRunnable( this ) );
job.schedule();
}
@@ -76,14 +79,6 @@ public class ServerConfigurationEditor e
try
{
addPage( new LoadingPage( this ) );
- setPageImage( 0, ApacheDS2ConfigurationPlugin.getDefault().getImage(
- ApacheDS2ConfigurationPluginConstants.IMG_IMPORT ) );
-
- // addPage( new OverviewPage( this ) );
- // addPage( new LdapLdapsServersPage( this ) );
- // addPage( new KerberosServerPage( this ) );
- // addPage( new PartitionsPage( this ) );
- // addPage( new ReplicationPage( this ) );
}
catch ( PartInitException e )
{
@@ -119,6 +114,28 @@ public class ServerConfigurationEditor e
/**
+ * {@inheritDoc}
+ */
+ public boolean isDirty()
+ {
+ return dirty;
+ }
+
+
+ /**
+ * Sets the 'dirty' flag.
+ *
+ * @param dirty
+ * the 'dirty' flag
+ */
+ public void setDirty( boolean dirty )
+ {
+ this.dirty = dirty;
+ firePropertyChange( PROP_DIRTY );
+ }
+
+
+ /**
* Gets the configuration bean.
*
* @return
@@ -136,46 +153,53 @@ public class ServerConfigurationEditor e
* @param configBean
* the configuration bean
*/
- public void setConfigBean( ConfigBean configBean )
+ private void setConfigBean( ConfigBean configBean )
{
this.configBean = configBean;
}
/**
- * TODO configBeanLoaded.
+ * This method is called by the job responsible for loading the configuration.
*
* @param configBean
- * @throws PartInitException
+ * the loaded configuration bean
*/
- public void configBeanLoaded( ConfigBean configBean ) throws PartInitException
+ public void configBeanLoaded( ConfigBean configBean )
{
setConfigBean( configBean );
-
+
hideLoadingPageAndDisplayConfigPages();
}
/**
- * TODO hideLoadingPageAndDisplayConfigPages.
- *
- * @throws PartInitException
+ * Hides the loading page and displays the standard configuration pages.
*/
- private void hideLoadingPageAndDisplayConfigPages() throws PartInitException
+ private void hideLoadingPageAndDisplayConfigPages()
{
// Removing the loading page
removePage( 0 );
-
+
// Adding the configuration pages
- addPage( new OverviewPage( this ) );
- addPage( new LdapLdapsServersPage( this ) );
- addPage( new KerberosServerPage( this ) );
- addPage( new PartitionsPage( this ) );
- addPage( new ReplicationPage( this ) );
-
+ try
+ {
+ addPage( new OverviewPage( this ) );
+ addPage( new LdapLdapsServersPage( this ) );
+ addPage( new KerberosServerPage( this ) );
+ addPage( new PartitionsPage( this ) );
+ addPage( new ReplicationPage( this ) );
+ }
+ catch ( PartInitException e )
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
// Activating the first page
setActivePage( 0 );
}
+
}
/**
Modified: directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditorPage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditorPage.java?rev=1037718&r1=1037717&r2=1037718&view=diff
==============================================================================
--- directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditorPage.java (original)
+++ directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditorPage.java Mon Nov 22 13:49:51 2010
@@ -28,11 +28,17 @@ import org.eclipse.jface.action.IToolBar
import org.eclipse.jface.action.Separator;
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.events.SelectionListener;
import org.eclipse.swt.events.VerifyEvent;
import org.eclipse.swt.events.VerifyListener;
import org.eclipse.swt.graphics.Color;
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.Text;
@@ -53,6 +59,22 @@ public abstract class ServerConfiguratio
protected static final Color GRAY_COLOR = new Color( null, 120, 120, 120 );
protected static final String TABULATION = " ";
+ private ModifyListener dirtyModifyListener = new ModifyListener()
+ {
+ public void modifyText( ModifyEvent e )
+ {
+ setEditorDirty();
+ }
+ };
+
+ private SelectionListener dirtySelectionListener = new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent e )
+ {
+ setEditorDirty();
+ }
+ };
+
/**
* Creates a new instance of GeneralPage.
@@ -67,17 +89,51 @@ public abstract class ServerConfiguratio
/**
- * TODO getConfigBean.
+ * Gets the ServerConfigurationEditor object associated with the page.
*
* @return
+ * the ServerConfigurationEditor object associated with the page
*/
- public ConfigBean getConfigBean()
+ public ServerConfigurationEditor getServerConfigurationEditor()
{
FormEditor editor = getEditor();
if ( editor instanceof ServerConfigurationEditor )
{
- return ( ( ServerConfigurationEditor ) editor ).getConfigBean();
+ return ( ServerConfigurationEditor ) editor;
+ }
+
+ return null;
+ }
+
+
+ /**
+ * Sets the associated editor dirty.
+ */
+ private void setEditorDirty()
+ {
+ ServerConfigurationEditor editor = getServerConfigurationEditor();
+
+ if ( editor != null )
+ {
+ editor.setDirty( true );
+ }
+ }
+
+
+ /**
+ * Gets the configuration bean associated with the editor.
+ *
+ * @return
+ * the configuration bean associated with the editor
+ */
+ public ConfigBean getConfigBean()
+ {
+ ServerConfigurationEditor editor = getServerConfigurationEditor();
+
+ if ( editor != null )
+ {
+ return editor.getConfigBean();
}
return null;
@@ -173,6 +229,14 @@ public abstract class ServerConfiguratio
}
+ /**
+ * TODO createDefaultValueLabel.
+ *
+ * @param toolkit
+ * @param parent
+ * @param text
+ * @return
+ */
protected Label createDefaultValueLabel( FormToolkit toolkit, Composite parent, String text )
{
Label label = toolkit.createLabel( parent, NLS.bind( "(Default: {0})", text ) );
@@ -180,4 +244,16 @@ public abstract class ServerConfiguratio
return label;
}
+
+
+ public void addDirtyListener( Text text )
+ {
+ text.addModifyListener( dirtyModifyListener );
+ }
+
+
+ public void addDirtyListener( Button button )
+ {
+ button.addSelectionListener( dirtySelectionListener );
+ }
}
Modified: directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/jobs/LoadConfigurationRunnable.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/jobs/LoadConfigurationRunnable.java?rev=1037718&r1=1037717&r2=1037718&view=diff
==============================================================================
--- directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/jobs/LoadConfigurationRunnable.java (original)
+++ directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/jobs/LoadConfigurationRunnable.java Mon Nov 22 13:49:51 2010
@@ -38,7 +38,6 @@ import org.apache.directory.studio.commo
import org.apache.directory.studio.common.core.jobs.StudioRunnableWithProgress;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PartInitException;
/**
@@ -49,7 +48,7 @@ import org.eclipse.ui.PartInitException;
public class LoadConfigurationRunnable implements StudioRunnableWithProgress
{
private ServerConfigurationEditor editor;
-
+
private ConfigBean configBean;
@@ -71,7 +70,7 @@ public class LoadConfigurationRunnable i
*/
public String getErrorMessage()
{
- return "Unable to load the configuration";
+ return "Unable to load the configuration.";
}
@@ -101,22 +100,14 @@ public class LoadConfigurationRunnable i
try
{
initConfigBean();
-
+
Display.getDefault().asyncExec( new Runnable()
{
public void run()
{
- try
- {
- editor.configBeanLoaded( configBean );
- }
- catch ( PartInitException e )
- {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
+ editor.configBeanLoaded( configBean );
}
- });
+ } );
}
catch ( Exception e )
{
@@ -124,7 +115,7 @@ public class LoadConfigurationRunnable i
monitor.reportError( e );
}
}
-
+
private void initConfigBean() throws Exception
{