FR [ 2539927 ] Display Zoom combobox
https://sourceforge.net/tracker/?func=detail&atid=879335&aid=2539927&group_id=176962
This commit is contained in:
parent
d5b93419a2
commit
905b55ff0c
|
@ -1,8 +1,27 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project-modules id="moduleCoreId" project-version="1.5.0">
|
<project-modules id="moduleCoreId" project-version="1.5.0">
|
||||||
<wb-module deploy-name="Adempiere_trunk">
|
<wb-module deploy-name="Adempiere_trunk">
|
||||||
<wb-resource deploy-path="/" source-path="/zkwebui"/>
|
<wb-resource deploy-path="/" source-path="/zkwebui"/>
|
||||||
<property name="java-output-path" value="build/classes"/>
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/base/src"/>
|
||||||
<property name="context-root" value="webui"/>
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/glassfishfacet/src"/>
|
||||||
</wb-module>
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/jbossfacet/src"/>
|
||||||
</project-modules>
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/client/src"/>
|
||||||
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/sqlj/src"/>
|
||||||
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/install/src"/>
|
||||||
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/extend/src"/>
|
||||||
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/serverRoot/src/main/ejb"/>
|
||||||
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/serverRoot/src/main/server"/>
|
||||||
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/serverRoot/src/main/servlet"/>
|
||||||
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/interfaces/src"/>
|
||||||
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/serverApps/src/main/servlet"/>
|
||||||
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/zkwebui/WEB-INF/src"/>
|
||||||
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/JasperReports/src"/>
|
||||||
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/JasperReportsWebApp/src"/>
|
||||||
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/tools/src"/>
|
||||||
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/webCM/src/main/servlet"/>
|
||||||
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/migration/src"/>
|
||||||
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/posterita/posterita/src/main"/>
|
||||||
|
<property name="java-output-path" value="build/classes"/>
|
||||||
|
<property name="context-root" value="webui"/>
|
||||||
|
</wb-module>
|
||||||
|
</project-modules>
|
||||||
|
|
|
@ -22,6 +22,7 @@ import java.awt.Graphics;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.Point;
|
import java.awt.Point;
|
||||||
import java.awt.Rectangle;
|
import java.awt.Rectangle;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
import org.compiere.model.MQuery;
|
import org.compiere.model.MQuery;
|
||||||
import org.compiere.print.layout.LayoutEngine;
|
import org.compiere.print.layout.LayoutEngine;
|
||||||
|
@ -34,13 +35,17 @@ import org.compiere.util.CLogger;
|
||||||
*
|
*
|
||||||
* @author Jorg Janke
|
* @author Jorg Janke
|
||||||
* @version $Id: View.java,v 1.2 2006/07/30 00:53:02 jjanke Exp $
|
* @version $Id: View.java,v 1.2 2006/07/30 00:53:02 jjanke Exp $
|
||||||
|
*
|
||||||
|
* @author Teo Sarca, www.arhipac.ro
|
||||||
|
* <li>FR [ 2539927 ] Display Zoom combobox
|
||||||
|
* https://sourceforge.net/tracker/?func=detail&atid=879335&aid=2539927&group_id=176962
|
||||||
*/
|
*/
|
||||||
public class View extends CPanel
|
public class View extends CPanel
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 851611162566661576L;
|
private static final long serialVersionUID = 5640892952739279088L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Print Preview
|
* Print Preview
|
||||||
|
@ -56,10 +61,18 @@ public class View extends CPanel
|
||||||
|
|
||||||
|
|
||||||
/** Zoom Level */
|
/** Zoom Level */
|
||||||
private int m_zoomLevel = 0;
|
private int m_zoomLevel = 2;
|
||||||
/** Zoom Options */
|
/** Zoom Options */
|
||||||
public static final String[] ZOOM_OPTIONS = new String[]
|
public static final String[] ZOOM_OPTIONS = new String[] {"200%", "150%", "100%", "75%", "50%"};
|
||||||
{"100%", "75%", "50%"};
|
private static HashMap<String, Double> ZOOM_ScaleValues = new HashMap<String, Double>();
|
||||||
|
static {
|
||||||
|
ZOOM_ScaleValues.put("200%", 2.00);
|
||||||
|
ZOOM_ScaleValues.put("150%", 1.50);
|
||||||
|
ZOOM_ScaleValues.put("100%", 1.00);
|
||||||
|
ZOOM_ScaleValues.put("75%", 0.75);
|
||||||
|
ZOOM_ScaleValues.put("50%", 0.50);
|
||||||
|
}
|
||||||
|
|
||||||
/** Margin around paper */
|
/** Margin around paper */
|
||||||
public static int MARGIN = 5;
|
public static int MARGIN = 5;
|
||||||
/** Margin Background Color */
|
/** Margin Background Color */
|
||||||
|
@ -70,6 +83,12 @@ public class View extends CPanel
|
||||||
|
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
|
|
||||||
|
public int getMarginSize(boolean doScale)
|
||||||
|
{
|
||||||
|
double scale = (doScale ? getScale() : 1.00);
|
||||||
|
return (int)(MARGIN * scale);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Minimum Size
|
* Minimum Size
|
||||||
* @return Max Page Size
|
* @return Max Page Size
|
||||||
|
@ -85,8 +104,8 @@ public class View extends CPanel
|
||||||
*/
|
*/
|
||||||
public Dimension getMaximumSize()
|
public Dimension getMaximumSize()
|
||||||
{
|
{
|
||||||
return new Dimension (getPaperWidth()+(2*MARGIN),
|
return new Dimension (getPaperWidth()+(2*getMarginSize(true)),
|
||||||
(getPaperHeight()+MARGIN)*getPageCount()+MARGIN);
|
(getPaperHeight()+getMarginSize(true))*getPageCount()+getMarginSize(true));
|
||||||
} // getMaximumSize
|
} // getMaximumSize
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -115,6 +134,7 @@ public class View extends CPanel
|
||||||
{
|
{
|
||||||
// log.fine( "View.paintComponent", g.getClip());
|
// log.fine( "View.paintComponent", g.getClip());
|
||||||
Graphics2D g2D = (Graphics2D)g;
|
Graphics2D g2D = (Graphics2D)g;
|
||||||
|
g2D.scale(getScale(), getScale());
|
||||||
Rectangle bounds = g2D.getClipBounds();
|
Rectangle bounds = g2D.getClipBounds();
|
||||||
//
|
//
|
||||||
g2D.setColor(COLOR_BACKGROUND);
|
g2D.setColor(COLOR_BACKGROUND);
|
||||||
|
@ -123,7 +143,7 @@ public class View extends CPanel
|
||||||
// for all pages
|
// for all pages
|
||||||
for (int page = 0; page < m_layout.getPages().size(); page++)
|
for (int page = 0; page < m_layout.getPages().size(); page++)
|
||||||
{
|
{
|
||||||
Rectangle pageRectangle = getRectangleOfPage(page+1);
|
Rectangle pageRectangle = getRectangleOfPage(page+1, false);
|
||||||
if (bounds.intersects(pageRectangle))
|
if (bounds.intersects(pageRectangle))
|
||||||
{
|
{
|
||||||
Page p = (Page)m_layout.getPages().get(page);
|
Page p = (Page)m_layout.getPages().get(page);
|
||||||
|
@ -153,7 +173,7 @@ public class View extends CPanel
|
||||||
{
|
{
|
||||||
if (ZOOM_OPTIONS[i].equals(levelString))
|
if (ZOOM_OPTIONS[i].equals(levelString))
|
||||||
{
|
{
|
||||||
m_zoomLevel = i;
|
setZoomLevel(i);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -167,6 +187,15 @@ public class View extends CPanel
|
||||||
{
|
{
|
||||||
return m_zoomLevel;
|
return m_zoomLevel;
|
||||||
} // getZoomLevel
|
} // getZoomLevel
|
||||||
|
|
||||||
|
private double getScale()
|
||||||
|
{
|
||||||
|
Double scale = ZOOM_ScaleValues.get(ZOOM_OPTIONS[m_zoomLevel]);
|
||||||
|
if (scale != null)
|
||||||
|
return scale.doubleValue();
|
||||||
|
else
|
||||||
|
return 1.00;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Rectange of Page
|
* Get Rectange of Page
|
||||||
|
@ -175,10 +204,18 @@ public class View extends CPanel
|
||||||
*/
|
*/
|
||||||
public Rectangle getRectangleOfPage(int pageNo)
|
public Rectangle getRectangleOfPage(int pageNo)
|
||||||
{
|
{
|
||||||
int y = MARGIN + ((pageNo-1) * (getPaperHeight() + MARGIN));
|
return getRectangleOfPage(pageNo, true);
|
||||||
return new Rectangle (MARGIN, y, getPaperWidth(), getPaperHeight());
|
// int y = (int)(MARGIN + ((pageNo-1) * (getPaperHeight() + MARGIN)));
|
||||||
|
// return new Rectangle (MARGIN, y, getPaperWidth(), getPaperHeight());
|
||||||
} // getRectangleOfPage
|
} // getRectangleOfPage
|
||||||
|
|
||||||
|
public Rectangle getRectangleOfPage(int pageNo, boolean doScale)
|
||||||
|
{
|
||||||
|
System.out.println("height: "+getPaperHeight(false)+"->"+getPaperHeight(true));
|
||||||
|
System.out.println("width: "+getPaperWidth(false)+"->"+getPaperWidth(true));
|
||||||
|
int y = (int)(getMarginSize(doScale) + ((pageNo-1) * (getPaperHeight(doScale) + getMarginSize(doScale))));
|
||||||
|
return new Rectangle (getMarginSize(doScale), y, getPaperWidth(doScale), getPaperHeight(doScale));
|
||||||
|
} // getRectangleOfPage
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Page at Point
|
* Get Page at Point
|
||||||
|
@ -187,8 +224,8 @@ public class View extends CPanel
|
||||||
*/
|
*/
|
||||||
public float getPageNoAt (Point p)
|
public float getPageNoAt (Point p)
|
||||||
{
|
{
|
||||||
float y = p.y;
|
float y = (float)(p.y / getScale());
|
||||||
float pageHeight = getPaperHeight() + MARGIN;
|
float pageHeight = getPaperHeight(false) + getMarginSize(false);
|
||||||
return 1f + (y/pageHeight);
|
return 1f + (y/pageHeight);
|
||||||
} // getPageAt
|
} // getPageAt
|
||||||
|
|
||||||
|
@ -235,7 +272,14 @@ public class View extends CPanel
|
||||||
*/
|
*/
|
||||||
public int getPaperHeight()
|
public int getPaperHeight()
|
||||||
{
|
{
|
||||||
return (int)m_layout.getPaper().getHeight(true);
|
return getPaperHeight(true);
|
||||||
|
// return (int)(m_layout.getPaper().getHeight(true) * getScale());
|
||||||
|
} // getPaperHeight
|
||||||
|
|
||||||
|
public int getPaperHeight(boolean doScale)
|
||||||
|
{
|
||||||
|
double scale = (doScale ? getScale() : 1.0);
|
||||||
|
return (int)(m_layout.getPaper().getHeight(true) * scale);
|
||||||
} // getPaperHeight
|
} // getPaperHeight
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -244,7 +288,14 @@ public class View extends CPanel
|
||||||
*/
|
*/
|
||||||
public int getPaperWidth()
|
public int getPaperWidth()
|
||||||
{
|
{
|
||||||
return (int)m_layout.getPaper().getWidth(true);
|
return getPaperWidth(true);
|
||||||
|
// return (int)(m_layout.getPaper().getWidth(true) * getScale());
|
||||||
|
} // getPaperHeight
|
||||||
|
|
||||||
|
public int getPaperWidth(boolean doScale)
|
||||||
|
{
|
||||||
|
double scale = (doScale ? getScale() : 1.0);
|
||||||
|
return (int)(m_layout.getPaper().getWidth(true) * scale);
|
||||||
} // getPaperHeight
|
} // getPaperHeight
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -255,9 +306,11 @@ public class View extends CPanel
|
||||||
public MQuery getDrillDown (Point absolutePoint)
|
public MQuery getDrillDown (Point absolutePoint)
|
||||||
{
|
{
|
||||||
int pageNo = (int)getPageNoAt(absolutePoint);
|
int pageNo = (int)getPageNoAt(absolutePoint);
|
||||||
Rectangle pageRectangle = getRectangleOfPage(pageNo);
|
Rectangle pageRectangle = getRectangleOfPage(pageNo, false);
|
||||||
Point relativePoint = new Point (absolutePoint.x-pageRectangle.x,
|
Point relativePoint = new Point (
|
||||||
absolutePoint.y-pageRectangle.y);
|
(int)(absolutePoint.x/getScale()-pageRectangle.x),
|
||||||
|
(int)(absolutePoint.y/getScale()-pageRectangle.y)
|
||||||
|
);
|
||||||
Page page = (Page)m_layout.getPages().get(pageNo-1);
|
Page page = (Page)m_layout.getPages().get(pageNo-1);
|
||||||
//
|
//
|
||||||
log.config("Relative=" + relativePoint + ", " + page);
|
log.config("Relative=" + relativePoint + ", " + page);
|
||||||
|
@ -277,8 +330,10 @@ public class View extends CPanel
|
||||||
{
|
{
|
||||||
int pageNo = (int)getPageNoAt(absolutePoint);
|
int pageNo = (int)getPageNoAt(absolutePoint);
|
||||||
Rectangle pageRectangle = getRectangleOfPage(pageNo);
|
Rectangle pageRectangle = getRectangleOfPage(pageNo);
|
||||||
Point relativePoint = new Point (absolutePoint.x-pageRectangle.x,
|
Point relativePoint = new Point (
|
||||||
absolutePoint.y-pageRectangle.y);
|
(int)(absolutePoint.x/getScale()-pageRectangle.x),
|
||||||
|
(int)(absolutePoint.y/getScale()-pageRectangle.y)
|
||||||
|
);
|
||||||
Page page = (Page)m_layout.getPages().get(pageNo-1);
|
Page page = (Page)m_layout.getPages().get(pageNo-1);
|
||||||
//
|
//
|
||||||
log.config("Relative=" + relativePoint + ", " + page);
|
log.config("Relative=" + relativePoint + ", " + page);
|
||||||
|
|
|
@ -115,6 +115,8 @@ import org.compiere.util.ValueNamePair;
|
||||||
* <li>FR [ 1779403 ] Report Viewer: add PgUp and PgDown key handlers
|
* <li>FR [ 1779403 ] Report Viewer: add PgUp and PgDown key handlers
|
||||||
* <li>BF [ 1836908 ] Report customize NPE when no window access
|
* <li>BF [ 1836908 ] Report customize NPE when no window access
|
||||||
* <li>FR [ 1894640 ] Report Engine: Excel Export support
|
* <li>FR [ 1894640 ] Report Engine: Excel Export support
|
||||||
|
* <li>FR [ 2539927 ] Display Zoom combobox
|
||||||
|
* https://sourceforge.net/tracker/?func=detail&atid=879335&aid=2539927&group_id=176962
|
||||||
* @author victor.perez@e-evolution.com
|
* @author victor.perez@e-evolution.com
|
||||||
* <li>FR [ 1966328 ] New Window Info to MRP and CRP into View http://sourceforge.net/tracker/index.php?func=detail&aid=1966328&group_id=176962&atid=879335
|
* <li>FR [ 1966328 ] New Window Info to MRP and CRP into View http://sourceforge.net/tracker/index.php?func=detail&aid=1966328&group_id=176962&atid=879335
|
||||||
* <li>FR [ 2011569 ] Implementing new Summary flag in Report View http://sourceforge.net/tracker/index.php?func=detail&aid=2011569&group_id=176962&atid=879335
|
* <li>FR [ 2011569 ] Implementing new Summary flag in Report View http://sourceforge.net/tracker/index.php?func=detail&aid=2011569&group_id=176962&atid=879335
|
||||||
|
@ -216,7 +218,7 @@ public class Viewer extends CFrame
|
||||||
private CComboBox comboDrill = new CComboBox();
|
private CComboBox comboDrill = new CComboBox();
|
||||||
//FR 201156
|
//FR 201156
|
||||||
private CCheckBox summary = new CCheckBox();
|
private CCheckBox summary = new CCheckBox();
|
||||||
// private CComboBox comboZoom = new CComboBox(View.ZOOM_OPTIONS);
|
private CComboBox comboZoom = new CComboBox(View.ZOOM_OPTIONS);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -269,8 +271,8 @@ public class Viewer extends CFrame
|
||||||
|
|
||||||
// Zoom Level
|
// Zoom Level
|
||||||
toolBar.addSeparator();
|
toolBar.addSeparator();
|
||||||
// toolBar.add(comboZoom, null);
|
toolBar.add(comboZoom, null);
|
||||||
// comboZoom.setToolTipText(Msg.getMsg(m_ctx, "Zoom"));
|
comboZoom.setToolTipText(Msg.getMsg(m_ctx, "Zoom"));
|
||||||
// Drill
|
// Drill
|
||||||
toolBar.addSeparator();
|
toolBar.addSeparator();
|
||||||
labelDrill.setText(Msg.getMsg(m_ctx, "Drill") + ": ");
|
labelDrill.setText(Msg.getMsg(m_ctx, "Drill") + ": ");
|
||||||
|
@ -313,7 +315,8 @@ public class Viewer extends CFrame
|
||||||
private void dynInit()
|
private void dynInit()
|
||||||
{
|
{
|
||||||
createMenu();
|
createMenu();
|
||||||
// comboZoom.addActionListener(this);
|
comboZoom.setSelectedIndex(m_viewPanel.getZoomLevel());
|
||||||
|
comboZoom.addActionListener(this);
|
||||||
// Change Listener to set Page no
|
// Change Listener to set Page no
|
||||||
//pb comment this out so that scrolling works normally
|
//pb comment this out so that scrolling works normally
|
||||||
//centerScrollPane.getViewport().addChangeListener(this);
|
//centerScrollPane.getViewport().addChangeListener(this);
|
||||||
|
@ -454,8 +457,8 @@ public class Viewer extends CFrame
|
||||||
centerScrollPane.setPreferredSize(new Dimension
|
centerScrollPane.setPreferredSize(new Dimension
|
||||||
(m_viewPanel.getPaperWidth()+30, m_viewPanel.getPaperHeight()+15));
|
(m_viewPanel.getPaperWidth()+30, m_viewPanel.getPaperHeight()+15));
|
||||||
centerScrollPane.getViewport().setViewSize(new Dimension
|
centerScrollPane.getViewport().setViewSize(new Dimension
|
||||||
(m_viewPanel.getPaperWidth()+2*View.MARGIN,
|
(m_viewPanel.getPaperWidth()+2*m_viewPanel.getMarginSize(true),
|
||||||
m_viewPanel.getPaperHeight()+2*View.MARGIN));
|
m_viewPanel.getPaperHeight()+2*m_viewPanel.getMarginSize(true)));
|
||||||
|
|
||||||
// Report Info
|
// Report Info
|
||||||
setTitle(Msg.getMsg(m_ctx, "Report") + ": " + m_reportEngine.getName() + " " + Env.getHeader(m_ctx, 0));
|
setTitle(Msg.getMsg(m_ctx, "Report") + ": " + m_reportEngine.getName() + " " + Env.getHeader(m_ctx, 0));
|
||||||
|
@ -651,10 +654,9 @@ public class Viewer extends CFrame
|
||||||
log.config(cmd);
|
log.config(cmd);
|
||||||
this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
|
this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
|
||||||
//
|
//
|
||||||
// if (e.getSource() == comboZoom)
|
if (e.getSource() == comboZoom)
|
||||||
// cmd_zoom();
|
cmd_zoom();
|
||||||
// else
|
else if (e.getSource() == comboReport)
|
||||||
if (e.getSource() == comboReport)
|
|
||||||
cmd_report();
|
cmd_report();
|
||||||
else if (e.getSource() == comboDrill)
|
else if (e.getSource() == comboDrill)
|
||||||
cmd_drill();
|
cmd_drill();
|
||||||
|
@ -744,8 +746,8 @@ public class Viewer extends CFrame
|
||||||
bNext.setEnabled (m_pageNo != m_pageMax);
|
bNext.setEnabled (m_pageNo != m_pageMax);
|
||||||
//
|
//
|
||||||
Rectangle pageRectangle = m_viewPanel.getRectangleOfPage(m_pageNo);
|
Rectangle pageRectangle = m_viewPanel.getRectangleOfPage(m_pageNo);
|
||||||
pageRectangle.x -= View.MARGIN;
|
pageRectangle.x -= m_viewPanel.getMarginSize(true);
|
||||||
pageRectangle.y -= View.MARGIN;
|
pageRectangle.y -= m_viewPanel.getMarginSize(true);
|
||||||
centerScrollPane.getViewport().setViewPosition(pageRectangle.getLocation());
|
centerScrollPane.getViewport().setViewPosition(pageRectangle.getLocation());
|
||||||
// System.out.println("scrollTo " + pageRectangle);
|
// System.out.println("scrollTo " + pageRectangle);
|
||||||
|
|
||||||
|
@ -1212,7 +1214,7 @@ public class Viewer extends CFrame
|
||||||
private void cmd_zoom()
|
private void cmd_zoom()
|
||||||
{
|
{
|
||||||
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
|
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
|
||||||
// m_viewPanel.setZoomLevel(comboZoom.getSelectedIndex());
|
m_viewPanel.setZoomLevel(comboZoom.getSelectedIndex());
|
||||||
revalidate();
|
revalidate();
|
||||||
cmd_drill(); // setCursor
|
cmd_drill(); // setCursor
|
||||||
} // cmd_zoom
|
} // cmd_zoom
|
||||||
|
|
Loading…
Reference in New Issue