[jboss-svn-commits] JBL Code SVN: r7114 - in labs/jbossrules/branches/3.0.x: drools-ide/src/main/java/org/drools/ide/editors drools-ide-test/src/test/java/org/drools/ide/editors/rete

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Oct 25 13:16:13 EDT 2006


Author: ahtik
Date: 2006-10-25 13:16:05 -0400 (Wed, 25 Oct 2006)
New Revision: 7114

Modified:
   labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/editors/rete/ZoomControlTest.java
   labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/DRLRuleEditor2.java
Log:
JBRULES-517: fixed inconsistency with zoom in/out behaviour (for certain cases zoom buttons were enabled when they shouldn't). bundled with junit test.

Modified: labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/DRLRuleEditor2.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/DRLRuleEditor2.java	2006-10-25 16:35:46 UTC (rev 7113)
+++ labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/DRLRuleEditor2.java	2006-10-25 17:16:05 UTC (rev 7114)
@@ -1,4 +1,5 @@
 package org.drools.ide.editors;
+
 /*
  * Copyright 2006 JBoss Inc
  * 
@@ -33,7 +34,7 @@
  * @author Ahti Kitsik
  */
 public class DRLRuleEditor2 extends FormEditor {
- 
+
     private DRLRuleEditor             textEditor;
 
     private ReteViewer                reteViewer;
@@ -71,7 +72,7 @@
                     DRLRuleEditor2.this.setPartName( partName );
                 }
             };
-            reteViewer = new ReteViewer(textEditor.getDocumentProvider() );
+            reteViewer = new ReteViewer( textEditor.getDocumentProvider() );
 
             int text = addPage( textEditor,
                                 getEditorInput() );
@@ -116,22 +117,22 @@
      * @see org.eclipse.ui.part.MultiPageEditorPart#getAdapter(java.lang.Class)
      */
     public Object getAdapter(Class adapter) {
-        if (adapter == ZoomManager.class) {
-            
+        if ( adapter == ZoomManager.class ) {
+
             if ( getActiveEditor() instanceof ReteViewer ) {
                 return reteViewer.getAdapter( adapter );
             } else if ( getActiveEditor() instanceof DRLRuleEditor ) {
                 return null;
-            }            
-            
-        } else if (adapter == ZoomInAction2.class) {
+            }
+
+        } else if ( adapter == ZoomInAction2.class ) {
             return zoomIn;
-        } else if (adapter == ZoomOutAction2.class) {
+        } else if ( adapter == ZoomOutAction2.class ) {
             return zoomOut;
-        } else if (adapter == ZoomComboContributionItem.class) {
+        } else if ( adapter == ZoomComboContributionItem.class ) {
             return zitem;
-        } 
-        
+        }
+
         return textEditor.getAdapter( adapter );
     }
 
@@ -139,22 +140,34 @@
      * Updates ZoomManagers for contributed actions.
      */
     private void updateZoomItems() {
-        final ZoomManager zoomManager = (ZoomManager) getAdapter( ZoomManager.class );
-        
-        boolean zoomActive = zoomManager != null;
-        
-        if (zoomIn!=null && zoomOut!=null && zitem!=null) {
-            
-            zoomIn.setZoomManager( zoomManager );
+        updateZoomIn();
+
+        updateZoomOut();
+
+        updateZoomCombo();
+
+    }
+
+    private void updateZoomCombo() {
+        if ( zitem != null ) {
+            zitem.setZoomManager( getZoomManager() );
+        }
+    }
+
+    private void updateZoomIn() {
+        boolean zoomActive = getZoomManager() != null;
+        if ( zoomIn != null ) {
+            zoomIn.setZoomManager( getZoomManager() );
             zoomIn.setEnabled( zoomActive );
-            
-            zoomOut.setZoomManager( zoomManager );
+        }
+    }
+
+    private void updateZoomOut() {
+        boolean zoomActive = getZoomManager() != null;
+        if ( zoomOut != null ) {
+            zoomOut.setZoomManager( getZoomManager() );
             zoomOut.setEnabled( zoomActive );
-            
-            zitem.setZoomManager( zoomManager );
-            
         }
-        
     }
 
     /**
@@ -165,16 +178,22 @@
      */
     public void setZoomComboContributionItem(ZoomComboContributionItem zitem) {
         this.zitem = zitem;
+        updateZoomCombo();
     }
 
+    private ZoomManager getZoomManager() {
+        return (ZoomManager) getAdapter( ZoomManager.class );
+    }
+
     /**
      * Sets ZoomOutAction2 to be used for updating it's
      * ZoomManager when multipage tab is switched.
      * 
-     * @param zoomOut zoom action
+     * @param zoomOutAction zoom action
      */
-    public void setZoomOutAction(ZoomOutAction2 zoomOut) {
-        this.zoomOut = zoomOut;
+    public void setZoomOutAction(ZoomOutAction2 zoomOutAction) {
+        this.zoomOut = zoomOutAction;
+        updateZoomOut();
     }
 
     /**
@@ -184,8 +203,9 @@
      */
     public void setZoomInAction(ZoomInAction2 zoomInAction) {
         this.zoomIn = zoomInAction;
+        updateZoomIn();
     }
-    
+
     public void setFocus() {
         super.setFocus();
         updateZoomItems();

Modified: labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/editors/rete/ZoomControlTest.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/editors/rete/ZoomControlTest.java	2006-10-25 16:35:46 UTC (rev 7113)
+++ labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/editors/rete/ZoomControlTest.java	2006-10-25 17:16:05 UTC (rev 7114)
@@ -141,13 +141,42 @@
 
     }
 
+    public void testSecondEditorAfterFirst() throws PartInitException {
+
+        IWorkbench workbench = PlatformUI.getWorkbench();
+        IWorkbenchPage page = workbench.getActiveWorkbenchWindow().getActivePage();
+
+        DRLRuleEditor2 part1 = (DRLRuleEditor2) IDE.openEditor( page,
+                                                                fFile1 );
+
+        // Editor1 active
+        page.activate( part1 );
+        part1.setActivePage( 1 );
+        checkVisibility( part1,
+                         null,
+                         true );
+
+        DRLRuleEditor2 part2 = (DRLRuleEditor2) IDE.openEditor( page,
+                                                                fFile2 );
+        page.activate( part2 );
+        checkVisibility( part1,
+                         part2,
+                         false );
+
+    }
+
     private void checkVisibility(DRLRuleEditor2 part1,
                                  DRLRuleEditor2 part2,
                                  boolean enabled) {
-        checkVisibility( part1,
-                         enabled );
-        checkVisibility( part2,
-                         enabled );
+        if ( part1 != null ) {
+            checkVisibility( part1,
+                             enabled );
+        }
+
+        if ( part2 != null ) {
+            checkVisibility( part2,
+                             enabled );
+        }
     }
 
     private void checkVisibility(DRLRuleEditor2 editor,




More information about the jboss-svn-commits mailing list