Revision 12488 trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/colortable/panels/PalettePersistence.java

View differences:

PalettePersistence.java
18 18
 */
19 19
package org.gvsig.rastertools.colortable.panels;
20 20

  
21
import java.awt.Color;
21 22
import java.io.File;
22 23
import java.io.FileInputStream;
23 24
import java.io.FileNotFoundException;
24 25
import java.io.IOException;
25 26
import java.util.ArrayList;
26 27

  
28
import org.gvsig.raster.datastruct.ColorItem;
27 29
import org.kxml2.io.KXmlParser;
28 30
import org.xmlpull.v1.XmlPullParserException;
29 31
/**
......
82 84
	 *
83 85
	 *  @param palettesPath Camino al fichero de paletas predefinidas.
84 86
	 *  @param paletteName Nombre de paleta a cargar desde el fichero xml.
85
	 *
86
	 *//*
87
	public void loadPalette(String palettesPath, String paletteName){
87
	 */
88
	public static Boolean loadPalette(String palettesPath, String paletteName, ArrayList items) {
88 89

  
90
		items.clear();
91

  
89 92
		File palettesFile = new File(palettesPath);
90
		if(!palettesFile.exists())
91
			return;
93
		if (!palettesFile.exists())
94
			return null;
92 95

  
93 96
		try {
94 97
			KXmlParser parser = new KXmlParser();
......
103 106
			parser.require(KXmlParser.END_TAG, null, "palette_list");
104 107
			tag = parser.nextTag();
105 108

  
106
			while (tag == KXmlParser.START_TAG){
109
			while (tag == KXmlParser.START_TAG) {
107 110
				parser.require(KXmlParser.START_TAG, null, "palette");
108
				if(parser.getAttributeCount()==2)
109
					if (parser.getAttributeValue(0).equals(paletteName)){
111
				if (parser.getAttributeCount() == 2) {
112
					if (parser.getAttributeValue(0).equals(paletteName)) {
110 113
						boolean interpolate = Boolean.valueOf(parser.getAttributeValue(1)).booleanValue();
111 114
						tag = parser.nextTag();
112 115
						parser.require(KXmlParser.START_TAG, null, "table");
113 116
						tag = parser.nextTag();
114
						try {
115
							panel.getPTable().removeAllRows();
116
						} catch (NotInitializeException e1) {
117
							e1.printStackTrace();
118
						}
119 117

  
120 118
						ArrayList rows = new ArrayList();
121 119

  
122
						while(tag == KXmlParser.START_TAG){
120
						while (tag == KXmlParser.START_TAG) {
123 121
							parser.require(KXmlParser.START_TAG, null, "entry");
124
							if (parser.getAttributeCount()==3){
122
							if (parser.getAttributeCount() == 3) {
125 123

  
126
								String rgb = parser.getAttributeValue(1).substring(parser.getAttributeValue(1).indexOf(",")+1,
127
										parser.getAttributeValue(1).length());
124
								String rgb = parser.getAttributeValue(1).substring(parser.getAttributeValue(1).indexOf(",") + 1, parser.getAttributeValue(1).length());
128 125

  
129
								int a = Integer.valueOf(parser.getAttributeValue(1).substring(0,parser.getAttributeValue(1).indexOf(","))).intValue();
130
								int r= Integer.valueOf(rgb.substring(0,rgb.indexOf(","))).intValue();
131
								int g=Integer.valueOf(rgb.substring(rgb.indexOf(",")+1,rgb.lastIndexOf(","))).intValue();
132
								int b=Integer.valueOf(rgb.substring(rgb.lastIndexOf(",")+1,rgb.length())).intValue();
126
								int a = Integer.valueOf(parser.getAttributeValue(1).substring(0, parser.getAttributeValue(1).indexOf(","))).intValue();
127
								int r = Integer.valueOf(rgb.substring(0, rgb.indexOf(","))).intValue();
128
								int g = Integer.valueOf(rgb.substring(rgb.indexOf(",") + 1, rgb.lastIndexOf(","))).intValue();
129
								int b = Integer.valueOf(rgb.substring(rgb.lastIndexOf(",") + 1, rgb.length())).intValue();
133 130

  
134
								//No a?ado filas a la tabla hasta que no se ha leido correctamente la paleta completa:
135
								Object row[] = {new Color(r,g,b), parser.getAttributeValue(0), parser.getAttributeValue(2), String.valueOf(a)};
131
								// No a?ado filas a la tabla hasta que no se ha leido
132
								// correctamente la paleta completa:
133
								Object row[] = { new Color(r, g, b), parser.getAttributeValue(0), parser.getAttributeValue(2), String.valueOf(a) };
136 134
								rows.add(row);
137 135
							}
138 136
							tag = parser.nextTag();
......
142 140
						parser.require(KXmlParser.END_TAG, null, "table");
143 141

  
144 142
						// Rellenar la tabla con las entradas leidas:
145
						for (int i=0;i<rows.size();i++)
146
							panel.addRowToTable((Color)((Object[])rows.get(i))[0], (String)((Object[])rows.get(i))[1],
147
									(String)((Object[])rows.get(i))[2], (String)((Object[])rows.get(i))[3]);
148
						panel.getCbInterpolar().setSelected(interpolate);
143
						for (int i = 0; i < rows.size(); i++) {
144
							ColorItem colorItem = new ColorItem();
145
							Color color = (Color) ((Object[]) rows.get(i))[0];
146
							colorItem.setColor(new Color(color.getRed(), color.getGreen(), color.getBlue(), Integer.parseInt((String) ((Object[]) rows.get(i))[3])));
147
							colorItem.setValue(Double.parseDouble((String) ((Object[]) rows.get(i))[2]));
148
							items.add(colorItem);
149
						}
149 150
						fileInputStream.close();
150
						return;
151
						return Boolean.valueOf(interpolate);
152
					}
151 153
				}
152 154
				parser.skipSubTree();
153 155
				parser.require(KXmlParser.END_TAG, null, "palette");
......
155 157
			}
156 158

  
157 159
			parser.require(KXmlParser.END_TAG, null, "palettes");
158
			panel.deleteAllRows();
160
			// panel.deleteAllRows();
159 161
			fileInputStream.close();
160
			return;
162
			return null;
161 163

  
162
		}catch (FileNotFoundException fnfEx) {
164
		} catch (FileNotFoundException fnfEx) {
163 165
			fnfEx.printStackTrace();
164
		}catch (XmlPullParserException xmlEx) {
166
		} catch (XmlPullParserException xmlEx) {
165 167
			System.out.println("El fichero de paletas predeterminadas no tiene la estructura correcta:\n	" + xmlEx.getMessage());
166
		}catch (IOException e) {
168
		} catch (IOException e) {
167 169
		}
168
	}	*/
170
		return null;
171
	}
169 172
}

Also available in: Unified diff