You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2009/10/05 22:42:37 UTC

svn commit: r821999 - /directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/LdifEntryEditor.java

Author: seelmann
Date: Mon Oct  5 20:42:37 2009
New Revision: 821999

URL: http://svn.apache.org/viewvc?rev=821999&view=rev
Log:
DIRSTUDIO-519:
o added refresh action
o added fetch operational attributes action

Modified:
    directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/LdifEntryEditor.java

Modified: directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/LdifEntryEditor.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/LdifEntryEditor.java?rev=821999&r1=821998&r2=821999&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/LdifEntryEditor.java (original)
+++ directory/studio/trunk/ldapbrowser-ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/editors/entry/LdifEntryEditor.java Mon Oct  5 20:42:37 2009
@@ -24,11 +24,20 @@
 import org.apache.directory.studio.entryeditors.EntryEditorInput;
 import org.apache.directory.studio.entryeditors.EntryEditorUtils;
 import org.apache.directory.studio.entryeditors.IEntryEditor;
+import org.apache.directory.studio.ldapbrowser.common.BrowserCommonActivator;
+import org.apache.directory.studio.ldapbrowser.common.BrowserCommonConstants;
+import org.apache.directory.studio.ldapbrowser.core.jobs.InitializeAttributesRunnable;
+import org.apache.directory.studio.ldapbrowser.core.jobs.StudioBrowserJob;
 import org.apache.directory.studio.ldapbrowser.core.model.IBookmark;
 import org.apache.directory.studio.ldapbrowser.core.model.IEntry;
 import org.apache.directory.studio.ldapbrowser.core.model.ISearchResult;
 import org.apache.directory.studio.ldifeditor.editor.LdifEditor;
+import org.apache.directory.studio.utils.ActionUtils;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorPart;
@@ -36,6 +45,7 @@
 import org.eclipse.ui.INavigationLocation;
 import org.eclipse.ui.IShowEditorInput;
 import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.texteditor.ITextEditorActionConstants;
 
 
 /**
@@ -47,8 +57,83 @@
 public abstract class LdifEntryEditor extends LdifEditor implements IEntryEditor, IShowEditorInput
 {
 
+    private static final String REFRESH_ACTION = "RefreshAction"; //$NON-NLS-1$
+
+    private static final String FETCH_OPERATIONAL_ATTRIBUTES_ACTION = "FetchOperationalAttributesAction"; //$NON-NLS-1$
+
     private boolean inShowEditorInput = false;
 
+    private IAction refreshAction = new Action()
+    {
+        @Override
+        public ImageDescriptor getImageDescriptor()
+        {
+            return BrowserCommonActivator.getDefault().getImageDescriptor( BrowserCommonConstants.IMG_REFRESH );
+        }
+
+
+        @Override
+        public String getText()
+        {
+            return org.apache.directory.studio.ldapbrowser.common.actions.Messages
+                .getString( "RefreshAction.RelaodAttributes" ); //$NON-NLS-1$
+        }
+
+
+        @Override
+        public String getActionDefinitionId()
+        {
+            return "org.eclipse.ui.file.refresh"; //$NON-NLS-1$
+        }
+
+
+        @Override
+        public void run()
+        {
+            IEntry entry = getEntryEditorInput().getResolvedEntry();
+            new StudioBrowserJob( new InitializeAttributesRunnable( entry ) ).execute();
+        }
+    };
+
+    private IAction fetchOperationalAttributesAction = new Action()
+    {
+        @Override
+        public int getStyle()
+        {
+            return Action.AS_CHECK_BOX;
+        }
+
+
+        @Override
+        public String getText()
+        {
+            return org.apache.directory.studio.ldapbrowser.common.actions.Messages
+                .getString( "FetchOperationalAttributesAction.FetchOperationalAttributes" ); //$NON-NLS-1$
+        }
+
+
+        @Override
+        public boolean isEnabled()
+        {
+            IEntry entry = getEntryEditorInput().getResolvedEntry();
+            entry = entry.getBrowserConnection().getEntryFromCache( entry.getDn() );
+
+            return !entry.getBrowserConnection().isFetchOperationalAttributes();
+        }
+
+
+        @Override
+        public void run()
+        {
+            IEntry entry = getEntryEditorInput().getResolvedEntry();
+            entry = entry.getBrowserConnection().getEntryFromCache( entry.getDn() );
+
+            boolean init = !entry.isInitOperationalAttributes();
+            entry.setInitOperationalAttributes( init );
+            new StudioBrowserJob( new InitializeAttributesRunnable( entry ) ).execute();
+        }
+    };
+
 
     public LdifEntryEditor()
     {
@@ -103,6 +188,42 @@
 
 
     @Override
+    protected void createActions()
+    {
+        super.createActions();
+
+        setAction( REFRESH_ACTION, refreshAction );
+        setAction( FETCH_OPERATIONAL_ATTRIBUTES_ACTION, fetchOperationalAttributesAction );
+    }
+
+
+    @Override
+    protected void editorContextMenuAboutToShow( IMenuManager menu )
+    {
+        super.editorContextMenuAboutToShow( menu );
+
+        fetchOperationalAttributesAction.setChecked( getEntryEditorInput().getResolvedEntry()
+            .isInitOperationalAttributes() );
+        addAction( menu, ITextEditorActionConstants.GROUP_REST, REFRESH_ACTION );
+        addAction( menu, ITextEditorActionConstants.GROUP_REST, FETCH_OPERATIONAL_ATTRIBUTES_ACTION );
+    }
+
+
+    @Override
+    public void activateGlobalActionHandlers()
+    {
+        ActionUtils.activateActionHandler( refreshAction );
+    }
+
+
+    @Override
+    public void deactivateGlobalActionHandlers()
+    {
+        ActionUtils.deactivateActionHandler( refreshAction );
+    }
+
+
+    @Override
     public INavigationLocation createNavigationLocation()
     {
         return new LdifEntryEditorNavigationLocation( this, true );