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/10/03 15:18:45 UTC
svn commit: r581592 - in
/directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor:
controller/SchemaViewController.java
view/views/SchemaViewContentProvider.java
Author: pamarcelot
Date: Wed Oct 3 06:18:44 2007
New Revision: 581592
URL: http://svn.apache.org/viewvc?rev=581592&view=rev
Log:
Part of a fix for DIRSTUDIO-200 (Add an OC and AT hierarchical global view)
Modified:
directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/SchemaViewController.java
directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SchemaViewContentProvider.java
Modified: directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/SchemaViewController.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/SchemaViewController.java?rev=581592&r1=581591&r2=581592&view=diff
==============================================================================
--- directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/SchemaViewController.java (original)
+++ directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/controller/SchemaViewController.java Wed Oct 3 06:18:44 2007
@@ -59,14 +59,12 @@
import org.apache.directory.studio.schemaeditor.view.wrappers.ObjectClassWrapper;
import org.apache.directory.studio.schemaeditor.view.wrappers.SchemaWrapper;
import org.apache.directory.studio.schemaeditor.view.wrappers.TreeNode;
-import org.apache.directory.studio.schemaeditor.view.wrappers.Folder.FolderType;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.commands.ActionHandler;
-import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.viewers.DoubleClickEvent;
@@ -97,15 +95,15 @@
/** The associated view */
private SchemaView view;
+ /** The TreeViewer */
+ private TreeViewer viewer;
+
/** The authorized Preferences keys*/
private List<String> authorizedPrefs;
/** The Context Menu */
private MenuManager contextMenu;
- /** The TreeViewer */
- private TreeViewer viewer;
-
/** The SchemaHandlerListener */
private SchemaHandlerListener schemaHandlerListener = new SchemaHandlerAdapter()
{
@@ -114,57 +112,14 @@
*/
public void attributeTypeAdded( AttributeTypeImpl at )
{
- IPreferenceStore store = Activator.getDefault().getPreferenceStore();
SchemaViewContentProvider contentProvider = ( SchemaViewContentProvider ) viewer.getContentProvider();
-
contentProvider.attributeTypeAdded( at );
view.refresh();
- int presentation = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION );
- if ( presentation == PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION_FLAT )
- {
- TreeNode schemaWrapper = findSchemaWrapperInTree( at.getSchema() );
-
- if ( schemaWrapper != null )
- {
- AttributeTypeWrapper atw = null;
- int group = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_GROUPING );
- if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_FOLDERS )
- {
- List<TreeNode> children = schemaWrapper.getChildren();
- for ( TreeNode child : children )
- {
- Folder folder = ( Folder ) child;
- if ( folder.getType() == FolderType.ATTRIBUTE_TYPE )
- {
- atw = new AttributeTypeWrapper( at, folder );
- folder.addChild( atw );
- break;
- }
- }
- }
- else if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_MIXED )
- {
- atw = new AttributeTypeWrapper( at, schemaWrapper );
- schemaWrapper.addChild( atw );
- }
-
- viewer.refresh( schemaWrapper );
- if ( atw != null )
- {
- viewer.setSelection( new StructuredSelection( atw ) );
- }
- }
- else
- {
- // An error has occurred we need to reload the view.
- view.reloadViewer();
- }
- }
- else if ( presentation == PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION_HIERARCHICAL )
+ TreeNode wrapper = contentProvider.getWrapper( at );
+ if ( wrapper != null )
{
- contentProvider.attributeTypeAdded( at );
- view.refresh();
+ viewer.setSelection( new StructuredSelection( wrapper ) );
}
}
@@ -174,32 +129,8 @@
*/
public void attributeTypeModified( AttributeTypeImpl at )
{
- IPreferenceStore store = Activator.getDefault().getPreferenceStore();
- SchemaViewContentProvider contentProvider = ( SchemaViewContentProvider ) viewer.getContentProvider();
-
- contentProvider.attributeTypeModified( at );
+ ( ( SchemaViewContentProvider ) viewer.getContentProvider() ).attributeTypeModified( at );
view.refresh();
-
- int presentation = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION );
- if ( presentation == PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION_FLAT )
- {
- AttributeTypeWrapper atw = findAttributeTypeWrapperInTree( at );
-
- if ( atw != null )
- {
- updateNodeAndParents( atw );
- }
- else
- {
- // An error has occurred we need to reload the view.
- view.reloadViewer();
- }
- }
- else if ( presentation == PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION_HIERARCHICAL )
- {
- contentProvider.attributeTypeModified( at );
- view.refresh();
- }
}
@@ -208,33 +139,8 @@
*/
public void attributeTypeRemoved( AttributeTypeImpl at )
{
- IPreferenceStore store = Activator.getDefault().getPreferenceStore();
- SchemaViewContentProvider contentProvider = ( SchemaViewContentProvider ) viewer.getContentProvider();
-
- contentProvider.attributeTypeRemoved( at );
+ ( ( SchemaViewContentProvider ) viewer.getContentProvider() ).attributeTypeRemoved( at );
view.refresh();
-
- int presentation = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION );
- if ( presentation == PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION_FLAT )
- {
- AttributeTypeWrapper atw = findAttributeTypeWrapperInTree( at );
-
- if ( atw != null )
- {
- atw.getParent().removeChild( atw );
- viewer.refresh( atw.getParent() );
- }
- else
- {
- // An error has occurred we need to reload the view.
- view.reloadViewer();
- }
- }
- else if ( presentation == PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION_HIERARCHICAL )
- {
- contentProvider.attributeTypeRemoved( at );
- view.refresh();
- }
}
@@ -243,57 +149,14 @@
*/
public void objectClassAdded( ObjectClassImpl oc )
{
- IPreferenceStore store = Activator.getDefault().getPreferenceStore();
SchemaViewContentProvider contentProvider = ( SchemaViewContentProvider ) viewer.getContentProvider();
-
contentProvider.objectClassAdded( oc );
view.refresh();
- int presentation = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION );
- if ( presentation == PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION_FLAT )
- {
- TreeNode schemaWrapper = findSchemaWrapperInTree( oc.getSchema() );
-
- if ( schemaWrapper != null )
- {
- ObjectClassWrapper ocw = null;
- int group = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_GROUPING );
- if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_FOLDERS )
- {
- List<TreeNode> children = schemaWrapper.getChildren();
- for ( TreeNode child : children )
- {
- Folder folder = ( Folder ) child;
- if ( folder.getType() == FolderType.OBJECT_CLASS )
- {
- ocw = new ObjectClassWrapper( oc, folder );
- folder.addChild( ocw );
- break;
- }
- }
- }
- else if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_MIXED )
- {
- ocw = new ObjectClassWrapper( oc, schemaWrapper );
- schemaWrapper.addChild( ocw );
- }
-
- view.refresh();
- if ( ocw != null )
- {
- viewer.setSelection( new StructuredSelection( ocw ) );
- }
- }
- else
- {
- // An error has occurred we need to reload the view.
- view.reloadViewer();
- }
- }
- else if ( presentation == PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION_HIERARCHICAL )
+ TreeNode wrapper = contentProvider.getWrapper( oc );
+ if ( wrapper != null )
{
- contentProvider.objectClassAdded( oc );
- view.refresh();
+ viewer.setSelection( new StructuredSelection( wrapper ) );
}
}
@@ -303,33 +166,8 @@
*/
public void objectClassModified( ObjectClassImpl oc )
{
- IPreferenceStore store = Activator.getDefault().getPreferenceStore();
- SchemaViewContentProvider contentProvider = ( SchemaViewContentProvider ) viewer.getContentProvider();
-
-
- contentProvider.objectClassModified( oc );
+ ( ( SchemaViewContentProvider ) viewer.getContentProvider() ).objectClassModified( oc );
view.refresh();
-
- int presentation = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION );
- if ( presentation == PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION_FLAT )
- {
- ObjectClassWrapper ocw = findObjectClassWrapperInTree( oc );
-
- if ( ocw != null )
- {
- updateNodeAndParents( ocw );
- }
- else
- {
- // An error has occurred we need to reload the view.
- view.reloadViewer();
- }
- }
- else if ( presentation == PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION_HIERARCHICAL )
- {
- contentProvider.objectClassModified( oc );
- view.refresh();
- }
}
@@ -338,34 +176,8 @@
*/
public void objectClassRemoved( ObjectClassImpl oc )
{
- IPreferenceStore store = Activator.getDefault().getPreferenceStore();
- SchemaViewContentProvider contentProvider = ( SchemaViewContentProvider ) viewer.getContentProvider();
-
-
- contentProvider.objectClassRemoved( oc );
+ ( ( SchemaViewContentProvider ) viewer.getContentProvider() ).objectClassRemoved( oc );
view.refresh();
-
- int presentation = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION );
- if ( presentation == PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION_FLAT )
- {
- ObjectClassWrapper ocw = findObjectClassWrapperInTree( oc );
-
- if ( ocw != null )
- {
- ocw.getParent().removeChild( ocw );
- viewer.refresh( ocw.getParent() );
- }
- else
- {
- // An error has occurred we need to reload the view.
- view.reloadViewer();
- }
- }
- else if ( presentation == PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION_HIERARCHICAL )
- {
- contentProvider.objectClassRemoved( oc );
- view.refresh();
- }
}
@@ -374,67 +186,23 @@
*/
public void schemaAdded( Schema schema )
{
- IPreferenceStore store = Activator.getDefault().getPreferenceStore();
-
SchemaViewContentProvider contentProvider = ( SchemaViewContentProvider ) viewer.getContentProvider();
-
-
contentProvider.schemaAdded( schema );
- view.refresh();
-
- int presentation = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION );
- if ( presentation == PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION_FLAT )
- {
- final TreeNode rootNode = ( TreeNode ) viewer.getInput();
- final SchemaWrapper schemaWrapper = new SchemaWrapper( schema, rootNode );
- rootNode.addChild( schemaWrapper );
-
- int group = Activator.getDefault().getPreferenceStore().getInt(
- PluginConstants.PREFS_SCHEMA_VIEW_GROUPING );
- if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_FOLDERS )
- {
- Folder atFolder = new Folder( FolderType.ATTRIBUTE_TYPE, schemaWrapper );
- schemaWrapper.addChild( atFolder );
-
- for ( AttributeTypeImpl attributeType : schema.getAttributeTypes() )
- {
- atFolder.addChild( new AttributeTypeWrapper( attributeType, atFolder ) );
- }
- Folder ocFolder = new Folder( FolderType.OBJECT_CLASS, schemaWrapper );
- schemaWrapper.addChild( ocFolder );
+ final TreeNode wrapper = contentProvider.getWrapper( schema );
- for ( ObjectClassImpl objectClass : schema.getObjectClasses() )
- {
- ocFolder.addChild( new ObjectClassWrapper( objectClass, ocFolder ) );
- }
- }
- else if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_MIXED )
+ Display.getDefault().asyncExec( new Runnable()
+ {
+ public void run()
{
- for ( AttributeTypeImpl attributeType : schema.getAttributeTypes() )
- {
- schemaWrapper.addChild( new AttributeTypeWrapper( attributeType, schemaWrapper ) );
- }
+ view.refresh();
- for ( ObjectClassImpl objectClass : schema.getObjectClasses() )
+ if ( wrapper != null )
{
- schemaWrapper.addChild( new ObjectClassWrapper( objectClass, schemaWrapper ) );
+ viewer.setSelection( new StructuredSelection( wrapper ) );
}
}
-
- Display.getDefault().asyncExec( new Runnable()
- {
- public void run()
- {
- viewer.refresh( rootNode );
- viewer.setSelection( new StructuredSelection( schemaWrapper ) );
- }
- } );
- }
- else if ( presentation == PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION_HIERARCHICAL )
- {
- view.refresh();
- }
+ } );
}
@@ -443,32 +211,8 @@
*/
public void schemaRemoved( Schema schema )
{
- IPreferenceStore store = Activator.getDefault().getPreferenceStore();
-
- SchemaViewContentProvider contentProvider = ( SchemaViewContentProvider ) viewer.getContentProvider();
-
- contentProvider.schemaAdded( schema );
+ ( ( SchemaViewContentProvider ) viewer.getContentProvider() ).schemaRemoved( schema );
view.refresh();
-
- int presentation = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION );
- if ( presentation == PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION_FLAT )
- {
- TreeNode schemaWrapper = findSchemaWrapperInTree( schema.getName() );
- if ( schemaWrapper != null )
- {
- schemaWrapper.getParent().removeChild( schemaWrapper );
- viewer.refresh( viewer.getInput() );
- }
- else
- {
- // An error has occurred we need to reload the view.
- view.reloadViewer();
- }
- }
- else if ( presentation == PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION_HIERARCHICAL )
- {
- view.refresh();
- }
}
};
@@ -815,159 +559,6 @@
}
}
} );
- }
-
-
- /**
- * Finds the corresponding SchemaWrapper in the Tree.
- *
- * @param name
- * the name of the SchemaWrapper to search
- * @return
- * the corresponding SchemaWrapper in the Tree
- */
- private SchemaWrapper findSchemaWrapperInTree( String name )
- {
- List<TreeNode> schemaWrappers = ( ( TreeNode ) viewer.getInput() ).getChildren();
- for ( TreeNode sw : schemaWrappers )
- {
- if ( ( ( SchemaWrapper ) sw ).getSchema().getName().toLowerCase().equals( name.toLowerCase() ) )
- {
- return ( SchemaWrapper ) sw;
- }
- }
-
- return null;
- }
-
-
- /**
- * Finds the corresponding AttributeTypeWrapper in the Tree.
- *
- * @param at
- * the attribute type
- * @return
- * the corresponding AttributeTypeWrapper in the Tree
- */
- private AttributeTypeWrapper findAttributeTypeWrapperInTree( AttributeTypeImpl at )
- {
- SchemaWrapper schemaWrapper = findSchemaWrapperInTree( at.getSchema() );
- if ( schemaWrapper == null )
- {
- return null;
- }
-
- // Finding the correct node
- int group = Activator.getDefault().getPreferenceStore().getInt( PluginConstants.PREFS_SCHEMA_VIEW_GROUPING );
- List<TreeNode> children = schemaWrapper.getChildren();
- if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_FOLDERS )
- {
- for ( TreeNode child : children )
- {
- Folder folder = ( Folder ) child;
- if ( folder.getType() == FolderType.ATTRIBUTE_TYPE )
- {
- for ( TreeNode folderChild : folder.getChildren() )
- {
- AttributeTypeWrapper atw = ( AttributeTypeWrapper ) folderChild;
- if ( atw.getAttributeType().equals( at ) )
- {
- return atw;
- }
- }
- }
- }
- }
- else if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_MIXED )
- {
- for ( Object child : children )
- {
- if ( child instanceof AttributeTypeImpl )
- {
- AttributeTypeWrapper atw = ( AttributeTypeWrapper ) child;
- if ( atw.getAttributeType().equals( at ) )
- {
- return atw;
- }
- }
- }
- }
-
- return null;
- }
-
-
- /**
- * Finds the corresponding ObjectClassWrapper in the Tree.
- *
- * @param oc
- * the attribute type
- * @return
- * the corresponding ObjectClassWrapper in the Tree
- */
- private ObjectClassWrapper findObjectClassWrapperInTree( ObjectClassImpl oc )
- {
- SchemaWrapper schemaWrapper = findSchemaWrapperInTree( oc.getSchema() );
- if ( schemaWrapper == null )
- {
- return null;
- }
-
- // Finding the correct node
- int group = Activator.getDefault().getPreferenceStore().getInt( PluginConstants.PREFS_SCHEMA_VIEW_GROUPING );
- List<TreeNode> children = schemaWrapper.getChildren();
- if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_FOLDERS )
- {
- for ( TreeNode child : children )
- {
- Folder folder = ( Folder ) child;
- if ( folder.getType() == FolderType.OBJECT_CLASS )
- {
- for ( TreeNode folderChild : folder.getChildren() )
- {
- ObjectClassWrapper ocw = ( ObjectClassWrapper ) folderChild;
- if ( ocw.getObjectClass().equals( oc ) )
- {
- return ocw;
- }
- }
- }
- }
- }
- else if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_MIXED )
- {
- for ( Object child : children )
- {
- if ( child instanceof ObjectClassWrapper )
- {
- ObjectClassWrapper ocw = ( ObjectClassWrapper ) child;
- if ( ocw.getObjectClass().equals( oc ) )
- {
- return ocw;
- }
- }
- }
- }
-
- return null;
- }
-
-
- /**
- * Updates the given node and its parents.
- *
- * @param node
- * the node
- */
- public void updateNodeAndParents( TreeNode node )
- {
- viewer.update( node, null );
- TreeNode parent = node.getParent();
- while ( parent != null )
- {
- viewer.update( parent, null );
- parent = parent.getParent();
- }
}
Modified: directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SchemaViewContentProvider.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SchemaViewContentProvider.java?rev=581592&r1=581591&r2=581592&view=diff
==============================================================================
--- directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SchemaViewContentProvider.java (original)
+++ directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SchemaViewContentProvider.java Wed Oct 3 06:18:44 2007
@@ -145,39 +145,7 @@
List<Schema> schemas = schemaHandler.getSchemas();
for ( Schema schema : schemas )
{
- SchemaWrapper schemaWrapper = new SchemaWrapper( schema, root );
- root.addChild( schemaWrapper );
-
- if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_FOLDERS )
- {
- Folder atFolder = new Folder( FolderType.ATTRIBUTE_TYPE, schemaWrapper );
- schemaWrapper.addChild( atFolder );
-
- for ( AttributeTypeImpl attributeType : schema.getAttributeTypes() )
- {
- atFolder.addChild( new AttributeTypeWrapper( attributeType, atFolder ) );
- }
-
- Folder ocFolder = new Folder( FolderType.OBJECT_CLASS, schemaWrapper );
- schemaWrapper.addChild( ocFolder );
-
- for ( ObjectClassImpl objectClass : schema.getObjectClasses() )
- {
- ocFolder.addChild( new ObjectClassWrapper( objectClass, ocFolder ) );
- }
- }
- else if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_MIXED )
- {
- for ( AttributeTypeImpl attributeType : schema.getAttributeTypes() )
- {
- schemaWrapper.addChild( new AttributeTypeWrapper( attributeType, schemaWrapper ) );
- }
-
- for ( ObjectClassImpl objectClass : schema.getObjectClasses() )
- {
- schemaWrapper.addChild( new ObjectClassWrapper( objectClass, schemaWrapper ) );
- }
- }
+ addSchemaFlatPresentation( schema );
}
}
}
@@ -495,7 +463,31 @@
*/
public void attributeTypeAddedFlatPresentation( AttributeTypeImpl at )
{
- // TODO implement
+ SchemaWrapper schemaWrapper = ( SchemaWrapper ) getWrapper( Activator.getDefault().getSchemaHandler()
+ .getSchema( at.getSchema() ) );
+ if ( schemaWrapper != null )
+ {
+ AttributeTypeWrapper atw = null;
+ int group = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_GROUPING );
+ if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_FOLDERS )
+ {
+ for ( TreeNode child : schemaWrapper.getChildren() )
+ {
+ if ( ( ( Folder ) child ).getType() == FolderType.ATTRIBUTE_TYPE )
+ {
+ atw = new AttributeTypeWrapper( at, child );
+ break;
+ }
+ }
+ }
+ else if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_MIXED )
+ {
+ atw = new AttributeTypeWrapper( at, schemaWrapper );
+ }
+
+ atw.getParent().addChild( atw );
+ elementsToWrappersMap.put( at, atw );
+ }
}
@@ -603,7 +595,7 @@
*/
public void attributeTypeModifiedFlatPresentation( AttributeTypeImpl at )
{
- // TODO implement
+ // Nothing to do
}
@@ -704,7 +696,12 @@
*/
private void attributeTypeRemovedFlatPresentation( AttributeTypeImpl at )
{
- // TODO Implement
+ AttributeTypeWrapper atw = ( AttributeTypeWrapper ) getWrapper( at );
+ if ( atw != null )
+ {
+ atw.getParent().removeChild( atw );
+ elementsToWrappersMap.remove( at, atw );
+ }
}
@@ -791,6 +788,10 @@
elementsToWrappersMap.remove( ocw.getObjectClass(), child );
removeRecursiveChildren( ocw );
}
+ else
+ {
+ removeRecursiveChildren( child );
+ }
}
}
@@ -824,7 +825,31 @@
*/
public void objectClassAddedFlatlPresentation( ObjectClassImpl oc )
{
- // TODO implement
+ SchemaWrapper schemaWrapper = ( SchemaWrapper ) getWrapper( Activator.getDefault().getSchemaHandler()
+ .getSchema( oc.getSchema() ) );
+ if ( schemaWrapper != null )
+ {
+ ObjectClassWrapper ocw = null;
+ int group = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_GROUPING );
+ if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_FOLDERS )
+ {
+ for ( TreeNode child : schemaWrapper.getChildren() )
+ {
+ if ( ( ( Folder ) child ).getType() == FolderType.OBJECT_CLASS )
+ {
+ ocw = new ObjectClassWrapper( oc, child );
+ break;
+ }
+ }
+ }
+ else if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_MIXED )
+ {
+ ocw = new ObjectClassWrapper( oc, schemaWrapper );
+ }
+
+ ocw.getParent().addChild( ocw );
+ elementsToWrappersMap.put( oc, ocw );
+ }
}
@@ -942,7 +967,7 @@
*/
public void objectClassModifiedFlatPresentation( ObjectClassImpl oc )
{
- // TODO implement
+ // Nothing to do
}
@@ -1043,7 +1068,12 @@
*/
public void objectClassRemovedFlatPresentation( ObjectClassImpl oc )
{
- // TODO Implement
+ ObjectClassWrapper ocw = ( ObjectClassWrapper ) getWrapper( oc );
+ if ( ocw != null )
+ {
+ ocw.getParent().removeChild( ocw );
+ elementsToWrappersMap.remove( oc, ocw );
+ }
}
@@ -1117,6 +1147,41 @@
*/
public void schemaAdded( Schema schema )
{
+ int presentation = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION );
+ if ( presentation == PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION_FLAT )
+ {
+ schemaAddedFlatPresentation( schema );
+ }
+ else if ( presentation == PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION_HIERARCHICAL )
+ {
+ schemaAddedHierarchicalPresentation( schema );
+ }
+ }
+
+
+ /**
+ * Updates the TreeNodes when a schema is added and the
+ * presentation is set as 'Flat'.
+ *
+ * @param oc
+ * the added schema
+ */
+ private void schemaAddedFlatPresentation( Schema schema )
+ {
+ addSchemaFlatPresentation( schema );
+ }
+
+
+ /**
+ * Updates the TreeNodes when a schema is added and the
+ * presentation is set as 'Hierarchical'.
+ *
+ * @param oc
+ * the added schema
+ */
+ private void schemaAddedHierarchicalPresentation( Schema schema )
+ {
+ // TODO implement
}
@@ -1128,5 +1193,100 @@
*/
public void schemaRemoved( Schema schema )
{
+ int presentation = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION );
+ if ( presentation == PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION_FLAT )
+ {
+ schemaRemovedFlatPresentation( schema );
+ }
+ else if ( presentation == PluginConstants.PREFS_SCHEMA_VIEW_SCHEMA_PRESENTATION_HIERARCHICAL )
+ {
+ schemaRemovedHierarchicalPresentation( schema );
+ }
+ }
+
+
+ /**
+ * Updates the TreeNodes when a schema is removed and the
+ * presentation is set as 'Flat'.
+ *
+ * @param schema
+ * the removed schema
+ */
+ private void schemaRemovedFlatPresentation( Schema schema )
+ {
+ SchemaWrapper sw = ( SchemaWrapper ) getWrapper( schema );
+ if ( sw != null )
+ {
+ sw.getParent().removeChild( sw );
+ elementsToWrappersMap.remove( schema, sw );
+ removeRecursiveChildren( sw );
+ }
+ }
+
+
+ /**
+ * Updates the TreeNodes when a schema is removed and the
+ * presentation is set as 'Hierarchical'.
+ *
+ * @param schema
+ * the removed schema
+ */
+ private void schemaRemovedHierarchicalPresentation( Schema schema )
+ {
+ // TODO implement
+
+ }
+
+
+ /**
+ * Adds a schema in 'Flat' Presentation.
+ *
+ * @param schema
+ */
+ public void addSchemaFlatPresentation( Schema schema )
+ {
+ SchemaWrapper schemaWrapper = new SchemaWrapper( schema, root );
+ root.addChild( schemaWrapper );
+ elementsToWrappersMap.put( schema, schemaWrapper );
+
+ int group = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_GROUPING );
+ if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_FOLDERS )
+ {
+ Folder atFolder = new Folder( FolderType.ATTRIBUTE_TYPE, schemaWrapper );
+ schemaWrapper.addChild( atFolder );
+
+ for ( AttributeTypeImpl attributeType : schema.getAttributeTypes() )
+ {
+ AttributeTypeWrapper atw = new AttributeTypeWrapper( attributeType, atFolder );
+ atw.getParent().addChild( atw );
+ elementsToWrappersMap.put( attributeType, atw );
+ }
+
+ Folder ocFolder = new Folder( FolderType.OBJECT_CLASS, schemaWrapper );
+ schemaWrapper.addChild( ocFolder );
+
+ for ( ObjectClassImpl objectClass : schema.getObjectClasses() )
+ {
+ ObjectClassWrapper ocw = new ObjectClassWrapper( objectClass, ocFolder );
+ ocw.getParent().addChild( ocw );
+ elementsToWrappersMap.put( objectClass, ocw );
+ }
+ }
+ else if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_MIXED )
+ {
+ for ( AttributeTypeImpl attributeType : schema.getAttributeTypes() )
+ {
+ AttributeTypeWrapper atw = new AttributeTypeWrapper( attributeType, schemaWrapper );
+ atw.getParent().addChild( atw );
+ elementsToWrappersMap.put( attributeType, atw );
+ }
+
+ for ( ObjectClassImpl objectClass : schema.getObjectClasses() )
+ {
+ ObjectClassWrapper ocw = new ObjectClassWrapper( objectClass, schemaWrapper );
+ ocw.getParent().addChild( ocw );
+ elementsToWrappersMap.put( objectClass, ocw );
+ }
+ }
}
}