📄 jreportpanel.java
字号:
/* * JReportPanel.java * * iReport -- Visual designer for generating JasperReports Documents * Copyright (C) 2002-2003 Giulio Toffoli gt@businesslogic.it * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * Giulio Toffoli * Via T.Aspetti, 233 * 35100 Padova ITALY * gt@businesslogic.it * * Created on 13 febbraio 2003, 23.35 */package it.businesslogic.ireport.gui;import java.awt.*;import java.awt.dnd.*;import javax.swing.*;import java.awt.datatransfer.*;/** * * @author Administrator */public class JReportPanel extends JPanel implements java.awt.dnd.DropTargetListener { private JReportFrame jrf = null; /** Creates a new instance of JReportPanel */ public JReportPanel() { this.setBackground(new Color(128,128,128)); new DropTarget( this, // component DnDConstants.ACTION_COPY_OR_MOVE, // actions this); // DropTargetListener this.setIgnoreRepaint(true); } /** Paints this component. * <p> * This method is called when the contents of the component should * be painted in response to the component first being shown or * damage needing repair. The clip rectangle in the * <code>Graphics</code> parameter will be set to the area * which needs to be painted. * Subclasses of Component that override this method need not call * super.paint(g). * <p> * For performance reasons, Components with zero width or height * aren't considered to need painting when they are first shown, * and also aren't considered to need repair. * * @param g the graphics context to use for painting * @see #update * @since JDK1.0 * */ public void paint(Graphics g){ if (jrf != null) jrf.paintReportPanel(g); else super.paint(g); } /** Getter for property jrf. * @return Value of property jrf. * */ public it.businesslogic.ireport.gui.JReportFrame getJrf() { return jrf; } /** Setter for property jrf. * @param jrf New value of property jrf. * */ public void setJrf(it.businesslogic.ireport.gui.JReportFrame jrf) { this.jrf = jrf; } public void dragEnter(java.awt.dnd.DropTargetDragEvent dtde) { dtde.acceptDrag(dtde.getDropAction()); } public void dragExit(java.awt.dnd.DropTargetEvent dte) { } public void dragOver(java.awt.dnd.DropTargetDragEvent dtde) { dtde.acceptDrag(dtde.getDropAction()); } public void drop(java.awt.dnd.DropTargetDropEvent dtde) { try { DropTargetContext context = dtde.getDropTargetContext(); Transferable tr = dtde.getTransferable(); DataFlavor[] df = tr.getTransferDataFlavors(); if (df[0].getHumanPresentableName().equals("it.businesslogic.ireport.JRField")) { java.awt.datatransfer.DataFlavor myFlavor = new java.awt.datatransfer.DataFlavor(it.businesslogic.ireport.JRField.class, it.businesslogic.ireport.JRField.class.getName()); it.businesslogic.ireport.JRField field = (it.businesslogic.ireport.JRField)tr.getTransferData( myFlavor ); // Add a field!!! //System.out.println("Field name:" + field.getName() +" from "+ field.getClassType() ); // Create a standard field... this.jrf.dropNewTextField( dtde.getLocation(), "$F{"+ field.getName() +"}", field.getClassType() ); } else if (df[0].getHumanPresentableName().equals("it.businesslogic.ireport.JRVariable")) { java.awt.datatransfer.DataFlavor myFlavor = new java.awt.datatransfer.DataFlavor(it.businesslogic.ireport.JRVariable.class, it.businesslogic.ireport.JRVariable.class.getName()); it.businesslogic.ireport.JRVariable var = (it.businesslogic.ireport.JRVariable)tr.getTransferData( myFlavor ); // Add a field!!! //System.out.println("Field name:" + field.getName() +" from "+ field.getClassType() ); // Create a standard field... this.jrf.dropNewTextField( dtde.getLocation(), "$V{"+ var.getName() +"}", var.getClassType() ); } else if (df[0].getHumanPresentableName().equals("it.businesslogic.ireport.JRParameter")) { java.awt.datatransfer.DataFlavor myFlavor = new java.awt.datatransfer.DataFlavor(it.businesslogic.ireport.JRParameter.class, it.businesslogic.ireport.JRParameter.class.getName()); it.businesslogic.ireport.JRParameter par = (it.businesslogic.ireport.JRParameter)tr.getTransferData( myFlavor ); // Add a field!!! //System.out.println("Field name:" + field.getName() +" from "+ field.getClassType() ); // Create a standard field... this.jrf.dropNewTextField( dtde.getLocation(), "$P{"+ par.getName() +"}", par.getClassType() ); } context.dropComplete(true); } catch (Exception ex) { System.out.println("Errore in drop!"); ex.printStackTrace(); } } public void dropActionChanged(java.awt.dnd.DropTargetDragEvent dtde) { } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -