Author: mareshkau
Date: 2007-09-05 08:47:18 -0400 (Wed, 05 Sep 2007)
New Revision: 3454
Modified:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/XulRunnerEditor.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-744, scrolling for source selection event was
added
Modified:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/XulRunnerEditor.java
===================================================================
---
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/XulRunnerEditor.java 2007-09-05
12:47:03 UTC (rev 3453)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/XulRunnerEditor.java 2007-09-05
12:47:18 UTC (rev 3454)
@@ -14,6 +14,7 @@
import java.util.regex.Pattern;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
@@ -95,6 +96,10 @@
private nsIDOMElement lastSelectedElement;
private int lastResizerConstrains;
+ /**
+ * Scroll selection into view flag
+ */
+ private boolean scrollRegtangleFlag = false;
/**
* @param parent
@@ -275,6 +280,8 @@
}
if (getLastSelectedElement() != null) {
+ scrollRegtangleFlag = scroll && element != null;
+
if(checkVisability(getLastSelectedElement())){
if((getLastSelectedElement().getAttribute(VPEFLASHERCOLORATTRIBUTE)==null)||
@@ -301,6 +308,10 @@
} else if (element != null) {
+ if (scroll) {
+ scrollToElement(element);
+ scrollRegtangleFlag = true;
+ }
if(checkVisability(element)){
@@ -454,10 +465,11 @@
// ((nsIBaseWindow)getWebBrowser().queryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID)).repaint(false);
if (getIFlasher() != null && getLastSelectedElement() != null) {
-// if (scrollRegtangleFlag) {
-// scrollRegtangleFlag = false;
-// selectionController.scrollSelectionIntoView();
-// }
+ if (scrollRegtangleFlag) {
+ scrollRegtangleFlag = false;
+
+ scrollToElement(getLastSelectedElement());
+ }
//checks visability of element
if(checkVisability(getLastSelectedElement())){
@@ -482,6 +494,16 @@
}
}
}
+ /**
+ * Scrools viiew to some elements
+ * @param element -element to which we should scroll
+ */
+ private void scrollToElement(nsIDOMElement element){
+ nsIDOMWindow domWindow = getWebBrowser().getContentDOMWindow();
+ // get element positions on visual page
+ Rectangle rect=XulRunnerVpeUtils.getElementBounds(element);
+ domWindow.scrollTo(rect.x, rect.y);
+ }
}