Author: ayukhovich
Date: 2007-08-21 06:59:44 -0400 (Tue, 21 Aug 2007)
New Revision: 3248
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-742
add functionality of resizing
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-08-21
10:19:01 UTC (rev 3247)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe.xulrunner/src/org/jboss/tools/vpe/xulrunner/editor/XulRunnerEditor.java 2007-08-21
10:59:44 UTC (rev 3248)
@@ -41,6 +41,12 @@
*
*/
public class XulRunnerEditor extends XulRunnerBrowser {
+ /** IVpeResizeListener */
+ private IVpeResizeListener resizeListener;
+
+ /** IXulRunnerVpeResizer */
+ private IXulRunnerVpeResizer xulRunnerVpeResizer;
+
/**
* color which used for highlight elements which user can see
*/
@@ -82,6 +88,9 @@
*/
private static final String STYLE_ATTR="style";
+ private nsIDOMElement lastSelectedElement;
+ private int lastResizerConstrains;
+
/**
* @param parent
* @throws XulRunnerException
@@ -89,6 +98,20 @@
public XulRunnerEditor(Composite parent) throws XulRunnerException {
super(parent);
+
+ resizeListener = new IVpeResizeListener() {
+ public void onEndResizing(int usedResizeMarkerHandle, int top,
+ int left, int width, int height,
+ nsIDOMElement resizedDomElement) {
+ endResizing(usedResizeMarkerHandle, top, left, width, height, resizedDomElement);
+ }
+
+ public nsISupports queryInterface(String uuid) {
+ return null;
+ }
+ };
+
+
}
public boolean isMozillaDragFlavor() {
@@ -120,6 +143,14 @@
public void onElementResize(nsIDOMElement element, int handle, int top, int left, int
width, int height) {
}
+ public void onLoadWindow() {
+ if (getIXulRunnerVpeResizer() != null) {
+ getIXulRunnerVpeResizer().init(getDOMDocument());
+ getIXulRunnerVpeResizer().addResizeListener(resizeListener);
+ }
+
+ }
+
public nsIDragSession getCurrentDragSession() {
nsIServiceManager serviceManager = getServiceManager();
nsIDragService dragService = (nsIDragService)
serviceManager.getServiceByContractID(XPCOM.NS_DRAGSERVICE_CONTRACTID,
nsIDragService.NS_IDRAGSERVICE_IID);
@@ -275,18 +306,18 @@
}
- //TODO Alexey Yukhovich resized functionality
-// if (resizer != null) {
-// if (element != null && resizerConstrains != 0) {
-// resizer.Show(element, resizerConstrains);
-// } else {
-// resizer.Hide();
-// }
-// }
+ if (xulRunnerVpeResizer != null) {
+ if (element != null && resizerConstrains != 0) {
+ xulRunnerVpeResizer.show(element, resizerConstrains);
+ } else {
+ xulRunnerVpeResizer.hide();
+ }
+ }
+
setLastSelectedElement(element);
-// lastSelectedElement = element;
-// lastResizerConstrains = resizerConstrains;
+ lastSelectedElement = element;
+ lastResizerConstrains = resizerConstrains;
}
@@ -303,6 +334,17 @@
return iFlasher;
}
+
+ private IXulRunnerVpeResizer getIXulRunnerVpeResizer() {
+
+ if (xulRunnerVpeResizer==null) {
+ xulRunnerVpeResizer = new XulRunnerVpeResizer();
+ }
+ return xulRunnerVpeResizer;
+ }
+
+
+
/**Function created for checking if user can see element or not.
* Element doesn't shows in VPE if it's has 'display:none;' attribute in
style.
*
@@ -354,4 +396,34 @@
return parentElement;
}
+ /**
+ * @param usedHandle
+ * @param newTop
+ * @param newLeft
+ * @param newWidth
+ * @param newHeight
+ * @param aResizedObject
+ */
+ private void endResizing(int usedHandle, int newTop, int newLeft, int newWidth, int
newHeight, nsIDOMElement aResizedObject) {
+ onElementResize(aResizedObject, usedHandle, newTop, newLeft, newWidth, newHeight);
+ }
+
+ /**
+ *
+ */
+ public void showResizer() {
+ if (xulRunnerVpeResizer != null && lastSelectedElement != null &&
lastResizerConstrains != 0) {
+ xulRunnerVpeResizer.show(lastSelectedElement, lastResizerConstrains);
+ }
+ }
+
+ /**
+ * Hide resizer markers
+ */
+ public void hideResizer() {
+ if(xulRunnerVpeResizer != null) {
+ xulRunnerVpeResizer.hide();
+ }
+ }
+
}