package org.openswing.swing.table.client; import java.awt.*; import javax.swing.*; import javax.swing.border.*; import org.openswing.swing.util.client.*; /** * <p>Title: OpenSwing Framework</p> * <p>Description: Grid Status Panel, viewed at the bottom of the grid (the panel is optional). * It shows: * - current selected rows * - current page number (only in case loading one page per time) * - total number of pages (optionally) * - current applied grid profile (optionally) * </p> * <p>Copyright: Copyright (C) 2006 Mauro Carniel</p> * * <p> This file is part of OpenSwing Framework. * This library is free software; you can redistribute it and/or * modify it under the terms of the (LGPL) Lesser General Public * License as published by the Free Software Foundation; * * GNU LESSER GENERAL PUBLIC LICENSE * Version 2.1, February 1999 * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The author may be contacted at: * maurocarniel@tin.it</p> * * @author Mauro Carniel * @version 1.0 */ public class GridStatusPanel extends JPanel { /** text contained in the status panel */ private JLabel statusLabel = new JLabel(); /** text contained in page panel */ private JLabel pageLabel = new JLabel(); /** applied grid profile */ private JLabel profileLabel = new JLabel(); /** status panel */ private JLabel statusPanel = new JLabel(); /** applied grid profile panel */ private JLabel profilePanel = new JLabel(); /** page panel */ private JLabel pagePanel = new JLabel(); public GridStatusPanel() { try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { this.setLayout(new BorderLayout()); Border border = BorderFactory.createLoweredBevelBorder(); statusPanel.setLayout(new BorderLayout()); statusPanel.add(statusLabel, BorderLayout.CENTER); statusPanel.setBorder(border); if (!ClientSettings.SHOW_PAGE_NUMBER_IN_GRID) this.add(statusPanel, BorderLayout.CENTER); else { this.add(statusPanel, BorderLayout.WEST); statusPanel.setMinimumSize(new Dimension(170,statusPanel.getHeight())); statusPanel.setPreferredSize(new Dimension(170,statusPanel.getHeight())); Border border2 = BorderFactory.createLoweredBevelBorder(); pagePanel.setLayout(new BorderLayout()); pagePanel.setMinimumSize(new Dimension(100,statusPanel.getHeight())); pagePanel.setPreferredSize(new Dimension(100,statusPanel.getHeight())); pagePanel.add(pageLabel, BorderLayout.CENTER); pagePanel.setBorder(border2); this.add(pagePanel, BorderLayout.CENTER); pageLabel.setText(" "); } if (ClientSettings.getInstance().GRID_PROFILE_MANAGER!=null) { Border border2 = BorderFactory.createLoweredBevelBorder(); profilePanel.setLayout(new BorderLayout()); profilePanel.setMinimumSize(new Dimension(100,statusPanel.getHeight())); profilePanel.setPreferredSize(new Dimension(100,statusPanel.getHeight())); profilePanel.add(profileLabel, BorderLayout.CENTER); profilePanel.setBorder(border2); this.add(profilePanel, BorderLayout.EAST); profileLabel.setText(" "); } } /** * Set the text on the status panel * @param text text to view in the status panel */ public final void setText(String text) { statusLabel.setText(text); } /** * Set the text on the page panel * @param text text to view in the page panel */ public final void setPage(String page) { pageLabel.setText(page); } /** * Set the profile description on the status panel * @param description profile description */ public final void setProfile(String description) { profileLabel.setText(description); profilePanel.revalidate(); profilePanel.repaint(); this.revalidate(); this.repaint(); } }