[Lilith-devel] SF.net SVN: lilith:[313] trunk/lilith/src/main/java/de/huxhorn/lilith/swing
Brought to you by:
huxhorn
|
From: <hu...@us...> - 2009-08-28 14:30:08
|
Revision: 313
http://lilith.svn.sourceforge.net/lilith/?rev=313&view=rev
Author: huxhorn
Date: 2009-08-28 14:29:59 +0000 (Fri, 28 Aug 2009)
Log Message:
-----------
Work in progress on ticket #59.
Modified Paths:
--------------
trunk/lilith/src/main/java/de/huxhorn/lilith/swing/EventWrapperViewPanel.java
trunk/lilith/src/main/java/de/huxhorn/lilith/swing/MainFrame.java
trunk/lilith/src/main/java/de/huxhorn/lilith/swing/ViewActions.java
Modified: trunk/lilith/src/main/java/de/huxhorn/lilith/swing/EventWrapperViewPanel.java
===================================================================
--- trunk/lilith/src/main/java/de/huxhorn/lilith/swing/EventWrapperViewPanel.java 2009-08-26 23:45:17 UTC (rev 312)
+++ trunk/lilith/src/main/java/de/huxhorn/lilith/swing/EventWrapperViewPanel.java 2009-08-28 14:29:59 UTC (rev 313)
@@ -59,19 +59,10 @@
import org.xhtmlrenderer.swing.SelectionHighlighter;
import java.awt.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.FocusEvent;
-import java.awt.event.FocusListener;
-import java.awt.event.InputEvent;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
+import java.awt.event.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.OutputStreamWriter;
-import java.io.Serializable;
+import java.io.*;
import java.net.URL;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
@@ -214,6 +205,15 @@
xhtmlNamespaceHandler = new XhtmlNamespaceHandler();
FSScrollPane messageScrollPane = new FSScrollPane(messagePane);
+ MouseWheelListener[] mwl = messageScrollPane.getMouseWheelListeners();
+ if(mwl != null)
+ {
+ for(MouseWheelListener current:mwl)
+ {
+ messageScrollPane.removeMouseWheelListener(current);
+ }
+ }
+ messageScrollPane.addMouseWheelListener(new WrappingMouseWheelListener(mwl));
JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, tableScrollPane, messageScrollPane);
PropertyChangeListener splitPaneListener = new SplitPaneListener();
@@ -1752,5 +1752,54 @@
messagePane.setBorder(unfocusedBorder);
}
}
+
+ private class WrappingMouseWheelListener
+ implements MouseWheelListener
+ {
+
+ private MouseWheelListener[] wrapped;
+
+ private WrappingMouseWheelListener(MouseWheelListener[] wrapped)
+ {
+ this.wrapped = wrapped;
+ }
+
+ public void mouseWheelMoved(MouseWheelEvent e)
+ {
+ if(e.getModifiers() == KeyStrokes.COMMAND_KEYMASK)
+ {
+ // special handling, i.e. zoom in, zoomm out
+ int rotation = e.getWheelRotation();
+ boolean up=false;
+ if(rotation < 0)
+ {
+ up = true;
+ rotation = -rotation;
+ }
+ for(int i=0;i<rotation;i++)
+ {
+ if(up)
+ {
+ mainFrame.zoomIn();
+ }
+ else
+ {
+ mainFrame.zoomOut();
+ }
+ }
+ }
+ else
+ {
+ logger.warn("ELSE");
+ if(wrapped != null)
+ {
+ for(MouseWheelListener current:wrapped)
+ {
+ current.mouseWheelMoved(e);
+ }
+ }
+ }
+ }
+ }
}
Modified: trunk/lilith/src/main/java/de/huxhorn/lilith/swing/MainFrame.java
===================================================================
--- trunk/lilith/src/main/java/de/huxhorn/lilith/swing/MainFrame.java 2009-08-26 23:45:17 UTC (rev 312)
+++ trunk/lilith/src/main/java/de/huxhorn/lilith/swing/MainFrame.java 2009-08-28 14:29:59 UTC (rev 313)
@@ -219,6 +219,9 @@
private JFileChooser openFileChooser;
private JFileChooser importFileChooser;
private boolean coloringWholeRow;
+
+ private static final double SCALE_FACTOR = 0.1d;
+
/*
* Need to use ConcurrentMap because it's accessed by both the EventDispatchThread and the CleanupThread.
*/
@@ -1141,6 +1144,27 @@
return null;
}
+ public void zoomOut()
+ {
+ double scale = applicationPreferences.getScaleFactor() - SCALE_FACTOR;
+ if(scale < 0.1d)
+ {
+ scale = 0.1d;
+ }
+ applicationPreferences.setScaleFactor(scale);
+ }
+
+ public void zoomIn()
+ {
+ double scale = applicationPreferences.getScaleFactor() + SCALE_FACTOR;
+ applicationPreferences.setScaleFactor(scale);
+ }
+
+ public void resetZoom()
+ {
+ applicationPreferences.setScaleFactor(1.0d);
+ }
+
public enum ImportType
{
LOG4J, JUL
Modified: trunk/lilith/src/main/java/de/huxhorn/lilith/swing/ViewActions.java
===================================================================
--- trunk/lilith/src/main/java/de/huxhorn/lilith/swing/ViewActions.java 2009-08-26 23:45:17 UTC (rev 312)
+++ trunk/lilith/src/main/java/de/huxhorn/lilith/swing/ViewActions.java 2009-08-28 14:29:59 UTC (rev 313)
@@ -1611,8 +1611,6 @@
}
}
- private static final double SCALE_FACTOR = 0.1d;
-
private class ZoomInMenuAction
extends AbstractAction
{
@@ -1630,10 +1628,7 @@
public void actionPerformed(ActionEvent e)
{
- ApplicationPreferences prefs = mainFrame.getApplicationPreferences();
-
- double scale = prefs.getScaleFactor() + SCALE_FACTOR;
- prefs.setScaleFactor(scale);
+ mainFrame.zoomIn();
}
public void updateAction()
@@ -1668,14 +1663,7 @@
public void actionPerformed(ActionEvent e)
{
- ApplicationPreferences prefs = mainFrame.getApplicationPreferences();
-
- double scale = prefs.getScaleFactor() - SCALE_FACTOR;
- if(scale < 0.1d)
- {
- scale = 0.1d;
- }
- prefs.setScaleFactor(scale);
+ mainFrame.zoomOut();
}
public void updateAction()
@@ -1710,9 +1698,7 @@
public void actionPerformed(ActionEvent e)
{
- ApplicationPreferences prefs = mainFrame.getApplicationPreferences();
-
- prefs.setScaleFactor(1.0d);
+ mainFrame.resetZoom();
}
public void updateAction()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|