001/* 002 * $Id: ComboDataChoice.java,v 1.10 2011/03/24 16:06:32 davep Exp $ 003 * 004 * This file is part of McIDAS-V 005 * 006 * Copyright 2007-2011 007 * Space Science and Engineering Center (SSEC) 008 * University of Wisconsin - Madison 009 * 1225 W. Dayton Street, Madison, WI 53706, USA 010 * https://www.ssec.wisc.edu/mcidas 011 * 012 * All Rights Reserved 013 * 014 * McIDAS-V is built on Unidata's IDV and SSEC's VisAD libraries, and 015 * some McIDAS-V source code is based on IDV and VisAD source code. 016 * 017 * McIDAS-V is free software; you can redistribute it and/or modify 018 * it under the terms of the GNU Lesser Public License as published by 019 * the Free Software Foundation; either version 3 of the License, or 020 * (at your option) any later version. 021 * 022 * McIDAS-V is distributed in the hope that it will be useful, 023 * but WITHOUT ANY WARRANTY; without even the implied warranty of 024 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 025 * GNU Lesser Public License for more details. 026 * 027 * You should have received a copy of the GNU Lesser Public License 028 * along with this program. If not, see http://www.gnu.org/licenses. 029 */ 030 031package edu.wisc.ssec.mcidasv.data; 032 033import ucar.unidata.util.LogUtil; 034 035 036import ucar.unidata.util.Misc; 037import ucar.unidata.xml.XmlUtil; 038 039import ucar.unidata.data.*; 040 041 042import visad.*; 043 044import visad.georef.*; 045 046import java.rmi.RemoteException; 047 048import java.util.ArrayList; 049import java.util.Enumeration; 050import java.util.Hashtable; 051import java.util.List; 052import java.util.Vector; 053 054 055/** 056 * A data choice that simply holds a reference to a visad.Data object 057 * 058 * @author IDV development team 059 * @version $Revision: 1.10 $ 060 */ 061public class ComboDataChoice extends DataChoice { 062 private static final List<DataCategory> CATEGORIES = 063 DataCategory.parseCategories("MultiSpectral;IMAGE;"); 064 065 /** The data */ 066 private Data data; 067 068 069 /** 070 * The bean constructor. We need this for xml decoding. 071 */ 072 public ComboDataChoice() {} 073 074 075 /** 076 * Create a new DataChoice, using the state of the given DataChoice to 077 * initialize the new object. 078 * 079 * @param other The other data choice. 080 */ 081 public ComboDataChoice(ComboDataChoice other) { 082 super(other); 083 this.data = other.data; 084 } 085 086 /** 087 * Create a new DataChoice. 088 * 089 * @param name The short name of this choice. 090 * @param data The data 091 */ 092 public ComboDataChoice(String name, List categories, Hashtable props) { 093 super(Math.random(), name, name, categories, props); 094 } 095 096 public ComboDataChoice(final String id, final String name, final Hashtable props, 097 final Data data) 098 { 099 super(id, name, name, CATEGORIES, props); 100 this.data = data; 101 } 102 103 /** 104 * Clone me 105 * 106 * @return my clone 107 */ 108 public DataChoice cloneMe() { 109 return new ComboDataChoice(this); 110 } 111 112 public void setData(Data data) { 113 this.data = data; 114 } 115 116 /** 117 * Return the {@link visad.Data} object that this DataChoice represents. 118 * 119 * @param category The {@link DataCategory} used to subset this 120 * call (usually not used but placed in here 121 * just in case it is needed.) 122 * @param dataSelection Allows one to subset the data request (e.g., 123 * asking for a smaller set of times, etc.) 124 * @param requestProperties Extra selection properties 125 * 126 * @return The data. 127 * 128 * @throws DataCancelException if the request to get data is canceled 129 * @throws RemoteException problem accessing remote data 130 * @throws VisADException problem creating the Data object 131 */ 132 protected Data getData(DataCategory category, 133 DataSelection dataSelection, 134 Hashtable requestProperties) 135 throws VisADException, RemoteException, DataCancelException { 136 return data; 137 } 138 139 public Data getData() { 140 return data; 141 } 142 143 /** 144 * add listener. This is a noop 145 * 146 * @param listener listener 147 */ 148 public void addDataChangeListener(DataChangeListener listener) {} 149 150 151 /** 152 * Remove the {@link DataChangeListener}. 153 * 154 * @param listener The {@link DataChangeListener} to remove. 155 */ 156 public void removeDataChangeListener(DataChangeListener listener) {} 157 158 159 160} 161