[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