📄 zprintpreview.java
字号:
*/
ZPen getPen() {
return hiLinePen;
}
/**
* DOCUMENT ME!
*
* @return
*/
int getState() {
return info.mainState;
}
/**
*/
boolean fireBodyClicked() {
return false;
}
/**
*/
boolean fireFooterClicked() {
if (getModal() == doc.getFooterModal()) {
return false;
}
editFooter();
return true;
}
/**
*/
boolean fireHeaderClicked() {
if (getModal() == doc.getHeaderModal()) {
return false;
}
editHeader();
return true;
}
/** Used to ajust imageable area's margin
*/
class _MarginHandler extends MouseAdapter implements MouseMotionListener {
/**
* DOCUMENT ME!
*
* @param e
*/
public void mouseDragged(MouseEvent e) {
if (getState() != STATE_IDLE) {
return;
}
if (state == STS_Margin_Ready) {
switch (selectedMarginer.getID()) {
case 0:
case 6:
case 1:
case 7:
bar = new ZShape.SimpleHLine(selectedMarginer.left + 2, 0, selectedMarginer.left + 2,
(int) (pagePane.getSize().getHeight()), getPen());
break;
default:
bar = new ZShape.SimpleHLine(0, selectedMarginer.top + 2, (int) (pagePane.getSize().getWidth()),
selectedMarginer.top + 2, getPen());
break;
}
add(bar);
state = STS_Marginning;
} else if (state == STS_Marginning) {
Point to = (Point) e.getPoint().clone();
float scale = doc.getScale();
ZRect image = doc.getImageArea();
switch (selectedMarginer.getID()) {
case 0:
case 6:
if (((to.x / scale) + MINIUM_SPACE) > image.right) {
return;
} else {
to.y = 0;
}
break;
case 1:
case 7:
if (((to.x / scale) - MINIUM_SPACE) < image.left) {
return;
} else {
to.y = 0;
}
break;
case 2:
case 3:
if (((to.y / scale) + MINIUM_SPACE) > image.bottom) {
return;
} else {
to.x = 0;
}
break;
case 4:
case 5:
if (((to.y / scale) - MINIUM_SPACE) < image.top) {
return;
} else {
to.x = 0;
}
break;
case 8:
case 9:
if (((to.y / scale) < image.top) ||
(((to.y / scale) + MINIUM_SPACE) > (image.bottom - doc.getFooterHeight()))) {
return;
} else {
to.x = 0;
}
break;
case 10:
case 11:
if ((((to.y / scale) - MINIUM_SPACE) < (image.top + doc.getHeaderHeight())) ||
((to.y / scale) > image.bottom)) {
return;
} else {
to.x = 0;
}
break;
}
move(bar, to);
}
}
/**
* DOCUMENT ME!
*
* @param e
*/
public void mouseMoved(MouseEvent e) {
if (getState() != STATE_IDLE) //正在调整边距,不要添乱
{
return;
}
ZShape sp = null;
try {
sp = hit(e.getPoint());
} catch (Exception ex) {
}
if (sp != null) {
switch (sp.getID()) {
case 0:
case 1:
case 6:
case 7:
pagePane.setCursor(cursors[ZSheetState.RESIZE_COL_CURSOR]);
break;
default:
pagePane.setCursor(cursors[ZSheetState.RESIZE_ROW_CURSOR]);
break;
}
selectedMarginer = (ZShape.Rectangle) sp;
state = STS_Margin_Ready;
pagePane.setToolTipText("Margin");
} else if (state == STS_Margin_Ready) {
pagePane.setToolTipText(null);
setIdle();
}
}
/**
*
* @param e
*/
public void mousePressed(MouseEvent e) {
if ((getState() != STATE_IDLE) || (e.getClickCount() == 1)) //正在调整边距,不要添乱
{
return;
}
Point p = e.getPoint();
boolean redispatch = false;
if (header.contain(p.x, p.y)) {
redispatch = fireHeaderClicked();
} else if (footer.contain(p.x, p.y)) {
redispatch = fireFooterClicked();
} else if (body.contain(p.x, p.y)) {
redispatch = fireBodyClicked();
}
if (redispatch) {
MouseEvent me = new MouseEvent(pagePane, MouseEvent.MOUSE_PRESSED, System.currentTimeMillis(), 0, p.x, p.y, 1,
false);
pagePane.dispatchEvent(me);
}
}
/**
* DOCUMENT ME!
*
* @param e
*/
public void mouseReleased(MouseEvent e) {
if (getState() != STATE_IDLE) //正在调整边距,不要添乱
{
return;
}
if (state == STS_Marginning) {
marginersDirty = true;
kill(bar);
ZRect margin = (ZRect) doc.getImageArea().clone();
float scale = doc.getScale();
int id = selectedMarginer.getID();
if (id < 8) {
switch (selectedMarginer.getID()) {
case 0:
case 6:
margin.left = (int) (bar.tl.x / scale);
break;
case 1:
case 7:
margin.right = (int) (bar.tl.x / scale);
break;
case 2:
case 3:
margin.top = (int) (bar.tl.y / scale);
break;
case 4:
case 5:
margin.bottom = (int) (bar.tl.y / scale);
break;
}
PageFormat pf = (PageFormat) doc.getPageFormat().clone();
Paper pp = (Paper) pf.getPaper().clone();
if (pf.getOrientation() == PageFormat.PORTRAIT) {
pp.setImageableArea(margin.left, margin.top, margin.getWidth(), margin.getHeight());
} else {
pp.setImageableArea(margin.top, pp.getHeight() - (margin.left + margin.getWidth()),
margin.getHeight(), margin.getWidth());
}
pf.setPaper(pp);
doc.setPageFormat(pf);
} else {
switch (id) {
case 8:
case 9:
ZRect area = doc.getHeaderArea();
doc.setHeaderHeight((int) (bar.tl.y / scale) - area.top);
break;
case 10:
case 11:
area = doc.getFooterArea();
doc.setFooterHeight((int) (area.bottom - bar.tl.y / scale));
break;
}
}
setIdle();
}
}
} // end of _MarginHandler
} // end of ZPrintPreviewControl
/**
* ZPrintPreview._PageCanvas
*/
class _PageCanvas extends JPanel {
_PageCanvas() {
setBackground(Color.white);
setBorder(new MatteBorder(1, 1, 2, 2, Color.black));
this.addComponentListener(new ComponentAdapter() {
public void componentShown(ComponentEvent e) {
((JComponent) e.getSource()).requestFocus();
}
});
}
/**
* DOCUMENT ME!
*
* @return
*/
public boolean isFocusTraversable() {
return true;
}
/**
* DOCUMENT ME!
*
* @return
*/
public Dimension getPreferredSize() {
float scale = doc.getScale();
int dx = (int) (doc.getPageFormat().getWidth() * scale);
int dy = (int) (doc.getPageFormat().getHeight() * scale);
int x = (getWidth() - dx) / 2;
int y = (getHeight() - dy) / 2;
if (x < 0) {
x = 0;
}
if (y < 0) {
y = 0;
}
return new Dimension(dx, dy); //ns;
}
/**
* DOCUMENT ME!
*
* @param g
*/
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
doc.paint(g2);
paintBorder(g);
if (marginable) {
if (marginersDirty) {
recreateMarginers();
}
for (int i = 0; i < marginLines.size(); i++)
((ZShape) marginLines.get(i)).paint(g2);
g2.setColor(Color.gray);
for (int i = 0; i < marginers.size(); i++) {
ZShape.Rectangle r = (ZShape.Rectangle) marginers.get(i);
g2.fillRect(r.left, r.top, r.right - r.left + 1, r.bottom - r.top + 1);
}
}
}
} // end of _PageCanvas
/**
* ZPrintPreview._PageContainer
*/
private class _PageContainer extends JPanel {
/**
* DOCUMENT ME!
*
* @return
*/
public Dimension getMaximumSize() {
return getPreferredSize();
}
/**
* DOCUMENT ME!
*
* @return
*/
public Dimension getMinimumSize() {
return getPreferredSize();
}
/**
* DOCUMENT ME!
*
* @return
*/
public Dimension getPreferredSize() {
Dimension ps = getParent().getSize();
float scale = doc.getScale();
int dx = (int) (doc.getPageFormat().getWidth() * scale);
int dy = (int) (doc.getPageFormat().getHeight() * scale);
JScrollBar sb = getHorizontalScrollBar();
if (dx <= ps.getWidth()) {
sb.setVisible(false);
} else {
sb.setVisible(true);
}
sb = getVerticalScrollBar();
if (dy <= ps.getHeight()) {
sb.setVisible(false);
} else {
sb.setVisible(true);
}
return new Dimension(dx, dy);
}
/**
* DOCUMENT ME!
*/
public void doLayout() {
float scale = doc.getScale();
int dx = (int) (doc.getPageFormat().getWidth() * scale);
int dy = (int) (doc.getPageFormat().getHeight() * scale);
int x = (getWidth() - dx) / 2;
int y = (getHeight() - dy) / 2;
if (x < 0) {
x = 0;
}
if (y < 0) {
y = 0;
}
getComponent(0).setBounds(x, y, dx, dy);
}
} // end of _PageContainer
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -