/* * GRAL: GRAphing Library for Java(R) * * (C) Copyright 2009-2013 Erich Seifert <dev[at]erichseifert.de>, * Michael Seifert <michael[at]erichseifert.de> * * This file is part of GRAL. * * GRAL is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * GRAL 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with GRAL. If not, see <http://www.gnu.org/licenses/>. */ package cucumber.contrib.discovery.gral; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import javax.swing.JFrame; import javax.swing.JPanel; /** * Abstract base class for all visual examples. */ public abstract class ExamplePanel extends JPanel { /** Version id for serialization. */ private static final long serialVersionUID = 8221256658243821951L; /** First corporate color used for normal coloring.*/ protected static final Color COLOR1 = new Color( 55, 170, 200); /** Second corporate color used as signal color */ protected static final Color COLOR2 = new Color(200, 80, 75); /** * Performs basic initialization of an example, * like setting a default size. */ public ExamplePanel() { super(new BorderLayout()); setPreferredSize(new Dimension(800, 600)); setBackground(Color.WHITE); } /** * Returns a short title for the example. * @return A title text. */ public abstract String getTitle(); /** * Returns a more detailed description of the example contents. * @return A description of the example. */ public abstract String getDescription(); /** * Opens a frame and shows the example in it. * @return the frame instance used for displaying the example. */ protected JFrame showInFrame() { System.out.println("ExamplePanel.showInFrame.1"); JFrame frame = new JFrame(getTitle()); frame.getContentPane().add(this, BorderLayout.CENTER); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(getPreferredSize()); frame.setVisible(true); System.out.println("ExamplePanel.showInFrame.done"); return frame; } @Override public String toString() { return getTitle(); } }