Source code: com/virtuosotechnologies/asaph/maingui/SelectionManager.java
1 /*
2 ================================================================================
3
4 FILE: SelectionManager.java
5
6 PROJECT:
7
8 Asaph
9
10 CONTENTS:
11
12 The selection manager API exported by the maingui plugin
13
14 PROGRAMMERS:
15
16 Daniel Azuma (DA) <dazuma@kagi.com>
17
18 COPYRIGHT:
19
20 Copyright (C) 2003 Daniel Azuma (dazuma@kagi.com)
21
22 This program is free software; you can redistribute it and/or
23 modify it under the terms of the GNU General Public License as
24 published by the Free Software Foundation; either version 2
25 of the License, or (at your option) any later version.
26
27 This program is distributed in the hope that it will be useful,
28 but WITHOUT ANY WARRANTY; without even the implied warranty of
29 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30 GNU General Public License for more details.
31
32 You should have received a copy of the GNU General Public
33 License along with this program; if not, write to
34 Free Software Foundation, Inc.
35 59 Temple Place, Suite 330
36 Boston, MA 02111-1307 USA
37
38 ================================================================================
39 */
40
41
42 package com.virtuosotechnologies.asaph.maingui;
43
44
45 import java.util.Set;
46
47 import com.virtuosotechnologies.asaph.model.SongDatabase;
48
49
50 /**
51 * The selection manager API exported by the maingui plugin
52 */
53 public interface SelectionManager
54 {
55 /**
56 * The name of this API.
57 */
58 public static final String API_NAME =
59 "com.virtuosotechnologies.asaph.maingui.SelectionManager";
60
61
62 /**
63 * Get the currently selected database.
64 *
65 * @return a SongDatabase, or null for no selection
66 */
67 public SongDatabase getSelectedDatabase();
68
69
70 /**
71 * Get the Set of currently selected songs.
72 *
73 * @return a Set of SongIDs. Returns the empty set for no selection
74 */
75 public Set getSelectedSongSet();
76
77
78 /**
79 * Select the specified database in the gui.
80 *
81 * @param database the database to select
82 * @exception IllegalArgumentException the given database is not open.
83 */
84 public void selectDatabase(
85 SongDatabase database);
86
87
88 /**
89 * Add a SelectionListener to the main gui.
90 * Note that it is added as a weak listener, so make sure it is strongly
91 * referenced elsewhere.
92 *
93 * @param listener SelectionListener
94 */
95 public void addSelectionListener(
96 SelectionListener listener);
97
98
99 /**
100 * Remove a SelectionListener from the main gui. Does nothing if the
101 * listener is not added.
102 *
103 * @param listener SelectionListener
104 */
105 public void removeSelectionListener(
106 SelectionListener listener);
107 }