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 2012/05/04 15:38:24 UTC

svn commit: r1333956 - in /directory/studio/trunk/plugins/apacheds/src/main/java/org/apache/directory/studio/apacheds/views: ServersTableViewer.java ServersView.java ServersViewLabelProvider.java

Author: pamarcelot
Date: Fri May  4 13:38:23 2012
New Revision: 1333956

URL: http://svn.apache.org/viewvc?rev=1333956&view=rev
Log:
Part of a fix for DIRSTUDIO-811 (Review and remove any source file under Eclipse Public License (EPL) v 1.0).

Modified:
    directory/studio/trunk/plugins/apacheds/src/main/java/org/apache/directory/studio/apacheds/views/ServersTableViewer.java
    directory/studio/trunk/plugins/apacheds/src/main/java/org/apache/directory/studio/apacheds/views/ServersView.java
    directory/studio/trunk/plugins/apacheds/src/main/java/org/apache/directory/studio/apacheds/views/ServersViewLabelProvider.java

Modified: directory/studio/trunk/plugins/apacheds/src/main/java/org/apache/directory/studio/apacheds/views/ServersTableViewer.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/apacheds/src/main/java/org/apache/directory/studio/apacheds/views/ServersTableViewer.java?rev=1333956&r1=1333955&r2=1333956&view=diff
==============================================================================
--- directory/studio/trunk/plugins/apacheds/src/main/java/org/apache/directory/studio/apacheds/views/ServersTableViewer.java (original)
+++ directory/studio/trunk/plugins/apacheds/src/main/java/org/apache/directory/studio/apacheds/views/ServersTableViewer.java Fri May  4 13:38:23 2012
@@ -17,31 +17,23 @@
  *  under the License. 
  *  
  */
-/*******************************************************************************
- * Copyright (c) 2003, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
 package org.apache.directory.studio.apacheds.views;
 
 
 import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.List;
 
+import org.apache.directory.studio.apacheds.model.ServersHandler;
+import org.apache.directory.studio.apacheds.model.ServersHandlerListener;
+import org.apache.directory.studio.apacheds.model.Server;
 import org.apache.directory.studio.apacheds.model.ServerEvent;
 import org.apache.directory.studio.apacheds.model.ServerEventEnum;
-import org.apache.directory.studio.apacheds.model.Server;
 import org.apache.directory.studio.apacheds.model.ServerListener;
 import org.apache.directory.studio.apacheds.model.ServerStateEnum;
-import org.apache.directory.studio.apacheds.model.ServersHandler;
-import org.apache.directory.studio.apacheds.model.ServersHandlerListener;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.ViewerComparator;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Tree;
@@ -64,6 +56,9 @@ public class ServersTableViewer extends 
     /** The label provider */
     private ServersViewLabelProvider labelProvider;
 
+    /** The comparator */
+    private ServersComparator comparator;
+
     /** The server handler listener */
     private ServersHandlerListener serversHandlerListener;
 
@@ -77,6 +72,12 @@ public class ServersTableViewer extends 
     private List<Server> serversNeedingAnimation = new ArrayList<Server>();
 
 
+    /**
+     * Creates a new instance of ServersTableViewer.
+     *
+     * @param tree
+     *      the associated tree
+     */
     public ServersTableViewer( Tree tree )
     {
         super( tree );
@@ -85,7 +86,8 @@ public class ServersTableViewer extends 
         setLabelProvider( labelProvider );
         setContentProvider( new ServersViewContentProvider() );
 
-        setComparator( new ServersViewerComparator( labelProvider ) );
+        comparator = new ServersComparator();
+        setComparator( new ViewerComparator( comparator ) );
 
         setInput( ROOT );
 
@@ -126,7 +128,7 @@ public class ServersTableViewer extends 
         ServersHandler.getDefault().addListener( serversHandlerListener );
 
         // The server listener
-        serverListener = new ServerListener()
+        serverListener = new  ServerListener()
         {
             public void serverChanged( ServerEvent event )
             {
@@ -141,12 +143,12 @@ public class ServersTableViewer extends 
                 Server server = event.getServer();
                 switch ( kind )
                 {
-                    // The server state has changed
+                    // The server status has changed
                     case STATE_CHANGED:
                         // First, we refresh the server
                         refreshServer( server );
 
-                        // Then, we get the state of the server to see if we
+                        // Then, we get the status of the server to see if we
                         // need to start or stop the animation thread
                         ServerStateEnum state = server.getState();
 
@@ -245,16 +247,9 @@ public class ServersTableViewer extends 
         {
             public void run()
             {
-                try
-                {
-                    refresh( server );
-                    ISelection sel = ServersTableViewer.this.getSelection();
-                    ServersTableViewer.this.setSelection( sel );
-                }
-                catch ( Exception e )
-                {
-                    // ignore
-                }
+                refresh( server );
+                ISelection sel = ServersTableViewer.this.getSelection();
+                ServersTableViewer.this.setSelection( sel );
             }
         } );
     }
@@ -295,24 +290,17 @@ public class ServersTableViewer extends 
                 // Checking if we need to stop the animation
                 if ( !stopAnimation )
                 {
-                    try
-                    {
-                        // Changing the animation state on the label provider
-                        labelProvider.animate();
+                    // Changing the animation state on the label provider
+                    labelProvider.animate();
 
-                        // Looping on the currently starting servers
-                        for ( Server server : serversNeedingAnimation.toArray( new Server[0] ) )
+                    // Looping on the currently starting servers
+                    for ( Server server : serversNeedingAnimation.toArray( new Server[0] ) )
+                    {
+                        if ( server != null && getTree() != null && !getTree().isDisposed() )
                         {
-                            if ( server != null && getTree() != null && !getTree().isDisposed() )
-                            {
-                                updateAnimation( server );
-                            }
+                            updateAnimation( server );
                         }
                     }
-                    catch ( Exception e )
-                    {
-                        //                        Trace.trace( Trace.FINEST, "Error in Servers view animation", e ); TODO
-                    }
 
                     // Re-launching the animation
                     display.timerExec( SLEEP, animatorThread[0] );
@@ -348,60 +336,84 @@ public class ServersTableViewer extends 
      */
     private void updateAnimation( Server server )
     {
-        try
-        {
-            Widget widget = doFindItem( server );
-            TreeItem item = ( TreeItem ) widget;
-            item.setText( 1, labelProvider.getColumnText( server, 1 ) );
-            item.setImage( 1, labelProvider.getColumnImage( server, 1 ) );
-        }
-        catch ( Exception e )
-        {
-            //            Trace.trace( Trace.WARNING, "Error in optimized animation", e );
-            //TODO
-        }
+        Widget widget = doFindItem( server );
+        TreeItem item = ( TreeItem ) widget;
+        item.setText( 1, labelProvider.getColumnText( server, 1 ) );
+        item.setImage( 1, labelProvider.getColumnImage( server, 1 ) );
     }
 
 
     /**
-     * Resorts the table based on field.
-     * 
-     * @param column 
-     *      the column being updated
-     * @param col
-     *      the column
+     * Sorts the table.
+     *
+     * @param treeColumn the tree column
+     * @param column the column number
      */
-    protected void resortTable( final TreeColumn column, int col )
+    public void sort( final TreeColumn treeColumn, int column )
     {
-        ServersViewerComparator sorter = ( ServersViewerComparator ) getComparator();
-
-        if ( col == sorter.getTopPriority() )
-            sorter.reverseTopPriority();
+        if ( column == comparator.column )
+        {
+            comparator.reverseOrder();
+        }
         else
-            sorter.setTopPriority( col );
+        {
+            comparator.column = column;
+        }
 
         PlatformUI.getWorkbench().getDisplay().asyncExec( new Runnable()
         {
             public void run()
             {
                 refresh();
-                updateDirectionIndicator( column );
+
+                Tree tree = getTree();
+                tree.setSortColumn( treeColumn );
+                if ( comparator.order == ServersComparator.ASCENDING )
+                {
+                    tree.setSortDirection( SWT.UP );
+                }
+                else
+                {
+                    tree.setSortDirection( SWT.DOWN );
+                }
             }
         } );
     }
 
-
     /**
-     * Updates the direction indicator as column is now the primary column.
-     * 
-     * @param column
+     * This class implements a comparator for servers.
+     *
+     * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
      */
-    protected void updateDirectionIndicator( TreeColumn column )
+    private class ServersComparator implements Comparator<Object>
     {
-        getTree().setSortColumn( column );
-        if ( ( ( ServersViewerComparator ) getComparator() ).getTopPriorityDirection() == ServersViewerComparator.ASCENDING )
-            getTree().setSortDirection( SWT.UP );
-        else
-            getTree().setSortDirection( SWT.DOWN );
+        public static final int ASCENDING = 1;
+
+        /** The comparison order */
+        int order = ASCENDING;
+
+        /** The column used to compare objects */
+        int column = 0;
+
+
+        /**
+         * Reverses the order.
+         */
+        public void reverseOrder()
+        {
+            order = order * -1;
+        }
+
+
+        /**
+         * {@inheritDoc}
+         */
+        public int compare( Object o1, Object o2 )
+        {
+            String s1 = labelProvider.getColumnText( o1, column );
+            String s2 = labelProvider.getColumnText( o2, column );
+
+            return s1.compareToIgnoreCase( s2 ) * order;
+        }
     }
 }
\ No newline at end of file

Modified: directory/studio/trunk/plugins/apacheds/src/main/java/org/apache/directory/studio/apacheds/views/ServersView.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/apacheds/src/main/java/org/apache/directory/studio/apacheds/views/ServersView.java?rev=1333956&r1=1333955&r2=1333956&view=diff
==============================================================================
--- directory/studio/trunk/plugins/apacheds/src/main/java/org/apache/directory/studio/apacheds/views/ServersView.java (original)
+++ directory/studio/trunk/plugins/apacheds/src/main/java/org/apache/directory/studio/apacheds/views/ServersView.java Fri May  4 13:38:23 2012
@@ -149,14 +149,14 @@ public class ServersView extends ViewPar
         TreeColumn serverColumn = new TreeColumn( tree, SWT.SINGLE );
         serverColumn.setText( Messages.getString( "ServersView.server" ) ); //$NON-NLS-1$
         serverColumn.setWidth( columnWidths[0] );
-        serverColumn.addSelectionListener( getHeaderListener( 0 ) );
+        serverColumn.addSelectionListener( getColumnSelectionListener( 0 ) );
         tree.setSortColumn( serverColumn );
         tree.setSortDirection( SWT.UP );
 
         TreeColumn stateColumn = new TreeColumn( tree, SWT.SINGLE );
         stateColumn.setText( Messages.getString( "ServersView.state" ) ); //$NON-NLS-1$
         stateColumn.setWidth( columnWidths[1] );
-        stateColumn.addSelectionListener( getHeaderListener( 1 ) );
+        stateColumn.addSelectionListener( getColumnSelectionListener( 1 ) );
 
         // Creating the viewer
         tableViewer = new ServersTableViewer( tree );
@@ -172,27 +172,14 @@ public class ServersView extends ViewPar
     }
 
 
-    /**
-     * Gets a header listener for the given column.
-     * 
-     * @param col
-     *      the column
-     * @return
-     *      a header listener for the given column
-     */
-    private SelectionListener getHeaderListener( final int col )
+    private SelectionListener getColumnSelectionListener( final int column )
     {
         return new SelectionAdapter()
         {
-            /**
-             * Handles the case of user selecting the header area.
-             */
             public void widgetSelected( SelectionEvent e )
             {
-                if ( tableViewer == null )
-                    return;
-                TreeColumn column = ( TreeColumn ) e.widget;
-                tableViewer.resortTable( column, col );
+                TreeColumn treeColumn = ( TreeColumn ) e.widget;
+                tableViewer.sort( treeColumn, column );
             }
         };
     }

Modified: directory/studio/trunk/plugins/apacheds/src/main/java/org/apache/directory/studio/apacheds/views/ServersViewLabelProvider.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/apacheds/src/main/java/org/apache/directory/studio/apacheds/views/ServersViewLabelProvider.java?rev=1333956&r1=1333955&r2=1333956&view=diff
==============================================================================
--- directory/studio/trunk/plugins/apacheds/src/main/java/org/apache/directory/studio/apacheds/views/ServersViewLabelProvider.java (original)
+++ directory/studio/trunk/plugins/apacheds/src/main/java/org/apache/directory/studio/apacheds/views/ServersViewLabelProvider.java Fri May  4 13:38:23 2012
@@ -74,7 +74,7 @@ public class ServersViewLabelProvider ex
 
         }
 
-        return null;
+        return super.getText( element );
     }
 
 
@@ -146,7 +146,7 @@ public class ServersViewLabelProvider ex
             }
         }
 
-        return null;
+        return super.getImage( element );
     }