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 2007/07/04 15:05:20 UTC
svn commit: r553196 [1/5] - in
/directory/studio/trunk/studio-apacheds-schemaeditor: ./ META-INF/
src/main/java/org/apache/directory/studio/apacheds/schemaeditor/
src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/
src/main/java...
Author: pamarcelot
Date: Wed Jul 4 06:05:16 2007
New Revision: 553196
URL: http://svn.apache.org/viewvc?view=rev&rev=553196
Log:
Added the AttributeTypeEditor, ObjectClassEditor and SchemaEditor (some small refactorings are still needed).
Added:
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/ViewUtils.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/NonExistingAttributeType.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/NonExistingMatchingRule.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/NonExistingObjectClass.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/NonExistingSyntax.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEMatchingRulesComboComparator.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEMatchingRulesComboContentProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEMatchingRulesComboInput.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEMatchingRulesComboLabelProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATESuperiorComboContentProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATESuperiorComboInput.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATESuperiorComboLabelProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATESyntaxComboContentProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATESyntaxComboInput.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATESyntaxComboLabelProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEUsedByMandatoryTableContentProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEUsedByOptionalTableContentProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEUsedByTablesLabelProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/AttributeTypeEditor.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/AttributeTypeEditorInput.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/AttributeTypeEditorOverviewPage.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/AttributeTypeEditorSourceCodePage.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/AttributeTypeEditorUsedByPage.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/objectclass/
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/objectclass/ObjectClassEditor.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/objectclass/ObjectClassEditorAttributesTableContentProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/objectclass/ObjectClassEditorAttributesTableLabelProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/objectclass/ObjectClassEditorInput.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/objectclass/ObjectClassEditorOverviewPage.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/objectclass/ObjectClassEditorSourceCodePage.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/objectclass/ObjectClassEditorSuperiorsTableContentProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/objectclass/ObjectClassEditorSuperiorsTableLabelProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/schema/
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/schema/SchemaEditor.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/schema/SchemaEditorInput.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/schema/SchemaEditorOverviewPage.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/schema/SchemaEditorSourceCodePage.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/SchemaCodeScanner.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/SchemaSourceViewer.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/SchemaSourceViewerConfiguration.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/SchemaTextAttributeProvider.java
Modified:
directory/studio/trunk/studio-apacheds-schemaeditor/.classpath
directory/studio/trunk/studio-apacheds-schemaeditor/META-INF/MANIFEST.MF
directory/studio/trunk/studio-apacheds-schemaeditor/build.properties
directory/studio/trunk/studio-apacheds-schemaeditor/ivy.xml
directory/studio/trunk/studio-apacheds-schemaeditor/plugin.xml
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/Activator.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/PluginUtils.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/SchemaHandler.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/SchemaViewController.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/dialogs/EditAliasesDialog.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/wrappers/AttributeTypeWrapper.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/wrappers/ObjectClassWrapper.java
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/.classpath
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/.classpath?view=diff&rev=553196&r1=553195&r2=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/.classpath (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/.classpath Wed Jul 4 06:05:16 2007
@@ -5,5 +5,6 @@
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="lib" path="lib/junit-3.8.2.jar"/>
+ <classpathentry kind="lib" path="lib/apacheds-core-plugin-1.5.0-SNAPSHOT.jar"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/META-INF/MANIFEST.MF?view=diff&rev=553196&r1=553195&r2=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/META-INF/MANIFEST.MF (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/META-INF/MANIFEST.MF Wed Jul 4 06:05:16 2007
@@ -8,6 +8,9 @@
Bundle-Localization: plugin
Require-Bundle: org.eclipse.ui,
org.apache.directory.studio.jars,
- org.eclipse.core.runtime
+ org.eclipse.core.runtime,
+ org.eclipse.ui.forms,
+ org.eclipse.jface.text
Eclipse-LazyStart: true
-Bundle-ClassPath: .
+Bundle-ClassPath: .,
+ lib/apacheds-core-plugin-1.5.0-SNAPSHOT.jar
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/build.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/build.properties?view=diff&rev=553196&r1=553195&r2=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/build.properties (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/build.properties Wed Jul 4 06:05:16 2007
@@ -6,4 +6,5 @@
META-INF/,\
.,\
resources/,\
- lib/
+ lib/,\
+ lib/apacheds-core-plugin-1.5.0-SNAPSHOT.jar
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/ivy.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/ivy.xml?view=diff&rev=553196&r1=553195&r2=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/ivy.xml (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/ivy.xml Wed Jul 4 06:05:16 2007
@@ -20,5 +20,6 @@
<info organisation="org.apache.directory.studio" module="studio-apacheds-schemaeditor"/>
<dependencies>
<dependency org="junit" name="junit" rev="3.8.2"/>
+ <dependency org="org.apache.directory.server" name="apacheds-core-plugin" rev="1.5.0-SNAPSHOT"/>
</dependencies>
</ivy-module>
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/plugin.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/plugin.xml?view=diff&rev=553196&r1=553195&r2=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/plugin.xml (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/plugin.xml Wed Jul 4 06:05:16 2007
@@ -58,4 +58,25 @@
name="New Object Class"
project="false"/>
</extension>
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.apache.directory.studio.apacheds.schemaeditor.view.editors.objectclass.ObjectClassEditor"
+ default="false"
+ icon="resources/icons/object_class.gif"
+ id="org.apache.directory.studio.apacheds.schemaeditor.view.objectClassEditor"
+ name="Object Class Editor"/>
+ <editor
+ class="org.apache.directory.studio.apacheds.schemaeditor.view.editors.attributetype.AttributeTypeEditor"
+ default="false"
+ icon="resources/icons/attribute_type.gif"
+ id="org.apache.directory.studio.apacheds.schemaeditor.view.attributeTypeEditor"
+ name="Attribute Type Editor"/>
+ <editor
+ class="org.apache.directory.studio.apacheds.schemaeditor.view.editors.schema.SchemaEditor"
+ default="false"
+ icon="resources/icons/schema.gif"
+ id="org.apache.directory.studio.apacheds.schemaeditor.view.schemaformeditor"
+ name="Schema Editor"/>
+</extension>
</plugin>
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/Activator.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/Activator.java?view=diff&rev=553196&r1=553195&r2=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/Activator.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/Activator.java Wed Jul 4 06:05:16 2007
@@ -21,6 +21,9 @@
import org.apache.directory.studio.apacheds.schemaeditor.controller.SchemaHandler;
+import org.apache.directory.studio.apacheds.schemaeditor.view.widget.SchemaCodeScanner;
+import org.apache.directory.studio.apacheds.schemaeditor.view.widget.SchemaTextAttributeProvider;
+import org.eclipse.jface.text.rules.ITokenScanner;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
@@ -39,6 +42,12 @@
/** The shared instance */
private static Activator plugin;
+ /** the Schema Code Scanner */
+ private static ITokenScanner schemaCodeScanner;
+
+ /** The Schema Text Attribute Provider */
+ private static SchemaTextAttributeProvider schemaTextAttributeProvider;
+
/** The SchemaHandler */
private SchemaHandler schemaHandler;
@@ -60,7 +69,7 @@
public void start( BundleContext context ) throws Exception
{
super.start( context );
-
+
FakeLoader.loadSchemas();
}
@@ -96,5 +105,39 @@
public SchemaHandler getSchemaHandler()
{
return schemaHandler;
+ }
+
+
+ /**
+ * Returns the Schema Code Scanner.
+ *
+ * @return
+ * the Schema Code Scanner
+ */
+ public static ITokenScanner getSchemaCodeScanner()
+ {
+ if ( schemaCodeScanner == null )
+ {
+ schemaCodeScanner = new SchemaCodeScanner( getSchemaTextAttributeProvider() );
+ }
+
+ return schemaCodeScanner;
+ }
+
+
+ /**
+ * Returns the Schema Text Attribute Provider.
+ *
+ * @return
+ * the Schema Text Attribute Provider
+ */
+ private static SchemaTextAttributeProvider getSchemaTextAttributeProvider()
+ {
+ if ( schemaTextAttributeProvider == null )
+ {
+ schemaTextAttributeProvider = new SchemaTextAttributeProvider();
+ }
+
+ return schemaTextAttributeProvider;
}
}
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/PluginUtils.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/PluginUtils.java?view=diff&rev=553196&r1=553195&r2=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/PluginUtils.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/PluginUtils.java Wed Jul 4 06:05:16 2007
@@ -20,6 +20,12 @@
package org.apache.directory.studio.apacheds.schemaeditor;
+import org.apache.directory.shared.ldap.schema.ObjectClassTypeEnum;
+import org.apache.directory.shared.ldap.schema.UsageEnum;
+import org.apache.directory.studio.apacheds.schemaeditor.model.AttributeTypeImpl;
+import org.apache.directory.studio.apacheds.schemaeditor.model.ObjectClassImpl;
+
+
/**
* This class contains helper methods.
*
@@ -40,5 +46,311 @@
public static boolean verifyName( String name )
{
return name.matches( "[a-zA-Z]+[a-zA-Z0-9;-]*" ); //$NON-NLS-1$
+ }
+
+
+ /**
+ * Returns a clone of the given attribute type.
+ *
+ * @param at
+ * the attribute type to clone
+ * @return
+ * a clone of the given attribute type
+ */
+ public static AttributeTypeImpl getClone( AttributeTypeImpl at )
+ {
+ AttributeTypeImpl clone = new AttributeTypeImpl( at.getOid() );
+ clone.setNames( at.getNames() );
+ clone.setSchema( at.getSchema() );
+ clone.setDescription( at.getDescription() );
+ clone.setSuperiorName( at.getSubstrName() );
+ clone.setUsage( clone.getUsage() );
+ clone.setSyntaxOid( at.getSyntaxOid() );
+ clone.setLength( at.getLength() );
+ clone.setObsolete( at.isObsolete() );
+ clone.setSingleValue( at.isSingleValue() );
+ clone.setCollective( at.isCollective() );
+ clone.setCanUserModify( clone.isCanUserModify() );
+ clone.setEqualityName( at.getEqualityName() );
+ clone.setOrderingName( at.getOrderingName() );
+ clone.setSubstrName( at.getSubstrName() );
+
+ return clone;
+ }
+
+
+ /**
+ * Returns a clone of the given object class.
+ *
+ * @param oc
+ * the object class to clone
+ * @return
+ * a clone of the given object class
+ */
+ public static ObjectClassImpl getClone( ObjectClassImpl oc )
+ {
+ ObjectClassImpl clone = new ObjectClassImpl( oc.getOid() );
+ clone.setNames( oc.getNames() );
+ clone.setSchema( oc.getSchema() );
+ clone.setDescription( oc.getDescription() );
+ clone.setSuperClassesNames( oc.getSuperClassesNames() );
+ clone.setType( oc.getType() );
+ clone.setObsolete( oc.isObsolete() );
+ clone.setMustNamesList( oc.getMustNamesList() );
+ clone.setMayNamesList( oc.getMayNamesList() );
+
+ return clone;
+ }
+
+
+ /**
+ * Converts the given attribute type to its source code representation
+ * in OpenLDAP Schema file format.
+ *
+ * @param at
+ * the attribute type to convert
+ * @return
+ * the corresponding source code representation
+ */
+ public static String toSourceCode( AttributeTypeImpl at )
+ {
+ StringBuffer sb = new StringBuffer();
+
+ // Opening the definition and OID
+ sb.append( "attributetype ( " + at.getOid() + " \n" ); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // NAME(S)
+ String[] names = at.getNames();
+ sb.append( "\tNAME " ); //$NON-NLS-1$
+ if ( names.length > 1 )
+ {
+ sb.append( "( " ); //$NON-NLS-1$
+ for ( String name : names )
+ {
+ sb.append( "'" + name + "' " ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ sb.append( ") \n" ); //$NON-NLS-1$
+ }
+ else
+ {
+ sb.append( "'" + names[0] + "' \n" ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ // DESC
+ if ( ( at.getDescription() != null ) && ( !at.getDescription().equals( "" ) ) ) //$NON-NLS-1$
+ {
+ sb.append( "\tDESC '" + at.getDescription() + "' \n" ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ // OBSOLETE
+ if ( at.isObsolete() )
+ {
+ sb.append( "\tOBSOLETE \n" ); //$NON-NLS-1$
+ }
+
+ // SUP
+ if ( ( at.getSuperiorName() != null ) && ( !at.getSuperiorName().equals( "" ) ) ) //$NON-NLS-1$
+ {
+ sb.append( "\tSUP " + at.getSuperiorName() + " \n" ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ // EQUALITY
+ if ( ( at.getEqualityName() != null ) && ( !at.getEqualityName().equals( "" ) ) ) //$NON-NLS-1$
+ {
+ sb.append( "\tEQUALITY " + at.getEqualityName() + " \n" ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ // ORDERING
+ if ( ( at.getOrderingName() != null ) && ( !at.getOrderingName().equals( "" ) ) ) //$NON-NLS-1$
+ {
+ sb.append( "\tORDERING " + at.getOrderingName() + " \n" ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ // SUBSTR
+ if ( ( at.getSubstrName() != null ) && ( !at.getSubstrName().equals( "" ) ) ) //$NON-NLS-1$
+ {
+ sb.append( "\tSUBSTR " + at.getSubstrName() + " \n" ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ // SYNTAX
+ if ( ( at.getSyntaxOid() != null ) && ( !at.getSyntaxOid().equals( "" ) ) ) //$NON-NLS-1$
+ {
+ sb.append( "\tSYNTAX " + at.getSyntaxOid() ); //$NON-NLS-1$
+ if ( at.getLength() > 0 )
+ {
+ sb.append( "{" + at.getLength() + "}" ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ sb.append( " \n" ); //$NON-NLS-1$
+ }
+
+ // SINGLE-VALUE
+ if ( at.isSingleValue() )
+ {
+ sb.append( "\tSINGLE-VALUE \n" ); //$NON-NLS-1$
+ }
+
+ // COLLECTIVE
+ if ( at.isCollective() )
+ {
+ sb.append( "\tCOLLECTIVE \n" ); //$NON-NLS-1$
+ }
+
+ // NO-USER-MODIFICATION
+ if ( !at.isCanUserModify() )
+ {
+ sb.append( "\tNO-USER-MODIFICATION \n" ); //$NON-NLS-1$
+ }
+
+ // USAGE
+ UsageEnum usage = at.getUsage();
+ if ( usage != null )
+ {
+ if ( usage == UsageEnum.DIRECTORY_OPERATION )
+ {
+ sb.append( "\tUSAGE directoryOperation \n" ); //$NON-NLS-1$
+ }
+ else if ( usage == UsageEnum.DISTRIBUTED_OPERATION )
+ {
+ sb.append( "\tUSAGE distributedOperation \n" ); //$NON-NLS-1$
+ }
+ else if ( usage == UsageEnum.DSA_OPERATION )
+ {
+ sb.append( "\tUSAGE dSAOperation \n" ); //$NON-NLS-1$
+ }
+ else if ( usage == UsageEnum.USER_APPLICATIONS )
+ {
+ // There's nothing to write, this is the default option
+ }
+ }
+
+ // Closing the definition
+ sb.append( " )\n" ); //$NON-NLS-1$
+
+ return sb.toString();
+ }
+
+
+ /**
+ * Converts the given object class to its source code representation
+ * in OpenLDAP Schema file format.
+ *
+ * @param at
+ * the object class to convert
+ * @return
+ * the corresponding source code representation
+ */
+ public static String toSourceCode( ObjectClassImpl oc )
+ {
+ StringBuffer sb = new StringBuffer();
+
+ // Opening the definition and OID
+ sb.append( "objectclass ( " + oc.getOid() + " \n" ); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // NAME(S)
+ String[] names = oc.getNames();
+ sb.append( "\tNAME " ); //$NON-NLS-1$
+ if ( names.length > 1 )
+ {
+ sb.append( "( " ); //$NON-NLS-1$
+ for ( String name : names )
+ {
+ sb.append( "'" + name + "' " ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ sb.append( ") \n" ); //$NON-NLS-1$
+ }
+ else
+ {
+ sb.append( "'" + names[0] + "' \n" ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ // DESC
+ if ( ( oc.getDescription() != null ) && ( !oc.getDescription().equals( "" ) ) ) //$NON-NLS-1$
+ {
+ sb.append( "\tDESC '" + oc.getDescription() + "' \n" ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ // OBSOLETE
+ if ( oc.isObsolete() )
+ {
+ sb.append( "\tOBSOLETE \n" ); //$NON-NLS-1$
+ }
+
+ // SUP
+ String[] superiors = oc.getSuperClassesNames();
+ if ( ( superiors != null ) && ( superiors.length != 0 ) )
+ {
+ if ( superiors.length > 1 )
+ {
+ sb.append( "\tSUP (" + superiors[0] ); //$NON-NLS-1$
+ for ( int i = 1; i < superiors.length; i++ )
+ {
+ sb.append( " $ " + superiors[i] ); //$NON-NLS-1$
+ }
+ sb.append( ") \n" ); //$NON-NLS-1$
+ }
+ else
+ {
+ sb.append( "\tSUP " + superiors[0] + " \n" ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ // CLASSTYPE
+ ObjectClassTypeEnum classtype = oc.getType();
+ if ( classtype == ObjectClassTypeEnum.ABSTRACT )
+ {
+ sb.append( "\tABSTRACT \n" ); //$NON-NLS-1$
+ }
+ else if ( classtype == ObjectClassTypeEnum.AUXILIARY )
+ {
+ sb.append( "\tAUXILIARY \n" ); //$NON-NLS-1$
+ }
+ else if ( classtype == ObjectClassTypeEnum.STRUCTURAL )
+ {
+ sb.append( "\tSTRUCTURAL \n" ); //$NON-NLS-1$
+ }
+
+ // MUST
+ String[] must = oc.getMustNamesList();
+ if ( ( must != null ) && ( must.length != 0 ) )
+ {
+ sb.append( "\tMUST " ); //$NON-NLS-1$
+ if ( must.length > 1 )
+ {
+ sb.append( "( " + must[0] + " " ); //$NON-NLS-1$ //$NON-NLS-2$
+ for ( int i = 1; i < must.length; i++ )
+ {
+ sb.append( "$ " + must[i] + " " ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ sb.append( ") \n" ); //$NON-NLS-1$
+ }
+ else if ( must.length == 1 )
+ {
+ sb.append( must[0] + " \n" ); //$NON-NLS-1$
+ }
+ }
+
+ // MAY
+ String[] may = oc.getMayNamesList();
+ if ( ( may != null ) && ( may.length != 0 ) )
+ {
+ sb.append( "\tMAY " ); //$NON-NLS-1$
+ if ( may.length > 1 )
+ {
+ sb.append( "( " + may[0] + " " ); //$NON-NLS-1$ //$NON-NLS-2$
+ for ( int i = 1; i < may.length; i++ )
+ {
+ sb.append( "$ " + may[i] + " " ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ sb.append( ") \n" ); //$NON-NLS-1$
+ }
+ else if ( may.length == 1 )
+ {
+ sb.append( may[0] + " \n" ); //$NON-NLS-1$
+ }
+ }
+ // Closing the definition
+ sb.append( " )\n" ); //$NON-NLS-1$
+
+ return sb.toString();
}
}
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/SchemaHandler.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/SchemaHandler.java?view=diff&rev=553196&r1=553195&r2=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/SchemaHandler.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/SchemaHandler.java Wed Jul 4 06:05:16 2007
@@ -260,10 +260,8 @@
/**
- * Adds a SchemaListener to the given schema.
+ * Adds a SchemaHandlerListener.
*
- * @param schema
- * the schema
* @param listener
* the listener
*/
@@ -277,6 +275,18 @@
/**
+ * Removes a SchemaHandlerListener.
+ *
+ * @param listener
+ * the listener
+ */
+ public void removeListener( SchemaHandlerListener listener )
+ {
+ schemaHandlerListeners.remove( listener );
+ }
+
+
+ /**
* Adds a SchemaListener to the given schema.
*
* @param schema
@@ -294,7 +304,21 @@
/**
- * Adds a AttributeTypeListener to the given attribute type.
+ * Removes a SchemaListener to the given schema.
+ *
+ * @param schema
+ * the schema
+ * @param listener
+ * the listener
+ */
+ public void removeListener( Schema schema, SchemaListener listener )
+ {
+ schemaListeners.remove( schema, listener );
+ }
+
+
+ /**
+ * Adds an AttributeTypeListener to the given attribute type.
*
* @param at
* the attribute type
@@ -311,7 +335,21 @@
/**
- * Adds a AttributeTypeListener to the given object class.
+ * Removes an AttributeTypeListener to the given attribute type.
+ *
+ * @param at
+ * the attribute type
+ * @param listener
+ * the listener
+ */
+ public void removeListener( AttributeTypeImpl at, AttributeTypeListener listener )
+ {
+ attributeTypeListeners.remove( at, listener );
+ }
+
+
+ /**
+ * Adds an ObjectClassListener to the given object class.
*
* @param oc
* the object class
@@ -328,6 +366,20 @@
/**
+ * Removes an ObjectClassListener to the given object class.
+ *
+ * @param oc
+ * the object class
+ * @param listener
+ * the listener
+ */
+ public void removeListener( ObjectClassImpl oc, ObjectClassListener listener )
+ {
+ objectClassListeners.remove( oc, listener );
+ }
+
+
+ /**
* Adds a schema
*
* @param schema
@@ -882,21 +934,29 @@
/**
- * Verifies if the Alias is already taken by a schema object
+ * Verifies if the given alias or oid is already taken by a schema object
*
- * @param alias
- * the alias
+ * @param id
+ * the alias or oid
* @return
- * true if the the alias is already taken
+ * true if the the alias or oid is already taken
*/
- public boolean isAliasAlreadyTaken( String alias )
+ public boolean isAliasOrOidAlreadyTaken( String id )
{
- String lowerCasedAlias = alias.toLowerCase();
- if ( attributeTypesMap.containsKey( lowerCasedAlias ) )
+ String lowerCasedId = id.toLowerCase();
+ if ( attributeTypesMap.containsKey( lowerCasedId ) )
+ {
+ return true;
+ }
+ else if ( objectClassesMap.containsKey( lowerCasedId ) )
+ {
+ return true;
+ }
+ else if ( matchingRulesMap.containsKey( lowerCasedId ) )
{
return true;
}
- else if ( objectClassesMap.containsKey( lowerCasedAlias ) )
+ else if ( syntaxesMap.containsKey( lowerCasedId ) )
{
return true;
}
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/SchemaViewController.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/SchemaViewController.java?view=diff&rev=553196&r1=553195&r2=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/SchemaViewController.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/controller/SchemaViewController.java Wed Jul 4 06:05:16 2007
@@ -21,6 +21,10 @@
import org.apache.directory.studio.apacheds.schemaeditor.controller.actions.ConnectAction;
+import org.apache.directory.studio.apacheds.schemaeditor.view.editors.attributetype.AttributeTypeEditor;
+import org.apache.directory.studio.apacheds.schemaeditor.view.editors.attributetype.AttributeTypeEditorInput;
+import org.apache.directory.studio.apacheds.schemaeditor.view.editors.objectclass.ObjectClassEditor;
+import org.apache.directory.studio.apacheds.schemaeditor.view.editors.objectclass.ObjectClassEditorInput;
import org.apache.directory.studio.apacheds.schemaeditor.view.views.SchemaView;
import org.apache.directory.studio.apacheds.schemaeditor.view.wrappers.AttributeTypeWrapper;
import org.apache.directory.studio.apacheds.schemaeditor.view.wrappers.Folder;
@@ -34,6 +38,7 @@
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
@@ -47,7 +52,7 @@
{
/** The associated view */
private SchemaView view;
-
+
// The Actions
private Action connect;
@@ -61,12 +66,13 @@
public SchemaViewController( SchemaView view )
{
this.view = view;
-
+
initActions();
initToolbar();
initDoubleClickListener();
}
-
+
+
/**
* Initializes the Actions.
*/
@@ -74,7 +80,8 @@
{
connect = new ConnectAction( view );
}
-
+
+
/**
* Initializes the Toolbar.
*/
@@ -109,34 +116,34 @@
// Selecting the right editor and input
if ( objectSelection instanceof AttributeTypeWrapper )
{
-// input = new AttributeTypeEditorInput( ( ( AttributeTypeWrapper ) objectSelection )
-// .getMyAttributeType() );
-// editorId = AttributeTypeEditor.ID;
+ input = new AttributeTypeEditorInput( ( ( AttributeTypeWrapper ) objectSelection )
+ .getAttributeType() );
+ editorId = AttributeTypeEditor.ID;
}
else if ( objectSelection instanceof ObjectClassWrapper )
{
-// input = new ObjectClassEditorInput( ( ( ObjectClassWrapper ) objectSelection ).getMyObjectClass() );
-// editorId = ObjectClassEditor.ID;
+ input = new ObjectClassEditorInput( ( ( ObjectClassWrapper ) objectSelection ).getObjectClass() );
+ editorId = ObjectClassEditor.ID;
}
- else if ( ( objectSelection instanceof Folder )
- || ( objectSelection instanceof SchemaWrapper ) )
+ else if ( ( objectSelection instanceof Folder ) || ( objectSelection instanceof SchemaWrapper ) )
{
// Here we don't open an editor, we just expand the node.
viewer.setExpandedState( objectSelection, !viewer.getExpandedState( objectSelection ) );
}
// Let's open the editor
-// if ( input != null )
-// {
-// try
-// {
-// page.openEditor( input, editorId );
-// }
-// catch ( PartInitException e )
-// {
-//// logger.debug( "error when opening the editor" ); //$NON-NLS-1$
-// }
-// }
+ if ( input != null )
+ {
+ try
+ {
+ page.openEditor( input, editorId );
+ }
+ catch ( PartInitException e )
+ {
+// logger.debug( "error when opening the editor" ); //$NON-NLS-1$
+ e.printStackTrace();
+ }
+ }
}
} );
}
Added: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/ViewUtils.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/ViewUtils.java?view=auto&rev=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/ViewUtils.java (added)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/ViewUtils.java Wed Jul 4 06:05:16 2007
@@ -0,0 +1,177 @@
+/*
+ * 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.schemaeditor.view;
+
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.MessageBox;
+import org.eclipse.ui.PlatformUI;
+
+
+/**
+ * This Helper Class contains useful methods used to create the UI.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class ViewUtils
+{
+ /** The Black Color */
+ public static final Color COLOR_BLACK = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()
+ .getDisplay().getSystemColor( SWT.COLOR_BLACK );
+
+ /** The Red Color */
+ public static final Color COLOR_RED = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().getDisplay()
+ .getSystemColor( SWT.COLOR_RED );
+
+
+ /**
+ * Concatenates all aliases in a String format. Aliases are separated with a comma (',')
+ *
+ * @param aliases
+ * the aliases to concatenate
+ * @return
+ * a String representing all aliases
+ */
+ public static String concateAliases( String[] aliases )
+ {
+ StringBuffer sb = new StringBuffer();
+ if ( aliases.length > 0 )
+ {
+ sb.append( aliases[0] );
+ for ( int i = 1; i < aliases.length; i++ )
+ {
+ sb.append( ", " ); //$NON-NLS-1$
+ sb.append( aliases[i] );
+ }
+ }
+
+ return sb.toString();
+ }
+
+
+ /**
+ * Verifies that the given name is syntaxely correct according to the RFC 2252
+ * (Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions).
+ *
+ * @param name
+ * the name to test
+ * @return
+ * true if the name is correct, false if the name is not correct.
+ */
+ public static boolean verifyName( String name )
+ {
+ return name.matches( "[a-zA-Z]+[a-zA-Z0-9;-]*" ); //$NON-NLS-1$
+ }
+
+
+ /**
+ * Displays an Error Message Box with the given title and message.
+ *
+ * @param title
+ * the title of the window
+ * @param message
+ * the message to display
+ * @return
+ * the ID of the button that was selected to dismiss
+ * the message box (e.g. SWT.OK, SWT.CANCEL, etc...)
+ */
+ public static int displayErrorMessageBox( String title, String message )
+ {
+ return displayMessageBox( SWT.OK | SWT.ICON_ERROR, title, message );
+ }
+
+
+ /**
+ * Displays a Information Message Box with the given title and message.
+ *
+ * @param title
+ * the title of the window
+ * @param message
+ * the message to display
+ * @return
+ * the ID of the button that was selected to dismiss
+ * the message box (e.g. SWT.OK, SWT.CANCEL, etc...)
+ */
+ public static int displayWarningMessageBox( String title, String message )
+ {
+ return displayMessageBox( SWT.OK | SWT.ICON_WARNING, title, message );
+ }
+
+
+ /**
+ * Displays a Information Message Box with the given title and message.
+ *
+ * @param title
+ * the title of the window
+ * @param message
+ * the message to display
+ * @return
+ * the ID of the button that was selected to dismiss
+ * the message box (e.g. SWT.OK, SWT.CANCEL, etc...)
+ */
+ public static int displayInformationMessageBox( String title, String message )
+ {
+ return displayMessageBox( SWT.OK | SWT.ICON_INFORMATION, title, message );
+ }
+
+
+ /**
+ * Displays a Information Question Box with the given title and message.
+ *
+ * @param buttonStyle
+ * the style of the buttons of the dialog (e.g. SWT.OK, SWT.CANCEL, etc...)
+ * @param title
+ * the title of the window
+ * @param message
+ * the message to display
+ * @return
+ * the ID of the button that was selected to dismiss
+ * the message box (e.g. SWT.OK, SWT.CANCEL, etc...)
+ */
+ public static int displayQuestionMessageBox( int buttonStyle, String title, String message )
+ {
+ return displayMessageBox( SWT.ICON_QUESTION | buttonStyle, title, message );
+ }
+
+
+ /**
+ * Displays a Message Box with the given style, title and message.
+ *
+ * @param style
+ * the style of dialog
+ * @param title
+ * the title of the window
+ * @param message
+ * the message to display
+ * @return
+ * the ID of the button that was selected to dismiss
+ * the message box (e.g. SWT.OK, SWT.CANCEL, etc...)
+ */
+ private static int displayMessageBox( int style, String title, String message )
+ {
+ MessageBox messageBox = new MessageBox( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), style );
+ messageBox.setText( title );
+ messageBox.setMessage( message );
+ return messageBox.open();
+ }
+
+}
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/dialogs/EditAliasesDialog.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/dialogs/EditAliasesDialog.java?view=diff&rev=553196&r1=553195&r2=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/dialogs/EditAliasesDialog.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/dialogs/EditAliasesDialog.java Wed Jul 4 06:05:16 2007
@@ -241,7 +241,7 @@
String text = newAliasText.getText();
if ( ( !"".equals( text ) ) && ( !aliasesLowerCased.contains( text.toLowerCase() ) ) //$NON-NLS-1$
- && ( !Activator.getDefault().getSchemaHandler().isAliasAlreadyTaken( text ) ) )
+ && ( !Activator.getDefault().getSchemaHandler().isAliasOrOidAlreadyTaken( text ) ) )
{
addANewAlias();
}
@@ -267,7 +267,7 @@
errorLabel.setText( "This alias already exists in the list." );
newAliasAddButton.setEnabled( false );
}
- else if ( Activator.getDefault().getSchemaHandler().isAliasAlreadyTaken( text ) )
+ else if ( Activator.getDefault().getSchemaHandler().isAliasOrOidAlreadyTaken( text ) )
{
errorComposite.setVisible( true );
errorLabel.setText( "An element with the same alias already exists." );
Added: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/NonExistingAttributeType.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/NonExistingAttributeType.java?view=auto&rev=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/NonExistingAttributeType.java (added)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/NonExistingAttributeType.java Wed Jul 4 06:05:16 2007
@@ -0,0 +1,92 @@
+/*
+ * 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.schemaeditor.view.editors;
+
+
+/**
+ * This class implements the Non Existing Attribute Type.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class NonExistingAttributeType
+{
+ public static final String NONE = "(None)"; //$NON-NLS-1$
+
+ /** The name */
+ private String name;
+
+
+ /**
+ * Creates a new instance of NonExistingAttributeType.
+ *
+ * @param name
+ * the name the NonExistingAttributeType
+ */
+ public NonExistingAttributeType( String name )
+ {
+ this.name = name;
+ }
+
+
+ /**
+ * Gets the name of the NonExistingAttributeType.
+ *
+ * @return
+ * the name of the NonExistingAttributeType
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+
+ /**
+ * Gets the displayable name of the NonExistingAttributeType.
+ *
+ * @return
+ * the displayable name of the NonExistingAttributeType
+ */
+ public String getDisplayName()
+ {
+ if ( name.equals( NONE ) )
+ {
+ return NONE;
+ }
+ else
+ {
+ return name + " " + "(This attribute type doesnt exist)";
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ public boolean equals( Object obj )
+ {
+ if ( obj instanceof NonExistingAttributeType )
+ {
+ return name.equalsIgnoreCase( ( ( NonExistingAttributeType ) obj ).getName() );
+ }
+
+ return false;
+ }
+}
Added: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/NonExistingMatchingRule.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/NonExistingMatchingRule.java?view=auto&rev=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/NonExistingMatchingRule.java (added)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/NonExistingMatchingRule.java Wed Jul 4 06:05:16 2007
@@ -0,0 +1,93 @@
+/*
+ * 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.schemaeditor.view.editors;
+
+
+/**
+ * This class implements the Non Existing Matching Rule.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class NonExistingMatchingRule
+{
+ /** The None matching rule name */
+ public static final String NONE = "(None)";
+
+ /** The name */
+ private String name;
+
+
+ /**
+ * Creates a new instance of NonExistingMatchingRule.
+ *
+ * @param name
+ * the name the NonExistingMatchingRule
+ */
+ public NonExistingMatchingRule( String name )
+ {
+ this.name = name;
+ }
+
+
+ /**
+ * Gets the name of the NonExistingMatchingRule.
+ *
+ * @return
+ * the name of the NonExistingMatchingRule
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+
+ /**
+ * Gets the displayable name of the NonExistingMatchingRule.
+ *
+ * @return
+ * the displayable name of the NonExistingMatchingRule
+ */
+ public String getDisplayName()
+ {
+ if ( name.equals( NONE ) )
+ {
+ return NONE;
+ }
+ else
+ {
+ return name + " " + "(This matching rule doesnt exist)";
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ public boolean equals( Object obj )
+ {
+ if ( obj instanceof NonExistingMatchingRule )
+ {
+ return name.equalsIgnoreCase( ( ( NonExistingMatchingRule ) obj ).getName() );
+ }
+
+ return false;
+ }
+}
Added: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/NonExistingObjectClass.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/NonExistingObjectClass.java?view=auto&rev=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/NonExistingObjectClass.java (added)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/NonExistingObjectClass.java Wed Jul 4 06:05:16 2007
@@ -0,0 +1,92 @@
+/*
+ * 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.schemaeditor.view.editors;
+
+
+/**
+ * This class implements the Non Existing Object Class.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class NonExistingObjectClass
+{
+ public static final String NONE = "(None)"; //$NON-NLS-1$
+
+ /** The name */
+ private String name;
+
+
+ /**
+ * Creates a new instance of NonExistingObjectClass.
+ *
+ * @param name
+ * the name the NonExistingObjectClass
+ */
+ public NonExistingObjectClass( String name )
+ {
+ this.name = name;
+ }
+
+
+ /**
+ * Gets the name of the NonExistingObjectClass.
+ *
+ * @return
+ * the name of the NonExistingObjectClass
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+
+ /**
+ * Gets the displayable name of the NonExistingObjectClass.
+ *
+ * @return
+ * the displayable name of the NonExistingObjectClass
+ */
+ public String getDisplayName()
+ {
+ if ( name.equals( NONE ) )
+ {
+ return NONE;
+ }
+ else
+ {
+ return name + " " + "(This object class doesnt exist)";
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ public boolean equals( Object obj )
+ {
+ if ( obj instanceof NonExistingObjectClass )
+ {
+ return name.equalsIgnoreCase( ( ( NonExistingObjectClass ) obj ).getName() );
+ }
+
+ return false;
+ }
+}
Added: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/NonExistingSyntax.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/NonExistingSyntax.java?view=auto&rev=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/NonExistingSyntax.java (added)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/NonExistingSyntax.java Wed Jul 4 06:05:16 2007
@@ -0,0 +1,93 @@
+/*
+ * 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.schemaeditor.view.editors;
+
+
+/**
+ * This class implements the Non Existing Syntax.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class NonExistingSyntax
+{
+ /** The None syntax name */
+ public static final String NONE = "(None)"; //$NON-NLS-1$
+
+ /** The name */
+ private String name;
+
+
+ /**
+ * Creates a new instance of NonExistingSyntax.
+ *
+ * @param name
+ * the name the NonExistingSyntax
+ */
+ public NonExistingSyntax( String name )
+ {
+ this.name = name;
+ }
+
+
+ /**
+ * Gets the name of the NonExistingSyntax.
+ *
+ * @return
+ * the name of the NonExistingSyntax
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+
+ /**
+ * Gets the displayable name of the NonExistingSyntax.
+ *
+ * @return
+ * the displayable name of the NonExistingSyntax
+ */
+ public String getDisplayName()
+ {
+ if ( name.equals( NONE ) )
+ {
+ return NONE;
+ }
+ else
+ {
+ return name + " " + "(This syntax doesnt exist)";
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ public boolean equals( Object obj )
+ {
+ if ( obj instanceof NonExistingSyntax )
+ {
+ return name.equalsIgnoreCase( ( ( NonExistingSyntax ) obj ).getName() );
+ }
+
+ return false;
+ }
+}
Added: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEMatchingRulesComboComparator.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEMatchingRulesComboComparator.java?view=auto&rev=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEMatchingRulesComboComparator.java (added)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEMatchingRulesComboComparator.java Wed Jul 4 06:05:16 2007
@@ -0,0 +1,62 @@
+/*
+ * 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.schemaeditor.view.editors.attributetype;
+
+
+import java.util.Comparator;
+
+import org.apache.directory.studio.apacheds.schemaeditor.model.MatchingRuleImpl;
+import org.apache.directory.studio.apacheds.schemaeditor.view.editors.NonExistingMatchingRule;
+
+
+/**
+ * This class implements the Comparator used to compare elements in the Matching Rules Content Providers.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class ATEMatchingRulesComboComparator implements Comparator<Object>
+{
+ /* (non-Javadoc)
+ * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
+ */
+ public int compare( Object o1, Object o2 )
+ {
+ if ( o1 instanceof MatchingRuleImpl && o2 instanceof MatchingRuleImpl )
+ {
+ return ( ( MatchingRuleImpl ) o1 ).getName().compareToIgnoreCase( ( ( MatchingRuleImpl ) o2 ).getName() );
+ }
+ else if ( o1 instanceof MatchingRuleImpl && o2 instanceof NonExistingMatchingRule )
+ {
+ return ( ( MatchingRuleImpl ) o1 ).getName().compareToIgnoreCase( ( ( NonExistingMatchingRule ) o2 ).getName() );
+ }
+ else if ( o1 instanceof NonExistingMatchingRule && o2 instanceof MatchingRuleImpl )
+ {
+ return ( ( NonExistingMatchingRule ) o1 ).getName().compareToIgnoreCase( ( ( MatchingRuleImpl ) o2 ).getName() );
+ }
+ else if ( o1 instanceof NonExistingMatchingRule && o2 instanceof NonExistingMatchingRule )
+ {
+ return ( ( NonExistingMatchingRule ) o1 ).getName().compareToIgnoreCase(
+ ( ( NonExistingMatchingRule ) o2 ).getName() );
+ }
+
+ return 0;
+ }
+}
Added: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEMatchingRulesComboContentProvider.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEMatchingRulesComboContentProvider.java?view=auto&rev=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEMatchingRulesComboContentProvider.java (added)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEMatchingRulesComboContentProvider.java Wed Jul 4 06:05:16 2007
@@ -0,0 +1,92 @@
+/*
+ * 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.schemaeditor.view.editors.attributetype;
+
+
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.directory.studio.apacheds.schemaeditor.Activator;
+import org.apache.directory.studio.apacheds.schemaeditor.model.MatchingRuleImpl;
+import org.apache.directory.studio.apacheds.schemaeditor.view.editors.NonExistingMatchingRule;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+
+/**
+ * This class implements the Content Provider for the Equality Combo of the Attribute Type Editor.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class ATEMatchingRulesComboContentProvider implements IStructuredContentProvider
+{
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+ */
+ public Object[] getElements( Object inputElement )
+ {
+ if ( inputElement instanceof ATEMatchingRulesComboInput )
+ {
+ ATEMatchingRulesComboInput input = ( ATEMatchingRulesComboInput ) inputElement;
+
+ if ( input.getChildren().isEmpty() )
+ {
+ // Creating the '(None)' item
+ input.addChild( new NonExistingMatchingRule( NonExistingMatchingRule.NONE ) );
+
+ // Creating Children
+ List<MatchingRuleImpl> equalityMatchingRules = Activator.getDefault().getSchemaHandler()
+ .getMatchingRules();
+ for ( MatchingRuleImpl matchingRule : equalityMatchingRules )
+ {
+ input.addChild( matchingRule );
+ }
+ }
+
+ // Getting Children
+ List<Object> children = input.getChildren();
+
+ // Sorting Children
+ Collections.sort( children, new ATEMatchingRulesComboComparator() );
+
+ return children.toArray();
+ }
+
+ // Default
+ return new Object[0];
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+ */
+ public void dispose()
+ {
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public void inputChanged( Viewer viewer, Object oldInput, Object newInput )
+ {
+ }
+}
Added: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEMatchingRulesComboInput.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEMatchingRulesComboInput.java?view=auto&rev=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEMatchingRulesComboInput.java (added)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEMatchingRulesComboInput.java Wed Jul 4 06:05:16 2007
@@ -0,0 +1,71 @@
+/*
+ * 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.schemaeditor.view.editors.attributetype;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * This class implements the Input of the Matching Rules Combo of the Attribute Type Editor
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class ATEMatchingRulesComboInput
+{
+ /** The children */
+ private List<Object> children;
+
+
+ /**
+ * Adds a child.
+ *
+ * @param child
+ * the child to add
+ */
+ public void addChild( Object child )
+ {
+ if ( children == null )
+ {
+ children = new ArrayList<Object>();
+ }
+
+ children.add( child );
+ }
+
+
+ /**
+ * Gets the children.
+ *
+ * @return
+ * the children
+ */
+ public List<Object> getChildren()
+ {
+ if ( children == null )
+ {
+ children = new ArrayList<Object>();
+ }
+
+ return children;
+ }
+}
Added: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEMatchingRulesComboLabelProvider.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEMatchingRulesComboLabelProvider.java?view=auto&rev=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEMatchingRulesComboLabelProvider.java (added)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATEMatchingRulesComboLabelProvider.java Wed Jul 4 06:05:16 2007
@@ -0,0 +1,53 @@
+/*
+ * 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.schemaeditor.view.editors.attributetype;
+
+
+import org.apache.directory.studio.apacheds.schemaeditor.model.MatchingRuleImpl;
+import org.apache.directory.studio.apacheds.schemaeditor.view.editors.NonExistingMatchingRule;
+import org.eclipse.jface.viewers.LabelProvider;
+
+
+/**
+ * This class implements the Label Provider of the Matching Rules Combo of the Attribute Type Editor.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class ATEMatchingRulesComboLabelProvider extends LabelProvider
+{
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+ */
+ public String getText( Object obj )
+ {
+ if ( obj instanceof MatchingRuleImpl )
+ {
+ return ( ( MatchingRuleImpl ) obj ).getName();
+ }
+ else if ( obj instanceof NonExistingMatchingRule )
+ {
+ return ( ( NonExistingMatchingRule ) obj ).getDisplayName();
+ }
+
+ // Default
+ return null;
+ }
+}
Added: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATESuperiorComboContentProvider.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATESuperiorComboContentProvider.java?view=auto&rev=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATESuperiorComboContentProvider.java (added)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATESuperiorComboContentProvider.java Wed Jul 4 06:05:16 2007
@@ -0,0 +1,178 @@
+/*
+ * 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.schemaeditor.view.editors.attributetype;
+
+
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import org.apache.directory.studio.apacheds.schemaeditor.Activator;
+import org.apache.directory.studio.apacheds.schemaeditor.controller.SchemaHandler;
+import org.apache.directory.studio.apacheds.schemaeditor.model.AttributeTypeImpl;
+import org.apache.directory.studio.apacheds.schemaeditor.view.editors.NonExistingAttributeType;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+
+/**
+ * This class implements the Content Provider for the Superior Combo of the Attribute Type Editor.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class ATESuperiorComboContentProvider implements IStructuredContentProvider
+{
+ /** The Schema Handler */
+ private SchemaHandler schemaHandler;
+
+
+ /**
+ * Creates a new instance of ATESuperiorComboContentProvider.
+ */
+ public ATESuperiorComboContentProvider()
+ {
+ schemaHandler = Activator.getDefault().getSchemaHandler();
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+ */
+ public Object[] getElements( Object inputElement )
+ {
+ if ( inputElement instanceof ATESuperiorComboInput )
+ {
+ ATESuperiorComboInput input = ( ATESuperiorComboInput ) inputElement;
+
+ if ( input.getChildren().isEmpty() )
+ {
+ AttributeTypeImpl editorAT = input.getAttributeType();
+
+ // Creating the '(None)' item
+ input.addChild( new NonExistingAttributeType( NonExistingAttributeType.NONE ) );
+
+ // Creating Children
+ List<AttributeTypeImpl> ats = schemaHandler.getAttributeTypes();
+ for ( AttributeTypeImpl at : ats )
+ {
+ if ( !isSubType( at, editorAT ) )
+ {
+ input.addChild( at );
+ }
+ }
+ }
+
+ // Getting Children
+ List<Object> children = input.getChildren();
+
+ // Sorting Children
+ Collections.sort( children, new Comparator<Object>()
+ {
+ public int compare( Object o1, Object o2 )
+ {
+ if ( o1 instanceof AttributeTypeImpl && o2 instanceof AttributeTypeImpl )
+ {
+ return ( ( AttributeTypeImpl ) o1 ).getNames()[0]
+ .compareToIgnoreCase( ( ( AttributeTypeImpl ) o2 ).getNames()[0] );
+ }
+ else if ( o1 instanceof AttributeTypeImpl && o2 instanceof NonExistingAttributeType )
+ {
+ return ( ( AttributeTypeImpl ) o1 ).getNames()[0]
+ .compareToIgnoreCase( ( ( NonExistingAttributeType ) o2 ).getName() );
+ }
+ else if ( o1 instanceof NonExistingAttributeType && o2 instanceof AttributeTypeImpl )
+ {
+ return ( ( NonExistingAttributeType ) o1 ).getName().compareToIgnoreCase(
+ ( ( AttributeTypeImpl ) o2 ).getNames()[0] );
+ }
+ else if ( o1 instanceof NonExistingAttributeType && o2 instanceof NonExistingAttributeType )
+ {
+ return ( ( NonExistingAttributeType ) o1 ).getName().compareToIgnoreCase(
+ ( ( NonExistingAttributeType ) o2 ).getName() );
+ }
+
+ return 0;
+ }
+ } );
+
+ return children.toArray();
+ }
+
+ // Default
+ return new Object[0];
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+ */
+ public void dispose()
+ {
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public void inputChanged( Viewer viewer, Object oldInput, Object newInput )
+ {
+ }
+
+
+ /**
+ * Checks id an Attribute Type is a sub type of another Attribute Type.
+ *
+ * @param at1
+ * the first Attribute Type
+ * @param at2
+ * the second Attribute Type
+ * @return
+ * true if at1 is a sub type of at2
+ */
+ private boolean isSubType( AttributeTypeImpl at1, AttributeTypeImpl at2 )
+ {
+ if ( at1.equals( at2 ) )
+ {
+ return true;
+ }
+ else
+ {
+ String sup = at1.getSuperiorName();
+
+ if ( sup == null )
+ {
+ return false;
+ }
+ else
+ {
+ AttributeTypeImpl supAT = schemaHandler.getAttributeType( sup );
+ if ( supAT == null )
+ {
+ return false;
+ }
+ else
+ {
+ return isSubType( supAT, at2 );
+ }
+ }
+ }
+ }
+}
Added: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATESuperiorComboInput.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATESuperiorComboInput.java?view=auto&rev=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATESuperiorComboInput.java (added)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATESuperiorComboInput.java Wed Jul 4 06:05:16 2007
@@ -0,0 +1,100 @@
+/*
+ * 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.schemaeditor.view.editors.attributetype;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.directory.studio.apacheds.schemaeditor.model.AttributeTypeImpl;
+
+
+/**
+ * This class implements the Input of the Superior Combo of the Attribute Type Editor
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class ATESuperiorComboInput
+{
+ /** The attribute type */
+ private AttributeTypeImpl at;
+
+ /** The children */
+ private List<Object> children;
+
+
+ /**
+ * Creates a new instance of ATESuperiorComboInput.
+ *
+ * @param at
+ * the Attribute Type
+ */
+ public ATESuperiorComboInput( AttributeTypeImpl at )
+ {
+ this.at = at;
+ }
+
+
+ /**
+ * Gets the Attribute Type.
+ *
+ * @return
+ * the attribute type
+ */
+ public AttributeTypeImpl getAttributeType()
+ {
+ return at;
+ }
+
+
+ /**
+ * Adds a child.
+ *
+ * @param child
+ * the child to add
+ */
+ public void addChild( Object child )
+ {
+ if ( children == null )
+ {
+ children = new ArrayList<Object>();
+ }
+
+ children.add( child );
+ }
+
+
+ /**
+ * Gets the children.
+ *
+ * @return
+ * the children
+ */
+ public List<Object> getChildren()
+ {
+ if ( children == null )
+ {
+ children = new ArrayList<Object>();
+ }
+
+ return children;
+ }
+}
Added: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATESuperiorComboLabelProvider.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATESuperiorComboLabelProvider.java?view=auto&rev=553196
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATESuperiorComboLabelProvider.java (added)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/editors/attributetype/ATESuperiorComboLabelProvider.java Wed Jul 4 06:05:16 2007
@@ -0,0 +1,54 @@
+/*
+ * 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.schemaeditor.view.editors.attributetype;
+
+
+import org.apache.directory.studio.apacheds.schemaeditor.model.AttributeTypeImpl;
+import org.apache.directory.studio.apacheds.schemaeditor.view.ViewUtils;
+import org.apache.directory.studio.apacheds.schemaeditor.view.editors.NonExistingAttributeType;
+import org.eclipse.jface.viewers.LabelProvider;
+
+
+/**
+ * This class implements the Label Provider of the Superior Combo of the Attribute Type Editor.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class ATESuperiorComboLabelProvider extends LabelProvider
+{
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+ */
+ public String getText( Object obj )
+ {
+ if ( obj instanceof AttributeTypeImpl )
+ {
+ return ViewUtils.concateAliases( ( ( AttributeTypeImpl ) obj ).getNames() );
+ }
+ else if ( obj instanceof NonExistingAttributeType )
+ {
+ return ( ( NonExistingAttributeType ) obj ).getDisplayName();
+ }
+
+ // Default
+ return null;
+ }
+}