/* * Copyright (C) 2010 Brockmann Consult GmbH (info@brockmann-consult.de) * * 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 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 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/ */ package org.esa.snap.ui; import org.esa.snap.core.datamodel.Product; import org.esa.snap.core.datamodel.ProductManager; import org.esa.snap.core.util.DefaultPropertyMap; import org.esa.snap.core.util.PropertyMap; import org.esa.snap.ui.product.ProductSceneView; import javax.swing.JFrame; import javax.swing.JOptionPane; import java.awt.Window; /** * This trivial implementation of the {@link AppContext} class * is only for testing. */ public 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; } 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; } }