Frames | No Frames |
1: /** 2: * ======================================== 3: * JFreeReport : a free Java report library 4: * ======================================== 5: * 6: * Project Info: http://reporting.pentaho.org/ 7: * 8: * (C) Copyright 2000-2007, by Object Refinery Limited, Pentaho Corporation and Contributors. 9: * 10: * This library is free software; you can redistribute it and/or modify it under the terms 11: * of the GNU Lesser General Public License as published by the Free Software Foundation; 12: * either version 2.1 of the License, or (at your option) any later version. 13: * 14: * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 15: * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16: * See the GNU Lesser General Public License for more details. 17: * 18: * You should have received a copy of the GNU Lesser General Public License along with this 19: * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, 20: * Boston, MA 02111-1307, USA. 21: * 22: * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 23: * in the United States and other countries.] 24: * 25: * ------------ 26: * $Id: ReportController.java 2725 2007-04-01 18:49:29Z taqua $ 27: * ------------ 28: * (C) Copyright 2000-2005, by Object Refinery Limited. 29: * (C) Copyright 2005-2007, by Pentaho Corporation. 30: */ 31: package org.jfree.report.modules.gui.swing.preview; 32: 33: import javax.swing.JComponent; 34: import javax.swing.JMenu; 35: 36: /** 37: * A report controler. This provides some means of configuring the 38: * preview components. 39: * <p> 40: * The controler should use the propertyChange events provided by 41: * the PreviewProxyBase and the ReportPane to update its state. 42: * <p> 43: * To force a new repagination, use the <code>refresh</code> method of 44: * the PreviewProxyBase. 45: * 46: * @author Thomas Morgner 47: */ 48: public interface ReportController 49: { 50: /** 51: * Returns the graphical representation of the controler. 52: * This component will be added between the menu bar and 53: * the toolbar. 54: * <p> 55: * Changes to this property are not detected automaticly, 56: * you have to call "refreshController" whenever you want to 57: * display a completly new control panel. 58: * 59: * @return the controler component. 60: */ 61: public JComponent getControlPanel(); 62: 63: /** 64: * Returns the menus that should be inserted into the menubar. 65: * <p> 66: * Changes to this property are not detected automaticly, 67: * you have to call "refreshControler" whenever the contents 68: * of the menu array changed. 69: * 70: * @return the menus as array, never null. 71: */ 72: public JMenu[] getMenus(); 73: 74: /** 75: * Defines, whether the controler component is placed between 76: * the preview pane and the toolbar. 77: * 78: * @return true, if this is a inner component. 79: */ 80: public boolean isInnerComponent (); 81: 82: /** 83: * Returns the location for the report controler, one of 84: * BorderLayout.NORTH, BorderLayout.SOUTH, BorderLayout.EAST 85: * or BorderLayout.WEST. 86: * 87: * @return the location; 88: */ 89: public String getControllerLocation (); 90: 91: public void initialize (PreviewPane pane); 92: }