You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-dev@xmlgraphics.apache.org by hi...@apache.org on 2001/05/02 15:12:33 UTC
cvs commit: xml-batik/sources/org/apache/batik/swing/gvt AbstractResetTransformInteractor.java JGVTComponent.java
hillion 01/05/02 06:12:33
Modified: sources/org/apache/batik/apps/svgbrowser
JSVGViewerFrame.java
sources/org/apache/batik/swing JSVGCanvas.java
sources/org/apache/batik/swing/gvt JGVTComponent.java
Added: sources/org/apache/batik/swing/gvt
AbstractResetTransformInteractor.java
Log:
- Added an interactor and a method to reset the rendering transform on
a JGVTComponent,
- interactors, events and text selection are now enabled by default.
Revision Changes Path
1.28 +3 -18 xml-batik/sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java
Index: JSVGViewerFrame.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- JSVGViewerFrame.java 2001/05/02 06:07:00 1.27
+++ JSVGViewerFrame.java 2001/05/02 13:12:25 1.28
@@ -129,7 +129,7 @@
* This class represents a SVG viewer swing frame.
*
* @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
- * @version $Id: JSVGViewerFrame.java,v 1.27 2001/05/02 06:07:00 vhardy Exp $
+ * @version $Id: JSVGViewerFrame.java,v 1.28 2001/05/02 13:12:25 hillion Exp $
*/
public class JSVGViewerFrame
extends JFrame
@@ -311,11 +311,6 @@
protected String userStyleSheetURI;
/**
- * The initial transform applied to the document.
- */
- protected AffineTransform initialTransform;
-
- /**
* The initial frame title.
*/
protected String title;
@@ -549,11 +544,6 @@
}
});
- // Interactors initialization ///////////////////////////////////////
- svgCanvas.setEnableZoomInteractor(true);
- svgCanvas.setEnableImageZoomInteractor(true);
- svgCanvas.setEnablePanInteractor(true);
- svgCanvas.setEnableRotateInteractor(true);
}
/**
@@ -991,9 +981,7 @@
public ResetTransformAction() {}
public void actionPerformed(ActionEvent e) {
svgCanvas.setFragmentIdentifier(null);
- if (initialTransform != null) {
- svgCanvas.setRenderingTransform(initialTransform);
- }
+ svgCanvas.resetRenderingTransform();
}
}
@@ -1337,7 +1325,6 @@
domViewer = null;
}
}
- initialTransform = null;
stopAction.update(false);
svgCanvas.setCursor(DEFAULT_CURSOR);
String s = ((SVGOMDocument)svgDocument).getURLObject().toString();
@@ -1495,9 +1482,7 @@
}
statusBar.setMainMessage("");
statusBar.setMessage(resources.getString("Message.done"));
- if (initialTransform == null) {
- initialTransform = svgCanvas.getRenderingTransform();
- }
+
stopAction.update(false);
svgCanvas.setCursor(DEFAULT_CURSOR);
1.21 +100 -42 xml-batik/sources/org/apache/batik/swing/JSVGCanvas.java
Index: JSVGCanvas.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/swing/JSVGCanvas.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- JSVGCanvas.java 2001/03/26 16:13:29 1.20
+++ JSVGCanvas.java 2001/05/02 13:12:29 1.21
@@ -10,15 +10,19 @@
import java.awt.Dimension;
import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
+import java.util.List;
+
import org.apache.batik.swing.gvt.Interactor;
import org.apache.batik.swing.gvt.AbstractImageZoomInteractor;
import org.apache.batik.swing.gvt.AbstractPanInteractor;
+import org.apache.batik.swing.gvt.AbstractResetTransformInteractor;
import org.apache.batik.swing.gvt.AbstractRotateInteractor;
import org.apache.batik.swing.gvt.AbstractZoomInteractor;
import org.apache.batik.swing.svg.JSVGComponent;
@@ -29,13 +33,13 @@
*
* @author <a href="mailto:tkormann@apache.org">Thierry Kormann</a>
* @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
- * @version $Id: JSVGCanvas.java,v 1.20 2001/03/26 16:13:29 tkormann Exp $
+ * @version $Id: JSVGCanvas.java,v 1.21 2001/05/02 13:12:29 hillion Exp $
*/
public class JSVGCanvas extends JSVGComponent {
/**
* An interactor to perform a zoom.
- * <p>Bind: BUTTON1 + CTRL Key</p>
+ * <p>Binding: BUTTON1 + CTRL Key</p>
*/
protected Interactor zoomInteractor = new AbstractZoomInteractor() {
public boolean startInteraction(InputEvent ie) {
@@ -49,7 +53,7 @@
/**
* An interactor to perform a realtime zoom.
- * <p>Bind: BUTTON3 + SHIFT Key</p>
+ * <p>Binding: BUTTON3 + SHIFT Key</p>
*/
protected Interactor imageZoomInteractor
= new AbstractImageZoomInteractor() {
@@ -64,7 +68,7 @@
/**
* An interactor to perform a translation.
- * <p>Bind: BUTTON1 + SHIFT Key</p>
+ * <p>Binding: BUTTON1 + SHIFT Key</p>
*/
protected Interactor panInteractor = new AbstractPanInteractor() {
public boolean startInteraction(InputEvent ie) {
@@ -78,7 +82,7 @@
/**
* An interactor to perform a rotation.
- * <p>Bind: BUTTON3 + CTRL Key</p>
+ * <p>Binding: BUTTON3 + CTRL Key</p>
*/
protected Interactor rotateInteractor = new AbstractRotateInteractor() {
public boolean startInteraction(InputEvent ie) {
@@ -91,28 +95,52 @@
};
/**
+ * An interactor to reset the rendering transform.
+ * <p>Binding: CTRL+T</p>
+ */
+ protected Interactor resetTransformInteractor =
+ new AbstractResetTransformInteractor() {
+ public boolean startInteraction(InputEvent ie) {
+ int mods = ie.getModifiers();
+ if (ie.getID() != KeyEvent.KEY_PRESSED) {
+ return false;
+ }
+ int key = ((KeyEvent)ie).getKeyCode();
+ return
+ key == KeyEvent.VK_T &&
+ (mods & ie.CTRL_MASK) != 0;
+ }
+ };
+
+ /**
* This flag bit indicates whether or not the zoom interactor is
- * enable. True means the zoom interactor is functional.
+ * enabled. True means the zoom interactor is functional.
*/
- private boolean isZoomInteractorEnable = false;
+ private boolean isZoomInteractorEnabled = true;
/**
* This flag bit indicates whether or not the image zoom interactor is
- * enable. True means the image zoom interactor is functional.
+ * enabled. True means the image zoom interactor is functional.
*/
- private boolean isImageZoomInteractorEnable = false;
+ private boolean isImageZoomInteractorEnabled = true;
/**
* This flag bit indicates whether or not the pan interactor is
- * enable. True means the pan interactor is functional.
+ * enabled. True means the pan interactor is functional.
*/
- private boolean isPanInteractorEnable = false;
+ private boolean isPanInteractorEnabled = true;
/**
* This flag bit indicates whether or not the rotate interactor is
- * enable. True means the rotate interactor is functional.
+ * enabled. True means the rotate interactor is functional.
+ */
+ private boolean isRotateInteractorEnabled = true;
+
+ /**
+ * This flag bit indicates whether or not the reset transform interactor is
+ * enabled. True means the reset transform interactor is functional.
*/
- private boolean isRotateInteractorEnable = false;
+ private boolean isResetTransformInteractorEnabled = true;
/**
* The <tt>PropertyChangeSupport</tt> used to fire
@@ -129,7 +157,7 @@
* Creates a new JSVGCanvas.
*/
public JSVGCanvas() {
- this(null, false, false);
+ this(null, true, true);
}
/**
@@ -144,6 +172,13 @@
super(ua, eventsEnabled, selectableText);
setPreferredSize(new Dimension(200, 200));
setMinimumSize(new Dimension(100, 100));
+
+ List intl = getInteractors();
+ intl.add(zoomInteractor);
+ intl.add(imageZoomInteractor);
+ intl.add(panInteractor);
+ intl.add(rotateInteractor);
+ intl.add(resetTransformInteractor);
}
/**
@@ -189,18 +224,18 @@
}
/**
- * Determines whether zoom interactor is enabled or not.
+ * Determines whether the zoom interactor is enabled or not.
*/
public void setEnableZoomInteractor(boolean b) {
- if (isZoomInteractorEnable != b) {
- boolean oldValue = isZoomInteractorEnable;
- isZoomInteractorEnable = b;
- if (isZoomInteractorEnable) {
+ if (isZoomInteractorEnabled != b) {
+ boolean oldValue = isZoomInteractorEnabled;
+ isZoomInteractorEnabled = b;
+ if (isZoomInteractorEnabled) {
getInteractors().add(zoomInteractor);
} else {
getInteractors().remove(zoomInteractor);
}
- pcs.firePropertyChange("setEnableZoomInteractor", oldValue, b);
+ pcs.firePropertyChange("enableZoomInteractor", oldValue, b);
}
}
@@ -208,22 +243,22 @@
* Returns true if the zoom interactor is enabled, false otherwise.
*/
public boolean getEnableZoomInteractor() {
- return isZoomInteractorEnable;
+ return isZoomInteractorEnabled;
}
/**
- * Determines whether image zoom interactor is enabled or not.
+ * Determines whether the image zoom interactor is enabled or not.
*/
public void setEnableImageZoomInteractor(boolean b) {
- if (isImageZoomInteractorEnable != b) {
- boolean oldValue = isImageZoomInteractorEnable;
- isImageZoomInteractorEnable = b;
- if (isImageZoomInteractorEnable) {
+ if (isImageZoomInteractorEnabled != b) {
+ boolean oldValue = isImageZoomInteractorEnabled;
+ isImageZoomInteractorEnabled = b;
+ if (isImageZoomInteractorEnabled) {
getInteractors().add(imageZoomInteractor);
} else {
getInteractors().remove(imageZoomInteractor);
}
- pcs.firePropertyChange("setEnableImageZoomInteractor", oldValue, b);
+ pcs.firePropertyChange("enableImageZoomInteractor", oldValue, b);
}
}
@@ -231,22 +266,22 @@
* Returns true if the image zoom interactor is enabled, false otherwise.
*/
public boolean getEnableImageZoomInteractor() {
- return isImageZoomInteractorEnable;
+ return isImageZoomInteractorEnabled;
}
/**
- * Determines whether pan interactor is enabled or not.
+ * Determines whether the pan interactor is enabled or not.
*/
public void setEnablePanInteractor(boolean b) {
- if (isPanInteractorEnable != b) {
- boolean oldValue = isPanInteractorEnable;
- isPanInteractorEnable = b;
- if (isPanInteractorEnable) {
+ if (isPanInteractorEnabled != b) {
+ boolean oldValue = isPanInteractorEnabled;
+ isPanInteractorEnabled = b;
+ if (isPanInteractorEnabled) {
getInteractors().add(panInteractor);
} else {
getInteractors().remove(panInteractor);
}
- pcs.firePropertyChange("setEnablePanInteractor", oldValue, b);
+ pcs.firePropertyChange("enablePanInteractor", oldValue, b);
}
}
@@ -254,22 +289,22 @@
* Returns true if the pan interactor is enabled, false otherwise.
*/
public boolean getEnablePanInteractor() {
- return isPanInteractorEnable;
+ return isPanInteractorEnabled;
}
/**
- * Determines whether rotate interactor is enabled or not.
+ * Determines whether the rotate interactor is enabled or not.
*/
public void setEnableRotateInteractor(boolean b) {
- if (isRotateInteractorEnable != b) {
- boolean oldValue = isRotateInteractorEnable;
- isRotateInteractorEnable = b;
- if (isRotateInteractorEnable) {
+ if (isRotateInteractorEnabled != b) {
+ boolean oldValue = isRotateInteractorEnabled;
+ isRotateInteractorEnabled = b;
+ if (isRotateInteractorEnabled) {
getInteractors().add(rotateInteractor);
} else {
getInteractors().remove(rotateInteractor);
}
- pcs.firePropertyChange("setEnableRotateInteractor", oldValue, b);
+ pcs.firePropertyChange("enableRotateInteractor", oldValue, b);
}
}
@@ -277,7 +312,30 @@
* Returns true if the rotate interactor is enabled, false otherwise.
*/
public boolean getEnableRotateInteractor() {
- return isRotateInteractorEnable;
+ return isRotateInteractorEnabled;
+ }
+
+ /**
+ * Determines whether the reset transform interactor is enabled or not.
+ */
+ public void setEnableResetTransformInteractor(boolean b) {
+ if (isResetTransformInteractorEnabled != b) {
+ boolean oldValue = isResetTransformInteractorEnabled;
+ isResetTransformInteractorEnabled = b;
+ if (isResetTransformInteractorEnabled) {
+ getInteractors().add(resetTransformInteractor);
+ } else {
+ getInteractors().remove(resetTransformInteractor);
+ }
+ pcs.firePropertyChange("enableResetTransformInteractor", oldValue, b);
+ }
+ }
+
+ /**
+ * Returns true if the reset transform interactor is enabled, false otherwise.
+ */
+ public boolean getEnableResetTransformInteractor() {
+ return isRotateInteractorEnabled;
}
/**
1.11 +8 -1 xml-batik/sources/org/apache/batik/swing/gvt/JGVTComponent.java
Index: JGVTComponent.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/swing/gvt/JGVTComponent.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- JGVTComponent.java 2001/04/23 12:19:36 1.10
+++ JGVTComponent.java 2001/05/02 13:12:32 1.11
@@ -52,7 +52,7 @@
* This class represents a component which can display a GVT tree.
*
* @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
- * @version $Id: JGVTComponent.java,v 1.10 2001/04/23 12:19:36 tkormann Exp $
+ * @version $Id: JGVTComponent.java,v 1.11 2001/05/02 13:12:32 hillion Exp $
*/
public class JGVTComponent extends JComponent {
@@ -229,6 +229,13 @@
*/
public BufferedImage getOffScreen() {
return image;
+ }
+
+ /**
+ * Resets the rendering transform to its initial value.
+ */
+ public void resetRenderingTransform() {
+ renderingTransform = initialTransform;
}
/**
1.1 xml-batik/sources/org/apache/batik/swing/gvt/AbstractResetTransformInteractor.java
Index: AbstractResetTransformInteractor.java
===================================================================
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
* ------------------------------------------------------------------------- *
* This software is published under the terms of the Apache Software License *
* version 1.1, a copy of which has been included with this distribution in *
* the LICENSE file. *
*****************************************************************************/
package org.apache.batik.swing.gvt;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
/**
* This class represents an interactor which reset the rendering transform
* of the associated document.
*
* @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
* @version $Id: AbstractResetTransformInteractor.java,v 1.1 2001/05/02 13:12:32 hillion Exp $
*/
public abstract class AbstractResetTransformInteractor implements Interactor {
/**
* Whether the interactor has finished.
*/
protected boolean finished = true;
/**
* Tells whether the interaction has finished.
*/
public boolean endInteraction() {
return finished;
}
// KeyListener //////////////////////////////////////////////////////////
/**
* Invoked when a key has been typed.
* This event occurs when a key press is followed by a key release.
*/
public void keyTyped(KeyEvent e) {
resetTransform(e);
}
/**
* Invoked when a key has been pressed.
*/
public void keyPressed(KeyEvent e) {
resetTransform(e);
}
/**
* Invoked when a key has been released.
*/
public void keyReleased(KeyEvent e) {
resetTransform(e);
}
// MouseListener ///////////////////////////////////////////////////////
/**
* Invoked when the mouse has been clicked on a component.
*/
public void mouseClicked(MouseEvent e) {
resetTransform(e);
}
/**
* Invoked when a mouse button has been pressed on a component.
*/
public void mousePressed(MouseEvent e) {
resetTransform(e);
}
/**
* Invoked when a mouse button has been released on a component.
*/
public void mouseReleased(MouseEvent e) {
resetTransform(e);
}
/**
* Invoked when the mouse enters a component.
*/
public void mouseEntered(MouseEvent e) {
resetTransform(e);
}
/**
* Invoked when the mouse exits a component.
*/
public void mouseExited(MouseEvent e) {
resetTransform(e);
}
// MouseMotionListener /////////////////////////////////////////////////
/**
* Invoked when a mouse button is pressed on a component and then
* dragged. Mouse drag events will continue to be delivered to
* the component where the first originated until the mouse button is
* released (regardless of whether the mouse position is within the
* bounds of the component).
*/
public void mouseDragged(MouseEvent e) {
resetTransform(e);
}
/**
* Invoked when the mouse button has been moved on a component
* (with no buttons no down).
*/
public void mouseMoved(MouseEvent e) {
resetTransform(e);
}
/**
* Resets the associated component's transform.
*/
protected void resetTransform(InputEvent e) {
JGVTComponent c = (JGVTComponent)e.getSource();
c.resetRenderingTransform();
finished = true;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: batik-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-dev-help@xml.apache.org