42 |
42 |
public class TabTable extends PanelBase implements IColorTableUI, TableModelListener {
|
43 |
43 |
private static final long serialVersionUID = -6971866166164473789L;
|
44 |
44 |
private ArrayList actionCommandListeners = new ArrayList();
|
45 |
|
private boolean listenerEnabled = true;
|
|
45 |
private boolean listenerEnabled = false;
|
46 |
46 |
|
47 |
47 |
/**
|
48 |
48 |
* Tabla de color interna que se esta utilizando actualmente
|
... | ... | |
62 |
62 |
getTableContainer().getTable().getJTable().getModel().addTableModelListener(this);
|
63 |
63 |
}
|
64 |
64 |
|
65 |
|
//[start] Code UI
|
|
65 |
/**
|
|
66 |
* Inicializar el panel
|
|
67 |
*/
|
66 |
68 |
private void initialize() {
|
67 |
69 |
getPanel().setLayout(new BorderLayout());
|
68 |
70 |
getPanel().add(getTableContainer(), BorderLayout.CENTER);
|
... | ... | |
78 |
80 |
}
|
79 |
81 |
return tableContainer;
|
80 |
82 |
}
|
81 |
|
//[end]
|
82 |
83 |
|
83 |
84 |
/**
|
84 |
85 |
* Borra todas las filas de la tabla.
|
... | ... | |
145 |
146 |
* @param colorItems
|
146 |
147 |
*/
|
147 |
148 |
private void reloadItems() {
|
|
149 |
listenerEnabled = false;
|
148 |
150 |
ArrayList colorItems = colorTable.getColorItems();
|
149 |
151 |
clearTable();
|
150 |
152 |
for (int i = 0; i < colorItems.size(); i++) {
|
... | ... | |
154 |
156 |
toRange = new Double(((ColorItem) colorItems.get(i + 1)).getValue());
|
155 |
157 |
addRowToTable(c1.getColor(), c1.getNameClass(), new Double(c1.getValue()), toRange, c1.getColor().getAlpha() + "");
|
156 |
158 |
}
|
|
159 |
listenerEnabled = true;
|
157 |
160 |
}
|
158 |
161 |
|
159 |
162 |
/*
|
... | ... | |
161 |
164 |
* @see javax.swing.event.TableModelListener#tableChanged(javax.swing.event.TableModelEvent)
|
162 |
165 |
*/
|
163 |
166 |
public void tableChanged(TableModelEvent e) {
|
|
167 |
if (!listenerEnabled)
|
|
168 |
return;
|
164 |
169 |
colorTable.createPaletteFromColorItems(getPalette(), false);
|
165 |
170 |
callColorTableUIChangedListener();
|
166 |
171 |
}
|
... | ... | |
179 |
184 |
* @see org.gvsig.rastertools.colortable.panels.IColorTableUI#setColorTable(org.gvsig.raster.datastruct.ColorTable)
|
180 |
185 |
*/
|
181 |
186 |
public void setColorTable(ColorTable colorTable) {
|
182 |
|
listenerEnabled = false;
|
183 |
187 |
this.colorTable = colorTable;
|
184 |
188 |
reloadItems();
|
185 |
|
listenerEnabled = true;
|
186 |
189 |
}
|
187 |
190 |
|
188 |
191 |
/*
|
... | ... | |
207 |
210 |
* @param colorTable
|
208 |
211 |
*/
|
209 |
212 |
private void callColorTableUIChangedListener() {
|
210 |
|
if (!listenerEnabled)
|
211 |
|
return;
|
212 |
|
|
213 |
213 |
Iterator acIterator = actionCommandListeners.iterator();
|
214 |
214 |
while (acIterator.hasNext()) {
|
215 |
215 |
ColorTableUIListener listener = (ColorTableUIListener) acIterator.next();
|