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/20 16:55:08 UTC
svn commit: r558013 [1/2] - in
/directory/studio/trunk/studio-apacheds-schemaeditor: resources/icons/
src/main/java/org/apache/directory/studio/apacheds/schemaeditor/
src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/difference/
src...
Author: pamarcelot
Date: Fri Jul 20 07:55:03 2007
New Revision: 558013
URL: http://svn.apache.org/viewvc?view=rev&rev=558013
Log:
Improved Differences widget to display the whole schema, and properties for modified ATs and OCs.
Added:
directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_attribute_type_add.gif (with props)
directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_attribute_type_modify.gif (with props)
directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_attribute_type_remove.gif (with props)
directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_object_class_add.gif (with props)
directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_object_class_modify.gif (with props)
directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_object_class_remove.gif (with props)
directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_property_add.gif
- copied unchanged from r557557, directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_add.gif
directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_property_modify.gif
- copied unchanged from r557557, directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_modify.gif
directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_property_remove.gif
- copied unchanged from r557557, directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_remove.gif
directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_schema_add.gif (with props)
directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_schema_modify.gif (with props)
directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_schema_remove.gif (with props)
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetPropertiesContentProvider.java
- copied, changed from r555904, directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetContentProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetPropertiesLabelProvider.java
- copied, changed from r557690, directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetLabelProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetSchemaContentProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetSchemaLabelProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/FirstNameSorter.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/Folder.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/OidSorter.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/PropertySorter.java
- copied, changed from r557690, directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetPropertySorter.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/SchemaDifferenceSorter.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/TypeSorter.java
- copied, changed from r557690, directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetTypeSorter.java
Removed:
directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_add.gif
directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_modify.gif
directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_remove.gif
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetContentProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetLabelProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetPropertySorter.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetTypeSorter.java
Modified:
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/PluginConstants.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/difference/AttributeTypeDifference.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/difference/DifferenceEngine.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/difference/ObjectClassDifference.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/views/SchemaViewContentProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/views/SchemaViewLabelProvider.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidget.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/wizards/CommitChangesDifferencesWizardPage.java
directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/wizards/CommitChangesWizard.java
Added: directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_attribute_type_add.gif
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_attribute_type_add.gif?view=auto&rev=558013
==============================================================================
Binary file - no diff available.
Propchange: directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_attribute_type_add.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_attribute_type_modify.gif
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_attribute_type_modify.gif?view=auto&rev=558013
==============================================================================
Binary file - no diff available.
Propchange: directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_attribute_type_modify.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_attribute_type_remove.gif
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_attribute_type_remove.gif?view=auto&rev=558013
==============================================================================
Binary file - no diff available.
Propchange: directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_attribute_type_remove.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_object_class_add.gif
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_object_class_add.gif?view=auto&rev=558013
==============================================================================
Binary file - no diff available.
Propchange: directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_object_class_add.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_object_class_modify.gif
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_object_class_modify.gif?view=auto&rev=558013
==============================================================================
Binary file - no diff available.
Propchange: directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_object_class_modify.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_object_class_remove.gif
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_object_class_remove.gif?view=auto&rev=558013
==============================================================================
Binary file - no diff available.
Propchange: directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_object_class_remove.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_schema_add.gif
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_schema_add.gif?view=auto&rev=558013
==============================================================================
Binary file - no diff available.
Propchange: directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_schema_add.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_schema_modify.gif
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_schema_modify.gif?view=auto&rev=558013
==============================================================================
Binary file - no diff available.
Propchange: directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_schema_modify.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_schema_remove.gif
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_schema_remove.gif?view=auto&rev=558013
==============================================================================
Binary file - no diff available.
Propchange: directory/studio/trunk/studio-apacheds-schemaeditor/resources/icons/difference_schema_remove.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/PluginConstants.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/PluginConstants.java?view=diff&rev=558013&r1=558012&r2=558013
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/PluginConstants.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/PluginConstants.java Fri Jul 20 07:55:03 2007
@@ -40,9 +40,18 @@
public static final String IMG_COLLAPSE_ALL = "resources/icons/collapse_all.gif";
public static final String IMG_DELETE = "resources/icons/delete.gif";
public static final String IMG_DISCONNECT = "resources/icons/disconnect.gif";
- public static final String IMG_DIFFERENCE_ADD = "resources/icons/difference_add.gif";
- public static final String IMG_DIFFERENCE_MODIFY = "resources/icons/difference_modify.gif";
- public static final String IMG_DIFFERENCE_REMOVE = "resources/icons/difference_remove.gif";
+ public static final String IMG_DIFFERENCE_ATTRIBUTE_TYPE_ADD = "resources/icons/difference_attribute_type_add.gif";
+ public static final String IMG_DIFFERENCE_ATTRIBUTE_TYPE_MODIFY = "resources/icons/difference_attribute_type_modify.gif";
+ public static final String IMG_DIFFERENCE_ATTRIBUTE_TYPE_REMOVE = "resources/icons/difference_attribute_type_remove.gif";
+ public static final String IMG_DIFFERENCE_OBJECT_CLASS_ADD = "resources/icons/difference_object_class_add.gif";
+ public static final String IMG_DIFFERENCE_OBJECT_CLASS_MODIFY = "resources/icons/difference_object_class_modify.gif";
+ public static final String IMG_DIFFERENCE_OBJECT_CLASS_REMOVE = "resources/icons/difference_object_class_remove.gif";
+ public static final String IMG_DIFFERENCE_PROPERTY_ADD = "resources/icons/difference_property_add.gif";
+ public static final String IMG_DIFFERENCE_PROPERTY_MODIFY = "resources/icons/difference_property_modify.gif";
+ public static final String IMG_DIFFERENCE_PROPERTY_REMOVE = "resources/icons/difference_property_remove.gif";
+ public static final String IMG_DIFFERENCE_SCHEMA_ADD = "resources/icons/difference_schema_add.gif";
+ public static final String IMG_DIFFERENCE_SCHEMA_MODIFY = "resources/icons/difference_schema_modify.gif";
+ public static final String IMG_DIFFERENCE_SCHEMA_REMOVE = "resources/icons/difference_schema_remove.gif";
public static final String IMG_FOLDER = "resources/icons/folder.gif";
public static final String IMG_FOLDER_AT = "resources/icons/folder_at.gif";
public static final String IMG_FOLDER_OC = "resources/icons/folder_oc.gif";
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/difference/AttributeTypeDifference.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/difference/AttributeTypeDifference.java?view=diff&rev=558013&r1=558012&r2=558013
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/difference/AttributeTypeDifference.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/difference/AttributeTypeDifference.java Fri Jul 20 07:55:03 2007
@@ -98,7 +98,7 @@
*/
public void addDifferences( List<PropertyDifference> differences )
{
- differences.addAll( differences );
+ this.differences.addAll( differences );
}
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/difference/DifferenceEngine.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/difference/DifferenceEngine.java?view=diff&rev=558013&r1=558012&r2=558013
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/difference/DifferenceEngine.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/difference/DifferenceEngine.java Fri Jul 20 07:55:03 2007
@@ -52,9 +52,9 @@
* @return
* the differences between the two schema Lists
*/
- public static List<Difference> getDifferences( List<Schema> l1, List<Schema> l2 )
+ public static List<SchemaDifference> getDifferences( List<Schema> l1, List<Schema> l2 )
{
- List<Difference> differences = new ArrayList<Difference>();
+ List<SchemaDifference> differences = new ArrayList<SchemaDifference>();
// Building Maps for schemas
Map<String, Schema> mapL1 = new HashMap<String, Schema>();
@@ -81,6 +81,7 @@
{
SchemaDifference schemaDifference = new SchemaDifference( schemaFromL1, schemaFromL2,
DifferenceType.IDENTICAL );
+ differences.add( schemaDifference );
// Building Maps for attribute types
Map<String, AttributeTypeImpl> atMapL1 = new HashMap<String, AttributeTypeImpl>();
@@ -124,7 +125,7 @@
// Looping on the attribute types from the Schema from the second list
for ( AttributeTypeImpl atFromL2 : schemaFromL2.getAttributeTypes() )
{
- AttributeTypeImpl atFromL1 = atMapL2.get( atFromL2.getOid() );
+ AttributeTypeImpl atFromL1 = atMapL1.get( atFromL2.getOid() );
if ( atFromL1 == null )
{
AttributeTypeDifference attributeTypeDifference = new AttributeTypeDifference( null, atFromL2,
@@ -177,7 +178,7 @@
// Looping on the object classes from the Schema from the second list
for ( ObjectClassImpl ocFromL2 : schemaFromL2.getObjectClasses() )
{
- ObjectClassImpl ocFromL1 = ocMapL2.get( ocFromL2.getOid() );
+ ObjectClassImpl ocFromL1 = ocMapL1.get( ocFromL2.getOid() );
if ( ocFromL1 == null )
{
ObjectClassDifference objectClassDifference = new ObjectClassDifference( null, ocFromL2,
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/difference/ObjectClassDifference.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/difference/ObjectClassDifference.java?view=diff&rev=558013&r1=558012&r2=558013
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/difference/ObjectClassDifference.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/model/difference/ObjectClassDifference.java Fri Jul 20 07:55:03 2007
@@ -88,7 +88,8 @@
{
differences.add( difference );
}
-
+
+
/**
* Adds differences.
*
@@ -97,7 +98,7 @@
*/
public void addDifferences( List<PropertyDifference> differences )
{
- differences.addAll( differences );
+ this.differences.addAll( differences );
}
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/views/SchemaViewContentProvider.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/views/SchemaViewContentProvider.java?view=diff&rev=558013&r1=558012&r2=558013
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/views/SchemaViewContentProvider.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/views/SchemaViewContentProvider.java Fri Jul 20 07:55:03 2007
@@ -68,7 +68,7 @@
/**
- * Creates a new instance of SchemaViewContentProvider.
+ * Creates a new instance of DifferencesWidgetSchemaContentProvider.
*/
public SchemaViewContentProvider()
{
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/views/SchemaViewLabelProvider.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/views/SchemaViewLabelProvider.java?view=diff&rev=558013&r1=558012&r2=558013
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/views/SchemaViewLabelProvider.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/views/SchemaViewLabelProvider.java Fri Jul 20 07:55:03 2007
@@ -50,7 +50,7 @@
/**
- * Creates a new instance of SchemaViewLabelProvider.
+ * Creates a new instance of DifferencesWidgetSchemaLabelProvider.
*/
public SchemaViewLabelProvider()
{
Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidget.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidget.java?view=diff&rev=558013&r1=558012&r2=558013
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidget.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidget.java Fri Jul 20 07:55:03 2007
@@ -24,9 +24,18 @@
import org.apache.directory.studio.apacheds.schemaeditor.Activator;
import org.apache.directory.studio.apacheds.schemaeditor.PluginConstants;
-import org.apache.directory.studio.apacheds.schemaeditor.model.difference.Difference;
+import org.apache.directory.studio.apacheds.schemaeditor.model.difference.AttributeTypeDifference;
+import org.apache.directory.studio.apacheds.schemaeditor.model.difference.DifferenceType;
+import org.apache.directory.studio.apacheds.schemaeditor.model.difference.ObjectClassDifference;
+import org.apache.directory.studio.apacheds.schemaeditor.model.difference.SchemaDifference;
import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
@@ -37,7 +46,6 @@
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
import org.eclipse.ui.PlatformUI;
@@ -54,8 +62,11 @@
*/
public class DifferencesWidget
{
+ /** The TreeViewer */
+ private TreeViewer treeViewer;
+
/** The TableViewer */
- private TableViewer viewer;
+ private TableViewer tableViewer;
/** The PreferenceStore*/
private IPreferenceStore store;
@@ -85,7 +96,7 @@
{
// Composite
Composite composite = new Composite( parent, SWT.NONE );
- GridLayout gridLayout = new GridLayout();
+ GridLayout gridLayout = new GridLayout( 2, true );
gridLayout.marginBottom = 0;
gridLayout.marginHeight = 0;
gridLayout.marginLeft = 0;
@@ -93,9 +104,81 @@
gridLayout.marginTop = 0;
gridLayout.marginWidth = 0;
composite.setLayout( gridLayout );
+ composite.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
+
+ // Left Composite
+ Composite leftComposite = new Composite( composite, SWT.NONE );
+ gridLayout = new GridLayout();
+ gridLayout.marginBottom = 0;
+ gridLayout.marginHeight = 0;
+ gridLayout.marginLeft = 0;
+ gridLayout.marginRight = 0;
+ gridLayout.marginTop = 0;
+ gridLayout.marginWidth = 0;
+ leftComposite.setLayout( gridLayout );
+ leftComposite.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
+
+ // TreeViewer
+ treeViewer = new TreeViewer( leftComposite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER );
+ treeViewer.getTree().setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
+ treeViewer.setContentProvider( new DifferencesWidgetSchemaContentProvider() );
+ treeViewer.setLabelProvider( new DifferencesWidgetSchemaLabelProvider() );
+ treeViewer.addSelectionChangedListener( new ISelectionChangedListener()
+ {
+ public void selectionChanged( SelectionChangedEvent event )
+ {
+ StructuredSelection selection = ( StructuredSelection ) event.getSelection();
+ Object element = selection.getFirstElement();
+ if ( element instanceof AttributeTypeDifference )
+ {
+ AttributeTypeDifference atd = ( AttributeTypeDifference ) element;
+ if ( atd.getType().equals( DifferenceType.MODIFIED ) )
+ {
+ tableViewer.setInput( atd.getDifferences() );
+ return;
+ }
+ }
+ else if ( element instanceof ObjectClassDifference )
+ {
+ ObjectClassDifference ocd = ( ObjectClassDifference ) element;
+ if ( ocd.getType().equals( DifferenceType.MODIFIED ) )
+ {
+ tableViewer.setInput( ocd.getDifferences() );
+ return;
+ }
+ }
+
+ // Default
+ tableViewer.setInput( null );
+ }
+ } );
+ treeViewer.addDoubleClickListener( new IDoubleClickListener()
+ {
+ public void doubleClick( DoubleClickEvent event )
+ {
+ StructuredSelection selection = ( StructuredSelection ) event.getSelection();
+ Object element = selection.getFirstElement();
+ if ( ( element instanceof Folder ) || ( element instanceof SchemaDifference ) )
+ {
+ treeViewer.setExpandedState( element, !treeViewer.getExpandedState( element ) );
+ }
+ }
+ } );
+
+ // Right Composite
+ Composite rightComposite = new Composite( composite, SWT.NONE );
+ gridLayout = new GridLayout();
+ gridLayout.marginBottom = 0;
+ gridLayout.marginHeight = 0;
+ gridLayout.marginLeft = 0;
+ gridLayout.marginRight = 0;
+ gridLayout.marginTop = 0;
+ gridLayout.marginWidth = 0;
+ rightComposite.setLayout( gridLayout );
+ rightComposite.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
// ToolBar
- final ToolBar toolBar = new ToolBar( composite, SWT.HORIZONTAL );
+ final ToolBar toolBar = new ToolBar( rightComposite, SWT.HORIZONTAL );
toolBar.setLayoutData( new GridData( SWT.RIGHT, SWT.NONE, false, false ) );
// Creating the 'Menu' ToolBar item
final ToolItem menuToolItem = new ToolItem( toolBar, SWT.PUSH );
@@ -138,38 +221,23 @@
} );
updateMenuItemsCheckStatus();
- // Table
- Table table = new Table( composite, SWT.BORDER );
- table.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
-
// TableViewer
- viewer = new TableViewer( table );
- viewer.setContentProvider( new DifferencesWidgetContentProvider() );
- viewer.setLabelProvider( new DifferencesWidgetLabelProvider() );
+ tableViewer = new TableViewer( rightComposite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER );
+ tableViewer.getTable().setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
+ tableViewer.setContentProvider( new DifferencesWidgetPropertiesContentProvider() );
+ tableViewer.setLabelProvider( new DifferencesWidgetPropertiesLabelProvider() );
}
/**
- * Sets the Input of the TableViewer.
+ * Sets the Input of the DifferencesWidget.
*
* @param input
* the input
*/
- public void setInput( List<Difference> input )
- {
- viewer.setInput( input );
- }
-
-
- /**
- * Gets the TableViewer used in the Widget.
- *
- * @return
- * the TableViewer used in the Widget
- */
- public TableViewer getViewer()
+ public void setInput( List<SchemaDifference> input )
{
- return viewer;
+ treeViewer.setInput( input );
}
@@ -183,7 +251,7 @@
{
store.setValue( PluginConstants.PREFS_DIFFERENCES_WIDGET_GROUPING, value );
updateMenuItemsCheckStatus();
- viewer.refresh();
+ tableViewer.refresh();
}
Copied: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetPropertiesContentProvider.java (from r555904, directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetContentProvider.java)
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetPropertiesContentProvider.java?view=diff&rev=558013&p1=directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetContentProvider.java&r1=555904&p2=directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetPropertiesContentProvider.java&r2=558013
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetContentProvider.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetPropertiesContentProvider.java Fri Jul 20 07:55:03 2007
@@ -25,7 +25,7 @@
import org.apache.directory.studio.apacheds.schemaeditor.Activator;
import org.apache.directory.studio.apacheds.schemaeditor.PluginConstants;
-import org.apache.directory.studio.apacheds.schemaeditor.model.difference.Difference;
+import org.apache.directory.studio.apacheds.schemaeditor.model.difference.PropertyDifference;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.Viewer;
@@ -37,26 +37,26 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$, $Date$
*/
-public class DifferencesWidgetContentProvider implements IStructuredContentProvider
+public class DifferencesWidgetPropertiesContentProvider implements IStructuredContentProvider
{
- /** The DifferencesWidgetPropertySorter */
- private DifferencesWidgetPropertySorter propertySorter;
+ /** The PropertySorter */
+ private PropertySorter propertySorter;
- /** The DifferencesWidgetTypeSorter */
- private DifferencesWidgetTypeSorter typeSorter;
+ /** The TypeSorter */
+ private TypeSorter typeSorter;
/** The PreferenceStore */
private IPreferenceStore store;
/**
- * Creates a new instance of DifferencesWidgetContentProvider.
+ * Creates a new instance of DifferencesWidgetPropertiesContentProvider.
*
*/
- public DifferencesWidgetContentProvider()
+ public DifferencesWidgetPropertiesContentProvider()
{
- propertySorter = new DifferencesWidgetPropertySorter();
- typeSorter = new DifferencesWidgetTypeSorter();
+ propertySorter = new PropertySorter();
+ typeSorter = new TypeSorter();
store = Activator.getDefault().getPreferenceStore();
}
@@ -65,11 +65,12 @@
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
*/
+ @SuppressWarnings("unchecked")
public Object[] getElements( Object inputElement )
{
if ( inputElement instanceof List )
{
- List<Difference> differences = ( List<Difference> ) inputElement;
+ List<PropertyDifference> differences = ( List<PropertyDifference> ) inputElement;
int prefValue = store.getInt( PluginConstants.PREFS_DIFFERENCES_WIDGET_GROUPING );
if ( prefValue == PluginConstants.PREFS_DIFFERENCES_WIDGET_GROUPING_PROPERTY )
Copied: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetPropertiesLabelProvider.java (from r557690, directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetLabelProvider.java)
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetPropertiesLabelProvider.java?view=diff&rev=558013&p1=directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetLabelProvider.java&r1=557690&p2=directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetPropertiesLabelProvider.java&r2=558013
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetLabelProvider.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetPropertiesLabelProvider.java Fri Jul 20 07:55:03 2007
@@ -51,7 +51,7 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$, $Date$
*/
-public class DifferencesWidgetLabelProvider extends LabelProvider
+public class DifferencesWidgetPropertiesLabelProvider extends LabelProvider
{
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
@@ -65,14 +65,14 @@
{
case ADDED:
return AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID,
- PluginConstants.IMG_DIFFERENCE_ADD ).createImage();
+ PluginConstants.IMG_DIFFERENCE_PROPERTY_ADD ).createImage();
case MODIFIED:
return AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID,
- PluginConstants.IMG_DIFFERENCE_MODIFY ).createImage();
+ PluginConstants.IMG_DIFFERENCE_PROPERTY_MODIFY ).createImage();
case REMOVED:
return AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID,
- PluginConstants.IMG_DIFFERENCE_REMOVE ).createImage();
+ PluginConstants.IMG_DIFFERENCE_PROPERTY_REMOVE ).createImage();
}
}
Added: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetSchemaContentProvider.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetSchemaContentProvider.java?view=auto&rev=558013
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetSchemaContentProvider.java (added)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetSchemaContentProvider.java Fri Jul 20 07:55:03 2007
@@ -0,0 +1,206 @@
+/*
+ * 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.widget;
+
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.directory.studio.apacheds.schemaeditor.Activator;
+import org.apache.directory.studio.apacheds.schemaeditor.PluginConstants;
+import org.apache.directory.studio.apacheds.schemaeditor.model.difference.SchemaDifference;
+import org.apache.directory.studio.apacheds.schemaeditor.view.widget.Folder.FolderType;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+
+/**
+ * This class implements the ContentProvider for the Difference Widget.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class DifferencesWidgetSchemaContentProvider implements IStructuredContentProvider, ITreeContentProvider
+{
+ /** The preferences store */
+ private IPreferenceStore store;
+
+ /** The FirstName Sorter */
+ private FirstNameSorter firstNameSorter;
+
+ /** The OID Sorter */
+ private OidSorter oidSorter;
+
+ /** The Schema Sorter */
+ private SchemaDifferenceSorter schemaDifferenceSorter;
+
+
+ /**
+ * Creates a new instance of DifferencesWidgetSchemaContentProvider.
+ */
+ public DifferencesWidgetSchemaContentProvider()
+ {
+ store = Activator.getDefault().getPreferenceStore();
+
+ firstNameSorter = new FirstNameSorter();
+ oidSorter = new OidSorter();
+ schemaDifferenceSorter = new SchemaDifferenceSorter();
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+ */
+ public Object[] getElements( Object inputElement )
+ {
+ return getChildren( inputElement );
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+ */
+ public void dispose()
+ {
+ // Nothing to do
+ }
+
+
+ /* (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 )
+ {
+ // Nothing to do
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
+ */
+ @SuppressWarnings("unchecked")
+ public Object[] getChildren( Object parentElement )
+ {
+ List<Object> children = new ArrayList<Object>();
+
+ int group = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_GROUPING );
+ int sortBy = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_SORTING_BY );
+ int sortOrder = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_SORTING_ORDER );
+
+ if ( parentElement instanceof List )
+ {
+ List<SchemaDifference> schemaDifferences = ( List<SchemaDifference> ) parentElement;
+
+ children.addAll( schemaDifferences );
+
+ Collections.sort( children, schemaDifferenceSorter );
+ }
+ else if ( parentElement instanceof SchemaDifference )
+ {
+ SchemaDifference difference = ( SchemaDifference ) parentElement;
+
+ if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_FOLDERS )
+ {
+ Folder atFolder = new Folder( FolderType.ATTRIBUTE_TYPE );
+ atFolder.addAllChildren( difference.getAttributeTypesDifferences() );
+ children.add( atFolder );
+
+ Folder ocFolder = new Folder( FolderType.OBJECT_CLASS );
+ ocFolder.addAllChildren( difference.getObjectClassesDifferences() );
+ children.add( ocFolder );
+ }
+ else if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_MIXED )
+ {
+ children.addAll( difference.getAttributeTypesDifferences() );
+ children.addAll( difference.getObjectClassesDifferences() );
+
+ // Sort by
+ if ( sortBy == PluginConstants.PREFS_SCHEMA_VIEW_SORTING_BY_FIRSTNAME )
+ {
+ Collections.sort( children, firstNameSorter );
+ }
+ else if ( sortBy == PluginConstants.PREFS_SCHEMA_VIEW_SORTING_BY_OID )
+ {
+ Collections.sort( children, oidSorter );
+ }
+
+ // Sort Order
+ if ( sortOrder == PluginConstants.PREFS_SCHEMA_VIEW_SORTING_ORDER_DESCENDING )
+ {
+ Collections.reverse( children );
+ }
+ }
+ }
+ else if ( parentElement instanceof Folder )
+ {
+ children.addAll( ( ( Folder ) parentElement ).getChildren() );
+
+ // Sort by
+ if ( sortBy == PluginConstants.PREFS_SCHEMA_VIEW_SORTING_BY_FIRSTNAME )
+ {
+ Collections.sort( children, firstNameSorter );
+ }
+ else if ( sortBy == PluginConstants.PREFS_SCHEMA_VIEW_SORTING_BY_OID )
+ {
+ Collections.sort( children, oidSorter );
+ }
+
+ // Sort Order
+ if ( sortOrder == PluginConstants.PREFS_SCHEMA_VIEW_SORTING_ORDER_DESCENDING )
+ {
+ Collections.reverse( children );
+ }
+ }
+
+ return children.toArray();
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
+ */
+ public Object getParent( Object element )
+ {
+ // Default
+ return null;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
+ */
+ public boolean hasChildren( Object element )
+ {
+ if ( element instanceof SchemaDifference )
+ {
+ return true;
+ }
+ else if ( element instanceof Folder )
+ {
+ return true;
+ }
+
+ // Default
+ return false;
+ }
+}
Added: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetSchemaLabelProvider.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetSchemaLabelProvider.java?view=auto&rev=558013
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetSchemaLabelProvider.java (added)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetSchemaLabelProvider.java Fri Jul 20 07:55:03 2007
@@ -0,0 +1,445 @@
+/*
+ * 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.widget;
+
+
+import org.apache.directory.studio.apacheds.schemaeditor.Activator;
+import org.apache.directory.studio.apacheds.schemaeditor.PluginConstants;
+import org.apache.directory.studio.apacheds.schemaeditor.model.AttributeTypeImpl;
+import org.apache.directory.studio.apacheds.schemaeditor.model.ObjectClassImpl;
+import org.apache.directory.studio.apacheds.schemaeditor.model.Schema;
+import org.apache.directory.studio.apacheds.schemaeditor.model.difference.AttributeTypeDifference;
+import org.apache.directory.studio.apacheds.schemaeditor.model.difference.ObjectClassDifference;
+import org.apache.directory.studio.apacheds.schemaeditor.model.difference.SchemaDifference;
+import org.apache.directory.studio.apacheds.schemaeditor.view.ViewUtils;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+
+/**
+ * This class implements the LabelProvider for the SchemaView.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class DifferencesWidgetSchemaLabelProvider extends LabelProvider
+{
+ private static final String NONE = "(None)";
+
+ /** The preferences store */
+ private IPreferenceStore store;
+
+
+ /**
+ * Creates a new instance of DifferencesWidgetSchemaLabelProvider.
+ */
+ public DifferencesWidgetSchemaLabelProvider()
+ {
+ store = Activator.getDefault().getPreferenceStore();
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+ */
+ public String getText( Object element )
+ {
+ String label = ""; //$NON-NLS-1$
+
+ int labelValue = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_LABEL );
+ boolean abbreviate = store.getBoolean( PluginConstants.PREFS_SCHEMA_VIEW_ABBREVIATE );
+ int abbreviateMaxLength = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_ABBREVIATE_MAX_LENGTH );
+ boolean secondaryLabelDisplay = store.getBoolean( PluginConstants.PREFS_SCHEMA_VIEW_SECONDARY_LABEL_DISPLAY );
+ int secondaryLabelValue = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_SECONDARY_LABEL );
+ boolean secondaryLabelAbbreviate = store
+ .getBoolean( PluginConstants.PREFS_SCHEMA_VIEW_SECONDARY_LABEL_ABBREVIATE );
+ int secondaryLabelAbbreviateMaxLength = store
+ .getInt( PluginConstants.PREFS_SCHEMA_VIEW_SECONDARY_LABEL_ABBREVIATE_MAX_LENGTH );
+
+ if ( element instanceof SchemaDifference )
+ {
+ SchemaDifference sd = ( SchemaDifference ) element;
+
+ switch ( sd.getType() )
+ {
+ case ADDED:
+ return ( ( Schema ) sd.getDestination() ).getName();
+ case MODIFIED:
+ return ( ( Schema ) sd.getDestination() ).getName();
+ case REMOVED:
+ return ( ( Schema ) sd.getSource() ).getName();
+ case IDENTICAL:
+ return ( ( Schema ) sd.getDestination() ).getName();
+ }
+ }
+ else if ( element instanceof AttributeTypeDifference )
+ {
+ AttributeTypeDifference atd = ( AttributeTypeDifference ) element;
+
+ AttributeTypeImpl at = null;
+
+ switch ( atd.getType() )
+ {
+ case ADDED:
+ at = ( ( AttributeTypeImpl ) atd.getDestination() );
+ break;
+ case MODIFIED:
+ at = ( ( AttributeTypeImpl ) atd.getDestination() );
+ break;
+ case REMOVED:
+ at = ( ( AttributeTypeImpl ) atd.getSource() );
+ break;
+ case IDENTICAL:
+ at = ( ( AttributeTypeImpl ) atd.getDestination() );
+ break;
+ }
+
+ // Label
+ if ( labelValue == PluginConstants.PREFS_SCHEMA_VIEW_LABEL_FIRST_NAME )
+ {
+ String[] names = at.getNames();
+ if ( ( names != null ) && ( names.length > 0 ) )
+ {
+ label = names[0];
+ }
+ else
+ {
+ label = NONE;
+ }
+ }
+ else if ( labelValue == PluginConstants.PREFS_SCHEMA_VIEW_LABEL_ALL_ALIASES )
+ {
+ String[] names = at.getNames();
+ if ( ( names != null ) && ( names.length > 0 ) )
+ {
+ label = ViewUtils.concateAliases( names );
+ }
+ else
+ {
+ label = NONE;
+ }
+ }
+ else if ( labelValue == PluginConstants.PREFS_SCHEMA_VIEW_LABEL_OID )
+ {
+ label = at.getOid();
+ }
+ else
+ // Default
+ {
+ String[] names = at.getNames();
+ if ( ( names != null ) && ( names.length > 0 ) )
+ {
+ label = names[0];
+ }
+ else
+ {
+ label = NONE;
+ }
+ }
+
+ // Abbreviate
+ if ( abbreviate && ( abbreviateMaxLength < label.length() ) )
+ {
+ label = label.substring( 0, abbreviateMaxLength ) + "..."; //$NON-NLS-1$
+ }
+ }
+ else if ( element instanceof ObjectClassDifference )
+ {
+ ObjectClassDifference ocd = ( ObjectClassDifference ) element;
+
+ ObjectClassImpl oc = null;
+
+ switch ( ocd.getType() )
+ {
+ case ADDED:
+ oc = ( ( ObjectClassImpl ) ocd.getDestination() );
+ break;
+ case MODIFIED:
+ oc = ( ( ObjectClassImpl ) ocd.getDestination() );
+ break;
+ case REMOVED:
+ oc = ( ( ObjectClassImpl ) ocd.getSource() );
+ break;
+ case IDENTICAL:
+ oc = ( ( ObjectClassImpl ) ocd.getDestination() );
+ break;
+ }
+
+ // Label
+ if ( labelValue == PluginConstants.PREFS_SCHEMA_VIEW_LABEL_FIRST_NAME )
+ {
+ String[] names = oc.getNames();
+ if ( ( names != null ) && ( names.length > 0 ) )
+ {
+ label = names[0];
+ }
+ else
+ {
+ label = NONE;
+ }
+ }
+ else if ( labelValue == PluginConstants.PREFS_SCHEMA_VIEW_LABEL_ALL_ALIASES )
+ {
+ String[] names = oc.getNames();
+ if ( ( names != null ) && ( names.length > 0 ) )
+ {
+ label = ViewUtils.concateAliases( names );
+ }
+ else
+ {
+ label = NONE;
+ }
+ }
+ else if ( labelValue == PluginConstants.PREFS_SCHEMA_VIEW_LABEL_OID )
+ {
+ label = oc.getOid();
+ }
+ else
+ // Default
+ {
+ String[] names = oc.getNames();
+ if ( ( names != null ) && ( names.length > 0 ) )
+ {
+ label = names[0];
+ }
+ else
+ {
+ label = NONE;
+ }
+ }
+
+ // Abbreviate
+ if ( abbreviate && ( abbreviateMaxLength < label.length() ) )
+ {
+ label = label.substring( 0, abbreviateMaxLength ) + "..."; //$NON-NLS-1$
+ }
+ }
+ else if ( element instanceof Folder )
+ {
+ Folder folder = ( Folder ) element;
+
+ return folder.getName() + " (" + folder.getChildren().size() + ")";
+ }
+
+ // Secondary Label
+ if ( secondaryLabelDisplay )
+ {
+ String secondaryLabel = ""; //$NON-NLS-1$
+ if ( element instanceof AttributeTypeDifference )
+ {
+ AttributeTypeDifference atd = ( AttributeTypeDifference ) element;
+
+ AttributeTypeImpl at = null;
+
+ switch ( atd.getType() )
+ {
+ case ADDED:
+ at = ( ( AttributeTypeImpl ) atd.getDestination() );
+ break;
+ case MODIFIED:
+ at = ( ( AttributeTypeImpl ) atd.getDestination() );
+ break;
+ case REMOVED:
+ at = ( ( AttributeTypeImpl ) atd.getSource() );
+ break;
+ case IDENTICAL:
+ at = ( ( AttributeTypeImpl ) atd.getDestination() );
+ break;
+ }
+
+ if ( secondaryLabelValue == PluginConstants.PREFS_SCHEMA_VIEW_LABEL_FIRST_NAME )
+ {
+ String[] names = at.getNames();
+ if ( ( names != null ) && ( names.length > 0 ) )
+ {
+ secondaryLabel = names[0];
+ }
+ else
+ {
+ secondaryLabel = NONE;
+ }
+ }
+ else if ( secondaryLabelValue == PluginConstants.PREFS_SCHEMA_VIEW_LABEL_ALL_ALIASES )
+ {
+ String[] names = at.getNames();
+ if ( ( names != null ) && ( names.length > 0 ) )
+ {
+ secondaryLabel = ViewUtils.concateAliases( names );
+ }
+ else
+ {
+ secondaryLabel = NONE;
+ }
+ }
+ else if ( secondaryLabelValue == PluginConstants.PREFS_SCHEMA_VIEW_LABEL_OID )
+ {
+ secondaryLabel = at.getOid();
+ }
+ }
+ else if ( element instanceof ObjectClassDifference )
+ {
+ ObjectClassDifference ocd = ( ObjectClassDifference ) element;
+
+ ObjectClassImpl oc = null;
+
+ switch ( ocd.getType() )
+ {
+ case ADDED:
+ oc = ( ( ObjectClassImpl ) ocd.getDestination() );
+ break;
+ case MODIFIED:
+ oc = ( ( ObjectClassImpl ) ocd.getDestination() );
+ break;
+ case REMOVED:
+ oc = ( ( ObjectClassImpl ) ocd.getSource() );
+ break;
+ case IDENTICAL:
+ oc = ( ( ObjectClassImpl ) ocd.getDestination() );
+ break;
+ }
+
+ if ( secondaryLabelValue == PluginConstants.PREFS_SCHEMA_VIEW_LABEL_FIRST_NAME )
+ {
+ String[] names = oc.getNames();
+ if ( ( names != null ) && ( names.length > 0 ) )
+ {
+ secondaryLabel = names[0];
+ }
+ else
+ {
+ secondaryLabel = NONE;
+ }
+ }
+ else if ( secondaryLabelValue == PluginConstants.PREFS_SCHEMA_VIEW_LABEL_ALL_ALIASES )
+ {
+ String[] names = oc.getNames();
+ if ( ( names != null ) && ( names.length > 0 ) )
+ {
+ secondaryLabel = ViewUtils.concateAliases( names );
+ }
+ else
+ {
+ secondaryLabel = NONE;
+ }
+ }
+ else if ( secondaryLabelValue == PluginConstants.PREFS_SCHEMA_VIEW_LABEL_OID )
+ {
+ secondaryLabel = oc.getOid();
+ }
+ }
+
+ if ( secondaryLabelAbbreviate && ( secondaryLabelAbbreviateMaxLength < secondaryLabel.length() ) )
+ {
+ secondaryLabel = secondaryLabel.substring( 0, secondaryLabelAbbreviateMaxLength ) + "..."; //$NON-NLS-1$
+ }
+
+ label += " [" + secondaryLabel + "]"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ return label;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
+ */
+ public Image getImage( Object element )
+ {
+ if ( element instanceof SchemaDifference )
+ {
+ SchemaDifference sd = ( SchemaDifference ) element;
+ switch ( sd.getType() )
+ {
+ case ADDED:
+ return AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID,
+ PluginConstants.IMG_DIFFERENCE_SCHEMA_ADD ).createImage();
+ case MODIFIED:
+ return AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID,
+ PluginConstants.IMG_DIFFERENCE_SCHEMA_MODIFY ).createImage();
+ case REMOVED:
+ return AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID,
+ PluginConstants.IMG_DIFFERENCE_SCHEMA_REMOVE ).createImage();
+ case IDENTICAL:
+ return AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID, PluginConstants.IMG_SCHEMA )
+ .createImage();
+ }
+ }
+ else if ( element instanceof AttributeTypeDifference )
+ {
+ AttributeTypeDifference atd = ( AttributeTypeDifference ) element;
+ switch ( atd.getType() )
+ {
+ case ADDED:
+ return AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID,
+ PluginConstants.IMG_DIFFERENCE_ATTRIBUTE_TYPE_ADD ).createImage();
+ case MODIFIED:
+ return AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID,
+ PluginConstants.IMG_DIFFERENCE_ATTRIBUTE_TYPE_MODIFY ).createImage();
+ case REMOVED:
+ return AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID,
+ PluginConstants.IMG_DIFFERENCE_ATTRIBUTE_TYPE_REMOVE ).createImage();
+ case IDENTICAL:
+ return AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID,
+ PluginConstants.IMG_ATTRIBUTE_TYPE ).createImage();
+ }
+ }
+ else if ( element instanceof ObjectClassDifference )
+ {
+ ObjectClassDifference ocd = ( ObjectClassDifference ) element;
+ switch ( ocd.getType() )
+ {
+ case ADDED:
+ return AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID,
+ PluginConstants.IMG_DIFFERENCE_OBJECT_CLASS_ADD ).createImage();
+ case MODIFIED:
+ return AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID,
+ PluginConstants.IMG_DIFFERENCE_OBJECT_CLASS_MODIFY ).createImage();
+ case REMOVED:
+ return AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID,
+ PluginConstants.IMG_DIFFERENCE_OBJECT_CLASS_REMOVE ).createImage();
+ case IDENTICAL:
+ return AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID,
+ PluginConstants.IMG_OBJECT_CLASS ).createImage();
+ }
+ }
+ else if ( element instanceof Folder )
+ {
+ Folder folder = ( Folder ) element;
+
+ switch ( folder.getType() )
+ {
+ case ATTRIBUTE_TYPE:
+ return AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID,
+ PluginConstants.IMG_FOLDER_AT ).createImage();
+ case OBJECT_CLASS:
+ return AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID,
+ PluginConstants.IMG_FOLDER_OC ).createImage();
+ case NONE:
+ return AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID, PluginConstants.IMG_FOLDER )
+ .createImage();
+ }
+ }
+
+ // Default
+ return null;
+ }
+}
Added: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/FirstNameSorter.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/FirstNameSorter.java?view=auto&rev=558013
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/FirstNameSorter.java (added)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/FirstNameSorter.java Fri Jul 20 07:55:03 2007
@@ -0,0 +1,213 @@
+/*
+ * 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.widget;
+
+
+import java.util.Comparator;
+
+import org.apache.directory.shared.ldap.schema.SchemaObject;
+import org.apache.directory.studio.apacheds.schemaeditor.model.difference.AttributeTypeDifference;
+import org.apache.directory.studio.apacheds.schemaeditor.model.difference.ObjectClassDifference;
+
+
+/**
+ * This class is used to compare and sort ascending two TreeNode.
+ */
+public class FirstNameSorter implements Comparator<Object>
+{
+ /* (non-Javadoc)
+ * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
+ */
+ public int compare( Object o1, Object o2 )
+ {
+ String[] o1Names = null;
+ String[] o2Names = null;
+
+ if ( ( o1 instanceof AttributeTypeDifference ) && ( o2 instanceof AttributeTypeDifference ) )
+ {
+ AttributeTypeDifference atd1 = ( AttributeTypeDifference ) o1;
+ AttributeTypeDifference atd2 = ( AttributeTypeDifference ) o2;
+
+ switch ( atd1.getType() )
+ {
+ case ADDED:
+ o1Names = ( ( SchemaObject ) atd1.getDestination() ).getNames();
+ break;
+ case MODIFIED:
+ o1Names = ( ( SchemaObject ) atd1.getDestination() ).getNames();
+ break;
+ case REMOVED:
+ o1Names = ( ( SchemaObject ) atd1.getSource() ).getNames();
+ break;
+ case IDENTICAL:
+ o1Names = ( ( SchemaObject ) atd1.getDestination() ).getNames();
+ break;
+ }
+
+ switch ( atd2.getType() )
+ {
+ case ADDED:
+ o2Names = ( ( SchemaObject ) atd2.getDestination() ).getNames();
+ break;
+ case MODIFIED:
+ o2Names = ( ( SchemaObject ) atd2.getDestination() ).getNames();
+ break;
+ case REMOVED:
+ o2Names = ( ( SchemaObject ) atd2.getSource() ).getNames();
+ break;
+ case IDENTICAL:
+ o2Names = ( ( SchemaObject ) atd2.getDestination() ).getNames();
+ break;
+ }
+ }
+ else if ( ( o1 instanceof ObjectClassDifference ) && ( o2 instanceof ObjectClassDifference ) )
+ {
+ ObjectClassDifference ocd1 = ( ObjectClassDifference ) o1;
+ ObjectClassDifference ocd2 = ( ObjectClassDifference ) o2;
+
+ switch ( ocd1.getType() )
+ {
+ case ADDED:
+ o1Names = ( ( SchemaObject ) ocd1.getDestination() ).getNames();
+ break;
+ case MODIFIED:
+ o1Names = ( ( SchemaObject ) ocd1.getDestination() ).getNames();
+ break;
+ case REMOVED:
+ o1Names = ( ( SchemaObject ) ocd1.getSource() ).getNames();
+ break;
+ case IDENTICAL:
+ o1Names = ( ( SchemaObject ) ocd1.getDestination() ).getNames();
+ break;
+ }
+
+ switch ( ocd2.getType() )
+ {
+ case ADDED:
+ o2Names = ( ( SchemaObject ) ocd2.getDestination() ).getNames();
+ break;
+ case MODIFIED:
+ o2Names = ( ( SchemaObject ) ocd2.getDestination() ).getNames();
+ break;
+ case REMOVED:
+ o2Names = ( ( SchemaObject ) ocd2.getSource() ).getNames();
+ break;
+ case IDENTICAL:
+ o2Names = ( ( SchemaObject ) ocd2.getDestination() ).getNames();
+ break;
+ }
+ }
+ else if ( ( o1 instanceof AttributeTypeDifference ) && ( o2 instanceof ObjectClassDifference ) )
+ {
+ AttributeTypeDifference atd = ( AttributeTypeDifference ) o1;
+ ObjectClassDifference ocd = ( ObjectClassDifference ) o2;
+
+ switch ( atd.getType() )
+ {
+ case ADDED:
+ o1Names = ( ( SchemaObject ) atd.getDestination() ).getNames();
+ break;
+ case MODIFIED:
+ o1Names = ( ( SchemaObject ) atd.getDestination() ).getNames();
+ break;
+ case REMOVED:
+ o1Names = ( ( SchemaObject ) atd.getSource() ).getNames();
+ break;
+ case IDENTICAL:
+ o1Names = ( ( SchemaObject ) atd.getDestination() ).getNames();
+ break;
+ }
+
+ switch ( ocd.getType() )
+ {
+ case ADDED:
+ o2Names = ( ( SchemaObject ) ocd.getDestination() ).getNames();
+ break;
+ case MODIFIED:
+ o2Names = ( ( SchemaObject ) ocd.getDestination() ).getNames();
+ break;
+ case REMOVED:
+ o2Names = ( ( SchemaObject ) ocd.getSource() ).getNames();
+ break;
+ case IDENTICAL:
+ o2Names = ( ( SchemaObject ) ocd.getDestination() ).getNames();
+ break;
+ }
+ }
+ else if ( ( o1 instanceof ObjectClassDifference ) && ( o2 instanceof AttributeTypeDifference ) )
+ {
+ ObjectClassDifference ocd = ( ObjectClassDifference ) o1;
+ AttributeTypeDifference atd = ( AttributeTypeDifference ) o2;
+
+ switch ( ocd.getType() )
+ {
+ case ADDED:
+ o1Names = ( ( SchemaObject ) ocd.getDestination() ).getNames();
+ break;
+ case MODIFIED:
+ o1Names = ( ( SchemaObject ) ocd.getDestination() ).getNames();
+ break;
+ case REMOVED:
+ o1Names = ( ( SchemaObject ) ocd.getSource() ).getNames();
+ break;
+ case IDENTICAL:
+ o1Names = ( ( SchemaObject ) ocd.getDestination() ).getNames();
+ break;
+ }
+
+ switch ( atd.getType() )
+ {
+ case ADDED:
+ o2Names = ( ( SchemaObject ) atd.getDestination() ).getNames();
+ break;
+ case MODIFIED:
+ o2Names = ( ( SchemaObject ) atd.getDestination() ).getNames();
+ break;
+ case REMOVED:
+ o2Names = ( ( SchemaObject ) atd.getSource() ).getNames();
+ break;
+ case IDENTICAL:
+ o2Names = ( ( SchemaObject ) atd.getDestination() ).getNames();
+ break;
+ }
+ }
+
+ // Comparing the First Name
+ if ( ( o1Names != null ) && ( o2Names != null ) )
+ {
+ if ( ( o1Names.length > 0 ) && ( o2Names.length > 0 ) )
+ {
+ return o1Names[0].compareToIgnoreCase( o2Names[0] );
+ }
+ else if ( ( o1Names.length == 0 ) && ( o2Names.length > 0 ) )
+ {
+ return "".compareToIgnoreCase( o2Names[0] );
+ }
+ else if ( ( o1Names.length > 0 ) && ( o2Names.length == 0 ) )
+ {
+ return o1Names[0].compareToIgnoreCase( "" );
+ }
+ }
+
+ // Default
+ return o1.toString().compareToIgnoreCase( o2.toString() );
+ }
+}
Added: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/Folder.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/Folder.java?view=auto&rev=558013
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/Folder.java (added)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/Folder.java Fri Jul 20 07:55:03 2007
@@ -0,0 +1,146 @@
+package org.apache.directory.studio.apacheds.schemaeditor.view.widget;
+
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.directory.studio.apacheds.schemaeditor.model.difference.Difference;
+import org.apache.directory.studio.apacheds.schemaeditor.view.wrappers.TreeNode;
+
+
+/**
+ * This used to represent a folder in a TreeViewer.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class Folder
+{
+ /** The children */
+ protected List<Difference> children;
+
+ /**
+ * This enum represents the different types of folders.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+ public enum FolderType
+ {
+ NONE, ATTRIBUTE_TYPE, OBJECT_CLASS, ERROR, WARNING
+ }
+
+ /** The type of the Folder */
+ private FolderType type = FolderType.NONE;
+
+ /** The name of the Folder */
+ private String name = "";
+
+ private static final String NAME_AT = "Attribute Types";
+ private static final String NAME_OC = "Object Classes";
+
+
+ /**
+ * Creates a new instance of Folder.
+ *
+ * @param type
+ * the type of the Folder
+ * @param parent
+ * the parent TreeNode
+ */
+ public Folder( FolderType type )
+ {
+ this.type = type;
+
+ switch ( type )
+ {
+ case ATTRIBUTE_TYPE:
+ name = NAME_AT;
+ break;
+ case OBJECT_CLASS:
+ name = NAME_OC;
+ break;
+ }
+ }
+
+
+ /**
+ * Get the type of the Folder.
+ *
+ * @return
+ * the type of the Folder
+ */
+ public FolderType getType()
+ {
+ return type;
+ }
+
+
+ /**
+ * Gets the name of the Folder.
+ *
+ * @return
+ * the name of the Folder
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+
+ public boolean hasChildren()
+ {
+ if ( children == null )
+ {
+ return false;
+ }
+
+ return !children.isEmpty();
+ }
+
+
+ public List<Difference> getChildren()
+ {
+ if ( children == null )
+ {
+ children = new ArrayList<Difference>();
+ }
+
+ return children;
+ }
+
+
+ public void addChild( Difference diff )
+ {
+ if ( children == null )
+ {
+ children = new ArrayList<Difference>();
+ }
+
+ if ( !children.contains( diff ) )
+ {
+ children.add( diff );
+ }
+ }
+
+
+ public void removeChild( TreeNode node )
+ {
+ if ( children != null )
+ {
+ children.remove( node );
+ }
+ }
+
+
+ public boolean addAllChildren( Collection<? extends Difference> c )
+ {
+ if ( children == null )
+ {
+ children = new ArrayList<Difference>();
+ }
+
+ return children.addAll( c );
+ }
+}
Added: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/OidSorter.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/OidSorter.java?view=auto&rev=558013
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/OidSorter.java (added)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/OidSorter.java Fri Jul 20 07:55:03 2007
@@ -0,0 +1,195 @@
+/*
+ * 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.widget;
+
+
+import java.util.Comparator;
+
+import org.apache.directory.shared.ldap.schema.SchemaObject;
+import org.apache.directory.studio.apacheds.schemaeditor.model.difference.AttributeTypeDifference;
+import org.apache.directory.studio.apacheds.schemaeditor.model.difference.ObjectClassDifference;
+
+
+/**
+ * This class is used to compare and sort ascending two DisplayableTreeElement
+ */
+public class OidSorter implements Comparator<Object>
+{
+ /* (non-Javadoc)
+ * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
+ */
+ public int compare( Object o1, Object o2 )
+ {
+ String oid1 = "";
+ String oid2 = "";
+
+ if ( ( o1 instanceof AttributeTypeDifference ) && ( o2 instanceof AttributeTypeDifference ) )
+ {
+ AttributeTypeDifference atd1 = ( AttributeTypeDifference ) o1;
+ AttributeTypeDifference atd2 = ( AttributeTypeDifference ) o2;
+
+ switch ( atd1.getType() )
+ {
+ case ADDED:
+ oid1 = ( ( SchemaObject ) atd1.getDestination() ).getOid();
+ break;
+ case MODIFIED:
+ oid1 = ( ( SchemaObject ) atd1.getDestination() ).getOid();
+ break;
+ case REMOVED:
+ oid1 = ( ( SchemaObject ) atd1.getSource() ).getOid();
+ break;
+ case IDENTICAL:
+ oid1 = ( ( SchemaObject ) atd1.getDestination() ).getOid();
+ break;
+ }
+
+ switch ( atd2.getType() )
+ {
+ case ADDED:
+ oid2 = ( ( SchemaObject ) atd2.getDestination() ).getOid();
+ break;
+ case MODIFIED:
+ oid2 = ( ( SchemaObject ) atd2.getDestination() ).getOid();
+ break;
+ case REMOVED:
+ oid2 = ( ( SchemaObject ) atd2.getSource() ).getOid();
+ break;
+ case IDENTICAL:
+ oid2 = ( ( SchemaObject ) atd2.getDestination() ).getOid();
+ break;
+ }
+ }
+ else if ( ( o1 instanceof ObjectClassDifference ) && ( o2 instanceof ObjectClassDifference ) )
+ {
+ ObjectClassDifference ocd1 = ( ObjectClassDifference ) o1;
+ ObjectClassDifference ocd2 = ( ObjectClassDifference ) o2;
+
+ switch ( ocd1.getType() )
+ {
+ case ADDED:
+ oid1 = ( ( SchemaObject ) ocd1.getDestination() ).getOid();
+ break;
+ case MODIFIED:
+ oid1 = ( ( SchemaObject ) ocd1.getDestination() ).getOid();
+ break;
+ case REMOVED:
+ oid1 = ( ( SchemaObject ) ocd1.getSource() ).getOid();
+ break;
+ case IDENTICAL:
+ oid1 = ( ( SchemaObject ) ocd1.getDestination() ).getOid();
+ break;
+ }
+
+ switch ( ocd2.getType() )
+ {
+ case ADDED:
+ oid2 = ( ( SchemaObject ) ocd2.getDestination() ).getOid();
+ break;
+ case MODIFIED:
+ oid2 = ( ( SchemaObject ) ocd2.getDestination() ).getOid();
+ break;
+ case REMOVED:
+ oid2 = ( ( SchemaObject ) ocd2.getSource() ).getOid();
+ break;
+ case IDENTICAL:
+ oid2 = ( ( SchemaObject ) ocd2.getDestination() ).getOid();
+ break;
+ }
+ }
+ else if ( ( o1 instanceof AttributeTypeDifference ) && ( o2 instanceof ObjectClassDifference ) )
+ {
+ AttributeTypeDifference atd = ( AttributeTypeDifference ) o1;
+ ObjectClassDifference ocd = ( ObjectClassDifference ) o2;
+
+ switch ( atd.getType() )
+ {
+ case ADDED:
+ oid1 = ( ( SchemaObject ) atd.getDestination() ).getOid();
+ break;
+ case MODIFIED:
+ oid1 = ( ( SchemaObject ) atd.getDestination() ).getOid();
+ break;
+ case REMOVED:
+ oid1 = ( ( SchemaObject ) atd.getSource() ).getOid();
+ break;
+ case IDENTICAL:
+ oid1 = ( ( SchemaObject ) atd.getDestination() ).getOid();
+ break;
+ }
+
+ switch ( ocd.getType() )
+ {
+ case ADDED:
+ oid2 = ( ( SchemaObject ) ocd.getDestination() ).getOid();
+ break;
+ case MODIFIED:
+ oid2 = ( ( SchemaObject ) ocd.getDestination() ).getOid();
+ break;
+ case REMOVED:
+ oid2 = ( ( SchemaObject ) ocd.getSource() ).getOid();
+ break;
+ case IDENTICAL:
+ oid2 = ( ( SchemaObject ) ocd.getDestination() ).getOid();
+ break;
+ }
+ }
+ else if ( ( o1 instanceof ObjectClassDifference ) && ( o2 instanceof AttributeTypeDifference ) )
+ {
+ ObjectClassDifference ocd = ( ObjectClassDifference ) o1;
+ AttributeTypeDifference atd = ( AttributeTypeDifference ) o2;
+
+ switch ( ocd.getType() )
+ {
+ case ADDED:
+ oid1 = ( ( SchemaObject ) ocd.getDestination() ).getOid();
+ break;
+ case MODIFIED:
+ oid1 = ( ( SchemaObject ) ocd.getDestination() ).getOid();
+ break;
+ case REMOVED:
+ oid1 = ( ( SchemaObject ) ocd.getSource() ).getOid();
+ break;
+ case IDENTICAL:
+ oid1 = ( ( SchemaObject ) ocd.getDestination() ).getOid();
+ break;
+ }
+
+ switch ( atd.getType() )
+ {
+ case ADDED:
+ oid2 = ( ( SchemaObject ) atd.getDestination() ).getOid();
+ break;
+ case MODIFIED:
+ oid2 = ( ( SchemaObject ) atd.getDestination() ).getOid();
+ break;
+ case REMOVED:
+ oid2 = ( ( SchemaObject ) atd.getSource() ).getOid();
+ break;
+ case IDENTICAL:
+ oid2 = ( ( SchemaObject ) atd.getDestination() ).getOid();
+ break;
+ }
+ }
+
+ return oid1.compareToIgnoreCase( oid2 );
+ }
+}
Copied: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/PropertySorter.java (from r557690, directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetPropertySorter.java)
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/PropertySorter.java?view=diff&rev=558013&p1=directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetPropertySorter.java&r1=557690&p2=directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/PropertySorter.java&r2=558013
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/DifferencesWidgetPropertySorter.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/widget/PropertySorter.java Fri Jul 20 07:55:03 2007
@@ -26,13 +26,13 @@
import org.apache.directory.studio.apacheds.schemaeditor.model.difference.ClassTypeDifference;
import org.apache.directory.studio.apacheds.schemaeditor.model.difference.CollectiveDifference;
import org.apache.directory.studio.apacheds.schemaeditor.model.difference.DescriptionDifference;
-import org.apache.directory.studio.apacheds.schemaeditor.model.difference.Difference;
import org.apache.directory.studio.apacheds.schemaeditor.model.difference.EqualityDifference;
import org.apache.directory.studio.apacheds.schemaeditor.model.difference.MandatoryATDifference;
import org.apache.directory.studio.apacheds.schemaeditor.model.difference.NoUserModificationDifference;
import org.apache.directory.studio.apacheds.schemaeditor.model.difference.ObsoleteDifference;
import org.apache.directory.studio.apacheds.schemaeditor.model.difference.OptionalATDifference;
import org.apache.directory.studio.apacheds.schemaeditor.model.difference.OrderingDifference;
+import org.apache.directory.studio.apacheds.schemaeditor.model.difference.PropertyDifference;
import org.apache.directory.studio.apacheds.schemaeditor.model.difference.SingleValueDifference;
import org.apache.directory.studio.apacheds.schemaeditor.model.difference.SubstringDifference;
import org.apache.directory.studio.apacheds.schemaeditor.model.difference.SuperiorATDifference;
@@ -48,12 +48,12 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$, $Date$
*/
-public class DifferencesWidgetPropertySorter implements Comparator<Difference>
+public class PropertySorter implements Comparator<PropertyDifference>
{
/* (non-Javadoc)
* @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
*/
- public int compare( Difference diff1, Difference diff2 )
+ public int compare( PropertyDifference diff1, PropertyDifference diff2 )
{
return getWeight( diff1 ) - getWeight( diff2 );
}
@@ -67,7 +67,7 @@
* @return
* the weight of the difference
*/
- private int getWeight( Difference diff )
+ private int getWeight( PropertyDifference diff )
{
if ( diff instanceof AliasDifference )
{