/** * Copyright (C) 2001-2017 by RapidMiner and the contributors * * Complete list of developers available at our web site: * * http://rapidminer.com * * This program is free software: you can redistribute it and/or modify it under the terms of the * GNU Affero General Public License as published by the Free Software Foundation, either version 3 * 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 * Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License along with this program. * If not, see http://www.gnu.org/licenses/. */ package com.rapidminer.gui.actions.export; import java.awt.Component; /** * This interface should be implemented by {@link Component}s which should be exported if it focused * and an export as image action is called. If a subclass of {@link AbstractPrintComponentAction} * finds a {@link Component} that implements this interface, only the {@link Component} returned by * {@link #getComponent()} will be exported/printed. * * @author Nils Woehler * */ public interface PrintableComponent { /** * @return the component that should be exported/printed. Can be the implementing component * itself or a subcomponent of the implementing component. Can also return * <code>null</code> if exporting/printing of component is currently not supported. */ public Component getExportComponent(); /** * @return the name that should be used when exporting. Must not be <code>null</code>. */ public String getExportName(); /** * @return the identifier that will be shown below the export name in the export dialog. Can be * be <code>null</code>. */ public String getIdentifier(); /** * @return the name of the 24x24 icon that is displayed in the print dialog. Must not be * <code>null</code>. An icon with the specified name must be present in the icons/24 * folder. */ public String getExportIconName(); /** * @return <code>true</code> if the exported component currently is shown on screen. */ public boolean isShowing(); }