package org.esa.snap.opendap; import org.esa.snap.core.datamodel.Product; import org.esa.snap.core.datamodel.ProductManager; import org.esa.snap.core.ui.AppContext; import org.esa.snap.core.ui.application.ApplicationPage; import org.esa.snap.core.ui.product.ProductSceneView; import org.esa.snap.opendap.ui.OpendapAccessPanel; import org.esa.snap.util.DefaultPropertyMap; import org.esa.snap.util.PropertyMap; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.UIManager; import java.awt.Window; /** * @author Tonio Fincke */ public class OpendapAccess { public static void main(String[] args) { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { e.printStackTrace(); } final OpendapAccessPanel opendapAccessPanel = new OpendapAccessPanel(new DefaultAppContext(""), ""); final JFrame mainFrame = new JFrame("OPeNDAP Access"); mainFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); mainFrame.setContentPane(opendapAccessPanel); mainFrame.pack(); mainFrame.setVisible(true); } /** * This trivial implementation of the {@link org.esa.snap.core.ui.AppContext} class * is only for testing. */ private static class DefaultAppContext implements AppContext { private Window applicationWindow; private String applicationName; private ProductManager productManager; private Product selectedProduct; private PropertyMap preferences; private ProductSceneView selectedSceneView; public DefaultAppContext(String applicationName) { this(applicationName, new JFrame(applicationName), new ProductManager(), new DefaultPropertyMap()); } public DefaultAppContext(String applicationName, Window applicationWindow, ProductManager productManager, PropertyMap preferences) { this.applicationWindow = applicationWindow; this.applicationName = applicationName; this.productManager = productManager; this.preferences = preferences; } @Override public String getApplicationName() { return applicationName; } public void setApplicationName(String applicationName) { this.applicationName = applicationName; } @Override public Window getApplicationWindow() { return applicationWindow; } @Override public ApplicationPage getApplicationPage() { return null; } public void setApplicationWindow(Window applicationWindow) { this.applicationWindow = applicationWindow; } @Override public PropertyMap getPreferences() { return preferences; } public void setPreferences(PropertyMap preferences) { this.preferences = preferences; } @Override public ProductManager getProductManager() { return productManager; } public void setProductManager(ProductManager productManager) { this.productManager = productManager; } @Override public Product getSelectedProduct() { return selectedProduct; } public void setSelectedProduct(Product selectedProduct) { this.selectedProduct = selectedProduct; } @Override public void handleError(String message, Throwable t) { if (t != null) { t.printStackTrace(); } JOptionPane.showMessageDialog(getApplicationWindow(), message); } @Override public ProductSceneView getSelectedProductSceneView() { return selectedSceneView; } public void setSelectedSceneView(ProductSceneView selectedView) { this.selectedSceneView = selectedView; } } }