~andreas.hoelzl/jhelioviewer/jhv-formatting

« back to all changes in this revision

Viewing changes to viewmodel/src/org/helioviewer/viewmodel/view/LayeredView.java

  • Committer: Andreas Hoelzl
  • Date: 2010-03-23 19:37:12 UTC
  • Revision ID: andreas_hoelzl_23@hotmail.com-20100323193712-wgx872c3tpo3y729
formattingĀ changed

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
package org.helioviewer.viewmodel.view;
2
2
 
3
 
/** View to merged multiple Views.
4
 
 * 
5
 
 * <p>The LayeredView a central element of the view chain. It is
6
 
 * responsible for displaying multiple views, which are organized
7
 
 * as a stack of layers. The basic functionality this includes to 
8
 
 * add, move and remove layers.
9
 
 * 
10
 
 * <p>When drawing the different layers, the layer with index zero is
11
 
 * drawn first, so the stack of layers is drawn in order bottom to top.
12
 
 * 
13
 
 * <p>The position of the layers in relation to each other is 
14
 
 * calculated based on their regions. Thus, every view that is
15
 
 * connected as a layer must provide a {@link RegionView}. Also, every layer
16
 
 * has to provide a {@link MetaDataView} and a {@link ViewportView}.
17
 
 * To take care of this requirement, implement the {@link ImageInfoView}
18
 
 * as recommended. Since a LayeredView can be used as a layer itself,
19
 
 * its implementation also should implement {@link RegionView},
 
3
/**
 
4
 * View to merged multiple Views.
 
5
 * 
 
6
 * <p>
 
7
 * The LayeredView a central element of the view chain. It is responsible for
 
8
 * displaying multiple views, which are organized as a stack of layers. The
 
9
 * basic functionality this includes to add, move and remove layers.
 
10
 * 
 
11
 * <p>
 
12
 * When drawing the different layers, the layer with index zero is drawn first,
 
13
 * so the stack of layers is drawn in order bottom to top.
 
14
 * 
 
15
 * <p>
 
16
 * The position of the layers in relation to each other is calculated based on
 
17
 * their regions. Thus, every view that is connected as a layer must provide a
 
18
 * {@link RegionView}. Also, every layer has to provide a {@link MetaDataView}
 
19
 * and a {@link ViewportView}. To take care of this requirement, implement the
 
20
 * {@link ImageInfoView} as recommended. Since a LayeredView can be used as a
 
21
 * layer itself, its implementation also should implement {@link RegionView},
20
22
 * {@link ViewportView} and {@link MetaDataView} as well.
21
23
 * 
22
 
 * <p>As an additional feature, the LayeredView support hiding layers.
 
24
 * <p>
 
25
 * As an additional feature, the LayeredView support hiding layers.
23
26
 * 
24
27
 * @author Ludwig Schmidt
25
 
 *
 
28
 * 
26
29
 */
27
30
public interface LayeredView extends View {
28
31
 
29
 
        /** Returns number of layers currently connected to the LayeredView.
30
 
         * 
31
 
         * @return Number of layers
32
 
         * @see #getNumberOfVisibleLayer
33
 
         */
 
32
    /**
 
33
     * Returns number of layers currently connected to the LayeredView.
 
34
     * 
 
35
     * @return Number of layers
 
36
     * @see #getNumberOfVisibleLayer
 
37
     */
34
38
    public int getNumLayers();
35
 
    
36
 
    /** Returns, whether the given view is visible.
37
 
     * 
38
 
     * If the given view is not a direct child of the LayeredView,
39
 
     * returns false in any case.
40
 
     * 
41
 
     * @param view View to test for visibility
 
39
 
 
40
    /**
 
41
     * Returns, whether the given view is visible.
 
42
     * 
 
43
     * If the given view is not a direct child of the LayeredView, returns false
 
44
     * in any case.
 
45
     * 
 
46
     * @param view
 
47
     *            View to test for visibility
42
48
     * @return True if the view is visible
43
49
     * @see #toggleVisibility
44
50
     */
45
51
    public boolean isVisible(View view);
46
 
    
47
 
    /** Returns number of layers currently visible.
 
52
 
 
53
    /**
 
54
     * Returns number of layers currently visible.
48
55
     * 
49
 
     * This number is lesser or equal to the number of total layers
50
 
     * currently connected to the LayeredView.
 
56
     * This number is lesser or equal to the number of total layers currently
 
57
     * connected to the LayeredView.
51
58
     * 
52
59
     * @return Number of visible layers
53
60
     * @see #getNumLayers
54
61
     */
55
62
    public int getNumberOfVisibleLayer();
56
63
 
57
 
    /** Toggles the visibility if the given view.
58
 
     * 
59
 
     * If the given view is not a direct child of the LayeredView,
60
 
     * nothing happens.
61
 
     * 
62
 
     * @param view View to toggle visibility
 
64
    /**
 
65
     * Toggles the visibility if the given view.
 
66
     * 
 
67
     * If the given view is not a direct child of the LayeredView, nothing
 
68
     * happens.
 
69
     * 
 
70
     * @param view
 
71
     *            View to toggle visibility
63
72
     * @see #isVisible
64
73
     */
65
74
    public void toggleVisibility(View view);
66
75
 
67
 
    /** Adds a view as a new layer to the LayeredView.
68
 
     * 
69
 
     * The new layer is inserted on top of the current stack,
70
 
     * thus will be drawn as last.
71
 
     * 
72
 
     * @param newLayer View to add as a new layer
 
76
    /**
 
77
     * Adds a view as a new layer to the LayeredView.
 
78
     * 
 
79
     * The new layer is inserted on top of the current stack, thus will be drawn
 
80
     * as last.
 
81
     * 
 
82
     * @param newLayer
 
83
     *            View to add as a new layer
73
84
     * @see #removeLayer
74
85
     */
75
86
    public void addLayer(View newLayer);
76
87
 
77
 
    /** Adds a view as a new layer to the LayeredView.
78
 
     * 
79
 
     * The new layer is inserted at the given position
80
 
     * of the current stack.
81
 
     * 
82
 
     * @param newLayer View to add as a new layer
 
88
    /**
 
89
     * Adds a view as a new layer to the LayeredView.
 
90
     * 
 
91
     * The new layer is inserted at the given position of the current stack.
 
92
     * 
 
93
     * @param newLayer
 
94
     *            View to add as a new layer
83
95
     * @see #removeLayer
84
96
     */
85
97
    public void addLayer(View newLayer, int newIndex);
86
98
 
87
 
    /** Removes a layer from the LayeredView.
 
99
    /**
 
100
     * Removes a layer from the LayeredView.
88
101
     * 
89
 
     * @param index position of the layer within the stack of layers.
 
102
     * @param index
 
103
     *            position of the layer within the stack of layers.
90
104
     * @see #addLayer
91
105
     */
92
106
    public void removeLayer(int index);
93
107
 
94
 
    /** Removes a layer from the LayeredView.
95
 
     * 
96
 
     * If the given view is not a direct child of the LayeredView,
97
 
     * nothing happens.
98
 
     * 
99
 
     * @param view View to remove from the LayeredView
 
108
    /**
 
109
     * Removes a layer from the LayeredView.
 
110
     * 
 
111
     * If the given view is not a direct child of the LayeredView, nothing
 
112
     * happens.
 
113
     * 
 
114
     * @param view
 
115
     *            View to remove from the LayeredView
100
116
     * @see #addLayer
101
117
     */
102
118
    public void removeLayer(View view);
103
119
 
104
 
    /** Returns the position of the view within the stack of layers.
105
 
     * 
106
 
     * Zero indicates the most bottom view. If the given view is not
107
 
     * a direct child of the LayeredView, the function returns -1. 
108
 
     * 
109
 
     * @param view View to search for within the stack of layers
 
120
    /**
 
121
     * Returns the position of the view within the stack of layers.
 
122
     * 
 
123
     * Zero indicates the most bottom view. If the given view is not a direct
 
124
     * child of the LayeredView, the function returns -1.
 
125
     * 
 
126
     * @param view
 
127
     *            View to search for within the stack of layers
110
128
     * @return Position of the view within stack
111
129
     * @see #moveView
112
130
     */
113
131
    public int getLayerLevel(View view);
114
132
 
115
 
    /** Returns the view at a given position within the stack of layers.
 
133
    /**
 
134
     * Returns the view at a given position within the stack of layers.
116
135
     * 
117
 
     * @param index Position within the stack of layers
 
136
     * @param index
 
137
     *            Position within the stack of layers
118
138
     * @return View at given position
119
139
     */
120
140
    public View getLayer(int index);
121
141
 
122
 
    /** Moves a layer to a different position within the stack of layers.
123
 
     * 
124
 
     * If the given view is not a direct child of the LayeredView,
125
 
     * nothing happens.
126
 
     * 
127
 
     * @param view Layer to move to a new position
128
 
     * @param newLevel new position
 
142
    /**
 
143
     * Moves a layer to a different position within the stack of layers.
 
144
     * 
 
145
     * If the given view is not a direct child of the LayeredView, nothing
 
146
     * happens.
 
147
     * 
 
148
     * @param view
 
149
     *            Layer to move to a new position
 
150
     * @param newLevel
 
151
     *            new position
129
152
     * @see #getLayerLevel
130
153
     * @see #getLayer
131
154
     */