/*- * #%L * Fiji distribution of ImageJ for the life sciences. * %% * Copyright (C) 2007 - 2017 Fiji developers. * %% * 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, see * <http://www.gnu.org/licenses/gpl-2.0.html>. * #L% */ package spim.fiji.spimdata.explorer; import java.awt.BorderLayout; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.ArrayList; import javax.swing.JFrame; import mpicbg.spim.data.generic.AbstractSpimData; import mpicbg.spim.data.generic.XmlIoAbstractSpimData; public class ViewSetupExplorer< AS extends AbstractSpimData< ? >, X extends XmlIoAbstractSpimData< ?, AS > > { final JFrame frame; ViewSetupExplorerPanel< AS, X > panel; public ViewSetupExplorer( final AS data, final String xml, final X io ) { frame = new JFrame( "ViewSetup Explorer" ); panel = new ViewSetupExplorerPanel< AS, X >( this, data, xml, io ); frame.add( panel, BorderLayout.CENTER ); frame.setSize( panel.getPreferredSize() ); frame.addWindowListener( new WindowAdapter() { @Override public void windowClosing( WindowEvent evt ) { quit(); } }); frame.pack(); frame.setVisible( true ); // set the initial focus to the table panel.table.requestFocus(); } public void quit() { for ( final SelectedViewDescriptionListener< AS > l : panel.getListeners() ) l.quit(); panel.getListeners().clear(); frame.setVisible( false ); frame.dispose(); } public AS getSpimData() { return panel.getSpimData(); } public ViewSetupExplorerPanel< AS, X > getPanel() { return panel; } public JFrame getFrame() { return frame; } public void addListener( final SelectedViewDescriptionListener< AS > listener ) { panel.addListener( listener ); } public ArrayList< SelectedViewDescriptionListener< AS > > getListeners() { return panel.getListeners(); } }