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/01/05 15:53:42 UTC
svn commit: r493041 -
/directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/editors/ldif/LdifOutlinePage.java
Author: pamarcelot
Date: Fri Jan 5 06:53:40 2007
New Revision: 493041
URL: http://svn.apache.org/viewvc?view=rev&rev=493041
Log:
Updating the LdifOutlinePage to fix JIRA DIRSTUDIO-26 (The Outline View is not cleared when selecting DIT, Searches or Bookmarks node on the Browser View).
Modified:
directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/editors/ldif/LdifOutlinePage.java
Modified: directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/editors/ldif/LdifOutlinePage.java
URL: http://svn.apache.org/viewvc/directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/editors/ldif/LdifOutlinePage.java?view=diff&rev=493041&r1=493040&r2=493041
==============================================================================
--- directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/editors/ldif/LdifOutlinePage.java (original)
+++ directory/trunks/ldapstudio/ldapstudio-browser-ui/src/main/java/org/apache/directory/ldapstudio/browser/ui/editors/ldif/LdifOutlinePage.java Fri Jan 5 06:53:40 2007
@@ -46,7 +46,6 @@
import org.apache.directory.ldapstudio.browser.ui.BrowserUIPlugin;
import org.apache.directory.ldapstudio.browser.ui.actions.CopyEntryAsLdifAction;
import org.apache.directory.ldapstudio.browser.ui.editors.entry.EntryEditor;
-
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -63,18 +62,34 @@
import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+/**
+ * This class implements the Outline Page for LDIF.
+ * It used to display LDIF files, records, and even LDAP entries.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
public class LdifOutlinePage extends ContentOutlinePage
{
-
+ /** The editor it is attached to */
private IEditorPart editorPart;
+ /**
+ * Creates a new instance of LdifOutlinePage.
+ *
+ * @param editorPart
+ * the editor the Outline page is attached to
+ */
public LdifOutlinePage( IEditorPart editorPart )
{
this.editorPart = editorPart;
}
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.views.contentoutline.ContentOutlinePage#createControl(org.eclipse.swt.widgets.Composite)
+ */
public void createControl( Composite parent )
{
super.createControl( parent );
@@ -221,6 +236,12 @@
}
+ /**
+ * Refreshes this viewer starting with the given element.
+ *
+ * @param element
+ * the element
+ */
public void refresh( Object element )
{
final TreeViewer treeViewer = getTreeViewer();
@@ -231,17 +252,23 @@
}
+ /**
+ * Refreshes this viewer completely with information freshly obtained from this viewer's model.
+ */
public void refresh()
{
-
final TreeViewer treeViewer = getTreeViewer();
if ( treeViewer != null )
{
-
// ISelection selection = treeViewer.getSelection();
// Object[] expandedElements = treeViewer.getExpandedElements();
+ if ( !treeViewer.getTree().isEnabled() )
+ {
+ treeViewer.getTree().setEnabled( true );
+ }
+
if ( this.editorPart != null && this.editorPart instanceof LdifEditor )
{
if ( treeViewer.getInput() != ( ( LdifEditor ) this.editorPart ).getLdifModel() )
@@ -252,15 +279,24 @@
else if ( this.editorPart != null && this.editorPart instanceof EntryEditor )
{
Object o = ( ( EntryEditor ) this.editorPart ).getMainWidget().getViewer().getInput();
- if ( o != null && o instanceof IEntry )
+
+ if ( o == null )
{
- StringBuffer sb = new StringBuffer();
- new CopyEntryAsLdifAction( CopyEntryAsLdifAction.MODE_INCLUDE_OPERATIONAL_ATTRIBUTES )
- .serialializeEntries( new IEntry[]
- { ( IEntry ) o }, sb );
- LdifFile model = new LdifParser().parse( sb.toString() );
- treeViewer.setInput( model );
- treeViewer.expandToLevel( 2 );
+ treeViewer.setInput( null );
+ treeViewer.getTree().setEnabled( false );
+ }
+ else
+ {
+ if ( o instanceof IEntry )
+ {
+ StringBuffer sb = new StringBuffer();
+ new CopyEntryAsLdifAction( CopyEntryAsLdifAction.MODE_INCLUDE_OPERATIONAL_ATTRIBUTES )
+ .serialializeEntries( new IEntry[]
+ { ( IEntry ) o }, sb );
+ LdifFile model = new LdifParser().parse( sb.toString() );
+ treeViewer.setInput( model );
+ treeViewer.expandToLevel( 2 );
+ }
}
}
@@ -272,6 +308,9 @@
}
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.part.Page#dispose()
+ */
public void dispose()
{
super.dispose();
@@ -282,11 +321,19 @@
}
}
+ /**
+ * This class implements the ContentProvider used for the LDIF Outline View
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
private static class LdifContentProvider implements ITreeContentProvider
{
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
+ */
public Object[] getChildren( Object element )
{
-
// file --> records
if ( element instanceof LdifFile )
{
@@ -338,6 +385,14 @@
}
+ /**
+ * Returns a unique line of attribute values from an array of attribute value lines
+ *
+ * @param lines
+ * the attribute value lines
+ * @return
+ * a unique line of attribute values from an array of attribute values lines
+ */
private Object[] getUniqueAttrValLineArray( LdifAttrValLine[] lines )
{
Map uniqueAttrMap = new LinkedHashMap();
@@ -353,39 +408,62 @@
}
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
+ */
public Object getParent( Object element )
{
return null;
}
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
+ */
public boolean hasChildren( Object element )
{
return getChildren( element ) != null && getChildren( element ).length > 0;
}
+ /* (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()
{
}
+ /* (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 )
{
}
}
+ /**
+ * This class implements the LabelProvider used for the LDIF Outline View
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
private static class LdifLabelProvider extends LabelProvider
{
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+ */
public String getText( Object element )
{
-
// Record
if ( element instanceof LdifRecord )
{
@@ -421,9 +499,11 @@
}
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
+ */
public Image getImage( Object element )
{
-
// Record
if ( element instanceof LdifContentRecord )
{
@@ -476,5 +556,4 @@
}
}
}
-
}