1
package org.helioviewer.jhv.gui.components.layerTable;
3
import javax.swing.DefaultListSelectionModel;
4
import javax.swing.SwingUtilities;
6
import org.helioviewer.jhv.layers.LayersListener;
7
import org.helioviewer.jhv.layers.LayersModel;
8
import org.helioviewer.viewmodel.view.View;
11
* SelectionModel reflecting the "activeLayer" property of the LayersModel
15
public class LayerTableSelectionModel extends DefaultListSelectionModel implements LayersListener {
17
private static final long serialVersionUID = 2276237017135257828L;
19
/** The sole instance of this class. */
20
private static final LayerTableSelectionModel layerTableSelectionModel = new LayerTableSelectionModel();
23
* Returns the only instance of this class.
25
* @return the only instance of this class.
27
public static LayerTableSelectionModel getSingletonInstance() {
28
return layerTableSelectionModel;
34
private LayerTableSelectionModel() {
35
this.setSelectionMode(LayerTableSelectionModel.SINGLE_SELECTION);
36
LayersModel.getSingletonInstance().addLayersListener(this);
42
* Update internal state and the underlying LayersModel state
45
public void setSelectionInterval(int index0, int index1) {
46
super.setSelectionInterval(index0, index1);
47
LayersModel.getSingletonInstance().setActiveLayer(index0);
51
* Helper needed to call the super.setSelectionInterval method from within
55
* @see javax.swing.DefaultListSelectionModel#setSelectionInterval(int,int)
56
* setSelectionInterval
58
public void superSetSelectionInterval(int index0, int index1) {
59
super.setSelectionInterval(index0, index1);
62
public void activeLayerChanged(int index) {
63
SwingUtilities.invokeLater(new Runnable() {
65
superSetSelectionInterval(LayersModel.getSingletonInstance().getActiveLayer(), LayersModel.getSingletonInstance().getActiveLayer());
73
public void layerAdded(int newIndex) {
74
// Log.debug("LayerTableSelection: Layer Added, selecting " +
75
// layersModel.getActiveLayer());
81
public void layerChanged(int index) {
87
public void layerRemoved(View oldView, int oldIndex) {
88
// Log.debug("LayerTableSelection: Layer Removed");
94
public void viewportGeometryChanged() {
100
public void subImageDataChanged() {
106
public void timestampChanged(int idx) {
112
public void layerDownloaded(int idx) {